实验二利用DFT分析离散信号频谱

上传人:沈*** 文档编号:45382545 上传时间:2021-12-07 格式:DOC 页数:17 大小:151.50KB
收藏 版权申诉 举报 下载
实验二利用DFT分析离散信号频谱_第1页
第1页 / 共17页
实验二利用DFT分析离散信号频谱_第2页
第2页 / 共17页
实验二利用DFT分析离散信号频谱_第3页
第3页 / 共17页
资源描述:

《实验二利用DFT分析离散信号频谱》由会员分享,可在线阅读,更多相关《实验二利用DFT分析离散信号频谱(17页珍藏版)》请在装配图网上搜索。

1、实验二 利用DFT分析离散信号频谱 1. 利用FFT分析信号的频谱; (1) 确定DFT计算的参数; (2) 进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。 答:(1)信号x[k]的周期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('幅

2、度谱') xlabel('m') subplot(2,1,2); stem(k-N/2,angle(fftshift(X))); ylabel('相位谱') xlabel('m') 计算结果: 我们还可以利用ifft函数进行相应的傅里叶反变换,以得到时域上的x[k],分析程序如下: N=16;k=0:N-1; x1=cos(3*pi/8*k); X=fft(x1,N); subplot(2

3、,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) 进行理论值与计算值比较,讨论信

4、号频谱分析过程中误差原因及改善方法。 答:(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')

5、 计算结果: 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('相位谱')

6、 xlabel('w') 计算结果: 4. 某周期序列由3个频率组成: , 利用FFT分析其频谱。如何选取FFT的点数N?此3个频率分别对应FFT计算结果X[m]中的哪些点?若选取的N不合适,FFT计算出的频谱X[m]会出现什么情况? 答:序列x[k]的周期为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); subplo

7、t(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’) 分析结果: 信号x[k]的三个频率分别对应FFT计算结果X[m]中的m=7,m=9,m=8 对于离散周期序列进行FFT频谱分析时取计算的点数为

8、序列的周期N,如果计算的点数不是此 离散周期序列的周期时,X[m]会发生变化,此时并不表示序列x[k]的频谱,而相当于将序列 x[k]的周期扩大或者缩减后得到新信号的频谱。在本例中,若取N=20<32,则可得到下图所 示的幅度谱和相位谱: 同理,若取N=40>32,则可以得到另外不同的幅度谱和相位谱,这里不再详细画出。 5. 某离散序列由3个频率组成: 利用FFT分析其频谱。 (1) 对x[k]做64点FFT,绘出信号频谱,能分辨出其中的两个频率吗? (2) 对x[k]补零到256点后计算FFT,能分辨出其中的两个频率吗? (3) 选用非矩

9、形窗计算FFT,能够分辨出其中的两个频率吗? (4) 若不能够很好地分辨出其中的两个频谱,应采取哪些措施? 答:(1)对x[k]做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') 可以得到幅度谱和相位谱如下: 很明显,根据上面的幅度谱不能

10、分辨出信号x[k]中的两个频率。 (2)对x[k]补零后做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:127 stem(n,abs(fftshift(X))) 运行结果如下: 根据上面的幅度谱不能分辨出信号x[k]的两个频率。 (3)选用非矩形窗(主要有汉宁窗、哈明窗、布拉克曼窗和凯塞窗)计算fft,能够分辨其中的两个频率,具体实现过

11、程我将在下学期和数字信号处理这门课一起学习。 6. 已知序列 利用FFT分析下列信号的幅频特性,频率范围为,N=500点。 (1) (2) (3) 若将上述x[k]乘以cos(pk/2) ,重做(1)和(2)。 答:序列x[k]是关于原点左右对称的,因此我只考虑原点右侧信号的幅频特性。程序如下: 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)))

12、 ylabel('x[k]的傅里叶变换') 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('x[2k]的傅里叶变换') xlabel('n') k=0:12; x=exp(-0.5*(0.4*k).^2); X=fft(x,500); n=-250:249; subplot(3,1,3) ste

13、m(n,abs(fftshift(X))) ylabel('x[4k]的傅里叶变换') xlabel('n') 根据上述程序,我得到的上述三个信号的幅频特性如下图所示: 可以看出:信号在时域上进行压缩,对应则在频域上进行扩展,时域和频域上的变换存在着一种相反的关系。 (3)若将上述x[k]乘以cos(pk/2),取p=3,则与前问相同进行频谱分析,程序如下: syms p p=3; k=0:50; x=exp(-0.5*(0.1*k).^2).*cos(0.5*p*

14、k); X=fft(x,500); n=-250:249; subplot(3,1,1) stem(n,abs(fftshift(X))) ylabel('x[k]的傅里叶变换') 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('x[2k]的傅里叶变换') xlabel('n')

15、 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('x[4k]的傅里叶变换') xlabel('n') 运行结果如下图: 四. 实验思考题 1. 既然可直接由DTFT定义计算序列DTFT,为何利用DFT分析序列的频谱? 答:在时域,两者都是离散时间序列,在频域,DTFT是连续周期曲线X(jw),而DFT则是与 时间序列同长的离散序列频谱X(

16、k)。matlab无法计算连续变量w,只能在 范围内 把w赋值为很密的、长度很长的向量k*dw来近似连续变量。也就是说,能够用计算机以很 高效率计算的,只有离散傅里叶变换DFT,所以利用DFT分析序列的频谱。 2. 若序列持续时间无限长,且无解析表达式,如何利用DFT分析其频谱? 答:当序列为无限长时,需要根据能量分布,进行截短。确定作FFT的点数N,然后使用fft函数作N点FFT计算X[m]。 3. 在利用DFT分析离散信号频谱时,会出现哪些误差?如何克服或改善? 答:DFT是DTFT在主值区间的等间隔采样,DTFT则是DFT在密集的频点上的插值,并作周

17、期延拓。插值肯定存在精度的问题,因此用DFT分析离散信号频谱时会产生误差,我认为可以通过增加作fft的点数N来减小插值间隔,从而克服或改善因插值带来的误差。 4. 在利用DFT分析离散信号频谱时,如何选择窗函数? 答:(1)若序列为离散周期序列,则先确定离散周期序列x[k]的基本周期N,然后利用fft函数求其一个周期的DFT,得到X[m]; (2)若序列为离散非周期序列,当序列为无限长时,需要根据能量分布,首先进行截短。然后确定fft的点数N,使用fft函数作N点FFT计算X[m]; (3)如果序列中有两个非常接近的频率,用矩形窗进行fft计算难以分辨时,可以通过选择合适的非矩形窗(汉宁窗、哈明窗、布拉克曼窗和凯塞窗)进行计算,从而进行频率的分辨。 5. 序列补零和增加序列长度都可以提高频谱分辨率吗? 两者有何本质区别? 答:序列补零和增加序列长度都可以提高频谱分辨率,因为二者都可以增加作fft的点数N,N增大,ω就减小,所以频谱被更加的细分,分辨率提高; 两者的本质区别:序列补零后用fft计算得到的是补零后序列的频谱,而增加序列长度后用fft计算得到的是长度增加后序列的频谱,即二者表示的是不同序列的频谱。 17 / 17文档可自由编辑

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!