Made cleanups to test printouts
authorbaobrien <baobrien@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 9 May 2016 03:18:39 +0000 (03:18 +0000)
committerbaobrien <baobrien@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 9 May 2016 03:18:39 +0000 (03:18 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2799 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/octave/fsk_horus.m
codec2-dev/octave/tfmfsk.m
codec2-dev/octave/tfsk.m
codec2-dev/octave/tfsk_2400a.m
codec2-dev/unittest/tfmfsk.c
codec2-dev/unittest/tfsk.c

index 323d46534e02708727e69495a53449b16767803c..87b4a78de55c03408df6dbfce3b468420f16fbef 100644 (file)
@@ -60,7 +60,7 @@ function states = fsk_horus_init(Fs,Rs,M=2)
   states.verbose = 0;
   states.phi = zeros(1, M);       % keep down converter osc phase continuous
 
-  printf("M: %d Fs: %d Rs: %d Ts: %d nsym: %d nbit: %d\n", states.M, states.Fs, states.Rs, states.Ts, states.nsym, states.nbit);
+  %printf("M: %d Fs: %d Rs: %d Ts: %d nsym: %d nbit: %d\n", states.M, states.Fs, states.Rs, states.Ts, states.nsym, states.nbit);
 
   % BER stats 
 
@@ -119,7 +119,7 @@ function states = fsk_horus_init_hbr(Fs,P,Rs,M=2,nsym=48)
   states.verbose = 0;
   states.phi = zeros(1, M);       % keep down converter osc phase continuous
 
-  printf("M: %d Fs: %d Rs: %d Ts: %d nsym: %d nbit: %d\n", states.M, states.Fs, states.Rs, states.Ts, states.nsym, states.nbit);
+  %printf("M: %d Fs: %d Rs: %d Ts: %d nsym: %d nbit: %d\n", states.M, states.Fs, states.Rs, states.Ts, states.nsym, states.nbit);
 
   % Freq estimator limits
 
index 8d22b62d1af5c58ccc4803b499194df036a74859..342f800ddebb189bd132857eb074c1f34971bbf7 100644 (file)
@@ -42,6 +42,9 @@
 %tfsk executable path/file
 global tfsk_location = '../build_linux/unittest/tfmfsk';
 
+%Set to 1 for verbose printouts
+global print_verbose = 0;
+
 
 
 fmfsk
@@ -73,6 +76,7 @@ endfunction
 
 %Compare 2 vectors, fail if they are not close enough
 function pass = vcompare(vc,voct,vname,tname,tol,pnum)
+    global print_verbose;
     
     %Get delta of vectors
     dvec = abs(abs(vc)-abs(voct));     
@@ -82,8 +86,9 @@ function pass = vcompare(vc,voct,vname,tname,tol,pnum)
     
     maxdvec = abs(max(dvec));
     pass = maxdvec<tol;
-    
-    printf('  Comparing vectors %s in test %s. Diff is %f\n',vname,tname,maxdvec);
+    if print_verbose == 1
+        printf('  Comparing vectors %s in test %s. Diff is %f\n',vname,tname,maxdvec);
+    end
     
     if pass == 0
         printf('\n*** vcompare failed %s in test %s. Diff: %f Tol: %f\n\n',vname,tname,maxdvec,tol);
@@ -222,6 +227,7 @@ endfunction
 % simulation of tx and rx side, add noise, channel impairments ----------------------
 
 function stats = tfmfsk_run_sim(EbNodB,timing_offset=0,de=0,of=0,hpf=0,df=0,M=2)
+  global print_verbose;
   test_frame_mode = 2;
   frames = 70;
   %EbNodB = 3;
@@ -354,12 +360,14 @@ function stats = tfmfsk_run_sim(EbNodB,timing_offset=0,de=0,of=0,hpf=0,df=0,M=2)
   offset = ox;
   berc = ber;
   
-  printf("C BER %f in test %s\n",berc,test_name);
-  printf("Oct BER %f in test %s\n",bero,test_name);
+  if print_verbose == 1
+    printf("C BER %f in test %s\n",berc,test_name);
+    printf("Oct BER %f in test %s\n",bero,test_name);
+  end
   
   stats.berc = berc;
   stats.bero = bero;
-  
+  stats.name = test_name;
     % non-coherent BER theory calculation
   % It was complicated, so I broke it up
 
@@ -382,6 +390,7 @@ function stats = tfmfsk_run_sim(EbNodB,timing_offset=0,de=0,of=0,hpf=0,df=0,M=2)
 
 
 function pass = ebno_battery_test(timing_offset,drift,hpf,deemp,outfilt)
+    global print_verbose;
     %Range of EbNodB over which to test
     ebnodbrange = (8:2:20);
     ebnodbs = length(ebnodbrange);
@@ -399,6 +408,11 @@ function pass = ebno_battery_test(timing_offset,drift,hpf,deemp,outfilt)
     passv = zeros(1,length(statv));
     for ii=(1:length(statv))
         passv(ii)=statv(ii).pass;
+        if statv(ii).pass
+            printf("Test %s passed\n",statv(ii).name);
+        else
+            printf("Test %s failed\n",statv(ii).name);
+        end
     end
     
     %All pass flags are '1'
@@ -473,6 +487,11 @@ function plot_fmfsk_bers(M=2)
  
 endfunction
 
-
-test_fmfsk_battery
+xpass = test_fmfsk_battery
 plot_fmfsk_bers(2)
+
+if xpass
+    printf("***** All tests passed! *****\n");
+else
+    printf("***** Some test failed! Look back thorugh output to find failed test *****\n");
+end
index 841f076ecfc8f304924d35b9273ed3012feb123f..0f2d401a2a76f3aa9bbaa9a4f1efbb2694f06129 100644 (file)
@@ -53,6 +53,8 @@
 %tfsk executable path/file
 global tfsk_location = '../build_linux/unittest/tfsk';
 
+%Set to 1 for verbose printouts
+global print_verbose = 0;
 
 
 fsk_horus_as_a_lib = 1; % make sure calls to test functions at bottom are disabled
@@ -86,7 +88,7 @@ endfunction
 
 %Compare 2 vectors, fail if they are not close enough
 function pass = vcompare(vc,voct,vname,tname,tol,pnum)
-    
+    global print_verbose;
     %Get delta of vectors
     dvec = abs(abs(vc)-abs(voct));     
     
@@ -95,9 +97,9 @@ function pass = vcompare(vc,voct,vname,tname,tol,pnum)
     
     maxdvec = abs(max(dvec));
     pass = maxdvec<tol;
-    
-    printf('  Comparing vectors %s in test %s. Diff is %f\n',vname,tname,maxdvec);
-    
+    if print_verbose == 1
+        printf('  Comparing vectors %s in test %s. Diff is %f\n',vname,tname,maxdvec);
+    end
     if pass == 0
         printf('\n*** vcompare failed %s in test %s. Diff: %f Tol: %f\n\n',vname,tname,maxdvec,tol);
         
@@ -114,6 +116,7 @@ function pass = vcompare(vc,voct,vname,tname,tol,pnum)
 endfunction
 
 function test_stats = fsk_demod_xt(Fs,Rs,f1,fsp,mod,tname,M=2)
+    global print_verbose;
     global tfsk_location;
     %Name of executable containing the modulator
     fsk_demod_ex_file = '../build/unittest/tfsk';
@@ -239,7 +242,6 @@ function test_stats = fsk_demod_xt(Fs,Rs,f1,fsp,mod,tname,M=2)
     diffbits = sum(xor(obits,bits'));
     
     
-    
     if diffpass==0
         printf('\n***bitcompare test failed test %s diff %d\n\n',tname,sum(xor(obits,bits')))
         figure(15)
@@ -321,6 +323,7 @@ endfunction
 % This throws some channel imparment or another at the C and octave modem so they 
 % may be compared.
 function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,dA,M=2)
+  global print_verbose;
   frames = 90;
   %EbNodB = 10;
   %timing_offset = 2.0; % see resample() for clock offset below
@@ -415,7 +418,7 @@ function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,dA,
   end
   
   f1 = states.f1_tx;
-  fsp = states.f2_tx-f1
+  fsp = states.f2_tx-f1;
   states.dA = [dA dA dA dA];
   states.ftx(1) = f1;
   states.ftx(2) = f1+fsp;
@@ -440,8 +443,7 @@ function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,dA,
   rx    = tx + noise;
   
   test_name = sprintf("tfsk run sim EbNodB:%d frames:%d timing_offset:%d fading:%d df:%d",EbNodB,frames,timing_offset,fading,df);
-  tstats = fsk_demod_xt(Fs,Rs,states.f1_tx,fsp,rx,test_name,M); 
-  printf("Test %s done\n",test_name);
+  tstats = fsk_demod_xt(Fs,Rs,states.f1_tx,fsp,rx,test_name,M);
   
   pass = tstats.pass;
   obits = tstats.obits;
@@ -479,6 +481,7 @@ function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,dA,
   berc = ber;
   stats.berc = berc;
   stats.bero = bero;
+  stats.name = test_name;
   % coherent BER theory calculation
   
   stats.thrcoh = .5*(M-1)*erfc(sqrt( (log2(M)/2) * EbNo ));
@@ -523,6 +526,11 @@ function pass = ebno_battery_test(timing_offset,fading,df,dA,M)
     passv = zeros(1,length(statv));
     for ii=(1:length(statv))
         passv(ii)=statv(ii).pass;
+        if statv(ii).pass
+            printf("Test %s passed\n",statv(ii).name);
+        else
+            printf("Test %s failed\n",statv(ii).name);
+        end
     end
     
     %All pass flags are '1'
@@ -610,6 +618,13 @@ function plot_fsk_bers(M=2)
 endfunction
 
 
-test_fsk_battery
-plot_fsk_bers(2)
+xpass = test_fsk_battery
+%plot_fsk_bers(2)
 plot_fsk_bers(4)
+
+if xpass
+    printf("***** All tests passed! *****\n");
+else
+    printf("***** Some test failed! Look back thorugh output to find failed test *****\n");
+end
+
index 9295a8974c3e8af415c4bd0c43d1adce3b3619c4..a70044b0531e143a518183361611daa9501a6645 100644 (file)
 
   2 - Change tfsk_location below if required
   3 - Ensure Octave packages signal and parallel are installed
-  4 - Start Octave and run tfsk.m. It will perform all tests automatically
+  4 - Start Octave and run tfsk_2400a.m. It will perform all tests automatically
 
 #}
 
+
+
 %tfsk executable path/file
 global tfsk_location = '../build_linux/unittest/tfsk';
 
+%Set to 1 for verbose printouts
+global print_verbose = 0;
 
 
 fsk_horus_as_a_lib = 1; % make sure calls to test functions at bottom are disabled
@@ -86,7 +90,7 @@ endfunction
 
 %Compare 2 vectors, fail if they are not close enough
 function pass = vcompare(vc,voct,vname,tname,tol,pnum)
-    
+    global print_verbose;
     %Get delta of vectors
     dvec = abs(abs(vc)-abs(voct));     
     
@@ -96,7 +100,9 @@ function pass = vcompare(vc,voct,vname,tname,tol,pnum)
     maxdvec = abs(max(dvec));
     pass = maxdvec<tol;
     
-    printf('  Comparing vectors %s in test %s. Diff is %f\n',vname,tname,maxdvec);
+    if print_verbose == 1
+        printf('  Comparing vectors %s in test %s. Diff is %f\n',vname,tname,maxdvec);
+    end
     
     if pass == 0
         printf('\n*** vcompare failed %s in test %s. Diff: %f Tol: %f\n\n',vname,tname,maxdvec,tol);
@@ -115,6 +121,7 @@ endfunction
 
 function test_stats = fsk_demod_xt(Fs,Rs,f1,fsp,mod,tname,M=2)
     global tfsk_location;
+    global print_verbose;
     %Name of executable containing the modulator
     fsk_demod_ex_file = '../build/unittest/tfsk';
     modvecfilename = sprintf('fsk_demod_ut_modvec_%d',getpid());
@@ -236,8 +243,9 @@ function test_stats = fsk_demod_xt(Fs,Rs,f1,fsp,mod,tname,M=2)
     diffpass = sum(xor(obits,bits'))<5;
     diffbits = sum(xor(obits,bits'));
     
-    
-    printf('%d bit diff in test %s\n',diffbits,tname);
+    if print_verbose == 1
+        printf('%d bit diff in test %s\n',diffbits,tname);
+    end
     if diffpass==0
         printf('\n***bitcompare test failed test %s diff %d\n\n',tname,sum(xor(obits,bits')))
         figure(15)
@@ -305,6 +313,7 @@ endfunction
 % This throws some channel imparment or another at the C and octave modem so they 
 % may be compared.
 function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,dA,M=2)
+  global print_verbose;
   frames = 190;
   %EbNodB = 10;
   %timing_offset = 2.0; % see resample() for clock offset below
@@ -420,7 +429,7 @@ function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,dA,
   
   
   f1 = states.f1_tx;
-  fsp = states.f2_tx-f1
+  fsp = states.f2_tx-f1;
   states.dA = [dA dA dA dA];
   states.ftx(1) = f1;
   states.ftx(2) = f1+fsp;
@@ -444,13 +453,19 @@ function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,dA,
   noise = sqrt(variance)*randn(length(tx),1);
   rx    = tx + noise;
   
-  test_name = sprintf("tfsk run sim EbNodB:%d frames:%d timing_offset:%d fading:%d df:%d",EbNodB,frames,timing_offset,fading,df);
-  tstats = fsk_demod_xt(Fs,Rs,states.f1_tx,fsp,rx,test_name,M); 
-  printf("Test %s done\n",test_name);
+  test_name = sprintf("tfsk EbNodB:%d frames:%d timing_offset:%d fading:%d df:%d",EbNodB,frames,timing_offset,fading,df);
+  tstats = fsk_demod_xt(Fs,Rs,states.f1_tx,fsp,rx,test_name,M);
   
   pass = tstats.pass;
   obits = tstats.obits;
   cbits = tstats.cbits;
+  stats.name = test_name;
+  
+  if tstats.pass 
+    printf("Test %s passed\n",test_name);
+  else
+    printf("Test %s failed\n",test_name);
+  end
   
   % Figure out BER of octave and C modems
   bitcnt = length(tx_bits);
@@ -486,7 +501,9 @@ function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,dA,
   stats.bero = bero;
   % coherent BER theory calculation
   
-  printf("C BER: %f Oct BER: %f Test %s\n",berc,bero,test_name);
+  if print_verbose == 1
+    printf("C BER: %f Oct BER: %f Test %s\n",berc,bero,test_name);
+  end
   
   stats.thrcoh = .5*(M-1)*erfc(sqrt( (log2(M)/2) * EbNo ));
   
@@ -530,6 +547,12 @@ function pass = ebno_battery_test(timing_offset,fading,df,dA,M)
     passv = zeros(1,length(statv));
     for ii=(1:length(statv))
         passv(ii)=statv(ii).pass;
+        if statv(ii).pass
+            printf("Test %s passed\n",statv(ii).name);
+        else
+            printf("Test %s failed\n",statv(ii).name);
+        end
+            
     end
     
     %All pass flags are '1'
@@ -614,6 +637,12 @@ function plot_fsk_bers(M=2)
 endfunction
 
 
-test_fsk_battery
+xpass = test_fsk_battery
 %plot_fsk_bers(2)
 plot_fsk_bers(4)
+
+if xpass
+    printf("***** All tests passed! *****\n");
+else
+    printf("***** Some test failed! Look back thorugh output to find failed test *****\n");
+end
index b1359624b011fdae34577e8abea8b554cc60fc10..23e6bea59af9330de219280df9d33ac1397f767c 100644 (file)
@@ -169,7 +169,7 @@ int main(int argc,char *argv[]){
         /* Demod-only test */
         if(test_type == TEST_DEMOD){
             
-            fprintf(stderr,"%d\n",(fmfsk->N+fmfsk->Ts*2));
+            //fprintf(stderr,"%d\n",(fmfsk->N+fmfsk->Ts*2));
             while( fread(modbuf,sizeof(float),fmfsk_nin(fmfsk),fin) == fmfsk_nin(fmfsk) ){
                 fmfsk_demod(fmfsk,bitbuf,modbuf);
                 fwrite(bitbuf,sizeof(uint8_t),fmfsk->nbit,fout);
index e8a54a2fa3af517391252e019408a21d77eb3b5a..0c350d7b4279bd409d2574f2f7a99317281ef9dc 100644 (file)
@@ -131,7 +131,6 @@ int main(int argc,char *argv[]){
     }else{
         fsk = fsk_create(Fs,Rs,M,f1,fs);
     }
-    fprintf(stderr,"Running in mode %d\n",M);
     /* Modulate! */
     if(test_type == TEST_MOD || test_type == TEST_SELF_FULL){
         /* Generate random bits for self test */