Forums

block processing, filter behaviour

Started by competitions_2005 October 28, 2005
Hello

I have a question about filter behaviour and block processing.

I have a signal x[k]=s[k]+n[k] where s is clean speech and n is
colored, gaussian noise.

In the algorithm I am working on I do block processing. Each block

xb[j]=(x[1+L*j],x[2+L*j],.....,x[L+L*j])

where xb[j] is the j'th block-input is sent thru 2 filters A and B.

The filter-coefficients of A and B vary for each block according to
some analysis
I perform (autocorrelation, spectral analysis etc.).

In the noiseless case where x[k]=s[k] I expect the output of the
algorithm to be
as close to s[k] as possible if not equal.

Furthermore, if x[k]=s[k] then the time-varying filter B will be the
inverse
of A for any block j.

My question is then:

Should I implement the filters A and B with filter-states (initial &
final conditions) ?

Or should I implement the filters A and B without filter-states?

I did some simulation in matlab which showed me that I would get a
better result
if I implemented the filters without filter-states. So I used the
syntax:

filter_output=filter(numerator filter coefficients,denominator
filter coefficients,block j)

instead of:

[filter_output, final_state]=filter(numerator filter
coefficients,denominator filter coefficients,block j, initial_state);
initial_state=final_state; However, I lack the theoretical basis and a good explanation for
choosing to implement the
filters without filter-states. So I was hoping that somebody in this
forum could help me? Btw, filter A is a whitening filter and filter B is a "vocal-tract"
filter. Thanks in advance...