Tue May 30 2023, Piotr Gregor
There are parametric and non-paramteric methods for spectral analysis. Most popular non-parametric method is DFT. Goertzel algorithm used for DTMF detection in telephony is an example of DFT. Very important property of DFT based methods is that their accuracy depends on a number of samples used for computation, or more precisely:
Frequency resolution df (as a least resolvable frequency difference) is an inverse function of number of samples:
df = Fs/N
This is extremely important, cause it means such methods do not perform well when number of available samples is limited or when analysed signal is very short. For DTMF minimum difference between frequencies is 73 Hz, so for the resolvable frequency to be less or equal that, the number of samples must be above 110, at 8 kHz sampling rate (Fs = 8 kHz).
Parametric methods assume a specific signal characteristics and exploit that by constructing mathematical models that may have some useful features (and may take some additional parameters).
MUSIC is an example of such method. It exploits the information about the number of frequency components to produce a model that performs well even if the number of samples is very low. How? Here are the key concepts:
For a tone (a sine of specific frequency) if you take consecutive samples and create vectors of same size, then all these vectors will lie on a same 2 dimensional plane (only 2 base vectors are needed to generate all those vectors as a linear combination of base vectors).
If you take a signal that consists of multiple, say P, sinusoidal frequency components and you compute autocorrelation, the autocorrelation will preserve frequency structure, there will be same P frequency components in autocorrelation signal. For each of them 2 base vectors are needed, so the number of vectors that generate this compound signal is 2P.
Signal components contribute vast majority to energy of the compound signal, other components (noise) contribute less (that's how it must be for a useful signal). SVD is a method for computation of leading energy vectors, and so 2P first vectors of the SVD matrix computed on autocorrelation matrix are those that generate the original signal. It's then only a matter how to compute their frequency: this can be done by projecting frequency representatives (steering vectors) onto the plane constructed from obtained base vectors (if the steering vector is in a plane, then it's frequency is detected in original signal) or by computation of roots of corresponding eigenfilters.
It turns out that to detect DTMF (double frequency tones) MUSIC needs only 8 samples and to detect a single tone only 4 samples are needed.
R. O. Schmidt, “Multiple Emitter Location and Signal Parameter Estimation”, IEEE Trans. on Antennas and Propagation, vol. AP-34, no. 3, pp. 276-280, Mar. 1986
M. H. Hayes, "Statistical Digital Signal Processing and Modelling", Georgia Institute of Technology, Wiley, 2008
W. D. Penny, “Signal Processing Course”, University College London, 2000
P.Gregor, "Application of MUSIC algorithm to DTMF detection", Warsaw University of Technology, APD: 55025, urn:pw-repo:WUTc68fc56ec9184138ac592643140364db, https://repo.pw.edu.pl/info/bachelor/WUTc68fc56ec9184138ac592643140364db/, 2022
For everyone, by engineers