modified cmd line programs to use one bit per char
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 11 Apr 2016 00:08:31 +0000 (00:08 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 11 Apr 2016 00:08:31 +0000 (00:08 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2781 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/src/cohpsk.c
codec2-dev/src/cohpsk_demod.c
codec2-dev/src/cohpsk_get_test_bits.c
codec2-dev/src/cohpsk_mod.c
codec2-dev/src/cohpsk_put_test_bits.c

index cb8b0cc468cdf45a653b8e56d4bc883879d2ed17..83f155c5ac2e5afcb0a1a32e5cdbd0d3fa432403 100644 (file)
@@ -1198,13 +1198,13 @@ void cohpsk_get_test_bits(struct COHPSK *coh, int rx_bits[])
 \*---------------------------------------------------------------------------*/
 
 void cohpsk_put_test_bits(struct COHPSK *coh, int *state, short error_pattern[],
-                        int *bit_errors, float rx_bits_sd[])
+                        int *bit_errors, char rx_bits_char[])
 {
     int i, next_state, anerror;
     int rx_bits[COHPSK_BITS_PER_FRAME];
 
     for(i=0; i<COHPSK_BITS_PER_FRAME; i++) {
-        rx_bits[i] = rx_bits_sd[i] < 0.0;
+        rx_bits[i] = rx_bits_char[i];
     }
 
     *bit_errors = 0;
index c453822df3afcbbf86c19e6aac4ff6e27c91f723..3a184c1cd381217ef3f1e0fa492cbad4815f9966 100644 (file)
@@ -47,6 +47,7 @@ int main(int argc, char *argv[])
     FILE          *fin, *fout, *foct;
     struct COHPSK *cohpsk;
     float         rx_bits[COHPSK_BITS_PER_FRAME];
+    char          rx_bits_char[COHPSK_BITS_PER_FRAME];
     COMP          rx_fdm[COHPSK_MAX_SAMPLES_PER_FRAME];
     short         rx_fdm_scaled[COHPSK_MAX_SAMPLES_PER_FRAME];
     int           frames, sync, nin_frame;
@@ -119,7 +120,9 @@ int main(int argc, char *argv[])
        cohpsk_demod(cohpsk, rx_bits, &sync, rx_fdm, &nin_frame);
 
        if (sync) {
-            fwrite(rx_bits, sizeof(float), COHPSK_BITS_PER_FRAME, fout);
+            for(i=0; i<COHPSK_BITS_PER_FRAME; i++)
+                rx_bits_char[i] = rx_bits[i] < 0.0;
+            fwrite(rx_bits_char, sizeof(char), COHPSK_BITS_PER_FRAME, fout);
 
             if (oct) {
                 for(r=0; r<NSYMROW; r++, log_data_r++) {
index 0ea18e351ac83bf881aaf611e0f6c58e3fa9ea20..e1a32b34a651afe1f21ead90b60476807e723695 100644 (file)
@@ -40,12 +40,12 @@ int main(int argc, char *argv[])
 {
     FILE         *fout;
     int           tx_bits[COHPSK_BITS_PER_FRAME];
-    float         sd_tx_bits[COHPSK_BITS_PER_FRAME];
+    char          tx_bits_char[COHPSK_BITS_PER_FRAME];
     int           numBits, nFrames, n;
     int           *ptest_bits_coh, *ptest_bits_coh_end, i;
 
     if (argc < 2) {
-       printf("usage: %s OutputOneFloatPerBitFile numBits\n", argv[0]);
+       printf("usage: %s OutputOneCharPerBitFile numBits\n", argv[0]);
        exit(1);
     }
 
@@ -70,9 +70,9 @@ int main(int argc, char *argv[])
         }
 
         for(i=0; i<COHPSK_BITS_PER_FRAME; i++)
-            sd_tx_bits[i] = 1.0 - 2.0*tx_bits[i];
+            tx_bits_char[i] = tx_bits[i];
 
-       fwrite(sd_tx_bits, sizeof(float), COHPSK_BITS_PER_FRAME, fout);
+       fwrite(tx_bits_char, sizeof(char), COHPSK_BITS_PER_FRAME, fout);
 
        /* if this is in a pipeline, we probably don't want the usual
           buffering to occur */
index 94c6fa30db9b17c00563a45885b637068a3c4fd8..25c1a57a5f53627eafe25e7ef3e3daa436f2b6a9 100644 (file)
@@ -41,7 +41,7 @@ int main(int argc, char *argv[])
 {
     FILE          *fin, *fout;
     struct COHPSK *cohpsk;
-    float         tx_bits_sd[COHPSK_BITS_PER_FRAME];
+    char          tx_bits_char[COHPSK_BITS_PER_FRAME];
     int           tx_bits[COHPSK_BITS_PER_FRAME];
     COMP          tx_fdm[COHPSK_NOM_SAMPLES_PER_FRAME];
     short         tx_fdm_scaled[COHPSK_NOM_SAMPLES_PER_FRAME];
@@ -49,7 +49,7 @@ int main(int argc, char *argv[])
     int           i;
 
     if (argc < 3) {
-       printf("usage: %s InputOneFloatPerBitFile OutputModemRawFile\n", argv[0]);
+       printf("usage: %s InputOneCharPerBitFile OutputModemRawFile\n", argv[0]);
        exit(1);
     }
 
@@ -71,11 +71,11 @@ int main(int argc, char *argv[])
 
     frames = 0;
 
-    while(fread(tx_bits_sd, sizeof(float), COHPSK_BITS_PER_FRAME, fin) == COHPSK_BITS_PER_FRAME) {
+    while(fread(tx_bits_char, sizeof(char), COHPSK_BITS_PER_FRAME, fin) == COHPSK_BITS_PER_FRAME) {
        frames++;
 
         for(i=0; i<COHPSK_BITS_PER_FRAME; i++)
-            tx_bits[i] = tx_bits_sd[i] < 0.0;
+            tx_bits[i] = tx_bits_char[i];
        cohpsk_mod(cohpsk, tx_fdm, tx_bits);
         cohpsk_clip(tx_fdm);
 
index 3ca792fd6ea40d4ba38fb3185e9f4cc3fcee7435..aa2c4e804a75582646bc0bf6f5ec5ff503740ea2 100644 (file)
@@ -42,7 +42,7 @@
 int main(int argc, char *argv[])
 {
     FILE         *fin, *foct;
-    float         rx_bits_sd[COHPSK_BITS_PER_FRAME];
+    char          rx_bits[COHPSK_BITS_PER_FRAME];
     int           state, i, nbits, bit_errors, nerrors;
     short         error_pattern[COHPSK_BITS_PER_FRAME];
     int           error_positions_hist[COHPSK_BITS_PER_FRAME], logframes;
@@ -53,7 +53,7 @@ int main(int argc, char *argv[])
         error_positions_hist[i] = 0;
 
     if (argc < 2) {
-       fprintf(stderr, "usage: %s InputOneFloatPerBitFile [OctaveLogFile]\n", argv[0]);
+       fprintf(stderr, "usage: %s InputOneCharPerBitFile [OctaveLogFile]\n", argv[0]);
        exit(1);
     }
 
@@ -80,9 +80,9 @@ int main(int argc, char *argv[])
         error_positions_hist[i] = 0;
 
     state = 0; nbits = 0; nerrors = 0;
-    while (fread(rx_bits_sd, sizeof(float), COHPSK_BITS_PER_FRAME, fin) ==  COHPSK_BITS_PER_FRAME) {
+    while (fread(rx_bits, sizeof(char), COHPSK_BITS_PER_FRAME, fin) ==  COHPSK_BITS_PER_FRAME) {
 
-        cohpsk_put_test_bits(coh, &state, error_pattern, &bit_errors, rx_bits_sd);
+        cohpsk_put_test_bits(coh, &state, error_pattern, &bit_errors, rx_bits);
         if (state == 1) {
             for(i=0; i<COHPSK_BITS_PER_FRAME; i++)
                 error_positions_hist[i] += error_pattern[i];