This is where navigation should be.

GABDUALNORM - Measure of how close a window is to being a dual window

Usage

dn=gabdualnorm(g,gamma,a,M);
dn=gabdualnorm(g,gamma,a,M,L);
dn=gabdualnorm(g,gamma,a,M,'lt',lt);
[scal,res]=gabdualnorm(...);

Input parameters

gamma input window..
g window function.
a Length of time shift.
M Number of modulations.
L Length of transform to consider

Output parameters

dn dual norm.
scal Scaling factor
res Residual

Description

gabdualnorm(g,gamma,a,M) calculates how close gamma is to being a dual window of the Gabor frame with window g and parameters a and M.

The windows g and gamma may be vectors of numerical values, text strings or cell arrays. See the help of gabwin for more details.

[scal,res]=gabdualnorm(...) computes two entities: scal determines if the windows are scaled correctly, it must be 1 for the windows to be dual. Note that the scaling factor scal is expected to be real for real-valued window pairs g and gamma, but may be complex for general windows. res is close to zero if the windows (scaled correctly) are dual windows.

gabdualnorm(g,gamma,a,M,L) does the same, but considers a transform length of L.

gabdualnorm(g,gamma,a,M,'lt',lt) does the same for a non-separable lattice specified by lt. Please see the help of matrix2latticetype for a precise description of the parameter lt.

gabdualnorm can be used to get the maximum relative reconstruction error when using the two specified windows. Consider the following code for some signal f, windows g, gamma, parameters a and M and transform-length L (See help on dgt on how to obtain L):

fr=idgt(dgt(f,g,a,M),gamma,a);
er=norm(f-fr)/norm(f);
eest=gabdualnorm(g,gamma,a,M,L);

Then \(er<eest\) for all possible input signals f.

To get a similar estimate for an almost tight window gt, simply use

eest=gabdualnorm(gt,gt,a,M,L);