M系列

非同期系DS-CDMA方式の拡散符号によく使われるのが「M系列」である。このM系列は、シフトレジスタを使った回路で簡単に生成できる。
[image]
M系列の主な利点を挙げてみると、以下のようになる。
1. 1周期中の0と1の発生確率が一定である。必ず0が1つだけ少ない。
2. 0または1がそれぞれ連続して現れる確率が乱数とほぼ同じ。
3. 電力スペクトル分布が熱雑音と同じ


4. M系列の自己相関関数の波形は「インパルス関数」によく似ている。
5. 「プリファードペア」と呼ばれるM系列同士の相互相関値は、きわめて低い3つの値をとる。
しかし「プリファードペア」と呼ばれる符号系のパターンが増やしにくい」と言う致命的な欠点もある。符号系のパターンの数は、そのまま「同じ周波数帯を使って同時に通話できるユーザーの数」にあたるのだが、プリファードペアの数は、シフトレジスタの段数が4の倍数の時には存在せず、そのほかの場合でもせいぜい一桁である。
また、M系列を生み出すためにはシフトレジスタ回路の「タップの位置」が重要になってくるのだが、M系列を生み出すことのできるタップの位置がごく少数に限られている。タップの位置を間違えると、生成される符号の周期が短くなることもあることが知られている。
[image]
試しに32ビットのM系列を作ってみた。生成に使うシフトレジスタが6段の物を使用。タップの位置を「1段目と3段目」「2段目と5段目」に設定し、シフトレジスタの初期値をオールゼロに設定している。なお、タップの位置は必ず2カ所でなくてはならない…といったことはない。
「タップの位置:1段目と3段目」
[0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,]
「タップの位置:2段目と5段目」
[0,0,0,0,0,1,0,1,0,1,1,1,0,1,1,0,0,0,1,1,1,1,1,0,0,1,1,0,1,0,0,1,]