# Frequency-Domain Filtered-x LMS Algorithms for Active Noise Control: A Review and New Insights
## 3 Conventional Frequency-Domain ANC Algorithms
### Analysis  
In this section, we carry out theoretical analysis on the effects of the two kinds of delays on the adaptive algorithm convergence behaviors. When the FxLMS converges, the optimal solution (which may not be realizable) in the \(z\)-domain is [4]  
\[W_{\text{opt}}(z)=\frac{P(z)}{S(z)}. \tag{19}\]  
For the FPBFxLMS algorithms, a \(D\)-sample delay is introduced to the signal path, and hence the optimal solution becomes  
\[W_{\text{opt}}(z)=\frac{P(z)}{z^{-D}S(z)}. \tag{20}\]  
When the FDAF algorithm is applied for echo cancellation, the algorithm delay has no effect on the algorithm convergence. However, this is not the case for broadband ANC because the causality solution of (20) may not exist and the extra delay in the signal path deteriorates the noise reduction performance [30; 31]. For the broadband ANC system to work properly, the casualty condition should be satisfied [3]  
\[\tau_{\text{buff}}+\tau_{\text{proc}}+\tau_{\text{sec}}\leq\tau_{\text{AD}}, \tag{21}\] \begin{table}
\begin{tabular}{l l} \hline \hline
**Operation** & **Complexity** \\ \hline (1) Compute the frequency-domain reference matrix \(\mathbf{X}_{0}(k)\) using (8) & One FFT \\ (2) Compute the output of the control filter using (7) & One FFT and \(4 LP_{\text{w}}\) multiplications \\ (3) Compute the filtered reference signal vector \(\mathbf{v}(k)\) using (11) & One FFT and \(4 LP_{\text{s}}\) multiplications \\ (4) Compute the FFT of \(\mathbf{v}_{0}(k)\) using (15) & One FFT \\ (5) Update \(\mathbf{\Lambda}(k)\) using (17) & \(4L\) multiplications \\ (6) Compute the FFT of the error signal using (14) & One FFT \\ (7) Update the weight vector using (12) & \(2P_{\text{w}}\) FFTs and \(6 LP_{\text{w}}\) multiplications \\ (8) Compute the cancelling signal using (9): \(u(n)=y(n-L)\) & 0 \\ \hline \hline \end{tabular} Note: Steps (1)–(7) should be completed between \(kL\) and \(kL+1\); Average multiplications: \((5+2P_{\text{w}})A/L+10P_{\text{w}}+4P_{\text{s}}\); Peak multiplications: \((5+2P_{\text{w}})A+10 LP_{\text{w}}+4 LP_{\text{s}}+4L\).  
\end{table} 
Table 1: FPBFxLMS I [28; 37]. \begin{table}
\begin{tabular}{l l} \hline \hline
**Operation** & **Complexity** \\ \hline (1) Compute the frequency-domain reference matrix \(\mathbf{X}_{0}(k)\) using (8) & One FFT \\ (2) Compute the output of the control filter using (7) & One FFT and \(4 LP_{\text{w}}\) multiplications \\ (3) Compute the filtered reference signal vector \(\mathbf{v}(k)\) using (11) & One FFT and \(4 LP_{\text{s}}\) multiplications \\ (4) Compute the FFT of \(\mathbf{v}_{0}(k)\) using (15) & One FFT \\ (5) Update \(\mathbf{\Lambda}(k)\) using (17) & \(4L\) multiplications \\ (6) Compute the FFT of the error signal using (14) & One FFT \\ (7) Update the weight vector using (12) & \(2P_{\text{w}}\) FFTs and \(6 LP_{\text{w}}\) multiplications \\ (8) Compute the cancelling signal using (9): \(u(n)=y(n-L)\) & 0 \\ \hline \hline \end{tabular} Note: Steps (1)–(7) should be completed between \(kL\) and \(kL+1\); Average and peak multiplications: \((5+2P_{\text{w}})A/L+10P_{\text{w}}+4P_{\text{s}}\).  
\end{table} 
Table 2: FPBFxLMS II [39]. where \(\tau_{\text{sec}}\) includes the delay in the antialiasing filter, A/D converter, D/A converter, reconstruction filter and loudspeaker and the acoustic delay between the secondary loudspeaker and the error microphone, \(\tau_{\text{buff}}\) denotes the buffering time, \(\tau_{\text{proc}}\) is the processing time of the adaptive algorithm, \(\tau_{\text{AD}}\) is the acoustic delay between the reference sensor and the error microphone. The algorithm latency is the sum of \(\tau_{\text{buff}}\) and \(\tau_{\text{proc}}\), and we have \(\tau_{\text{buff}}+\tau_{\text{proc}}=DT_{s}\), where \(T_{s}\) is the system sampling period. For the FxLMS algorithm, only one-sample delay is introduced, i.e., \(D=1\). For the aforementioned two FPBfxLMS algorithms, however, the algorithm latency is very large, i.e., \(D=L\) or \(D=2L\).