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