## 2 Methods
### Mode Separation for Multimodal Overlapped Lamb Waves  
Multimodal Lamb wave signal separation based on dispersion compensation and fourth-order cumulant ICA includes two steps - multimodal Lamb wave dispersion compensation to the measured signals and ICA blind separation for Lamb wave signals after the compensation. For the convenience of description, it is assumed that the received mixed Lamb wave signals consist of two-mode signals. They have different dispersion characteristics. The mixed Lamb wave signals, \(y(t)_{1}\) and \(y_{2}^{\prime}(t)\), corresponding to the positons at a and b along the propagation path, are measured. The distance between a and b is \(d\). It is set that the two-mode signals of the Lamb wave at position a are \(x_{1}(t)\) and \(x_{2}(t)\). The mode separation is to estimate \(x_{1}(t)\) and \(x_{2}(t)\) according to the measured signals of \(y_{1}(t)\) and \(y_{2}^{\prime}(t)\). First, the mixed signal at the position b is compensated by using the dispersion characteristic of the first mode and the compensation distance is \(d\). The signal after compensation is denoted as \(y_{2}(t)\), then  
\[y_{2}(t)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}Y_{2}^{\prime}(\omega)H_{p}^{- 1}(\omega)e^{i\omega t}d\omega \tag{4}\]  
where \(H_{p}^{-1}(\omega)\) is the compensation function of the \(p\)th (\(p\) = 1,2) mode obtained according to Equation (2), and \(Y_{2}^{\prime}(\omega)\) is the frequency spectrum of \(y_{2}^{\prime}(t)\). The signal matrix is set to \(\mathbf{Y}(t)=[\mathbf{y}_{1}(t),\mathbf{y}_{2}(t)]^{T}\). Its covariance matrix is defined as \(\mathbf{R(t)}\). \(\mathbf{R(t)}=E[\mathbf{Y}(t)\mathbf{Y}^{T}(t)]\). The fourth-order cumulant ICA algorithm is used to get the signals of the modes from the signal matrix \(\mathbf{Y}(t)\). The fourth-order cumulant ICA blind signal separation is generally expressed as follows. When both the mode Lamb wave signal and propagation parameters are unknown, each mode signal is retrieved from received multimodal overlapped Lamb wave signal matrix \(\mathbf{Y}(t)\)[20; 21; 22]. The matrix is whitened and the fourth-order cumulant matrix of the whitened matrix is calculated. Then the diagonalization of the cumulant matrix is performed to find the best estimation matrix. The whitened \(\mathbf{Y}(t)\) is defined as \(\mathbf{Z}(t)\),  
\[\mathbf{Z}(t)=\mathbf{V}\mathbf{Y}(t) \tag{5}\]  
where \(\mathbf{V}\) is the whitening matrix. It can be obtained by eigenvalue decomposition of the covariance matrix  
\[\mathbf{V}=\mathbf{E}\mathbf{D}^{-\frac{1}{2}}\mathbf{E}^{\mathrm{T}} \tag{6}\]  
where \(\mathbf{E}\) is the orthogonal matrix corresponding to the eigenvectors of \(\mathbf{R}\). \(\mathbf{D}\) is the diagonal matrix of \(\mathbf{Y}(t)\). The fourth-order cumulant matrix of \(\mathbf{Z}(t)\) is defined as \(\mathbf{C}_{Z}\)[23],  
\[ \begin{array}{l}\mathbf{C}=\mathrm{cum}\{\mathbf{Z},\mathbf{Z}^{*},\mathbf{ Z}^{*},\mathbf{Z}\}\\ =\mathrm{E}\big{\{}(\mathbf{Z}\otimes\mathbf{Z}^{*})(\mathbf{Z}\otimes\mathbf{ Z}^{*})^{\mathrm{H}}\big{\}}-\mathrm{E}\big{\{}(\mathbf{Z}\otimes\mathbf{Z}^{*})^{ \mathrm{H}}\big{\}}-\mathrm{E}\big{\{}(\mathbf{Z}\mathbf{Z}^{\mathrm{H}})\big{\}} \otimes\mathrm{E}\big{\{}(\mathbf{Z}\mathbf{Z}^{\mathrm{H}})^{*}\big{\}}\end{array}  \tag{7}\]  
To speed up the computation, the Givens transformation [24] is used to optimize the diagonalization of the cumulant matrix \(\mathbf{C}_{Z}\). For the cumulant matrix \(\mathbf{C}_{Z}\), the Givens matrix is used as  
\[\mathbf{G}^{\mathrm{T}}\mathbf{C}_{Z}\mathbf{G} \tag{8}\]To make \(\mathbf{C}_{Z}\) become a diagonal matrix, \(\mathbf{G}\) is the rotation matrix. Let  
\[\mathbf{C}_{Z}=\left[ \begin{array}{cc}c_{z11}&c_{z12}\\ c_{z12}&c_{z22}\end{array} \right] \tag{9}\]  
\[\theta=\frac{1}{2}\text{arctan}\left[\frac{2c_{z12}(c_{z11}+c_{z12})}{c_{z11} ^{2}-c_{z22}^{2}}\right] \tag{10}\]  
then,  
\[\left[ \begin{array}{cc}\cos(\theta)&-\sin(\theta)\\ \sin(\theta)&\cos(\theta)\end{array} \right]\left[ \begin{array}{cc}C_{z11}&C _{z12}\\ C_{z21}&C_{z22}\end{array} \right]\left[