From 816230639bdba75cec05e4e265523c80a920329e Mon Sep 17 00:00:00 2001
From: Raymond Knopp <raymond.knopp@eurecom.fr>
Date: Thu, 22 Aug 2013 08:41:35 +0000
Subject: [PATCH] added some OCTAVE scripts for OFDM generation in
 ARCH/EXMIMO/USERSPACE/OCTAVE

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4093 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 .../ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m    | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m

diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m
new file mode 100755
index 0000000000..f477acd832
--- /dev/null
+++ b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m
@@ -0,0 +1,19 @@
+function [sig,sig_length] = OFDM_TX(num_carriers,num_zeros,prefix_length,input)
+
+% OFDM Transmitter - DC removed
+% sig is the output signal
+% length is the length of the output signal
+% num_carriers - number of sub-carriers (power of 2)
+% num_zeros - number of zeros minus 1 (DC) in output spectrum (odd)
+% prefix_length - length of cyclic prefix
+% input - input dimensions (length = number_carriers - num_zeros - 1)
+
+if (length(input) + num_zeros + 1 ~= num_carriers)
+     fprintf('error in lengths\n');
+     return;
+ end
+
+ext_input = [0 input(1:length(input)/2) zeros(1,num_zeros) input((1+length(input)/2) : length(input))];
+output_1 = ifft(ext_input);
+sig = [output_1((num_carriers - prefix_length + 1) : num_carriers) output_1]; 
+sig_length = length(sig);
-- 
GitLab