Hi all . I am student. Sorry for my bad English.
I am trying to separate convoluted signals.
There is MATLAB code
>> x=1:1000;
>> y=[ 0.2*sin(x) zeros(1,49000)]; % original signal
>> b=[1 0 0 0 0 0.5]; % coefficients
>> a=1; % coefficients
>>h=[1 0 0 0 0 0.5 zeros(1,49994)]; % impulse response
>> z=filter(b,a,y); % adding echo with delay=5 samples
>> chps(h); % computation complex cepstrum
>> cyps(y); % computation complex cepstrum
>> czps(z); % computation complex cepstrum
It's all right and cz=ch+cy . The same how in theory
>> plot(cz-ch-cy); % I see small values about 10^(-14
). it's all right
But trouble is when I trying to truncate sequense 'z'. When I make
last five samples = 0 there is very big error
>> z(1001:1005)=0;
>> czps(z);
>> plot(cz-ch-cy); There is big values.
It seems that 'cz' not equal 'ch+cy' .
I read some articles about windowing and truncation, but I dont understand what
I need to do . Can you help me please?
How can I separate impulse response from audio signal ?
separating convoluted signals via the cepstrum and truncation error
Started by ●October 18, 2010