Bei der Entwicklung von Produkten entwerfe ich alle Algorithmen in Matlab. Sie sind normalerweise ziemlich einfach, ein IIR- oder FIR-Filter oder zwei, ein paar FFTs usw. Wenn es darum geht, sie in eine eingebettete Umgebung zu verschieben, fällt es mir immer schwer, zu entscheiden, auf welcher Plattform sie ausgeführt werden soll. Ich denke normalerweise an diese (breiten) Plattformen:
- DSP-Kern
- FPGA
- Mikrocontroller
- ARM
Welche Faktoren sollte ich berücksichtigen, wenn ich versuche, diese Entscheidung zu treffen?
Antworten:
Wenn Sie sich an "Standardalgorithmen" wie IIR, FIR, Radix-2 oder 4 FFT halten (dh Dinge, die gut zu DSP-Architekturen passen, ohne viel Kontrollfluss), können Sie dies versuchen:
Zählen Sie, wie viele "Multiplikatoren" Sie in all Ihren Algorithmen pro Sekunde benötigen.
quelle
Meines Wissens sollte ARM eher als Architektur denn als Plattform betrachtet werden. Die Frage ist jedoch ziemlich relevant, welche Plattform für die RT-Signalverarbeitung (in diesem Fall Audio) verwendet werden soll.
Sie könnten damit beginnen, folgende Fragen zu stellen, nicht in strikter Reihenfolge:
Ich würde zuallererst den Algorithmus betrachten. Wenn Sie zum Beispiel viele FFTs und MAC-Operationen benötigen, können Sie wahrscheinlich die meisten Mikrocontroller ausschließen und sich mehr auf DSP-Kerne konzentrieren. Beachten Sie, dass es auch MCUs mit eingebetteten DSP-Kernen gibt.
Ein weiterer wichtiger Gesichtspunkt wäre Ihre Fähigkeit und Ihr Fachwissen im Bereich der Implementierung. Die meisten Leute scheuen FPGA, weil Sie für die Implementierung eine HDL verwenden müssen. Ein weiterer Grund, sich vor FPGAs zu scheuen, ist der Strombedarf.
quelle
Wenn Sie nur die Informationen angeben, die Sie zur Auswahl haben, handelt es sich wahrscheinlich um ARM (einfache IIRs und FIRs). Es sind jedoch noch weitere Faktoren zu berücksichtigen, z Hatte eine Netzwerkverbindung und eine API, um DSP-Parameter im Feld zu ändern?
Haben Sie darüber nachgedacht, Ihr Optionsangebot auf Smartphones oder Kompaktcomputer wie das Beagle Board zu erweitern? Möglicherweise stellen Sie fest, dass die Signalverarbeitung nur einen kleinen Teil des gesamten Problems darstellt, das Sie lösen.
quelle