《DSP研究性学习报告-频谱计算1-2题.doc》由会员分享,可在线阅读,更多相关《DSP研究性学习报告-频谱计算1-2题.doc(20页珍藏版)》请在三一办公上搜索。
1、 数字信号处理课程研究性学习报告DFT近似计算信号频谱专题研讨【目的】(1) 掌握利用DFT近似计算不同类型信号频谱的原理和方法。(2) 理解误差产生的原因与减小误差的方法。(3) 培养学生自主学习能力,以与发现问题、分析问题和解决问题的能力。【研讨题目】 基此题1利用DFT分析x(t)=Acos(2pf1t)+Bcos(2pf2t)的频谱,其中f1=100Hz,f2=120Hz。(1)A=B=1; (2)A=1,B=0.2。要求选择不同的窗函数。【题目分析】1. 对于第一小问,A=B=1,抽样频率应大于最高频率的2倍,才能防止频率混叠,另外由于信号无限长,所以采用矩形窗进展截短,要想分辨f1
2、,f2两个频率,应满足Nfsam/f 2.第二问中f2频率信号比拟弱,如果也采用矩形窗,会使得频率泄漏比拟大,无法检测到f2频率分量,因此应选择旁瓣较小的Hamming窗【仿真结果】【结果分析】对实验结果进展比拟,总结出选择适宜DFT参数的原那么。【自主学习容】【阅读文献】【发现问题】 (专题研讨或相关知识点学习中发现的问题):【问题探究】【仿真程序】N=30;L=512;f1=100;f2=120;fs=500;T=1/fs;ws=2*pi*fs;t=(0:N-1)*T;x=cos(2*pi*f1*t)+cos(2*pi*f2*t);X=fftshift(fft(x,L);w=(-ws/2+
3、(0:L-1)*ws/L)/(2*pi);plot(w,abs(X);ylabel(幅度谱)N=30;L=512;f1=100;f2=120;fs=500;T=1/fs;ws=2*pi*fs;t=(0:N-1)*T;x=cos(2*pi*f1*t)+0.15*cos(2*pi*f2*t);wh=(hamming(N);x=x.*wh;X=fftshift(fft(x,L);w=(-ws/2+(0:L-1)*ws/L)/(2*pi);plot(w,abs(X);ylabel(幅度谱)【研讨题目】 基此题2一离散序列为(1)用L=32点DFT计算该序列的频谱,求出频谱中谱峰的频率;(2)对序列进展
4、补零,然后分别用L=64、128、256、512点DFT计算该序列的频谱,求出频谱中谱峰的频率;(3)讨论所获得的结果,给出你的结论。该结论对序列的频谱计算有何指导意义?【题目分析】此题讨论补零对离散序列频谱计算的影响。【温磬提示】在计算离散非周期序列频谱时常用W/p作为横坐标,称W/p为归一化频率(normalized frequency)。在画频谱时需给出横坐标。每幅图下都需给出简要的文字说明。由于离散非周期序列频谱是周期的,所以在计算时不需要用fftshift 函数对fft计算的结果进展重新排列。【序列频谱计算的根本方法】【仿真结果】谱峰 14.5561谱峰的频率 3DFT点数:L=64
5、谱峰 14.5561谱峰的频率 6DFT点数:L=128谱峰 15.2671谱峰的频率 13DFT点数:L=256谱峰 15.2671谱峰的频率 26DFT点数:L=512谱峰 15.3563谱峰的频率 51【结果分析】【自主学习容】【阅读文献】【发现问题】 (专题研讨或相关知识点学习中发现的问题):【问题探究】【仿真程序】1N=32;k=0:N-1;xk=sin(0.2*pi*k);Xm=abs(fft(xk,N);stem(2*k/N,Xm);xlabel( Normalized frequency of 32 DFT);ylabel(幅度谱);grid on;a1 b1=max(Xm);
6、disp(谱峰 );disp(a1);disp(谱峰的频率);disp(k(b1);谱峰 14.5561谱峰的频率 32.N=32k=0:N-1;xk=sin(0.2*pi*k);L=input(DFT点数:L=);Xm=abs(fft(xk,L);m=0:L-1;stem(2*m/L,Xm);xlabel(normalized frequency of L=,num2str(L);hold on;ylabel(幅度谱);grid on;a1 b1=max(Xm);disp(谱峰 );disp(a1);disp(谱峰的频率);disp(m(b1);谱峰 14.5561谱峰的频率 3DFT点数:
7、L=64谱峰 14.5561谱峰的频率 6DFT点数:L=128谱峰 15.2671谱峰的频率 13DFT点数:L=256谱峰 15.2671谱峰的频率 26DFT点数:L=512谱峰 15.3563谱峰的频率 513.DFT点数越多,分辨率越高,补零只能使序列的频谱变得细致,但不能提高序列的频率分辨率,只有采集更多的有效数据,才能得到序列的高分辨率频谱。【研讨题目】 基此题3一离散序列为x k=AcosW0k+Bcos ( (W0+DW)k)。用长度N=64的哈明窗对信号截短后近似计算其频谱。试用不同的A和B的取值,确定用哈明窗能分辩的最小的谱峰间隔中c的值。M2-3【题目分析】此题讨论用哈
8、明窗计算序列频谱时的频率分辨率。【仿真结果】【结果分析】当两个相近频率幅度相差不大时,分辨效果比拟好。C从2到1.8,1.6,1.4变化,可知c1.6时能分辨开,并且c2时较为理想【自主学习容】【阅读文献】【发现问题】 (专题研讨或相关知识点学习中发现的问题):【问题探究】在离散序列频谱计算中为何要用窗函数?用不同的窗函数对计算结果有何影响?与矩形窗相比哈明窗有何特点?如何选择窗函数?由于计算机存储空间有限,因此我们需要利用窗函数来截取,得到短的序列近似计算频谱哈明窗旁瓣带走能量少,不同频率之间影响小,但其主瓣宽,因而影响分辨率。所以c的选取根据分辨率要求来选择。【仿真程序】w0=0.2*pi
9、;dw1=pi/32;dw2=pi/35.6;dw3=pi/40;dw4=pi/45.7;k=0:63;A=1;B=1;L=1028;x1=(A*cos(w0*k)+B*cos(w0+dw1)*k).*(0.54-0.46*(cos(2*pi/63*k);x2=(A*cos(w0*k)+B*cos(w0+dw2)*k).*(0.54-0.46*(cos(2*pi/63*k);x3=(A*cos(w0*k)+B*cos(w0+dw3)*k).*(0.54-0.46*(cos(2*pi/63*k);x4=(A*cos(w0*k)+B*cos(w0+dw4)*k).*(0.54-0.46*(cos(
10、2*pi/63*k);X1=fftshift(fft(x1,L);X2=fftshift(fft(x2,L);X3=fftshift(fft(x3,L);X4=fftshift(fft(x4,L);w=-pi:2*pi/L:pi-2*pi/L;subplot(2,2,1);plot(w/pi,abs(X1);subplot(2,2,2);plot(w/pi,abs(X2);subplot(2,2,3);plot(w/pi,abs(X3);subplot(2,2,4);plot(w/pi,abs(X4);【研讨题目】 基此题4一离散序列为xk=cos(W0k)+0.75cos(W1k), 0 k
11、 63 其中W0=0.4p, W1=W0+p/64(1) 对xk做64点FFT, 画出此时信号的频谱。(2) 如果(1)中显示的谱不能分辨两个谱峰,是否可对(1)中的64点信号补零而分辨出两个谱峰。通过编程进展证实,并解释其原因。(3) 给出一种能分辨出信号中两个谱峰的计算方案,并进展仿真实验。M2-4【题目分析】分析影响谱峰分辨率的主要因数,进一步认识补零在在频谱计算中的作用。【仿真结果】k=0:63;L=64;k=0:63;L=512;k=0:127;L=128;【结果分析】即使在序列后面补零仍不能分辨出两个谱峰。由于在后面继续补零,序列的不会有任何变化。由于L的增加,显示更多的细节,这样
12、能减小栅栏现象的影响,但连续信号在离散化和加窗过程中,由于混叠或泄漏等过程造成的信号频谱息的失真,那么无论如何补0也无法再恢复已损失的信息。提高分辨率,可以通过增加N的值实现。【自主学习容】【阅读文献】【发现问题】 (专题研讨或相关知识点学习中发现的问题):【问题探究】【仿真程序】k=0:63;L=64;w0=0.4*pi;w1=w0+pi/64;x=cos(w0*k)+0.75*cos(w1*k);x=x zeros(1,L-length(x);X=fftshift(fft(x);w=-pi:2*pi/L:pi-2*pi/L;plot(w/pi,abs(X);k=0:63;L=128;w0=
13、0.4*pi;w1=w0+pi/64;x=cos(w0*k)+0.75*cos(w1*k);x=x zeros(1,L-length(x);X=fftshift(fft(x);w=-pi:2*pi/L:pi-2*pi/L;plot(w/pi,abs(X);k=0:63;L=512;w0=0.4*pi;w1=w0+pi/64;x=cos(w0*k)+0.75*cos(w1*k);x=x zeros(1,L-length(x);X=fftshift(fft(x);w=-pi:2*pi/L:pi-2*pi/L;plot(w/pi,abs(X);k=0:127;L=128;w0=0.4*pi;w1=w
14、0+pi/64;x=cos(w0*k)+0.75*cos(w1*k);x=x zeros(1,L-length(x);X=fftshift(fft(x);w=-pi:2*pi/L:pi-2*pi/L;plot(w/pi,abs(X);【研讨题目】 基此题5试用DFT近似计算高斯信号的频谱抽样值。高斯信号频谱的理论值为通过与理论值比拟,讨论信号的时域截取长度和抽样频率对计算误差的影响。M2-6【题目分析】连续非周期信号频谱计算的根本方法。计算中出现误差的主要原因与减小误差的方法。【仿真结果】【结果分析】由于信号与频谱都有理论表达式,在进展误差分析时希望给出一些定量的结果。抽样频率的影响:非带限信
15、号会发生频谱混叠。又理论值可以看出,随频率的平方的增加而指数衰减。比照实验1,2.可知,提高抽样频率有助于结果更加准确,但同时对计算机也提出了更高的要求。时域截取长度的影响:时域截取会发生泄漏现象,此题使用矩形窗截取,泄漏现象其实比拟明显。比照实验2,3可知,时域截取长度越长,结果与理论值越接近。【自主学习容】【阅读文献】【发现问题】 (专题研讨或相关知识点学习中发现的问题):d值的选取问题。由理论计算公式可知,d值选为pi更为方便。同时,公式可知,进展DFT变换之前函数还要乘T,这样才能与Gjw对应。【问题探究】【仿真程序】N=2;d=pi;L=64;fs=1;T=1/fs;t=(-N/2:
16、N/2-1)*T;g=exp(-d*(t.2);ws=2*pi*fs;w=-pi/T:2*pi/L/T:(pi-2*pi/L)/T;G1=T*fftshift(fft(g,L);G2=sqrt(pi/d)*exp(-(w.2)/4/d);G3=abs(G1-G2);subplot(3,1,1)plot(w,abs(G1);subplot(3,1,2)plot(w,abs(G2);subplot(3,1,3)plot(w,abs(G3);N=2;d=pi;L=64;fs=2;T=1/fs;t=(-N/2:N/2-1)*T;g=exp(-d*(t.2);ws=2*pi*fs;w=-pi/T:2*p
17、i/L/T:(pi-2*pi/L)/T;G1=T*fftshift(fft(g,L);G2=sqrt(pi/d)*exp(-(w.2)/4/d);G3=abs(G1-G2);subplot(3,1,1)plot(w,abs(G1);subplot(3,1,2)plot(w,abs(G2);subplot(3,1,3)plot(w,abs(G3);N=4;d=pi;L=64;fs=2;T=1/fs;t=(-N/2:N/2-1)*T;g=exp(-d*(t.2);ws=2*pi*fs;w=-pi/T:2*pi/L/T:(pi-2*pi/L)/T;G1=T*fftshift(fft(g,L);G2=sqrt(pi/d)*exp(-(w.2)/4/d);G3=abs(G1-G2);subplot(3,1,1)plot(w,abs(G1);subplot(3,1,2)plot(w,abs(G2);subplot(3,1,3)plot(w,abs(G3);20 / 20