Chirp FSK LORAΒΆ

  1# In this example we simulate FSK modulated chirps (similar to LORA).
  2# A bandwidth of B = 500kHz is considered, with spreading factor SF = 8,
  3# This corresponds to M = 2^SF = 256 different initial frequencies, spaced by
  4# \delta_f = B / M = 1953.125Hz
  5# The symbol rate (chirp duration) is given by Ts = 2^SF/BW = .512 ms
  6# Data is uncoded, and the data rate is
  7# SF * BW / 2 **SF = log2(M) / Ts = 15625 kbps
  8# 
  9# Frames have 160 bits, i.e., 20 FSK symbols.
 10# 
 11# A carrier frequency of 865MHz is considered, with Rayleigh fading and a speed
 12# of 10m/s
 13
 14!<Simulation>
 15
 16# Operators transmitting or receiving signals over the devices
 17Operators:
 18
 19  # Establish a simplex link between both devices
 20  - &link !<SimplexLink>
 21
 22    # Bit encoding configuration before mapping to modulation symbols
 23    encoding: !<Encoding>
 24
 25      # Repetition encoding, repeating bit sections for redundancy
 26      - !<Repetition>
 27
 28        bit_block_size: 16        # Block size
 29        repetitions: 3            # Number of times the bits within the block get repeated
 30
 31    waveform: !<ChirpFsk>         # Configuration of the waveform emitted by this transmitter
 32
 33      chirp_bandwidth: 500e3      # Bandwidth of each dedicated chirp in Hz
 34      chirp_duration: .512e-3     # Duration each dedicated chirp in s
 35      freq_difference: 1953.125   # Frequency offset between each modulated data symbol
 36      num_data_chirps: 20         # Number of chirps generated per data frame
 37      modulation_order: 256       # Modulation order, in other words 16 bit per data chirp
 38
 39      guard_interval: 0.          # Pause between frame transmissions in seconds
 40
 41# Physical device models within the simulated scenario
 42Devices:
 43
 44   # Representation of a single (virtual) device
 45  - &transmitting_device !<SimulatedDevice>
 46    carrier_frequency: 865e6      # Center frequency of Rf-band emitted signal
 47    transmitters: [ *link ]       # Transmit DSP layers on this device
 48
 49  - &receiving_device !<SimulatedDevice>
 50    carrier_frequency: 865e6      # Center frequency of Rf-band received signal
 51    receivers: [ *link ]          # Receive DSP layers on this device
 52
 53# Channel models between devices
 54Channels:
 55  - # Rayleigh fading between on the device self-interfernce channel
 56    - *transmitting_device
 57    - *receiving_device
 58    - !<MultipathFading>
 59      delays: [ 0 ]           # Delay of the channel in seconds
 60      power_profile: [ 0 ] dB # Tap gains
 61      rice_factors: [ .inf ]
 62
 63      # Configure 3GPP standard antenna correlation models at both linked devices
 64      antenna_correlation: !<StandardCorrelation>
 65          correlation: MEDIUM
 66
 67# Performance indication evaluation configuration
 68Evaluators:
 69
 70  # Evaluate the bit errors of `link` communicating over `device_alpha`
 71  - !<BitErrorEvaluator>
 72
 73    transmitting_modem: *link
 74    receiving_modem: *link
 75    confidence: .9
 76    tolerance: .01
 77    plot_scale: log
 78
 79  # Evaluate throughput of `link` communicating over `device_alpha`
 80  - !<ThroughputEvaluator>
 81
 82    transmitting_modem: *link
 83    receiving_modem: *link
 84    confidence: 0.
 85    plot_scale: log
 86
 87
 88# Simulation parameters
 89num_samples: 1000                  # Number of samples per simulation grid section
 90min_num_samples: 50                # Minimum number of samples per simulation grid section before premature stopping
 91noise_level: !<EBN0>               # Noise is defined as the ratio between bit energy and noise power
 92  reference: *link                 # The SNR is calculated with respect to the link waveform
 93
 94plot_results: True                 # Visualize the evaluations after the simulation has finished
 95
 96
 97# Scenario parameters over which the Monte-Carlo simulation sweeps
 98Dimensions:
 99
100  noise_level: [10, 9, ..., -2] dB