I'm using a wavelet transform in Matlab, so I think of it as a black-box. I'll represent it here as $W(x)$. There's a reconstruction function as well, which I'll write as $W^\dagger(y)$. I can decompose my image $x$ into coefficients and then get perfect reconstruction: $x = W^\dagger(W(x))$. I'm using biorthogonal wavelets, but the only key thing (I think) is that they are not orthogonal, so $W$ is not a square matrix.

My question: how can I get $W^T$, i.e. the adjoint of $W$? And I need it with a fast transform, similar to the speed of $W$. I have $W^\dagger$, and I'm pretty sure this is the same as the pseudo-inverse (which is why I write it like that), so $W^\dagger = (W^TW)^{-1} W^T$. But how can I recover $W^T$ from this?

Of course, I can explicitly create a matrix $W$ so that $W\cdot x = W(x)$, and then easily get $W^T$, but I need a fast transform.

I'm using 9/7 biorthogonal wavelets. I'm hoping that there is some kind of dual wavelet such that $W^T_{\scriptsize \text{original wavelets}} = W^\dagger_{\scriptsize \text{dual wavelets}}$.

Anyone know if this is possible?

Also, anyone know if Wavelab has this kind of thing already builtin? I think the adjoint operator is also known as the synthesis operator.