% note for reasons unknown LdpcEncode() returns garbage if we use > 0.5 rather than round()
tx_data_bits = round(rand(1,Nbits*rate));
- %test_bits_ofdm_file(tx_data_bits);
tx_bits = []; tx_symbols = [];
for f=1:Nframes
% Save test bits frame to a text file in the form of a C array
+%
+% usage:
+% ofdm_lib; test_bits_ofdm_file
+%
-function test_bits_ofdm_file(test_bits_ofdm)
+function test_bits_ofdm_file
+
+ Ts = 0.018; Tcp = 0.002; Rs = 1/Ts; bps = 2; Nc = 16; Ns = 8;
+ states = ofdm_init(bps, Rs, Tcp, Ns, Nc);
+ ofdm_load_const;
+
+ rand('seed',1);
+ test_bits_ofdm = round(rand(1,Nbitsperframe));
f=fopen("../src/test_bits_ofdm.h","wt");
fprintf(f,"/* Generated by test_bits_ofdm_file() Octave function */\n\n");
%
% Octave script for comparing Octave and C versions of OFDZM modem
-Frames = 10;
+
+Frames = 1;
more off;
ofdm_lib;
% Run a few frames of Octave version
Ts = 0.018; Tcp = 0.002; Rs = 1/Ts; bps = 2; Nc = 16; Ns = 8;
-states = ofdm_initbps, Rs, Tcp, Ns, Nc);
+states = ofdm_init(bps, Rs, Tcp, Ns, Nc);
ofdm_load_const;
rand('seed',1);
tx_bits_log = []; tx_log = [];
for f=1:Frames
- tx_bits_log = [tx_bits tx_bits];
+ tx_bits_log = [tx_bits_log tx_bits];
tx_log = [tx_log ofdm_mod(states, tx_bits)];
end
-
-% Load C version and plot Octave and C states and differences -----------------------------
-load ../build_linux/octave/tofdm_out.txt;
+% Run C version and plot Octave and C states and differences -----------------------------
+
+system('../build_linux/unittest/tofdm');
+load tofdm_out.txt;
stem_sig_and_error(1, 111, tx_bits_log_c, tx_bits_log - tx_bits_log_c, 'tx bits', [1 length(tx_bits_log) -1.5 1.5])
stem_sig_and_error(2, 211, real(tx_log_c), real(tx_log - tx_log_c), 'tx re', [1 length(tx_log_c) -1.5 1.5])