From 9ee3a4fc16956b75c1fb9f98ed775675ed4a28f2 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Tue, 29 Nov 2016 20:24:02 +0000 Subject: [PATCH] tests for dud LPDC packets and cmake support for drs232[_lpdc] 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 | 27 +++++++++++++++++---------- codec2-dev/src/CMakeLists.txt | 7 +++++++ 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/codec2-dev/octave/test_ldpc_fsk_lib.m b/codec2-dev/octave/test_ldpc_fsk_lib.m index a0f6d92b..82213371 100644 --- a/codec2-dev/octave/test_ldpc_fsk_lib.m +++ b/codec2-dev/octave/test_ldpc_fsk_lib.m @@ -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"); printf("run C cmd line chain - LDPC coded PER\n"); - 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"); + %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"); + system("cat fsk_demod.iq | ../build_linux/src/fsk_demod 2XS 8 9600 1200 - - CU8 | ../src/drs232_ldpc - /dev/null -v"); end if (demod_type != 5) && (demod_type != 7) @@ -566,7 +567,7 @@ endfunction % and compare. function compare_parity_bits(rx_bit_stream) - nframes = 2; + nframes = 500; % init LDPC code @@ -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)); end - frame_start = find(uw_errs < 6)+1; - nframes = length(frame_start); + frame_start = find(uw_errs < 2)+1; + nframes = length(frame_start) for i=1:nframes % double check UW OK st_uw = frame_start(i) - luw; en_uw = frame_start(i) - 1; uw_err_check = sum(xor(rx_bit_stream(st_uw:en_uw), uw_rs232)); - printf("uw_err_check: %d\n", uw_err_check); + %printf("uw_err_check: %d\n", uw_err_check); % strip off rs232 start/stop bits nbits_rs232 = (256+2+65)*10; - nbits = (256+2+65)*8 + nbits = (256+2+65)*8; nbits_byte = 10; rx_codeword = zeros(1,nbits); pdb = 1; @@ -642,6 +643,10 @@ function compare_parity_bits(rx_bit_stream) figure(1); clf; plot(uw_errs); title('Unique Word Hamming Distance') + figure(2); clf; + lframe_start = length(frame_start); + plot(frame_start(2:lframe_start)-frame_start(1:lframe_start-1)); + %title('Unique Word Hamming Distance') endfunction @@ -679,7 +684,7 @@ rand('state',1); % ------------------ select which demo/test to run here --------------- -demo = 11; +demo = 12; if demo == 1 printf("simple_ut....\n"); @@ -828,15 +833,17 @@ end % Measure PER of complete coded and uncoded system if demo == 11 - sim_in.frames = 100; - EbNodB = 7; + sim_in.frames = 10; + EbNodB = 9; sim_in.demod_type = 7; run_sstv_sim(sim_in, EbNodB); end % Compare parity bits from an off-air stream of demodulated bits - +% Use something like: +% cat ~/Desktop/923096fs_wenet.iq | ../build_linux/src/fsk_demod 2X 8 9600 1200 - fsk_demod.bin CU8 +% (note not soft dec mode) if demo == 12 f = fopen("fsk_demod.bin","rb"); rx_bit_stream = fread(f, "uint8")'; fclose(f); diff --git a/codec2-dev/src/CMakeLists.txt b/codec2-dev/src/CMakeLists.txt index 978f3d62..91a3d27b 100644 --- a/codec2-dev/src/CMakeLists.txt +++ b/codec2-dev/src/CMakeLists.txt @@ -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} ) -- 2.25.1