我正在使用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的一半,其余部分用零填充是错误的,我必须使用全长吗?还是会发生变化,例如缩放?
答案 0 :(得分:0)
您不能简单地将信号频谱的一部分设置为零。任何真实信号(无虚部)都具有共轭复频谱。我想这就是您正在谈论的对称性。如果将频谱的一部分设置为零,则时域中的信号将很复杂,并且与开始时的原始信号完全不同。
如果您想加快计算速度,请减少正在处理的样本数量