Skip to content

AD9081/2 Specific Features

Decimator and Interpolator Configuration

By default the AD9081 MATLAB interface assumes 4 coarse and 4 fine decimation and interpolations channels are configured. This is controlled at either construction time of the adi.AD9081.Rx and adi.AD9081.Tx classes or through special hidden properties. To alter the configuration, specific arguments can be passed to the constructor. These are to set properties: - num_data_channels: Defines number of complex DMA channels - num_coarse_attr_channels: Defines number of enabled CD{D/U}Cs - num_fine_attr_channels: Defines number of enabled FD{D/U}Cs

Note that these do not reconfigure the hardware since that but be done from the devicetree configuration.

Below is an example of setting the coarse decimation count to use 2 CDDCs and 2 FDDCs through the constructor.

rx = adi.AD9081.Rx(...
    'num_data_channels', 2, ...
    'num_coarse_attr_channels', 2, ...
    'num_fine_attr_channels', 2;
)
rx.uri = 'ip:analog'
data = rx();

Alternatively this configuration can be done through the properties of the created object itself:

rx = adi.AD9081.Rx();
rx.num_data_channels = 2;
rx.num_coarse_attr_channels = 2;
rx.num_fine_attr_channels = 2;
rx.uri = 'ip:analog'
data = rx();

The API is identical for the TX side in reference to the interpolators, DMA, and DDS channels.

These can be automatically determined by using the GetDataPathConfiguration method as so:

tx = adi.AD9081.Tx('uri',uri);
[cdc, fdc, dc] = tx.GetDataPathConfiguration();
tx = adi.AD9081.Tx(...
    'uri',uri,...
    'num_data_channels', dc, ...
    'num_coarse_attr_channels', cdc, ...
    'num_fine_attr_channels', fdc);
rx = adi.AD9081.Rx('uri',uri);
[cdc, fdc, dc] = rx.GetDataPathConfiguration();
rx = adi.AD9081.Rx(...
    'uri',uri,...
    'num_data_channels', dc, ...
    'num_coarse_attr_channels', cdc, ...
    'num_fine_attr_channels', fdc);