0

TL;DR:
Why does sionna.utils.ebnodb2no take the code rate as input?

Long version:
sionna is a library for simulating communication channels, including noise simulation and error correction.
I want to fully understand all steps in sionna > 5G_Channel_Coding_Polar_vs_LDPC_Codes. Therefor I'm going through the source step by step and follow what it does and I try to figure out why. And there is one point where I'm stuck. It's here:

The System_Model has this property, which is set at init-time:

    sim_esno: bool  
        A boolean defaults to False. If true, no rate-adjustment is done for the
        SNR calculation.

This controls if the code rate is used to convert from Eb/N0 (signal to noise ratio on a bit) to N0 (noise energy). This works as documented. It's used in the below code of the call() function of System_Model, which uses sionna.utils.ebnodb2no for the conversion:

    # calculate noise variance
    if self.sim_esno:
            no = ebnodb2no(ebno_db,
                   num_bits_per_symbol=1,
                   coderate=1)
    else: 
        no = ebnodb2no(ebno_db,
                       num_bits_per_symbol=self.num_bits_per_symbol,
                       coderate=self.k/self.n)  

What I don't understand is why does it make sense to use the code rate for this conversion? The code rate is a property of the error correction code, which is something not related directly to the physics of the transmission. Instead, the error correction is only applied by the logic before/after the transmission.

The fact that it's possible to switch on or off if we want the code rate to flow into the conversion tells that there are cases when it makes sense and cases when it doesn't. But what is this difference?

Reminder: code rate r = k / n, where

  • k: number of information bits (or symbols) of the error correction code and
  • n: number of bits (or symbols) in a code word of the error correction code
Daniel S.
  • 101
  • 2
  • @downvoters: This is clearly a question where good effort has flown into. Please explain why you downvoted, so I can improve the question and next time I can formulate a better question to start with. – Daniel S. Jun 28 '23 at 10:27

0 Answers0