我谈冈萨雷斯关于离散傅里叶变换(DFT)的两点误解
L L L点序列作 N N N点傅里叶变换
L
L
L点序列可以作
N
N
N点傅里叶变换,当
L
⩽
N
L\leqslant N
L⩽N时,不会产生混叠,做法是在序列末尾补零,然后作FFT。
逆变换时,先作IFFT,然后截断、去除因补零而引入的额外部分。
按理来说,fft和ifft是一对变换,fft先延拓再变换,ifft就应该是先逆变换再截断,然而ifft是先截断,再变换。不知道MATLAB怎么想的,曾经坑了我一次。
至于补零能带来什么,看有限长序列的零延拓(补零)——提高频谱的采样频率
奇数尺寸作傅里叶变换
只是FFT算法需要幂次尺寸,幂次尺寸是偶数。不是幂次尺寸,作FFT补零就行了。事实上,FFT经常的作用是频域滤波。频域滤波中,为了避免循环卷积带来的边界效应,通常需要将两个序列延拓至线性卷积的长度,所以这个 M M M和 N N N是奇数或偶数没有关系,所以中心在 ⌊ M / 2 ⌋ \lfloor M/2 \rfloor ⌊M/2⌋和 ⌊ N / 2 ⌋ \lfloor N/2 \rfloor ⌊N/2⌋。对于偶数,中心是 M / 2 M/2 M/2和 N / 2 N/2 N/2;对于奇数,中心是 M − 1 2 \frac{M-1}{2} 2M−1和 N − 1 2 \frac{N-1}{2} 2N−1。奇数有正中心,零相位滤波器的尺寸要求是奇数,这样的滤波器是偶对称的,时域或空域才是实数。