スペクトラム・アナライザの製作記事について
平成16年12月10日
デザインウェーブマガジン2005年1月号の記事、 「スペクトラム・アナライザの製作」はいかがでしたでしょうか?
このWebページでは、さまざまなサポート情報を紹介します。
コンセプト
前回や前々回のDWMの付録やトラ技の付録もそうですが、雑誌に載っているサンプルを実際に作られた方はあまり多くないのではないでしょうか? このフーリエ変換装置は実際に皆様に作っていただけることを念頭に設計し、(1)動かして面白く、(2)作るのが楽で、(3)入手の容易な部品だけで構成する、という3つをコンセプトとしています。
部品の入手
シリアルADコンバータのMCP3204は、秋月電子で購入できます。 オペアンプのLM324や、40MHzの水晶発信器も秋月電子で購入できます。
2.5Vのロジックレベルの作り方
記事では、水晶発信器やADコンバータの出力を抵抗分圧で無理やり2.5Vロジックにしています。 本来は74LVC244などの低電圧系ロジックを使ってレベル変換するのが正当な方法です。しかしながら、低電圧系ロジックは、慣れていないと購入が難しいだけでなく、また部品が小さくはんだ付けしにくいため、初心者の方には敷居が高くなってしまいます。本スペクトラム・アナライザは、誰にでも容易に作っていただけることを念頭に考え、抵抗で電圧を変換しています。 Spartan3を製品にご利用の場合は、できるかぎり正当な方法でレベル変換してください。
なお、抵抗でロジックレベルを変換する際には、次の点にご注意ください。
- 電流が多く流れる(数mAしか電流を流せないデバイスは要注意)
- 信号が遅くなり、波形が鈍る
この1と2は相反する性質ですので、抵抗値はアプリケーションに応じてカットアンドトライで決めて下さい。
なお、記事ではCLKのラインに5V水晶を接続し、220Ωを2つで分圧しています。

5Vの振幅であれば抵抗に11mA流れます。水晶発振器にとっては限界に近い電流ではないかと思われます。また、もしCLKの配線の負荷容量が30pFくらいある場合には、30pF×220Ω=6.6n秒の時定数になります。40MHzくらいの単調な信号であれば動くでしょう。
また、シリアルADコンバータの出力は2.2kΩ×2個でレベル変換していますが、これは、当該シリアルADがそれほど電流を取り出せないのと、信号が比較的遅いため、抵抗値を大きくしています。
本スペクトラム・アナライザは、XILINX社の Parallel
Cable III (互換品を含む。以下PC3と略す) またはParallel Cable IV(以下、PC4と略す)がご利用いただけます。
PC4は、内部に複雑な回路を備えたインテリジェントなJTAGケーブルです。その複雑な回路によって高速通信を実現することができるようになっていますが、PC3と互換性のある動作モードも備えているようです。すなわち、PC3と同じ方法で単純にアクセスすると、PC4は下位互換モードで動作します。
本スペクトラム・アナライザの記事ではPC4を使用していますが、PC3互換モードで動作させていますので、PC3でも当然動作いたします。なお、PC3でご利用の際に、FPGAが認識されない場合あるいは動作が不安定な場合はこちらの対策方法をご覧ください。
(12月26日
追記)
- ソフトウェア
(Windows版)Version 1.1
若干高速化しました。
(12月26日) 毎秒7.8サンプル
→毎秒 8.9サンプル サンプリング周波数10kHz時
固定小数点の乗算の件
丸め処理の方法とかがこれで正しいのか、ちょっと自信がありません。一応動作していますが、本当は符号を考慮して丸め処理をしなければならないのではないかと思います。
どうして遅いのか?
FFTの処理は決して遅くありません。遅いのは、FFTの結果を送受信するJTAG上での通信速度です。JTAG経由で通信するのをやめて、USBかPCIにすれば超高速になります。
パフォーマンスの改善
91ページの図6を見るとわかるように、バタフライ演算器の各部分は使われていない時間が多くあります。特に、ステート11は、全く使用されていません。

乗算器は3回しか乗算しない(ステート2,3,4)ので、パイプライン化すれば3〜4倍程度の速度向上が見込まれます。 余力のある方は試してください。
筆者プロフィールの訂正
私は技術士(電気電子部門)ではありません。まだ、技術士補(電気電子部門)です。二次試験は来年こそ受験します。

お問い合わせは nahitafu@nifty.comまでお願いします。 戻る
|