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.
I wish to thank Douglas Kim, Miro Tomaska, Anthony Fuller and the many other contributors.
Hello Erik,
Is there a paper published about this problem?
There may be a link this paper?
Thanks...
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,
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
Hi, wonderful work you have done, could you share your code with us ?
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!
just LabVIEW and USRP 2920 no RefIN / PPS IQrate up to 500k - carrier frequency around 1G 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 frame 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.
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!
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,
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.
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.
Hi Yi,
I encountered the same problem as yours. Have you fixed it? If you could help, it would be lovely.
Thanks
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!
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.
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.
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
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
please consider posting your new example as another documet in the community. OFDMA is a great contribution!
Also I recommend this forum for discussions: http://forums.ni.com/t5/USRP-Software-Radio/bd-p/500
Hi Erik,
Should eveything be fine with the changes, we can share your changed solution with ofdma. Would that be ok for you?
Thanks.
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
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.
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) ??...
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.
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
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.
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
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
-
h
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
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
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
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.
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.
Thank you
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.
hi..
i want to desig live video streaming system using ofdm but i have usrp 2922 . please help with these
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
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
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
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
This is just a PHY example. You need a basic MAC to send real data over a link.
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
Hello, what kind of channel estimation is used in this example? i think its Least Square Channel Estimation but i am not sure.
Can ayone help me by telling me how to run the tx and rx files on only one usrp 2922????
I want to ask one thing. What method of channel estimation they are using?
Block based? or other.CAn anyone explain
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
why the channel reponse is always u shaped and what is the transmitted power
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