C and Octave both getting BER=0.16 @ Eb/No=4dB
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Sun, 25 Mar 2018 20:10:11 +0000 (20:10 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Sun, 25 Mar 2018 20:10:11 +0000 (20:10 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@3436 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/octave/ofdm_rx.m
codec2-dev/src/ofdm_demod.c

index e8785598ef8114a1bb63f3fd28b361e7ebf282b1..3bd115e5de93a2ecf88025961d3028ee49e99638 100644 (file)
@@ -32,7 +32,6 @@ function ofdm_rx(filename, error_pattern_filename)
   Ascale= 2E5*1.1491/2;
   frx=fopen(filename,"rb"); rx = fread(frx, Inf, "short")/Ascale; fclose(frx);
   Nsam = length(rx); Nframes = floor(Nsam/Nsamperframe);
-  Nframes = 5;
   prx = 1;
 
   % OK re-generate tx frame for BER calcs
@@ -117,6 +116,8 @@ function ofdm_rx(filename, error_pattern_filename)
         Nerrs_log = [Nerrs_log Nerrs];
         Tbits += Nbitsperframe;
       end
+
+      printf("  Nerrs: %d\n", Nerrs);
     end
 
     state = next_state;
index 3bb5ceebd80e77421333c3c6be511cb5fce72887..b8bd2121111bcab3f9b36d89295f1c427d50ff6f 100644 (file)
@@ -148,7 +148,7 @@ int main(int argc, char *argv[])
 
         nin_frame = ofdm_get_nin(ofdm);
 
-        if (sd == 0) {
+        if ((sd == 0) && (state == OFDM_SYNCED)) {
             /* simple hard decision output for uncoded testing */
             for(i=0; i<Nbitsperframe; i++) {
                 rx_bits_char[i] = rx_bits[i];