summaryrefslogtreecommitdiff
path: root/gr-vocoder/lib/codec2/fdmdv_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'gr-vocoder/lib/codec2/fdmdv_internal.h')
-rw-r--r--gr-vocoder/lib/codec2/fdmdv_internal.h176
1 files changed, 0 insertions, 176 deletions
diff --git a/gr-vocoder/lib/codec2/fdmdv_internal.h b/gr-vocoder/lib/codec2/fdmdv_internal.h
deleted file mode 100644
index 24080e63c8..0000000000
--- a/gr-vocoder/lib/codec2/fdmdv_internal.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/*---------------------------------------------------------------------------*\
-
- FILE........: fdmdv_internal.h
- AUTHOR......: David Rowe
- DATE CREATED: April 16 2012
-
- Header file for FDMDV internal functions, exposed via this header
- file for testing.
-
-\*---------------------------------------------------------------------------*/
-
-/*
- Copyright (C) 2012 David Rowe
-
- All rights reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 2.1, as
- published by the Free Software Foundation. This program is
- distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef __FDMDV_INTERNAL__
-#define __FDMDV_INTERNAL__
-
-#include "comp.h"
-#include "codec2_fdmdv.h"
-#include "kiss_fft.h"
-
-/*---------------------------------------------------------------------------*\
-
- DEFINES
-
-\*---------------------------------------------------------------------------*/
-
-#define PI 3.141592654
-#define FS 8000 /* sample rate in Hz */
-#define T (1.0/FS) /* sample period in seconds */
-#define RS 50 /* symbol rate in Hz */
-#define NC 20 /* max number of data carriers (plus one pilot in the centre) */
-#define NB 2 /* Bits/symbol for QPSK modulation */
-#define RB (NC*RS*NB) /* bit rate */
-#define M (FS/RS) /* oversampling factor */
-#define NSYM 6 /* number of symbols to filter over */
-#define NFILTER (NSYM*M) /* size of tx/rx filters at sample rate M */
-
-#define FSEP 75 /* Default separation between carriers (Hz) */
-
-#define NT 5 /* number of symbols we estimate timing over */
-#define P 4 /* oversample factor used for initial rx symbol filtering */
-#define NFILTERTIMING (M+NFILTER+M) /* filter memory used for resampling after timing estimation */
-
-#define NPILOT_LUT (4*M) /* number of pilot look up table samples */
-#define NPILOTCOEFF 30 /* number of FIR filter coeffs in LP filter */
-#define NPILOTBASEBAND (NPILOTCOEFF+M+M/P) /* number of pilot baseband samples reqd for pilot LPF */
-#define NPILOTLPF (4*M) /* number of samples we DFT pilot over, pilot est window */
-#define MPILOTFFT 256
-
-#define NSYNC_MEM 6
-
-/* averaging filter coeffs */
-
-#define TRACK_COEFF 0.5
-#define SNR_COEFF 0.9 /* SNR est averaging filter coeff */
-
-/*---------------------------------------------------------------------------*\
-
- STRUCT for States
-
-\*---------------------------------------------------------------------------*/
-
-struct FDMDV {
-
- int Nc;
- float fsep;
-
- /* test data (test frame) states */
-
- int ntest_bits;
- int current_test_bit;
- int *rx_test_bits_mem;
-
- /* Modulator */
-
- int old_qpsk_mapping;
- int tx_pilot_bit;
- COMP prev_tx_symbols[NC+1];
- COMP tx_filter_memory[NC+1][NSYM];
- COMP phase_tx[NC+1];
- COMP freq[NC+1];
-
- /* Pilot generation at demodulator */
-
- COMP pilot_lut[NPILOT_LUT];
- int pilot_lut_index;
- int prev_pilot_lut_index;
-
- /* freq offset estimation states */
-
- kiss_fft_cfg fft_pilot_cfg;
- COMP pilot_baseband1[NPILOTBASEBAND];
- COMP pilot_baseband2[NPILOTBASEBAND];
- COMP pilot_lpf1[NPILOTLPF];
- COMP pilot_lpf2[NPILOTLPF];
- COMP S1[MPILOTFFT];
- COMP S2[MPILOTFFT];
-
- /* freq offset correction states */
-
- float foff;
- COMP foff_rect;
- COMP foff_phase_rect;
-
- /* Demodulator */
-
- COMP phase_rx[NC+1];
- COMP rx_filter_memory[NC+1][NFILTER];
- COMP rx_filter_mem_timing[NC+1][NT*P];
- COMP rx_baseband_mem_timing[NC+1][NFILTERTIMING];
- float rx_timing;
- COMP phase_difference[NC+1];
- COMP prev_rx_symbols[NC+1];
-
- /* sync state machine */
-
- int sync_mem[NSYNC_MEM];
- int fest_state;
- int sync;
- int timer;
-
- /* SNR estimation states */
-
- float sig_est[NC+1];
- float noise_est[NC+1];
-
- /* Buf for FFT/waterfall */
-
- float fft_buf[2*FDMDV_NSPEC];
- kiss_fft_cfg fft_cfg;
- };
-
-/*---------------------------------------------------------------------------*\
-
- FUNCTION PROTOTYPES
-
-\*---------------------------------------------------------------------------*/
-
-void bits_to_dqpsk_symbols(COMP tx_symbols[], int Nc, COMP prev_tx_symbols[], int tx_bits[], int *pilot_bit, int old_qpsk_mapping);
-void tx_filter(COMP tx_baseband[NC+1][M], int Nc, COMP tx_symbols[], COMP tx_filter_memory[NC+1][NSYM]);
-void fdm_upconvert(COMP tx_fdm[], int Nc, COMP tx_baseband[NC+1][M], COMP phase_tx[], COMP freq_tx[]);
-void generate_pilot_fdm(COMP *pilot_fdm, int *bit, float *symbol, float *filter_mem, COMP *phase, COMP *freq);
-void generate_pilot_lut(COMP pilot_lut[], COMP *pilot_freq);
-float rx_est_freq_offset(struct FDMDV *f, COMP rx_fdm[], int nin);
-void lpf_peak_pick(float *foff, float *max, COMP pilot_baseband[], COMP pilot_lpf[], kiss_fft_cfg fft_pilot_cfg, COMP S[], int nin);
-void freq_shift(COMP rx_fdm_fcorr[], COMP rx_fdm[], float foff, COMP *foff_rect, COMP *foff_phase_rect, int nin);
-void fdm_downconvert(COMP rx_baseband[NC+1][M+M/P], int Nc, COMP rx_fdm[], COMP phase_rx[], COMP freq[], int nin);
-void rx_filter(COMP rx_filt[NC+1][P+1], int Nc, COMP rx_baseband[NC+1][M+M/P], COMP rx_filter_memory[NC+1][NFILTER], int nin);
-float rx_est_timing(COMP rx_symbols[], int Nc,
- COMP rx_filt[NC+1][P+1],
- COMP rx_baseband[NC+1][M+M/P],
- COMP rx_filter_mem_timing[NC+1][NT*P],
- float env[],
- COMP rx_baseband_mem_timing[NC+1][NFILTERTIMING],
- int nin);
-float qpsk_to_bits(int rx_bits[], int *sync_bit, int Nc, COMP phase_difference[], COMP prev_rx_symbols[], COMP rx_symbols[], int old_qpsk_mapping);
-void snr_update(float sig_est[], float noise_est[], int Nc, COMP phase_difference[]);
-int freq_state(int *reliable_sync_bit, int sync_bit, int *state, int *timer, int *sync_mem);
-float calc_snr(int Nc, float sig_est[], float noise_est[]);
-
-#endif