From: okcsampson Date: Tue, 20 Jun 2017 07:47:31 +0000 (+0000) Subject: Update ofdm.c all tests passing X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=8a17bfa1e4f048de6a8b81e850914d9df024efc7;p=freetel-svn-tracking.git Update ofdm.c all tests passing git-svn-id: https://svn.code.sf.net/p/freetel/code@3227 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/src/ofdm.c b/codec2-dev/src/ofdm.c index 04c40c00..7628efb5 100644 --- a/codec2-dev/src/ofdm.c +++ b/codec2-dev/src/ofdm.c @@ -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);