RF Signal Capture Using MATLAB and SDR
The Pluto Radio, USRP® Embedded Series Radio and Xilinx® Zynq®-Based Radio support packages from Communications Toolbox™ can be used to capture RF signals off the air using Software Defined Radio (SDR) hardware. Using a simple-to-use MATLAB® interface, any signal can be captured either into the MATLAB workspace or directly to a file for post-capture processing in MATLAB and Simulink®. First, the capture function is used to record the FM Broadcast spectrum to a file which is later read back into a DSP System Toolbox™ spectrum analyzer that highlights peaks corresponding to local broadcast stations. Next, the capture function is used to receive an LTE frame from a local antenna to the MATLAB workspace. LTE Toolbox™ is then used to decode the known physical cell identifier to verify reception.
This video shows you how to capture RF waveforms off the air using MathWorks toolboxes and SDR connectivity.
This is accomplished using the capture method, which can be used to return data from the hardware to the MATLAB workspace and/or directly to a file.
First, I will make a recording of the FM Broadcast spectrum directly to a file using any supported SDR platform; in this case, Pluto Radio.
Then I will capture an LTE frame to the MATLAB workspace for analysis with the LTE Toolbox. For this I will use an Ettus E310 as the SDR platform.
Let’s start by configuring my attached hardware and setting up an SDR receiver object to receive RF data off the air. Looking at the receiver properties, I will set the centre frequency to the middle of the FM Broadcast spectrum, and the baseband sample rate to the maximum value.
Next, I will call the “capture” method on my receiver object. I specify the capture length and units. I also specify a filename which will be used to store the captured data.
Later, I decide to process the captured data. I create a baseband file reader system object and pass it the name of my generated baseband file.
I pass the output from the baseband file reader into the spectrum analyser to render the data.
In the spectrum analyzer I can observe peaks in the frequency domain. These correspond to local FM broadcast stations.
Next, I will capture an LTE frame off the air to the MATLAB workspace.
I start by identifying a nearby antenna before setting up an SDR receiver system object in MATLAB with the appropriate centre frequency.
I then call the capture function, setting the capture length to the duration of a single LTE frame.
The capture method returns the data as an output and, once returned, I utilize LTE Toolbox to find the physical cell identifier.
The functionality I have shown here is available in three different support packages: for Xilinx Zynq-Based Radio hardware, Analog Devices Pluto Radio, and Ettus Research E310 and E312. The support packages are free downloads based on Communications Toolbox.
To find these support packages, you can search for “matlab sdr” in your favourite search engine; the MATLAB and Simulink SDR page should be at or near the top. On the page you can find out more details on the support packages shown in this video, or some of our other support.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.