Main Content


Create elementary lifting step

Since R2021a


    Lstep = liftingStep returns an elementary lifting step as a structure array with default field values. You can add the lifting step to a liftingScheme object. For more information, see addlift.


    Lstep = liftingStep(Name,Value) sets field values using name-value arguments. For example, Lstep = liftingStep('Type','update') creates a lifting step of type 'update'. You can specify multiple name-value arguments. Enclose each field name in quotes.


    collapse all

    This example shows how to apply a lifting scheme with user-specified lifting steps to a signal.

    Create two lifting steps. Concatenate the steps in a single array.

     els1 = liftingStep('Type','update',...
         'Coefficients',[-sqrt(3) 1],'MaxOrder',0);
     els2 = liftingStep('Type','predict',...
         'Coefficients',[1 sqrt(3)/4+(sqrt(3)-2)/4],'MaxOrder',1);
     stepArray = [els1;els2];

    Specify normalization constants.

    K = [(sqrt(3)+1)/sqrt(2) (sqrt(3)-1)/sqrt(2)];

    Create a lifting scheme using the array of lifting steps and the normalization constants.

    lScheme = liftingScheme('LiftingSteps',stepArray, ...
    lScheme = 
     	 Wavelet               : 'custom' 
    	 LiftingSteps          : [2 × 1] liftingStep 
    	 NormalizationFactors  : [1.9319 0.5176] 
    	 CustomLowpassFilter   : [  ] 
     Details of LiftingSteps :
                Type: 'update'
        Coefficients: [-1.7321 1]
            MaxOrder: 0
                Type: 'predict'
        Coefficients: [1 0.3660]
            MaxOrder: 1

    Create a signal. Apply the lifting scheme to the signal.

    sig = 0:20;
    [ca,cd] = lwt(sig,'LiftingScheme',lScheme);

    Input Arguments

    collapse all

    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.

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

    Example: ls = liftingStep('MaxOrder',2,'Type','update','Coefficients',[1 2 3])

    Type of elementary lifting step, specified as 'predict' or 'update'.

    Data Types: char | string

    Laurent polynomial coefficients that correspond to the z-transform of the lifting filter, specified as a real-valued vector. The order of the first element of Coefficients is MaxOrder.

    Data Types: single | double

    Maximum order of the Laurent polynomial coefficient, specified as an integer.

    Data Types: double

    Output Arguments

    collapse all

    Elementary lifting step, returned as a structure. Lstep has three fields:

    • Type — Type of lifting step, returned as a character array.

    • Coefficients — Laurent polynomial coefficients, returned as a real-valued vector.

    • MaxOrder — Maximum order of the Laurent polynomial, returned as an integer.

    Data Types: struct

    Extended Capabilities

    C/C++ Code Generation
    Generate C and C++ code using MATLAB® Coder™.

    Version History

    Introduced in R2021a