还是这个图,我不明白廖老师为什么纠结这几个图不放过。Rafael Gonzalez的《数字图像处理》概念不清楚的地方,我就直接放过了,我为什么要和基础差的人纠结。
现在的问题是图(c )到图(d)为什么会产生Gibbs效应。这与补零(哪怕是异想天开的信号前部补零,好在不影响幅值谱,他这个图无论从哪幅图到哪幅图都不是直接的傅里叶变换或傅里叶逆变换,需要无数个循环移位)无关,与边界不连续也无关。这是由于频域采样造成的。理论基础是频域采样定理。
有限长序列的频谱分析——DTFT&DFT中说到时域补零对应频域增加采样点,作用是增加频域的采样密度。更好的观察有限长序列的频谱呗。
但是Rafael Gonzalez在这里用这个图是想说明不能对滤波器零延拓,因为频域滤波器会有Gibbs效应。因为他就是认准了要放大一倍,非得要零延拓的边界条件。没有必要,而且我讨厌零延拓。
在这里我解释这个Gibbs效应是如何发生的。
根据频域采样定理和频域插值重构可知,可以利用 N N N个频域采样值 X ( k ) X(k) X(k)来重构出连续的频率响应函数 X ( e j ω ) X(e^{j\omega}) X(ejω)。频率采样设计法便是从频域出发,对理想滤波器的频率响应 H ideal ( e j ω ) H_{\text{ideal}}(e^{j\omega}) Hideal(ejω)等间隔采样:
H ideal ( k ) = H ideal ( e j ω ) ∣ ω = 2 π N k H_{\text{ideal}}(k) = H_{\text{ideal}}(e^{j\omega}) \bigg|_{\omega = \frac{2\pi}{N}k} Hideal(k)=Hideal(ejω) ω=N2πk
其中 k = 0 , 1 , ⋯ , N − 1 k = 0, 1, \cdots, N-1 k=0,1,⋯,N−1。
再将采样值 H ideal ( k ) H_{\text{ideal}}(k) Hideal(k)作为实际FIR数字滤波器频率响应的样本值,即:
H ideal ( k ) = H ( k ) = H ( e j ω ) ∣ ω = 2 π N k H_{\text{ideal}}(k) = H(k) = H(e^{j\omega}) \bigg|_{\omega = \frac{2\pi}{N}k} Hideal(k)=H(k)=H(ejω) ω=N2πk
对 H ( k ) H(k) H(k)进行IDFT,将得到的N点序列 h ( n ) h(n) h(n)作为实际FIR数字滤波器的单位脉冲响应,即:
h ( n ) = IDFT [ H ( k ) ] = 1 N ∑ k = 0 N − 1 H ( k ) e j 2 π N n k h(n) = \text{IDFT}[H(k)] = \frac{1}{N} \sum_{k=0}^{N-1} H(k) e^{j\frac{2\pi}{N}nk} h(n)=IDFT[H(k)]=N1k=0∑N−1H(k)ejN2πnk
其中 n = 0 , 1 , ⋯ , N − 1 n = 0, 1, \cdots, N-1 n=0,1,⋯,N−1,这就是频率采样法设计FIR数字滤波器的基本思路。
根据频域插值重构可知,实际FIR数字滤波器的频率响应 H ( e j ω ) H(e^{j\omega}) H(ejω)可由频域采样值 H ( k ) H(k) H(k)通过插值公式重构,即:
H ( e j ω ) = ∑ k = 0 N − 1 H ( k ) Φ ( ω − k 2 π N ) H(e^{j\omega}) = \sum_{k=0}^{N-1} H(k) \Phi\left(\omega - k \frac{2\pi}{N}\right) H(ejω)=k=0∑N−1H(k)Φ(ω−kN2π)
其中, Φ ( ω ) = 1 N sin ( ω N / 2 ) sin ( ω / 2 ) e − j ( N − 1 ) ω / 2 \Phi(\omega) = \frac{1}{N} \frac{\sin(\omega N / 2)}{\sin(\omega / 2)} e^{-j(N-1)\omega / 2} Φ(ω)=N1sin(ω/2)sin(ωN/2)e−j(N−1)ω/2
H ( e j ω ) H(e^{j\omega}) H(ejω)是由频域采样值 H ( k ) H(k) H(k)对各个频率采样点上的插值函数 Φ ( ω − k 2 π N ) \Phi\left(\omega - k \frac{2\pi}{N}\right) Φ(ω−kN2π)加权求和得到的,在每个频率采样点 ω k = 2 π N k \omega_k = \frac{2\pi}{N}k ωk=N2πk上,插值函数取值为 1,保证了输出结果在各个频率采样点取值与采样值完全相等,即 H ( e j ω ) ∣ ω = 2 π k / N = H ( k ) H(e^{j\omega})|_{\omega = 2\pi k / N} = H(k) H(ejω)∣ω=2πk/N=H(k)。也就是说,实际FIR数字滤波器的幅频响应 H ( e j ω ) H(e^{j\omega}) H(ejω)一定会“穿越”每个频率采样点。在频率采样点之间,输出结果的波形由各插值函数波形叠加而成。
这幅图给出了理想滤波器(及其采样值)与实际滤波器的幅频特性。红点为采样值。
频域采样定理和频域插值重构的推导公式略。
总结
从DTFT到DFT是采样,那从DFT到DTFT是插值(插值归插值,能不能重建有条件,频域插值重构的过程与时域插值重构的过程相似)。DTFT频谱是有限点的插值,插值点少的话,那插值点之间它无法约束,插值函数又是sinc函数,它就振荡了。