CWT filter bank 3-dB bandwidths
bw = powerbw(fb)
returns 3-dB (half-power) bandwidths for the wavelet filters in the filter bank
bw = powerbw(
bw is a
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
20 log101/√2 ≅ -3.
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
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
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'])
bw— 3-dB (half-power) bandwidths
3-dB (half-power) bandwidths, returned as a
Ns is the number of
wavelet bandpass frequencies (equal to the number of scales). The table has
the following four variables:
Frequencies— Bandpass frequency
Bandpass frequency, returned as a positive scalar (see
HalfPowerBandwidth— Half-power bandwidth
Half-power bandwidth, returned as a positive scalar.
LowFrequencyBorder— Lower frequency edge
Lower frequency edge of the 3-dB bandwidth, returned as a positive scalar.
HighFrequencyBorder— High frequency edge
High frequency edge of the 3-dB bandwidth, returned as a positive scalar.