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