# Interference Mitigation for GNSS Receivers Using FFT Excision Filtering Implemented on an FPGA
## 5 Results
### Hardware Implementation Challenges and Comparison with Related Work  
One of the main challenges of the VHDL implementation is the magnitude calculation in the proposed algorithm. It is easy to perform DSP calculations in MATLAB. However, performing magnitude calculations in the hardware implementation is challenging. Efficient calculation of the square root operation was accomplished in the VHDL implementation using an optimization technique to accomplish high-speed magnitude approximation. The algorithm that is used to compute the magnitude of a complex vector of the FFT results (real and imaginary parts) is improved as \"alpha max plus beta min\". In addition, the median calculation is another challenge in the VHDL implementation. The median calculation is required for the threshold of the FFT excision filter algorithms. The \begin{table}
\begin{tabular}{c c c} \hline \hline
**Hardware** & **Fixed-Point** & **Float-Point** \\
**Design** & **(22-bit)** & **(32-bit)** \\
**Resources** & **Utilization** & **Utilization** \\ \hline \hline CLB LUTs & 1599 & 2871 \\ \hline LUT as logic & 1343 & 2015 \\ \hline LUT as memory & 256 & 977 \\ \hline CLB Registers & 1046 & 6821 \\ \hline Registers as Flip flop & 1045 & 6820 \\ \hline Registers as Latch & 1 & 1 \\ \hline Block RAM & 2.5 & 19 \\ \hline
36 Kbits RAM block & 0 & 0 \\ \hline
18 Kbits RAM block & 5 & 38 \\ \hline URAM & 0 & 0 \\ \hline DSPs & 40 & 66 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Hardware design resources of the fixed-point (22-bit) and float-point (32-bit) design. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Jamming Power** & \multicolumn{4}{c}{_C/No_ **Values (dB/Hz)**} \\ \cline{2-5}
**(dB)** & **Fixed-Point (16-bit)** & **Fixed-Point (22-bit)** & **Float-Point (32-bit)** & **MATLAB Software** \\ \hline
70 & 39.5972 & 39.6920 & 39.7801 & 39.7800 \\ \hline
75 & 39.6817 & 39.6863 & 39.7672 & 39.7672 \\ \hline
80 & 39.6437 & 39.6462 & 39.7286 & 39.7285 \\ \hline
85 & 39.4238 & 39.5411 & 39.5991 & 39.5291 \\ \hline
90 & 39.2320 & 39.3361 & 39.2081 & 39.2081 \\ \hline
95 & 38.7204 & 39.2509 & 39.1114 & 39.1003 \\ \hline
100 & 37.9354 & 38.6885 & 39.0239 & 38.9853 \\ \hline
105 & 37.3484 & 37.4288 & 38.3245 & 38.2986 \\ \hline
110 & 34.7053 & 36.4707 & 36.8067 & 36.7809 \\ \hline
115 & 30.2256 & 33.3656 & 33.9007 & 33.8564 \\ \hline
120 & 25.5357 & 28.6583 & 29.3876 & 29.3586 \\ \hline
125 & 21.0347 & 23.0821 & 23.8284 & 23.8035 \\ \hline
130 & 13.3749 & 16.6888 & 16.8952 & 16.8751 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Comparison of the \((C/No)\) values of the 16, 22-bit (fixed-point), 23-bit (float-point), and MATLAB software simulation performances. calculation of the median is optimized using a histogram visualization technique. The histogram represents the number of FFT bins, and each bin has a value. The main optimization of the hardware implementation is the analysis of the required precision for the fixed-point implementation to provide a more efficient design than the floating-point FFT. The usage of hardware resources was reduced to 44.3% using the fixed-point design. This is a very time-consuming analysis as it requires the GNSS software receiver to be run multiple times on the output of the FFT simulation for each bit depth. Another FPGA-specific issue is how data is passed through when no interference is present, so the output is continuous regardless of whether the removal is performed as explained in Section 4.1. The algorithm in [44] works well against pulsed noise interference but not with CW or narrowband interference such as our proposed technique. Their findings demonstrated that the HDDM methods cannot successfully mitigate the CW interference since the minimal frequency resolution corresponds to one FFT bin and is in the range of 2-3 MHz. Their results showed a small improvement over the mass market receiver toward the CW and narrow sweeping jammers, as with the high power of interference, there is high degradation of \((C/No)\), which can reach <20 dBHz.