sdrrx

Create receiver System object for radio hardware

Description

example

rx = sdrrx(DeviceName) creates a receiver System object™ with default properties that receives data from the radio hardware specified by DeviceName. The object receives data over a USB communication connection.

The receiver System object connects to the radio hardware when you call the object. After creating a receiver radio object, use the info object function of comm.SDRRxPluto to verify host-hardware communication. The object stays connected until you call the release method.

Note

Instead of using the step method to perform the operation defined by the System object, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

rx = sdrrx(DeviceName,Name,Value) specifies additional properties using one or more Name,Value pair arguments. Unspecified properties take default values.

Examples

collapse all

Create a receiver System object for a ADALM-PLUTO radio.

rx = sdrrx('Pluto')
rx = 

  comm.SDRRxPluto with properties:

                DeviceName: 'Pluto'
                   RadioID: 'usb:0'
           CenterFrequency: 2.4000e+09
                GainSource: 'AGC Slow Attack'
            ChannelMapping: 1
        BasebandSampleRate: 1000000
            OutputDataType: 'int16'
           SamplesPerFrame: 3660
    ShowAdvancedProperties: false

Input Arguments

collapse all

Name of radio hardware, specified as a character vector. Currently, 'Pluto' is the only valid input in this support package.

Example: 'Pluto'

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: GainSource','Manual','Gain',20 sets the receiver gain to 20 dB.

Radio identification number, specified as one of the following character vectors:

  • (recommended) A device-independent index, with the prefix usb:, such as 'usb:0', 'usb:1', 'usb:2', …, indicating the first, second, third, ..., attached ADALM-PLUTO radio, respectively

  • An IP address, with the prefix ip:, such as 'ip:192.168.2.1'

  • A serial number, represented by a hexadecimal string with the prefix sn:, such as'sn:100000235523730700230031090216eaeb'

Note

When working with multiple radios, if devices are inserted or removed, the host computer assignment of USB addresses might change. Any time an SDR device is inserted or removed from a USB port, the host computer polls all USB ports and assigns or reassigns the radio addresses associated with connected devices.

When operating on Windows® keep these considerations in mind.

  • When running multiple radios on the same host in separate MATLAB® sessions, for each MATLAB session the first radio is assigned usb:0, and the ID number increments by one for subsequent radios.

  • Radios that are being used by one MATLAB are not seen by other MATLAB sessions. Use findPlutoRadio and check the reported serial number to identify the radios seen in a particular MATLAB session.

To ensure that all assigned radio identities remain static, do not connect or disconnect radios after SDR objects have been created. The best practice is to connect radios and create SDR objects in this order:

  1. Clear all SDR objects.

  2. Connect all radios.

  3. Check to confirm that the connected radios are recognized by running this command:

    findPlutoRadio

  4. Create SDR objects.

To interface with the radio hardware, the RadioID property of the radio object must match the radio ID of the radio hardware. Update the RadioID property, if necessary.

When running multiple radios on the same host, the host assigns each radio a different radio ID. When identifying the radio by USB ID, the first radio is assigned usb:0, and the ID number increments by one for subsequent radios. For example, to assign IDs to two radios connected on the same host computer, at the MATLAB command prompt, enter:

rx = sdrrx('Pluto','RadioID','usb:0'); 
tx = sdrtx('Pluto','RadioID','usb:1');

RF center frequency setting in Hz, specified as a scalar from 70.0e6 to 6.0e9.

Note

Analog Devices® qualifies the PLUTO radio over a tuning range of 325 MHz to 3.8 GHz. This support package enables you to use the PLUTO radio outside the qualified tuning range by configuring the radio to operate using the AD9364 firmware. To extend the frequency range, at the MATLAB command prompt, enter configurePlutoRadio('AD9364').

Tunable: Yes

Data Types: double

This property is read-only.

The channel mapping is always set to 1.

Gain source, specified as one of the following:

  • 'AGC Slow Attack' — For signals with slowly changing power levels

  • 'AGC Fast Attack' — For signals with rapidly changing power levels

  • 'Manual' — For setting the gain manually with the Gain property

Radio receiver gain in dB, specified as a scalar from -4 to 71.

Note

The acceptable minimum and maximum gain setting depends on the center frequency. An incompatible gain and center frequency combination returns an error.

Tunable: Yes

Dependencies

To enable this property, set GainSource to 'Manual'.

Data Types: double

Baseband sampling rate in Hz, specified as a scalar from 65105 to 61.44e6 samples per second.

Note

The actual computed value and your specified setting can have a small mismatch. To confirm that the actual computed value is close enough to your specified setting, call the info object function on the radio object.

Data Types: double

Output signal data type, specified as one of the following:

  • int16 — 16-bit signed integers

  • double — Double-precision floating point

  • single — Single-precision floating point

Number of samples per frame, specified as an even positive integer from 2 to 16,777,216. Using values less than 3660 can yield poor performance.

Option for burst mode, specified as false or true. When set to true, this property produces a set of contiguous samples without overflow. This setting can help simulate models that cannot run in real time. When you enable burst mode, specify the amount of contiguous data using the property. For more information on how to use this property, see Burst Mode.

Data Types: logical

Number of frames in a contiguous burst, specified as a strictly positive integer.

Dependencies

To enable this property, set EnableBurstMode to true.

Data Types: double

Output Arguments

collapse all

Receiver for the specified hardware, returned as a System object.

See Also

Functions

System Objects

Blocks

Introduced in R2017a