我目前正在研究Matlab中的卷积码。描述这种代码的一种方法是通过其奇偶校验矩阵H,其例如看起来像对于R = b / c = 2/3代码的情况,像这样:
[ 1 D D^3 ]
[ D^3 D^2 1 ]
我想将此矩阵转换为系统形式,即第一个b x b列应形成单位矩阵。对于上面的例子,这将是:
[ 1 0 ? ]
[ 0 1 ? ]
我的问题是如何才能最方便地在Matlab 中表示这样一个矩阵,其中每个条目都是多项式的?我在想一个系数向量矩阵,但这似乎有点笨拙。目前,我无法找到解决此问题的最佳方法,而不会产生不必要的复杂性。
进一步评论:
系数来自GF(2),因此所有计算均为模2,即1 + 1 = 0,但在回答此问题后,这不应成问题。
关于这个主题的一般提示和陷阱将受到高度赞赏:-)
EitanT回答的问题,对多项式程度有一些限制(最多64位,由于64位精度)。
答案 0 :(得分:1)
由于系数属于GF(2),因此可以将每个多项式表示为二进制数,其中每个位代表相应的幂。例如:D 3 + D 2 = 1100 2 = 12
这允许您将H
存储为一个简单的矩阵,并在将其转换为减少的行梯形形式时执行相当快速的二元运算符(例如XOR)以获得系统形式。
示例中的H
矩阵如下所示:
H = [1 2 8;
8 4 1]