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