OFDM Implementation

Hello All,
Does anyone know how to implement OFDM implementation by USING GNU
RADIO
COMPANION. Some one told me to use Benchmark_OFDM.py script. But i am
not
sure how this will work and how we can put this script in GNU radio
companion to make the simulation. If any one know please guide me . i
will
really appriciate that.

Regards,
Waq.

View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32380874.html
Sent from the GnuRadio mailing list archive at Nabble.com.

refer to this…

waqasme wrote:


Sumit Kr.
Research Assistant
Communication Research center
IIIT Hyderabad
India

View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32403125.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Thanks for you help sumit. i really appriciate that . i will go through
this
link and will let you know if i will have any further question or
problem
regarding the OFDM implementation.
Thanks once again.
Regards,

Waqas.

sumitstop wrote:

Does anyone know how to implement OFDM implementation by USING GNU RADIO
COMPANION. Some one told me to use Benchmark_OFDM.py script. But i am not
sure how this will work and how we can put this script in GNU radio
companion to make the simulation. If any one know please guide me . i
will really appriciate that.

Regards,
Waq.


View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32404346.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Hello sumit,
Thanks for your help i went through that document that you refered to,
and i
tried to implement that OFDM transmitter part. This document only
explain
about OFDM flow graph or transmitter. Is there any other document or
information related to OFDM modulator and demodulator (Transceiver)? i
haver
to implement OFDM transmission and reception via USRP. i will really
appriciate if you can help me that or someone else who knows how to
implement by using GNU radio companion.
Thanks in advance.
Regards,
Waq.


View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32418951.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Hi Sumit,
Thank you so much for your quick response. yah i understand what your
saying
and i am trying to understand this document but it doesnot help much .
As
you mentioned use the same Tranceiver setup and only replace OFDM blocks
with that. My question is in this basic tranciver diagram the used two
UHD’s
source and sink and in the middle they use GMSK Demodulator right. but
they
didnot use any modulator any where in the design. Now i am confused what
blocks i have to replace with OFDM blocks??? Please try to explain in
bit
detail so i can design it properly .
OR you mentioned other option that use benchmark_OFDM.py file . Somebody
already told me about this benchmark file. but its just C++ code . i am
quite new to GNU radio and dont know much about the functions how it
works.
Please let me know how to use that benchmark_OFDM.py file in order to
make
the simulation design? do i have to download the file or what? how it
works
?? let me know if you know about the process how to compile and run that
code in GNU radio.

Thanks for ur help and support really appriciate that…

Regards,

Waqas.

sumitstop wrote:

Waq.


View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32423644.html
Sent from the GnuRadio mailing list archive at Nabble.com.

And sorry to mention in the last mail that i will be suing USRP 1 .

waqasme wrote:

OR you mentioned other option that use benchmark_OFDM.py file . Somebody
Regards,

here u need to put those ofdm blocks … thats it… also go through some

(Transceiver)? i haver to implement OFDM transmission and reception via


View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32424735.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Try to understand these

here u need to put those ofdm blocks … thats it… also go through
some
modifications as written in

or else work with benchmark_ofdm.py its very easy… :slight_smile:

may i know what daughter boards do you have…

waqasme wrote:

Thanks in advance.
Regards,
Waq.


Sumit Kr.
Research Assistant
Communication Research center
IIIT Hyderabad
India

View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32419597.html
Sent from the GnuRadio mailing list archive at Nabble.com.


see carefully… it has a gmsk modulator in the bottom.u can make
the
bottom modulator part in another pc

benchmark programs are quite good to start with…
u can type benchmark_ofdm.py -h to see all the parameters u can play
with.

waqasme wrote:

used two UHD’s source and sink and in the middle they use GMSK
it works ?? let me know if you know about the process how to compile and

or else work with benchmark_ofdm.py its very easy… :slight_smile:

Hello sumit,


Sumit Kr.
Research Assistant
Communication Research center
IIIT Hyderabad
India

View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32429184.html
Sent from the GnuRadio mailing list archive at Nabble.com.

On 09/09/2011 07:26 PM, Tuan (Johnny) Ta wrote:

./benchmark_ofdm_rx.py -f 2.412G

The value of the frequency depends on the daughterboards you’re using.
If you’re using USRP1 make sure the decimation rate is 1/2 of the
interpolation rate as the ADC is 2 times faster than the DAC on the
USRP1 (or the other way around, you should chek that).
The DAC on the USRP1 runs at twice the rate of the ADC.

Watch out for the frequency offset, it killed the system for me. If
the above doesn’t work, run the transmitter on 1 USRP and usrp_fft.py
on the other. Check the center frequency of the FFT plot and manually
adjust the receiver center frequency. I used the RFX2400 boards and
the offset for me was ~ 40kHz.

Frequency offset comes up a lot on this list. It’s usually in the
context of someone who has up to this point in their DSP/SDR “career”
only been dealing with baseband signals inside a simulation
environment–and environment that doesn’t always adequately reflect
what you’ll experience in real-world systems, and real-world
channels.

RF synthesizers are only as good as their reference clock. The
reference clocks on most garden variety RF platforms are usually of
good-to-excellent quality. But they may still have residual errors
of a few 10s of PPM. So that means for every MHz of frequency,
the absolute, actual frequency could be “off” by a few 10s of Hz.
Multiply that up to typical channel frequencies for many experiments
in the modern communications domain of 1 to 3GHz or even higher, and
you can easily end up with 10s of Khz of absolute frequency offset,
and this applies to both the transmitter and receiver.

In typical cellular phone systems like LTE, and GSM and the like, the
base-station transmitters typically have really good reference clocks–
good to a few PPB–a local rubidium clock, or a GPSDO. The the
hand-helds typically have cheap local reference clocks, in order to meet
the grueling BOM cost requirements of typical consumer electronics.

What that means is that the demodulation chain needs some mechanism to
deal with frequency offset, and provide feedback to “center”
the baseband signal–either by tweaking the RX hardware, or shifting
the baseband signal in software. But the example code that’s floating
around is typically not a complete system in this regard. In
some sense, much of it was designed to work in the “fantasy” land of
the simulation environment, and may not work that well in the real
world. In some OFDM systems, for example, I understand that there
is often a “pilot” carrier against which one can correlate some kind
of sequence, and once you’ve found the most-strongly-correlated
“bin” in the OFDM “comb”, you can use that to estimate the frequency
offset relative to the transmitter. Examples and simulations may or
may not have that covered. College-level programs in DSP and SDR may
or may not discuss that important “real world” detail.

Physics, it turns out, is a harsh mistress…


Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium

As far as I know there’s no open source code for an OFDM transceiver
available. I was trying to build one half a year back but wasn’t
successful
before I had to move on to something else. The benchmark_ofdm code will
give
you a simplex OFDM system. Ie you can run the transmitter on 1 USRP and
receiver on another.

Ie. run this on 1 USRP
./benchmark_ofdm_tx.py -f 2.412G

And this on the other
./benchmark_ofdm_rx.py -f 2.412G

The value of the frequency depends on the daughterboards you’re using.
If
you’re using USRP1 make sure the decimation rate is 1/2 of the
interpolation
rate as the ADC is 2 times faster than the DAC on the USRP1 (or the
other
way around, you should chek that).

Watch out for the frequency offset, it killed the system for me. If the
above doesn’t work, run the transmitter on 1 USRP and usrp_fft.py on the
other. Check the center frequency of the FFT plot and manually adjust
the
receiver center frequency. I used the RFX2400 boards and the offset for
me
was ~ 40kHz.

Good luck,
Johnny

On Fri, Sep 9, 2011 at 2:30 AM, sumitstop

Check out some of the publications by Fred Harris. He has written some
good
stuff on sync. algorithms.

Thanks Marcus, that was very informative!

On Fri, Sep 9, 2011 at 8:00 PM, Marcus D. Leech [email protected]
wrote:

only been dealing with baseband signals inside a simulation
can easily end up with 10s of Khz of absolute frequency offset,
and this applies to both the transmitter and receiver.

Yes, the 40kHz offset that I had was within specs, because I transmitted
at
2.4GHz, so it was ~ 17 PPM.

baseband signal in software. But the example code that’s floating

In fact, the benchmark_ofdm_rx chain has ofdm_sync_pn, which is the
synchronization block aiming to correct the frequency offset. The
algorithm
is here
T. M. Schmidl and D. C. Cox, Robust Frequency and Timing Synchronization
for OFDM, IEEE Trans. on Comm., vol. 45, no. 12, pp. 1613-1621, December
1997

However, even with the synchronization block, the offset still seems to
be
too much. I was in the process of tracing the data through the sync
block
before I had to move on.

Physics, it turns out, is a harsh mistress…

But it’s def fun!

Johnny

go to the directory /usr/local/bin
there u will find benchmark files for ofdm (both transmission and
reception)
u need to type benchmark_ofdm_rx.py -h
and benchmark_ofdm_tx.py -h

these will show you the parameters u can play with.

after that u can run these files by typing ./benchmark_ofdm_tx.py -f

and ./benchmark_ofdm_rx.py -f

also there may be drift in the center frequency of the daughter board so
u
can do one thing. first run the transmitter part and see on the spectrum
analyzer for the center frequency of the ofdm signal.

after that run the receiver part with that center frequency specified in
the
arguments.
now run the transmitter again with the same frequency.

if u get timeouts then u need to play with the receiver gain and
transmitter
amplitude as well as the receiver center frequency.

u can change the bandwidth of the ofdm signal by changing the no of
occupied
tones or fft length because bw = occupied tones/ fft length

let me know ur results.

Regards

waqasme wrote:

but it says command not found? and if i type in google to search it opens
Waq.

much . As you mentioned use the same Tranceiver setup and only replace
Please let me know how to use that benchmark_OFDM.py file in order to

Thanks in advance.


Sumit Kr.
Research Assistant
Communication Research center
IIIT Hyderabad
India

View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32442181.html
Sent from the GnuRadio mailing list archive at Nabble.com.

hello sumit,
yah i have replaced the GMSK modulator and demodulator with OFDM
modulator
and demaodulator. but i coudlnot find message source , ,message sink,
probe
signal and probe avg mag 2 with only input … the one i have found has
input
and output as well for probe avg mag 2 block… i couldnot able to find
these blocks as in the simple tranceiver diagram example they used these
blocks… can you plesase guide me where to get these blocks?
Also you mentioned this command ( benchmark_ofdm.py -h ) is that a
command
or what? because i have entered this command in terminal window but it
says
command not found? and if i type in google to search it opens a c ++
code
…what i am suppose to do with that. ?? please tell me how to use this
benchmark_ofdm.py code… where to put this code to make the simulation
work.
i am very new to GNU radio so i have no idea what functions i can play
with
and how to implement this. please guide me like how to make this OFDM
tranmission and reception via USRP. iam using Linux Ubuntu maveric and
GNU
Radio companion 3.2.2 version… I really appriciate your help because i
have only few time left for my Masters project. Thanks in advance i am
looking forward to hear from you.

Regards,
Waq.

sumitstop wrote:

Demodulator right. but they didnot use any modulator any where in the
run that code in GNU radio.

Try to understand these

Thanks for your help i went through that document that you refered to,


View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32442033.html
Sent from the GnuRadio mailing list archive at Nabble.com.

You seem to be quite new to Linux, what do you intend to do for your
Master
thesis? Gnuradio is not something you can master in a couple of months.

To go to a directory, you need to use the ‘cd’ command. Ie
cd /usr/local/bin

My benchmark_ofdm code is not in /usr/local/bin so when you get to that
folder, do a ‘ls’ to see if the code is there. If not, you can run
locate benchmark_ofdm_tx.py

The results will show you where the file is in your system.

Good luck,
Johnny

Hi Sumit,
Thanks you so much for ur detailed explanation . i really appriciate
your
help.
I am following the same steps as you mentioned earlier but iam getiing
this
message when i am entering these comands in terminal. here is the
messages .

hp@ubuntu:~$ /usr/local/bin
bash: /usr/local/bin: is a directory
hp@ubuntu:~$ directory/usr/local/bin
bash: directory/usr/local/bin: No such file or directory
hp@ubuntu:~$ /usr/local/bin
bash: /usr/local/bin: is a directory
hp@ubuntu:~$ benchmark_ofdm_tx.py-h
benchmark_ofdm_tx.py-h: command not found

when i enter this comand i get this result
hp@ubuntu:~$ directory/usr/local/bin
bash: directory/usr/local/bin: No such file or directory
hp@ubuntu:~$
No such file or directory. how to access that directory? do i need to
run
some other commands before that ?
what could be the problem ? any suggestion ?

sumitstop wrote:

if u get timeouts then u need to play with the receiver gain and > > but it says command not found? and if i type in google to search it opens > Waq. >> >>>> much . As you mentioned use the same Tranceiver setup and only replace >>>> Please let me know how to use that benchmark_OFDM.py file in order to >>>> >>>>>

Thanks in advance.


View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32444101.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Thanks johnny for your response yes i am quite new to GNU Radio so just
started to learn about this software.
Ok i will play with it and let you know the results.
Thanks for your help guys…
Waq…

Tuan Ta-2 wrote:

locate benchmark_ofdm_tx.py

Thanks you so much for ur detailed explanation . i really appriciate your
bash: directory/usr/local/bin: No such file or directory
run

and benchmark_ofdm_tx.py -h
u
transmitter amplitude as well as the receiver center frequency.

hello sumit,
Also you mentioned this command ( benchmark_ofdm.py -h ) is that a
using Linux Ubuntu maveric and GNU Radio companion 3.2.2 version… I

see carefully… it has a gmsk modulator in the bottom.u can make

diagram

functions how it works.
Waqas.
through

document only explain about OFDM flow graph or transmitter. Is
Waq.



View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32444234.html
Sent from the GnuRadio mailing list archive at Nabble.com.

hello Johnny,
I tried that locate command and i have found the location of the files
.here
is the output:
hp@ubuntu:~$ cd/usr/local/bin
bash: cd/usr/local/bin: No such file or directory
hp@ubuntu:~$ ls
Desktop Downloads Music Public Templates
Documents examples.desktop Pictures rx file Videos
hp@ubuntu:~$ locate benchmark_ofdm_tx.py
/usr/share/gnuradio/examples/ofdm/benchmark_ofdm_tx.py
/usr/share/gnuradio/examples/ofdm/benchmark_ofdm_tx.pyc
hp@ubuntu:~$ locate benchmark_ofdm_rx.py
/usr/share/gnuradio/examples/ofdm/benchmark_ofdm_rx.py
/usr/share/gnuradio/examples/ofdm/benchmark_ofdm_rx.pyc
hp@ubuntu:~$ benchmark_ofdm_tx.py -h
benchmark_ofdm_tx.py: command not found
hp@ubuntu:~$ benchmark_ofdm_tx.py-h
benchmark_ofdm_tx.py-h: command not found
hp@ubuntu:~$ cd benchmark_ofdm_tx.py-h
bash: cd: benchmark_ofdm_tx.py-h: No such file or directory

I have used locate comand to find the benchmark files. its in
/usr/share…
/usr/share/gnuradio/examples/ofdm/benchmark_ofdm_tx.py
/usr/share/gnuradio/examples/ofdm/benchmark_ofdm_tx.pyc
Now as in my previous discussion with sumit, he mentioned after that
type
these comands to show the paramaters
benchmark_ofdm_tx.py-h but it says comand not found.
Am i missing something here in the command line? Please advise for
further
process…
Thanks…
Waq.

Tuan Ta-2 wrote:

locate benchmark_ofdm_tx.py

Thanks you so much for ur detailed explanation . i really appriciate your
bash: directory/usr/local/bin: No such file or directory
run

and benchmark_ofdm_tx.py -h
u
transmitter amplitude as well as the receiver center frequency.

hello sumit,
Also you mentioned this command ( benchmark_ofdm.py -h ) is that a
using Linux Ubuntu maveric and GNU Radio companion 3.2.2 version… I

see carefully… it has a gmsk modulator in the bottom.u can make

diagram

functions how it works.
Waqas.
through

document only explain about OFDM flow graph or transmitter. Is
Waq.



View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32444388.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Yes johnny for a while i need only OFDM transmitter and reciever via
USRP
for my project. I just want that this OFDM system can transmit and
receive
via USRP, that is my aim at the moment.
Thanks once again for your detailed clarification. i will try that and
let
you know the results.
Thank you so much for your help i really appriciate that.

Regards,
Waqas.

Tuan Ta-2 wrote:

./benchmark_ofdm_tx.py -f 2.412G
Watch out for the frequency offset, it killed the system for me. If the
On Fri, Sep 9, 2011 at 2:30 AM, sumitstop

much . As you mentioned use the same Tranceiver setup and only replace
already told me about this benchmark file. but its just C++ code . i
Thanks for ur help and support really appriciate that…

Thanks for your help i went through that document that you refered
Thanks in advance.

Sent from the GnuRadio mailing list archive at Nabble.com.
[email protected]
Discuss-gnuradio Info Page


View this message in context:
http://old.nabble.com/OFDM-Implementation-tp32380874p32444265.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Quick correction
cd /usr/share/gnuradio/examples/ofdm/
./benchmark_ofdm_tx.py -h