From: drowe67 Date: Mon, 18 Feb 2013 01:33:27 +0000 (+0000) Subject: fixed QPSK mapping - thanks Bill, note this will make modem incompatable with previou... X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=b1dc2fe68b7995f38ce3f2bc23b6846881e520cf;p=freetel-svn-tracking.git fixed QPSK mapping - thanks Bill, note this will make modem incompatable with previous versions git-svn-id: https://svn.code.sf.net/p/freetel/code@1162 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/src/fdmdv.c b/codec2-dev/src/fdmdv.c index 8f065c38..d80a034e 100644 --- a/codec2-dev/src/fdmdv.c +++ b/codec2-dev/src/fdmdv.c @@ -305,9 +305,9 @@ void bits_to_dqpsk_symbols(COMP tx_symbols[], COMP prev_tx_symbols[], int tx_bit if ((msb == 0) && (lsb == 1)) tx_symbols[c] = cmult(j, prev_tx_symbols[c]); if ((msb == 1) && (lsb == 0)) - tx_symbols[c] = cneg(prev_tx_symbols[c]); - if ((msb == 1) && (lsb == 1)) tx_symbols[c] = cmult(cneg(j),prev_tx_symbols[c]); + if ((msb == 1) && (lsb == 1)) + tx_symbols[c] = cneg(prev_tx_symbols[c]); } /* +1 -1 +1 -1 BPSK sync carrier, once filtered becomes (roughly) @@ -962,7 +962,9 @@ float qpsk_to_bits(int rx_bits[], int *sync_bit, COMP phase_difference[], COMP p pi_on_4.imag = sin(PI/4.0); /* Extra 45 degree clockwise lets us use real and imag axis as - decision boundaries */ + decision boundaries. "norm" makes sure the phase subtraction + from the previous symbol doesn't affect the amplitude, which + leads to sensible scatter plots */ for(c=0; c= 0) && (d.imag < 0)) { - msb = 1; lsb = 1; + msb = 1; lsb = 0; } rx_bits[2*c] = msb; rx_bits[2*c+1] = lsb;