作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 01:41:59
有没有高手解答我的疑惑,matlab中如何从两个不同频的正弦信号之和分别滤出来两个单频信号?
例如,合成信号是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');
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);
再问: 真心谢谢你了,再问你个问题啊,为啥采样频率改高了就不能用了,滤出来的都是直线呢?
再答: 其实滤波器设计要和采样频率挂钩的,你改变了采样频率,滤波器也要同时改才有正确结果。
再问: sin(2*pi*90*t)+sin(2*pi*150*t)是调制波,它还有一个载波,频率是10^6。我对原信号的采样频率是4*10^6,然后用amdemod函数解调得到sin(2*pi*90*t)+sin(2*pi*150*t),把你给的滤波器就放进去不能用了,应该怎么改动呢
再答: 你的问题复杂了。用这么低的频率对那么高的频率进行调制,解调,滤波器都不知道对哪个东西进行滤波了。 是否把低频问题和高频问题分开处理会现实一点,要么就试试用simulink做吧。
再问: 再次感谢高手耐心解答!情况是不是这样的:我一开始设定的信号采样频率4×10^6使得解调出来的sin(2*pi*90*t)+sin(2*pi*150*t)采样频率是4×10^6,你给的滤波器采样频率是Fs=1000,这就对不上了;然后我想能不能改变sin(2*pi*90*t)+sin(2*pi*150*t)的采样频率成为1000再用滤波器,如果可以的话用什么语句呢,帮我想想好吗?拜托了!
再答: 呵呵,实在对不起,我也没有做过啊!