首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的合成信号出现不正确?MATLAB

为什么我的合成信号出现不正确?MATLAB
EN

Stack Overflow用户
提问于 2015-11-28 18:47:28
回答 1查看 51关注 0票数 0

我在下面的MATLAB中编写了一些代码来过滤噪声信号(noise_f是有噪声的信号,其中它是1 x 256向量):

代码语言:javascript
复制
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矢量上,出于某种原因,我得到了以下图像:

有人能给我解释一下如何得到正确的滤波信号的情节吗?所有的帮助和建议将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-29 06:45:39

为了得到严格的实结果,IFFT的输入必须是复共轭对称的。切掉高于bin N/2 (或低于bin 0)的FFT部分,如果其中任何一个桶是非零的,则破坏这种对称性。

因此,低通滤波器只有在截止值低于bin N/2 (表示Fs/2)时才能在频域工作。然后,在执行IFFT之前,确保过滤的结果是共轭对称的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33975097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档