Receive data from PicoZed SDR hardware
Communications System Toolbox™ Support Package for Xilinx® Zynq®-Based Radio
The PicoZed SDR Receiver block is a signal source that receives data from PicoZed™ SDR hardware on the same Ethernet subnetwork. This connection enables you to simulate and develop various SDR applications.
The PicoZed SDR Receiver block outputs a matrix signal where each column is a channel of data of fixed length. The first call to this block could contain transient values, which would result in packets containing undefined data.
The following diagram shows the interaction between Simulink®, the PicoZed SDR Receiver block, and the radio hardware.
If the host is not connected to radio hardware, you can still use this block to develop a model that propagates sample time and data type information. To propagate this information, update your diagram.
The PicoZed SDR hardware supports two channels that you can use to receive data with the PicoZed SDR Receiver block. You can use both channels or only a single channel (either 1 or 2). The SDR block outputs a matrix signal where each column is a channel of data of fixed length.
You can set the Gain block parameter independently for each channel or you can apply the same setting to both channels. All other block parameter values are applied to both channels.
The first call to the PicoZed SDR Receiver block could contain transient values, which would result in packets containing undefined data.
When the PicoZed SDR Receiver block is called
during simulation, it is possible that the host did not receive any
data from the radio hardware. The data length port,
length, in conjunction with the lost samples port,
samples, can be used to indicate when valid data is present.
When the data length port contains a zero value, there is no valid
data. When this port contains a positive value, use the
length port and an enabled subsystem that is driven by the
length signal to qualify the execution part of the model.
|Port||Supported Data Types|
The output port supports the following complex data types:
When you use a
type, the complex values are scaled to the range of [-1,1]. When you
int16, the complex values are the raw 16-bit
I and Q samples from the board. The AD9361/AD9364 has a 12-bit ADC,
so these values are sign extended into a 16-bit number.
Specify the network IP address of the radio hardware as a dotted-quad expression. This parameter must match the physical IP address of the radio hardware assigned during hardware setup. See Guided Host-Radio Hardware Setup. By default, this IP address is 192.168.3.2. If you configure the radio hardware with a different IP address, update Radio IP address.
Click Info to open a window that communicates with the attached radio hardware to obtain basic radio hardware information.
Specify the source of the center frequency. Options are:
Dialog—via the block
Input port—add an
input port to the PicoZed SDR Receiver block
If you chose
Dialog for the source
of the center frequency, specify the center frequency as a double-precision,
nonnegative, finite scalar. The default is
The valid range of values for this parameter is 70 MHz–6 GHz.
AGC Slow Attack—use
this mode with signals whose power varies slowly over time.
AGC Fast Attack—use
this mode with signals with a rapidly changing power level.
gain via the block mask
Input port—add an
input port to the PicoZed SDR Receiver block to input
If you chose
Dialog as the source
of the gain, specify the gain as a 2x1 vector. Gain can be negative.
The valid range for this parameter is -4 to 71 dB. This parameter
is tunable. This parameter is enabled when Source of gain is
For a single channel, specify the value for the gain
as a scalar, for example,
For multiple channels that use the same gain value,
specify the value for the gain as a scalar, for example,
The gain is set by scalar expansion.
For multiple channels that use different gain values,
specify the values as a vector, for example,
The Nth element of the vector is applied to the Nth channel specified
Enter one of the following:
1 — Indicates that only
one channel is in use, and that channel is channel 1.
2 — Indicates that only
one channel is in use, and that channel is channel 2.
[1 2] — Indicates that both
channels are in use.
The default value is
Block parameters that are affected by the ChannelMapping value: Gain.
Specify the sampling rate as a double precision, nonnegative
scalar. The default value is
3.84 MHz. The valid
range of this parameter is 520.841 KHz–61.44 MHz.
Note: Verify that the computed rate is close enough to what you actually want by clicking Info on the block mask to synchronize the block with the radio hardware. There could be a small mismatch between desired and actual rates.
When selected, this parameter instructs the PicoZed SDR Receiver block to produce a set of contiguous frames without an overrun or underrun to the radio hardware. This setting can help you simulate models that cannot run in real time. When this parameter is selected, specify the amount of contiguous data using the Number of frames in burst parameter. By default, this option is not selected.
Specify the number of frames in contiguous burst.
This parameter is enabled when the Enable burst mode parameter is selected. The default number of frames in a burst is 20.
Specify the complex output data type as
int16. When you select
the output data type, the complex values are scaled to the range of
[-1,1]. When you select
int16, the complex values
are the raw 16-bit I and Q samples from the board. The default is
This block supports the following complex output data types:
Double-precision floating point
Single-precision floating point
16-bit signed integers
Specify a positive, scalar integer for the number of samples
per frame. Values less than 3660 can yield poor performance. The default
Select this parameter to instruct the PicoZed SDR Receiver block to output a value to indicate whether there are samples lost during host–radio hardware data transfers.
Zero indicates no data loss.
A positive number indicates that overruns or underruns occurred.
The default value is selected, which means that the port is enabled and information about dropped packets will be displayed.
This port is a useful diagnostic tool to determine real-time operation of the PicoZed SDR Receiver block. If your model is not running in real time, you can increase the decimation factor to approach or achieve real-time performance.
Select simulation method:
Code generation (default)
— Simulation starts up slower but runs faster.
Interpreted execution —
Simulation starts up faster but runs slower.
Select to enable IQ imbalance compensation. Default is selected.
Select to enable RF DC blocking filter. Default is selected.
Select to enable baseband DC blocking filter. Default is selected.
When you select this option, the Zynq data path bypasses the algorithm generated and programmed during the FPGA targeting workflow. This bypass helps with debugging system start. By default, this option is not selected.
Launch the ADI filter wizard to design a custom filter for the AD9361.
A default filter design is applied to the filter chain when you set the baseband sampling rate parameter on the receiver block. This process calculates the optimal analog filters, interpolation/decimation filters, and FIR coefficients for the AD9361 for your specified sample rate. If you need different settings, you can change these by invoking the AD9361 filter wizard.
For instructions on operating the ADI filter wizard, visit the Analog Devices website at http://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/software/filters.
When you finish with the wizard, click Apply on the receiver block mask to apply the filter settings.
For more information, see Baseband Sampling Rate and Filter Chains.
Note: To run the wizard, you must have the following products (in addition to MATLAB®):
When you set block values for center frequency, intermediate frequency, ADC, gain, and decimation, the block first checks that the values are scalar and real. If your values pass those checks, you can still provide values that are out of range for the radio hardware. In that case, the radio hardware sets the actual value as close to the specified value as possible. When you next synchronize the block with the radio hardware, the actual value is reported in a popup dialog box.