Lors du développement de produits, je fais toute ma conception d'algorithmes dans Matlab. Ils sont généralement assez basiques, un filtre IIR ou FIR ou deux, quelques FFT, etc. Quand vient le temps de le déplacer vers un environnement intégré, j'ai toujours du mal à décider sur quelle plate-forme le faire fonctionner. Je pense généralement à ces (larges) plateformes:
- Noyau DSP
- FPGA
- Microcontrôleur
- BRAS
Quels facteurs dois-je prendre en compte lorsque j'essaie de prendre cette décision?
Réponses:
Si vous vous en tenez aux "algorithmes standard" comme IIR, FIR, radix-2 ou 4 FFT (c'est-à-dire des trucs qui correspondent bien aux architectures DSP sans beaucoup de flux de contrôle), vous pouvez essayer ceci:
Comptez le nombre de "multiplier accumule" dont vous avez besoin par seconde dans tous vos algorithmes.
la source
Pour autant que je sache, ARM devrait être considéré comme une architecture plutôt qu'une plate-forme. Cependant, la question est tout à fait pertinente quant à la plate-forme à utiliser pour le traitement du signal RT (dans ce cas audio).
Vous pouvez commencer par poser les questions suivantes, pas dans un ordre strict:
Je commencerais par regarder l'algorithme d'abord et avant tout. Si, par exemple, vous avez besoin de nombreuses opérations FFT et MAC, vous pouvez probablement exclure la plupart des microcontrôleurs et vous concentrer davantage sur les cœurs DSP. Gardez à l'esprit qu'il existe également des MCU avec des cœurs DSP intégrés.
Une autre considération importante serait votre capacité et votre expertise dans le domaine de la mise en œuvre. La plupart des gens évitent le FPGA car vous devez utiliser un HDL pour la mise en œuvre. Une autre raison de se détourner des FPGA est la puissance requise.
la source
Avec juste les informations que vous fournissez, le choix est probablement ARM (IIR et FIR simples), mais il y a d'autres facteurs à considérer tels que les exigences d'alimentation, les exigences d'E / S, les fonctionnalités supplémentaires que vous prévoyez de mettre en œuvre: combien de temps de développement économiseriez-vous si cet appareil avait une connexion réseau et une API pour modifier les paramètres DSP sur le terrain?
Avez-vous envisagé d'étendre votre gamme d'options aux smartphones ou aux ordinateurs compacts tels que le Beagle Board? Vous pourriez vous rendre compte que le traitement du signal n'est qu'une petite partie de l'ensemble du problème que vous résolvez.
la source