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
% and compare.\r
\r
function compare_parity_bits(rx_bit_stream)\r
- nframes = 2;\r
+ nframes = 500;\r
\r
% init LDPC code\r
\r
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
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
\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
% 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
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}
insert_errors
fec_enc
fec_dec
+ drs232
+ drs232_ldpc
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)