どうもノイズが多い。
製作したFMトランスミッタの音を聞いたときの印象です。
どこか処理にまずいところがあるからだろうといった想像をしていましたが、師匠からFPGAのDCM(Digital Clock Management; Xilinx社製FPGAに内蔵されていて、外部クロックから任意の周波数を作り出せるめちゃ便利な機能)の位相雑音のせいではないか?との指摘があり、確かにそれが原因である可能性が濃厚だと思っています。目的外使用というかアナログ変調品質が重視されるアプリケーションに使ってしまったのはまずかったですね。
位相雑音はスペクトラムアナライザで簡易的に測定(参考リンク;素晴らしいページです)できるわけですが、DCMのパラメータ(てい倍とか分周とか)によりだいぶ変わります。製作中のFMトランスミッタでは、12.288MHzのクリスタルオシレータをクロック源として、DCMで19倍と3分周して77.824MHzを生成しています。このクロックを元にDDSで10.7MHzのFM変調波を生成しています。
まずは、12.288MHzのクリスタルオシレータをDDSに直接接続して1/4の周波数(3.072MHz)を生成したものと、クリスタルオシレータにDCM(2てい倍と2分周;入力と同じ12.288MHz)を経由してDDSにより同じ1/4の周波数を生成して比較してみました。(位相雑音の値はキャリアから10kHz離れの値)
- 12.288MHzクリスタルオシレータ : -128dBc/Hz
- 12.288MHzクリスタルオシレータ+DCM: -116dBc/Hz
結果は、DCMを使用した方が12dBほどノイズが高いように見えます。ただし、測定に使用したスペクトラムアナライザそのものも位相雑音を持っていますから正確ではありませんが、傾向としては正しいはずです。次に肝心なFMトランスミッタ(10.7MHz)の位相雑音を測ってみます。
- FMトランスミッタの位相雑音 : -97dBc/Hz
ついでにDCMのパラメータをいろいろと変えて測定したものをグラフにプロットしてみました。すべてクロック源は12.288MHzのクリスタルオシレータです。
位相雑音の比較
一番下の◆がクリスタルオシレータ(からDDSで生成した信号)で、一番上の■がトランスミッタです。その他のMなんとかDなんとかと書いてあるところはDCMで、Mに続く数字がてい倍数、Dに続く数字が分周数を示しています。いい加減に測定したのでばらつきがありますが、同じ周波数を生成する場合でも、19てい倍、3分周のように周波数関係が複雑な方が位相雑音が高いことがわかります。
FMトランスミッタのクロックは、このDCMで「19てい倍、3分周」したものですが、それよりもFMトランスミッタ出力のほうが10dBほどさらに悪いです。ちょっと悪すぎる気がしないでもありません。
一方、雑音が低い方では-125dBc/Hz以下でグラフがカーブを描いています。これは測定に使用したスペクトラムアナライザそのものがもつ位相雑音の影響ではないかと想定しています。でもスペクトラムアナライザの位相雑音というのは、こんなに低いんですかね?もっと悪いと思っていました。
いずれにせよ、DCMを使うと使わない場合より位相雑音特性が不利になることがわかりました。さらに位相雑音が大きいとFM復調したときに、そのまま音声出力に出てきてS/N劣化という形で影響がでます。そういうわけでDCMを使わないよう設計変更をすることにしました。
クリスタルオシレータとしては、デジタルオーディオで使われる48kHzの整数倍関係で、なるべく高い周波数のものということで49.152MHzを選定しました。Connor-Winfield社のSMDタイプのものがDigi-Keyで300円ほどで入手できます。このデータシートには位相雑音の規定があり10kHz離れで-140dBc/Hzということで、これを使うとどんなものができるのかと期待しています。
0 件のコメント:
コメントを投稿