On Apr 8, 9:20=A0pm, John McDermick <johnthedsp...@gmail.com> wrote:
> Say you have two signals, x and y, where y is the output of an unknown
> FIR filter. The only thing which is "known" about the FIR filter is
> that it has N filter coefficients.
Wrong problem statement. You will need to know (or assume)
something more, like that the process under study is an
AR process, a sum-of-sines process, or something like that.
In these cases the best you can come up with is a *limit*
on N, not the exact parameter.
...
> Can anybody explain why this happens?
>
> I wasn't able to see a pattern for the failures.
The pattern is that you use a defunct algorithm.
> Another question to you is: Which algorithm would you choose for an
> adaptive acoustic echo canceller for an embedded platform? There are
> probably lots of factors to consider, but just give me the names of a
> couple of algorithms so I can read about them.
Read the book "Adaptive Filters" by Haykin.
Rune
Reply by Chris Maryan●April 10, 20112011-04-10
I think what you are running into is that there are conditions on the origi=
nal data x, and the filter b that must be met for the channel identificatio=
n to work. Think about this as solving a set of linear equations, then ther=
e must be some conditions under which the system is ill conditioned.
A naive example is when x is all zeros. Then you have no hope of recovering=
the original filter. More generally, there are a set conditions on x and b=
that must be met for b to be recoverable. Blind deconvolution literature t=
alks about "source diversity." I'm a bit rusty with the details, but it's s=
omething along the lines of requiring the source to have no nulls in its sp=
ectrum.
Chris
Reply by John McDermick●April 8, 20112011-04-08
Say you have two signals, x and y, where y is the output of an unknown
FIR filter. The only thing which is "known" about the FIR filter is
that it has N filter coefficients.
The above relates to acoustic echo cancellation for speech signals
sampled at 8kHz. I guess you can call it a channel estimation problem?
Or a deconvolution problem? I don't know....
Anyways....As a pre-liminary experiment I tried the following (in
MATLAB):
clc
close all
clear all
N = 40;
x = randn(1,100);
b = fir1(N-1,0.9);
y = filter(b,1,x);
est_b = filter([y zeros(1,N-1)], x, [1 zeros(1,N-1) zeros(1,150)]);
figure
subplot(3,1,1)
plot(x)
subplot(3,1,2)
plot(y)
subplot(3,1,3)
plot(b)
hold on
plot(est_b(1:N),'r--')
drawnow
The estimate est_b of the filter coefficients b is good, but sometimes
it fails..
Can anybody explain why this happens?
I wasn't able to see a pattern for the failures.
Another question to you is: Which algorithm would you choose for an
adaptive acoustic echo canceller for an embedded platform? There are
probably lots of factors to consider, but just give me the names of a
couple of algorithms so I can read about them.
Thank you.