dsPICスペクトラム・アナライザ

■はじめに

トランジスタ技術2007年8月号、9月号の連載付録を利用したスペクトラム・アナライザです。
FFTの基礎については別ページで解説していますので、ご覧ください。
dsPICのDSP機能を利用し、音声帯域(5KHz)を周波数解析します。
LCDでは表示能力が乏しいため、PCを表示機として使用します。
dsPICで音声信号をA/D変換し、FFTの実行結果をPCへRS-232Cで送ります
  1. 音声信号入力
  2. A/D変換
  3. FFT実行
  4. PCで結果表示

■仕様

周波数帯域5KHz
周波数分解能10KHz/64=156Hz
解析間隔100ms
窓関数hanning
RS232C通信条件115200bps,non-parity,8bits, 1 stop bit
COMポート1-9


■回路図

2007年8月号、9月号の連載付録をそのまま使用します。回路の変更点はありません。

■ブロック図

dsPIC30F2012でFFT変換を実行し、結果をPCで表示します。

  1. dsPICのRAM容量の制限から、FFTは64ポイントで計算します。
  2. 音声帯域5KHzをカバーするために、倍の10KHzでサンプリングします(サンプリング定理)。
  3. FFTの解析ポイント数とサンプリング周波数から周波数分解能は10KHz/64となります。
  4. FFTの結果は、RS232C経由でPCに取り込みます。
  5. PCではFFTデータをdB変換して表示します。
  6. 窓関数にhannningを使用しているため、比較的鋭い周波数分析になります。


■使用方法

準備
  1. dsPICモジュールのJP1をカット(RS232C簡易機能を分離)
  2. 電源はUSBポート、外部電源のどちらでもOK。5V安定化電源を推奨
  3. PCではFFTデータをdB変換して表示します。
  4. トレーニングボードのJP1設定、PROGオープン、RXDショート、TXDショート
使用方法
  1. dsPIC30F2012用のファームウェア(Spectrum.hex)をdspicguy.exeで書き込みます。
  2. PC用ソフトウェア(Specturm.exe)を起動し、COMポートを選択します。
  3. LINE IN に音声信号を入力します。VR1で音量を調整します。
  4. PC用ソフトウェアのStartボタンで開始します。


■ファームウェア

MPLAB C30を使用して開発しました。
キーポイントの部分のフローチャートは次のとおりです。
  1. 64ポイントをサンプリング周波数でA/D変換します。
  2. データにハニング窓関数を適用します。
  3. 実数を複素数に拡張します。
  4. FFTを実行します。
  5. FFT計算結果を得るため、ビットを逆順にします。
  6. 電力を得るためにベクトルの長さ、つまりは複素数を二乗します。


■評価

1KHzの正弦波を入力したとき、概ね1KHzを示します。

1KHzの方形波を入力したとき、奇数倍(3KHz, 5KHz)の高周波成分を確認できます。

音楽を入力したときの様子です。


■ダウンロード

ファームウェア(Spectrum.hex)
PCソフトウェア(Spectrum.exe)
PC用のソフトウェアはActiveBasicで作成しています。

■履歴

Versiondate備考
1.02008-04-25リリース
(C)2008 All rights reserved by Einstein. inserted by FC2 system