matlab fft函数求频谱图中频谱泄露的问题-----原理:DFT的隐含周期性 N点DFT的物理意义:X(k)实质上是x(n)的周期延拓序列的频谱特性。

1.先上效果
close all
fs=8;
f1=1;f2=0.5;
N=16;
t=0:1/fs:(N-1)/fs;
%包含f1,f2整数倍周期的最少点数就是16
x=cos(2pit+pi/4)+2cos(2pi0.5t+pi/8);
X=fft(x);
stem((0:N-1),abs(X));
figure;
stem((0:N-1),angle(X)/pi*180);
在这里插入图片描述
在这里插入图片描述

perfect。这是最perfect的图了,不能再perfect了。好在哪?
1.幅频相频横坐标完全对应。当点数过多时,偏移一个点我们可能觉得无所谓,而且也看不出来,这里就很明确地表示出来正确的了。幅频图最右面一个点不是fs!!!因为采样后幅频图是周期延拓的,有了f=0(第一个点),那么一个周期内肯定不会有fs了。这个例子中N=16才是对应的fs,可是一个周期只有0~N-1.
2.没有频谱泄露,即频谱图中只在N=1和N=2的位置有谱线,N=16对应采样频率fs,N=1和N=2就对应f=0.5和1,完全正确。
3.相频图反应信号初始相位。N=1(f=0.5)时,是22.5度,N=2(f=1)时是45度。

本博客主要说明matlab fft函数频谱泄露的问题,那有频谱泄露是怎样的呢?

close all
fs=8;
f1=1;f2=0.5;
N=20;
t=0:1/fs:(N-1)/fs;
%包含f1,f2整数倍周期的最少点数就是16
x=cos(2*pi*t+pi/4)+2*cos(2*pi*0.5*t+pi/8);
X=fft(x);
stem((0:N-1),abs(X));
figure;
stem((0:N-1),angle(X)/pi*180);

在这里插入图片描述
在这里插入图片描述
首先图中,在N=1和2之外的点不是0了,即出现了频谱泄露。那再看代码中哪里做了更改呢?可以看到只是改了作图点数。改了点数为什么就会出现频谱泄露呢?而且相频图也不能正确反映正确初相了。
以下内容抄自坚持的长弓博客
胡广书的《数字信号处理-理论、算法与实现(第二版)》第三章第八节《关于正弦信号抽样的讨论》,得出了关于正弦信号抽样的六个结论,最后总结了一个总的原则:抽样频率应为信号频率的整数倍,抽样点数应包含整周期。
书中的结论五与采样频率和抽样点数有很大的关联。结论五主要说只有满足了上面的那个总的原则,频谱泄漏才不会发生。
考虑一个无限长的正弦信号(相当于初相为-90°),如果我们截取它的整数个周期,然后对截短的信号进行周期延拓,则得到的延拓的信号与原无限长正弦没有区别。
现在我们再次对这个无限长的正弦进行截短,长度为1.5个周期,然后对截短信号进行周期延拓,看看我们得到了什么?
下图,截短信号
在这里插入图片描述

下图,对截短信号周期延拓:
在这里插入图片描述
可以看出,此时进行周期延拓得到的信号与原来的正弦信号大相径庭。新的周期信号是一个周期的偶函数,原无限长正弦是一个周期的奇函数,两者奇偶性都不一样了,因此不能指望利用新的信号的DFT求出原信号的频谱。

exp(-jωt)=cos(ωt)-jsin(ωt),进行变换的时候,若f(t)为实偶函数,则f(t)sin(ωt)就是奇函数,对一个奇函数在对称区间内积分只能得到0,因此实偶函数的傅立叶变换肯定是实的,对一个实数用angle求相位,当然相位是0。而原正弦肯定是初相为-90°。
我想这就是问题所在,DFT就是DFS,只不过DFT先将有限长信号进行周期延拓,然后求DFS,再截取一个周期。
这句总结只真的牛皮。一下子就清楚了。
使用DFT,在有限的观测时间内采集信号的信息。如若观测时间内正好得到了整数个正弦周期,则DFT的周期延拓可以不失真的表示原正弦,可是如果观测时间内得到的信号不是整数个周期,那么问题随之而来,就像上面的例子,观测时间内得到了1.5个周期的正弦,然后进行周期延拓,显然乱了套。
随便找以本dsp的书,找出dft那一章,肯定有DFT的隐含周期性那一节。上面写着N点DFT的物理意义:X(k)实质上是x(n)的周期延拓序列 x ( n ) N {\rm{x}}{(n)_N} x(n)N的频谱特性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值