# Signal Decomposition for a mixed signal

22 views (last 30 days)
Coo Boo on 18 Dec 2019
Edited: Ridwan Alam on 23 Dec 2019
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.
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?

Ridwan Alam on 19 Dec 2019
Since the components each has periodic parts with different frequencies, you can try to use band-pass filtering to separate out these components.
Coo Boo on 19 Dec 2019
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 on 19 Dec 2019
Posted below as an answer. Hope this helps!

Ridwan Alam on 19 Dec 2019
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; fs = 1/.00001;
z1 = highpass(X,350,fs);
z3 = bandpass(X,[60 100],fs);
z2 = X - (z1 + z3);
Z = z1 + z2 + z3; Coo Boo on 23 Dec 2019
Thanks a lot,
Although the decomposition is not ideal, this is the best answer I've received.
Ridwan Alam on 23 Dec 2019
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.