Main Content

liftingScheme

Create lifting scheme for lifting wavelet transform

    Description

    Use the liftingScheme object to create a lifting scheme that you can efficiently apply to data.

    Creation

    Description

    lscheme = liftingScheme creates the lifting scheme for the 'lazy' wavelet with normalization set to 1.

    example

    lscheme = liftingScheme(Name,Value) creates a lifting scheme with properties specified by name-value pairs. Enclose the property name in quotes. You can create a lifting scheme using one of the following syntaxes:

    • lscheme = liftingScheme('Wavelet',wname)

    • lscheme = liftingScheme('CustomLowpassFilter',filter)

    • lscheme = liftingScheme('LiftingSteps',liftingSteps,'NormalizationFactors',normFactors)

    Properties

    expand all

    Orthogonal or biorthogonal wavelet associated with the lifting scheme, specified as one of these.

    Wavelet FamilyWavelet
    Daubechies'lazy', 'haar', 'db1', 'db2', 'db3', 'db4', 'db5', 'db6', 'db7', and 'db8'
    Symlet'sym2', 'sym3', 'sym4', 'sym5', 'sym6', 'sym7', and 'sym8'
    Cohen-Daubechies-Feauveau'cdf1.1', 'cdf1.3', 'cdf1.5', 'cdf2.2', 'cdf2.4', 'cdf2.6', 'cdf3.1', 'cdf3.3', 'cdf3.5', 'cdf4.2', 'cdf4.4', 'cdf4.6', 'cdf5.1', 'cdf5.3', 'cdf5.5', 'cdf6.2', 'cdf6.4', and 'cdf6.6'
    Coiflet'coif1', and 'coif2'
    Biorthogonal'bior1.1', 'bior1.3','bior1.5', 'bior2.2', 'bior2.4', 'bior2.6', 'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9', 'bior4.4', 'bior5.5', 'bior6.8', 'bs3', and '9.7'
    Reverse Biorthogonal'rbs3', 'r9.7', 'rbio1.1', 'rbio1.3', 'rbio1.5', 'rbio2.2', 'rbio2.4', 'rbio2.6', 'rbio2.8', 'rbio3.1', 'rbio3.3', 'rbio3.5', 'rbio3.7', 'rbio3.9', 'rbio4.4', 'rbio5.5', and 'rbio6.8'

    Example: lscheme = liftingScheme('Wavelet','bior3.7') creates the lifting scheme associated with the 'bior3.7' biorthogonal wavelet.

    Lowpass filters associated with the lifting scheme, specified as a cell array.

    • To create a lifting scheme associated with an orthogonal wavelet, set CustomLowpassFilter to {LoD}, where LoD is the lowpass filter associated with wavelet.

    • To create a lifting scheme associated with a biorthogonal wavelet, set CustomLowpassFilter to {LoPrimal,LoDual}, where LoPrimal and LoDual are the lowpass filters associated with the biorthogonal wavelet.

    When you specify filter coefficients, the Wavelet property is automatically set to 'custom'.

    Example: lscheme = liftingScheme('CustomLowpassFilter',{[sqrt(2)/2 sqrt(2)/2]}) creates a lifting scheme associated with the Haar wavelet.

    Data Types: single | double

    Lifting steps associated with the lifting scheme, specified as an array of structures obtained from liftingStep. To create a lifting scheme using LiftingSteps, you must also set the NormalizationFactors property. When you set these two properties, the Wavelet property is automatically set to 'custom'.

    Example: lscheme = liftingScheme('LiftingSteps',ELS,'NormalizationFactors',NF) creates a lifting scheme using the liftingStep structures specified in ELS and factors specified in NF.

    Normalization factors associated with the lifting scheme, specified as K or [K 1/K], where K is a non-zero scalar. The factor K specifies the diagonal elements of the 2-by-2 normalization matrix. If specified as a vector, the product of the vector elements must equal 1 to within precision.

    To create a lifting scheme using NormalizationFactors, you must also set the LiftingSteps property. When you set these two properties, the Wavelet property is automatically set to 'custom'.

    Data Types: double

    Object Functions

    addliftAdd elementary lifting steps
    deleteliftDelete elementary lifting steps
    ls2filtExtract wavelet filters from lifting scheme
    dispDisplay lifting scheme

    Examples

    collapse all

    Create the lifting scheme associated with the Haar wavelet.

    lscheme = liftingScheme('Wavelet','haar')
    lscheme = 
     	 Wavelet               : 'haar' 
    	 LiftingSteps          : [2 × 1] liftingStep 
    	 NormalizationFactors  : [1.4142 0.7071] 
    	 CustomLowpassFilter   : [  ] 
    
    
     Details of LiftingSteps :
                Type: 'predict'
        Coefficients: -1
            MaxOrder: 0
    
                Type: 'update'
        Coefficients: 0.5000
            MaxOrder: 0
    
    

    Obtain the level 2 wavelet decomposition of a signal using the lifting scheme. Inspect the approximation and detail coefficients.

    sig = 0:7;
    [appC,detC]=lwt(sig,'LiftingScheme',lscheme,'Level',2);
    appC
    appC = 2×1
    
        3.0000
       11.0000
    
    
    detC{1}
    ans = 4×1
    
        0.7071
        0.7071
        0.7071
        0.7071
    
    
    detC{2}
    ans = 2×1
    
        2.0000
        2.0000
    
    

    Obtain the inverse transform and demonstrate perfect reconstruction.

    xrec = ilwt(appC,detC,'LiftingScheme',lscheme);
    max(abs(xrec(:)-sig(:)))
    ans = 2.6645e-15
    

    Create a lifting scheme using the lowpass filters associated with the db4 wavelet.

    wv = 'db4';
    [~,~,LoR,~] = wfilters(wv);
    LS = liftingScheme('CustomLowpassFilter',{LoR});

    Create the lifting scheme associated with the biorthogonal bior2.2 wavelet.

    lscheme = liftingScheme('Wavelet','bior2.2');

    A wavelet with N vanishing moments is orthogonal to degree N-1 polynomials. The bior2.2 wavelet has two vanishing moments. Create a signal by sampling a polynomial of degree 1.

    sig = 1:16;

    Apply the lifting scheme to the signal. Inspect the detail coefficients at the finest scale. The bior2.2 wavelet is orthogonal to the degree 1 polynomial. Confirm that except for the nonzero coefficient at the boundary, the detail coefficients are zero.

    [A,D] = lwt(sig,'LiftingScheme',lscheme);
    D{1}
    ans = 8×1
    
             0
             0
             0
             0
             0
             0
             0
        5.6569
    
    

    Now create the lifting scheme associated with the Haar wavelet.

    lschemeH = liftingScheme('Wavelet','haar');

    Apply the lifting scheme to the signal. Confirm the detail coefficients are all nonzero. Because the Haar wavelet has only one vanishing moment, the wavelet is not orthogonal to the degree 1 polynomial.

    [AH,DH] = lwt(sig,'LiftingScheme',lschemeH);
    DH{1}
    ans = 8×1
    
        0.7071
        0.7071
        0.7071
        0.7071
        0.7071
        0.7071
        0.7071
        0.7071
    
    

    Compatibility Considerations

    expand all

    Behavior changed in R2021b

    Extended Capabilities

    See Also

    | | | |

    Introduced in R2021a