Software Defined Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Streaming OFDM Transmitter and Receiver

This example provides a continuous streaming implementation of OFDM.  This example provides easy to read and easy to modify OFDM reference design based on LTE-like parameters (with regards to sub-carriers, reference symbols, and null subcarriers.

 

It includes both a simulated and USRP based implementation to aid in offline work with impairments. In the future I hope the community will add synchronization that will allow a BER calculation when using two USRP devices.

 

Capture.PNG

 

I wish to thank Douglas Kim, Miro Tomaska, Anthony Fuller and the many other contributors.

 

 

Download All
Comments
Zain89
Member
Member
on

Hello Erik,

Is there a paper published about this problem?

There may be a link this paper?

Thanks...

Zain89
Member
Member
on

Hai Mr. Erik,

Is there any rules in determining reference symbols on Data Reference Interleave VI? Particularly for other modulation (i.e. BPSK, 16-QAM and 64-QAM) ?

Thanks,

kareem.tarek
Member
Member
on

i modified this example to be more generic , added frame synchronization using IEEE short sequence i also added transmit and matched filters and  symbol timing recovery before decimating the output of the matched filter  using MT Algn to ideal samples at the end i calculated the ber at the reciever it worked perfectly , thanks alot

HustLiliAn
Member
Member
on

Hi, wonderful work you have done,  could you share your code with us ?

LiYi
NI Employee (retired)
on

Hi Kareem,

Thanks for your sharing! I just wondering what is the bench you are using to support real-time inline OFDM analysis. Such as the software platform, the PC configuration, IQ rate & sample to read settings...Could you tell me more details about the streaming.

Thanks very much!

无惧边界
kareem.tarek
Member
Member
on

just LabVIEW and USRP 2920 no RefIN / PPS IQrate up to 500k - carrier frequency around 1G Capture.JPG  frame sync came first just after RxFetch.I used the upsampled filtered ieee short sequence as a reference signal at the reciever and computed the cross correlation locating the start of every framefs.JPG then  the matched filter ,fine timing  and decimation .Frequency offset estimation from the downsampled short sequence ,channel estimation is the same done in the example i.e.LS with linear interpolation ,number of samples acquired should be at least twice the size of the TX signal to be able to locate at least one frame.

LiYi
NI Employee (retired)
on

Dear Karrem,

Thanks for your prompt reply. I have tested the RX code attached and modified it to a Producer/Consumer architecture with USRP 2920. However, I found the maximum IQ rate of 1MS/s can be reached with my laptop (Dell 6520 i7 4 core, 4G DDR) and the code can be running for more than 20 mins. But if higher rate than 1M, the error of USRP buffer overflow will show up soon or later.

So I am wondering what is the type of your PC/laptop you are using, such as the brand of the PC/laptop, the CPU, memeory...of your PC, that can make it possible to sustain inline analysis with 500K symbol rate and 8 samples per symbol (means 4MS/s IQ rate) ?

Thanks very much!

无惧边界
Zain89
Member
Member
on

Hai all,

From this program, on receiver side there is equalization process through multiply the channel estimation with the data. Wheter this use Zero Forcing (ZF) equalizer? But I don't find the channel estimation inverse.

Thanks,

kareem.tarek
Member
Member
on

Dear Liyi ,

sorry for the late reply. my Laptop ACER dual core i3 3Gb ram 64bit windows 7 nothing special and i didn't experience any buffer overflow problems.maybe you could try this  http://zone.ni.com/reference/en-XX/help/373380B-01/usrphelp/data_streaming_performance_tips/

However, i think the new driver avoid those problems.

Goodluck.

kc95
Member
Member
on

Hello,Kareem ,I am very interested in OFDM,could you share your code with us? Thanks a lot!

PedroIvo
NI Employee (retired)
on

Hi, Kareen. How are you?

Could you please share your code with us? I am currently doing a graduation project, and in my next steps I will need to implement something very similar to what you did.

If you could share your code, it will be very helpful.

Could I contact you if I need any other help? About concepts, programming, etc.

Thanks a lot.

Pedro Ivo da Cruz
Engenharia de Aplicações
Alex550
Member
Member
on

Hi Yi,

I encountered the same problem as yours. Have you fixed it? If you could help, it would be lovely.

Thanks

LiYi
NI Employee (retired)
on

Hi Alex,

I didn't yet figure out this issue. As you know USRP streaming depends on many factors and is not designed for high-performance real-time inline analysis. I recommend customer waiting for our USRP-RIO or performancing the anaylsis with GPU. They are now evaluating these 2 approches.

Thanks!

无惧边界
Alex550
Member
Member
on

Hi Yi,

Thanks for your reply. I read a thread in the NI forum, and someone experienced the same problem as we did. His solution was to re-install the OS, but I don't think it would sort the basic problem out. There must be some fundamental configurations of USRP or Labview we missed. Thanks for your advices.

fucai1116
Member
Member
on

I could'nt understand the source code of Channel Estimation Linear.vi as there is no comment inside. Could anyone explain the algorithm or point out other source related to this algorithm? Thanks.

PedroIvo
NI Employee (retired)
on

Does anybody know if there is a way to use the MT Calculate BER in the receiver? I am trying to do it but I was not able to figure out a way.

Is there a way to get the signal power in the receiver?

I wanted to plot the BER x EbN0 graph.

Thanks,

Pedro

Pedro Ivo da Cruz
Engenharia de Aplicações
eduardo.abinade
Member
Member
on

Has anyone tried to adapt this example to ofdma? Just thinking about breaking step 2, on tx side, in multiple users subcarriers and transmit on separate tx, one for each user.

In such scenario, Van de beek algorithm on rx side should estimate agnostically? I'm also trying to figure out sync issues on rx side for a, let's say, 2 or 3 users scenario.

Thanks,

Eduardo Abinader

ErikL
NI Employee (retired)
on

please consider posting your new example as another documet in the community.  OFDMA is a great contribution!

ErikL
NI Employee (retired)
on

Also I recommend this forum for discussions: http://forums.ni.com/t5/USRP-Software-Radio/bd-p/500

eduardo.abinade
Member
Member
on

Hi Erik,

Should eveything be fine with the changes, we can share your changed solution with ofdma. Would that be ok for you?

Thanks.

OsamaS
Member
Member
on

hey guys,

could any one pleas explain how does Van Dee Beek algorethim detect the cyclic prefix and correct the frequency offcet  ((step number 3 at reciever))... many thanks in advance

ErikL
NI Employee (retired)
on

Sliding correlator comparing the beginning and end of the OFDM symbol.

See the IEEE Paper: ML Estimation of Time and Frequency Offset in OFDM

System

From: OsamaS <web.community@ni.com>

To: ErikL <erik.luther@ni.com>

Date: 05/19/2015 03:46 PM

Subject: Re: - Streaming OFDM Transmitter

and Reciever

Community

Streaming OFDM Transmitter and Reciever

new comment by OsamaS View all comments on this document

hey guys,

could any one pleas explain how does Van Dee Beek algorethim detect the

cyclic prefix and correct the frequency offcet ((step number 3 at

reciever))... many thanks in advance

Reply to this email to respond to OsamaS's comment.

OsamaS
Member
Member
on

many thanks Erikl ... i have looked at this paper ... they use Maximum Likelihood algrethin to estimate the starter of the OFDM frame as we as to estimate the frequence offset of the subcarieers and correct it in order to keep the subcariers orthogonal to each other .... and the plots at the reciever shows the start of each ofdm frame also showing the value of frequency offset .......but do you know why the time domain signal is scaled below 0.7 at the  transmitter side as shown in  (step number 9) ??...

ErikL
NI Employee (retired)
on

Because it is a quadrature modulator, I and Q have a maximum associated

complex magnitude of 1. Therefore the input I and Q should not exceed

Root 2 which is rounded to 0.7

Erik

From: OsamaS <web.community@ni.com>

To: ErikL <erik.luther@ni.com>

Date: 05/22/2015 09:41 AM

Subject: Re: - Streaming OFDM Transmitter

and Reciever

Community

Streaming OFDM Transmitter and Reciever

new comment by OsamaS View all comments on this document

many thanks Erikl ... i have looked at this paper ... they use Maximum

Likelihood algrethin to estimate the starter of the OFDM frame as we as to

estimate the frequence offset of the subcarieers and correct it in order

to keep the subcariers orthogonal to each other .... and the plots at the

reciever shows the start of each ofdm frame also showing the value of

frequency offset .......but do you know why the time domain signal is

scaled below 0.7 at the transmitter side as shown in (step number 9)

??...

Reply to this email to respond to OsamaS's comment.

OsamaS
Member
Member
on

realy thanks for your respod ...i though that was related to the ouput device  limitation ..  last question from me . what is the benefit of the pilot insertion? . i dont  found  zero forcing estimation in this code  ...it seems like there is only qam  equalisation which may not need to these pilots ..... many thanks again

ErikL
NI Employee (retired)
on

Equalization is critical. In this example sub-sample time offset between

tx and rx results in a rotating constellation. the Equalizer fixes that.

In a wider frequency selective channel it would improve performance there

as well.

Erik

From: OsamaS <web.community@ni.com>

To: ErikL <erik.luther@ni.com>

Date: 05/22/2015 10:12 AM

Subject: Re: - Streaming OFDM Transmitter

and Reciever

Community

Streaming OFDM Transmitter and Reciever

new comment by OsamaS View all comments on this document

realy thanks for your respod ...i though that was related to the ouput

device limitation .. last question from me . what is the benefit of the

pilot insertion? . i dont found zero forcing estimation in this code

...it seems like there is only qam equalisation which may not need to

these pilots ..... many thanks again

Reply to this email to respond to OsamaS's comment.

OsamaS
Member
Member
on

Hey Erikl, I tried to measure the BER of the system. but i found that there are 250 bits are losed. the transmitted bits are 1250 whereas the recieved bits are 1000 bits.... is that mean the first ofdm symbol is lost or these lost bits are randomlly lost

giube
Member
Member
on

Hi all,

I re-propose the Zain89's question.

Is there any rules in determining reference symbols on Data Reference Interleave VI? Particularly for other modulation (i.e. BPSK, 16-QAM and 64-QAM)?

Or is it a random sequence, obvioulsy keeping the symobls positions in the map (0 +-0.7 +- 0.7i +-1 etc.)?

Thank you,

Giube

beatlewalrus
Member
Member
on

-

rhPro
Member
Member
on

h

hungth91
Member
Member
on

Hi ErikL

Thank you for your example.

Currently, I'm using LabVIEW 2011. Would you mind uploading a version that compatible with my LabVIEW ?

Best regards


Huu Hung Tran

rhPro
Member
Member
on

Hi ErikL

In this example you use 125 subcarrier and 256 point (I)FFT right?

then, is the spacing between the subcarriers correspond with (IQrate/124) or (IQrate/255)?

how to modify the spacing between subcarriers to a fixed number? Is it possible? I use the usrp 2922

thanks

ErikL
NI Employee (retired)
on

You are correct. The subcarrier spacing is IQ Rate / 256. The 292x

devices resample chain in the FPGA is a set of resamplers that can be

enabled or skipped. The sequence is a divide by 2, divide by 2, and then

N/M respampler. So you can't natively hit the LTE rates which are

multiples of 1.92 MHz and have a subcarrier spacing of 15kHz. So ideally

it would run at 3.84MHz / 256 = 15 kHz. You can achieve this by arbitrary

resampling from the LTE IQ Rate generated IQ file to a 5MS/s IQ rate using

functions in the modulation toolkit (this can be found in the GPS toolkit

example on the community). Note that arbitrary resampling is processor

intensive.

So, overall you can make the subcarrier spacing anything you want but for

those that are not even multiples of 100MS/s, it will be more processing

intensive on the host.

Erik

beatlewalrus
Member
Member
on

Dear ErikL,
What measures should be implemented to modify this tool and operate it with low frequencies, e.g. 1 kHz carrier frequency?

As I understand, bandwidth should be changed by changing frame size and symbol mapping. But I can't estimate proper proportion or principle to adjust them.

josephkirmani
Member
Member
on

Hi Erkil,

Can you guide me how to increase SNR and measure BER according to that particular SNR value in simulated (no HW) design.

Also in your design which channel model do you consider?

Many thanks in advance.

rhPro
Member
Member
on

Thank you

LetMeLogIn
Member
Member
on

Hello, there is 125 subcarriers, but if i change number to 130 for example, there is BER about 0,5. Do someone know, where is the problem? thank you.

Prakash17
Member
Member
on

hi..

i want to desig live video streaming system using ofdm but i have usrp 2922 . please help with these

OsamaS
Member
Member
on

Dear ErikL,


I  am working in optical  communication where, only the real and positive signal is transmitted. Therefore i modefied the above code  to suit the optical communication requirment(using ACO-OFDM). Unfortuantly i got lots of error. i am just wodering are these errors because the Van dee beek algorethim  only  used for the complex signal ?

Hope you or any one here answer me.

Thanks in advance

nitameli
Member
Member
on

Hi,

I am a newbie in labview, and I am trying to do ofdm transceiver using VST PXI 5646R. From the simulated no HW design, I noticed that only 1586 bits that is transmitted, could anyone please explain to me where the 14 bits gone? And also after transmitting this block using RFSG block, I just realized that the output bitstream was clipped, so I only received 1000 bits in the receiver (in simulated no HW =1586 bits) which will affect the loop afterward so I could only receive 250 bit in the end (in my case I only got about 0,5 in BER). Is it related with the IQ rate and bandwidth that I use? I use 10M in IQ rate and 2M in bandwidth. And also, in the BER calculation of the rx simulated, I found that the output bit stream is only 750 bits, could anyone please explain why it only gives 750 bits not 1250 bits?

Thank you in advance

Renita

ErikL
NI Employee (retired)
on

Yes, I recommend using the LFTX / LFRX daughterboard (or BasicRX / BasicTX). It gives you direct access to the ADC and DAC on the USRP device. Www.ettus.com

Erik

From: OsamaS <web.community@ni.com<mailto:web.community@ni.com>>

Reply-To: "ni-1985115029-9iy-2x-10x1@community-mail.ni.com<mailto:ni-1985115029-9iy-2x-10x1@community-mail.ni.com>" <ni-1985115029-9iy-2x-10x1@community-mail.ni.com<mailto:ni-1985115029-9iy-2x-10x1@community-mail.ni.com>>

Date: Tuesday, March 1, 2016 at 5:34 AM

To: Erik Luther <erik.luther@ni.com<mailto:erik.luther@ni.com>>

Subject: Re: - Streaming OFDM Transmitter and Receiver

NI Community<https://decibel.ni.com/content/index.jspa>

Streaming OFDM Transmitter and Receiver

new comment by OsamaS<https://decibel.ni.com/content/people/OsamaS> View all comments on this document<https://decibel.ni.com/content/docs/DOC-34781#comment-47845

FAbramo
Member
Member
on

Dear Erik,

In your opinion, is feasible modifying this OFDM modulator code for generating DAB (COFDM) modulations using standard or dedicated (developed as well) ETI files?

Could you try to develop something for DAB applications, by using a NI-USRP 2920?

It would be very interesting.

Many thanks in advance,

Felice

ErikL
NI Employee (retired)
on

This is just a PHY example. You need a basic MAC to send real data over a link.

nitameli
Member
Member
on

Thank you so much for the response. I'd like to ask, why the input in the van de Beek algorithm are substracted by 320 as the count of the loop? And also why the indices are substracted by 1 as the count of the for loop in the detector? Thanks in advance.

Regards,

Renita

LetMeLogIn
Member
Member
on

Hello, what kind of channel estimation is used in this example? i think its Least Square Channel Estimation but i am not sure.

sundeel
Member
Member
on

Can ayone help me by telling me how to run the tx and rx files on only one usrp 2922????

furqanmadni
Member
Member
on

I want to ask one thing. What method of channel estimation they are using?

Block based? or other.CAn anyone explain

love69
Member
Member
on

hello sir, im doing my graduation project in this domain so need matlab code for OFDM transmitter and receiver for reduction of PAPR using companding technique.

Regards

thank you

furqanmadni
Member
Member
on

why the channel reponse is always u shaped and what is the transmitted powerchanelllll.png

RaviSingh
Member
Member
on

Hi Erik,

I am trying to use this code to stream OFDM over FlexRIO PXIe system with 5793R and 5792R modules. Do you have any example code for FlexRIO system?

So far I am able to transmit and view the OFDM stream. However demodulating is not working.

Best regards,

RaviSingh