Software Defined Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

NI-USRP FM Multi-Channel Reciever

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:

MultiChannelDemodScreen.PNG

Comments
noymat
Member
Member
on

hello,

great application!

I wonder what I have to do to increase the IQ rate.

tank u

noy

Matt_L
NI Employee (retired)
on

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!

noymat
Member
Member
on

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

Matt_L
NI Employee (retired)
on

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.

noymat
Member
Member
on

tank u, i will try it and i'll update you

noymat
Member
Member
on

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

Midimistro
Member
Member
on

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.

M_Shaban
Member
Member
on

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

Contributors