« ADuC7026のA/Dで遊ぶ | トップ | トラ技4月号 »

ADuC7026でFFT

の実験をしてみました。
DWM3月号のおまけ基板に、LM358で作った入力バッファと、DAC0及びDAC1の出力に簡単なRCフィルタを通して、オシロ(XYモード)に接続しただけの構成(^_^;)。
実験プログラムは、開発が楽なKEIL評価版上で作成することにし、とりあえずうまくいくかどうか確認するために、実験パラメータもすごく粗っぽいです。

IMG20060226A

<実験パラメータ>
・サンプリング周波数 fs = 約32kHz (スペクトラム表示範囲 ~16KHz)
・FFTサンプル数 256 (有効サンプル数 128)
・周波数分解能 125Hz
・窓関数 ハニング窓

で、横着にもアンチ・エイリアシング・フィルタも省略してしまったので、モジュラーシンセにあるVCFで帯域制限をした信号を入力して実験。
ちょっと粗っぽく、帰線の処理等もしてませんが、こんな感じで、ほぼリアルタイムに表示ができました(^O^)
入力信号のサンプリング及びFFTタイミングとオシロへの表示タイミングの兼ね合いが難しいところです…

IMG20060226B

FFTは手持ちのCコードを適当に直して使ったので全くチューニングしてませんが、ARMプロセッサの乗算や積和演算命令を上手に生かせるようなコーディングをすれば、性能的にまだまだ行けそうな気がします。

あ゛っ、dBスケールになってない…

<追記>
入力バッファはLM358とかではなく、Rail to Railなタイプにしましょう。

コメント

おーすごい。
パソコンのソフトでは20kまでしか見られないので、100kぐらいまで見られるのがあったらいいなあ、とかとか。40kでもいいけど。むずいんでしょーね。

シンセ実験用に手軽なオーディオスペアナが欲しくて実験してみました。
A/Dは1MSPSなので結構早いのですが、その後の処理時間などを考えると、MAX64~80kHzサンプリング位がいいところかも?
また内蔵RAMが8KBしかないので、float演算だと256サンプルが限界です。(無理矢理16bit固定でやる手もありますが…)

すごいですねぇ。
バッファの一番はしに最大スケールのデータを無理やりうめておくと、同期信号として使えますよ。

>同期信号として使えますよ
おっ、その手がありましたね!!
初期のDSPぐらいのパワーがあるので、いろいろ遊べそうなチップです。

« ADuC7026のA/Dで遊ぶ | トップ | トラ技4月号 »

コメント

ミニシンセ「Cagura」
RJB 11/04
analog 11/04
ESM-2 デモサウンド
RJB 10/03
takeda 10/02
RJB 09/29
takeda 09/29
ESM-2 ファームウェアなど
RJB 09/29
なお 09/29
なお 09/29
ESM-2の回路図
RJB 09/23
酔漢 09/22
RJB 09/21
Chuck 09/21
RJB 09/21
ESM-2 週末の作業
暇仁さん 09/17
RJB 09/16
takeda 09/16
暇仁 09/16

トラックバック

[回路]叩きモノはいいよね
電音の工場ブログ
[Scilab]高調波も生成する(2)
はてな駐屯地
RJBさんがScilab本を買ったぞ
はてな駐屯地
USB-JTAG
虹的電子音楽機器
PIC、AVR、そしてARM7へ
虹的電子音楽機器

amazonアソシエイト