Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

separation convoluted signals via cepstrum ,truncation error

Status
Not open for further replies.

Aicberg

Newbie level 1
Joined
Oct 14, 2010
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,291
Hi all . I am student.

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
>> ch=cceps(h); % computation complex cepstrum
>> cy=cceps(y); % computation complex cepstrum
>> cz=cceps(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;
>> cz=cceps(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 I can separate impulse response from audio signal ?
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top