OFDM (直交周波数分割多重方式, Orthogonal Frequency-Division Multiplexing)信号をLTspiceで取り扱うのは簡単ではありません。
ここではベースバンドのOFDM信号をエクセルで作成し、PWL波としてLTspiceに取り込んだ後に、搬送波にOFDM信号を乗せて、受信後にOFDM復調までLTspiceの機能だけで処理してみます。但し、OFDM信号についての詳細は省略します。
ベースバンドのOFDM信号としては
①キャリアスペーシング 100Hz(信号長10ms)
②サブキャリア本数 24本(100Hz、200Hz、・・・・、2.4KHz)
③1シンボル(10ms)を1024サンプルで構成
④ガードインターバルを25%(2.5ms)
⑤一次変調はQPSK
⑥搬送波は100Hzの整数倍に設定
この条件でOFDM波をエクセルで作成します。私の場合、ランダムなQPSK、24本をIFFTしてOFDM波を作成しました。同様にしてこのQPSKを90°シフトした波形も作ります。送信波形にするにはプリフィックス波形を25%先頭にコピーするので12.5ms(1280サンプル)のデータが2種類できます。これらをcsv形式で時間と波形データの組合せで、PWLファイルとして作成します。
次に、OFDMの復調ですが、LTspiceのFFT機能を使うことにより実現できます。ここではFFT演算区間を2.5ms~12.5ms(プリフィックス部分を削除)に設定して行います。
真ん中のグラフでは200KHzに送信波形が見えていますが、拡大しても平坦なOFDM波形が確認できます。但し、今回の条件では搬送波が100Hzの整数倍でなかったり、99MHz以上だとFFTの性能制限で平坦にはなりませんでしたが、正しく復調はされました。
次にOFDMを実際にデータ復調してみます。復調するには「.four」コマンドで振幅と位相を求めます。回路図のように設定すると「基本波100Hz、高調波は24倍まで、最後の1周期分のFFT」を計算してくれます。結果はSPICE Error logに書き出されます。
「Fourier Component」と「Phase」に結果が出てきますが、今回はQPSKなので「Phase」だけが必要です。ofdm_cosとdemodの位相はほぼ一致して復調できていることが確認できます。
因みにQPSKは±45°、±135°の4値を取りますが、結果と一致しています。
このlogファイルはエクセルでcsvデータとして読み取れますが、少し意地悪されていて読み取ったままではデータ処理できません。そこで以下の処理をしてください。
①数字の前後に半角スペースが入っているのでこのスペースをすべてのセルで「置換」処理でをしてすべて削除
②位相セルの最後尾に「-」が付加されているので、例としてセル番地がJ4とした場合ですが、「=VALUE(LEFT(J4,LEN(J4)-1))」で削除
これで数値データとしていろいろ確認することができるようになります。
LTspiceも使い方次第で色々と楽しめます。そこでLTspiceだけでデジタル変復調の基礎学習ができる記事を『ここ』で書いてみました。ページ数が多く有料の記事になってしまいますが、デジタル変復調の動作が理解できるようにLTspiceの回路図も添付してあるので直ぐに使えると思います。
「note.com」はブログと違ってファイルをアップロードできるので、こういうマニュアル本を書きやすい場所ですね。