tests for dud LPDC packets and cmake support for drs232[_lpdc]
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 29 Nov 2016 20:24:02 +0000 (20:24 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Tue, 29 Nov 2016 20:24:02 +0000 (20:24 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2910 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/octave/test_ldpc_fsk_lib.m
codec2-dev/src/CMakeLists.txt

index a0f6d92be4f2358421c1a7e88792fb503428575e..8221337128986cabb01ec1d6ed00e8bc6f71e0ef 100644 (file)
@@ -489,7 +489,8 @@ function [n_uncoded_errs n_uncoded_bits] = run_sstv_sim(sim_in, EbNodB)
     system("cat fsk_demod.iq | csdr convert_u8_f | csdr convert_f_s16 | ../build_linux/src/fsk_demod 2X 8 9600 1200 - - C | ../src/drs232 - /dev/null -v");\r
 \r
     printf("run C cmd line chain - LDPC coded PER\n");\r
-    system("cat fsk_demod.iq | csdr convert_u8_f | csdr convert_f_s16 | ../build_linux/src/fsk_demod 2XS 8 9600 1200 - - C | ../src/drs232_ldpc - /dev/null -v");\r
+    %system("cat fsk_demod.iq | csdr convert_u8_f | csdr convert_f_s16 | ../build_linux/src/fsk_demod 2XS 8 9600 1200 - - C | ../src/drs232_ldpc - /dev/null -v");\r
+    system("cat fsk_demod.iq | ../build_linux/src/fsk_demod 2XS 8 9600 1200 - - CU8 | ../src/drs232_ldpc - /dev/null -v");\r
   end\r
 \r
   if (demod_type != 5) && (demod_type != 7)\r
@@ -566,7 +567,7 @@ endfunction
 % and compare.\r
 \r
 function compare_parity_bits(rx_bit_stream)\r
-    nframes = 2;\r
+    nframes = 500;\r
 \r
     % init LDPC code\r
 \r
@@ -605,20 +606,20 @@ function compare_parity_bits(rx_bit_stream)
       uw_errs(i) = sum(xor(rx_bit_stream(i-luw+1:i), uw_rs232));\r
     end\r
 \r
-    frame_start = find(uw_errs < 6)+1;\r
-    nframes = length(frame_start);\r
+    frame_start = find(uw_errs < 2)+1;\r
+    nframes = length(frame_start)\r
     for i=1:nframes\r
 \r
       % double check UW OK\r
 \r
       st_uw = frame_start(i) - luw; en_uw = frame_start(i) - 1;\r
       uw_err_check = sum(xor(rx_bit_stream(st_uw:en_uw), uw_rs232));\r
-      printf("uw_err_check: %d\n", uw_err_check);\r
+      %printf("uw_err_check: %d\n", uw_err_check);\r
 \r
       % strip off rs232 start/stop bits\r
 \r
       nbits_rs232 = (256+2+65)*10;\r
-      nbits = (256+2+65)*8\r
+      nbits = (256+2+65)*8;\r
       nbits_byte = 10;\r
       rx_codeword = zeros(1,nbits);\r
       pdb = 1;\r
@@ -642,6 +643,10 @@ function compare_parity_bits(rx_bit_stream)
     figure(1); clf;\r
     plot(uw_errs);\r
     title('Unique Word Hamming Distance')\r
+    figure(2); clf;\r
+    lframe_start = length(frame_start);\r
+    plot(frame_start(2:lframe_start)-frame_start(1:lframe_start-1));\r
+    %title('Unique Word Hamming Distance')\r
 \r
 endfunction\r
 \r
@@ -679,7 +684,7 @@ rand('state',1);
 \r
 % ------------------ select which demo/test to run here ---------------\r
 \r
-demo = 11;\r
+demo = 12;\r
 \r
 if demo == 1\r
   printf("simple_ut....\n");\r
@@ -828,15 +833,17 @@ end
 % Measure PER of complete coded and uncoded system\r
 \r
 if demo == 11\r
-  sim_in.frames = 100;\r
-  EbNodB = 7;\r
+  sim_in.frames = 10;\r
+  EbNodB = 9;\r
   sim_in.demod_type = 7;\r
   run_sstv_sim(sim_in, EbNodB);\r
 end\r
 \r
 \r
 % Compare parity bits from an off-air stream of demodulated bits\r
-\r
+% Use something like:\r
+%   cat ~/Desktop/923096fs_wenet.iq | ../build_linux/src/fsk_demod 2X 8 9600 1200 - fsk_demod.bin CU8\r
+% (note not soft dec mode)\r
 if demo == 12\r
   f = fopen("fsk_demod.bin","rb"); rx_bit_stream = fread(f, "uint8")'; fclose(f);\r
 \r
index 978f3d62a862739c5ae30757b19f627f0d46c42c..91a3d27b69f77e74b0e04d003ca69884e25b7649 100644 (file)
@@ -281,6 +281,11 @@ target_link_libraries(cohpsk_put_test_bits ${CMAKE_REQUIRED_LIBRARIES} codec2)
 add_executable(cohpsk_ch cohpsk_ch.c)
 target_link_libraries(cohpsk_ch ${CMAKE_REQUIRED_LIBRARIES} codec2)
 
+add_executable(drs232 drs232.c)
+target_link_libraries(drs232 ${CMAKE_REQUIRED_LIBRARIES})
+add_executable(drs232_ldpc drs232_ldpc.c mpdecode_core.c)
+target_link_libraries(drs232_ldpc ${CMAKE_REQUIRED_LIBRARIES})
+
 install(TARGETS codec2 EXPORT codec2-config
     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
@@ -307,5 +312,7 @@ install(TARGETS
     insert_errors
     fec_enc
     fec_dec
+    drs232
+    drs232_ldpc
     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 )