# A Variable Step Size Normalized Least-Mean-Square Algorithm Based on Data Reuse
## 2 Data Reuse NLMS Algorithm  
The conventional NLMS algorithm [1; 3] is defined by two main equations, which provide the error signal and the filter update, respectively, as follows:  
\[e(n) =d(n)-\mathbf{x}^{T}(n)\widehat{\mathbf{h}}(n-1), \tag{1}\] \[\widehat{\mathbf{h}}(n) =\widehat{\mathbf{h}}(n-1)+\frac{a\mathbf{x}(n)e(n)}{\mathbf{x}^ {T}(n)\mathbf{x}(n)}, \tag{2}\]  
where \(e(n)\) is the a priori error signal at the discrete-time index \(n\), \(d(n)\) is the desired (or reference) signal, \(\mathbf{x}(n)=\left[ \begin{array}{cccc}x(n)&x(n-1)&\cdots&x(n-L+1)\end{array}  \right]^{T}\) is a vector containing the most recent \(L\) time samples of the zero-mean input signal \(x(n)\), the superscript \({}^{T}\) denotes the transpose operator, \(\widehat{\mathbf{h}}(n)=\left[ \begin{array}{cccc}\widehat{h}_{0}(n)& \widehat{h}_{1}(n)&\cdots&\widehat{h}_{L-1}(n)\end{array} \right]^{T}\) is the adaptive filter (of length \(L\)) at the discrete-time index \(n\), which is an estimate of the unknown impulse response, and \(\alpha\) is the normalized step size parameter of the NLMS algorithm. Theoretically, the range for this parameter is \(0<\alpha<2\), but practically, the recommended choice is \(0<\alpha\leq 1\)[2]. For the sake of simplicity, we omitted in the developments the regularization parameter \(\delta>0\)[28], which is usually added to the denominator in (2). Based on the adaptive filter coefficients at the discrete-time index \(n\), we may also define the a posteriori error signal as:  
\[e_{1}(n)=d(n)-\mathbf{x}^{T}(n)\widehat{\mathbf{h}}(n). \tag{3}\]  
Using (1) and (2) in (3), we can further develop the previous expression of the a posteriori error, which results in:  
\[e_{1}(n)=(1-\alpha)e(n). \tag{4}\]  
It can be noticed that the a posteriori error is canceled for \(\alpha=1\) (assuming that \(e(n)\
eq 0\)). Now, let us consider that we perform multiple iterations for the NLMS algorithm using the same input data \(\mathbf{x}(n)\) and reference signal \(d(n)\), i.e., performing the data reuse process [19; 20; 21; 22; 23; 24; 25]. Hence, in the first step (using (1), (2), and (4)), we have:  
\[\widehat{\mathbf{h}}_{1}(n) =\widehat{\mathbf{h}}(n)+\frac{\alpha\mathbf{x}(n)e_{1}(n)}{ \mathbf{x}^{T}(n)\mathbf{x}(n)}\] \[=\widehat{\mathbf{h}}(n-1)+\frac{[1-(1-\alpha)^{2}]\mathbf{x}(n) e(n)}{\mathbf{x}^{T}(n)\mathbf{x}(n)}. \tag{5}\]Then, by repeating the process, we obtain:  
\[e_{2}(n) =d(n)-\mathbf{x}^{T}(n)\widehat{\mathbf{h}}_{1}(n)\] \[=(1-\alpha)^{2}e(n), \tag{6}\] \[\widehat{\mathbf{h}}_{2}(n) =\widehat{\mathbf{h}}_{1}(n)+\frac{\alpha\mathbf{x}(n)e_{2}(n)}{ \mathbf{x}^{T}(n)\mathbf{x}(n)}\] \[=\widehat{\mathbf{h}}(n-1)+\frac{[1-(1-\alpha)^{3}]\mathbf{x}(n) e(n)}{\mathbf{x}^{T}(n)\mathbf{x}(n)}, \tag{7}\]  
and so on. Using mathematical induction, it results that the \(k\)th-order a posteriori error is:  
\[e_{k}(n)=(1-\alpha)^{k}e(n) \tag{8}\]  
and the \(k\)th-order update is given by:  
\[\widehat{\mathbf{h}}_{k}(n)=\widehat{\mathbf{h}}(n-1)+\frac{[1-(1-\alpha)^{k+ 1}]\mathbf{x}(n)e(n)}{\mathbf{x}^{T}(n)\mathbf{x}(n)}, \tag{9}\]  
which is similar to the original update (2), but using the normalized step size:  
\[e_{1}(n)=(1-\alpha)e(n). \tag{4}\]0  
In other words, performing multiple iterations for the same set of data is equivalent to increasing the value of the normalized step size, thus leading to a faster convergence mode [1; 2; 3]. A few remarks can be outlined based on the previous results, as follows:  
(1) If \(\alpha=1\), then \(e_{k}(n)=0\) and \(\alpha_{k}=1\) for any value of \(k\). This supports the well-known fact that the value of the normalized step size \(\alpha=1\) provides the fastest convergence mode;  
(2) For any \(0<\alpha<1\), \(e_{k}(n)|_{k\to\infty}=0\);  
(3) For any \(0<\alpha<1\), \(\alpha_{k}|_{k\to\infty}=1\). This is shown in Figure 1, where the parameter \(\alpha_{k}\) is plotted for different values of \(\alpha\). These curves can be interpreted as the data reuse convergence modes of the NLMS algorithm, for a certain value of \(\alpha\).