This is where navigation should be.

FREQWAVELET - Wavelet in the freq. domain

Usage

H=freqwavelet(name,L)
H=freqwavelet(name,L,scale)
[H,info]=freqwavelet(...)

Input parameters

name Name of the wavelet
L System length

Output parameters

H Frequency domain wavelet
info Struct with additional outputs

Description

freqwavelet(name,L) returns peak-normalized "mother" frequency-domain wavelet name for system length L. The basic scale is selected such that the peak is positioned at the frequency 0.1 relative to the Nyquist rate (fs/2).

The supported wavelets that can be used in place of name (the actual equations can be found at the end of this help):

'cauchy' Cauchy wavelet with alpha=100. Custom order=(alpha-1)/2 (with alpha>1) can be set by {'cauchy',alpha}. The higher the order, the narrower and more symmetric the wavelet. A numericaly stable formula is used in order to allow support even for very high alpha e.g. 10^6.
'morse' Morse wavelet with alpha=100 and gamma=3. Both parameters can be set directly by {'morse',alpha,gamma}. alpha has the same role as for 'cauchy', gamma is the 'skewness' parameter. 'morse' becomes 'cauchy' for gamma=1.
'morlet'
Morlet wavelet with sigma=4. The parameter sigma
is the center frequency to standard deviation ratio of the main generating Gaussian distribution. Note that the true peak and standard deviation of the Morlet wavelet differ, in particular for low values of sigma (<5). This is a consequence of the correction factor. The parameter can be set directly by {'morlet',sigma}.
'fbsp' Frequency B-spline wavelet of order m=3, center frequency
to bandwidth ratio fb = 2. The parameters can be set by {'fbsp',m,fb}. Note that m must be integer and greater than or equal to 1, and fb must be greater than or equal to 2.
'analyticsp' Positive frequency part of cosine-modulated B-spline
wavelet of order order=3, with center frequency to main lobe width ratio fb = 1. The parameters can be set by {'analyticsp',order,fb}. Note that order and fb must be integer and greater than or equal to 1.
'cplxsp' Complex-modulated B-spline of order order=3, with center
frequency to main lobe width ratio fb = 1. The parameters can be set by {'cplxsp',order,fb}. Note that order and fb must be integer and greater than or equal to 1.

freqwavelet(name,L,scale) returns a "dilated" version of the wavelet. The nonzero scalar scale controls both the bandwidth and the center frequency. Values greater than 1 make the wavelet wider (and narrower in the frequency domain), values lower than 1 make the wavelet narrower. The center frequency is moved to`0.1/scale`. The center frequency is limited to the range of "positive" frequencies ]0,1] (up to Nyquist rate). If scale is a vector, the output is a L x numel(scale) matrix with the individual wavelets as columns.

The following additional flags and key-value parameters are available:

'scale' Wavelet scale (relative to basic scale)
'waveletParams' a vector containing the respective wavelet parameters [alpha, beta, gamma] for cauchy and morse wavelets [sigma] for morlet wavelets [order, fb] for splines
'basefc',fc Normalized center frequency of the mother wavelet (scale=1). The default is 0.1.
'bwthr',bwthr The height at which the bandwidth is computed. The default value is 10^(-3/10) (~0.5).
'efsuppthr',thr The threshold determining the effective support of the wavelet. The default value is 10^(-5).
'scal',s Scale the filter by the constant s. This can be useful to equalize channels in a filter bank.
'delay',d Set the delay of the filter. Can be either a scalar or a vector of the same length as scale. Default value is zero.

The admissible range of scales can be adjusted to handle different scenarios:

'positive' Enables the construction of wavelets at postive center frequencies ]0,1]. If basefc=0.1, this corresponds to scales larger than or equal to 0.1. This is the default.
'negative' Enables the construction of wavelets at negative center frequencies [-1,0[. If basefc=0.1, this corresponds to scales smaller than or equal to -0.1.
'analytic' Enables the construction of wavelets with center frequencies in ]0,2] for analysis of analytic signals. [! This feature is currently experimental and may not always work as intended. !]

The format of the output is controlled by the following flags: 'full' (default),'econ','asfreqfilter':

'full' The output is a L x numel(scale) matrix.
'econ' The output is a numel(scale) cell array with individual freq. domain wavelets truncated to the length of the effective support given by parameter 'efsuppthr'. Does not run stably for system lengths > 2000
'asfreqfilter' As 'econ= but the elements of the cell-array are'
filter structs with fields .H and .foff as in blfilter to be used in filterbank and related.

[H,info]=freqwavelet(...) additionally returns a struct with the following fields:

.fc Normalized center frequency.
.foff Index of the first sample above the effective support threshold (minus one). It can be directly used to convert the 'econ' output to 'full' by circshift(postpad(H,L),foff).
.fsupp Length of the effective support (with values above efsuppthr).
.basefc Center frequency of the implied mother wavelet.
.scale The scale used.
.dilation The actual dilation used in the formula.
.bw Relative bandwidth at relative height 'bwthr'.
.tfr Time-frequency ratio of a Gaussian with the same bandwidth as the wavelet.
.aprecise Exact natural subsampling factors (not rounded).
.a_natural Fractional natural subsampling factors in the format acceptable by filterbank and related.
.cauchyAlpha Alpha value of closest Cauchy wavelet [NOTE: Not implemented for non-Morse wavelets.]

Additionally, the function accepts flags to normalize the output. Please see the help of setnorm. By default, no normaliazation is applied.

Wavelet definitions

C is a normalization constant.

Cauchy wavelet

H = C xi^{frac{alpha-1}{2}} exp( -2pixi )

\begin{equation*} H = C \xi^{\frac{\alpha-1}{2}} exp( -2\pi\xi ) \end{equation*}

Morse wavelet

H = C xi^{frac{alpha-1}{2gamma}} exp( -2pixi^{gamma} )

\begin{equation*} H = C \xi^{\frac{\alpha-1}{2\gamma}} exp( -2\pi\xi^{\gamma} ) \end{equation*}

Morlet wavelet

H = C xi^{frac{alpha-1}{2gamma}} exp( -2pixi^{gamma} )

\begin{equation*} H = C \xi^{\frac{\alpha-1}{2\gamma}} exp( -2\pi\xi^{\gamma} ) \end{equation*}

Frequency bandlimited spline wavelet

H = C B (xi - m frac{xi}{4})

\begin{equation*} H = C B (\xi - m \frac{\xi}{4}) \end{equation*}

Analytic spline wavelet

H = C exp(-j omega x) A(-exp(j omega)) H(exp(-j omega)

\begin{equation*} H = C exp(-j \omega x) A(-exp(j \omega)) H(exp(-j \omega)) \end{equation*}

Complex spline wavelet

H = C exp(-j omega x + xi )

\begin{equation*} H = C exp(-j \omega x + \xi ) \end{equation*}

References:

O. Rioul and P. Duhamel. Fast algorithms for discrete and continuous wavelet transforms. IEEE Transactions on Information Theory, 38(2):569--586, 1992.

M. Unser, A. Aldroubi, and S. Schiff. B-spline signal processing. i. theory. IEEE Trans. Signal Process., 42(12):3519 --3523, 1994.