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...