Update ofdm.c all tests passing
authorokcsampson <okcsampson@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 20 Jun 2017 07:47:31 +0000 (07:47 +0000)
committerokcsampson <okcsampson@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 20 Jun 2017 07:47:31 +0000 (07:47 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@3227 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/src/ofdm.c

index 04c40c00ecc40a60421f8eb61ec15dc54e0cdab9..7628efb58d6d3b3e17e2479b25473776b7336184 100644 (file)
@@ -43,7 +43,6 @@
 static void matrix_vector_multiply(struct OFDM *, complex float *, complex float *);
 static void matrix_vector_conjugate_multiply(struct OFDM *, complex float *, complex float *);
 static complex float vector_sum(complex float *, int);
-static complex float vector_conjugate_sum(complex float *, int);
 static complex float qpsk_mod(int *);
 static void qpsk_demod(complex float, int *);
 static void ofdm_txframe(struct OFDM *, complex float [OFDM_SAMPLESPERFRAME], complex float *);
@@ -135,18 +134,6 @@ static complex float vector_sum(complex float *a, int num_elements) {
     return sum;
 }
 
-static complex float vector_conjugate_sum(complex float *a, int num_elements) {
-    int i;
-    
-    complex float sum = 0.0f + 0.0f * I;
-
-    for (i = 0; i < num_elements; i++) {
-        sum += conjf(a[i]);
-    }
-
-    return sum;
-}
-
 /*
  * Correlates the OFDM pilot symbol samples with a window of received
  * samples to determine the most likely timing offset.  Combines two
@@ -552,7 +539,7 @@ void ofdm_demod(struct OFDM *ofdm, int *rx_bits, COMP *rxbuf_in) {
     /* est freq err based on all carriers ------------------------------------ */
 
     if (ofdm->foff_est_en == true) {
-        complex float freq_err_rect = vector_conjugate_sum(ofdm->rx_sym[0], (OFDM_NC + 2)) * vector_sum(ofdm->rx_sym[OFDM_NS + 1], (OFDM_NC + 2));
+        complex float freq_err_rect = conjf(vector_sum(ofdm->rx_sym[1], OFDM_NC)) * vector_sum(ofdm->rx_sym[OFDM_NS + 1], OFDM_NC);
         freq_err_hz = cargf(freq_err_rect) * OFDM_RS / (TAU * OFDM_NS);
 
         ofdm->foff_est_hz += (ofdm->foff_est_gain * freq_err_hz);