Audio Hardware Binding

  1# This example configures a desktop soundcard 
  2# to establish a SISO link exchanging 10 frames of OFDM data.
  3
  4!<HardwareLoop>
  5
  6  system: !<AudioSystem>
  7
  8  Devices:
  9
 10    - &device !<AudioDevice>
 11
 12      playback_device: 6
 13      record_device: 4
 14      playback_channels: [1]
 15      record_channels: [1]
 16      max_receive_delay: 1.
 17
 18
 19  # Operators transmitting or receiving signals over the devices
 20  Operators:
 21
 22    # A single modem operating the device #0
 23    - &modem !<Modem>
 24
 25      device: *device                     # Device the modem is operating on
 26      
 27      # Configuration of the waveform emitted by this transmitter
 28      waveform: !<OFDM>
 29
 30        # Symbol modulation settings
 31        modulation_order: 2               # Modulation order, in other words 1 / subcarrier / subsymbol
 32        subcarrier_spacing: 30e3          # Spacing between the individual subcarrier center frequencies in Hz
 33        dc_suppression: False             # Do not ignore the DC component during the DFT
 34        num_subcarriers: 4096             # Number of subcarriers per communiction frame
 35        channel_estimation: !<OFDM-LS>    # Least-Squares channel estimation
 36        channel_equalization: !<OFDM-ZF>  # Zero-forcing channel equalization
 37        synchronization: !<SchmidlCox>    # Schmidl-Cox synchronization
 38
 39        # OFDM symbol resources, each resource represents one symbol's subcarrier configuration
 40        resources:
 41
 42          - !<OFDM-Resource>
 43            repetitions: 1
 44            prefix_ratio: 0.0703125
 45            elements:
 46              - !<FrameElement>
 47                type: NULL
 48                repetitions: 600
 49              - !<FrameElement>
 50                type: !<ElementType> DATA
 51                repetitions: 2100
 52              - !<FrameElement>
 53                type: !<ElementType> NULL
 54                repetitions: 600
 55
 56          - !<OFDM-Resource>
 57            repetitions: 1
 58            prefix_ratio: 0.078125
 59            elements:
 60              - !<FrameElement>
 61                type: !<ElementType> NULL
 62                repetitions: 600
 63              - !<FrameElement>
 64                type: !<ElementType> DATA
 65                repetitions: 2100
 66              - !<FrameElement>
 67                type: !<ElementType> NULL
 68                repetitions: 600
 69
 70        # Frame configuration in time domain, i.e. the x-axis in the OFDM time-frequency grid
 71        structure:
 72
 73          - !<SchmidlCoxPilot> {}
 74
 75          - !<Symbol>
 76            num_repetitions: 1
 77            pattern: [1, 0, 0, 0]
 78
 79          - !<Guard>
 80            num_repetitions: 3
 81            duration: 35.677083e-6
 82
 83          - !<Symbol>
 84            num_repetitions: 1
 85            pattern: [1, 0, 0, 0]
 86
 87          - !<Guard>
 88            num_repetitions: 3
 89            duration: 35.677083e-6
 90
 91
 92  # Performance indication evaluation configuration
 93  Evaluators:
 94
 95    # Evaluate the bit errors of `modem` communicating over `device`
 96    - !<BitErrorEvaluator>
 97
 98      transmitting_modem: *modem
 99      receiving_modem: *modem
100
101  manual_triggering: True     # Enable manual triggering, requiring the user to launch each drop
102  num_drops: 10               # Generate 10 signal drops sequentially