This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

powerbw

CWT filter bank 3-dB bandwidths

Syntax

bw = powerbw(fb)

Description

example

bw = powerbw(fb) returns 3-dB (half-power) bandwidths for the wavelet filters in the filter bank fb. bw is a Ns-by-4 MATLAB® table, where Ns is the number of wavelet bandpass frequencies (equal to the number of scales). For every filter in fb, the table contains the corresponding bandpass frequency, the 3-dB bandwidth, and the lower frequency and upper frequency limits of the 3-dB bandwidth.

The 3-dB bandwidth limits mark where the filter power is half its peak value. The magnitude frequency response at the limits is equal to 1/√2 times the peak magnitude. Since the passbands in fb are normalized with peak magnitudes approximately equal to 2, the magnitude frequency response at each limit is approximately equal to 2/√2. The 3-dB bandwidth is also known as the half-power bandwidth because 20 log101/√2 ≅ -3.

Examples

collapse all

Create a CWT filter bank.

fb = cwtfilterbank;

Obtain the 3-dB (half-power) bandwidths of the filter bank. Obtain the frequency responses of the wavelets.

bw = powerbw(fb);
[psidft,f] = freqz(fb);

Inspect the first few rows in the table bw.

bw(1:10,:)
ans=10×4 table
    Frequencies    HalfPowerBandwidth    LowFrequencyBorder    HighFrequencyBorder
    ___________    __________________    __________________    ___________________

      0.43412            0.09323              0.38751                0.48074      
      0.40505           0.086988              0.36156                0.44855      
      0.37793           0.081162              0.33735                0.41851      
      0.35262           0.075726              0.31476                0.39048      
        0.329           0.070655              0.29368                0.36434      
      0.30697           0.065924              0.27401                0.33994      
      0.28642           0.061509              0.25566                0.31717      
      0.26723            0.05739              0.23854                0.29593      
      0.24934           0.053547              0.22257                0.27611      
      0.23264           0.049961              0.20766                0.25762      

Choose a wavelet bandpass filter from the filter bank. Extract from the table bw the 3-dB limits of the bandpass filter.

wv = 5;
frq = bw.Frequencies(wv);
lfb = bw.LowFrequencyBorder(wv);
hfb = bw.HighFrequencyBorder(wv);

Plot the frequency response and 3-dB limits. Since the frequency response is scaled to have a maximum value equal to 2, inspect the plot to confirm the lower and upper frequency borders cross intersect the frequency response at sqrt(2).

plot(f,psidft(wv,:))
grid on
hold on
plot([lfb lfb],[0 2],'r')
plot([hfb hfb],[0 2],'r')
xlabel('Normalized Frequency (cycles/sample)')
ylabel('Magnitude')
title(['Bandpass Frequency: ' num2str(frq) ' cycles/sample'])

Input Arguments

collapse all

Continuous wavelet transform (CWT) filter bank, specified as a cwtfilterbank object.

Output Arguments

collapse all

3-dB (half-power) bandwidths, returned as a Ns-by-4 table, where Ns is the number of wavelet bandpass frequencies (equal to the number of scales). The table has the following four variables:

Bandpass frequency, returned as a positive scalar (see centerFrequencies).

Data Types: double

Half-power bandwidth, returned as a positive scalar.

Data Types: double

Lower frequency edge of the 3-dB bandwidth, returned as a positive scalar.

Data Types: double

High frequency edge of the 3-dB bandwidth, returned as a positive scalar.

Data Types: double

Data Types: table

Introduced in R2018a