\subsection{Signal Normalization} Each raw acceleration time series \(\mathbf{a}_{k}(n)\), \(n = 0,1,\dots,N-1\) with \(N=262144\) samples (collected at \(f_s=1024\) Hz over 256 s) :contentReference[oaicite:0]{index=0} is first standardized to zero mean and unit variance: \[ \tilde a_{k}(n) =\frac{a_{k}(n)-\mu_{k}}{\sigma_{k}}, \quad \mu_{k}=\frac{1}{N}\sum_{n=0}^{N-1}a_{k}(n), \quad \sigma_{k}=\sqrt{\frac{1}{N}\sum_{n=0}^{N-1}\bigl(a_{k}(n)-\mu_{k}\bigr)^{2}}. \] \subsection{Framing and Windowing} The normalized signal \(\tilde a_{k}(n)\) is chopped into overlapping frames of length \(W\) samples with hop size \(H\). The \(p\)-th frame is \[ x_{k,p}[m] =\tilde a_{k}(pH + m)\,w[m], \quad m=0,1,\dots,W-1, \] where \(w[m]\) is a chosen window function (e.g., Hamming). \subsection{Short-Time Fourier Transform (STFT)} For each frame \(x_{k,p}[m]\), compute its STFT: \[ S_{k}(f,p) =\sum_{m=0}^{W-1}x_{k,p}[m]\;e^{-j2\pi\,f\,m/W}, \] where \(f=0,1,\dots,W-1\) indexes frequency bins :contentReference[oaicite:1]{index=1}. \subsection{Spectrogram and Log-Magnitude} Form the magnitude spectrogram \[ M_{k}(f,p) =\bigl|S_{k}(f,p)\bigr|, \] and apply log scaling for numerical stability: \[ L_{k}(f,p) =\log\bigl(1 + M_{k}(f,p)^{2}\bigr). \] This yields a time–frequency representation \(\mathbf{L}_{k}\in\mathbb{R}^{F\times P}\), with \(F\) frequency bins and \(P\) frames. \subsection{Feature Matrix Assembly} For each column \(j\in\{1,\dots,5\}\), select only the two endpoint sensors: \[ \mathbf{L}_{\text{bot},j} = \mathbf{L}_{(j)},\quad \mathbf{L}_{\text{top},j} = \mathbf{L}_{(25+j)}, \] and stack them: \[ \mathbf{F}_{j} = \begin{bmatrix} \mathbf{L}_{\text{bot},j} \\[6pt] \mathbf{L}_{\text{top},j} \end{bmatrix} \;\in\mathbb{R}^{2F\times P}. \] Finally, flatten into a feature vector: \[ \mathbf{f}_{j} =\operatorname{vec}\bigl(\mathbf{F}_{j}\bigr) \;\in\mathbb{R}^{2FP}. \]