例如,合成信号是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');
有没有高手解答我的疑惑,matlab中如何从两个不同频的正弦信号之和分别滤出来两个单频信号?
答案:2 悬赏:30 手机版
解决时间 2021-02-01 03:02
- 提问者网友:椧運幽默
- 2021-01-31 06:23
最佳答案
- 五星知识达人网友:舊物识亽
- 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);
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);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯