码迷,mamicode.com
首页 > 其他好文 > 详细

正余弦信号的DFT频谱分析

时间:2014-10-15 23:58:11      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:matlab   频谱泄露   频率分辨率   dft   

一般的,对正余弦信号进行采样并DFT运算,画出频谱图,会发现频谱并不干净。这种现象称为频谱泄漏。因为DFT运算只能是有限序列,突然的截断产生了泄漏。

会有这样的特殊情况,当采样截取的刚好是整数个周期,则频谱图显得特别干净。可以理解为刚好取的完整周期,周期性明显了,频率就比较单一。

为此做了matlab实验:

ts = 0.01;%采样率100Hz

n = 0:N-1;

y = sin(2*pi*20*n*ts);%20Hz信号,每周期采5个点

xk = abs(fft(y,N));%注意根据fft算法,这里的N和序列长度N是一样的

stem(xk);

当N = 20、22、24、25时的频谱:

bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

因为20和25是5的倍数,取的周期是完整的,所以频谱是干净的。这就是所谓的特殊情况。

但一般的,取不到完整的周期,频谱泄漏是避免不了的。而且泄露的严重了会影响分辨能力。那么接下来的问题是,怎么提高分辨力?

我们试一试采样点数,同时FFT点数也增加了。当N=64时的频谱:

bubuko.com,布布扣

通常DFT点数可以增加,采样点数增加不了,于是我们有了补零的方法。

以上面的例子为例,还是64点DFT,但是n是0:24,后面的补零,即 y = [sin(2*pi*20*n*ts),zeros(1,39)];补到64个点。这样得到的频谱是:

bubuko.com,布布扣

我们再取高的点数。当采样点数等于DFT点数等于1024时的频谱:

bubuko.com,布布扣

当采样点数靠补零的方法补到1024个点的频谱:

bubuko.com,布布扣

因此我们得到重要结论:

为了使得频谱更加精确,即逼近于DTFT的波形,有两种方法。第一种方法是采样长度和DFT长度都增加,如果可能应该尽可能采取这种方法,这种方法能提高实际的分辨率,减少泄漏。第二种方法是增加DFT长度,而采样长度通过补零补到一样的长度。这种方法只能增加视在分辨率,该泄漏的还是泄漏了。

正余弦信号的DFT频谱分析

标签:matlab   频谱泄露   频率分辨率   dft   

原文地址:http://blog.csdn.net/hunterlew/article/details/40117785

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!