用DFT(或者matlab中的fft函数)进行频谱分析时存在的两个问题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/defu123sss/article/details/84561569

1、频谱泄露

在实际应用中,通常将所观测与处理的信号限制在一定的时间间隔内,即在时域对信号进行“ 截断操作” ,或称作加时间窗(用时间窗函数乘以信号)。由卷积定理可知:时域相乘等于频域卷积,例如矩形窗R5(n)(形式比较简单一种窗函数)的频域幅度谱如图1左子图所示,将它卷积信号的频谱图,就造成“ 拖尾现象 ” ,称之为频谱泄漏。

 

图1

若序列x(n) 的长度为无限长,为了利用 DFT 进行频谱分析,首先必须将其截断为有限长序列  x_1(n)=x(n)R_N(n)

X(k)=FFT[x(n)],则

X_1(k)=FFT[x_1(n)]=FFT[x(n)R_N(n)]\\ \rightarrow X_1(e^{j\omega })=\frac{1}{{2\pi }}\int_{{\rm{ - }}\pi }^\pi X (e^{j\omega })R_N(e^{j(\omega-\theta)})d\theta

显然两种频谱是有差别的。

解决办法:

  • 采用其他形式的窗函数
  • 对于周期序列,取其过零点截取(但尽在仿真中可以实现,实际情况中基本找不到零点位置)

2、栅栏效应


利用FFT 进行频谱分析时,只知道离散频率点的整数倍处的频谱。在两个谱线之间的情况就不知道,这如同通过一个栅栏观察景象一样,故称作栅栏效应。

解决办法:在序列后面补零点加大FFT点数,可使谱线间隔变小来提高分辨力,以减少栅栏效应。
注意:若需要加窗,则应先加窗再补零。

展开阅读全文

没有更多推荐了,返回首页