まったり回路

SpectrumAna

最終更新:

makedenshi

- view
メンバー限定 登録/ログイン

オーディオスペクトルアナライザーについて

  • オーディオスペクトラムアナライザーは、音(音楽、楽器、声など)を周波数別に音の大きさを解析し、表示するものです。オーディオ機器にあるバーが音に連動して動くアレです。
  • 自作するには、まず、多少の信号処理の勉強をしないといけませんが、ここでは省略します。音の時系列信号を周波数に変換するフーリエ変換を使います。
  • 信号は、時間的にとぎれとぎれ(離散化している)のでフーリエ変換の計算は、DFTを使います。DFTを高速化したものがFFTと呼ばれています。ややこしいですね。
  • 今回は、PIC16Fシリーズを用いて、A/D変換にて一定周期で入力した音の信号を、FFTしますが、これには、複素数の積・和があるので、結構大変な計算をしています。
  • データは、固定小数(符号付き16bit) を使うので、ある程度の制度があります。
PIC16F819を用いて、限界のメモリまで使うと、64点(128Bytes)をFFTの計算に使います。

何はともあれ実物の様子

簡単な回路なので、基板も小さいです。

実際にスペクトラムを表示している動画です。

ブロック図

いたって簡単な構成となっております。とっても安くできます。


回路図


回路図ですが、いたって簡単。音声信号をコンデンサマイクで、入力し、これをOPアンプで増幅、PICのA/D変換ポートに入力します。

また、表示用に安価なキャラクタLCDを採用しました。これは、マトリクス型と同様に、
オリジナルのパターンを表示する機能があるのでこれを使います。

lightboxプラグインエラー:ご指定のファイルがありません。アップロード済みのファイル名を指定してください。


プログラムについて

メインでは、FFTの計算をしながら、定期的にTimer割り込みを使って、A/D変換し、音声信号バッファに入力していきます。

一通りFFTの計算が終わったら、複素数の絶対値を求め(ルートは取らない)、簡易的に対数をとり、液晶に表示します。

これが終われば、音声信号バッファから、FFT用のメモリにデータを移し、FFTを計算といった繰り返しになります。

最高で、65FPSと非常にスムーズに表示ができます。(要はこの速度で計算ができるということ)



記事メニュー
目安箱バナー