[PD] deconvolution in pd

Charles Henry czhenry at gmail.com
Mon Apr 24 20:05:11 CEST 2006


>
> > 3. unwrap phase; take result of (2) as phase and magnitude
> > 4. multiply (FT of weights) by mag^alpha*( cos (phase*alpha) + i
> > sin(phase*alpha) )
>
> That causes the signal's complex cepstrum to be multiplied by alpha? why
> do you do it, and why do you consider alpha as an "adaptation
> coefficient"?

Suppose we've got some filter, w, that we're processing the sound through,
and we've got a signal, x, that we pass through, and we recieve y from a mic

so, we want x, but we get y: use X(f) for FT of x(t), and Y(f) for FT of y(t)

we modify our filter so that on the next iteration, we make y get closer to x

W(f; n+1)=W(f; n) * ( X(f) / Y(f) ) ^ alpha

This thing here: mag^alpha*( cos (phase*alpha) + i sin(phase*alpha) )
is just ( X(f) / Y(f) ) ^ alpha
( X(f) / Y(f) ) ^ alpha tracks along the complex curve between X(f)
and Y(f) and takes a value in between them, depending on alpha

alpha is used as an adaptation coefficient, because there is always
some noise in the system we are trying to measure.

So, when alpha is 0, this ratio is just 1, meaning, we make no modifications..
We start with alpha =1, and decrease it slowly to 0 over the course of
many adaptations

>
> > Maybe there's an eigenvalue/vector trick that I'm missing...
>
> Don't eigenvalue methods only work on linear transforms? Where's your
> linear transform? (Fourier transforms are linear, but I haven't seen
> anyone eigendecomposing Fouriers yet...)

Hey, there is a Fourier matrix eigenvalue/vector decomposition:
Eigenvalue and eigenvector decomposition of the discrete Fourier transform
McClellan, J.; Parks, T.
Audio and Electroacoustics, IEEE Transactions on
Volume 20, Issue 1, Mar 1972 Page(s): 66 - 74

and another about a matrix that commutes with the Fourier Transform,
Eigenvectors and functions of the discrete Fourier transform
Dickinson, B.   Steiglitz, K.
Princeton University, Princeton, NJ, USA;
This paper appears in: Acoustics, Speech, and Signal Processing [see
also IEEE Transactions on Signal Processing], IEEE Transactions on
Publication Date: Feb 1982
Volume: 30,  Issue: 1
On page(s): 25- 31

but I haven't read them yet....school is keeping me too busy these days....

and that wasn't exactly what I was referring to, either:

the problem looks like this, the output is x convolved with the filter
w, convolved with some "assumed" linear transform L

x*w*L=y

and we know that the signal x and y have compact support (meaning zero
outside a certain range in time), and this (I think) results in some
zeros in y(t) being outside of ROC in the Laplace domain.  The naive
deconvolution seems to be unstable for this reason.

If it was possible to know the eigenvalues/vectors of w*L, we could
solve this problem immediately, but we can't know them, at all...  If
there is a basis of functions that spans the eigenfunctions of w*L, we
might try to adapt differently.... I just *think* there's some *trick*

I will probably come back to this problem in a month or so, but I
haven't made any progress since trying the "Toeplitz Solver" (which
was also unstable)

Chuck




More information about the Pd-list mailing list