【问题标题】:Adding signals and separate them using MATLAB使用 MATLAB 添加信号并分离它们
【发布时间】:2016-05-18 00:39:23
【问题描述】:

我有两个信号 m(t) = exp(-100*abs(t))c(t) = cos(2*pi*1000*t)。 我需要添加它们,然后仅使用低通滤波器 (LPF) 和带通滤波器 (BPF) 将它们分开并绘制图形。

我写了代码:

fs = 100*1000;
ts = 1/fs;
t = -0.1:ts:0.1-ts;
No = length(t);

m = exp(-100*abs(t));
c = cos(2*pi*1000*t);
g = m + c;

y = abs(g);

cutoff = 200;
[a b]= butter(5,2*cutoff*ts);

z = filter(a,b,y);

figure(1)
plot(t,m,t,z); 
legend('Input Signal','Output Signal')
xlabel('time') 
ylabel('amplitude')
title('Case Study')

请注意,我使用的是 LPF [a b] = butter(5,2*cutoff*ts);

问题是情节上移了,我认为这是因为直流分量。您能帮我编辑代码并修复班次吗? 我应该使用 BPF 吗?如果是,怎么做?

【问题讨论】:

    标签: matlab filtering signal-processing


    【解决方案1】:

    您获得的偏移量来自使用g 的绝对值。如果不是过滤y,而是过滤g,那么你会得到更好的结果。偏移来自abs(c) 的直流分量,因为它不是以零为中心,任何低通滤波器都会保持这个偏移

    【讨论】:

      【解决方案2】:

      plot 命令中,减去平均值,像这样

      plot(t,m,t,z-mean(z));

      希望这就是你要找的东西

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多