next up previous
Next: Implémentation sous Scilab Up: Exemple de l'ondelette de Previous: Lifting dual

Lifting primaire

On désire réécrire $\tilde{P}(z)$ sous la forme :

\begin{displaymath}
\tilde{P}(z)=\left(
\begin{array}{cc}
\tilde{h}_e^{new}(z) &...
...t)
\left(
\begin{array}{cc}
1 & 0\\
-1 & 1
\end{array}\right)
\end{displaymath}

Par identification, il vient :

\begin{eqnarray*}
\frac{2}{\sqrt{2}} & = &\tilde{h_e}^{new}(z) \\
0 & = &\til...
...
-\frac{1}{\sqrt{2}} & = &0.\ \tilde{s}(z)+\tilde{g_o}^{new}(z)
\end{eqnarray*}

on prend :

\begin{displaymath}
\tilde{s}(z)=\frac{1}{2}
\end{displaymath}

et

\begin{displaymath}
\tilde{h}_o^{new}(z)=0
\end{displaymath}

et

\begin{displaymath}
\tilde{g}_o^{new}(z)=-\frac{1}{\sqrt{2}}
\end{displaymath}

Alors


\begin{displaymath}
\tilde{P}(z)=\frac{1}{\sqrt{2}}\left(
\begin{array}{cc}
2 & ...
...)\left(
\begin{array}{cc}
1 & 0 \\
-1 & 1
\end{array}\right)
\end{displaymath}

et


\begin{displaymath}
{P}(z)=\left(
\begin{array}{cc}
1 & 0 \\
1 & 1
\end{array}...
...\begin{array}{cc}
\frac{1}{2} & 0\\
0 & -1
\end{array}\right)
\end{displaymath}

Ces opérations purement matricielles s'implémentent très facilement sous Scilab ou Matlab.

On peut de façon plus condensée (que l'écriture matricielle) écrire le pseudo code pour l'algorithme de calcul in place, $x_e$ et $x_o$ représente les coefficients pairs et impairs du signal (respectivement), $d$ représente les détails (i.e. les coefficients issu du filtrage passe haut, donc les coefficients d'ondelettes), $s$ représente le signal grossier (smooth) issu du fitlrage passe-bas et donc les coefficients d'échelle.


\begin{displaymath}
\begin{array}{l}
d=x_o-x_e;\\
s=x_o+d/2;\\
s=2/\sqrt{2}*s;\\
d=-1/\sqrt{2}*d;
\end{array}\end{displaymath}

Pour le passage à une résolution supérieure on prend le code précédent que l'on réinitialise en commençant par :

\begin{displaymath}
\begin{array}{l}
x_o=s(1:2:length(s));\\
x_e=s(2:2:length(s));\\
\end{array}\end{displaymath}

La reconstruction se fait en inversant l'ordre des opérations (et leurs signes, sauf pour la normalisation ou on prend l'inverse).


\begin{displaymath}
\begin{array}{l}
d=-\sqrt{2}*d;\\
s=\sqrt{2}*s;\\
x_o=s-d/2;\\
x_e=x_o-d;
\end{array}\end{displaymath}


next up previous
Next: Implémentation sous Scilab Up: Exemple de l'ondelette de Previous: Lifting dual
lepage 2004-08-27