# liftfilt

Apply elementary lifting steps on filters

## Syntax

``[LoDN,HiDN,LoRN,HiRN] = liftfilt(LoD,LoR,LiftingSteps=ELS)``
``[LoDN,HiDN,LoRN,HiRN] = liftfilt(LoD,LoR,NormalizationFactor=NF)``
``liftfilt(___)``

## Description

example

````[LoDN,HiDN,LoRN,HiRN] = liftfilt(LoD,LoR,LiftingSteps=ELS)` returns the four filters obtained by adding an array of elementary lifting steps (`ELS`) starting from the two filters `LoD` and `LoR`.```
````[LoDN,HiDN,LoRN,HiRN] = liftfilt(LoD,LoR,NormalizationFactor=NF)` scales the filters by the normalization factor `NF`.```
````liftfilt(___)` with no output arguments plots the successive biorthogonal pairs. A scaling function and a wavelet comprise each pair.```

## Examples

collapse all

This example shows how to obtain the `bior1.3` wavelet filters using Haar filters and elementary lifting steps.

Obtain the Haar lowpass decomposition and reconstruction filters.

`[LoD,~,LoR,~] = wfilters("haar");`

Use `liftingStep` to create two elementary lifting steps of type `update`. Create an array consisting of the two steps.

```els1 = liftingStep(Type="update",... Coefficients=[0.125 -0.125],MaxOrder=0); els2 = liftingStep(Type="update",... Coefficients=[0.125 -0.125],MaxOrder=1); elsBoth = [els1;els2];```

Apply the lifting steps to the Haar filters to obtain new filters.

`[LoDN,HiDN,LoRN,HiRN] = liftfilt(LoD,LoR,LiftingSteps=elsBoth);`

Obtain the `bior1.3` wavelet filters. Confirm that up to a sign change, the wavelet filters are equal to the filters `liftfilt` returns.

```[LoDw,HiDw,LoRw,HiRw] = wfilters("bior1.3"); samewavelet = ... isequal([LoDw,HiDw,LoRw,HiRw],[LoDN,-HiDN,LoRN,HiRN])```
```samewavelet = logical 1 ```

Use `liftfilt` to plot the successive biorthogonal pairs of scaling functions and wavelets.

`liftfilt(LoD,LoR,LiftingSteps=elsBoth)`

## Input Arguments

collapse all

Lowpass filters associated with a wavelet, specified as real-valued vectors. `LoD` is the lowpass decomposition filter. `LoR` is the lowpass reconstruction filters.

Example: For `[LoD,~,LoR,~] = wfilters("db4")`, `liftfilt(LoD,LoR,LiftingSteps=lsteps)` applies the elementary lifting steps specified in `lsteps` to the `db4` filters.

Data Types: `double`

Lifting steps, specified as a structure array consisting of elementary lifting steps.

• If `liftingStep.Type="update"`, `LoR` and `HiD` are unchanged, where `HiD` is the associated highpass decomposition filter.

• If `liftingStep.Type="predict"`, `LoD` and `HiR` are unchanged, where `HiR` is the associated highpass decomposition filter.

Example: `liftfilt(LoD,LoR,LiftingSteps=ELS)` applies the elementary lifting steps specified in `lsteps` to the filters `LoD` and `LoR`.

Data Types: `struct`

Normalization factor, specified as a nonzero scalar.

Example: ```[LoDN,HiDN,LoRN,HiRN] = liftfilt(LoD,LoR,NF=2)``` scales the filters by 2.

Data Types: `double`

## Output Arguments

collapse all

Decomposition filters, returned as a pair of real-valued vectors. `LoDN` and `HiDN` correspond to the lowpass and highpass filters, respectively.

Data Types: `double`

Reconstruction filters, returned as a pair of real-valued vectors. `LoRN` and `HiRN` correspond to the lowpass and highpass filters, respectively.

Data Types: `double`

## Version History

Introduced in R2021b

expand all