In standard MRA we have that the space of functions at scale J can be expressed as
$$V_j = V_0\oplus \left(\bigoplus_{j=0}^{J} W_j\right)$$
where $V_0$ is spanned by the orthonormal system of the translates of the scaling function $\phi(x)$, i.e. $V_0 = \overline{\text{span}}\{\phi(x-k)\}_{k\in\mathbb{Z}}$ and the detail spaces $W_j$ are spanned by the wavelets ,i.e. $W_j = \overline{\text{span}}\{\psi_{j,k}\}_{k\in\mathbb{Z}}$, being $\psi_{j,k} = 2^{j/2}\psi(2^j x - k)$ and $\psi(x)$ the mother Wavelet. From the two scales equation and from the wavelet equation we obtain the iterative algorithm to compute the coefficients at the coarser scale from those of the finer one. That is, given a function $f(x)$ in $V_J$ (which can be for instance an approximation of another function up to such scale) then since by definition of MRA we have that $\{\phi_{j,k}\}_{k\in\mathbb{Z}}=\{2^{j/2}\phi(2^jx-k)\}_{k\in\mathbb{Z}}$ spans $V_j$, we can compute the coefficients $a_{J,k} = \langle f,\phi_{J,k} \rangle$ and then I can compute the coefficients at each scale $0\le j<J$ as
$$a_{j,k} = \sum_{l\in\mathbb{Z}} h(l-2k)a_{j+1,l},\qquad b_{j,k} = \sum_{l\in\mathbb Z}g(l-2k)a_{j+1,l}$$
where $b_{j,k} = \langle f,\psi_{j,k}\rangle$ and $h(n)$ and $g(n)$ are the scaling and wavelet filters, such that $$\phi(x) = \sqrt{2}\sum_{k\in\mathbb Z} h(k)\phi(2x-k),\qquad\psi(x) = \sqrt{2}\sum_{k\in\mathbb Z} g(k)\phi(2x-k)$$
So, once I have $a_{J,k}$ I can compute the whole decomposition, making filtering and all the operations I want and then re-synthetize the function inverting the iterative relation among the coefficients and rewriting
$$ f = \sum_{k\in\mathbb Z} a_{J,k}^{new} \psi_{J,k}$$
The problem is, in order to start the whole I need to compute the scalar products
$$a_{J,k} = \langle f,\phi_{J,k} \rangle$$
How I can I do it is I only have some samples of $f(x)$, say $\{f(x_i)\}_{0\le i\le N} $ ? (note that the samples can also be not equally spaced).
The solutions I heard about are
1) Use the low of large numbers and approximate
$$\hat{a}_{J,k} = \dfrac{1}{N}\sum_{i=1}^N f(x_i)\phi_{J,k}(x_i)$$
2) Solve the system of N equations
$$ f(x_i) = \sum_{k} \hat{a}_{J,k}\phi_{J,k}(x_i)$$
The first one is the simplest, and has the advantage that it can be computed very fast as a new sample arrives, however it has the problem that many coefficients will be undefined and many will be defined with very few terms. The second asks to solve a possibily big system of equations any time a new sample arrives. Are there any smart way to compute the tarting coefficients $a_{J,k}$?
-
$\begingroup$ Sure if such references cover my question :) $\endgroup$– LJSilverApr 8, 2016 at 15:51
1 Answer
I remember that using the discrete samples was termed "wavelet crime" by Gilbert Strang (Strang and Nguyen, Wavelets and Filter banks, 1996, pages 232 sq.), or "wavelet sin" by others.
On prefiltering discrete signals to obtain "better" wavelet coefficients, here are some references I have in store:
- Wavelet coefficient computation with optimal prefiltering, IEEE Trans. Signal Processing, 1994, Xia, X.-G. and Kuo, C.-C.J. and Zhang, Z.
- On the initialization of the discrete wavelet transform algorithm, IEEE Signal Processing Letters, 1994, Abry and Flandrin
- From the wavelet series to the discrete wavelet transform - the initialization, IEEE Trans. Signal Processing, 1996, Xiao-Ping Zhang and Li-Sheng Tian and Ying-Ning Peng
- Sard-optimal prefilters for the fast wavelet transform, Numer. Algorithms, 1997, S. Ehrich
- A new prefilter design for discrete multiwavelet transforms, IEEE Trans. Signal Processing, 1998, Xia, X.-G.
- Quadrature prefilters for the discrete wavelet transform, IEEE Trans. Signal Processing, 2000, Johnson, B. R. and Kinsey, J. L.
- Meaningful MRA initialization for discrete time series, Signal Processing, 2000, D. Veitch and M. S. Taqqu and P. Abry
- Efficient Wavelet Prefilters with Optimal Time-Shifts, IEEE Trans. Signal Processing, 2003, Ericsson, S. and Grip, N.
It seems however that no prefiltering does not induce too much errors for compression, denoising, deconvolution. But for detection, or using multiple different wavelets at once (like with dual-tree wavelets, or unions of wavelet bases), or with multiwavelets, it is quite mandatory.