製品を開発するとき、Matlabですべてのアルゴリズム設計を行います。それらは通常かなり基本的なもので、IIRまたはFIRフィルター、または2つ、FFTが2つなどです。組み込み環境に移行するとき、どのプラットフォームで実行するかを決定するのに苦労します。私は通常、これらの(広い)プラットフォームを考えます:
- DSPコア
- FPGA
- マイクロコントローラー
- 腕
この決定をしようとするとき、どのような要因を考慮する必要がありますか?
製品を開発するとき、Matlabですべてのアルゴリズム設計を行います。それらは通常かなり基本的なもので、IIRまたはFIRフィルター、または2つ、FFTが2つなどです。組み込み環境に移行するとき、どのプラットフォームで実行するかを決定するのに苦労します。私は通常、これらの(広い)プラットフォームを考えます:
この決定をしようとするとき、どのような要因を考慮する必要がありますか?
回答:
IIR、FIR、radix-2、4 FFTなどの「標準アルゴリズム」(つまり、制御フローがあまりないDSPアーキテクチャに適合するもの)を維持している場合は、これを試すことができます。
すべてのアルゴリズムで1秒間に必要な「乗算累積」数をカウントアップします。
私の知る限り、ARMはプラットフォームではなくアーキテクチャと見なされるべきです。ただし、この質問は、RT信号(この場合は音声)処理に使用するプラットフォームに関して非常に重要です。
厳密な順序ではなく、次の質問をすることから始めることができます。
まず最初にアルゴリズムを調べることから始めます。たとえば、多くのFFTおよびMAC操作が必要な場合、ほとんどのマイクロコントローラーを除外し、DSPコアにもっと集中できます。DSPコアが組み込まれたMCUもあることに注意してください。
もう1つの重要な考慮事項は、実装の分野における能力と専門知識です。実装にはHDLを使用する必要があるため、ほとんどの人はFPGAを避けます。FPGAを避けるもう1つの理由は、電力要件です。