2002/7 Takuichi Hirano
無線通信では複数のユーザーが同時に通信できるように周波数・時間・空間・符号で分ける。複数のユーザーが同時に無線を使って他の無線端末にアクセスすることを多元接続(Multiple Access)と言い、周波数分割多元接続(FDMA, Frequency Division Multiple Access)、時間分割多元接続(TDMA, Time Division Multiple Access)、符号分割多元接続(CDMA, Code Division Multiple Access)などがある(空間分割は名前を聞かないが、携帯電話などで用いられているセルラ方式は空間分割である。さらに現在研究が進められているが、各セル内でもアダプティブアレーアンテナなどでマルチビームを構成すれば空間分割可能となる。また、偏波多重というものも考案されている)。
ここではMathematicaを用いてこれら分割方式の中で最も理解しにくいCDMAについて説明する。符号分割で送る方式はマルチユーザーの同時アクセスを意識しないときにはSS(Spread Spectrum, スペクトル拡散)通信とも言われる。CDMAという名前は携帯電話で有名である(cdmaOneなど。IMT2000(技術規格)の規格にもW-CDMA, cdma2000がある。SSは元々妨害電波波に強い無線通信を行う軍事目的で第二次世界大戦後に開発された通信方式である。最近では民生利用が活発になっている。
SSにはDS (Direct Sequence, 直接拡散)方式とFH(Frequency Hopping, 周波数ホッピング)方式の2種類がある。DS-CDMA, FH-CDMAなどと記されることが多い。DS方式を理解したらFH方式の理解は簡単なのでここではDS方式のSSの説明をする。
長さ64の+1,-1から成る擬似乱数列 randser1 を作る
擬似乱数列 randser1 を描画する
一つの乱数ビットの時間間隔を"チップ"と言う。
randser1 の離散フーリエ変換のスペクトル(強度)を示す。
randser1 の自己相関関数を描画する。
相関関数は乱数列をベクトルと見たとき、乱数列同士の内積である。そのときのパラメーターとして、何ビット(要素)ずらして内積をとるかというパラメータがある。
同じ乱数列の相関関数(自己相関関数)の計算をするとき、ずらすビット数が0のとき、つまり全然ずらさないときは0以上の値となる。なぜならば、内積の意味を考えると各成分の絶対値の自乗の和になるからである。しかし、同じ乱数列でも、1ビットでもずらして内積を取ると、+1と-1が不規則に掛けられて各成分の積のベクトルも乱数列となり、その和を計算すると0となる。なぜならばそれが乱数の性質(統計的定義)だからである。実際には乱数列の長さが有限なため、和が完全な0になることは無いが、ずらすビット数が0のときの値に比べて0に近い値となる。
下の自己相関関数のグラフは横軸がずらすビット数であり、縦軸が自己相関関数の値である。全然ずらさないときと、乱数列の1周期の整数倍ずらしたときだけ大きな値になっていることが確認できる。
擬似乱数列 randser2 を作る
擬似乱数列 randser2 を描画する
randser2 の離散フーリエ変換のスペクトル(強度)を示す。
randser1 と randser2 の相関関数を描画する。
今度は randser1 と randser2 は別の乱数列なので、全然ずらさないときの相関関数の値も0に近くなっている。
変調信号を定義し、描画する。
普通のAM,FM変調、(デジタル通信のときはASK, PSK信号)ではこの信号を直接アンテナで送受信する。
SS通信ではこの変調信号に対して更に変調をかけることになるので、このAM,FMの変調を一次変調と言う
(普通はベースバンドのデジタル波形を直接一次変調波にするようです。SSをアナログの通信で使うことは滅多に無いようです)。
一次変調波の離散フーリエ変換のスペクトル(強度)を示す。一次変調波は正弦波なので線スペクトルになっている。
DS-SS通信では次のように一次変調波に対して、それよりも十分に速く変化する乱数列(ここでは randser1)を掛けてグチャグチャにする。この変調をSS通信では二次変調と言う。
目で見て包絡線が見れる感じするので、他人に見られてしまいそうな感じがするが、次に説明するように周波数スペクトルが広がり、キャリア周波数の強度も雑音レベル程度に小さくする。そのため雑音と区別できなくなって、二次変調した乱数列を知らない人は復調できないと言ってよい(一次変調波にデジタルの+1,-1の2値を使ったら完全に判別できない)。
雑音レベルの信号を二次変調の乱数列を知っている人が復調できる理由は後で説明する。
二次変調波の離散フーリエ変換のスペクトル(強度)を示す。時間変化を急激にしているのでスペクトルが薄く広がることになる。これがSS(Spread Spectrum, スペクトル拡散)通信と言われる所以である。
二次変調波に変調したときの乱数列をタイミングを合わせて(ビットをずらさないで)掛けると一次変調波が復調できる。これは1*1=1, (-1)*(-1)=1となり、変調のときに符号をランダムに反転させた各チップの符号を元に戻せるからである。
上の復調波形の周波数スペクトルを描く。広がっていたスペクトルが元の線スペクトルに戻ってくるので、スペクトルの観点で見た場合には復調することを「逆拡散」するとも言う。
二次変調波に変調したときと違う乱数列を掛けても一次変調波は復調できない。なぜならば相関関数の所で説明した乱数の統計的性質により、乱数列で各チップの符号を反転させたが、それを戻せないからである。
このように、CDMAでは乱数列を各ユーザーの通信用の固有のものとすることによって同じ空間・時間・周波数で同時に多数のユーザーが通信可能になる。乱数列は復調するときの解読コードとなるので、乱数列を符号(Code)と呼び、符号を各ユーザーに割り当てて多元接続できるようにしたものをCDMAと言う。
符号によるチャネル間の混信の程度を見るために以前説明した(相互)相関関数が用いられる。符号間の相互相関関数はずらすビット数によらず0に(近く)なることが望ましい。自己(同じ符号同士の)相関関数は全然ビットをずらさないときは大きな値となり、それ以外少しでもビットをずらすと常に0に(近く)なることが望ましい。そういう理由で使う符号が良質であることも重要であり、擬似乱数(PN)系列にもM系列、Gold系列、PN系列とウォルシュ関数の組み合わせなどがある。
広帯域にすべての周波数に一次変調波の5%の妨害波やノイズが入っても復調できる。
ここでは randser2 をホワイトノイズとして扱っている。
全ての周波数に一次変調波と同程度のエネルギーのノイズが入るとだめ。
ただし、そんな妨害波を出すことは不可能と言っていいので、SS通信は妨害に強い通信と言える。
一次変調波のキャリア周波数とほとんど同じ周波数の次のような妨害波を考える。
上の波形のスペクトルは次のようになり、スペクトルはほとんど一次変調波のものと同じである。
一次変調波をSSで送信し、それに上の妨害波(振幅は一次変調波の80%程度)を加えてSS復調(逆拡散)すると次のようになる。かなり形が変わっているが、次に示すように周波数スペクトルはかなりよく再現できているため、BPFを通せばうまく復調できる。
上の波形のスペクトルは次のようになる。一次変調波のスペクトルに近い。
上のスペクトルをBPFを使って一次変調波のキャリア周波数付近だけ抜き出す。
それを逆フーリエ変換すると元の一次変調波とそっくりな波形が取り出せる。
まとめると、CDMAでは同じ空間・時間・周波数で符号(Code)を使うことによって複数のユーザーが多元接続可能となる。空間に電波を出すときは広帯域となるのでSS(Spread Spectrum, スペクトル拡散)通信と呼ばれる。SS通信は広帯域、狭帯域のどの雑音や妨害波に対しても強い通信である。