ソフトウェア無線の I/Q 補正その 2

投稿者: | 2016/03/20

Analyzing I/Q deviation by simulation.

今日は、SoftRock + PCM2902 の I/Q ずれを、シミュレーションを使って検討しています。

直交キャリア I/Q ずれの影響

まずは、直交キャリアの I/Q について、その位相差を 90度からずらしてみたり、キャリアのゲインに差をつけたりしてみました(以下、加筆訂正を参照)。これによる影響は、本来であればキャリア成分に周波数 f_c [Hz] だけが現れるのに対して、小さな -f_c [Hz] が見られるという現象として確認できました。つまり、\cos(2\pi f_c t)+j\sin(2\pi f_c t) であれば、周波数軸上で正周波数のキャリアしか見えないのに対して、\cos(2\pi f_c t)+j\sin(2\pi f_c t - \Delta\omega) の場合には、周波数軸上に f_c のキャリアに加えて小さな利得の -f_c のキャリアが出てくるということのようです。(フーリエ級数展開などすれば数式解が求まると思いますが、今回の目的には上記の結論だけで十分なので割愛します。)

さてこの影響ですが、入力の RF 信号を 2つの合成キャリアで復調するということになり、これはそれぞれのキャリアの復調結果の線形加算とはならず、復調結果に 2f_c の間隔を持った多くのイメージ(影像)が生じるという現象をもたらすようです。これも数値解析シミュレーションするとグラフが得られますが、結論としては、直交復調のベースバンド幅が f_c に比べて十分に小さければ、直交キャリアの I/Q ずれは大きな問題にはならないだろう、ということで、これも詳細は割愛します。(SofRock では、f_c は MHz 帯であり、ベースバンド出力は kHz オーダーなので問題ないということです。時間が取れたら、いずれ検証したいと思います。)

直交復調後の I/Q ずれの影響

つまり、昨日評価した SoftRock + PCM2902 の I/Q ずれは、直交キャリア I/Q の問題では説明できないということになり、復調後の問題と考えられます。

まず最初にシミュレーションとして、直交復調後の I/Q のサンプリング時刻ずれをシミュレーションしてみました。方法としては、I/Q のベースバンド信号に対して、Q 信号だけを 1サンプル未満の時間でずらして極座標上に置いてみます。これは、次のような結果となります。

sim

ここで、-0.2\pi というのは、I 信号に対して Q信号の「位相」が 0.2π 遅れていることを示します。この結果は、I/Q 軸に対して \pm 45 度の軸に対して扁平な楕円を描きます。注意点としては、サンプリング時刻遅れの絶対時間 t が問題なのではなく、位相差が問題だということです。もし 1000Hz の信号であれば π は 1/2000秒に相当しますが、500Hz の信号だと π は 1/1000秒になります。結果として、I/Q のサンプリング時刻のずれ Δt は、入力信号の周波数によって異なる扁平率の楕円を描くということになります。

もう一つ重要なことは、もし I/Q 信号の利得が同一であれば、楕円の軸が I/Q 軸に対して 45度以外の傾きを生じさせることはない、ということになります。

加筆訂正(3月29日)

いままで、受信した RF 信号を直交キャリアで複素除算するというイメージで考えていましたが、実際の実装は異なることを思い出しました。実際には、RF 信号に I と Q の直交キャリアを別々に混合し、それぞれの実部を個別に取り出しているのでした。少なくともゲインに関しては、直交キャリア I/Q のゲイン差はベースバンド I/Q のゲイン差に表れるものと予想されます。位相に関しても再考察が必要です。