0

このコードで PN ジェネレーターを作成します。

h=commsrc.pn('GenPoly',gfprimdf(3), 'InitialStates',[1 0 0], ...
             'CurrentStates', [1 0 0], 'Mask',[0 0 1], 'NumBitsOut',1)

そして、これは私の PN ジェネレーターの GF 多項式です。

>> gfpretty(h.GenPoly)
                                         3
                                1 + X + X 

h の現在の状態は次のとおりです。

>> h.CurrentStates
   ans =
             1     0     0

GF 多項式を見ると、h の次の像は [0 1 0] であるべきだと思います。しかし、Matlab は h の次の状態を期待値 [0 1 0] ではなく [1 1 0] に変換します。

>> generate(h);
>> h.CurrentStates
 ans =
            1     1     0
4

1 に答える 1

0

gfprimdf(...) は生成多項式を順番に生成し、1+a1*x+a2*x^2+a3*x^3+...+x^Nこれをベクトルとして表します

[1 a_1 a_2 ... a_N-1 1]

(多項式ベキの昇順)。ただし、commsrc.pn は、このベクトルが降順であることを想定しています。

したがって、あなたの例では、commsrc.pn で実際に使用される生成多項式は 1+x^2+x^3 であり、意図した 1+x+x^3 ではありません。代わりに使用する場合

h=commsrc.pn('GenPoly',[1 0 1 1],'InitialStates',[1 0 0],'CurrentStates',[1 0 0],'Mask',[0 0 1],'NumBitsOut',1);

1 つの出力ビットを生成した後の状態は、期待される状態になります。

于 2012-08-20T10:55:45.580 に答える