永发信息网

有没有高手解答我的疑惑,matlab中如何从两个不同频的正弦信号之和分别滤出来两个单频信号?

答案:2  悬赏:30  手机版
解决时间 2021-02-01 03:02
  • 提问者网友:椧運幽默
  • 2021-01-31 06:23
例如,合成信号是sin(2*pi*90*t)+sin(2*pi*150*t),我需要分别得到sin(2*pi*90*t)和sin(2*pi*150*t)。如果答上来我愿意给高分!

这些都是模拟信号,我有一个模拟滤波器,但是不知道怎么用。
滤波器的程序如下:wp=[85 95];
ws=[80 100];
rp=3;
rs=30;
[N,Wn]=buttord(wp,ws,rp,rs,'s');
[B,A]=butter(N,Wn,'s');
最佳答案
  • 五星知识达人网友:舊物识亽
  • 2021-01-31 06:41
clf, format compact,
Fs=1000;
t=0:1/Fs:.2;
x=sin(2*pi*90*t)+sin(2*pi*150*t);
subplot(3, 1, 1),
plot(t, x),
Wp=100/500; Ws=150/500; %low pass filter
[n,Wn]=buttord(Wp, Ws,3, 40 );
[b, a]=butter(n, Wn) ;
y1=filter(b, a, x);
subplot(3, 1, 2),
plot(t, y1);
Wp=150/500; Ws=100/500; %high pass filter
[n,Wn]=buttord(Wp, Ws, 3, 40 );
[b, a]=butter(n, Wn, 'high') ;
y2=filter(b, a, x);
subplot(3, 1, 3),
plot(t, y2);
全部回答
  • 1楼网友:执傲
  • 2021-01-31 07:11
simulink环境下有对应的src功能块, 如果用m文件写的话 a=1.0 %正弦信号的幅值 w=2*pi; %正弦信号的频率 ph=0; %正弦信号的初始相位 fs=100; %采样频率 t=0; for m=1:1000 y=a*sin(w*t+ph); t=t+1/fs; 你要进行的后续操作 end plot(t,y);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯