Inside Collection (Course): Digital Signal Processing (Ohio State EE700)

Finally, we say a few words about DWT implementation. Here
we focus on a single DWT stage and assume circular
convolution, yielding an

We treat the inverse DWT first. Recall that in the lowpass
synthesis branch, we upsample the input before circularly
convolving with

```
ifft( fft(a).*fft(h,length(a)) )
```

where we have assumed that ```
length(a) ≥
length(h)
```

. 1 The highpass branch is handled
similarly using

Next we treat the forward DWT. Recall that in the lowpass
analysis branch, we circularly convolve the input with

```
wshift('1', ifft(fft(a).*fft(flipud(h),length(a))), length(h)-1 )
```

where `wshift`

accomplishes a circular
shift of the `ifft`

output that makes up
for the unwanted delay of `length(h)-1`

samples imposed by the `flipud`

operation.
The highpass branch is handled similarly but with filter

We note that the proposed approach is not totally efficient
because downsampling is performed after circular convolution
(and upsampling before circular convolution). Still, we have
outlined this approach because it is easy to understand and
still results in major saving when

- « Previous module in collection Finite-Length Sequences and the DWT Matrix
- Collection home: Digital Signal Processing (Ohio State EE700)
- Next module in collection » DWT Applications - Choice of phi(t)