リアルタイムオーディオ処理を実装するのに最適なプラットフォームを決定する方法は?


15

製品を開発するとき、Matlabですべてのアルゴリズム設計を行います。それらは通常かなり基本的なもので、IIRまたはFIRフィルター、または2つ、FFTが2つなどです。組み込み環境に移行するとき、どのプラットフォームで実行するかを決定するのに苦労します。私は通常、これらの(広い)プラットフォームを考えます:

  • DSPコア
  • FPGA
  • マイクロコントローラー

この決定をしようとするとき、どのような要因を考慮する必要がありますか?


2
「ARM」と「マイクロコントローラー」を区別する理由は何ですか?TIのDSP + ARMパーツを分類しようとしていますか?低電力の小さなものを大きなマイクロプロセッサーから分離しようとしていますか?(この最後のケースでは、おそらくMIPSとベンダー固有の32ビットコアを含める必要があります)
ケビンフェルメール

マイクロコントローラについて考えるとき、私はPIC、Atmelなどを思い浮かべますが、ARMも同様に該当すると思います。私は、それらがすべての選択肢であると言っているのではなく、どの要因を考慮すべきかを尋ねているだけです。
ケレンブ

1
「ベスト」とは何ですか?あなたは力によって制限されていますか?費用?プログラミングのしやすさ?柔軟性?
オリバーチャールズワース

@Oliこれが全体の質問です。決定しようとするとき、どの要因を考慮する必要があります。
ケレンブ

3
@ケレン:現時点では、この質問は「どの車が最適かをどのように決定するか」に少し似ていますが、それ以上の制約はありません。
オリバーチャールズワース

回答:


13

IIR、FIR、radix-2、4 FFTなどの「標準アルゴリズム」(つまり、制御フローがあまりないDSPアーキテクチャに適合するもの)を維持している場合は、これを試すことができます。

すべてのアルゴリズムで1秒間に必要な「乗算累積」数をカウントアップします。

  • 1,000万個未満の場合、高速のマイクロコントローラーを使用してジョブを実行できます(1M未満の場合は低速のマイクロコントローラーでも可能です)
  • <100Mは簡単なDSP領域です
  • <1Gは実行可能な高速DSP領域である可能性が高い
  • 1G-10Gは、DSPとFPGAの間のクロスオーバーが来る場所です
  • > 10Gは複数のDSPまたはFPGAです

2
これは実際に参照用の非常に素晴らしいリストです!
ケレンブ

3
数年ごとに10倍を掛けることを忘れないでください:)
マーティントンプソン

「高速マイクロコントローラー」の例を教えてください。
エンドリス14

1
@endolith:それのいずれかの可能性が現在の次回もので、私たちは多分、初期の2014年に:) LPC1768( -それを10MMACS Iの推測のためのビットをプッシュ100MHzの時どのクロック)のようなものを見ていない
マーティン・トンプソン

@MartinThompson:LPC1700のDSPライブラリは、Cortex-M3が「2サイクル(32x32)+32-> 32符号付き乗算累積」を行うと言っているので、50 MMACですか?
エンドリス14

11

私の知る限り、ARMはプラットフォームではなくアーキテクチャと見なされるべきです。ただし、この質問は、RT信号(この場合は音声)処理に使用するプラットフォームに関して非常に重要です。

厳密な順序ではなく、次の質問をすることから始めることができます。

  • 実装にどれくらいの時間が必要ですか?
  • 電力の制約は何ですか?
  • どのような数学演算が必要ですか?多数の乗算器が同時に必要になる可能性があるため、選択が制限されます。
  • どのくらいのメモリが必要ですか?(ほとんどのMCUは制限されています)
  • [重要]運用頻度は?動作周波数を低く保ちながら、サンプリング期間内にどれだけ絞り込めますか?
  • 実装の選択に使用できるライブラリは何ですか?

まず最初にアルゴリズムを調べることから始めます。たとえば、多くのFFTおよびMAC操作が必要な場合、ほとんどのマイクロコントローラーを除外し、DSPコアにもっと集中できます。DSPコアが組み込まれたMCUもあることに注意してください。

もう1つの重要な考慮事項は、実装の分野における能力と専門知識です。実装にはHDLを使用する必要があるため、ほとんどの人はFPGAを避けます。FPGAを避けるもう1つの理由は、電力要件です。


2

提供する情報だけで選択できるのはおそらくARM(単純なIIRおよびFIR)ですが、電力要件、IO要件、実装する予定の追加機能など、考慮すべき他の要因があります:このデバイスの場合、開発時間をどれだけ節約できますかネットワーク接続とフィールドのDSPパラメーターを変更するAPIがありましたか?

オプションの範囲をスマートフォンやBeagle Boardなどのコンパクトコンピューターに拡張することを検討しましたか?信号処理は、解決している問題全体のほんの一部にすぎないことに気付くかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.