first pass at file based tx
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Sat, 29 Apr 2017 23:56:05 +0000 (23:56 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Sat, 29 Apr 2017 23:56:05 +0000 (23:56 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@3113 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/octave/ofdm_tx.m [new file with mode: 0644]

diff --git a/codec2-dev/octave/ofdm_tx.m b/codec2-dev/octave/ofdm_tx.m
new file mode 100644 (file)
index 0000000..dee8d51
--- /dev/null
@@ -0,0 +1,29 @@
+% ofdm_tx.m
+% David Rowe April 2017
+%
+% File based ofdm tx.  Generate a file of ofdm samples, inclduing
+% optional channel simulation.
+
+
+function ofdm_tx(filename, Nsec)
+  ofdm_lib;
+  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;
+
+  % generate fixed test frame of tx bits and run OFDM modulator
+
+  Nrows = Nsec*Rs;
+  Nframes = floor((Nrows-1)/Ns);
+
+  rand('seed', 100);
+  tx_bits = rand(1,Nbitsperframe) > 0.5;
+
+  tx = [];
+  for f=1:Nframes
+    tx = [tx ofdm_mod(states, tx_bits)];
+  end
+
+  Ascale = 32000/max(real(tx));
+  ftx=fopen(filename,"wb"); fwrite(ftx, Ascale*real(tx), "short"); fclose(ftx);
+endfunction