From: drowe67 Date: Fri, 3 Oct 2014 03:24:59 +0000 (+0000) Subject: support for odd numbers of carriers to support 450 bit/s and Nc=5 X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=0f61402f31f7d7e244e4d4f33be02858242b6216;p=freetel-svn-tracking.git support for odd numbers of carriers to support 450 bit/s and Nc=5 git-svn-id: https://svn.code.sf.net/p/freetel/code@1872 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/src/fdmdv_demod.c b/codec2-dev/src/fdmdv_demod.c index eb86a6a5..6c0ece11 100644 --- a/codec2-dev/src/fdmdv_demod.c +++ b/codec2-dev/src/fdmdv_demod.c @@ -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; diff --git a/codec2-dev/src/fdmdv_get_test_bits.c b/codec2-dev/src/fdmdv_get_test_bits.c index e91a1216..d04eeab2 100644 --- a/codec2-dev/src/fdmdv_get_test_bits.c +++ b/codec2-dev/src/fdmdv_get_test_bits.c @@ -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); diff --git a/codec2-dev/src/fdmdv_mod.c b/codec2-dev/src/fdmdv_mod.c index 0bda4ebb..662fd80f 100644 --- a/codec2-dev/src/fdmdv_mod.c +++ b/codec2-dev/src/fdmdv_mod.c @@ -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 */ diff --git a/codec2-dev/src/fdmdv_put_test_bits.c b/codec2-dev/src/fdmdv_put_test_bits.c index c1e62f12..5add4ab5 100644 --- a/codec2-dev/src/fdmdv_put_test_bits.c +++ b/codec2-dev/src/fdmdv_put_test_bits.c @@ -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);