Table of Contents

NAME

QccWAVWaveletLWT, QccWAVWaveletInverseLWT - forward and inverse lazy wavelet transform

SYNOPSIS

#include "libQccPack.h"

int QccWAVWaveletLWT(const QccVector input_signal, QccVector output_signal, int signal_length, int signal_origin, int subsample_pattern);
int QccWAVWaveletInverseLWT(const QccVector input_signal, QccVector output_signal, int signal_length, int signal_origin, int subsample_pattern);

DESCRIPTION

QccWAVWaveletLWT() implements a lazy wavelet transform (LWT). Essentially, the input_signal is partitioned into two sets: the even-indexed samples and the odd-indexed samples. Depending on subsample_pattern and signal_origin, one of these sets will be considered to be the "lowpass" subband, while the other will be considered to be the "highpass" subband.

signal_origin gives the index number of the first sample of input_signal. signal_origin is used, in conjunction with subsample_pattern, to determine the phases of subsampling in each level of the signal decomposition. In most cases, the signal starts with index 0, so signal_origin is 0.

subsample_pattern may be either QCCWAVWAVELET_PHASE_EVEN or QCCWAVWAVELET_PHASE_ODD, indicating whether even- or odd-phase subsampling is desired. In the usual case, even subsampling is normally used.

In the case that signal_length is even, both the odd and even "subbands" of the LWT output are the same length. On the other hand, if signal_length is odd, one of the two subbands will be one sample longer than the other. Which subband will be longer will depend on whether signal_origin is odd or even, and also on which phase of subsampling is specified by subsample_pattern.

If signal_length is less than 2, QccWAVWaveletLWT() merely copies input_signal to output_signal.

QccWAVWaveletInverseLWT() performs the opposite operation as QccWAVWaveletLWT(). That is, even-index samples are extracted from the start of input_signal and "interleaved" with odd-indexed samples extracted from the end of input_signal. signal_origin and subsample_pattern are used to determine whether output_signal is to start with a odd- or even-indexed sample. If signal_length is less than 2, input_signal is merely copied to output_signal.

For both of these routines, output_signal must be allocated to sufficient length before calling the routine.

RETURN VALUES

Both QccWAVWaveletLWT() and QccWAVWaveletInverseLWT() return 0 on success and 1 on error.

SEE ALSO

QccPackWAV(3) , QccPack(3)

I. Daubechies and W. Sweldens, "Factoring Wavelet Transforms Into Lifting Steps," J. Fourier Anal. Appl., vol. 4, no. 3, pp. 245-267, 1998.

AUTHOR

Copyright (C) 1997-2021 James E. Fowler


Table of Contents



Get QccPack at SourceForge.net. Fast, secure and Free Open Source software downloads