# What is the "-20dB" bandwidth of a signal and how to calculate it in MATLAB

35 views (last 30 days)
2NOR_Kh on 23 Oct 2022
Commented: William Rose on 29 Oct 2022
I searched to find the answer, I could find the 3dB bandwidth which is half power bandwidth and there is function to find that in MATLAB: bw = powerbw(x)
But I dont know anything about -20dB bandwidth, how to calculate it and the applications of using this one over 3dB.
Any helps appreciated,

William Rose on 23 Oct 2022
@Star Strider has given an excellent answer that explains, with code and figures, how to find the bandwidth of a filter, or transfer function. (I uset those terms interchangeably.)
The bandwidth of a signal is a closely related concept to the bandwidth of a filter or transfer funciton. You compute the power spectrum of a signal. YOU find the peak power in the power spectrum. The -20 dB bandwidth is the range of frequencies, around the frequency of peak power, in which the signal's power is not more than 20 dB less than the peak power.
The explanation and diagrams in powerbw() are good. They mostly show -3 dB bandwidth in the examples, since - 3 dB is the default, but you can use the r argument (r=20) to get the (-)20 dB bandwidth.
William Rose on 29 Oct 2022
Another suggestion for getting reasonable results from powerbw() is to use the spectrum computed the way you want to compute it:
fs=40e6; %sampling rate
dB1=20; %bandwidth limit
N=128; %window width for spectrum computation
[pxx,f]=pwelch(x,N,[],[],fs); %compute power spectrum
[bw1,flo,fhi]=powerbw(pxx,f,[],dB1); %compute bandwidth with powerbw()
pxxdB=pow2db(pxx);
plot(f,pxxdB,'-b.') %plot power spectrum
xlabel('Frequency (Hz)'); ylabel('Power (dB)'); grid on; hold on
yline(max(pxxdB),'--r'); yline(max(pxxdB)-20,'--r')
xline(flo,'--r'); xline(fhi,'--r')
The bandwidth range, when we use powerbw() this way, looks reasonable.

### Categories

Find more on Spectral Measurements in Help Center and File Exchange

R2021a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!