Main Content

liftingStep

Create elementary lifting step

    Description

    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.

    example

    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.

    Examples

    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,'NormalizationFactors',K)
    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 comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

    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™.

    Introduced in R2021a