## 3 Simulations  
Using MATLAB, the performance of DMPExNLMS algorithm was compared with that of the other standard ANC methods. The sampling frequency was set to 8000 Hz. The primary path \(P\left(z\right)\) and the secondary path \(S\left(z\right)\) were modelled as FIR filters with lengths of 256 and 128, respectively. To avoid the influence of a secondary path, the estimated secondary path \(\hat{S}\left(z\right)\) was assumed to be identified as \(S\left(z\right)\) in simulation work. The frequency response of the primary path and secondary path of a real duct are shown in Figure 3. The weight vector \(\mathbf{\Theta}\left(n\right)\) was modelled as a FIR filter with 256 taps. Referring to [13], the averaged noise reduction (ANR) was used to compare the performance, defined as  
\[ANR\left(n\right)=20\log\left(\frac{A_{e}\left(n\right)}{A_{d}\left(n\right) }\right), \tag{45}\]  
where  
\[ \begin{array}{l}A_{e}\left(n\right)=\xi A_{e}\left(n-1\right)+\left(1-\xi \right)\left|e\left(n\right)\right|\\ A_{d}\left(n\right)=\xi A_{d}\left(n-1\right)+\left(1-\xi\right)\left|d\left( n\right)\right|\end{array} . \tag{46}\]The brief operation of DMPFxNLMS is shown in Table 1, its computational complexity for one iteration is summarized in Table 2. In Table 2, FxLMS, FxlogLMS [8], PFxNLMS [13] and FxRMC [15] are used as the references to evaluate the computational efficient of DMPFxNLMS. The parameter setting of the mentioned algorithms are shown in Table 3. \begin{table}
\begin{tabular}{l l l} \hline \hline
**Initialization and parameter selection** \\ Length of primary path \(P\left(z\right)\), length of secondary path \(S\left(z\right)\). \\ Step size of proposed method: \(\mu\) \\ Length of weightvector \(M\) & Initiate angle \(\theta\) \\ Length of sliding windows: \(N_{q}\), \(N_{w}\) \\ Length of quantity levels: \(L\) \\ \hline
**Brief operations** \\
**While**\(\left\{\mathbf{u}\left(n\right),e\left(n\right)\right\}\)**available do** \\
1. \(y_{f}\left(n\right)=\left[\mathbf{\tilde{G}}^{T}\left(n\right)\mathbf{u}\left( n\right)\right]*s\left(n\right)\) \\
2. \(\mathbf{u}_{f}\left(n\right)=\mathbf{u}\left(n\right)*s\left(n\right)\) \\
3. \(e\left(n\right)=d\left(n\right)-y_{f}\left(n\right)\) \\
4. \(\kappa\left(n\right)=\exp\left(-\frac{\sigma^{2}\left(n\right)}{\sigma^{2} \left(n\right)}\right)\) \\
5. \(\sigma^{2}\left(n+1\right)=\sigma^{2}\left(n\right)+\frac{1}{N_{q}}\left[e \left(n\right)\right]^{2}-\frac{1}{N_{q}}\left[e\left(n-N_{q}+1\right)\right] ^{2}\) \\
6. \(\eta\left(n\right)\), \(\Phi_{1}=\eta\left(n\right)\), \(\Phi_{2}=\eta\left(n-N_{w}+1\right)\), compare \(\Phi_{1}\) with \(\max\left[\sigma_{B_{*}}^{2}\left(n+1\right),\gamma_{s}\left(n+1\right)\right]\) \\
7. \(\varepsilon\left(n\right)=\left\{\begin{array}{c}\kappa\left(n\right)-1,\text{ if } \text{Fast tracking}\\ 1-\kappa\left(n\right),\text{ if }\text{Robust}\\ \end{array}\right.\) \\
8. \(\mathbf{\tilde{G}}\left(n\right)=\left(1-\varepsilon\left(n\right)\right) \mathbf{\tilde{G}}\left(n\right)+\varepsilon\left(n\right)\mathbf{\tilde{G}} \left(n-1\right)\) \\
9. \(\mathbf{\Theta}\left(n+1\right)=\mathbf{\tilde{G}}\left(n\right)-\frac{u_{f} \left(n\right)}{\sigma_{B_{*}}^{2}\left(n\right)}e\left(n\right)\) \\
10. Updating \(P_{k}\left(n\right),m_{k}\left(n\right),P_{k}\left(n+1\right),m_{k}\left(n+1\right)\) \\
11. Updating \(\sigma_{B_{*}}^{2}\left(n+1\right),\gamma_{s}\left(n+1\right)\) \\
**end While** \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Computational complexity of the mentioned algorithms in one iteration. (\(M=256,L=10\)).