Main Content

ls2filt

Extract wavelet filters from lifting scheme

Since R2021a

    Description

    example

    [lod,hid,lor,hir] = ls2filt(lscheme) returns the wavelet decomposition and reconstruction filters associated with the lifting scheme lscheme.

    Examples

    collapse all

    Create a lifting scheme associated with the db4 wavelet.

    wv = 'db4';
    lsc = liftingScheme('Wavelet',wv);

    Use ls2filt to extract from the lifting scheme the corresponding wavelet filters. Compare with the filters generated by wfilters. Confirm they are equal.

    [lod,hid,lor,hir] = ls2filt(lsc);
    [lod2,hid2,lor2,hir2] = wfilters(wv);
    tiledlayout(2,1)
    nexttile
    stem(lod)
    hold on
    stem(lod2,"x")
    hold off
    title("Lowpass Decomposition")
    legend("ls2filt","wfilters",Location="northwest")
    nexttile
    stem(hid)
    hold on
    stem(hid2,"x")
    hold off
    title("Highpass Decomposition")
    legend("ls2filt","wfilters")

    figure
    tiledlayout(2,1)
    nexttile
    stem(lor)
    hold on
    stem(lor2,"x")
    hold off
    title("Lowpass Reconstruction")
    legend("ls2filt","wfilters")
    nexttile
    stem(hir)
    hold on
    stem(hir2,"x")
    hold off
    title("Highpass Reconstruction")
    legend("ls2filt","wfilters",Location="northwest")

    Now create a lifting scheme associated with the bior2.2 wavelet.

    wv = 'bior2.2';
    lsc = liftingScheme('Wavelet',wv);

    Use ls2filt to extract from the lifting scheme the corresponding wavelet filters. Compare with the filters generated by wfilters. Observe that wfilters includes the missing powers of the associated Laurent series as zeros so that all filters have equal even length. Except for the prepended and appended zeros, the filters coefficients generated by wfilters equal the coefficients returned by ls2filt.

    [lod,hid,lor,hir] = ls2filt(lsc);
    [lod2,hid2,lor2,hir2] = wfilters(wv);
    fprintf('Lowpass Decomposition\n ls2filt: %s\nwfilters: %s\n', ...
        num2str(lod),num2str(lod2))
    Lowpass Decomposition
     ls2filt: -0.17678     0.35355      1.0607     0.35355    -0.17678
    wfilters: 0    -0.17678     0.35355      1.0607     0.35355    -0.17678
    
    fprintf('Highpass Decomposition\n ls2filt: %s\nwfilters: %s\n', ... 
        num2str(hid),num2str(hid2))
    Highpass Decomposition
     ls2filt: 0.35355    -0.70711     0.35355
    wfilters: 0     0.35355    -0.70711     0.35355           0           0
    
    fprintf('Lowpass Reconstruction\n ls2filt: %s\nwfilters: %s\n', ...
        num2str(lor),num2str(lor2))
    Lowpass Reconstruction
     ls2filt: 0.35355     0.70711     0.35355
    wfilters: 0     0.35355     0.70711     0.35355           0           0
    
    fprintf('Highpass Reconstruction\n ls2filt: %s\nwfilters: %s\n', ...
        num2str(hir),num2str(hir2))
    Highpass Reconstruction
     ls2filt: 0.17678     0.35355     -1.0607     0.35355     0.17678
    wfilters: 0     0.17678     0.35355     -1.0607     0.35355     0.17678
    

    Input Arguments

    collapse all

    Lifting scheme, specified as a liftingScheme object.

    Output Arguments

    collapse all

    Decomposition filters associated with the lifting scheme, returned as vectors. lod is the lowpass decomposition filter. hid is the highpass decomposition filter.

    Data Types: double

    Reconstruction filters associated with the lifting scheme, returned as vectors. lor is the lowpass decomposition filter. hir is the highpass decomposition filter.

    Data Types: double

    Extended Capabilities

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

    Version History

    Introduced in R2021a