Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
569 views

Introduction To RTL-SDR Using MATLAB PDF

This document introduces RTL-SDR hardware and software using MATLAB/Simulink. It describes the key components and specifications of RTL-SDR including the Rafael Micro R820T flexible RF front end and Realtek RTL2832U ADC. It discusses setting up and using the RTL-SDR Receiver block in Simulink, such as specifying frequency, sampling rate, and gain. Examples are provided to receive and analyze RF signals from an FM radio station using Simulink flowgraphs and the getRawData_RTLSDR MATLAB function.

Uploaded by

Ygb Reda
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
569 views

Introduction To RTL-SDR Using MATLAB PDF

This document introduces RTL-SDR hardware and software using MATLAB/Simulink. It describes the key components and specifications of RTL-SDR including the Rafael Micro R820T flexible RF front end and Realtek RTL2832U ADC. It discusses setting up and using the RTL-SDR Receiver block in Simulink, such as specifying frequency, sampling rate, and gain. Examples are provided to receive and analyze RF signals from an FM radio station using Simulink flowgraphs and the getRawData_RTLSDR MATLAB function.

Uploaded by

Ygb Reda
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Introduction to RTL-SDR using

MATLAB/Simulink
EE423 Applications of Digital Signal Processing
Dr. Prust
4/14/2015

RTL-SDR Hardware

RTL-SDR Hardware

Rafael Micro R820T


(flexible RF front end)

Realtek RTL2832U
(ADC, I/Q Demod, USB data pump)

RTL-SDR Key Specs


Frequency range: 24 MHz 1766 MHz
Gain Settings:
Automatic Gain Control (AGC)
Manual Gain Settings: 0dB 49.6dB (29 settings)

8-bit I/Q samples (complex baseband)


delivered to host PC over USB

RTL-SDR Key Specs


Sample Rates:
Low speed: 225001 to 300000
High speed: 900001 to 3200000
Note: Sample rates above 2.4MSPS tend to drop
samples

Output data is complex baseband


Can choose int16 (raw I/Q samples), or
single/double (normalized to [-1,+1]) types

RTL-SDR in Matlab
SDRRTLReceiver system object
Specify radio parameters (e.g., fc, fs, gain)
View parameter settings and status
Receive data
% Create receiver and spectrum analyzer System objects
hRadio = comm.SDRRTLReceiver(
'CenterFrequency', 91.7e6, ...
'EnableTunerAGC', true, ...
'SampleRate', 1e6, ...
'OutputDataType', 'double');

RTL-SDR in Simulink
RTL-SDR Receiver block

Example flowgraph
in Simulink

Block Parameters

Block Parameters

Spectrum Analyzer Example


Open: sdrrSpectralAnalysisExample

Play Time
Some items to investigate:
Tuner gain setting
Relationship between sampling rate and BW
View some other FM radio stations
Tune to your favorite, OR do a web search to find local stations

Consider the theory:


Baseband spectra are NOT conjugate symmetric, therefore
time domain signals must be complex
Carsons Rule

FM Receiver (Mono)
Open: sdrrFMMonoExample

View Demodulated Waveform


Double-click FM Receiver block
In Simulink Library Browser, select
DSP System Toolbox
Sinks

Drag Spectrum Analyzer block to model


Connect it to output of FM Demodulator
Set RTL-SDR block to FM station (e.g. 91.7e6)
Run

Back to MATLAB
Download getRawData_RTLSDR.m
function [ data, t, infoRTLSDR] = getRawData_RTLSDR( freq, gain, fs, duration )
% function [ data, t, infoRTLSDR] = getRawData_RTLSDR( freq, gain, fs, duration )
%
% This function reads complex envelope data from the NooElec R820T SDR
% and returns the raw data to the Matlab workspace
%
% PARAMETERS:
% freq is the carrier frequency (in Hz)
% gain is the reciever gain (in dB)
% fs is the sampling rate (in Hz)
% duration is the record time (in seconds)
%
% RETURN VALUES:
% data is the vector of raw data samples
% t is the vector of time samples
% info is the data structure providing actual RTL-SDR settings for the
% recording

Example:
>>
>>
>>
>>

[data, t, infoR] = getRawData_RTLSDR(91.7e6,30,240e3,1);


plot(t,real(data),b)
hold on;
plot(t,imag(data),g)

You might also like