# A Review of Sound Field Control
## 4 Active Noise Control
### Controller Algorithm  
The algorithm of the controller is the most important part of an ANC system, which directly determines the noise reduction performance. Convergence speed, computational complexity, and robustness are important metrics for algorithm evaluation. Faster convergence speed and lower steady-state error result in better noise control. The speed of convergence of the algorithm depends on the condition number of the covariance matrix of the filtered-x signal, which is the ratio of the largest eigenvalue to the smallest eigenvalue. The classical filtered-x least mean square (FxLMS) algorithm has been widely used due to its simplicity and efficiency. Because the condition number of the covariance matrix may be very large, the FxLMS algorithm has a slow convergence rate. Therefore, the filtered-x recursive least square (FxRLS) and filtered-x affine projection (FxAP) algorithms [63] use information from past moments to whiten the signal and reduce the condition number. Moreover, an algorithm for whitening the filtered-x signal with an inverse secondary path was also proposed. Since the inverse secondary path is a part of the Hessian matrix, the algorithm is called the filtered-x Newton (Fx-Newton) algorithm [64]. The speed of convergence can also be increased by changing the step size instead of changing the matrix condition number. The variable step-size algorithm uses a large step size to quickly converge in the initial stage and uses a small step size to obtain a smaller residual error in the steady-state stage [65]. The reduction in algorithm complexity is mainly achieved by computation optimization and control strategy. The calculation amount of the ANC algorithm is mainly concentrated in three aspects: filtered signal generation, output signal generation, and controller update. The frequency-domain algorithm uses the transform domain [66; 67], and the subband algorithm [68] uses the multi-rate method to reduce the computational cost of the calculation of the filtered reference and output signal [69; 70]. The partial update algorithm updates only part of the filter coefficients per sample period, instead of all coefficients, which reduces the cost of controller update [71]. Multi-channel systems have more secondary sources and error microphones [72; 73], and thus they may control noise over a larger area. However, as the number of secondary sources and error points increases, the computational complexity of multi-channel systems increases dramatically. The filtered error algorithm convolves secondary path and the error signal instead of the reference signal, which can significantly reduce the complexity of the filtered error signal generation, especially in multiple reference systems. Multi-channel algorithms can reduce the complexity through control strategies, mainly turning centralized algorithms into decentralized or distributed algorithms. The centralized algorithm has only one computing core in the center, and the computational burden is heavy. The decentralized algorithm splits the multi-channel system into multiple single-channel systems. The split system does not need to consider the cross secondary path, thereby reducing the filtered reference signal and controller update. The distributed method introduces multiple computable nodes through the network, thus reducing the computational cost of each computational node [74; 75]. Robustness refers to the ability of an algorithm to cope with changes in the environment. The changes in the environment mainly include variations in noise and secondary paths that require different optimal controllers. In headrest, all secondary paths are first identified offline. When the head moves, the controller switches to the optimal filter according to the head position determined by other sensors [76; 77]. We can also design parallel filters that match the noise to remove different types of noise [78]. Online modeling is a way to deal with a time-varying secondary path and is mainly divided into two types: additional noise modeling and noiseless modeling.