オーディオクラフト工房(234)

更新日:2018年3月8日


FPGA(MAX10)でオーディオ関連機器を作ろう(その5)
久しぶりの登場となりましたが今回は具体的な信号レベル測定について説明いたします。PC側のソフトも改良して使いやすくしました。趣味のオーディオ帯域には充分実用になると思います。
前回までの記事はこちらを参照下さい。
http://nonchansoft.my.coocan.jp/audio/max10step4.htm
その完成した姿はこのようになっています。
(FPGA・MAX10を使用したオーディオ関連機器)
さてそれらの機能については次のようになっています。
今回は具体的な回路を用いて周波数特性測定について説明します。
(前面パネルの操作ボタンなどの配置)
今更ですが、私の過去の記事をみても全体の接続が判り難かったように思いました。そこで全体的な接続の構成を記します。
(周波数測定の接続の構成)
測定器で計測されたデータはシリアルデータで出力します。その説明は過去の記事を見て下さい。そのままインターフェイス経由でPCに接続するとPCのGNDと測定器のGNDがつながってしまい測定器に悪影響を与えます。そこでシリアルデータはアイソレータで絶縁しています。そうすることで測定器のGNDとPCのGNDは接続されないことになります。アイソレータ内部では光接続しています。これも過去の記事を参照して下さい。今回PC側のアプリを改造したので、インターフェイスから出力する信号のフォーマットを少し変えることにします。
(インターフェイス回路)
PICのプログラムを書き換えます。信号のフォーマットを次のように変えました。
(PCへ送り込むデータフォーマット)
今までは周波数と測定レベルの間にTABを入れていたのですが、少し都合が悪いのでカンマに変更します。新しいプログラムソースを置きましたので書き換えて下さい。
PICの新しいプログラムソースはこちらへ
今回具体的な回路としてバンドパスフィルタを用意しました。
(バンドパスフィルタの回路)
見て頂くと判ると思いますが簡単な回路です。ブレッドボードに組み立てました。その前にLTspiceで確認をしておきましょう。回路図はクリックすると大きく見れます。
(バンドパスフィルタのLTspice結果)
以前に作ったスペクトル・アナライザーの「1.25kHz」の定数を回路に設定しています。LTspiceの結果も「1.228kHz」とほぼ一致しています。
実際の測定を行います。波形信号発生機能の「SIGNAL」ボタンが出力ON/OFFスイッチです。このスイッチを長押しすることで正弦波スイープになります。20Hzから740kHzまでポイント的に1秒弱の正弦波を出力し自動のタイミングで信号レベルの測定を行います。最初はスルーの状態での特性を測定します。これは測定回路を通さずに測定器の出力を直接入力に入れています。
(スルー時の周波数特性)
PCアプリはVBで作成しています。前回までは一旦VBで受けてその結果をコピー&ペーストでエクセルに貼り付けてグラフを作成していましたが、今回から直接VBだけでグラフ化出来るようにしました。Chartコントロールを使っています。マスターするまで結構苦労しましたが、コツさえつかめば面白いです。
スルーの周波数特性としては100kHzまではほぼフラットですが、その後徐々に下がっていきます。これは測定器出力のローパスフィルタの影響です。オーディオ帯域の測定には問題ないと思います。
(拡大表示)
Chartコントロールを使用したことで、縦軸・横軸の変更が楽になりました。一旦全ての周波数帯でデータを取り込んだ後、縦軸・横軸のMinとMaxを変えて必要な部分の表示が簡単に出来ます。今回も4種類のデータを取り込めます。沢山読み込んでも必要でないグラフは消すことも出来るので大変便利です。しかしながらこれらを取り込んで表示したデータを保存が出来ません。VBのソースをつけますので皆さんで改造していただくとさらに楽しいかもしれません。
(測定中の様子・その1)
(測定中の様子・その2)
それでは実際の回路を測定してみましょう。「SIGNAL」ボタンを長押しすることで正弦波スイープになります。測定した波形はこのようになります。
(バンドパスフィルタの特性を測定)
バンドパス周波数としては実測もシミュレーションとほぼ同じ結果が出ました。まずは満足です。100kHz以降に変な山が3ヶ所ほど出ていますが気にしないで下さい。レベルが低い時に周波数の切れ目でちょっと変化が起こります。この周波数の切れ目というのは高い周波数まで正弦波を出す工夫として正弦波データテーブルの読み出しを切換えている部分です。測定値が低い時に起こります。その切れ目は過去の記事にも記載していますが、93kHz、187kHz、374kHzになります。ということでこの部分は気にしないで下さい。
(100kHzまでの周波数特性)
表示する周波数範囲を狭めたり、レベル範囲を狭めたりして各自で見易いグラフにして下さい。左側のラジオボタンでいろいろ操作してみて下さい。
(出力レベルごとのスルー時の周波数特性)
出力レベルごとのスルー時の周波数特性です。レベルが下がるごとに周波数の切れ目で変な山が出ています。ということで、趣味の範囲のオーディオ帯域で使って頂くのが良いかと思います。出力レベルの値は正しく計算して表示しているはずですが、絶対値ではなくあくまでも相対値としてみていただくのが良いかと思います。
VBで作成したPCアプリはこちらからダウンロードして下さい。
いかがでしたでしょうか。自作の測定器でも趣味の範囲なら充分実用的であることが判りました。これからいろいろと活用したいと思います。まだまだオーディオの製作は続きますよ。ご期待下さい。

オーディオクラフト工房へ戻る