## 5 Feature Extraction
### Time-Frequency Domain Features  
This section presents the fundamental background of time-frequency analysis, the motivation to develop these methods, and how they have been used for road surface anomaly detection and classification. In particular, this section introduces the STFT, the CWT, and the DWT since these are the common time-frequency methods used in the literature. In addition, studies that have used these types of techniques for road anomaly detection and classification are presented in more detail. The term time-frequency analysis summarizes analytical techniques which quantify the time trend in spectral signals [64]. Although the FT provides detailed information on a signal's frequency content, it does not provide information on when those frequencies occur. One technique that tries to produce a time-frequency representation of a signal is the STFT. This method tries to produce details about the times and frequency by splitting the overall time interval into many short intervals and then taking the FFT for every interval. The STFT, also known as Gabor Transform, is defined as follows [65]. \[G(t,\omega)=\int_{-\infty}^{\infty}f(\tau)e^{-i\omega\tau}g(\tau-t)d\tau \tag{6}\]  
where the function \(g(t)\) is referred to as the STFT kernel and provides the short-time windows to perform the FT, this kernel is often a Gaussian function, expressed as follows. \[g(t)=e^{-(t-\tau)^{2}/a^{2}} \tag{7}\]  
The \(a\) parameter controls the spread of the window, while \(\tau\) controls the center of the moving window of the STFT. In time-frequency analysis, there is the Heisenberg uncertainty principle, that states that a signal cannot arbitrarily be compressed in both time and frequency [66]. That above limits the possibility of simultaneously obtaining high resolution in both the time and frequency domain. Therefore, the STFT spectrogram tries to provide a time-frequency representation of the signal but with lower resolution in both domains. The above limitation introduces the wavelet transform. A wavelet is a limited waveform with an average zero value. In contrast to sinusoidals, which go from minus to plus infinity, wavelets have finite support. In addition, wavelets are of short length, non-symmetrical and irregular. One of the differences between the STFT and wavelets is that the signal is divided into scale segments instead of time segments. Wavelets can partially overcome the uncertainty principle by performing a multiresolution decomposition. There are two types of wavelet analysis tools, the CWT and the DWT [67]. In wavelet analysis, the fundamental principle is first to use a function called mother wavelet \(\psi(t)\) to create a family of versions that are scaled and translated by values of \(a\) and \(b\), respectively. This mother wavelet is represented as shown in the equation below [65; 67]. \[\psi_{a,b}(t)=\frac{1}{\sqrt{a}}\psi(\frac{t-b}{a}) \tag{8}\]  
The factor \(\frac{1}{\sqrt{a}}\) ensures that all scale functions possess the same energy. The CWT is defined mathematically as follows [65]. \[W(a,b)=\int_{-\infty}^{\infty}f(t)\psi_{a,b}(t)dt \tag{9}\]  
The above representation creates a two-dimensional mapping in the time and scale domains. CWT generally provides a trade-off between time-domain and frequency-domain localization. Nevertheless, they do not occur at the exact time or frequency. Therefore, it is more precise to say that the representation obtained through the CWT is well contained in both the frequency and time domains. However, the CWT produces an infinite redundancy because it generates innumerable coefficients, more than is sufficient to represent the original signal correctly. This redundancy is computationally costly only when the original signal is reconstructed; therefore, the DWT is introduced in the next section to avoid this drawback. The DWT can be represented as shown in the expression below. \[\psi_{jk}(t)=\frac{1}{\sqrt{2}}\psi(\frac{t-k2^{j}}{2^{j}}) \tag{10}\]  
where \(j\) is the scale parameter and \(k\) is the shift parameter, both of which are integers.