廖老师说频谱泄漏是指有新的频率分量生成。一句话get到点上。
对于频谱泄露,信号为无限长序列,运算需要截取其中一部分(截断),于是需要加窗函数,加了窗函数相当于时域相乘,于是相当于频域卷积,于是频谱中除了本来该有的主瓣之外,还会出现本不该有的旁瓣。还有为了减弱频谱泄露,可以采用加权的窗函数,加权的窗函数包括平顶窗、汉宁窗、高斯窗等等。而未加权的矩形窗泄露最为严重。
分析矩形窗对余弦序列 x ( n ) = cos ( ω 0 n ) x(n) = \cos(\omega_0 n) x(n)=cos(ω0n)在时域截断前后频谱的变化。
对于无限长的余弦序列,其频谱为:
X ( e j ω ) = π ∑ k = − ∞ ∞ [ δ ( ω + ω 0 + 2 k π ) + δ ( ω − ω 0 + 2 k π ) ] X(e^{j\omega}) = \pi \sum_{k=-\infty}^{\infty} \left[ \delta(\omega + \omega_0 + 2k\pi) + \delta(\omega - \omega_0 + 2k\pi) \right] X(ejω)=πk=−∞∑∞[δ(ω+ω0+2kπ)+δ(ω−ω0+2kπ)]
现用矩形窗对余弦序列进行时域截断,得到 x N ( n ) = cos ( ω 0 n ) R N ( n ) x_N(n) = \cos(\omega_0 n) R_N(n) xN(n)=cos(ω0n)RN(n), R N ( n ) R_N(n) RN(n)为 N N N点矩形窗函数。根据频域卷积定理可知,时域相乘对应频域的卷积运算,即:
X N ( e j ω ) = 1 2 π X ( e j ω ) ∗ W N ( e j ω ) X_N(e^{j\omega}) = \frac{1}{2\pi} X(e^{j\omega}) * W_N(e^{j\omega}) XN(ejω)=2π1X(ejω)∗WN(ejω)
N点矩形序列的 DTFT 结果为:
W N ( e j ω ) = 1 − e − j ω N 1 − e − j ω = e − j ω N − 1 2 sin ( ω N / 2 ) sin ( ω / 2 ) W_N(e^{j\omega}) = \frac{1 - e^{-j\omega N}}{1 - e^{-j\omega}} = e^{-j\omega \frac{N-1}{2}} \frac{\sin(\omega N / 2)}{\sin(\omega / 2)} WN(ejω)=1−e−jω1−e−jωN=e−jω2N−1sin(ω/2)sin(ωN/2)
余弦信号的频谱为冲激函数串,在此仅考虑 [ − π , π ] [-π, π] [−π,π]区间正频率的 DTFT 结果,可得:
X N ( e j ω ) = 1 2 W N ( e j ( ω − ω 0 ) ) = 1 2 1 − e − j ( ω − ω 0 ) N 1 − e − j ( ω − ω 0 ) X_N(e^{j\omega}) = \frac{1}{2} W_N(e^{j(\omega - \omega_0)}) = \frac{1}{2} \frac{1 - e^{-j(\omega - \omega_0) N}}{1 - e^{-j(\omega - \omega_0)}} XN(ejω)=21WN(ej(ω−ω0))=211−e−j(ω−ω0)1−e−j(ω−ω0)N
余弦函数的连续傅里叶变换式冲激对,余弦序列幅度谱在截断前为冲激函数 π δ ( ω − ω 0 ) \pi\delta(\omega - \omega_0) πδ(ω−ω0)。
以10Hz的纯余弦波举例,下图给出了截断后余弦序列的幅度谱。从图中可以看出,本来只有一种频率分量,截断后的幅度谱“变宽变多”了,占据了整个 [ − π , π ] [-π, π] [−π,π]区间,包含了与10Hz频率相近的其他频率分量。频谱出现在了不该出现的区间,扩散到了 ω = ω 0 \omega = \omega_0 ω=ω0之外。
一句话,所谓频谱泄露(或者扩散),就是频谱中出现了本来没有的频率分量。
泄露这个词特别难听,还不如叫扩散。
如果把窗长度 N N N逐渐加大,余弦序列频谱的主瓣会变得又高又窄。当 N → ∞ N \rightarrow \infty N→∞时,主瓣宽度趋向于 0,高度趋向于无穷大,变化为冲激函数。
对连续时间余弦信号采样,只要满足奈奎斯特采样定理的要求就不会带来频谱的混叠失真。但是,对采样后的余弦序列进行时域截断就会引起频谱泄漏,这是无法避免的。