Main Content

wmpdictionary

(To be removed) Dictionary for matching pursuit

    wmpdictionary will be removed in a future release. Use sensingDictionary instead. For more information, see Compatibility Considerations.

    Description

    MPDICT = wmpdictionary(N) returns the N-by-P dictionary, MPDICT, for the default subdictionaries {{'sym4',5},{'wpsym4',5},'dct','sin'}. The column dimension of MPDICT depends on N.

    [MPDICT,NBVECT] = wmpdictionary(N) returns the row vector, NBVECT, which contains the number of vectors in each subdictionary. The order of the elements in NBVECT corresponds to the order of the subdictionaries and any prepended or appended subdictionaries. The sum of the elements in NBVECT is the column dimension of MPDICT.

    example

    [MPDICT,NBVECT]= wmpdictionary(N,Name,Value) returns the dictionary, MPDICT, using additional options specified by one or more Name,Value pair arguments.

    [MPDICT,NBVECT,LST] = wmpdictionary(N,Name,Value) returns the cell array, LST, with descriptions of the subdictionaries.

    [MPDICT,NBVECT,LST,LONGS] = wmpdictionary(N,Name,Value) returns the cell array, LONGS, containing the number of vectors in each subdictionary. LONGS is only useful for wavelet subdictionaries. In wavelet subdictionaries, the corresponding element in LONGS gives the number of scaling functions at the coarsest level and wavelet functions by level.

    Examples

    collapse all

    Create a DCT and shifted Kronecker delta dictionary to represent a signal of length 100.

    mpdict = wmpdictionary(100,'lstcpt',{'dct','RnIdent'});

    Input Arguments

    collapse all

    Length of your input signal, specified as a positive integer. The dictionary atoms are constructed to have N elements. N equals the row dimension of the dictionary, MPDICT.

    Data Types: double

    Name-Value Arguments

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: MPDICT = wmpdictionary(100,lstcpt={'dct','RnIdent'})

    Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

    Example: MPDICT = wmpdictionary(100,'lstcpt',{'dct','RnIdent'})

    Prepended subdictionary, specified as an N-by-M matrix, where N is the length of the input signal. wmpdictionary does not check that the M column vectors of the prepended dictionary form a basis. If you do not specify a value for lstcpt, the subdictionary is prepended to the default dictionary. The column vectors in the prepended subdictionary do not have to be unit-norm.

    Data Types: double

    Appended subdictionary, specified as an N-by-M matrix, where N is the length of the input signal. wmpdictionary does not check that the M column vectors of the prepended dictionary form a basis. If you do not specify a value for lstcpt, the subdictionary is appended to the default dictionary. The column vectors in the appended subdictionary do not have to be unit-norm.

    Data Types: double

    A cell array of cell arrays with valid subdictionaries. Each cell array describes one subdictionary. Valid subdictionaries are:

    • A valid Wavelet Toolbox™ orthogonal or biorthogonal wavelet family short name with the number of vanishing moments and an optional decomposition level and extension mode. For example, {'sym4',5} denotes the Daubechies least-asymmetric wavelet with 4 vanishing moments at level 5 and the default extension mode 'per'. If you do not specify the optional level and extension mode, the decomposition level defaults to 5 and the extension mode to 'per'.

    • A valid Wavelet Toolbox orthogonal or biorthogonal wavelet family short name preceded by wp with the number of vanishing moments and an optional decomposition level and extension mode. For example, {'wpsym4',5} denotes the Daubechies least-asymmetric wavelet packet with 4 vanishing moments at level 5. If you do not specify the optional level and extension mode, the decomposition level defaults to 5 and the extension mode to 'per'.

    • 'dct' Discrete cosine transform-II basis. The DCT-II orthonormal basis is:

      ϕk(n)={1Nk=02Ncos(πN(n+12)k)k=1,2,,N1.

    • 'sin' Sine subdictionary. The sine subdictionary is

      ϕk(t)=sin(2πkt)k=1,2,N20t1

      where t is a linearly-spaced N-point vector.

    • 'cos' Cosine subdictionary. The cosine subdictionary is

      ϕk(t)=cos(2πkt)k=1,2,N20t1

      where t is a linearly-spaced N-point vector.

    • 'poly' Polynomial subdictionary. The polynomial subdictionary is:

      pn(t)=tn1n=1,2,200t1

      where t is a linearly-spaced N-point vector.

    • 'RnIdent' The shifted Kronecker delta subdictionary. The shifted Kronecker delta subdictionary is:

      ϕk(n)=δ(nk)k=0,1,N

    Data Types: double

    Output Arguments

    collapse all

    Matching pursuit dictionary, returned as a matrix. MPDICT is an N-by-P matrix with the row dimension, N, equal to the length of the input signal. The column dimension of the matrix depends on the size of the concatenated subdictionaries.

    Number of vectors in subdictionaries, returned as a vector. NBVECT is a row vector containing the number of elements in each subdictionary. The order of the elements in NBVECT corresponds to the order of the subdictionaries and any prepended or appended subdictionaries.

    Dictionary description, returned as a cell array. LST is a 1-by-L cell array, where L is the number of subdictionaries. Each element of the cell array contains a description of a subdictionary. If you specify a prepended or appended subdictionary, the first element of LST is 'AddBeg' or 'AddEnd'. If you specify a level for the wavelet or wavelet packet, the corresponding element of LST is a 1-by-2 cell array containing the wavelet or wavelet packet name in the first element and the level in the second element.

    Number of elements for each subdictionary, returned as a cell array. LONGS is useful only for wavelet subdictionaries. If you specify a wavelet subdictionary, the corresponding element of LONGS provides the number of scaling functions at the coarsest level and the number of wavelets at each level.

    More About

    collapse all

    Matching Pursuit

    Matching pursuit refers to a number of greedy or weak-greedy algorithms for computing an adaptive nonlinear expansion of a signal in a dictionary. In the majority of matching pursuit applications, a dictionary is an overcomplete set of vectors. The elements of the dictionary are referred to as atoms and are typically constructed to have certain time/frequency or time/scale properties. Matching pursuit takes the NP-hard problem of finding the best nonlinear expansion in a dictionary and implements it in an energy-preserving formulation that guarantees convergence. See Matching Pursuit Algorithms for more details.

    References

    [1] Cai, T. Tony, and Lie Wang. “Orthogonal Matching Pursuit for Sparse Signal Recovery With Noise.” IEEE Transactions on Information Theory 57, no. 7 (July 2011): 4680–88. https://doi.org/10.1109/TIT.2011.2146090.

    [2] Donoho, D.L., M. Elad, and V.N. Temlyakov. “Stable Recovery of Sparse Overcomplete Representations in the Presence of Noise.” IEEE Transactions on Information Theory 52, no. 1 (January 2006): 6–18. https://doi.org/10.1109/TIT.2005.860430.

    [3] Mallat, S.G. and Zhifeng Zhang. “Matching Pursuits with Time-Frequency Dictionaries.” IEEE Transactions on Signal Processing 41, no. 12 (December 1993): 3397–3415. https://doi.org/10.1109/78.258082.

    [4] Tropp, J.A. “Greed Is Good: Algorithmic Results for Sparse Approximation.” IEEE Transactions on Information Theory 50, no. 10 (October 2004): 2231–42. https://doi.org/10.1109/TIT.2004.834793.

    Version History

    Introduced in R2012a

    expand all

    Not recommended starting in R2022a