# Frequency-Domain Filtered-x LMS Algorithms for Active Noise Control: A Review and New Insights
## 3 Conventional Frequency-Domain ANC Algorithms
### FPBFxLMS Algorithm  
The diagram of the FPBFxLMS algorithm is shown in Figure 2. The linear convolution operations (1) and (5) and the cross-correlation (4) can be implemented using FFTs. The adaptive filter \(\mathbf{w}(n)\) is segmented into \(P_{\mathrm{w}}\) partitions as \(\mathbf{w}(n)=[\mathbf{w}_{0}^{T}(n),...,\mathbf{w}_{P_{\mathrm{w}}-1}^{T}(n) ]^{T}\), where \(\mathbf{w}_{p}(n)=[w_{pL}(n),...,w_{(p+1)L-1}(n)]^{T}\) is the \(p\)-th subfilter with \(L=N_{\mathrm{w}}/P_{\mathrm{w}}\) taps. The frequency-domain weight vector of the \(p\)-th partition is  
\[\mathbf{W}_{p}(k)=\mathbf{F}[\mathbf{w}_{p}^{T}(k),\mathbf{0}_{1\times L}]^{T} \tag{6}\]  
where \(k\) denotes the frame index, \(\mathbf{0}_{1\times L}\) is a \(1\times L\) all-zero vector, and \(\mathbf{F}\) is the Fourier transform matrix whose \((p,q)\)-th element is \(\exp(-\mathrm{j}\frac{2\pi pq}{2L})\) with \(0\leq p\leq 2L-1,0\leq q\leq 2L-1\) and \(\mathrm{j}=\sqrt{-1}\). The output of the control filter at the \(k\)-th frame is  
\[ \begin{split}\mathbf{y}(k)&=[y(kL-L+1),...,y(kL)]^{T }\\ &=\mathbf{Q}^{01}\mathbf{F}^{-1}\sum_{p=0}^{P_{\mathrm{w}}-1} \mathbf{X}_{p}(k)\mathbf{W}_{p}(k),\end{split}  \tag{7}\]  
where \(\mathbf{Q}^{01}=[\mathbf{0}_{L}\quad\mathbf{I}_{L}]\) is the projection matrix (the notations \(\mathbf{0}_{L}\) and \(\mathbf{I}_{L}\) being the \(L\times L\) zeros and identity matrices, respectively), and  
\[\mathbf{X}_{p}(k)=diag\{\mathbf{F}\mathbf{x}_{p}(k)\} \tag{8}\]  
is the frequency-domain reference matrix with \(\mathbf{x}_{p}(k)=\{x[(k-p-2)L+1],...,x[(k-p)L]\}^{T}\) (\(diag\{\cdot\}\) denoting the diagonal matrix). For the FxLMS algorithm, the output of the control filter is calculated on a sample-by-sample basis and hence there is only one-sample delay for the generation of the cancelling signal. For the frequency-domain implementation in (7), however, a block of the reference signals should be collected before the calculation of \(\mathbf{y}(k)\). There is at least one-block delay even if (7) is completed in one sample period. Thus, the cancelling signal driven by the loudspeaker is a delayed version of \(y(n)\):  
\[u(n)=y(n-D) \tag{9}\]  
where \(D\) denotes the delay, which includes both the buffering time and the processing time. In [28; 37], the calculation of (7) is completed in one-sample period and hence the total delay \(D=L\). In [39], the  
Figure 2: FPBFxLMS algorithm. calculation of (7) is distributed in one block \(KL\leq n\leq KL+L\), and thus the delay is \(D=2L\). The advantages and limitations of each implementation method are discussed later. The impulse response of the secondary path is segmented into \(P_{\text{s}}\) partitions as \(\mathbf{\hat{s}}=[\mathbf{s}_{0}^{T},\mathbf{\hat{s}}_{1}^{T},...,\mathbf{\hat{ s}}_{P_{\text{s}}-1}^{T}]^{T}\), where \(\mathbf{\hat{s}}_{p}=[\hat{s}_{pL},...,\hat{s}_{(p+1)L-1}]^{T}\) is the \(p\)-th subfilter with \(L=N_{\text{s}}/P_{\text{s}}\) taps. The Fourier transform of \(\mathbf{\hat{s}}_{p}\) is  
\[\mathbf{\hat{S}}_{p}=\mathbf{F}[\mathbf{s}_{p}^{T},\mathbf{0}_{1\times L}]^{T}. \tag{10}\]  
The linear convolution in (5) can also be implemented using FFT  
\[ \begin{split}\mathbf{v}(k)&=[v(kL-L+1),...,v(kL)]^ {T}\\ &=\mathbf{Q}^{01}\mathbf{F}^{-1}\sum_{p=0}^{P_{\text{s}}-1} \mathbf{X}_{p}(k)\mathbf{\hat{S}}_{p}.\end{split}  \tag{11}\]  
The update equation of the FPBFxLMS algorithm is [10; 16; 37; 39]  
\[\mathbf{W}_{p}(k+1)=\mathbf{W}_{p}(k)-\mu\mathbf{G}^{10}\boldsymbol{\Lambda}^ {-1}(k)\mathbf{V}_{p}^{H}(k-m)\mathbf{E}(k), \tag{12}\]  
where \((\cdot)^{H}\) denotes the Hermitian operation,  
\[\mathbf{G}^{10}=\mathbf{F}\left[ \begin{array}{cc}\mathbf{I}_{L}&\mathbf{0} _{L}\\ \mathbf{0}_{L}&\mathbf{0}_{L}\end{array}