Signal Decomposition for a mixed signal

조회 수: 22 (최근 30일)
Coo Boo
Coo Boo 2019년 12월 18일
댓글: Srivatsa Dasa 2022년 4월 2일
Hi friends,
Suppose we have a mixed signal X composed of three component signals x1, x2, and x3:
t=0:0.00001:0.3;
x1=(exp(-3*t)).*(0.2*sin(2*pi*400*t));
x2=1.2+(exp(-1.5*t)).*(1.1*sin(2*pi*40*t+pi/6));
x3=(exp(-5*t)).*(0.8*sin(2*pi*75*t+pi/3));
X=x1+x2+x3;
subplot(4,1,1);
plot(t,x1);title('Component signal: x1');
subplot(4,1,2);
plot(t,x2);title('Component signal: x2');
subplot(4,1,3);
plot(t,x3);title('Component signal: x3');
subplot(4,1,4);
plot(t,X);title('Mixed signal: X=x1+x2+x3');
Now, inversely, how can we obtain the samples of the three component signals x1, x2, and x3 without any additional information except the samples of the mixed signal X?
I would be very grateful if anyone could provide a code or efficient technique for this challenging example.
Thanks in advance for your help.
Note: Unfortunately, the ICA package and also the function emd() did not lead to a desired result. Is there any other practical solution for this example?
  댓글 수: 5
Coo Boo
Coo Boo 2019년 12월 19일
The idea came to my mind, but the filtering would also have some losses and frequency overlap, and I think the result might not be very good. Can you provide the code for investigating the result of this idea for this example?
Ridwan Alam
Ridwan Alam 2019년 12월 19일
Posted below as an answer. Hope this helps!

댓글을 달려면 로그인하십시오.

채택된 답변

Ridwan Alam
Ridwan Alam 2019년 12월 19일
t=0:0.00001:0.3;
x1=(exp(-3*t)).*(0.2*sin(2*pi*400*t));
x2=1.2+(exp(-1.5*t)).*(1.1*sin(2*pi*40*t+pi/6));
x3=(exp(-5*t)).*(0.8*sin(2*pi*75*t+pi/3));
X=x1+x2+x3;
untitled.png
fs = 1/.00001;
z1 = highpass(X,350,fs);
z3 = bandpass(X,[60 100],fs);
z2 = X - (z1 + z3);
Z = z1 + z2 + z3;
untitled1.png
  댓글 수: 3
Ridwan Alam
Ridwan Alam 2019년 12월 23일
편집: Ridwan Alam 2019년 12월 23일
Indeed. This answer assumes the pass bands are known beforehand. Moreover, the exponentially decaying function is not really decomposed well, as their frequency bands are different than the sin components. It just answers toy examples for learning filters, do not use in real general purpose applications.
Srivatsa  Dasa
Srivatsa Dasa 2022년 4월 2일
how to decompose a random .wav signal if its pass bands are unknown. Is it possible to decompose the signal

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Signal Analysis에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by