From: baobrien Date: Sun, 13 Mar 2016 09:44:44 +0000 (+0000) Subject: Added stat printing to fsk_demod X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=682afc90a027d1cfb84a0fd0731ac40f80e5640e;p=freetel-svn-tracking.git Added stat printing to fsk_demod git-svn-id: https://svn.code.sf.net/p/freetel/code@2737 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/src/fsk_demod.c b/codec2-dev/src/fsk_demod.c index 5368e990..947ac1b5 100644 --- a/codec2-dev/src/fsk_demod.c +++ b/codec2-dev/src/fsk_demod.c @@ -30,22 +30,23 @@ #include #include "fsk.h" -#define MODEMPROBE_ENABLE -#include "modem_probe.h" #include "codec2_fdmdv.h" +#include "modem_stats.h" int main(int argc,char *argv[]){ struct FSK *fsk; + struct MODEM_STATS stats; int Fs,Rs,M,P; + int enable_stats = 0; int hbr = 0; FILE *fin,*fout; uint8_t *bitbuf; int16_t *rawbuf; float *modbuf; - int i,t; + int i; if(argc<7){ - fprintf(stderr,"usage: %s Mode P SampleFreq SymbolFreq InputModemRawFile OutputOneBitPerCharFile [OctaveLogFile]\n",argv[0]); + fprintf(stderr,"usage: %s Mode P SampleFreq SymbolFreq InputModemRawFile OutputOneBitPerCharFile [S]\n",argv[0]); exit(1); } @@ -77,9 +78,6 @@ int main(int argc,char *argv[]){ }else { M = atoi(argv[1]); } - - if(argc>7) - modem_probe_init("fsk2",argv[7]); /* set up FSK */ if(!hbr) @@ -87,12 +85,18 @@ int main(int argc,char *argv[]){ else fsk = fsk_create_hbr(Fs,Rs,P,M,1200,400); - if(fin==NULL || fout==NULL || fsk==NULL){ fprintf(stderr,"Couldn't open test vector files\n"); goto cleanup; } + if(argc>7){ + if(strcmp(argv[7],"S")==0){ + enable_stats = 1; + fsk_setup_modem_stats(fsk,&stats); + } + } + /* allocate buffers for processing */ bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*fsk->Nbits); rawbuf = (int16_t*)malloc(sizeof(int16_t)*(fsk->N+fsk->Ts*2)); @@ -103,12 +107,20 @@ int main(int argc,char *argv[]){ for(i=0;iNbits;i++){ - t = (int)bitbuf[i]; - modem_probe_samp_i("t_d_bitout",&t,1); + + if(enable_stats){ + fprintf(stderr,"{\"EbNodB\": %2.2f,\t\"ppm\": %d",fsk->EbNodB,(int)fsk->ppm); + fprintf(stderr,"\t\"f1_est\":%.1f,\t\"f2_est\":%.1f",fsk->f1_est,fsk->f2_est); + if(fsk->mode == 4){ + fprintf(stderr,",\t\"f3_est\":%.1f,\t\"f4_est\":%.1f",fsk->f3_est,fsk->f4_est); + } + fprintf(stderr,"}\n"); } + + /*for(i=0;iNbits;i++){ + t = (int)bitbuf[i]; + }*/ fwrite(bitbuf,sizeof(uint8_t),fsk->Nbits,fout); if(fin == stdin || fout == stdin){ @@ -121,7 +133,6 @@ int main(int argc,char *argv[]){ free(rawbuf); free(modbuf); - modem_probe_close(); cleanup: fclose(fin); fclose(fout);