# Performance Evaluation of Active Noise Control for a Real Device Casing
## 2 Active Noise Control
Reduced computational complexity allows for implementation of the algorithm on slower hardware or for implementation of more advanced algorithms, such as algorithms with nonlinear control filters or artificial neural networks [20; 21], on the same hardware. Selected error, \(v(n)\), is switched in a round-robin fashion at frequency higher than FxLMS algorithm convergence rate, so the FxLMS algorithm averages control filter weights over all errors. \(N_{I}\) is the period of error switching. The selected error is set according to:  
\[v(n)=\left\lfloor\frac{n}{N_{I}}\right\rfloor\mod N_{E}, \tag{2}\]  
where \(N_{E}\) is the number of errors. Adaptive control filter weights are updated according to the single-error leaky FxLMS with normalization:  
\[\mathbf{w}_{p,c}(n+1)=\alpha\mathbf{w}_{p,c}(n)-m(n)\mu_{p}(n)\mathbf{r}_{p,c,v(n)}(n)e_{v(n)}(n), \tag{3}\]  
where \(\alpha=(1-\mu_{n}\gamma)\) is a constant related to leak; \(\mu_{n}\) is the normalized LMS step size; \(\gamma\) is the LMS leak factor; \(m(n)\) is a binary mask signal, equal to 0 or 1, used to disable adaptation when the vector of regressors of the reference signal are not ready; \(\mu_{p}(n)\) is the LMS step size for the \(p\)th task,  
Figure 1: Simplified ANC system block diagram. \(\mathbf{r}_{p,\varepsilon,p(n)}(n)=[r_{p,\varepsilon,p(n)}(n),r_{p,\varepsilon,p(n )}(n-1),\ldots,r_{p,\varepsilon,p(n)}(n-(N_{\mathrm{W}}-1))]^{T}\) is a vector of regressors of the filtered reference; and \(e_{v(n)}(n)\) is the \(v(n)\)th error signal. The normalization is, however, done differently than in the single-error algorithm, because the step size must be the same for all error signals; otherwise, the algorithm would use different errors with different weights. The reference signal power is normalized over a longer horizon:  
\[\mu_{p}(n)=\frac{\mu_{n}}{P_{p}(n)+\zeta} \tag{4}\]  
where \(P_{p}(n)\) is an estimate of the total power of all filtered reference signals [18], and \(\zeta\) is a small positive constant to avoid division by zero. There are many other variable-step LMS algorithms [22], which could be used. The only requirement is that the step size for all errors is about the same. The filtered reference signals are obtained by filtration of the reference signal by appropriate models of secondary paths:  
\[r_{p,\varepsilon,p(n)}(n)=\mathbf{s}_{p,\varepsilon,p(n)}^{T}\mathbf{x}_{r}( n), \tag{5}\]  
where \(\mathbf{\hat{s}}_{p,\varepsilon,p(n)}=[\hat{s}_{p,\varepsilon,p(n),0},\hat{s }_{p,\varepsilon,p(n),1},\ldots,\hat{s}_{p,\varepsilon,p(n),N_{\mathrm{S}}-1}]\) is the model of the secondary path from the \(c\)-th output of the \(p\)-th task to the \(v(n)\)-th error signal, \(N_{\mathrm{S}}\) is the number of parameters of this model and \(\mathbf{x}_{r}(n)=[x(n),x(n-1),\ldots,x(n-(N_{\mathrm{S}}-1))]^{T}\) is a vector of regressors of the reference signal. As the reference signal \(x(n)\), the signal from reference microphone \(x_{m}(n)\) can be directly used. However, if vibrations generated by actuators used by the control system have significant influence on the reference microphone signal, then acoustic feedback path may reduce the performance of the system or even cause instability. In such a case it is recommended to reduce the feedback path influence by removing all modeled contributions of outputs to the reference microphone:  
\[x(n)=x_{m}(n)-\sum_{p=0}^{p-1}\sum_{c=0}^{C_{p}-1}\mathbf{\hat{f}}_{p,c}(n)^{ T}\mathbf{u}_{p,c}(n), \tag{6}\]  
where \(C_{p}\) is the number of outputs of the \(p\)-th task, \(\mathbf{\hat{f}}_{p,c}(n)=[\hat{f}_{p,c,0}(n),\hat{f}_{p,c,1}(n),\ldots,\hat{f }_{p,c,N_{\mathrm{F}}-1}(n)]\) is a model of the acoustic feedback path, with \(N_{\mathrm{F}}\) parameters, and \(\mathbf{u}_{p,c}(n)=[u_{p,c}(n),u_{p,c}(n-1),\ldots,x_{p,c}(n-(N_{\mathrm{F} }-1))]^{T}\) is a vector of regressors of the \(c\)-th output of the \(p\)-th task.