## 3 Proposed FRESH-Filter Receivers
### Adaptive FRESH Filter  
Figure 4 presents the proposed adaptive FRESH filter with cyclic frequency offset estimation and compensation. We assumed that the input signal \(x[n]\) is a real signal, and the adaptive FRESH filter includes \(2K+1\) branches. The cyclic frequency corresponding to the \(k\)-th branch is \(\alpha_{k}+\Delta_{k}\) for \(k=\{0,\pm 1,\ldots,\pm K\}\), and \(\Delta_{k}\) denotes the deviation in the cyclic frequency offset from its typical value of \(\alpha_{k}\). Note that all of this is based on the assumption that only the FRESH filter \(\mathbf{h}_{1}[n]\) suffers from cyclic frequency offset. For the FRESH filter \(\mathbf{h}_{2}[n]\), the cyclic frequency for the \(k\)-th branch \(\beta_{k}\) is determined by the length of an OFDM symbol. In the presence of sampling frequency offset in an OFDM system, \(\beta_{k}\) may deviate from its typical value. A number of algorithms have been developed to compensate for the sampling frequency offset [36; 37]; therefore, we assumed that \(\beta_{k}\) is perfectly known by the receivers.  
The authors in [38] suggested using the RLS algorithm to adapt the tap weights of the FRESH filter. The \(i\)-th element of the frequency shifted input vector associated with the \(k\)-th branch is denoted as \(\left(\mathbf{x}_{k}[n]\right)_{i}=x[n-i]e^{i2\pi\alpha_{k}^{\prime}(n-i)}\) for \(i\in\{0,1,\ldots,L-1\}\), where \(\alpha_{k}^{\prime}=\alpha_{k}+\Delta_{k}\) is the cyclic frequency that considered possible offset at the \(k\)-th branch and \(L\) denotes the length of the vector. By stacking the input vector and weight vector of all branches into column vector forms, we can write the output of the FRESH filter \(y[n]\) as follows:  
\[y[n]=\mathbf{W}^{H}[n]\mathbf{X}[n] \tag{9}\]  
where \(\mathbf{W}[n]=\left[\mathbf{w}_{-K}^{T}[n],\mathbf{w}_{-K+1}^{T}[n],\ldots, \mathbf{w}_{K}^{T}[n]\right]^{T}\) and \(\mathbf{X}[n]=\left[\mathbf{x}_{-K}^{T}[n],\mathbf{x}_{-K+1}^{T}[n],\ldots, \mathbf{x}_{K}^{T}[n]\right]^{T}\). Note that \(\mathbf{W}[n]\) and \(\mathbf{X}[n]\) are column vectors with length \((2K+1)\cdot L\).  
Figure 3: Detailed signal processing blocks in the proposed frequency-shift (FRESH)-filter receiver.  
The RLS adaptation algorithm can be used to update the weight vector \(\mathbf{W}[n]\) as follows:  
\[\mathbf{W}[n]=\mathbf{W}[n-1]+\zeta[n]\mathbf{g}[n] \tag{10}\]  
where \(\zeta[n]=d[n]-\mathbf{W}^{H}[n-1]\mathbf{X}[n]\) is the a priori error and \(\mathbf{g}[n]\) is the gain vector, which can be expressed as  
\[\mathbf{g}[n]=\frac{\mathbf{P}[n-1]\cdot\mathbf{X}[n]}{\lambda+\mathbf{X}^{H} [n]\cdot\mathbf{P}[n-1]\cdot\mathbf{X}[n]} \tag{11}\]  
where \(\lambda\) is the forgetting factor. The matrix \(\mathbf{P}[n]\) is updated by the following recursion:  
\[\mathbf{P}[n]=\lambda^{-1}\left[\mathbf{I}_{(2K+1)\cdot L}-\mathbf{g}[n]\cdot \mathbf{X}^{H}[n]\right]\cdot\mathbf{P}[n-1] \tag{12}\]  
where \(\mathbf{I}_{(2K+1)\cdot L}\) is an identity matrix of rank \((2K+1)\cdot L\) Note that the initial value of \(\mathbf{P}[n]\) is \(\mathbf{P}[0]=\delta^{-1}\cdot\mathbf{I}_{(2K+1)\cdot L}\), which is an identity matrix normalized by a regularization parameter \(\delta\).  
For the adaptive filer with length \(L_{R}\), the computational complexity of the adaptive RLS algorithm is \(\mathcal{O}\left(L_{R}^{2}\right)\) for complex-valued data. It necessitates \((4L_{R}^{2}+16L_{R}+1)\) real multiplications, \((4L_{R}^{2}+12L_{R}-1)\) real additions, and 1 real division [39]. For the adaptive FRESH filter, the length \(L_{R}\) is \((2K+1)\cdot L\) in total. The computational cost can be further reduced using hierarchical concept [40] or dichotomous coordinate descent iterations [41]. The data type (floating-point or fixed-point) could influence the performance on the adaptive RLS algorithm. The finite-precision error analysis related to adaptive RLS algorithm could be found in [42].