2023年7月19日水曜日

DSP ADAU1401/1701 を使ってみるなり(3) FFTは使えない

ひふー暑い.

ADAU1401/1701で遊ぼうと準備中です.

遊びの1つとして、FFTはできるのかな? FFTできたらすごい遊べるよねー

残念ながら、ADAU1401/1701にはFFTを行う能力が無いらしいです.

FFTするとなると、256wordのwork memoryに一旦storeして、sin()cos()演算結果を256回加算するaccumlatorが必要だよね、などとという連想になるわけですが、このようなblock処理が1401/1701には出来ないので、FFTは無理と結論されるみたいです.

多数の演算objectを並べればFFT出来るんじゃないの?という目論見も諦めきれないわけですが、、、1401/1701では「256wordのwork memory」を用意できないか、無理矢理用意するとHW resourceを鬼のように喰ってしまって無理らしい.

なんか残念.

しかし、上位のsigmaDSPのADAU145xならばblock処理機能がHW的に用意されていて、sigmaStudioから「FFT object」をサクッと呼び出せます.

↓まず、FFTは無理なADAU1401をsigmaStudioへ貼り付けた状態を示します.
↓次に、FFT可能なADAU1450をsigmaStudioに貼り付けた状態はこうです.違いがありますね.Block Schematicというのが増えています.このBlock....がまさにBlock処理のために存在します.
↓Block Schematicにobjectを貼り付けます.ToolBoxにFrequencyDomainというのが表示され、FFT objectを回路図に追加できるようになっています.ただ、FFT objectのconfig.は出来そうにありません.長さ固定だったりするのかな?

ADAU1452はAliexpressで¥2000ぐらいで買えるのでプリント基板を作ってみてもいいかもしれない.ちなみにADAU1701はAliexpressで最安¥700~.

ADAU1462,1463,1466,1476,1472,これらもBlock処理ができるようです.たぶん値段は高いのでしょう.

ADAU1701が逐次処理しか出来ないというのはちょっと残念です.制限あり.

2へ    4へ

かしこ

2 件のコメント:

  1. 昔同じ部署でDSPを使った開発をしている同期がいてとてもうらやましかったです。NECのDSPを使ってアセンブラでプログラム書いてました。ループにすると遅くなるからプログラムを展開したりパイプラインが乱れないように気を付けてました。使ってはいませんでしたが、海外製のDSPにはアセンブラレベルでマトリクス演算できるのもあってかっこええなーと思ってました。自分は8ビットCPUでゴシゴシ通信変換ソフトとか作っていてちょっと悲しかったです。

    返信削除
    返信
    1. DSPうらやまーって、わたしも同意見なのですが、
      わたしの職場の同志諸君はそうでもなく、信号処理からみんな逃げてたな。
      だから信号処理はアナデジ問わず手薄で、好き勝手出来ました。前任者すらほとんど居ないぐらい手薄でした。

      削除