《DSP数字信号管理方案计划实验报告(精品).doc》由会员分享,可在线阅读,更多相关《DSP数字信号管理方案计划实验报告(精品).doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.FFT频谱分析一、 实验目的a) 进一步加深DFT算法原理和基本性质的理解b) 熟悉FFT算法原理和FFT程序的应用c) 学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确的应用FFT二、 实验原理a) 离散傅里叶变换(DFT):离散傅里叶变换在作为有限长序列的傅里叶变换表示法在理论上相当重要;由于存在着计算离散傅里叶变换的快速算法(FFT),从而离散傅里叶变换在各种数字信号处理的算法中起到了核心的作用。其对应的离散傅里叶变换对为:XK=DFTxn=n=0N-1xnWNnk 0kN-1 xn=IDFTXK=1Nn=0N-1xnWNnk 0n
2、N-1 需要注意:有限长序列的离散傅里叶变换及周期序列的离散傅里叶级数之间的关系是:它们仅仅是n、k的取值不同,DFT只取主值区间。X(n)、X(k)是一个有限长序列的离散傅里叶变换对,已知其中一个序列,就可以唯一确定另一个序列,这是因为x(n)、X(k)都是长为N的序列,都有N个独立值,所以信息量相同。b) DFT计算量:长度为N的DFT的计算量是N个复数乘法和N-1个复数加法(4N个实数乘法和4N-2个复数加法)c) FFT的计算量:长度为N的FFT的计算量是 N2log2N 个复数乘法和Nlog2N 个复数加法。三、 实验步骤a) 复习DFT的定义、性质和用DFT做谱分析的有关内容b)
3、复习FFT算法原理与编程思想,熟悉DIT-FFT运算流图c) 编制信号产生程序,产生典型信号尽心谱分析。d) 进行以下几个信号的谱分析i. x1(n)=R4nii. x2(n)=n+1 ,0n38-n ,4n70 ,其他niii. x3(n)= 4-n ,0n3n-3 ,4n70 ,其他niv. x4n=cos4n , 0n19v. x5n=sin8n , 0n19vi. x6n= cos8t+cos16t+cos20tvii. 令x7n=x4n+x5(n) N=8,16viii. 令x8n=x4n+jx5(n) N=8,16 针对上述信号进行逐一的谱分析,下面给出针对各个信号的FFT点数N及
4、对连续信号x6n的采样频率fs,供实验时参考 : x1n,x2n,x3n,x4n,x5n N=8,16 x6n fs=64Hz,N=16,32,64 四、 实验内容a) 对x1(n)=R4n进行谱分析1. 编辑代码x1=1 1 1 1;y11 = fft(x1,8);y12 = fft(x1,16);subplot(2,2,1);stem(0:3,x1);title(函数X1的图像);subplot(2,2,2);stem(0:7,abs(y11);title(N=8的DFT);subplot(2,2,4);stem(0:15,abs(y12);title(N=16的DFT);2. 谱分析图片
5、b) 对x2(n)=n+1 ,0n38-n ,4n70 ,其他n 进行谱分析i. 编辑代码 x2 = 1 2 3 4 4 3 2 1;y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:7,x2);title(函数X2的图像);subplot(2,2,2);stem(0:7,abs(y11);title(N=8的DFT);subplot(2,2,4);stem(0:15,abs(y12);title(N=16的DFT);ii. 谱分析图像 c) 对x3(n)= 4-n ,0n3n-3 ,4n70 ,其他n 进行谱分析i. 谱分析程序x3
6、 = 4 3 2 1 1 2 3 4;y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:7,x2);title(函数X2的图像);subplot(2,2,2);stem(0:7,abs(y11);title(N=8的DFT);subplot(2,2,4);stem(0:15,abs(y12);title(N=16的DFT);ii. 谱分析图片d) 对x4n=cos4n , 0n19 进行谱分析i. 谱分析程序n = 0:1:19;x2 = cos(0.25*pi*n);y11 = fft(x2,32);y12 = fft(x2,64)
7、;subplot(2,2,1);stem(0:19,x2);title(函数X4的图像);subplot(2,2,2);stem(0:31,abs(y11);title(N=32的DFT);subplot(2,2,4);stem(0:63,abs(y12);title(N=64的DFT);ii. 谱分析图片e) 对x5n=sin8n , 0n19 进行谱分析i. 谱分析程序n = 0:1:19;x2 = sin(0.125*pi*n);y11 = fft(x2,32);y12 = fft(x2,64);subplot(2,2,1);stem(0:19,x2);title(函数X5的图像);su
8、bplot(2,2,2);stem(0:31,abs(y11);title(N=32的DFT);subplot(2,2,4);stem(0:63,abs(y12);title(N=64的DFT);ii. 谱分析图片 f) 对x6n= cos8t+cos16t+cos20t 进行谱分析i. 谱分析程序 n = 0:1:15;x1 = cos(8*pi*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64);n = 0:1:31;x2 = cos(8*pi*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64);n = 0:1:63;x3 = cos(8*p
9、i*n/64)+cos(16*pi*n/64)+cos(20*pi*n/64);y1 = fft(x1,16);y2 = fft(x2,32);y3 = fft(x3,64);subplot(3,2,1);stem(0:15,x1);title(函数X6 N=16 的图像);subplot(3,2,2);stem(0:15,abs(y1);title(N=16的DFT);subplot(3,2,3);stem(0:31,x2);title(函数X6 N=32 的图像);subplot(3,2,4);stem(0:31,abs(y2);title(N=32的DFT);subplot(3,2,5)
10、;stem(0:63,x3);title(函数X6 N=64 的图像);subplot(3,2,6);stem(0:63,abs(y3);title(N=64的DFT);ii. 谱分析图片 g) 对x7n=x4n+x5(n) 进行谱分析i. 谱分析程序 n = 0:1:19;x2 = j*sin(0.125*pi*n) + cos(0.25*pi*n);y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:19,x2);title(函数X=X4 + X5 的图像);subplot(2,2,2);stem(0:7,abs(y11);titl
11、e(N=8的DFT);subplot(2,2,4);stem(0:15,abs(y12);title(N=16的DFT);ii. 谱分析图片 h) 对x8n=x4n+jx5(n) 进行谱分析i. 谱分析程序n = 0:1:19;x2 = j*sin(0.125*pi*n) + cos(0.25*pi*n);y11 = fft(x2,8);y12 = fft(x2,16);subplot(2,2,1);stem(0:19,x2);title(函数X=X4 + X5 的图像);subplot(2,2,2);stem(0:7,abs(y11);title(N=8的DFT);subplot(2,2,4
12、);stem(0:15,abs(y12);title(N=16的DFT);ii. 谱分析图片 五、 实验分析六、 实验结论 通过这次利用FFT对信号进行频谱分析的实验,更加深刻的理解了DFT算法的理解和性质的理解;同时也更为熟悉了FFT算法的原理和应用;学会使用FFT对离散信号和连续信号进行频谱分析,了解了可能出现的分析误差和原因。七、 思考题a) 在N=8时,x2n和x3(n)的幅频特性会相同吗?为什么?N=16呢?答:在N=8的时候,幅频特性相同。1.知 X(k)=0NxnwNnk 2.由表达式和图像可以知道x3n=x2(n-4)N3.X2k=0Nx2nwNnk X3k=0Nx3nwNnk
13、= 0Nx2n-4NRN(n) wNnk 4.由离散傅里叶变换的性质:序列的循环位移性质 DFTxn+m=wN-mkDFTx(n)可以得到:X3k=wN4kX2k5.可以知道:a.当N=8: X3k=w84kX2k=(-1)kX2k不改变幅度特性,只改变相位特性,则X2k=|X3k|b.当N=16:由于进行了补零处理,x2n 和 x3n 序列就无法满足x3n=x2(n-m)N,即不满足序列的循环位移,导致|X2k|X3k|b) 对一个周期序列分别取一个周期或多个周期所做的频谱分析结果是否有区别?答:有区别。1.知道DFT的计算为X(k)=0NxnwNnk (0kN)2.当N越大,所计算得到的在
14、X(k) 在0 2 范围内有更多的N的点数,这意味着频域的频率分辨率得到提高,使得频谱信息更为精细丰富。窗函数设计FIR滤波器一、 实验目的a) 熟悉熟悉矩形窗、汉宁窗、海明窗等常用窗函数b) 掌握用上述窗函数法设计FIR数字滤波器的原理和方法c) 熟悉线性相位FIR数字滤波器特性d) 了解各种窗函数对滤波特性的影响二、 实验原理a) 如果所希望的滤波器的理想频率响应函数为Hd(jw), 则其对应的单位冲激响应为hdn=12-Hd(jw)ejwn dw用窗函数w(n)将hdn截断,得到: hn=hdnw(n)h(n)就作为实际设计的FIR数字滤波器的单位冲激响应序列, 其频率响应函数为 Hjw
15、=n=0N-1h(n)e-jwn如果要求线性相位特性, 则h(n)还必须满足: h(n)=h(N-1-n) 根据上式中的正、负号和长度N取为奇数或偶数又将线性相位FIR滤波器分成四类。要根据所设计的滤波特性正确选择其中一类。三、 实验步骤a) 复习用窗函数法设计FIR数字滤波器一节内容,阅读本实验原理,掌握设计步骤b) 编写程序,画出滤波器的幅频特性和相频特性。其中幅频特性要求用分贝(dB)表示设 画图时,用20log|H(K)| 画出幅度特性注意:补零的作用N=15,N=33,wc=4 ,用三种窗函数设计线性相位低通滤波器。要求在两种窗口长度下,绘制相应的幅频特性和相频特性曲线,比较三种窗函
16、数对滤波器特性的影响。四、 实验内容a) 使用矩形窗设计i. 设计代码clc;clear;wc=pi/4;N=33;N1=33;a=(N-1)/2;n=0:(N-1);hdn=sin(wc*(n-a+eps)./(pi*(n-a+eps);wn=rectwin(N);hn=hdn.*wn;fn=1024;H=fft(hn,fn);Hdb=20*log10(abs(H)+eps(1)./(max(abs(H)+eps(1);w=0:2*pi/fn:2*pi*(fn-1)/fn;subplot(2,3,1);stem(n,hdn);xlabel(n);ylabel(hd(n);axis(0,N,-
17、0.1,0.3);title(hd(n);subplot(2,3,2);stem(n,wn);xlabel(n);ylabel(w(n);axis(0,N,-0.2,1.2);title(w(n);subplot(2,3,3);stem(n,hn);xlabel(n);ylabel(h(n);axis(0,N,-0.1,0.3);title(h(n);subplot(2,3,4);plot(w/pi,Hdb);xlabel(w/pi);ylabel(20log);% axis(0,1,-20,0);title(幅度);subplot(2,3,5);plot(w,unwrap(angle(H);
18、xlabel(w/rad);ylabel(相位/rad);axis(0,pi,-20,0);title(相位);ii. 图像分析 矩形窗N= 16矩形窗N=33b) 使用汉宁窗设计i. 代码设计clc;clear;wc=pi/4;N=33;N1=33;a=(N-1)/2;n=0:(N-1);hdn=sin(wc*(n-a+eps)./(pi*(n-a+eps);wn=hanning(N);hn=hdn.*wn;fn=1024;H=fft(hn,fn);Hdb=20*log10(abs(H)+eps(1)./(max(abs(H)+eps(1);w=0:2*pi/fn:2*pi*(fn-1)/f
19、n;subplot(2,3,1);stem(n,hdn);xlabel(n);ylabel(hd(n);axis(0,N,-0.1,0.3);title(hd(n);subplot(2,3,2);stem(n,wn);xlabel(n);ylabel(w(n);axis(0,N,-0.2,1.2);title(w(n);subplot(2,3,3);stem(n,hn);xlabel(n);ylabel(h(n);axis(0,N,-0.1,0.3);title(h(n);subplot(2,3,4);plot(w/pi,Hdb);xlabel(w/pi);ylabel(20log);% ax
20、is(0,1,-20,0);title(幅度);subplot(2,3,5);plot(w,unwrap(angle(H);xlabel(w/rad);ylabel(相位/rad);axis(0,pi,-20,0);title(相位);i. 图像分析汉宁窗N=15汉宁窗N=33c) 使用海明窗设计i. 代码设计clc;clear;wc=pi/4;N=33;N1=33;a=(N-1)/2;n=0:(N-1);hdn=sin(wc*(n-a+eps)./(pi*(n-a+eps);wn=hamming(N); hn=hdn.*wn;fn=1024;H=fft(hn,fn);Hdb=20*log10
21、(abs(H)+eps(1)./(max(abs(H)+eps(1);w=0:2*pi/fn:2*pi*(fn-1)/fn;subplot(2,3,1);stem(n,hdn);xlabel(n);ylabel(hd(n);axis(0,N,-0.1,0.3);title(hd(n);subplot(2,3,2);stem(n,wn);xlabel(n);ylabel(w(n);axis(0,N,-0.2,1.2);title(w(n);subplot(2,3,3);stem(n,hn);xlabel(n);ylabel(h(n);axis(0,N,-0.1,0.3);title(h(n);s
22、ubplot(2,3,4);plot(w/pi,Hdb);xlabel(w/pi);ylabel(20log);% axis(0,1,-20,0);title(幅度);subplot(2,3,5);plot(w,unwrap(angle(H);xlabel(w/rad);ylabel(相位/rad);axis(0,pi,-20,0);title(相位);ii. 图像分析海明窗N=15海明窗N=33五、 实验分析通过对于三种滤波器的设计,通过其对应的频谱分析图像,可以比较容易地看出,六、 实验结论通过窗函数设计FIR数字滤波器的过程,熟悉了矩形窗、汉宁窗、海明窗常用的窗函数;熟悉了窗函数设计法的
23、基本原理和方法;熟悉了线性相位数字滤波器的特性;通过FFT对窗函数的频谱分析,了解到了各种窗函数对滤波特性的影响。总的来说,加深了对书本中关于FIR数字滤波器设计部分的知识的感性理解,提高了相关的实验技能,提高了我们的专业知识的实践能力。七、 思考题a) 如果给定通带截至频率和阻带截止频率以及阻带最小衰减,如何用窗函数设计线性相位低通滤波器?写出设计步骤?答:1.通过阻带最小衰减指标选择合适的窗函数 wN(n) 2.由给定的通带截止频率和阻带截止频率得出过渡带宽w 3.通过过渡带宽选择合适的窗长度N(N取奇数) 4.得到理想低通滤波器的单位冲激响应hdn=sinwc(n-1)(n-a) (a=
24、N-12) 5.通过查表得到所需要的窗函数的表达式wN(n),然后与理想低通滤波器相乘,得到所想设计的实际滤波器: h(n)=hd(n)wN(n)b) 如果要求用窗函数法设计带通滤波器,且给定上、下带截止频率为w1与w2 ,试求理想带通的单位冲激响应。 答:1.知WNw=e-jwa w1ww2 , a=N-12 2.wnn=12-WNwejwn dw =12-w2-w1e-jwaejwn dw +w1w2e-jwaejwn dw =12-w2-w1ejwn-a dw +w1w2ejwn-a dw =121j(n-a) ejwn-a|-w2-w1 + 1j(n-a) ejwn-a|w1w2 dw =12j(n-a) e-w1jn-a-ew1jn-a + ew2jn-a-e-w2jn-a=12j(n-a) -2jsinw1n-a + 2jsinw2n-a =1(n-a) -sinw1n-a + sinw2n-a