首页 > 解决方案 > 使用不同的 FFT 方法时,我的音频中出现奇怪的嘶嘶声/伪影

问题描述

我正在使用 fft (FFTW) 进行滤波器卷积。我经历了一些我无法理解的事情。我有一个输入 x(n),我想应用一个滤波器 IR u(n)。长度均为 N。因此我将两者都归零,例如到 2n 并对两者进行 FFT 以获得 X(n) 和 U(n)。如果我只做 X(n)*U(n) 和 IFFT,我会得到一个信号 y(t)。如果我听信号没有嘶嘶声,一切听起来都很好。为了加快程序速度和节省内存,我尝试利用 U(n) 和 X(n) 的对称性,并仅使用 U(n) 和 X(n) 的前半部分并在后半部分填充零。所以我做了 X(n0...n/2,0,0,0,0,..,N) U(n0,..,n/2,0,0,0,..,N) 和 IFFT . 结果输出听起来与乘以全长 X 时的结果没有什么不同U,但输出端有奇怪的细微嘶嘶声。Mostley 在响亮/共振的输入信号部分很明显,听起来几乎就像在剪辑舞台。我没有改变这两种方法的缩放比例,所以我不明白发生了什么。有人可以帮我出个主意吗?

只使用 U 和 X 的一半并用零填充其余部分是错误的,我必须使用全长吗?或者这是否会改变,例如缩放?

标签: audiosignal-processingfft

解决方案


您不能简单地将部分信号频谱设置为零。任何实信号(没有虚部)都具有共轭复频谱。我想这就是你所说的对称性。如果您将频谱的一部分设置为零,则时域中的信号将很复杂,并且与您开始使用的原始信号完全不同。

如果您想加快计算速度,请减少您正在使用的样本数量


推荐阅读