SignalProcessing - Maple Programming Help

Home : Support : Online Help : Science and Engineering : Signal Processing : Transforms : SignalProcessing/DWT

SignalProcessing

 DWT
 compute forward discrete wavelet transform
 InverseDWT
 compute inverse discrete wavelet transform

 Calling Sequence DWT(A) InverseDWT(A1, A2)

Parameters

 A - Array of real numeric values; the signal A1, A2 - Arrays of real numeric values corresponding to the low and high frequency components of the signal

Options

 • container : Array or [Array, Array], predefined Array(s) for holding results

Description

 • The DWT(A) command computes the Haar discrete wavelet transform (DWT) of the Array A and returns a sequence of two Arrays with datatype float and containing the low-frequency and high-frequency components respectively. The number of elements in A must be even, and each of the result Arrays will have half as many elements.
 • The InverseDWT(A1, A2) command computes the inverse Haar discrete wavelet transform from the Arrays A1 and A2 containing low and high frequency components.  It returns the results in an Array with datatype float. The length of A1 and A2 must be the same, and the size of the result Array will be twice this length.
 • Before the code performing the computation runs, the input Array(s) are converted to datatype float if they do not have that datatype already. For this reason, it is most efficient if the input Array(s) have this datatype beforehand.
 • If the container=C option is provided, then the results are put into C and C is returned. With this option, no additional memory is allocated to store the result. With the forward transform, the container must be a list of two Arrays with datatype float and size equal to half that of A. With the inverse transform, the container must be a single Array with datatype float and size equal to twice that of the input Arrays.

 • The SignalProcessing[DWT] and SignalProcessing[InverseDWT] commands are thread-safe as of Maple 17.

Examples

 > $\mathrm{with}\left(\mathrm{SignalProcessing}\right):$
 > $\mathrm{with}\left(\mathrm{plots}\right):$
 > $N≔10:$
 > $A≔\mathrm{GenerateTone}\left(N,1,0.1,0\right)+\mathrm{GenerateTone}\left(N,3,0.4,0.2\right):$
 > $\mathrm{B1}≔\mathrm{Array}\left(1..\frac{N}{2},'\mathrm{datatype}'={'\mathrm{float}'}_{8}\right):$
 > $\mathrm{B2}≔\mathrm{Array}\left(1..\frac{N}{2},'\mathrm{datatype}'={'\mathrm{float}'}_{8}\right):$
 > $\mathrm{DWT}\left(A,'\mathrm{container}'=\left[\mathrm{B1},\mathrm{B2}\right]\right)$
 $\left[\begin{array}{ccccc}{1.01011023422442}& {0.908571684515523}& {-}{0.448582051978077}& {-}{1.18581063938115}& {-}{0.284289227380716}\end{array}\right]{,}\left[\begin{array}{ccccc}{-}{2.93008949929931}& {-}{0.875854279296868}& {2.38878178550180}& {2.35220261444364}& {-}{0.935040621349269}\end{array}\right]$ (1)
 > $\mathrm{B1};$$\mathrm{B2}$
 $\left[\begin{array}{ccccc}{1.01011023422442}& {0.908571684515523}& {-}{0.448582051978077}& {-}{1.18581063938115}& {-}{0.284289227380716}\end{array}\right]$
 $\left[\begin{array}{ccccc}{-}{2.93008949929931}& {-}{0.875854279296868}& {2.38878178550180}& {2.35220261444364}& {-}{0.935040621349269}\end{array}\right]$ (2)
 > $\mathrm{display}\left(⟨⟨⟨\mathrm{listplot}\left(A,'\mathrm{title}'="Signal"\right)⟩,⟨\mathrm{listplot}\left(\mathrm{B1},'\mathrm{title}'="Low"\right)⟩,\mathrm{listplot}\left(\mathrm{B2},'\mathrm{title}'="High"\right)⟩⟩\right)$   > $C≔\mathrm{InverseDWT}\left(\mathrm{B1},\mathrm{B2}\right)$
 ${C}{≔}\left[\begin{array}{cccccccccc}{3.94019973352373}& {-}{1.91997926507489}& {1.78442596381239}& {0.0327174052186545}& {-}{2.83736383747988}& {1.94019973352373}& {-}{3.53801325382479}& {1.16639197506249}& {0.650751393968553}& {-}{1.21932984872999}\end{array}\right]$ (3)
 > $\mathrm{map}\left(\mathrm{fnormal},A-C\right)$
 $\left[\begin{array}{cccccccccc}{0.}& {0.}& {0.}& {0.}& {0.}& {0.}& {0.}& {-}{0.}& {0.}& {0.}\end{array}\right]$ (4)
 > 

Compatibility

 • The SignalProcessing[DWT] and SignalProcessing[InverseDWT] commands were introduced in Maple 17.