Overview
This example demonstrates the ability of the NI-USRP to demodulate multiple FM signals across a bandwidth of several MHz (essentially, an FM channelizer). Different stations can be switched to without stopping to re-tune to a new center frequency since they are acquired simultaneously.
Description
This multi-channel FM reciever/channelizer works by taking a wider range of bandwidth (the default is set to 5MHz here, to maximize compatibility with various setups) during the acquisition. This data set is then passed using a queue structure to a processing loop that will re-center the acquired spectrum based on the center frequencies given for each FM station, downsample each station to the bandwidth of an FM signal (about 200kHz), and then demodulate to retrieve the audio signal at each station.
The user can select which of the acquired stations to play over the computer's audio, though the other audio signals acquired will still appear in the "Audio Channels" indicator to demonstrate that they are being simultaneously acquired. Though possible with this example, it wouldn't be very productive to try to play audio from all of the stations at once. This example is intended to serve more as a proof of concept for applications where processing multiple demodulated signals in parallel is desired.
To run, simply open the project attached, and run the MultiChannelDemod VI. Set the desired Center Frequency, and note that the Channels of Interest will need to be within +/- half of the I/Q rate from the Center Frequency, to meet bandwidth requirements.
Below is a screenshot of the program in action, with a few radio stations playing that are local to Austin, Texas:
hello,
great application!
I wonder what I have to do to increase the IQ rate.
tank u
noy
Hey noy,
The IQ rate is adjustable from the front panel, but the actual IQ rate you'll be able to get varies from setup to setup. In my testing, I used the USRP-2920 and found it to be limited to around ~5-7MS/s when directly connected over ethernet. You may be able to get better rates depending on your system's processor and/or ethernet hardware. I tried to optimize the code as much as possible, but the fact that we're doing a lot of processing means it's hard to get close to the theoretical 20MS/s IQ the 2920 offers.
Anyone testing this with a USRP-RIO will probably see much improved performance due to the fact that it uses a PCIe x4 connection, rather than Ethernet.
Hope this is helpful!
I understand, recently I have order USRP-RIO and I will test it! will it be more effective to do the proccessing on the FPGA?
tank you!
noy
The application hasn't been optimized for FPGA, but it's certainly possible to take this same concept and translate it, and make it even more efficient. But just by running this code on the USRP RIO, we should see some performance gains by the fact that we're using a PCIe connection.
tank u, i will try it and i'll update you
hi,
I have tried to run your app on usrp 2950R with pcie*4.
the app is running, however there is a distortion at the audio signal.
when i tried simple modulated sinus i saw a distortion at a specific dot on the x axis.
i have tried to change the number of samples paramter and it sometimes helped, i didnt find it Methodically. i think there is a connection between the desirable sample rate and the number of sample.
do you have any idea?
tank you,
noy
The above version is out of date. They updated the lvsound.llb. I was able to use the replacement and the app works, however I get no response from the soundcard. I will provide the updated version in my next comment and would like your guys input as to what I am doing wrong.
hello everyone
this is multi channel reciever how can i sweep frequency range
to be clear
i want to input start and stop frequency and monitor range of frequencies between start and stop On SPECTRUM
thank you for ur Help