<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Fast_wavelet_transform</id>
	<title>Fast wavelet transform - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Fast_wavelet_transform"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Fast_wavelet_transform&amp;action=history"/>
	<updated>2026-05-05T19:13:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Fast_wavelet_transform&amp;diff=1172915&amp;oldid=prev</id>
		<title>imported&gt;LucasBrown: /* Forward DWT */</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Fast_wavelet_transform&amp;diff=1172915&amp;oldid=prev"/>
		<updated>2025-04-06T07:52:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Forward DWT&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Mathematical algorithm}}&lt;br /&gt;
{{Multiple issues|&lt;br /&gt;
{{Refimprove|date=January 2010}}&lt;br /&gt;
{{More footnotes|date=February 2018}}&lt;br /&gt;
}}&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;fast wavelet transform&amp;#039;&amp;#039;&amp;#039; is a [[mathematics|mathematical]] [[algorithm]] designed to turn a [[waveform]] or signal in the [[time domain]] into a [[sequence]] of coefficients based on an [[orthogonal basis]] of small finite waves, or [[wavelets]]. The transform can be easily extended to multidimensional signals, such as images, where the time domain is replaced with the space domain. This algorithm was introduced in 1989 by [[Stéphane Mallat]].&amp;lt;ref&amp;gt;{{cite web |title=Fast Wavelet Transform (FWT) Algorithm |url=https://www.mathworks.com/help/wavelet/ug/fast-wavelet-transform-fwt-algorithm.html?requestedDomain=true |publisher=[[MathWorks]] |access-date=2018-02-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It has as theoretical foundation the device of a finitely generated, orthogonal [[multiresolution analysis]] (MRA). In the terms given there, one selects a sampling scale &amp;#039;&amp;#039;J&amp;#039;&amp;#039; with [[sampling rate]] of 2&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; per unit interval, and projects the given signal &amp;#039;&amp;#039;f&amp;#039;&amp;#039; onto the space &amp;lt;math&amp;gt;V_J&amp;lt;/math&amp;gt;; in theory by computing the [[dot product|scalar product]]s &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;s^{(J)}_n:=2^J \langle f(t),\varphi(2^J t-n) \rangle,&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varphi&amp;lt;/math&amp;gt; is the [[Wavelet#Scaling_function|scaling function]] of the chosen wavelet transform; in practice by any suitable sampling procedure under the condition that the signal is highly oversampled, so&lt;br /&gt;
:&amp;lt;math&amp;gt; P_J[f](x):=\sum_{n\in\Z} s^{(J)}_n\,\varphi(2^Jx-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
is the [[orthogonal projection]] or at least some good approximation of the original signal in &amp;lt;math&amp;gt;V_J&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The MRA is characterised by its scaling sequence&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a=(a_{-N},\dots,a_0,\dots,a_N)&amp;lt;/math&amp;gt; or, as [[Z-transform]], &amp;lt;math&amp;gt;a(z)=\sum_{n=-N}^Na_nz^{-n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and its wavelet sequence &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;b=(b_{-N},\dots,b_0,\dots,b_N)&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;b(z)=\sum_{n=-N}^Nb_nz^{-n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(some coefficients might be zero). Those allow to compute the wavelet coefficients &amp;lt;math&amp;gt;d^{(k)}_n&amp;lt;/math&amp;gt;, at least some range &amp;#039;&amp;#039;k=M,...,J-1&amp;#039;&amp;#039;, without having to approximate the integrals in the corresponding scalar products. Instead, one can directly, with the help of convolution and decimation operators, compute those coefficients from the first approximation &amp;lt;math&amp;gt;s^{(J)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Forward DWT ==&lt;br /&gt;
For the [[discrete wavelet transform]] (DWT), &lt;br /&gt;
one computes [[recursion|recursively]], starting with the coefficient sequence &amp;lt;math&amp;gt;s^{(J)}&amp;lt;/math&amp;gt; and counting down from &amp;#039;&amp;#039;k = J &amp;amp;minus; 1&amp;#039;&amp;#039; to some &amp;#039;&amp;#039;M &amp;lt; J&amp;#039;&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
[[Image:Wavelets_-_DWT.png|thumb|390px|single application of a wavelet filter bank, with filters g=a&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;, h=b&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
s^{(k)}_n:=\frac12 \sum_{m=-N}^N a_m s^{(k+1)}_{2n+m}&lt;br /&gt;
&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;&lt;br /&gt;
s^{(k)}(z):=(\downarrow 2)(a^*(z)\cdot s^{(k+1)}(z))&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
and &lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
d^{(k)}_n:=\frac12 \sum_{m=-N}^N b_m s^{(k+1)}_{2n+m}&lt;br /&gt;
&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;&lt;br /&gt;
d^{(k)}(z):=(\downarrow 2)(b^*(z)\cdot s^{(k+1)}(z))&lt;br /&gt;
&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
for &amp;#039;&amp;#039;k = J &amp;amp;minus; 1, J &amp;amp;minus; 2, ..., M&amp;#039;&amp;#039; and all &amp;lt;math&amp;gt;n\in\Z&amp;lt;/math&amp;gt;. In the Z-transform notation:&lt;br /&gt;
[[Image:Wavelets_-_Filter_Bank.png|thumb|400px|recursive application of the filter bank]]&lt;br /&gt;
:* The [[downsampling|downsampling operator]] &amp;lt;math&amp;gt;(\downarrow 2)&amp;lt;/math&amp;gt; reduces an infinite sequence, given by its [[Z-transform]], which is simply a [[Laurent series]], to the sequence of the coefficients with even indices, &amp;lt;math&amp;gt;(\downarrow 2)(c(z))=\sum_{k\in\Z}c_{2k}z^{-k}&amp;lt;/math&amp;gt;. &lt;br /&gt;
:* The starred Laurent-polynomial &amp;lt;math&amp;gt;a^*(z)&amp;lt;/math&amp;gt; denotes the [[adjoint filter]], it has &amp;#039;&amp;#039;time-reversed&amp;#039;&amp;#039; adjoint coefficients, &amp;lt;math&amp;gt;a^*(z)=\sum_{n=-N}^N a_{-n}^*z^{-n}&amp;lt;/math&amp;gt;. (The adjoint of a real number being the number itself, of a complex number its conjugate, of a real matrix the transposed matrix, of a complex matrix its hermitian adjoint).&lt;br /&gt;
:* Multiplication is polynomial multiplication, which is equivalent to the convolution of the coefficient sequences.&lt;br /&gt;
&lt;br /&gt;
It follows that&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P_k[f](x):=\sum_{n\in\Z} s^{(k)}_n\,\varphi(2^kx-n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is the orthogonal projection of the original signal &amp;#039;&amp;#039;f&amp;#039;&amp;#039; or at least of the first approximation &amp;lt;math&amp;gt;P_J[f](x)&amp;lt;/math&amp;gt; onto the [[linear subspace|subspace]] &amp;lt;math&amp;gt;V_k&amp;lt;/math&amp;gt;, that is, with sampling rate of 2&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; per unit interval. The difference to the first approximation is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;P_J[f](x)=P_k[f](x)+D_k[f](x)+\dots+D_{J-1}[f](x), &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the difference or detail signals are computed from the detail coefficients as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;D_k[f](x):=\sum_{n\in\Z} d^{(k)}_n\,\psi(2^kx-n), &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with &amp;lt;math&amp;gt;\psi&amp;lt;/math&amp;gt; denoting the &amp;#039;&amp;#039;mother wavelet&amp;#039;&amp;#039; of the wavelet transform.&lt;br /&gt;
&lt;br /&gt;
==Inverse DWT==&lt;br /&gt;
Given the coefficient sequence &amp;lt;math&amp;gt;s^{(M)}&amp;lt;/math&amp;gt; for some &amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;amp;nbsp;&amp;lt;&amp;amp;nbsp;&amp;#039;&amp;#039;J&amp;#039;&amp;#039; and all the difference sequences &amp;lt;math&amp;gt;d^{(k)}&amp;lt;/math&amp;gt;, &amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;amp;nbsp;=&amp;amp;nbsp;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;,...,&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;amp;nbsp;−&amp;amp;nbsp;1, one computes recursively&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
s^{(k+1)}_n:=\sum_{k=-N}^N a_k s^{(k)}_{2n-k}+\sum_{k=-N}^N b_k d^{(k)}_{2n-k}&lt;br /&gt;
&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;&lt;br /&gt;
s^{(k+1)}(z)=a(z)\cdot(\uparrow 2)(s^{(k)}(z))+b(z)\cdot(\uparrow 2)(d^{(k)}(z))&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
for &amp;#039;&amp;#039;k&amp;#039;&amp;#039; = &amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;amp;nbsp;−&amp;amp;nbsp;1,&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;amp;nbsp;−&amp;amp;nbsp;2,...,&amp;#039;&amp;#039;M&amp;#039;&amp;#039; and all &amp;lt;math&amp;gt;n\in\Z&amp;lt;/math&amp;gt;. In the Z-transform notation:&lt;br /&gt;
:* The [[upsampling|upsampling operator]] &amp;lt;math&amp;gt;(\uparrow 2)&amp;lt;/math&amp;gt; creates zero-filled holes inside a given sequence. That is, every second element of the resulting sequence is an element of the given sequence, every other second element is zero or &amp;lt;math&amp;gt;(\uparrow 2)(c(z)):=\sum_{n\in\Z}c_nz^{-2n}&amp;lt;/math&amp;gt;. This linear operator is, in the [[Hilbert space]] &amp;lt;math&amp;gt;\ell^2(\Z,\R)&amp;lt;/math&amp;gt;, the adjoint to the downsampling operator &amp;lt;math&amp;gt;(\downarrow 2)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Lifting scheme]]&lt;br /&gt;
*[[Fast Fourier transform]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
* S.G. Mallat &amp;quot;A Theory for Multiresolution Signal Decomposition: The Wavelet Representation&amp;quot; IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 2, no. 7. July 1989.&lt;br /&gt;
* I. Daubechies, Ten Lectures on Wavelets. SIAM, 1992.&lt;br /&gt;
* A.N. Akansu &amp;#039;&amp;#039;Multiplierless Suboptimal PR-QMF Design&amp;#039;&amp;#039; Proc. SPIE 1818, Visual Communications and Image Processing, p. 723, November, 1992&lt;br /&gt;
* A.N. Akansu &amp;#039;&amp;#039;Multiplierless 2-band Perfect Reconstruction Quadrature Mirror Filter (PR-QMF) Banks&amp;#039;&amp;#039; US Patent 5,420,891, 1995&lt;br /&gt;
* A.N. Akansu &amp;#039;&amp;#039;Multiplierless PR Quadrature Mirror Filters for Subband Image Coding&amp;#039;&amp;#039; IEEE Trans. Image Processing, p. 1359, September 1996&lt;br /&gt;
* M.J. Mohlenkamp, [[Cristina Pereyra|M.C. Pereyra]] &amp;#039;&amp;#039;Wavelets, Their Friends, and What They Can Do for You&amp;#039;&amp;#039; (2008 EMS) p. 38&lt;br /&gt;
* [[Barbara Burke Hubbard|B.B. Hubbard]] &amp;#039;&amp;#039;The World According to Wavelets: The Story of a Mathematical Technique in the Making&amp;#039;&amp;#039; (1998 Peters) p. 184&lt;br /&gt;
* S.G. Mallat &amp;#039;&amp;#039;A Wavelet Tour of Signal Processing&amp;#039;&amp;#039; (1999 Academic Press) p. 255&lt;br /&gt;
* A. Teolis &amp;#039;&amp;#039;Computational Signal Processing with Wavelets&amp;#039;&amp;#039; (1998 Birkhäuser) p. 116&lt;br /&gt;
* Y. Nievergelt &amp;#039;&amp;#039;Wavelets Made Easy&amp;#039;&amp;#039; (1999 Springer) p. 95&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
[[Gregory Beylkin|G. Beylkin]], [[Ronald Coifman|R. Coifman]], [[Vladimir Rokhlin Jr.|V. Rokhlin]], &amp;quot;Fast wavelet transforms and numerical algorithms&amp;quot;  &amp;#039;&amp;#039;Comm. Pure Appl. Math.&amp;#039;&amp;#039;, 44 (1991) pp. 141–183 {{doi|10.1002/cpa.3160440202}} (This article has been cited over 2400 times.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Wavelets]]&lt;br /&gt;
[[Category:Discrete transforms]]&lt;/div&gt;</summary>
		<author><name>imported&gt;LucasBrown</name></author>
	</entry>
</feed>