利用dft分析信号频谱matlab

上传人:xiao****1972 文档编号:84841807 上传时间:2019-03-05 格式:DOC 页数:6 大小:68.50KB
返回 下载 相关 举报
利用dft分析信号频谱matlab_第1页
第1页 / 共6页
利用dft分析信号频谱matlab_第2页
第2页 / 共6页
利用dft分析信号频谱matlab_第3页
第3页 / 共6页
利用dft分析信号频谱matlab_第4页
第4页 / 共6页
利用dft分析信号频谱matlab_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《利用dft分析信号频谱matlab》由会员分享,可在线阅读,更多相关《利用dft分析信号频谱matlab(6页珍藏版)》请在金锄头文库上搜索。

1、实验 2-1 利用 DFT分析信号频谱一、 实验目的1. 加深对 DFT 原理的理解。2. 应用 DFT 分析信号频谱。3. 深刻理解利用 DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法二、 实验内容1. x(n)= 2 ,1 ,1 ,1,完成如下要求:1) 计算其 DTFT,并画出 , 区间的波形2) 计算 4 点 DFT,并把结果显示在(1)所画的图形中3) 对 x (n)补零,计算 64 点 DFT,并显示结果4) 是否可以由 DFT 计算 DTFT,如果可以,请编程实现程序代码xn=2,-1,1,1;n=0:3;w=-pi:0.01:pi;X=xn*exp(-1i*n*

2、w); %计算 DTFTyy=abs(X);subplot(211);plot(w,yy);%绘出DTFT后的波形Y=fft(xn); %利用FFT计算 4点DFTyy=abs(Y);hold on;stem(0:3),yy); %绘出DFT后的波形,并同绘在一个图中N=64;m=6;xn=2,-1,1,1;xn=xn,zeros(1,60); %对 xn补零y=fft(xn);yy=abs(y);f=0:N-1;subplot(212);stem(f,yy); %绘出 64点 DFT图hold on;plot(f,yy); %由 DFT通过绘制包络近似得到 DTFT进行试验输出图像:由图可推

3、得DFT所取的点数越多,DFT越逼近DTFT故增加补零项,取1024个点程序如下:x1=2 -1 1 1;N=1024;x2=linspace(0,0,N-4);x=x1,x2;n=0:(N-1);w=0:0.01:2*pi/N*(N-1);%计算序列DTFTX=x*exp(-j*n*w);subplot(211);%绘制DTFT图像plot(w*N/(2*pi),abs(X),k);xlabel(Nw/2pi);title(DTFTx(n); xn=2,-1,1,1;xn=xn,zeros(1,1020); %对 xn补零y=fft(xn);f=0:N-1;subplot(212); plo

4、t(f,abs(y),k);%绘制DFT图像 xlabel(k);title(DFTx(n);输出图像:由图可知,当N取1024点时,DFT已经可以很好的近似DTFT。2. 考察序列x (n ) = cos(0 .48n ) + cos(0 .52n )1) 0 n 10时,用 DFT 估计 x (n )的频谱;将 x (n )补零加长到长度为 100点序列用 DFT估计 x (n )的频谱。要求画出相应波形。2) 0 n 100时,用 DFT 估计 x (n )的频谱,并画出波形程序代码n=0:10;x=cos(0.48*pi*n)+cos(0.52*pi*n); %x(n)频谱 n在 0到

5、 10y=fft(x);subplot(3,1,1);stem(n,y,filled);xn=x,zeros(1,90); %对 xn补零yn=fft(xn);hold on;nn=0:100;subplot(3,1,2);stem(nn,yn,filled);n1=0:100;x1=cos(0.48*pi*n1)+cos(0.52*pi*n1); %x(n)频谱 n在 0到 100y1=fft(x1);subplot(3,1,3);stem(n1,y1,filled);进行试验输出图像:3. 已知信号 x(t ) =0 .15 sin(2 f1t)+sin(2 f2t)- 0.1sin (2

6、 f3t),其中 f1=1Hz,f2=2Hz,f3=3Hz。从x (t)的表达式可以看出,它包含三个频率的正弦波,但是,从其时域波形来看,似乎是一个正弦信号,利用 DFT 做频谱分析,确定适合的参数,使得到的频谱的频率分辨率符合需要程序代码f1=1;f2=2;f3=3;t=0:0.01:2;x=0.15*sin(2*pi*f1*t)+sin(2*pi*f2*t)-0.1*sin(2*pi*f3*t);y=fft(x);subplot(211);plot(t,x);subplot(212);plot(t,abs(y)进行试验实验中,通过改变t的取值间隔与点数,逐渐形成满意频谱看到三个频率点如下图

7、。输出图像:三、 实验分析1. 分析第 1题的实验结果,说明 DFT 和 DTFT 的关系;分析序列补零加长后,对 DFT 结果的影响;分析是否可以利用 DFT 计算 DTFT,如果可以,怎么实现。答:一个N点离散时间序列的傅里叶变换(DTFT)所得的频谱是以2为周期延拓的连续函数。由采样定理,时域进行采样,则频域周期延拓,同样在频域进行采样,则时域也会周期延拓。DFT就基于这个理论,在频域进行采样,从而将信号的频谱离散化。所以,一个N点离散时间信号可以用一个频域内一个N点序列来唯一确定,这就是DFT表达式所揭示的内容。序列补零加长后,相当于频域的抽样点增多,反映在图形上即加零越多,频域抽样点

8、越多,DFT越逼近DTFT。如果只是要在图形上显示DTFT,可以通过取足够多的点DFT来实现。2. 分析第 2题实验结果,思考利用 DFT 计算频谱时如何提高频谱的分辨率;对序列补零加长是否能提高频谱的分辨率。答:更长的时域信号能够提供更高的频域分辨率,因为一个N点的时域信号能被分解为N/2+1个余弦信号和N/2+1个正弦信号,N增大则(N/2+1)也增大,频域间隔(1/2的时域采样频率)/(N/2+1)减小,所以频域分辨率提高了。所以利用DFT计算频谱时增加取样点的长度范围可以提高分辨率。补零加长并不会改变频域的间隔,所以不能提高分辨率。3. 分析第 3题实验结果,总结利用 DFT 计算连续时间信号频谱的方法,实现过程中需要注意的问题答:利用DFT计算连续时间信号频谱,首先进行时域抽样,所得的抽样数据进行DFT计算,然后再将离散数据连续化,得到连续时间信号的频谱。实现过程中应该注意时域抽样的间隔与长度,抽样不当将会丢失频率点,使计算出现错误。6

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号