Skip to main content
. 2025 Feb 28;27(3):255. doi: 10.3390/e27030255
Algorithm 1 Example real-time global iteration scheduling scheme.
  •   1:

    Input: Received signal r(t) belonging to the k-th LDPC code word in a transmitted sequence.

  •   2:

    Assumptions: k is the master time (sequence) index, bα indicates an inactive buffer, β-mode is defined.

  •   3:

    Initialization: Increment k, activate B[bα], and set Itcur=0.

    Perform the α-iteration and possibly one β-iteration per active buffer:

  •   4:

    for  b=0,1,,Nbuf1  do

  •   5:

          if B[b] is Active then

  •   6:

                  Increment B[b]’s latency counter;

  •   7:

                if b==bα then

  •   8:

                   Perform the α-iteration using r(t) and filling B[b];

  •   9:

                   Increment Itcur;  increment B[b]’s iteration counter;  deactivate B[b] if parity check passes;

  • 10:

                else if β-mode == TRUE then

  • 11:

                   Perform a β-iteration drawing from B[b] and updating B[b];

  • 12:

                   Increment Itcur;  increment B[b]’s iteration counter;  deactivate B[b] if parity check passes;

  • 13:

                end if

  • 14:

          end if

  • 15:

    end for

    Allocate Remaining β-Iterations to Oldest Buffer:

  • 16:

    for i=Itcur,,Itbgt1 do

  • 17:

          Identify bmax;

  • 18:

          if bmax==1 then

  • 19:

                Stop iterations;

  • 20:

          else

  • 21:

                Perform a β-iteration using B[bmax];

  • 22:

                Increment Itcur;  increment B[bmax]’s iteration counter;  deactivate B[bmax] if parity check passes;

  • 23:

          end if

  • 24:

    end for

    Ensure at Least One Buffer is Available for Next Time:

  • 25:

    Identify Cmax, bmax, and binactive;

  • 26:

    if Cmax==Lmax then

  • 27:

          Declare a decoder failure;

  • 28:

          Deactivate B[bmax];

  • 29:

          Set bα=bmax;

  • 30:

    else

  • 31:

          Set bα=binactive;

  • 32:

    end if

  • 33:

    Output y^[kLmax+1], which was filled somewhere above when its buffer was deactivated;