将 Reed Solomon 代码作为非二进制 BCH 代码的 Welch-Berlekamp 算法

Welch-Berlekamp Algorithm for Reed Solomon code as nonbinary BCH code

我熟悉RS码和经典的基于综合征的解码算法。然而,我现在的任务是实现另一种解码器,即 Welch-Berlekamp 算法。在这里,底层应用程序要求不需要校正子计算(我知道基于校正子的方法在复杂性上比 Welch-Berlekamp 算法更简单)。

基本上,我知道 RS 代码有两种不同的变体。

  1. Reed Solomon 码的原始编码 方案,其中有一组固定的编码器和解码器已知的数据点,以及基于要传输的消息的多项式,未知到解码器。
  2. BCH 类型代码 其中编码器和解码器都知道的固定多项式。

对于RS码的原始变体,Welch-Berlekamp算法的实现最初对我来说似乎比较容易。这里可以根据生成矩阵和接收到的符号建立方程组。

但是,现在需要为第二个变体实现 Welch-Berlekamp 算法。我目前在这里遇到困难,我也怀疑这个变体是否可行。

如果 Welch-Berlekamp 算法也可以用于 BCH 变体,如果有人能帮助我,我将不胜感激。

此致,

拉博尔德迈耶

implement the Welch-Berlekamp algorithm for the second variant

参数不一样

变体 1 - 固定数据点集。对于 RS(n, k) 码,解码器对 n 个符号进行运算以重建用于对消息进行编码的多项式。

变体 2 - 根是原始元素 α 的连续幂的固定生成多项式,例如 (x-2) (x-4) (x-8) ...。对于 RS(n, k) 代码,解码器生成 n-k 校正子,然后对其进行运算以确定错误位置(错误定位器多项式)和错误值。


Welch-Berlekamp 需要 O(n^3) 次操作来反转矩阵。如果基于固定数据点集的解码器使用的初始和常数多项式是 pre-calculated(Wiki 文章将此多项式显示为 R[-1]),那么 Gao 的扩展欧几里得算法的时间复杂度为 O(n^2) ).

https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction