OFDMは脇においておいて(コメントアウトして)、BPSKで遊んでる。
16kSPS/2048pointで1kHzを作り、16kSPS/512pointでFFTに通している。
青がスペクトル、オレンジが位相。
位相は、タイミングによっては綺麗な矩形波になるが、タイミングが悪いとヒゲが大量に出る。
FFTの結果は周波数ごとのベクトルになるので、前回のベクトルと今回のベクトルの内積を求めて、それを時系列的に並べていけば位相の変化量がわかるはず。
エンコーダー側でNRZとかで変調し、受信側で復調すれば、データを転送できるはず。
16kSPS/2kPointで変調すると、7.8125シンボル/secになる。1シンボル1bitなので、1秒1オクテット未満。クッソ遅い。でもまぁ、手始めに遊ぶくらいならちょうどいいくらいじゃないだろうか。
周波数誤差は、0.01%くらいなら問題なくデコードできそうな感じ。0.01%というとかなりの高精度だけど、PPMでいうと100PPMなので、エンコード側の水晶の誤差が25PPM、デコード側の水晶の誤差が25PPM、合わせて最大50PPM、と考えると、十分にデコードできる範囲に収まる。
よしよし、なかなかいい感じだぞ。
***
ちなみに、BPSKではなく、QPSKにするとこんな感じ。
62.5PPM(送信16.000kHz、受信16.001kHz)の誤差があるので、位相がどんどん動いていく。さすがにここまで大きく変動するとQPSKデコードは厳しそう。ただ、予め固定位相で無変調を出して位相変化量(送受信間の周波数誤差)を推定しておき、それを補正してやれば問題なさそうな気がする。
QPSKだと2bit/シンボルを伝送できるので、8シンボル/secなら秒間2オクテットを伝送できる。まぁ、焼け石に水だけど。でもまぁ、好意的に考えれば、例えばはやぶさ2やIKAROSは一番遅いときは8bpsとか16bpsで運用しているので、伝送時間さえ稼げればこの速度でも使いみちはある。
とりあえず、まずはBPSKでちゃんと伝送できるように。。。
0 件のコメント:
コメントを投稿