USRP Hardware DriverΒΆ

  1# This example configures a set of Universal Software Defined Radios (USRPs)
  2# to establish a SISO link exchanging 10 frames of OFDM data.
  3#
  4# Operating USRP's requires additional dependencies to be installed.
  5# Make sure you ran pip install "hermes[uhd]"
  6# See https://hermespy.org/installation.html for further details.
  7
  8!<HardwareLoop>
  9
 10  # Operators transmitting or receiving signals over the devices
 11  Operators:
 12
 13    # A single modem operating the device #0
 14    - &modem !<Modem>
 15
 16      # Configuration of the waveform emitted by this transmitter
 17      waveform: !<OFDM>
 18
 19        # Symbol modulation settings
 20        modulation_order: 2               # Modulation order, in other words 1 / subcarrier / subsymbol
 21        subcarrier_spacing: 30e3          # Spacing between the individual subcarrier center frequencies in Hz
 22        dc_suppression: False             # Do not ignore the DC component during the DFT
 23        num_subcarriers: 4096             # Number of subcarriers per communiction frame
 24        channel_estimation: !<O-LS>    # Least-Squares channel estimation
 25        channel_equalization: !<O-ZF>  # Zero-forcing channel equalization
 26        synchronization: !<SchmidlCox>    # Schmidl-Cox synchronization
 27
 28        # OFDM symbol resources, each resource represents one symbol's subcarrier configuration
 29        grid_resources:
 30
 31          - !<Resource>
 32            repetitions: 100
 33            prefix_ratio: 0.0703125
 34            elements:
 35              - !<Element>
 36                type: !<ElementType> REFERENCE
 37                repetitions: 1
 38              - !<Element>
 39                type: !<ElementType> DATA
 40                repetitions: 20
 41
 42          - !<Resource>
 43            repetitions: 100
 44            prefix_ratio: 0.078125
 45            elements:
 46              - !<Element>
 47                type: !<ElementType> REFERENCE
 48                repetitions: 1
 49              - !<Element>
 50                type: !<ElementType> DATA
 51                repetitions: 20
 52
 53        # Frame configuration in time domain, i.e. the x-axis in the OFDM time-frequency grid
 54        grid_structure:
 55
 56          - !<SchmidlCoxPilot> {}
 57
 58          - !<Symbol>
 59            num_repetitions: 1
 60            pattern: [1, 0, 0, 0]
 61
 62          - !<Guard>
 63            num_repetitions: 3
 64            duration: 35.677083e-6
 65
 66          - !<Symbol>
 67            num_repetitions: 1
 68            pattern: [1, 0, 0, 0]
 69
 70          - !<Guard>
 71            num_repetitions: 3
 72            duration: 35.677083e-6
 73
 74
 75  scenario: !<UsrpSystem>
 76
 77  Devices:
 78
 79    # First USRP
 80    - !<USRP>
 81
 82      ip: '192.168.189.132'
 83      port: 5555
 84      carrier_frequency: 1e9
 85      tx_gain: 20.
 86      rx_gain: 20.
 87      transmitters: [*modem]
 88      receivers: [*modem]
 89
 90
 91  # Performance indication evaluation configuration
 92  Evaluators:
 93
 94    # Evaluate the bit errors of `modem` communicating over `device`
 95    - !<BitErrorEvaluator>
 96
 97      transmitting_modem: *modem
 98      receiving_modem: *modem
 99
100  manual_triggering: True     # Enable manual triggering, requiring the user to launch each drop
101  num_drops: 10               # Generate 10 signal drops sequentially