トランジスタ技術2007年8月号、9月号の連載付録を利用したスペクトラム・アナライザです。
FFTの基礎については別ページで解説していますので、ご覧ください。
dsPICのDSP機能を利用し、音声帯域(5KHz)を周波数解析します。
LCDでは表示能力が乏しいため、PCを表示機として使用します。
dsPICで音声信号をA/D変換し、FFTの実行結果をPCへRS-232Cで送ります
- 音声信号入力
- A/D変換
- FFT実行
- PCで結果表示
周波数帯域 5KHz 周波数分解能 10KHz/64=156Hz 解析間隔 100ms 窓関数 hanning RS232C通信条件 115200bps,non-parity,8bits, 1 stop bit COMポート 1-9
2007年8月号、9月号の連載付録をそのまま使用します。回路の変更点はありません。
dsPIC30F2012でFFT変換を実行し、結果をPCで表示します。
- dsPICのRAM容量の制限から、FFTは64ポイントで計算します。
- 音声帯域5KHzをカバーするために、倍の10KHzでサンプリングします(サンプリング定理)。
- FFTの解析ポイント数とサンプリング周波数から周波数分解能は10KHz/64となります。
- FFTの結果は、RS232C経由でPCに取り込みます。
- PCではFFTデータをdB変換して表示します。
- 窓関数にhannningを使用しているため、比較的鋭い周波数分析になります。
準備使用方法
- dsPICモジュールのJP1をカット(RS232C簡易機能を分離)
- 電源はUSBポート、外部電源のどちらでもOK。5V安定化電源を推奨
- PCではFFTデータをdB変換して表示します。
- トレーニングボードのJP1設定、PROGオープン、RXDショート、TXDショート
- dsPIC30F2012用のファームウェア(Spectrum.hex)をdspicguy.exeで書き込みます。
- PC用ソフトウェア(Specturm.exe)を起動し、COMポートを選択します。
- LINE IN に音声信号を入力します。VR1で音量を調整します。
- PC用ソフトウェアのStartボタンで開始します。
MPLAB C30を使用して開発しました。
キーポイントの部分のフローチャートは次のとおりです。
- 64ポイントをサンプリング周波数でA/D変換します。
- データにハニング窓関数を適用します。
- 実数を複素数に拡張します。
- FFTを実行します。
- FFT計算結果を得るため、ビットを逆順にします。
- 電力を得るためにベクトルの長さ、つまりは複素数を二乗します。
1KHzの正弦波を入力したとき、概ね1KHzを示します。
1KHzの方形波を入力したとき、奇数倍(3KHz, 5KHz)の高周波成分を確認できます。
音楽を入力したときの様子です。
ファームウェア(Spectrum.hex)
PCソフトウェア(Spectrum.exe)
PC用のソフトウェアはActiveBasicで作成しています。
(C)2008 All rights reserved by Einstein.
Version date 備考 1.0 2008-04-25 リリース