# Research on Frequency-Selective Output Constraint Algorithm for Active Vibration Control
## 2 The Rescaling Algorithm for FXLMS  
A general block diagram of the FXLMS algorithm is illustrated in Figure 1[20; 21]. The \(x(n)\) represents the real vibration source or the vibration signals at the reference point. It is used to provide key information about the real vibration source (as the real vibration sources are difficult to detect in many applications). \(d(n)\) is the disturbance, \(P(\mathrm{z})\) is the primary path, \(S(z)\) is the secondary path (which may include the D/A converter, the power output amplifier, and the actuator), \(W(z)\) is the controller modeled in the FIR (finite impulse response) form with N taps, and \(\hat{S}(z)\) is an estimated FIR model of the secondary path with L taps. \(u(n)\) is the output signal (or drive signal) generated by the controller, \(y(n)\) is the antivibration generated by the actuator used for the AVC process, and \(e(n)\) is the residual vibration at the test point after the AVC process and is usually acquired by vibration sensors in practical applications.  
The FXLMS algorithm performs an adaptation process on the controller weight vector \(\mathbf{w}(n)\) (in this paper, the lowercase x, w, s, etc. are the time-domain representations of their respective frequency-domain counterparts) to minimize the instantaneous power of the residual vibration signal \(e(n)\). According to the FXLMS algorithm, the output signal and the update equation of \(\mathbf{w}(n)\) can be drawn as:  
\[u(n)=\mathbf{w}^{T}(n)\mathbf{x}(n) \tag{1}\]  
\[\mathbf{w}(n+1)=\mathbf{w}(n)-\mu\frac{\partial\mathrm{e}^{2}(\mathrm{n})}{\partial \mathbf{w}(n)}=\mathbf{w}(n)+2\mu e(n)[\mathbf{x}(n)*\hat{s}(n)] \tag{2}\]  
where \(s(n)\) is the secondary path impulse response, \(\hat{s}(n)\) is an estimated FIR model of \(s(n)\) with L taps, \(\mathbf{w}(n+1)\) and \(\mathbf{w}(n)\) represent the controller weight vector in the \((n+1)\)th and \(n\)th iteration, and \(\mu\) is an adaption step size, which affects the stability and the convergence rate of the FXLMS algorithm and should be selected carefully.  
When the output signal \(u(n+1)\) produced by the FXLMS algorithm exceeds the maximal allowed value \(u_{\text{max}}\), the rescaling algorithm clips the output signal and rescales the controller weight vector into the constraint set to obtain a new updated vector. The implementation process of the rescaling algorithm is:  
(1) if \((|u(n+1)|\leq u_{\text{max}})\), the rescaling algorithm has no effect on the normal FXLMS algorithm;  
(2) if \((|u(n+1)|>u_{\text{max}})\), the output signal and the controller weight vector are clipped and rescaled by the equations:  
\[u(n+1)=u(n+1)(u_{\text{max}}/|u(n+1)|) \tag{3}\]  
\[\mathbf{w}(n+1)=\mathbf{w}(n+1)/(u_{\text{max}}/|u(n+1)|) \tag{4}\]  
The rescaling algorithm is designed for a single-frequency output constraint and the total control power constraint in a sense. Although it has many advantages such as a high accuracy and flexibility compared with the leakage LMS algorithm, it has some shortages. The most important one is that a certain amount of high-order harmonic signals may be introduced into the system in multi-frequency cases [16]. [PERSON] used the allowed maximal amplitude \(A_{\text{max}}\) in the theoretical analysis, but the maximal allowed output value \(|u_{\text{max}}|\) was eventually used in his experiments, most likely because of the real-time amplitude of the output signal not being explicitly produced in the FXLMS algorithm. Thus, an estimation of the amplitude is needed, and the accuracy of the estimation will cause a lot of concerns. Thus, it can be further optimized for narrowband AVC applications, especially for sub-frequency constraint cases. A modified rescaling algorithm subject to reduced harmonics and implemented sub-frequency constraints has been studied in Section 3.  
Figure 1: A general block diagram of the Filtered-x Least Mean Square (FXLMS) algorithm.