diff options
Diffstat (limited to 'octave/fsk_lib_ldpc_tx.m')
| -rw-r--r-- | octave/fsk_lib_ldpc_tx.m | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/octave/fsk_lib_ldpc_tx.m b/octave/fsk_lib_ldpc_tx.m deleted file mode 100644 index 408ba79..0000000 --- a/octave/fsk_lib_ldpc_tx.m +++ /dev/null @@ -1,44 +0,0 @@ -% fsk_lib_ldpc_tx.m -% -% LDPC coded 4FSK modem tx, generates a 8 kHz 16 bit short real valued sample file - -function fsk_lib_ldpc_tx(filename, num_frames=10, Rs=100, coderate=0.5, EbNodB=100) - fsk_lib_ldpc; - - % set up LDPC code - init_cml(); - if coderate == 0.5 - load H_256_512_4.mat; - elseif coderate == 0.75 - load HRAa_1536_512.mat; H=HRA; - else - disp("unknown code rate"); - end - [states code_param] = fsk_lib_ldpc_init (H, Rs, Fs=8000); - n = code_param.coded_bits_per_frame; k = code_param.data_bits_per_frame; - - rand('seed',1); - data_bits = round(rand(1,code_param.data_bits_per_frame)); tx_bits = []; - for f=1:num_frames - codeword_bits = LdpcEncode(data_bits, code_param.H_rows, code_param.P_matrix); - tx_bits = [tx_bits codeword_bits]; - end - - tx = fsk_mod(states, tx_bits); - - % set up (optional) AWGN noise - EcNodB = EbNodB + 10*log10(states.rate); - EcNo = 10^(EcNodB/10); - variance = states.Fs/(states.Rs*EcNo*states.bitspersymbol); - - % note real noise - noise = sqrt(variance/2)*randn(length(tx),1); - rx = tx + noise; - - frx=fopen(filename,"wb"); fwrite(frx, states.amp_scale*rx, "short"); fclose(frx); - printf("Fs: %d Rs: %d rate %4.2f (%d,%d) EbNodB: %3.1f EcNodB: %3.1f frames transmitted: %3d\n", - Fs, Rs, coderate, n, k, EbNodB, EcNodB, num_frames); -end - - - |
