無料ブログはココログ

« 簡単製作・FFTテストセットの製作(その1/2) | トップページ | LP-2020(TA2020使用)&ヘッドホンアンプの簡単製作 »

2016年2月 7日 (日)

簡単製作・FFTテストセットの製作(その2/2)

Fft04__2
1.  FFTテストセットの系統と概略仕様(上図・手前がUSBオシロユニット)
「後閑哲也さん著・PICで楽しむUSB機器自作のすすめ・USBオシロスコープ」(以下USBオシロという)をベースに、時間軸信号とスペクトルを表示します。
 
テストセットの系統は、図のとおりで、パソコン側から「USBオシロ」ユニットを制御して、PICユニットでサンプリングしたAD変換データをパソコンに吸い上げ表示します。PICで作るユニットはUSBオシロに書かれているものをそのまま使用し、表示部分のプログラムを改造します。

Fft02_

  元の仕様はサンプリング周期Δ
t=10μsec、データ数Dn=960点ですが、FFT機能を追加するので、周波数レンジを下記のようにセットしました。

Fft05_fft

2. USBオシロ」のプログラムからの変更点
 
(1)最高周波数:fmaxを切のいい数にするため、サンプリング周期を39μsにセット(10μs)
   
(2)データ数:Dn=512 (960)
 
  (3)サンプリング周期Δt=39μS Period=117(下記参照)
  (4)Dn=512よりライン数Ln=200
 サンプリング時間T=Dn*Δt=512*39μs20ms
  周波数分解能Δf=1/T=1/20(ms)=50Hz
 最高周波数Fmax=Ln*Δf=200*50=10kHz
 
  Δt=T/Dn=1/(Δf*Dn)=1/(50*512)=39.06μs
   
(5) PIC側のTimer1セット
    
Sampl=1のときΔt=39.06μs (Sample * Δtでサンプリング周期 決定)
       
Timer1の入力クロックはFosc/4=12MHz
       
Timer1のプリスケーラ1/412/4=3MHz
    
Period=39μs/1/3MHz=117 これでTimer139μsにセット         
    (Sample
Periodは、USBオシロで使用されている変数)

 結局、「
USBオシロ」でUSBを経由してPICからパソコン側に送られたデータがmDATA(  )に入っているので、これを利用して時間軸波形(Dn=512)FFTスペクトル(Ln=200)を描画します。

3. 実行画面
Fft06_fft_2

 図は、フリーソフトの「
WaveGeneefuさん製作」で1kHzの正弦波を「USBオシロスコープユニット」に入力し、時間軸波形とFFTスペクトルを表示させたものです。

Smpl_T(Sample)をスライドさせると1100の範囲で1ステップで可変できます。

また、H_Time110まで1ステップで可変でき、時間軸の表示倍率を可変できます。

FFTの描画も同様にH_Timeの倍率に応じて周波数表示倍率を可変しました。

 参考に、パソコン側のVisualBasic2005を使用した描画部分のForm2プログラムを添付します。見やすいように、データの倍率を適当に大きくしています。

描画はForm1picからのデータをmDATA( )に格納した後にForm2への描画命令でスタートします。したがって、Form2の描画プログラムを改造すれば、FFT

画面を表示することができます。

「fft_form2.doc」をダウンロード

 反省

①以前FFTアルゴリズムを理解するためにC言語を使用したが、難点は計算結果の表示でした。Gnuplotというユーティリティを使ったが、学習不足のため使い方がいまいち分からず自由にならなかった。

今回、後閑哲也さん著の「PICで楽しむUSB機器自作のすすめのUSBオシロスコープ」に出会い、波形表示がVisualBasicで簡単にできることがわかりました。

表示速度についても、結局は人が見るのだから、2秒程度の周期でも問題ありません。

②このセットでは、Sample=1(Smpl_T=1)にセットするとΔt=39μsとなり、PICの処理速度が追いつかずにサンプリングされた波形はひずみます。Sample=2以上だとひずみません。USBオシロの記事に書かれているように50μs程度が限界らしい。16ビットのpicを使うと100kHzの信号でもひずみなくサンプリングができるようですが、とりあえずは学習用のFFTテストセットができたのでよしとします。

③年をとると、広域の音が聞きづらくなります。先だって、オーディオイコライザを修理したときに10kHzの音を聞いてみたのですが、ほとんど聞こえませんでした。

200ラインのFFTテストセットができたので、好きな音楽でもかけて、最高周波数10kHZでスペクトル表示を楽しんでみることにします。

« 簡単製作・FFTテストセットの製作(その1/2) | トップページ | LP-2020(TA2020使用)&ヘッドホンアンプの簡単製作 »

電子工作」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1269828/63835120

この記事へのトラックバック一覧です: 簡単製作・FFTテストセットの製作(その2/2):

« 簡単製作・FFTテストセットの製作(その1/2) | トップページ | LP-2020(TA2020使用)&ヘッドホンアンプの簡単製作 »