Skip to content
Snippets Groups Projects

Implemented a new algorithm for ldpc decoding

Merged Imported Congregate Migrate requested to merge ldpc_decoder into main

Implemented a new algorithm for ldpc decoding.

LDPC decoder algorithm implements iterative message-passing layered decoding. Algorithm involves exchanging the belief information among the variable nodes and check nodes.

Input LLRs "l" provide intrinsic information. Extrinsic information "r" generated in check node is passed to variable nodes.

Belief information is updated iteratively in two steps:

  1. Variable-to-Check step: Variable nodes transmit their belief information to the connected check nodes.
  2. Check-to-Variable step: Check nodes process the received information, update it, and send it back to the connected variable nodes.

The offset min-sum algorithm is chosen for its computational efficiency and ease of implementation while maintaining reliable decoding performance.

Note: This patch removes the parity_check, as the CRC check is performed which is mandatory.

BER rates with the new implementation are shown in the table below,

n bg mod_type rv Eb/N0 ber_before ber_after
300 2 QPSK 0 1.0 0.217548 0.019789
396 1 QPSK 0 1.0 0.211515 0.027611
1400 2 QPSK 0 1.0 0.279014 0.008802
1848 1 QPSK 0 1.0 0.251669 0.017381
4400 2 QPSK 0 1.0 0.321063 0.002338
5808 1 QPSK 0 1.0 0.253866 0.008661
10400 2 QPSK 0 1.0 0.332846 0.000411
13728 1 QPSK 0 1.0 0.254120 0.004200
Edited by Congregate Migrate

Merge request reports

Approved by

Merged by Congregate MigrateCongregate Migrate 8 months ago (Feb 28, 2025 12:14pm UTC)

Merge details

  • Changes merged into main with e9a0dfc7 (commits were squashed).
  • Deleted the source branch.

Pipeline #30007 failed

Pipeline failed for e9a0dfc7 on main

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Author Contributor

    Thanks for this merge request. The BER performance looks really good :smile:

    As well as the comments I've raised, could you expand in the merge request summary with what algorithm you've used, maybe a brief explanation of how it works and some highlights of the changes made?

    By Kevin Mooney on 2025-02-20T08:33:32

  • Congregate Migrate requested changes · Imported

    requested changes

    By Kevin Mooney on 2025-02-19T14:04:00

  • assigned to @Kevin.Mooney

    By Kevin Mooney on 2025-02-19T14:38:33

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading