数字信号处理实验二用FFT作谱分析.docx

上传人:b****9 文档编号:26319847 上传时间:2023-06-17 格式:DOCX 页数:19 大小:163.51KB
下载 相关 举报
数字信号处理实验二用FFT作谱分析.docx_第1页
第1页 / 共19页
数字信号处理实验二用FFT作谱分析.docx_第2页
第2页 / 共19页
数字信号处理实验二用FFT作谱分析.docx_第3页
第3页 / 共19页
数字信号处理实验二用FFT作谱分析.docx_第4页
第4页 / 共19页
数字信号处理实验二用FFT作谱分析.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数字信号处理实验二用FFT作谱分析.docx

《数字信号处理实验二用FFT作谱分析.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验二用FFT作谱分析.docx(19页珍藏版)》请在冰豆网上搜索。

数字信号处理实验二用FFT作谱分析.docx

数字信号处理实验二用FFT作谱分析

西安郵電學院

 

数字信号处理课内实验

报告书

 

系部名称

计算机系

学生姓名

常成娟

专业名称

电子信息科学与技术

班级

0603

学号

时间

2008-11-23

实验二:

用FFT作谱分析

一、实验目的:

(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。

(2)熟悉FFT算法原理和FFT子程序的应用。

(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。

二、实验步骤:

(1)复习DFT的定义、性质和用DFT作谱分析的有关内容。

(2)复习FFT算法原理与编程思想,并对照DIT—FFT运算流图和程序框图,读懂本实验提供的FFT子程序。

(3)编制信号产生子程序,产生以下典型信号供谱分析用:

=R4(n)

=cos(pi/4*n)

=sin(pi/8*n)

=cos(pi*8*t)+sin(pi*16*t)+cos(20*pi*t)

应当注意,如果给出的是连续信号xa(t),则首先要根据其最高频率确定采样速率fs以及由频率选择采样点数N,然后对其进行软件采样(即计算x(n)=xa(nT),0<=n<=N-1),产生对应序列x(n)。

对信号x6(t),频率分辨率的选择要以能分辨开其中的三个频率对应的谱线为准则。

对周期序列,最好截取周期的整数倍进行分析,否则有可能产生较大的分析误差。

请实验者根据DFT的隐含周期性思考这个问题。

(4)编写主程序。

下图给出了主程序框图,供参考。

本实验提供FFT子程序和通用绘图子程序。

 

三、上机实验内容

(1)对2中所给出的信号逐个进行谱分析。

下面给出针对各信号的FFT变换区间N以及对连续信号

的采样频率fs。

N=8,16

fs=64(hz),N=16,32,64

实验结果:

1.

=R4(n)

原程序:

n=[0:

7];

x=[11110000]

f1=fft(x,8)

f2=fft(x,16)

subplot(2,2,1)

stem(n,x);

axis([0802])

xlabel('n')

ylabel('x1(n)')

title('x1的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([01605])

xlabel('k')

ylabel('|x1(k)|')

title('x1(n)的8点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([01005])

xlabel('k')

ylabel('|x1(k)|')

title('x1(n)的8点fft')

得到的波形图如下:

2.

原程序:

n=[0:

7];

x=[12344321]

f1=fft(x,8)

f2=fft(x,16)

subplot(2,2,1)

stem(n,x);

axis([0804])

xlabel('n')

ylabel('x2(n)')

title('x2的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x2(k)|')

title('x2(n)的8点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([010020])

xlabel('k')

ylabel('|x2(k)|')

title('x2(n)的8点fft')

波形图:

3.

原程序:

n=[0:

7];

x=[43211234]

f1=fft(x,8)

f2=fft(x,16)

subplot(2,2,1)

stem(n,x);

axis([0804])

xlabel('n')

ylabel('x3(n)')

title('x3的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x3(k)|')

title('x3(n)的8点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([08020])

xlabel('k')

ylabel('|x3(k)|')

title('x3(n)的8点fft')

4.

=cos(pi/4*n)

原程序:

n=[0:

7];

x=cos(0.25*pi*n)

f1=fft(x,8)

subplot(2,2,1)

stem(n,x);

axis([08-44])

xlabel('n')

ylabel('x4(n)')

title('x4的波形')

n=[0:

15]

x=cos(0.25*pi*n)

f2=fft(x,16)

subplot(2,2,2)

stem(n,x);

axis([016-44])

xlabel('n')

ylabel('x4(n)')

title('x4的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x4(k)|')

title('x4(n)的16点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([08020])

xlabel('k')

ylabel('|x4(k)|')

title('x4(n)的8点fft')

波形图:

5.

=sin(pi/8*n)

原程序:

n=[0:

7];

x=sin((pi*n)/8)

f1=fft(x,8)

subplot(2,2,1)

stem(n,x);

axis([08-44])

xlabel('n')

ylabel('x5(n)')

title('x5的波形')

n=[0:

15]

x=sin(0.125*pi*n)

f2=fft(x,16)

subplot(2,2,2)

stem(n,x);

axis([016-44])

xlabel('n')

ylabel('x5(n)')

title('x5的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x5(k)|')

title('x5(n)的16点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([08020])

xlabel('k')

ylabel('|x5(k)|')

title('x5(n)的8点fft')

波形图:

6.

=cos(pi*8*t)+sin(pi*16*t)+cos(20*pi*t)

原程序:

Ts=1/64;

n=0:

15;

Xa=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);

f1=fft(Xa,16);

subplot(3,2,1);

stem(n,Xa);

axis([015-23]);

xlabel('n');

ylabel('X6(n)');

title('X6(n)N=16');%显示x6(n)N=16

k=0:

15

subplot(3,2,2);

stem(k,abs(f1));

axis([016015]);

xlabel('k');

ylabel('|X6(k)|');

title('X6(n)N=16的16点FFT');%显示X6(n)的16点FFT

n=0:

31;

Xb=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);

f2=fft(Xb,32);

subplot(3,2,3);

stem(n,Xb);

axis([032-23]);

xlabel('n');

ylabel('X6(n)');

title('X6(n)N=32');%显示x6(n)N=32

subplot(3,2,4);

stem(abs(f2));

axis([032020]);

xlabel('k');

ylabel('|X6(k)|');

title('X6(n)N=32的32点FFT');%显示X6(n)的32点FFT

n=0:

63;

Xc=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);

f3=fft(Xc,64);

subplot(3,2,5);

stem(n,Xc);

axis([064-23]);

xlabel('n');

ylabel('X6(n)');

title('X6(n)N=64');%显示x6(n)N=64

subplot(3,2,6);

stem(abs(f3));

axis([064040]);

xlabel('k');

ylabel('|X6(k)|');

title('X6(n)N=64的64点FFT');%显示X6(n)的64点FFT

波形图:

(2)令

,用FFT计算8点和16点离散傅立叶变换,

,并根据DFT的对称性,由

求出

并与

(1)中所得结果比较。

提示(取N=16时,

实验结果:

n=[0:

7];

x=cos(0.25*pi*n)+sin(0.125*pi*n)

f1=fft(x,8)

subplot(2,2,1)

stem(n,x);

axis([08-44])

xlabel('n')

ylabel('x7(n)')

title('x7的波形')

n=[0:

15]

x=cos(0.25*pi*n)+sin(0.125*pi*n)

f2=fft(x,16)

subplot(2,2,2)

stem(n,x);

axis([016-44])

xlabel('n')

ylabel('x7(n)')

title('x7的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x7(k)|')

title('x7(n)的16点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([08020])

xlabel('k')

ylabel('|x7(k)|')

title('x7(n)的8点fft')

 

波形图:

n=[0:

15];

x=cos(0.25*pi*n)+sin(0.125*pi*n)

f1=fft(x,16)

Re=(f1+conj(f1))/2

Im=(f1-conj(f1))/2

subplot(2,2,1)

stem(n,abs(Re));

axis([016020])

xlabel('k')

ylabel('|Re(x7(k))|')

title('恢复后的x4(k)')

subplot(2,2,2)

stem(abs(Im));

axis([016020])

xlabel('k')

ylabel('|Im(x7(k))|')

title('恢复后的x5(k)')

 

(3)令

,重复

(2)

n=[0:

15];

x=cos(0.25*pi*n)+j*sin(0.125*pi*n)

f1=fft(x,16)

subplot(2,2,2)

stem(n,abs(f1));

axis([016010])

xlabel('k')

ylabel('|x8(k)|')

title('x8(n)的16点fft')

subplot(2,2,1)

k=0:

7

f2=fft(x,8)

stem(k,abs(f2));

axis([08010])

xlabel('k')

ylabel('|x8(k)|')

title('x8(n)的8点fft')

n=[0:

15];

x=cos(0.25*pi*n)+j*sin(0.125*pi*n)

f=fft(x,16)

k

(1)=conj(f

(1))

m=2:

16

k(m)=conj(f(16-m+2))

fe=(f+k)/2

fo=(f-k)/2

xr=ifft(fe,16)

xo=ifft(fo,16)/j

subplot(2,2,1)

stem(n,xr);

axis([016-11])

xlabel('n')

ylabel('|x4(n)|')

title('x4(n)的波形')

subplot(2,2,2)

stem(n,abs(fe));

axis([016010])

xlabel('k')

ylabel('|x8e(k)|')

title('x4(n)的16点fft')

subplot(2,2,3)

stem(n,xo);

axis([016-11])

xlabel('n')

ylabel('|x5(n)|')

title('x5(n)的波形')

subplot(2,2,4)

stem(n,abs(fo));

axis([016010])

xlabel('k')

ylabel('|x8o(k)|')

title('x5(n)的16点fft')

三、实验心得体会

通过本次实验,我进一步加深了对DFT的算法原理和基本性质的理解,FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质。

进一步熟悉了FFT算法原理和FFT子程序的应用,学会了用FFT对连续信号和时域离散信号进行谱分析的方法,了解了可能出现的分析误差及其原因,以便在实际中正确应用FFT。

本次实验运用到了以前所学的数字信号处理知识,使我对DFT的定义、性质和用DFT作谱分析有了更深的理解。

本次实验还运用了FFT的算法原理与编程思想。

根据主程序给出的DIT-FFT运算流图和程序框图编写了MATLAB程序。

总之,通过本次实验,使我熟悉了MATLAB的上机环境,也使我的实践动手能力有了更进一步的提高。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1