# Research on Frequency-Selective Output Constraint Algorithm for Active Vibration Control
## 3 Modified Rescaling Algorithm Development  
### The NFXLMS Algorithm with Amplitude Compensation  
The NFXLMS algorithm is a variant algorithm of FXLMS subject to narrowband noise and vibration control. It combines the trigonometric formulas with the FXLMS algorithm and can reduce the control effort dramatically [22; 23; 24; 25; 26; 27; 28]. It not only benefits from the real-time applications but also facilitates the manipulation of the line spectrum for some special purposes, such as the active noise equalizer and line spectrum reshaping [29; 30; 31; 32; 33]. The diagram of the NFXLMS algorithm is shown in Figure 2.  
Suppose the vibration source contains N frequency components \(\{f_{i}\}(i=0,\ 1,\cdots,N-1)\), the normalized circular frequency vector is:  
\[\mathbf{\Omega}=\{\omega_{i}\}^{T}=\left\{2\pi\frac{f_{i}}{f_{s}}\right\}^{T},i=0,1,\cdots N-1. \tag{5}\]  
where \(f_{i}\) and \(\omega_{i}\) are the \(i\)th frequency component and \(i\)th normalized circular frequency, respectively. \(f_{s}\) denotes the sample frequency. The two reference signal vectors are defined as:  
\[\mathbf{r}_{s}(n)=\{r_{si}(n)\}^{T}=\sin(\mathbf{\Omega}n),\mathbf{r}_{c}(n)= \{r_{ci}(n)\}^{T}=\cos(\mathbf{\Omega}n),i=0,1,\cdots,N-1. \tag{6}\]  
where \(r_{si}(n)\) and \(r_{ci}(n)\) denote the \(i\)th cosine and sine reference signal, respectively. Accordingly, two controller weight vectors associated with the reference signal vectors are defined as:  
\[\mathbf{w}_{s}(n)=\{w_{si}(n)\}^{T},\mathbf{w}_{c}(n)=\{w_{ci}(n)\}^{T},i=0,1, \cdots,N-1. \tag{7}\]  
Then, the output signal u(n) can be represented as:  
\[ \begin{array}{c}u(n+1)=\mathbf{w}_{s}^{T}(n)\mathbf{r}_{s}(n)+\mathbf{w}_{c} ^{T}(n)\mathbf{r}_{c}(n)\\ =\sum\limits_{i=0}^{N-1}w_{si}(n)\sin(\omega_{i}n)+\sum\limits_{i=0}^{N-1}w_{ ci}(n)\cos(\omega_{i}n)\\ =\sum\limits_{i=0}^{N-1}\left[w_{si}(n)\sin(\omega_{i}n)+w_{ci}(n)\cos(\omega_{ i}n)\right]=\sum\limits_{i=0}^{N-1}u_{i}(n+1)\end{array}  \tag{8}\]  
Figure 2: The diagram of the NFXLMS algorithm. where \(u_{i}(n+1)\) denotes the \(i\)th component in the output signal \(u(n+1)\) corresponding to \(i\)th frequency component. Similarly, the update equations of the weight vectors \(\{\mathbf{w}_{s}(n),\mathbf{w}_{c}(n)\}\) can be derived as [11; 20; 21; 23]:  
\[\left\{ \begin{array}{l}\mathbf{w}_{s}(n+1)=\mathbf{w}_{s}(n)+2\mu e(n)[\tau_{s}(n)* \delta(n)]\\ \mathbf{w}_{c}(n+1)=\mathbf{w}_{c}(n)+2\mu e(n)[\tau_{c}(n)*\delta(n)]\end{array} \right. \tag{9}\]  
where \(\delta(n)\) is an estimated FIR model of \(s(n)\) with L taps as previously. Let \(\mathbf{A}_{u}\) and \(\mathbf{\theta}_{u}\) be the amplitude vector and the phase vector of the output signal \(u(n)\). \(\mathbf{A}_{u}\) and \(\mathbf{\theta}_{u}\) can be calculated explicitly using trigonometric formulas as follows:  
\[\left\{ \begin{array}{l}A_{u}=\{A_{ui}(n+1)\}^{T}=\left\{\sqrt{w_{si}^{2}(n)+ w_{ci}^{2}(n)}\right\}^{T}\\ \mathbf{\theta}_{u}=\{\theta_{ui}(n+1)\}^{T}=\left\{\tan^{-1}\frac{w_{si}(n)}{w_{ ci}(n)}\right\}^{T}\end{array} ,i=0,1,\cdots N-1.\right. \tag{10}\]  
where \(i\) denotes the \(i\)th frequency component as previously. From Equation (9), it can be found that the secondary path \(\delta(n)\) introduces different amplitude ratios and phase differences at different frequencies. It causes the sub-frequency components to converge at different rates in the NFXLMS algorithm. In order to accelerate and balance the convergence rates of all sub-frequency components, an amplitude compensation method that multiplies the reference signal pairs by the normalized maximal amplitude ratio has been used [28; 29; 30; 31]. Define the amplitude of the secondary path at each frequency component as:  
\[\mathbf{p}_{s}=\{p_{si}\}^{T}=\{\left|\hat{S}(j\mathbf{\Omega})\right|\},i=0,1,\cdots, N-1. \tag{11}\]  
where \(p_{si}\) is the amplitude response of the secondary path model \(\hat{S}(z)\) at the normalized circular frequency \(\omega_{si}\).