## 3 Proposed Algorithm
### A Few Practical Considerations  
With reference to the (modified) RLS algorithm given in (22)-(25), the a priori estimation error \(\varepsilon(n)\) required in the coefficient update equation (25) would require the current value of \(d(n)\) (see (13)). As stated earlier, \(d(n)\) is not directly accessible in the ANC setup, and only the residual error signal \(e(n)\) is available via the error microphone (see Figure 1). Therefore, it is proposed to implement the developed RLS-based algorithm in an Mfx-based ANC structure instead of the classical Fx-based ANC structure shown in Figure 1. For details on the convergence properties of an Mfx-based ANC structure, the interested reader may see [38] and references therein.  
A block diagram for the proposed FxRLS algorithm-based ANC system implemented in an Mfx structure is shown in Figure 2, which employs two copies of the secondary path modeling filer \(\hat{S}(z)\). One copy of \(\hat{S}(z)\) is used to 'filter' the reference signal \(x(n)\) to obtain the Fx signal \(x_{f}(n)\). The other copy of \(\hat{S}(z)\) is used to filter the ANC filter output signal \(y(n)\) to obtain an estimate of the canceling signal \(\hat{y}^{\prime}(n)\), which in turn is combined with \(e(n)\) to obtain an estimate of the disturbance signal \(\hat{d}(n)\) as  
\[\hat{d}(n) =e(n)+\hat{y}^{\prime}(n),\] \[=e(n)+\hat{s}(n)*y(n), \tag{26}\]  
which is used to modify (13) as  
\[\varepsilon(n)\equiv g(n)=\hat{d}(n)-\mathbf{x}_{f}^{\rm T}(n)\mathbf{w}(n-1). \tag{27}\]  
As shown in Figure 2, the Mfx-based ANC structure employs two copies of ANC filter \(W(z)\) where the coefficients of the adaptive one are updated using \(\varepsilon(n)\equiv g(n)\) instead of \(e(n)\). As in the update equation (12) of the classical FxRLS algorithm, the increment vector (to update the coefficients of the control filter) in (25) in the proposed algorithm is computed as a product of the (modified) Kalman gain vector (23) and 'estimated' a priori estimation error (27). Additionally, we suggest to introduce a step size \(\mu\) to have a control over the adaptation, and hence, the adaptation in (25) is proposed to be modified as  
\[\mathbf{w}(n)=\mathbf{w}(n-1)+\mu g(n)\mathbf{k}_{m}(n). \tag{28}\]After adaptation, the coefficients of the adaptive one are copied to the main ANC filter \(W(z)\) responsible for generating \(y(n)\) which will be used in performing noise cancellation. Equation (23) shows that computing the (modified) Kalman gain vector in the proposed algorithm requires computing \(m(n)\) (as defined in (18)). Considering (18) and the above modification, the parameter \(m(n)\) in the proposed algorithm is suggested to be computed as  
\[m(n)=\bigg{\{}\frac{1}{(1+\beta e^{2}(n))^{2}}\bigg{\}}\approx\bigg{\{}\frac{1} {(1+\beta g^{2}(n))^{2}}\bigg{\}}. \tag{29}\]  
Finally, considering the application at hand for ANC of impulsive noise sources, a smoothed version of the inverse correlation matrix in (24) is computed as  
\[\mathbf{\Phi}_{\rm m}(n)=\zeta\mathbf{\Phi}_{\rm m}(n-1)+(1-\zeta)\Big{[}\lambda^{-1} \mathbf{\Phi}_{\rm m}(n-1)-\lambda^{-1}\mathbf{k}_{\rm m}(n)\mathbf{u}_{\rm m}^{T}(n)\Big{]}, \tag{30}\]  
where \(0\ll\zeta<1\) is the forgetting factor. The resulting FSS-MFxRRLS ANC algorithm essentially replaces (24) and (25) with (30) and (28), respectively.