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