matlab用DFT画信号频谱,利用DFT分析信号频谱matlab

41528d3028836879cd698677c3999917.gif利用DFT分析信号频谱matlab

实验 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 *w); %计算 DTFT yy=abs(X); subplot(211); plot(w,yy);%绘出DTFT后的波形 Y=fft(xn); %利用FFT计算 4点DFT yy=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 进行试验 输出图像: 由图可推得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);%计算序列DTFT X=x*exp(-j*n *w); subplot(211);%绘制DTFT图像 plot(w*N/(2*pi),abs(X), k ); xlabel( Nw/2\pi ); title( DTFT[x(n)] ); xn=[2,-1,1,1]; xn=[xn,zeros(1,1020)]; %对 xn补零 y=fft(xn); f=0:N-1; subplot(212); plot(f,abs(y), k );%绘制DFT图像 xlabel( k ); title( DFT[x(n)] ); 输出图像: 由图可知,当N取1024点时,DFT已经可以很好的近似DTFT。 2. 考察序列 x (n ) = cos(0 .48πn ) + cos(0 .52πn ) 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到 10 y=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到 100 y1=fft(x1); subplot(3,1,3); stem(n1,y1, filled ); 进行试验 输出图像: 3. 已知信号 x(t ) =0 .15 sin(2π f1t)+sin(2π f2t)- 0.1sin (2π 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的取值间隔与点数,逐渐形成满意频谱看到三个频率点如下图。 输出图像: 三、 实验分析 1. 分析第 1题的实验结果,说明 DFT 和 DTFT 的关系;分析序列补零加长后,对 DFT 结果的影响;分析是否可以利用 DFT 计算 DTFT,如果可以,怎么实现。 答:一个N点离散时间序列的傅里叶变换(DTFT)所得的频谱是以2π为周期延拓的连续函数。由采样定理,时域进行采样,则频域周期延拓,同样在频域进行采样,则时域也会周期延拓。DFT就基于这个理论,在频域进行采样,从而将信号的频谱离散化。所以,一个N点离散时间信号可以用一个频域内一个N点序列来唯一确定,这就是DFT表达式所揭示的内容。序列补零加长后,相当于频域的抽样点增多,反映在图形上即加零越多,频域抽样点越多,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计算,然后再将离散数据连续化,得到连续时间信号的频谱。实现过程中应该注意时域抽样的间隔与长度,抽样不当将会丢失频率点,使计算出现错误。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值