有没有高手解答我的疑惑,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');
例如,合成信号是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再用滤波器,如果可以的话用什么语句呢,帮我想想好吗?拜托了!
再答: 呵呵,实在对不起,我也没有做过啊!
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再用滤波器,如果可以的话用什么语句呢,帮我想想好吗?拜托了!
再答: 呵呵,实在对不起,我也没有做过啊!
有没有高手解答我的疑惑,matlab中如何从两个不同频的正弦信号之和分别滤出来两个单频信号?
matlab,根据两正弦信号之和的频域,分离这两个正弦信号
如何使用matlab编程两个频率略有差异的同向传播的正弦信号叠加
matlab如何产生一个有噪声的正弦信号
能不能用matlab还原分解由两个正弦信号叠加的合成信号?
matlab中如何将两段不同长度正弦信号连接
在同一空间内如何判断两个同频率不同功率的电磁波信号(无线电信号)是否发生同频干扰?
如何测量两个信号的相位差
两个周期信号之和是不是周期信号
如何测量正弦信号的功率?
matlab如何编程输出一个正弦信号,这个信号的0.24s 0.27s时全为0
matlab中已知频谱的振幅谱如何通过反傅里叶变换做出不同相位的信号