This example shows how to perform high resolution spectral analysis by using an efficient polyphase filter bank sometimes referred to as a channelizer.
This example compares full band and subband spectral estimators. Both spectral estimators use polyphase filter bank (channelizer) implementations which provide good resolution and improved accuracy when compared to Welch-method-based estimators. See High Resolution Spectral Analysis in MATLAB for a comparison between filter bank and Welch-based spectral estimators.
In this example, the full band estimator requires a 512-phase polyphase FIR filter and a 512-point FFT in order to compute the spectral estimate. The sinusoid frequencies in each subband are spaced further apart as the frequency increases. The idea is to setup a case in which higher frequency resolution is required at the low frequency band and lower resolution is required at higher frequency bands.
The sub-band approach is more efficient. It uses an 8-phase polyphase FIR filter and an 8-point FFT to divide the broadband signal into 8 sub-bands. Subsequently, a 64 band filter bank estimator (itself containing a 64-phase polyphase FIR filter and a 64-point FFT) is used with the low frequency sub-band in order to compute the spectral estimate with the same resolution as the full band estimator. The same implementation is used for the mid-low frequency band.
For the mid-high frequency band, the sinusoids are spaced further apart. Hence, a 32 band filter bank estimator is used. For the high-frequency band, we use a 16 band filter bank estimator.
harris, f. j. Multirate Signal Processing for Communications Systems, Prentice Hall PTR, 2004.