interleaving tests, not useful with no FEC
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 26 Feb 2013 01:48:52 +0000 (01:48 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 26 Feb 2013 01:48:52 +0000 (01:48 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@1169 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/octave/fdmdv_demod.m

index ff6a7fc007f2072ae643466603e8ea9b14bdaeeb..b08d7ffa495b9acabcfcaca51ccae5932ec20103 100644 (file)
@@ -8,7 +8,7 @@
 % Version 2
 %
 
-function fdmdv_demod(rawfilename, nbits, pngname)
+function fdmdv_demod(rawfilename, nbits, errorpatternfilename)
 
   fdmdv; % include modem code
 
@@ -170,7 +170,6 @@ function fdmdv_demod(rawfilename, nbits, pngname)
   % ---------------------------------------------------------------------
 
   ber = total_bit_errors / total_bits;
-  Fcentre
   printf("%d bits  %d errors  BER: %1.4f\n",total_bits, total_bit_errors, ber);
 
   % ---------------------------------------------------------------------
@@ -252,4 +251,36 @@ function fdmdv_demod(rawfilename, nbits, pngname)
   grid
   title('FDM Rx Spectrum');
 
+  % interleaving tests
+
+  load ../unittest/inter560.txt
+  lep = length(error_pattern_log);
+  lep = floor(lep/560)*560;
+  error_pattern_log_inter = zeros(1,lep);
+  for i=1:560:lep
+    for j=1:560
+      %printf("i: %4d j: %4d inter560(j): %4d\n", i,j,inter560(j));
+      index = inter560(j);
+      error_pattern_log_inter(i-1+index+1) = error_pattern_log(i-1+j);
+    end
+  end
+
+  figure(8)
+  clf;
+  hold on;
+  for p=1:Nc
+    plot(p + 0.25*error_pattern_log_inter((p-1)*2+1:Nc*Nb:lep));
+    plot(0.30 + p + 0.25*error_pattern_log_inter(p*2:Nc*Nb:lep),'r')
+  end
+  hold off;
+  axis([1 lep/(Nc*Nb) 0 15])
+
+  % save error pattern file
+
+  if nargin == 3
+    fout = fopen(errorpatternfilename, "wb");
+    fwrite(fout, error_pattern_log_inter, "short");
+    fclose(fout);
+  end
+
 endfunction