cl-wavelets ยป DWT

DWT or discrete wavelet transform can be performed using dwt or dwt! functions. The latter is in-place variant, which modifies its first argument. The inverse of DWT can be performed using dwt-inverse and dwt-inverse!.
dwt!(array &key (wavelet :haar) (boundary-style :mirror) (steps 0))
Perform in-place DWT transform on array of integer samples. Meaning of key arguments:
  1. wavelet Wavelet to use. Consult wavelets section of this manual to know possible values of this argument.
  2. boundary-style Determines how the signal is extended beyond array boundaries. Can be :zero or :mirror. Usually :mirror gives better results, but is a little slower.
  3. steps Specify the number of filtering and downsampling steps taken to perform the transform. This value can be negative or zero. Zero means the full DWT transform and a negative value means maximal dwt steps - (abs steps).
dwt-inverse!(array &key (wavelet :haar) (boundary-style :mirror) (steps 0))
Perform in-place inversion of DWT transform. The wavelet, boundary-style and steps arguments must be the same as for the corresponding call to DWT! function
dwt(array &key (wavelet :haar) (boundary-style :mirror) (steps 0))
This function is a non-destructive equivalent of dwt! function
dwt-inverse(array &key (wavelet :haar) (boundary-style :mirror) (steps 0))
This function is a non-destructive equivalent of dwt-inverse! function