如何用MATLAB分离两个信号

一份选修课作业,将AB两个信号比如说一个正玄波和一个方波叠加后再分离出来,求教高手,在线等!最好能提供.mdl,谢谢啦,高分求解... 一份选修课作业,将AB两个信号比如说一个正玄波和一个方波叠加后再分离出来,求教高手,在线等!最好能提供.mdl,谢谢啦,高分求解 展开
 我来答
xiongxionghy
推荐于2017-11-24 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1753
采纳率:75%
帮助的人:2972万
展开全部
分离信号基本上是根据信号的频谱不同,比如第一个信号,占用频带是1000~2000Hz。第二个信号占用频带是3000~4000Hz,我们只要把信号做FFT变换,然后在频域上拿到两个信号的各自分量,再用IFFT反变换回时域,就能重组出两个信号了。
但是前提是这两个语音的频带不能叠在一起

不多说了,举个例子,sin(t)+sin(10t),这两个信号的频带显然不同,可以分离

clc;
clear;
t=0:0.1:10;
x1=sin(t);
x2=sin(10*t);
x=x1+x2;
X_f=fft(x);

figure (1)
subplot(2,1,1);
plot(x);
xlabel('time')
title('x1+x2 (time domain)')
subplot(2,1,2);
plot(abs(X_f));
xlabel('frequency')
title('x1+x2(frequency domian)')

X1_f=X_f;
X1_f(10:95) = 0;
X2_f=X_f;
X2_f(1:9)=0;
X2_f(96:end)=0;
x1_reconstruc = ifft(X1_f);
x2_reconstruc = ifft(X2_f);

figure (2)
subplot(2,1,1);
plot(x1);
title('Original x1')
subplot(2,1,2);
plot(real(x1_reconstruc));
title('Reconsturctured x1')

figure (3)
subplot(2,1,1);
plot(x2);
title('Original x2')
subplot(2,1,2);
plot(real(x2_reconstruc));
title('Reconsturctured x2')
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式