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  scenario: !<UsrpSystem>
 11
 12  Devices:
 13
 14    # First USRP
 15    - &device !<USRP>
 16
 17      ip: '192.168.189.132'
 18      port: 5555
 19      carrier_frequency: 1e9
 20      tx_gain: 20.
 21      rx_gain: 20.
 22
 23
 24  # Operators transmitting or receiving signals over the devices
 25  Operators:
 26
 27    # A single modem operating the device #0
 28    - &modem !<Modem>
 29
 30      device: *device                     # Device the modem is operating on
 31      
 32      # Configuration of the waveform emitted by this transmitter
 33      waveform: !<OFDM>
 34
 35        # Symbol modulation settings
 36        modulation_order: 2               # Modulation order, in other words 1 / subcarrier / subsymbol
 37        subcarrier_spacing: 30e3          # Spacing between the individual subcarrier center frequencies in Hz
 38        dc_suppression: False             # Do not ignore the DC component during the DFT
 39        num_subcarriers: 4096             # Number of subcarriers per communiction frame
 40        channel_estimation: !<OFDM-LS>    # Least-Squares channel estimation
 41        channel_equalization: !<OFDM-ZF>  # Zero-forcing channel equalization
 42        synchronization: !<SchmidlCox>    # Schmidl-Cox synchronization
 43
 44        # OFDM symbol resources, each resource represents one symbol's subcarrier configuration
 45        resources:
 46
 47          - !<OFDM-Resource>
 48            repetitions: 100
 49            prefix_ratio: 0.0703125
 50            elements:
 51              - !<FrameElement>
 52                type: !<ElementType> REFERENCE
 53                repetitions: 1
 54              - !<FrameElement>
 55                type: !<ElementType> DATA
 56                repetitions: 20
 57
 58          - !<OFDM-Resource>
 59            repetitions: 100
 60            prefix_ratio: 0.078125
 61            elements:
 62              - !<FrameElement>
 63                type: !<ElementType> REFERENCE
 64                repetitions: 1
 65              - !<FrameElement>
 66                type: !<ElementType> DATA
 67                repetitions: 20
 68
 69        # Frame configuration in time domain, i.e. the x-axis in the OFDM time-frequency grid
 70        structure:
 71
 72          - !<SchmidlCoxPilot> {}
 73
 74          - !<Symbol>
 75            num_repetitions: 1
 76            pattern: [1, 0, 0, 0]
 77
 78          - !<Guard>
 79            num_repetitions: 3
 80            duration: 35.677083e-6
 81
 82          - !<Symbol>
 83            num_repetitions: 1
 84            pattern: [1, 0, 0, 0]
 85
 86          - !<Guard>
 87            num_repetitions: 3
 88            duration: 35.677083e-6
 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