我在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
x 1
向量上应用256
,出于某种原因,我得到了这张图片:
有人可以向我解释如何获得滤波信号的正确图表吗?所有的帮助和建议将不胜感激!
答案 0 :(得分:1)
要获得严格的实际结果,IFFT的输入必须是复共轭对称的。如果任何这些箱中的任何一个非零,则在bin N / 2(或bin 0之下)上方切掉部分FFT会破坏该对称性。
因此,如果低通滤波器的截止频率低于bin N / 2(代表Fs / 2),则低通滤波器仅在频域工作。然后在进行IFFT之前确保滤波后的结果是共轭对称的。