NI Labs

Showing results for 
Search instead for 
Did you mean: 

Welcome to NI Labs LV-FPGA RF Communications Library

Welcome to the NI Labs LV FPGA RF Communications IP Library.  This library provides a set of fixed-point RF Communications IPs for LV FPGA.  It contains LV-FPGA code for different demodulation formats, fractional resampling, Viterbi and Reed-Solomon coding.  
This library can be used with National Instruments R-Series hardware.  I would like to encourage all of you to use this library and provide feedback on its usability.  The goal is to give you a starting point so that you can adapt this library for your LV-FPGA applications.  We are also looking for your feedback on what other IP blocks you would like to see from National Instruments

Message Edited by Support on 08-01-2008 02:57 PM
Message 1 of 17
This library also requires Modulatioin Toolkit 4.1 in order to run the examples.  Examples use Modulation Toolkit to create simulation signals for testing performance of different demodulators
0 Kudos
Message 2 of 17
Does anyone know where I can find information about the filtering characteristics of the IQ Fractional Resampler that comes with the RF Communications Library. I am working on a project that uses this resampler multiple times and I think the filtering that goes on inside the block could be distorting the spectrum of my signal. Thanks.
0 Kudos
Message 3 of 17

You can find the filter spec mentioned in the soecification doc that comes along with the installer.

The IQ Fractional Resampler has an issue with handling the "ready for output" signal and hence you might be getting bad signals. This is being fixed and will be on NI-labs very soon.


See screenshot to make changes on your own to make it work.

Create a copy of the following VI and rename it to a suitable name

..\vi.lib\addons\_RF Fixed Point\M-PSK Demodulators\common\niFPGARFv2 Demodulator FIFO U32[256].vi


Add this VI to the IQ Fractional Resampler code and connect the terminals as shown in the screenshot.


Message 4 of 17

I don't know much about Reed Solomon, but it looks like the function you have wouldn't work for CCSDS packets. Do you have plans to provide Reed Solomon decoders/encoders for CCSDS or maybe a VI that can do generic Reed Solomon? CCSDS is the standard for satellite telemetry used by most non-military satellites. Having CCSDS Reed Solomon support would allow us to get rid of some very overpriced boxes.





CCSDS Summary of Concept

TM Synchronization and Channel Coding

0 Kudos
Message 5 of 17

Hi Pat,

Yes, you are right that the RS encoder/decoder in the library is not generic. We would definitely look into developing CCSDS specific code. May I know what hardware are you using or planning to use as target?


Best Regards,


0 Kudos
Message 6 of 17

We don't have hardware right now. We're still in the info gathering stage. I can tell you it would most likely be one of the Virtex-5 cRIO chassis.The complete system would have to do the following:


R-S decoding/encoding

Viterbi decoding, convolution encoding

NRZ-M/NRZ-L conversion

Frame Sync (with ability to detect signal inversion)

AES encryption/decryption


We have a site license for a FIPS certified AES IP core, Frame Sync & NRZ is something we could do ourselves if VIs don't exist. Convolution encoding isn't that difficult. Your Viterbi looks like it would work. It is the R-S that worries me. We could buy an IP core to do the work, but this project is price sensitive.



0 Kudos
Message 7 of 17



I am also thinking of using Reed Solomon decoder for CCSDS. Can I modify the code to make it work for CCSDS? Can you please provide some detail information of the working of current decoder?

0 Kudos
Message 8 of 17

Hi Alann,

CCDS seems to have more than one Reed Solomon configuration. Can you let me know which configuration do you want to implement?

Changing it manually might be huge task. The following material will be helpful if you want to try building the code on your own


Hope this helps


0 Kudos
Message 9 of 17

Hey Vinay,


Thanks for your reply. I know it would be difficult to modify the existing IP for every configuration. What about just making it work on different field generator polynomial?


I was looking at the code and i could not understand the implementation of Galois field multipliers. Can you please tell what method is being used here?

0 Kudos
Message 10 of 17