# Set default build type
if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "Debug")
+ set(CMAKE_BUILD_TYPE "Release")
endif()
# Set default C++ flags.
void cohpsk_destroy(struct COHPSK *coh);
void cohpsk_mod(struct COHPSK *cohpsk, COMP tx_fdm[], int tx_bits[]);
void cohpsk_clip(COMP tx_fdm[]);
-void cohpsk_demod(struct COHPSK *cohpsk, float rx_bits[], int *reliable_sync_bit, COMP rx_fdm[], int *nin_frame);
+void cohpsk_demod(struct COHPSK *cohpsk, float rx_bits[], int *sync, COMP rx_fdm[], int *nin_frame);
void cohpsk_get_demod_stats(struct COHPSK *cohpsk, struct MODEM_STATS *stats);
#endif
\*---------------------------------------------------------------------------*/
-void cohpsk_demod(struct COHPSK *coh, float rx_bits[], int *reliable_sync_bit, COMP rx_fdm[], int *nin_frame)
+void cohpsk_demod(struct COHPSK *coh, float rx_bits[], int *sync_good, COMP rx_fdm[], int *nin_frame)
{
COMP ch_symb[NSW*NSYMROWPILOT][COHPSK_NC*ND];
int i, j, sync, anext_sync, next_sync, nin, r, c;
/* if we are in sync complete demodulation with symbol rate processing */
- *reliable_sync_bit = 0;
+ *sync_good = 0;
if ((next_sync == 1) || (sync == 1)) {
qpsk_symbols_to_bits(coh, rx_bits, coh->ct_symb_ff_buf);
- *reliable_sync_bit = 1;
+ *sync_good = 1;
}
sync = sync_state_machine(coh, sync, next_sync);
float rx_bits[COHPSK_BITS_PER_FRAME];
COMP rx_fdm[COHPSK_MAX_SAMPLES_PER_FRAME];
short rx_fdm_scaled[COHPSK_MAX_SAMPLES_PER_FRAME];
- int frames, reliable_sync_bit, nin_frame;
+ int frames, sync, nin_frame;
float *rx_amp_log;
float *rx_phi_log;
COMP *rx_symb_log;
rx_fdm[i].imag = 0.0;
}
- cohpsk_demod(cohpsk, rx_bits, &reliable_sync_bit, rx_fdm, &nin_frame);
+ cohpsk_demod(cohpsk, rx_bits, &sync, rx_fdm, &nin_frame);
- if (reliable_sync_bit) {
+ if (sync) {
fwrite(rx_bits, sizeof(float), COHPSK_BITS_PER_FRAME, fout);
if (oct) {
int freedv_comprx(struct freedv *f, short speech_out[], COMP demod_in[]) {
assert(f != NULL);
int bits_per_codec_frame, bytes_per_codec_frame, bits_per_fdmdv_frame;
- int reliable_sync_bit, i, j, bit, byte, nin_prev, nout, k;
+ int sync, i, j, bit, byte, nin_prev, nout, k;
int recd_codeword, codeword1, data_flag_index, n_ascii;
short abit[1];
char ascii_out;
bytes_per_codec_frame = (bits_per_codec_frame + 7) / 8;
if (f->mode == FREEDV_MODE_1600) {
+ int reliable_sync_bit;
+
bits_per_fdmdv_frame = fdmdv_bits_per_frame(f->fdmdv);
nin_prev = f->nin;
fdmdv_demod(f->fdmdv, f->fdmdv_bits, &reliable_sync_bit, demod_in, &f->nin);
fdmdv_get_demod_stats(f->fdmdv, &f->stats);
- f->reliable_sync_bit = reliable_sync_bit;
+ f->sync = f->fdmdv->sync;
f->snr_est = f->stats.snr_est;
if (f->stats.sync) {
if (f->mode == FREEDV_MODE_700) {
float rx_bits[COHPSK_BITS_PER_FRAME];
- int reliable_sync_bit;
+ int sync;
nin_prev = f->nin;
- cohpsk_demod(f->cohpsk, rx_bits, &reliable_sync_bit, demod_in, &f->nin);
- f->reliable_sync_bit = reliable_sync_bit;
+ cohpsk_demod(f->cohpsk, rx_bits, &sync, demod_in, &f->nin);
+ f->sync = sync;
f->snr_est = 2.0;
- fprintf(stderr, "%d\n", reliable_sync_bit);
- if (reliable_sync_bit) {
+ if (sync) {
data_flag_index = codec2_get_spare_bit_index(f->codec2);
int tx_sync_bit;
int total_bit_errors;
- int reliable_sync_bit;
+ int sync;
float snr_est;
float snr_thresh;
int nin;