如何创建多项式矩阵并将其转换为系统形式

时间:2012-11-22 18:13:10

标签: matlab

我目前正在研究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位精度)。

1 个答案:

答案 0 :(得分:1)

由于系数属于GF(2),因此可以将每个多项式表示为二进制数,其中每个位代表相应的幂。例如:D 3 + D 2 = 1100 2 = 12

这允许您将H存储为一个简单的矩阵,并在将其转换为减少的行梯形形式时执行相当快速的二元运算符(例如XOR)以获得系统形式。

示例中的H矩阵如下所示:

H = [1 2 8;
     8 4 1]