diff --git a/src/shared/algorithms/FFT.h b/src/shared/algorithms/FFT.h
index 6b62289181302baa42ad77a5fff628f2ebace82d..73fada1d85307eee83e8e5b61e738dcb84b780cc 100644
--- a/src/shared/algorithms/FFT.h
+++ b/src/shared/algorithms/FFT.h
@@ -40,7 +40,6 @@ template <int N_size>
 class FFT
 {
 public:
-    using VectorHF = Eigen::Vector<float, N_size / 2>;
     using VectorF  = Eigen::Vector<float, N_size>;
     using VectorCF = Eigen::Vector<std::complex<float>, N_size>;
 
@@ -90,18 +89,21 @@ public:
 
     /**
      * @brief Get the frequency used in the FFT
-     * (only the first half, useful for real input functions)
      *
      * @param sample_rate in Hertz
      * @return Eigen::Vector<std::complex<float>, N_size>
      */
-    static const VectorHF fftfreq(float sample_rate)
+    static const VectorF fftfreq(float sample_rate)
     {
-        VectorHF bins = VectorHF::Zero();
+        VectorF bins = VectorF::Zero();
         for (int i = 0; i < N_size / 2; i++)
         {
             bins(i) = (float)i * sample_rate / (float)N_size;
         }
+        for (int i = N_size / 2; i < N_size; i++)
+        {
+            bins(i) = (float)(i - N_size) * sample_rate / (float)N_size;
+        }
         return bins;
     }
 
diff --git a/src/tests/algorithms/FFT/test-fft-data.h b/src/tests/algorithms/FFT/test-fft-data.h
index 3da338d51b20bef6738186272c69d0dbae52918e..b94fe266c6f87b117f84dce294afe1b826a4d8c9 100644
--- a/src/tests/algorithms/FFT/test-fft-data.h
+++ b/src/tests/algorithms/FFT/test-fft-data.h
@@ -55,11 +55,11 @@ static const std::vector<float> INTENSITY{
     0.000000, 0.000000, 0.000000, 0.000000};
 
 static const std::vector<float> FREQUENCY{
-    0.0,  1.0,  2.0,  3.0,  4.0,  5.0,  6.0,  7.0,  8.0,  9.0,  10.0, 11.0,
-    12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0,
-    24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 31.0, 32.0, 33.0,
-    34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0,
-    46.0, 47.0, 48.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0,
-    56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0};
+    0.0,  1.0,  2.0,  3.0,  4.0,  5.0,  6.0,  7.0,  8.0,   9.0,   10.0,  11.0,
+    12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0,  21.0,  22.0,  23.0,
+    24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, -32.0, -31.0, -30.0, -29.0,
+    -28.0, -27.0, -26.0, -25.0, -24.0, -23.0, -22.0, -21.0, -20.0, -19.0, -18.0,
+    -17.0, -16.0, -15.0, -14.0, -13.0, -12.0, -11.0, -10.0, -9.0,  -8.0,  -7.0,
+    -6.0, -5.0, -4.0, -3.0, -2.0, -1.0};
 
 }  // namespace Boardcore
diff --git a/src/tests/algorithms/FFT/test-fft.cpp b/src/tests/algorithms/FFT/test-fft.cpp
index 1e4768573970a4261615a005f0836b6df8f36177..3695878608c2245a373af619a8502acff8548189 100644
--- a/src/tests/algorithms/FFT/test-fft.cpp
+++ b/src/tests/algorithms/FFT/test-fft.cpp
@@ -44,7 +44,7 @@ int main()
 
     Vector<std::complex<float>, SAMPLES> fft_result =
         FFT<SAMPLES>::fft(signal_vector);
-    Vector<float, SAMPLES / 2> fft_freq = FFT<SAMPLES>::fftfreq(SAMPLE_RATE);
+    Vector<float, SAMPLES> fft_freq = FFT<SAMPLES>::fftfreq(SAMPLE_RATE);
 
     for (int i = 0; i < fft_result.size() / 2; i++)
     {