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