# An Uplink Channel Estimator Using a Dedicated Instruction Set for 5G Small Cells
## 3 Algorithm and Implementation of Channel Estimation
### Interpolation Estimation between Pilots  
From Figure 2, after obtaining the channel response value at the DMRS, for each port, there are still many channel response values of the RE in time domain direction and frequency domain direction that are not known. Therefore, we need to fill the channel response value of the whole RB by interpolation. Interpolation between subcarriers is called frequency domain interpolation, and interpolation between symbols is called time domain interpolation. The common channel estimation interpolation algorithms between pilots are linear interpolation, second-order interpolation, Wiener filter interpolation, etc. The 1 st-order interpolation (linear interpolation) algorithm is a relatively simple interpolation algorithm, which uses the channel estimation values of the two adjacent pilot points to interpolate the channel response values of the data between the two pilot points. The 2 nd-order interpolation algorithm uses the channel response values of the three adjacent pilot points for interpolation. Wiener interpolation is a kind of interpolation algorithm based on the MMSE criterion, and its specific method is described in the next part of this paper. Among them, the linear interpolation algorithm is the simplest, and the performance of second-order interpolation may be better than that of linear interpolation when the channel environment changes sharply. As the noise cannot be eliminated by using LS estimation for pilots, Wiener filter interpolation is used in the channel estimation between pilots to reduce the impact of noise on the overall channel estimation performance. The Wiener filter interpolation algorithm needs to obtain prior information of the channel in advance, such as the channel delay estimation parameters, to calculate the correlation matrix. However, in actual situations, it is difficult for PUSCH to obtain this channel prior information before channel estimation. The usual approach is to pre-store the autocorrelation and cross-correlation matrix items of some commonly used statistical channel model scenarios, or even directly store some typical estimator coefficients. The device detects the actual channel scene and matches the closest LMMSE estimator coefficient for use. Taking into account the calculation efficiency and performance, linear interpolation between DMRSs is also used. One of the innovations of this paper is that linear interpolation can be made into the form of taps, and linear interpolation and Wiener filter interpolation can be integrated into one algorithm and architecture on hardware instructions. The formulas of frequency domain and time domain Wiener filtering are expressed by Equation (3) [22], where \(R_{HP}\) is the cross-correlation matrix, \(R_{PP}\) is the autocorrelation matrix, \(\beta\) is the modulation coefficient and \(I_{N}\) means identity matrix. This means that in the process of calculating the filtering coefficient \(W\), it is necessary to invert the autocorrelation matrix \(R_{PP}\) after adding noise. \[W=R_{HP}\bigg{(}R_{PP}+I_{N}*\frac{\beta}{SNR}\bigg{)}^{-1} \tag{3}\]  
In reference [23], a method for calculating the correlation coefficient of the frequency domain matrix using the prior information of the channel rather than the specific values of the transmitting and receiving antennas on each subcarrier is given, as shown in Equation (4). The complexity of this algorithm is low, and the prior information of channels in different scenarios has been measured and disclosed by various standard organizations. For example, in Section 3.4, the multipath model provided by the 3 GPP standards organization for pedestrians is shown. The channel parameters can be stored in the hardware in advance by the look-up table. \[r_{corf}(\Delta k)=\sin c(\pi\tau_{c}\max\Delta kf_{sub}) \tag{4}\]  
From the above equation, we need to know the prior information of the channel as follows: \(\tau_{c\max}\) is the maximum delay spread of the multipath channel; fsub is subcarrier frequency; \(\Delta k\) is the frequency domain subcarrier spacing.