WEO啦

实验二利用DFT分析离散信号频谱
收录时间:2022-11-25 21:38:02  浏览:0
实验二 利用DFT分析离散信号频谱1/ 利用FFT分析信号的频谱; (1) 确定DFT计算的参数; (2) 进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。答:(1)信号xk的周期N=16,角频率w0=2*pi/N=pi/8/作fft的点数N=16。 (2)计算程序: N=16/k=0/N-1/x=cos(3*pi/8*k)/X=fft(x/N)/subplot(2/1/1)/stem(k-N/2/abs(fftshift(X)/ylabel(幅度谱) xlabel(m)subplot(2/1/2)/stem(k-N/2/angle(fftshift(X)/ylabel(相位谱) xlabel(m) 计算结果: 我们还可以利用ifft函数进行相应的傅里叶反变换,以得到时域上的xk,分析程序如下: N=16/k=0/N-1/x1=cos(3*pi/8*k)/X=fft(x1/N)/subplot(2/1/1)stem(k/x1)ylabel(傅里叶变换前的时域波形)xlabel(k)x2=ifft(X/N)/subplot(2/1/2)stem(k/x2)ylabel(傅里叶反变换后的时域波形)xlabel(k) 结果如下: 可以看出:经过傅里叶变换和相应反变换后的信号与原信号的时域波形完全相同。 2/ 利用FFT分析信号的频谱;(1) 确定DFT计算的参数;(2) 进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。 答:(1)信号无限长,因此需要对其进行截短。该序列单调衰减,当k=10时,序列已几乎衰减为0,因此只取序列在区间0,10上的数值进行分析。 (2)计算程序: k=0/10/x=(1/2)/k/subplot(2/1/1)/stem(k/x)/ subplot(2/1/2)/w=k-5/ plot(w/ abs(fftshift(fft(x)/ ylabel(幅度谱)xlabel(w) 计算结果: 3/ 有限长脉冲序列,利用FFT分析其频谱,并绘出其幅度谱与相位谱。 答:计算程序: k=0/5/x=2 3 3 1 0 5/w=k-3/subplot(2/1/1)/stem(w/abs(fftshift(fft(x/6)/ylabel(幅度谱)xlabel(w)subplot(2/1/2)/stem(w/angle(fftshift(fft(x/6)/ylabel(相位谱) xlabel(w)计算结果:4/ 某周期序列由3个频率组成: ,利用FFT分析其频谱。如何选取FFT的点数N?此3个频率分别对应FFT计算结果Xm中的哪些点?若选取的N不合适,FFT计算出的频谱Xm会出现什么情况? 答:序列xk的周期为N=32,取FFT的点数N=32进行频谱分析,程序如下: N=32/k=0/N-1/x=cos(7*pi/16*k)+cos(9*pi/16*k)+cos(pi/2*k)/X=fft(x/N)/subplot(2/1/1)/stem(k-N/2/abs(fftshift(X)/ylabel(幅度谱)xlabel(m)subplot(2/1/2)/stem(k-N/2/angle(fftshift(X)/ylabel(相位谱)xlabel(m) 分析结果: 信号xk的三个频率分别对应FFT计算结果Xm中的m=7/m=9/m=8对于离散周期序列进行FFT频谱分析时取计算的点数为序列的周期N,如果计算的点数不是此离散周期序列的周期时,Xm会发生变化,此时并不表示序列xk的频谱,而相当于将序列xk的周期扩大或者缩减后得到新信号的频谱。在本例中,若取N=2032,则可以得到另外不同的幅度谱和相位谱,这里不再详细画出。5/ 某离散序列由3个频率组成/ 利用FFT分析其频谱。(1) 对xk做64点FFT,绘出信号频谱,能分辨出其中的两个频率吗?(2) 对xk补零到256点后计算FFT,能分辨出其中的两个频率吗?(3) 选用非矩形窗计算FFT,能够分辨出其中的两个频率吗? (4) 若不能够很好地分辨出其中的两个频谱,应采取哪些措施?答:(1)对xk做64点FFT/程序如下: k=0/63/x=cos(2*pi/15*k)+0/75*cos(2/3*pi/15*k)/X=fft(x/64)/stem(k-32/abs(fftshift(X)ylabel(幅度谱)xlabel(m) 可以得到幅度谱和相位谱如下: 很明显,根据上面的幅度谱不能分辨出信号xk中的两个频率。(2)对xk补零后做256点FFT: k=0/63/x=cos(2*pi/15*k)+0/75*cos(2/3*pi/15*k)/X=fft(x/256)/n=-128/127stem(n/abs(fftshift(X) 运行结果如下: 根据上面的幅度谱不能分辨出信号xk的两个频率。 (3)选用非矩形窗(主要有汉宁窗、哈明窗、布拉克曼窗和凯塞窗)计算fft,能够分辨其中的两个频率,具体实现过程我将在下学期和数字信号处理这门课一起学习。6/ 已知序列利用FFT分析下列信号的幅频特性,频率范围为,N=500点。 (1) (2) (3) 若将上述xk乘以cos(pk/2) ,重做(1)和(2)。答:序列xk是关于***左右对称的,因此我只考虑***右侧信号的幅频特性。程序如下: k=0/50/x=exp(-0/5*(0/1*k)/2)/X=fft(x/500)/n=-250/249/subplot(3/1/1)stem(n/abs(fftshift(X)ylabel(xk的傅里叶变换)xlabel(n) k=0/25/x=exp(-0/5*(0/2*k)/2)/X=fft(x/500)/n=-250/249/subplot(3/1/2)stem(n/abs(fftshift(X)ylabel(x2k的傅里叶变换)xlabel(n) k=0/12/x=exp(-0/5*(0/4*k)/2)/X=fft(x/500)/n=-250/249/subplot(3/1/3)stem(n/abs(fftshift(X)ylabel(x4k的傅里叶变换)xlabel(n)根据上述程序,我得到的上述三个信号的幅频特性如下图所示: 可以看出:信号在时域上进行压缩,对应则在频域上进行扩展,时域和频域上的变换存在着一种相反的关系。(3)若将上述xk乘以cos(pk/2),取p=3,则与前问相同进行频谱分析,程序如下: syms pp=3/k=0/50/x=exp(-0/5*(0/1*k)/2)/*cos(0/5*p*k)/X=fft(x/500)/n=-250/249/subplot(3/1/1)stem(n/abs(fftshift(X)ylabel(xk的傅里叶变换)xlabel(n) k=0/25/x=exp(-0/5*(0/2*k)/2)/*cos(p*k)/X=fft(x/500)/n=-250/249/subplot(3/1/2)stem(n/abs(fftshift(X)ylabel(x2k的傅里叶变换)xlabel(n) k=0/12/x=exp(-0/5*(0/4*k)/2)/*cos(2*p*k)/X=fft(x/500)/n=-250/249/subplot(3/1/3)stem(n/abs(fftshift(X)ylabel(x4k的傅里叶变换)xlabel(n)运行结果如下图:四/ 实验思考题1/ 既然可直接由DTFT定义计算序列DTFT,为何利用DFT分析序列的频谱?答:在时域,两者都是离散时间序列,在频域,DTFT是连续周期曲线X(jw),而DFT则是与时间序列同长的离散序列频谱X(k)。matlab无法计算连续变量w,只能在 范围内把w赋值为很密的、长度很长的向量k*dw来近似连续变量。也就是说,能够用计算机以很高效率计算的,只有离散傅里叶变换DFT/所以利用DFT分析序列的频谱。2/ 若序列持续时间无限长,且无解析表达式,如何利用DFT分析其频谱?答:当序列为无限长时,需要根据能量分布,进行截短。确定作FFT的点数N,然后使用fft函数作N点FFT计算Xm。3/ 在利用DFT分析离散信号频谱时,会出现哪些误差?如何克服或改善?答:DFT是DTFT在主值区间的等间隔采样,DTFT则是DFT在密集的频点上的插值,并作周期延拓。插值肯定存在精度的问题,因此用DFT分析离散信号频谱时会产生误差,我认为可以通过增加作fft的点数N来减小插值间隔,从而克服或改善因插值带来的误差。4/ 在利用DFT分析离散信号频谱时,如何选择窗函数?答:(1)若序列为离散周期序列,则先确定离散周期序列xk的基本周期N,然后利用fft函数求其一个周期的DFT,得到Xm;(2)若序列为离散非周期序列,当序列为无限长时,需要根据能量分布,首先进行截短。然后确定fft的点数N,使用fft函数作N点FFT计算Xm;(3)如果序列中有两个非常接近的频率,用矩形窗进行fft计算难以分辨时,可以通过选择合适的非矩形窗(汉宁窗、哈明窗、布拉克曼窗和凯
温馨提示:
1. WEO啦仅展示《实验二利用DFT分析离散信号频谱》的部分公开内容,版权归原著者或相关公司所有。
2. 文档内容来源于互联网免费公开的渠道,若文档所含内容侵犯了您的版权或隐私,请通知我们立即删除。
3. 当前页面地址:https://www.weo.la/doc/1eb68e809969cfc7.html 复制内容请保留相关链接。