对纯实信号执行 FFT 会产生对称结果。我想重新创建电源嗡嗡声以主动从我的信号中减去它,但是:
- 是否需要 FFT 结果的两半来执行此操作?
- 只使用对称 FFT 结果的一半有什么缺点吗?
对纯实信号执行 FFT 会产生对称结果。我想重新创建电源嗡嗡声以主动从我的信号中减去它,但是:
您可以完美地使用 ,这是属于长度为的共轭对称DFT的一半。
当然,这样做时,您必须将半长 DFT对称地填充到全长 DFT ,这对于从其适当长度 DFT进行非混叠重建显然是必要的长度为 N。
请注意,在从对称半期间,第一个样本不重复,其余样本到是镜像,它们的相位被否定(即它们是共轭的),其中是半长 DFT的长度。
一半大小的 DFT的长度由以下给出: 如果信号(或其自然 DFT的)长度是偶数,则,否则,如果是奇数。
同样,当为偶数时,半长 DFT 的最后一个样本不重复,当为奇数时,最后一个样本共轭镜像形成全长 DFT,如下 Matlab/Octave 代码示例:
x = [1:8]; % N = 8 , a signal of length N = 8 (even)
X = fft(x,8); % X[k] is the natural DFT of x[n]
Xh = X(1:5); % M = (8+2)/2 = 5, also matlab indexing starts from k=1
Xf = [ Xh conj(Xh(end-1:-1:2))]; %N:even => Xh[0] and Xh[5] not repeated
xr = ifft(Xf,8); % reconstruct the original signal from Xf[k]
xr = 1 2 3 4 5 6 7 8
正如预期的那样。