Hi, list,
I've been planning a project for months to implement subband
adaptive filtering in pd, to improve loudspeaker-room-microphone
transfer functions. I wind up presenting a non-working project this
weekend, because the deconvolution technique didn't work.
I went with a superfast Toeplitz solver from the MaSe team in Leuven
Belgium (thanks to Dr. Van Barel and his team), but I could never get
it to stabilize. The output resembled the thing I wanted, but had a
clear instability, which exponentially grew over the output, see
screenshot for example.
(The shown examples do not depict the wavelet transform, but the real
time signal. The shown deconvolution is taken in the wavelet
subinterval which contains the most mean square value.)
I was torn between different methods for doing deconvolution:
1. Toeplitz solver: should show the 'best' value for least square
error. In fact, in most cases the residuals do shrink to 10^-12 or
10^-13, but the lack of constraint on the solution allows it to blow
up. This approach is not hopeless. Does anybody know of a way to
(theoretically speaking):
move from the L-S solution min( |Ax-b| ) to a constrained minimization
problem, where we minimize (|Ax-b| + |x|) ?
or remove all of the right-hand side poles in the Laplace domain ?
2. Fourier deconvolution: The only restriction here is that the
signal spans the entire frequency range (which in terms of wavelets,
is just an octave chirp). This I will probably try next, unless
there's a feasible solution to repairing the busted Toeplitz
solutions.
3. polynomial division: not as efficient as Fourier method...but with
different results. Fourier deconvolution is the same as polynomial
division, except that Fourier deconvolution always gives a 'zero'
remainder even when it is not the best solution. Also, polynomial
division without Fourier transforms gives O (N^2) complexity.
Also, anybody got a different way to do deconvolution?
Chuck