support for odd numbers of carriers to support 450 bit/s and Nc=5
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 3 Oct 2014 03:24:59 +0000 (03:24 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 3 Oct 2014 03:24:59 +0000 (03:24 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@1872 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/src/fdmdv_demod.c
codec2-dev/src/fdmdv_get_test_bits.c
codec2-dev/src/fdmdv_mod.c
codec2-dev/src/fdmdv_put_test_bits.c

index eb86a6a52020adeb38a6fe28572ae5b97f618ea6..6c0ece11227c676e61dcb5d67bf4040ccb41641b 100644 (file)
@@ -101,10 +101,7 @@ int main(int argc, char *argv[])
 
     if (argc >= 4) {
         Nc = atoi(argv[3]);
-        if ((Nc % 2) != 0) {
-            fprintf(stderr, "Error number of carriers must be a multiple of 2\n");
-            exit(1);
-        }
+
         if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) {
             fprintf(stderr, "Error number of carriers must be between 2 and %d\n",  FDMDV_NC_MAX);
             exit(1);
@@ -117,8 +114,7 @@ int main(int argc, char *argv[])
 
     bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv);
     bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv);
-    assert((bits_per_codec_frame % 8) == 0); /* make sure integer number of bytes per frame */
-    bytes_per_codec_frame = bits_per_codec_frame/8;
+    bytes_per_codec_frame = (bits_per_codec_frame+7)/8;
 
     /* malloc some buffers that are dependant on Nc */
 
@@ -201,7 +197,6 @@ int main(int argc, char *argv[])
                     byte++;
                 }
             }
-            assert(byte == bytes_per_codec_frame);
 
             fwrite(packed_bits, sizeof(char), bytes_per_codec_frame, fout);
             sync = 0;
index e91a12161c448db561c95622270989f47485e457..d04eeab291ddf2f0d4747f8af99a40a772729411 100644 (file)
@@ -65,10 +65,6 @@ int main(int argc, char *argv[])
 
     if (argc == 4) {
         Nc = atoi(argv[3]);
-        if ((Nc % 2) != 0) {
-            fprintf(stderr, "Error number of carriers must be a multiple of 2\n");
-            exit(1);
-        }
         if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) {
             fprintf(stderr, "Error number of carriers must be btween 2 and %d\n",  FDMDV_NC_MAX);
             exit(1);
@@ -81,8 +77,7 @@ int main(int argc, char *argv[])
 
     bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv);
     bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv);
-    assert((bits_per_codec_frame % 8) == 0); /* make sure integer number of bytes per frame */
-    bytes_per_codec_frame = bits_per_codec_frame/8;
+    bytes_per_codec_frame = (bits_per_codec_frame+7)/8;
     fprintf(stderr, "bits_per_fdmdv_frame: %d bits_per_codec_frame: %d bytes_per_codec_frame: %d\n",
             bits_per_fdmdv_frame, bits_per_codec_frame, bytes_per_codec_frame);
 
@@ -110,7 +105,6 @@ int main(int argc, char *argv[])
                byte++;
            }
        }
-       assert(byte == bytes_per_codec_frame);
 
        fwrite(packed_bits, sizeof(char), bytes_per_codec_frame, fout);
  
index 0bda4ebb7aeab319f948bf69f1b0c2153d3ad34a..662fd80fe75413c153c2c6cd35fa9b68fafb4e6d 100644 (file)
@@ -78,10 +78,7 @@ int main(int argc, char *argv[])
 
     if (argc == 4) {
         Nc = atoi(argv[3]);
-         if ((Nc % 2) != 0) {
-            fprintf(stderr, "Error number of carriers must be a multiple of 2\n");
-            exit(1);
-        }
+
         if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) {
             fprintf(stderr, "Error number of carriers must be btween 2 and %d\n",  FDMDV_NC_MAX);
             exit(1);
@@ -94,8 +91,7 @@ int main(int argc, char *argv[])
 
     bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv);
     bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv);
-    assert((bits_per_codec_frame % 8) == 0); /* make sure integer number of bytes per frame */
-    bytes_per_codec_frame = bits_per_codec_frame/8;
+    bytes_per_codec_frame = (bits_per_codec_frame+7)/8;
 
     packed_bits = (char*)malloc(bytes_per_codec_frame);
     assert(packed_bits != NULL);
@@ -121,7 +117,6 @@ int main(int argc, char *argv[])
                byte++;
            }
        }
-       assert(byte == bytes_per_codec_frame);
 
        /* modulate even and odd frames */
 
index c1e62f12e732f51438996bbe55ccb1458073c5eb..5add4ab5d5cf317aa9efd8468f445530d6bef652 100644 (file)
@@ -66,10 +66,6 @@ int main(int argc, char *argv[])
 
     if (argc == 3) {
         Nc = atoi(argv[2]);
-        if ((Nc % 2) != 0) {
-            fprintf(stderr, "Error number of carriers must be a multiple of 2\n");
-            exit(1);
-        }
         if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) {
             fprintf(stderr, "Error number of carriers must be between 2 and %d\n",  FDMDV_NC_MAX);
             exit(1);
@@ -82,8 +78,7 @@ int main(int argc, char *argv[])
 
     bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv);
     bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv);
-    assert((bits_per_codec_frame % 8) == 0); /* make sure integer number of bytes per frame */
-    bytes_per_codec_frame = bits_per_codec_frame/8;
+    bytes_per_codec_frame = (bits_per_codec_frame+7)/8;
     fprintf(stderr, "bits_per_fdmdv_frame: %d bits_per_codec_frame: %d bytes_per_codec_frame: %d\n",
             bits_per_fdmdv_frame, bits_per_codec_frame, bytes_per_codec_frame);
 
@@ -113,7 +108,6 @@ int main(int argc, char *argv[])
                byte++;
            }
        }
-       assert(byte == bytes_per_codec_frame);
 
        fdmdv_put_test_bits(fdmdv, &test_frame_sync, error_pattern, &bit_errors, &ntest_bits, rx_bits);