为什么我的结果信号没有正确显示? MATLAB

时间:2015-11-28 18:47:28

标签: matlab plot signal-processing fft lowpass-filter

我在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');

这是噪声信号的时域图像:

enter image description here

以下是此信号的时域分析:

enter image description here

绘制低通滤波器的结果后,我得到了这个:

enter image description here

现在,我在代表过滤信号的ifft x 1向量上应用256,出于某种原因,我得到了这张图片:

enter image description here

有人可以向我解释如何获得滤波信号的正确图表吗?所有的帮助和建议将不胜感激!

1 个答案:

答案 0 :(得分:1)

要获得严格的实际结果,IFFT的输入必须是复共轭对称的。如果任何这些箱中的任何一个非零,则在bin N / 2(或bin 0之下)上方切掉部分FFT会破坏该对称性。

因此,如果低通滤波器的截止频率低于bin N / 2(代表Fs / 2),则低通滤波器仅在频域工作。然后在进行IFFT之前确保滤波后的结果是共轭对称的。