2012-10-27 169 views
0

如果我有信号值x [T]和滤波器系数b [i],我可以使用卷积进行滤波。 enter image description here使用FIR滤波器滤波频谱

假设我有x的频谱(FFT后),我需要使用滤波器系数进行滤波,我该如何执行此操作?我听说在频域中它将会倍增,而不是卷积(时域)。但我找不到使用它的公式。我在y = fft(x [T])向量和119个滤波器系数(使用fdatool生成)中有614000个值,我不能直接将它们相乘...谢谢。

回答

3

您需要,以便通过乘法做快速卷积零填充的信号值x的谱和零填充的FFT(以相同的长度)FIR滤波器内核湾否则,如果没有零填充,你将最终做循环卷积而不是线性卷积。对于长数据矢量和相对较短的FIR滤波器内核,为避免需要真正长的FFT和IFFT,您可能需要考虑重叠相加或重叠保存快速卷积算法。

+0

我真的不明白你是什么意思的“零填充”,如果我将乘以x [b,0 ,0 .... 0],那么我将只保留119(长度b是119)低频频谱的x。 –

+0

问题不再存在 –

+0

如果b更短,则b的FT实际上更长。 – hotpaw2

1

您还需要将滤波器转换到频域。然后在频域中,您可以使用按照元素的乘法。

http://en.wikipedia.org/wiki/Convolution_theorem

+0

对不起,但我不明白我如何处理不同大小的b和x。在频域b也将有长度119,当x的长度为614400时,这是个问题... –