Ettus X410

Note

These presets are currently under active development and may still contain inaccuracies.

Inheritance diagram of hermespy.simulation.rf.presets.ettus.x410.X410

Implementation of a block-based radio-frequency front-end model following the datasheet of Ettus’ USRP X410 software-defined radio. It can be used within a simulation-context by assigning it as a simulated device’s rf chain model:

 1scenario = SimulationScenario(seed=42)
 2for _ in range(2):
 3
 4    # Add a new device
 5    device = scenario.new_device(
 6            carrier_frequency=cf,
 7            bandwidth=nr_bandwidth(numerology=0),
 8            oversampling_factor=3,
 9            rf=X410(
10                carrier_frequency=cf,
11                tx_gain=dB(35),
12                rx_gain=dB(10),
13            ),
14            antennas=SimulatedUniformArray(
15                SimulatedIdealAntenna(AntennaMode.DUPLEX),
16                .1,
17                [1, 1, 1],
18            ),
19        )
20
21# 3GPP Urban Macrocell channel model
22channel = UrbanMacrocells(expected_state=O2IState.LOS)
23scenario.set_channel(scenario.devices[0], scenario.devices[1], channel)
24scenario.devices[0].trajectory = StaticTrajectory(Transformation.From_Translation([0, 0, 6]))
25scenario.devices[1].trajectory = StaticTrajectory(Transformation.From_Translation([50, 50, 1.5]))
26
27# Downlink with a single NR slot
28slot = NRSlot()
29slot.channel_estimation = OrthogonalLeastSquaresChannelEstimation()
30slot.channel_equalization = OrthogonalZeroForcingChannelEqualization()
31
32link = SimplexLink(
33    selected_transmit_ports=[0],
34    selected_receive_ports=[0],
35    waveform=slot,
36)
37link.connect(scenario.devices[0], scenario.devices[1])
class X410(carrier_frequency, num_tx_channels=1, num_rx_channels=1, tx_gain=1000.0, rx_gain=1000.0, phase_noise=True, seed=None)[source]

Bases: RFChain

Model of an Ettus X410 USRP Software Defined Radio.

Parameters:
  • carrier_frequency (float) – Center frequency of the generated signal in Hz.

  • sampling_rate – Sampling rate of the generated signal in Hz.

  • num_tx_channels (int) – Number of transmit channels to be created. The actual hardware has four by default.

  • num_rx_channels (int) – Number of receive channels to be created. The actual hardware has four by default.

  • phase_noise (bool) – Whether to model the phase noise of the oscillators. Enabled by default.

  • seed (int | None) – Seed with which to initialize the block’s random state.

classmethod Deserialize(process)[source]

Deserialize an object’s state.

Objects cannot be deserialized directly, instead a Factory must be instructed to carry out the deserialization process.

Parameters:

process (DeserializationProcess) – The current stage of the deserialization process. This object is generated by the Factory and provides an interface to deserialization methods supporting multiple backends.

Return type:

X410

Returns:

The deserialized object.

serialize(process)[source]

Serialize this object’s state.

Objects cannot be serialized directly, instead a Factory must be instructed to carry out the serialization process.

Parameters:

process (SerializationProcess) – The current stage of the serialization process. This object is generated by the Factory and provides an interface to serialization methods supporting multiple backends.

Return type:

None