## 3 Noise-Canceling Chair Design
### Control Algorithm  
The noise-canceling chair comprises two loudspeakers and two error microphones. The microphones receive sound from both loudspeakers, so MIMO control had to be designed. Feedforward control with multiple reference signals has been chosen, which would imply the application of the multiple error LMS (MLMS) algorithm [16]. However, the MLMS algorithm and also its original single input-single output version, the filtered-X LMS (XLMS), algorithm suffer from a low convergence rate. Hence, the filtered error LMS (ELMS) algorithm has been implemented [11], which requires less computations, as well. Going forward, it is assumed that the MLMS algorithm is well known; thus, only the ELMS algorithm is presented in detail. The control loop can be seen in Figure 15. All the signals are vectors, and the transfer functions are matrices. For the sake of convenience, the notations of the time step \(n\) and the discrete complex frequency variable \(z\) are omitted in the figure. Figure 14: Block diagram of the chair with the controller. Figure 13: Photo of the headrest with the error microphones. The reference signal vector \(\mathbf{x}_{n}\) results in the primary noise vector \(\mathbf{d}_{n}\), where the primary path is modeled by the matrix \(\mathbf{A}_{1}(z)\). The secondary path is modeled by \(\mathbf{A}_{2}(z)\), which filters the output of the adaptive filters. To each loudspeaker belongs \(K\) adaptive filters, where \(K\) is the number of reference sensors. Since there are two outputs, the adaptive filter matrix \(\mathbf{W}(z)\) has two rows and \(K\) columns. Each adaptive filter has an equal number of coefficients \(N\). In the time domain, the filters' output \(\mathbf{y}_{n,k}\) can be expressed as follows:  
\[\mathbf{y}_{k,n}=\mathbf{w}_{k,n}^{T}\mathbf{x}_{k,n},\ \ k=1\dots K. \tag{1}\]  
The filter coefficient matrix \(\mathbf{w}_{k,n}\) has two columns, since there are two outputs, and \(N\) rows, according to the number of the coefficients. Thus, the vector \(\mathbf{x}_{k,n}\) collects the actual and the previous \(N-1\) samples of the \(k\)-th reference signal. The output of the controller is the sum of the filters' outputs for all the reference signals:  
\[\mathbf{y}_{n}=\sum_{k=1}^{K}\mathbf{y}_{k,n}. \tag{2}\]  
The error vector \(\mathbf{e}_{n}\) is simply the sum of the primary and the secondary noise in the position of the error microphones:  
\[\mathbf{e}_{n}=\mathbf{d}_{n}+\mathbf{A}_{2}(z)\mathbf{y}_{n} \tag{3}\]  
The adaptation of the control filters' coefficients is as follows:  
\[\mathbf{w}_{k,n+1}=\mathbf{w}_{k,n}-\mu\mathbf{x}_{k,n-D}\mathbf{r}_{n}^{T},\ \ k=1\dots K, \tag{4}\]  
where:  
\[\mathbf{r}_{n}=\mathbf{\hat{A}}_{2}^{-1}\mathbf{e}_{n}. \tag{5}\]  
The procedure can be easily followed by Figure 15. Instead of filtering the reference signal by the model of the secondary path, as it is usual in the case of the XLMS or the MLMS algorithm, here the error signal is filtered by a particular inverse of the secondary path. If \(\mathbf{A}_{2}(z)\) is of non-minimum phase, its exact inverse is unstable. However, the so-called delayed inverse always exists, is stable [11] and can be used for the adaptation. This delay needs to be compensated; this is why \(z^{-D}\) is inserted in the reference path. If the delay \(D\) is sufficiently high, a common delay for all the filters can be set, which can ease the implementation. The parameter \(\mu\) controls the speed of convergence in the usual way. Although the delayed inverse \(\mathbf{\hat{A}}_{2}^{-1}\) can be determined by inverting the model of the secondary path, a much simpler procedure is depicted in Figure 16. Here, the vectors are split into scalar signals for the two by two case. Independent random signals \(x_{1,n}\) and \(x_{2,n}\) are generated and connected to the loudspeakers. Now, the error microphone signals are the inputs for the adaptive filter matrix \(\mathbf{H}(z)\). The desired signals for  
Figure 14:0 Filtered error least mean squared (ELMS) algorithm.