オーディオネットワークアナライザー ANA−1

おじさん工房 TOP へ


2007/07/15 世界最小?のネットワークアナライザーの試作を開始しました
2007/07/21 簡単な測定ができるところまでできました
2007/07/29 ハン窓関数の特性
2007/07/30 現状基板写真と説明


2007/07/15 世界最小?のネットワークアナライザー

オーディオ帯域のネットワークアナライザーがマイコン1個で作れると思いずーっと検討していました。 ただ、いままで使ってきたAVRではADCの性能が10ビット、最高77ksps(しかも最高のときは精度が落ちる)と低く、ADuC7026やSH2(どちらも雑誌の付録基板が余っていた)で試作してみようと思っていたところにdsPICの基板がトラ技2007年8月号に付録で付き、性能をみてみるとこの目的に十分のようでしたのでこれで試作してみることにしました。

性能は1Hz〜100KHzで80dB程度のダイナミックレンジを目標にしています。 ネットワーク測定(振幅、位相、群遅延)のほかにスペアナ、高調波だけ振幅測定し高調波歪を高速に測定するモードもつけたいと思っています。
パソコンをつかったスペアナにくらべ位相、群遅延が測れること、周波数レンジが広いことがメリット、DACが12ビットなのでダイナミックレンジが狭いことがデメリットです。


■試作した基板

ANA-1_PROTO 基板写真

基板の大きさは80mmx50mmです。 使っているのはdsPIC(トラ技付録基板)+LM358(バッファー用)だけです。 DACはR−2R、8ビットで、裏面に抵抗があります。

左上が電源端子、右上がシリアル入出力、左下が信号出力、右下が信号入力です。
ステレオプラグの手持ちが切れていたので線で直接DSubコネクターにつないでいるのが右上に見えています。



2007/07/21 簡単な測定ができるところまでできました

dsPICははじめてなのでちょっと手間取りましたが、簡単な測定ができる程度までできました。
まだDSP部分(積和演算)を使っていませんし、C言語で全部書いていますがなんとか処理は間に合っているようです。 これから機能を追加するとともにDSP部分をつかったり、一部アセンブラーで書いたりしていこうと思います。

■TWIN−Tを測定してみたところ

ANA-1_twin-T写真

Excelで、 EasyComm を使ってコントロールしてデータを取り込み測定結果をグラフ表示しました。

10Hz以下が落ちているのは入力のCで7.2HzのHPFを形成しているためです。
また高域で位相の回転が多いのはAD変換が2サンプル前のデータになる(群遅延が10μSある)ためです。



2007/07/29

今のプログラムでは低い周波数の測定時に直流(オペアンプのオフセット)の裾がかかってくるのを防ぐため窓関数をかけています。
信号生成とI軸、Q軸検出のために三角関数のテーブルを持っていますのでそれを使ってハン(ハニング)窓関数としています。

■ハン(ハニング)窓の特性

ANA-1_HANN 写真

プログラムで直流の最大値に設定して特性をとりました。 オフセットは実測で−40dBぐらいなので10Hzでぎりぎり−80dBになります。
データ数を増やすのは簡単(測定時間が増えるけど)なので裾の切れの良いガウス窓に変更することを考えていますが、その場合指数関数が必要になるので別テーブルとするとメモリーが足りなくなるかも...


エイリアス問題をどうにかしないといけないことがわかりました。

■LPFの特性

ANA-1_ALIAS 写真

高域で位相が−90°にならず、徐々に0°に戻っています。 また、振幅も−6dB/Octのカーブ(図の緑色点線)からはずれてきています。

AD変換割り込みでの実行時間は実測2.3μsなのでAD変換を200KHzではなく400KHz(規格オーバー)にすることも可能です。 とりあえずデータ取り込みは同じ時間にしてAD変換クロックだけを早くし300KHzぐらいのサンプリングにしてみようかと思います。
あとAD変換入力にLPFを追加してみます。

これでエイリアスの影響がなくなればいいのですが...



2007/07/30

回路図をアップできないので現状の写真です。

■今現在の基板

ANA-1_部品面写真 ANA-1_半田面写真

RB0〜7でR−2RのDAコンバーターを作っています。 Rは50k(100kを2個パラ)、2Rは100kです。
> DA変換した出力は5Vから47k、GNDへ100kでバイアスを与えてオペアンプのバッファーに入っています。 使っているオペアンプはNJM4560A(本当はNJM4556にしようと思っていたが間違えた)です。

次に信号入力ですが、オペアンプのバッファにコンデンサを介して入っています。 オペアンプには2.9Vのバイアス電源(抵抗分圧+コンデンサ)から1MΩでバイアスをかけています。 オペアンプの出力はAN9につながっています。 AN8にはバイアス電源がつながっています。 バイアス電圧をよむことによりDC分をキャンセルしています。 バイアスにつながっている抵抗が1Mと大きいのでバイアス電流による誤差がでるようです。

RS232CのRXですがU1ARXとU1RXを1kでつないでいます。 TXはU1TXからデジトラで反転したものです。

13.5MHzの水晶をつなげるようにしていますが、今は内蔵CR発振のままです。

しかし、トラ技のこの基板はU1ATXに変な回路でLEDをつないでいるので使いにくいです。 素直に他の汎用ポートに別々にLEDをつければいいのに...ブートローダーはポート設定を勝手に変えてるし...ブートローダーのソースが公開されていないから改造もできないし...(ブツブツ)




inserted by FC2 system