# Frequency-Domain Filtered-x LMS Algorithms for Active Noise Control: A Review and New Insights
## 3 Conventional Frequency-Domain ANC Algorithms
### FPBMFxLMS Algorithm  
The aforementioned frequency-domain algorithms directly employ the residual error signal \(e(n)\) to update the weight vector, resulting in a delay between the weight adaptation and the observation of the error signal. To reduce this type of delay, the modified filtered-x structure was adopted to update the weight vector in [35], as shown in Figure 3. The basic idea is summarized as follows. The disturbance signal \(\hat{d}(n)\) at the error microphone is estimated as  
\[\hat{d}(n)=e(n)-\hat{z}(n) \tag{26}\]  
where  
\[\hat{z}(n)=u(n)*\hat{s} \tag{27}\]  
is the estimate of the control signal at the location of the error microphone. To reduce the complexity, the linear convolution in (27) is implemented using FFT. Then, \(\hat{z}(n),kL-L+1\leq n\leq kL\) can be computed as  
\[ \begin{split}\hat{\mathbf{z}}(k)&=\left[\hat{z}(kL- L+1),...,\hat{z}(kL)\right]^{T}\\ &=\left[u(kL-L+1)*\hat{s},...,u(kL)*\hat{s}\right]^{T}\\ &=\mathbf{Q}^{01}\mathbf{F}^{-1}\sum_{p=0}^{P_{\mathrm{w}}-1} \mathbf{U}_{p}(k)\hat{\mathbf{S}}_{p},\end{split}  \tag{28}\] \begin{table}
\begin{tabular}{l l} \hline
**Operation** & **Complexity** \\ \hline (1) Compute the frequency-domain reference matrix \(\mathbf{X}_{0}(k)\) using (8) & One FFT \\ (2) Compute the filtered reference signal vector \(\mathbf{v}(k)\) using (11) & One FFT and \(4 LP_{\mathrm{s}}\) multiplications \\ (3) Compute the FFT of \(\mathbf{v}_{0}(k)\) using (15) & One FFT \\ (4) Update \(\mathbf{\Lambda}(k)\) using (17) & 4\(L\) multiplications \\ (5) Compute the FFT of the error signal using (14) & One FFT \\ (6) Update the weight vector using (12) & 2P\({}_{\mathrm{w}}\) FFTs and \(6 LP_{\mathrm{w}}\) multiplications \\ (7) Compute the output of the control filter using (25) & One FFT and \(4 LP_{\mathrm{w}}\) multiplications \\ (8) Compute the cancelling signal using (9): \(u(n)=y(n-2L)\) & 0 \\ \hline \end{tabular} Note: Steps (1)-(7) should be completed between \(kL\) and \(kL+1\); Average multiplications: \((5+2P_{\mathrm{w}})A/L+10P_{\mathrm{w}}+4P_{\mathrm{s}}\); Peak multiplications: \((5+2P_{\mathrm{w}})A+10 LP_{\mathrm{w}}+4 LP_{\mathrm{s}}+4L\).  
\end{table} 
Table 4: FPBFxLMS IV. \begin{table}
\begin{tabular}{l l} \hline
**Operation** & **Complexity** \\ \hline (1) Compute the frequency-domain reference matrix \(\mathbf{X}_{0}(k)\) using (8) & One FFT \\ (2) Compute the filtered reference signal vector \(\mathbf{v}(k)\) using (11) & One FFT and \(4 LP_{\mathrm{s}}\) multiplications \\ (3) Compute the FFT of \(\mathbf{v}_{0}(k)\) using (15) & One FFT \\ (4) Update \(\mathbf{\Lambda}(k)\) using (17) & 4\(L\) multiplications \\ (5) Compute the FFT of the error signal using (14) & One FFT \\ (6) Update the weight vector using (12) & 2P\({}_{\mathrm{w}}\) FFTs and \(6 LP_{\mathrm{w}}\) multiplications \\ (7) Compute the output of the control filter using (25) & One FFT and \(4 LP_{\mathrm{w}}\) multiplications \\ (8) Compute the cancelling signal using (9): \(u(n)=y(n-L)\) & 0 \\ \hline \end{tabular} Note: Steps (1)-(7) should be completed between \(kL\) and \(kL+1\); Average multiplications: \((5+2P_{\mathrm{w}})A/L+10P_{\mathrm{w}}+4P_{\mathrm{s}}\); Peak multiplications: \((5+2P_{\mathrm{w}})A/L+10 LP_{\mathrm{w}}+4 LP_{\mathrm{s}}+4L\).  
\end{table} 
Table 3: FPBFxLMS III. where  
\[\mathbf{U}_{p}(k)=diag\{\mathbf{Fu}_{p}(k)\} \tag{29}\]  
is the frequency-domain cancelling signal matrix with \(\mathbf{u}_{p}(k)=\{u[(k-p-2)L+1],...,u[(k-p)L]\}^{T}\). The estimated disturbance signal vector is  
\[\mathbf{\hat{d}}(k) =[\hat{d}(kL-L+1),...,\hat{d}(kL)]^{T} \tag{30}\] \[=\mathbf{e}(k)-\mathbf{\hat{z}}(k).\]  
Recall that \(\mathbf{\hat{d}}(k)\) is generated by \(\mathbf{V}_{p}(k-2)\), and the pseudo frequency-domain error vector can be calculated as  
\[\mathbf{\hat{E}}(k)=\mathbf{\hat{D}}(k)+\mathbf{G}^{01}\sum_{p=0}^{P_{w}-1} \mathbf{V}_{p}(k-2)\mathbf{W}_{p}(k), \tag{31}\]  
where  
\[\mathbf{G}^{01}=\mathbf{F}\left[ \begin{array}{cc}\mathbf{0}_{L}&\mathbf{0} _{L}\\ \mathbf{0}_{L}&\mathbf{I}_{L}\end{array}