我在下面的MATLAB中编写了一些代码来过滤噪声信号(noise_f是有噪声的信号,其中它是1 x 256向量):
s_nf = size(noise_f);
size_f = s_nf(2);
lp_tresh = ceil((2/3)*size_f);
lp_f = zeros(1,256);
for n = 1:lp_tresh
lp_f(n) = noise_f(n);
end
subplot(4,3,7);
plot(abs(lp_f)); title('LowPass Filter Result');下面是噪声信号的时域图像:

下面是对此信号的时域分析:

一旦绘制了低通滤波器的结果,就会得到以下结果:

现在,我将ifft应用于表示滤波信号的1 x 256矢量上,出于某种原因,我得到了以下图像:

有人能给我解释一下如何得到正确的滤波信号的情节吗?所有的帮助和建议将不胜感激!
发布于 2015-11-29 06:45:39
为了得到严格的实结果,IFFT的输入必须是复共轭对称的。切掉高于bin N/2 (或低于bin 0)的FFT部分,如果其中任何一个桶是非零的,则破坏这种对称性。
因此,低通滤波器只有在截止值低于bin N/2 (表示Fs/2)时才能在频域工作。然后,在执行IFFT之前,确保过滤的结果是共轭对称的。
https://stackoverflow.com/questions/33975097
复制相似问题