Extracting multiple envelopes from a signal
3 views (last 30 days)
I have a signal which when observed carefully shows a three individual sinusoidal signals (figures attached). I want these three individual signals to be extracted in terms of amplitude, frequency and phase. Please help!
Cedric Wannaz on 17 Oct 2017
Quick cheap trick gets 2/3. Was going to bed, no time for more but that could be a starting point.
load( 'MultipleSignalEnvelope', 'ITDc0' ) ;
plot( ITDc0, 'b.' ) ;
grid on ;
hold on ;
t = 1 : numel( ITDc0 ) ;
A = 1.2 ;
P = fminsearch( @objective, zeros(3,1) ) ;
plot( A*sin((t+P)/360*2*pi).' ) ;
function mindif = objective( P )
mindif = sum( min( abs( ITDc0-A*sin((t+P)./360*2*pi )))) ;