問題を特定するために少しソフトウェアを改造して、I信号とQ信号を独立に波形表示してみた。
I信号とQ信号の差が大きすぎることが判明。
SDRハードウェアの配線をチェックし、また、出力そのものをオシロスコープで確認してみたが大きな差はなさそうなことを確認。
SDRのハードウェアを外して、FMラジオのライン出力を繋いでみたら、緑の信号が異常であることが判った。 原因は、ソフトウェアにあることは間違いない。
というわけで、ソフトを確認したら1バイトづつ送られてくるQ信号データの上位ビットと下位ビットを入れ替えていたことが判明。 修正したら、以下のような波形になった。
一番大きな信号は、周波数を変化させると予想通りに変化することが確認できた。 負の領域にも信号があるが、これは、I信号とQ信号の位相差が正確に90度でないことや振幅がそろっていないことによって抑制効果が悪いためと思われる。 あと、やたらとノイズが多い。 その他出ている信号は、今のところ原因不明。 信号源のスプリアスの可能性もあるので、もう少し調査してみる必要がある。
そんな訳で、一応想定通りの動作にはなったけど、まだまだ解決すべき問題はたくさんあるので、ゴールがまた少し遠のいた気がする。 先は長いなぁ..。