LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

calculate SNR with USRP 2932

Solved!
Go to solution

Dear friends, 

 

I just want to calculate SNR and BER for basic psk modulation with USRP 2932. I did a lot of research here, many people asked, but nobody truly answered the question.   I am using "MT calculate EbN0.vi" , but it seems that the result from this vi is about 12db higher than the theory for given BER. (e.g compare with QPSK BER vs SNR theory plot) . In other words, the figure shifted to right 12db. Please check the picture. Someone could give me a hint ? or please give me a vi for calculate SNR?  Thank you ! Thank you!!!  

 

In the picture, you can tell that I am using the example "niUSRP EX PSK Rx" , and just add this  "MT calculate EbN0.vi"

0 Kudos
Message 1 of 8
(4,869 Views)

Hey, sebastianm127, first of all. Thank you so much for your reply. 

 

However, I actually already checked those forums. The http://forums.ni.com/t5/Software-Defined-Radio/Packet-based-Digital-Link/ta-p/3509866 provided the power of signal and noise, but if you do division, you will see that the SNR is not stable at all, in other words, the variance of snr is too large, you can not tell what is the true snr, first sec is 10dB, 2nd sec is 40 db, 3rd sec gives you -4db, something like that.....

 

Could you give me somehow more hint? Thank you!!!!  

0 Kudos
Message 3 of 8
(4,835 Views)
Solution
Accepted by topic author sunson29

Hi Sun,

 

Unfortunately, the USRP-2932 is not a calibrated device. There are quite a few possible sources of external noise that are contributing to your Eb/N0 ratio.


For example, quite often there is quite a bit of Local Oscillator feedthrough on the USRPs. This can contribute quite a bit of narrowband noise right the center frequency of your acquisition and generation, where your signal is. 

 

What this means is that your BER may be very high, but because Eb/N0 makes the assumption that constant noise density is added, the LO feedthrough might only marginally affect your Eb/N0, which will make the BER-Eb/N0 ratio vary from theoretical.

 

I gave the LO Feedhtrough as an example, as LO Feedthrough is not the only cause of non-constant noise density, as you may also run into problems with images and reference clock instability. 

 

Your next question is likely going to be: What can I do about this?

 

Unfortunately, the answer is that the USRP simply cannot perform accurate BER-Eb/N0 measurements. This is actually a very common question users have about the USRP, but the USRP is not the correct instrument for these types of measurements. 

 

The USRP was intended to be used for prototyping of wireless communications standards and formats. The USRP is not intended for highly precise noise measurements and characterization, as the performance and specifications are non-warranted. Measurement class instruments such as the PXIe-5644R or the PXIe-5668 are capable of performing these measurements as they have warranted specifications, but are much more expensive.

 

Does this help answer your question?

Regards,

Stephen

0 Kudos
Message 4 of 8
(4,801 Views)

Dear Stephen,

 

Thanks for your detail reply. 

Allow me to have some following questions.

1. If USRP cannot measure the EbN0, why there is built In function: MT calculate EbN0?  Also, there are some university already did this, I believe. But I only can see the lab pdf, I dont have the access to their vi.  

 

2. If USRP has problem of N0, how about Eb? I mean, can I use USRP to measure the Eb (maybe from MT calculate EbN0) , and N0, I will just do N0=KT. which is defined myself. ?  

 

Thank you again,  Stephen.

 

 

0 Kudos
Message 5 of 8
(4,795 Views)
Solution
Accepted by topic author sunson29

Hi Sun,

 

As Stephen mentioned -- the USRP can measure EbN0, but we cannot guarantee the accuracy of this measurement. For example, you could run the exact same code on two different USRPs (i.e. the university's lab and yours) and get different values. This same assumption holds true for just the Eb measurement -- regardless of if you measure it via our driver or calculate it yourself, this value will not be useful for your application, because the device itself is not made to perform these measurements with accuracy.

 

I think it's worth discussing what your overall goal is here -- what are you trying to use this device for, and why is this calculation relevant for you? You may be using this device outside of its intended use case.

 

Thanks,

Sunayna R.
Applications Engineering
National Instruments
0 Kudos
Message 6 of 8
(4,775 Views)

Dear sunaenae, 

 

Thanks for your reply. Thank you very much. 

My goal for USRP is, use MPSK, then implement Error correction coding (LDPC).  I already knew that there are some inbuilt functions, and also comes with some inbuilt examples without USRP.  May I ask you, do you know any source which implement with USRP ? Thank you.   

0 Kudos
Message 7 of 8
(4,769 Views)

Hi Sun,


It doesn't look like LabVIEW or the USRP driver have any built-in functions to do LDPC. The LabVIEW Communications Design Suite does, but you may have to implement them manually in standard LabVIEW. I did a quick search though, and it looks like there are other people who have been able to implement it successfully. For example, here's one: https://sites.google.com/site/zhenglu1986/implementation-of-ldpc-codes-in-labview. Obviously, we haven't written or tested this code, but it may work for you!

 

Hope that helps!

 

Best,

Sunayna R.
Applications Engineering
National Instruments
0 Kudos
Message 8 of 8
(4,738 Views)