good results: BER < 0.02 for ESNo=12 fading and EsNo=8 AWGN 100 frames, PAPR 5.17dB
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Wed, 20 May 2015 22:50:58 +0000 (22:50 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Wed, 20 May 2015 22:50:58 +0000 (22:50 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2142 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/octave/cohpsk.m
codec2-dev/octave/tcohpsk.m
codec2-dev/octave/test_foff.m

index ab3373a759416f9a0abae15c8694c86a55353fa9..b6a83148c53ff8cd1dab066b5fbda33f52e4888d 100644 (file)
@@ -755,7 +755,7 @@ function [sync cohpsk] = sync_state_machine(cohpsk, sync, next_sync)
 
     % check that sync is still good, fall out of sync on consecutive bad frames */
 
-    if cohpsk.ratio < 0.5
+    if cohpsk.ratio < 0.8
       cohpsk.sync_timer++;
     else
       cohpsk.sync_timer = 0;            
index 3739fd0b159947d6e6ab5c56997ba460965a184e..4e38d9bce768fd8f68d7e8769c5f6bd6721cb87f 100644 (file)
 %  [X] tune perf/impl loss to get closer to ideal
 %      [X] linear interp of phase for better fading perf
 %  [X] freq offset/drift feedback loop 
-%  [ ] PAPR measurement and reduction
-%  [ ] false sync
-%      [ ] noise
-%      [ ] similar but invalid signal like huge f off
-%  [ ] check "unsync"
+%  [X] PAPR measurement and reduction
+%  [X] false sync
+%      [X] doesn't sync up on noise (used EsNo = -12)
+%      [X] similar but invalid signal like huge f off
+%  [X] ability to "unsync" when signal dissapears
 %  [ ] some calibrated tests against FreeDV 1600
 %      + compare sound quality at various Es/Nos
+%  [ ] way to handle eom w/o nasties
+%      + like mute ouput when signal has gone or v low snr
+%      + instantaneous snr
+%  [ ] nasty rig filter passband
 
 graphics_toolkit ("gnuplot");
 more off;
@@ -479,9 +483,10 @@ else
   clf
   subplot(211)
   plot(real(tx_fdm_frame_log))
+  title('tx fdm real');
   subplot(212)
   plot(imag(tx_fdm_frame_log))
-  title('tx fdm');
+  title('tx fdm imag');
 
   figure(2)
   clf;
@@ -518,7 +523,13 @@ else
 
   figure(7)
   clf
-  plot(tx_fdm_frame_log)
+  spec = 20*log10(abs(fft(tx_fdm_frame_log)));
+  l = length(spec);
+  plot((Fs/l)*(1:l), spec)
+  axis([1 Fs/2 0 max(spec)]);
+  title('tx spectrum');
+  ylabel('Amplitude (dB)')
+  xlabel('Frequency (Hz)')
 
 end
 
index 25dacb9ff5d2b1a3657a9ae0ddb6e0fb555e1355..4ead6d9d4ca0dfaca82303759c634f6aa42b0e7e 100644 (file)
@@ -394,8 +394,8 @@ function [freq_off_log EsNodBSet] = freq_off_est_test_curves
 endfunction\r
 \r
 \r
-freq_off_est_test_single;\r
-%freq_off_est_test_curves;\r
+%freq_off_est_test_single;\r
+freq_off_est_test_curves;\r
 \r
 % 1. start with +/- 20Hz offset\r
 % 2. Measure frames to sync.  How to define sync?  Foff to withn 1 Hz. Sync state\r