From: drowe67 Date: Wed, 15 Feb 2012 03:05:14 +0000 (+0000) Subject: added bit error generation to c2dec X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=51349d0ba79faa17fb12af59fa3f3c4a2c45ae90;p=freetel-svn-tracking.git added bit error generation to c2dec git-svn-id: https://svn.code.sf.net/p/freetel/code@318 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/src/c2dec.c b/codec2-dev/src/c2dec.c index 56cfcca7..e5dc7a39 100644 --- a/codec2-dev/src/c2dec.c +++ b/codec2-dev/src/c2dec.c @@ -40,9 +40,10 @@ int main(int argc, char *argv[]) FILE *fout; short *buf; unsigned char *bits; - int nsam, nbit, nbyte; + int nsam, nbit, nbyte, i, byte, frames, bit_errors; + float ber, r; - if (argc != 4) { + if (argc < 4) { printf("usage: c2dec 2500|1500|1125 InputBitFile OutputRawSpeechFile\n"); printf("e.g c2dec 1500 hts1a.c2 hts1a_1500.raw\n"); exit(1); @@ -73,23 +74,43 @@ int main(int argc, char *argv[]) exit(1); } + if (argc == 5) + ber = atof(argv[4]); + else + ber = 0.0; + codec2 = codec2_create(mode); nsam = codec2_samples_per_frame(codec2); nbit = codec2_bits_per_frame(codec2); buf = (short*)malloc(nsam*sizeof(short)); nbyte = (nbit + 7) / 8; bits = (unsigned char*)malloc(nbyte*sizeof(char)); - + frames = bit_errors = 0; + while(fread(bits, sizeof(char), nbyte, fin) == nbyte) { + frames++; + if (ber != 0.0) { + for(i=0; i