A discrete wavelet transform (DWT) is a sampled wavelet function. Rather than calculate the wavelet coefficients at every point, the DWT uses only a subset of positions and scales. This method results in an accurate and more efficient manner of a wavelet transform.
The DWT is similar but more versatile that the Fourier series. The DWT can be made periodic but it can also be applied to non-periodic transient signals.
The “mother” wavelet function generates the set of expansion functions with integer indices j, k.
ψ j,k (t) = 2 j/2 (2 j t - k) j,k ∈ Z
Although this expansion is known as the discrete wavelet transform, it might be better served to be called a wavelet series as it is a series expansion that maps the function of a continuous variable onto a set of coefficients. The series expansion of the DWT is below:
f(t)= ∑ j,k a j,k ψ j,k ( t )
Where coefficients aj,k are the discrete wavelet transform of the signal.
. An extremely interesting aspect of the DWT is that it matches a similar expansion that was developed completely independently from it. The use of filter banks to represent signals is actually just another representation of the vector space notation developed for wavelets, where the scaling function represents a low pass filter and (by its required orthogonality) the wavelet function represents a high pass filter.
The use of filter banks to explain DWTs helps explain the process in greater clarity, and is also the method used to implement DWTs in algorithms for computer programs.
We want to have a scaling function and a wavelet function that satisfy all necessary conditions, and we also want to have the input signal for which to take the DWT of. The number of ‘stages’ (which we will explain later) is determined by the length of the input. If the length of the input is 2n then the maximum number of stages is n.
The method we use to calculate the DWT of the signal is straightforward. First, we filter the signal with both our scaling and wavelet functions (our lowpass and highpass filters). This is shown in .
![]() |
Because this method will give us two times as many coefficients as we started with (due to filtering twice) we must down sample to arrive at the same number of coefficients as our input signal. This does not lead to aliasing, however, as the information found in one set of coefficients will provide enough information to perfectly reconstruct the other coefficients. Downsampling is achieved by simply removing every other coefficient (It doesn’t matter whether you remove the odd coefficients or the even coefficients, but for convenience sakes we always remove the even coefficients). shows this process.
22
![]() |
We have now arrived at a single level of the DWT. What is interesting about this transform, however, is you can perform multiple levels of the DWT. The amount of levels you are limited to can be found by taking the log10(Length of your signal) / log10(2). Or, in simpler terms, if your signal is length 2n then the maximum number of levels you can take is simply n. If your signal is length 16, then you can take up to 4 levels of DWT on it. Each progressive level gets into finer and finer details. Since most of the important information in signals is in the lower frequency bands, then you will usually want to perform the next level of the DWT on the lowpassed coefficients. However, you can perform the DWT on the high passed coefficients or even both, if your application calls for such a use. The process of multilevel DWT is shown in Figure 3:
![]() |
In this case the DWT is comprised of cD1 cD2 cD3 and cA3. There are 3 levels, so this would work for a length 8 signal and larger (as you don’t have to evaluate the maximum amount of levels in a DWT).












