Main Content

filterbank

Full-weight CWT filter bank for deep learning

Since R2022b

    Description

    psif = filterbank(clayer) returns the full-weight continuous wavelet transform (CWT) filter bank for clayer.

    example

    Examples

    collapse all

    Create a cwtLayer for a signal of length 2048 samples. Specify the analytic Morlet wavelet.

    clayer = cwtLayer(SignalLength=2048,Wavelet="amor");

    Obtain the full-weight CWT filter bank of the layer.

    psif = filterbank(clayer);

    Plot the filter bank.

    slen = clayer.SignalLength;
    f = 0:1/slen:1-1/slen;
    plot(f,psif')
    xlim([0 1/2])
    xlabel("Cycles/Sample")
    ylabel("Magnitude")
    title("Full-Weight Filter Bank")

    Figure contains an axes object. The axes object with title Full-Weight Filter Bank, xlabel Cycles/Sample, ylabel Magnitude contains 82 objects of type line.

    Create a CWT filter bank. Specify the same wavelet and signal length you used to create the CWT layer. Obtain the two-sided frequency responses of the wavelet filters in the filter bank. Compare with the full-weight CWT filter bank.

    fb = cwtfilterbank(SignalLength=2048,Wavelet="amor", ...
        Boundary="periodic");
    psidft = freqz(fb,FrequencyRange="twosided");
    max(abs(psidft(:)-psif(:)))
    ans = single
    
    5.9544e-08
    

    Input Arguments

    collapse all

    Deep learning layer, specified as a cwtLayer or icwtLayer object.

    Output Arguments

    collapse all

    Full-weight CWT filter bank, returned as a matrix.

    Data Types: double

    Version History

    Introduced in R2022b

    expand all