Ich suche einen Mikrocontroller oder DSP (oder seine Architekturen), die sowohl in Bezug auf die Leistung als auch auf die Leistung bei der Erkennung von Spitzen effizient sind. Ich möchte einen Algorithmus ausführen, der Spikes erkennt und verarbeitet. Daher suche ich nach Architekturen, die bei dieser Art von Leistung effizient sind.
Irgendwelche Hinweise, Vorschläge usw. wären wirklich hilfreich. Vielen Dank im Voraus.
UPDATE: Ich erhalte die Eingangssignale im digitalen Format. Ich suche auch keine extreme Echtzeitleistung. Auch wenn ich eine Verzögerung bekomme, ist das in Ordnung. Außerdem interessiert mich nicht nur die Spike-Erkennung, sondern auch eine Reihe von Eigenschaften wie Höhe usw. Kurz gesagt, der Algorithmus ist ziemlich komplex. Ich versuche dies für EKG/EMG-Signale usw. zu tun. Algorithmen sind nicht so einfach, und daher suche ich nach einer effizienten Architektur.
Wenn Sie nur Spitzen erkennen möchten, benötigen Sie nicht viel Rechenleistung. Sie können leicht eine analoge Schaltung erstellen, die den Spike-Pegel für eine Weile hoch hält, um einem Prozessor die Möglichkeit zu geben, ihn beim nächsten periodischen A/D-Lesen zu erkennen. Oder die Schaltung könnte die Spitze erkennen und einen Interrupt-Pin des Prozessors ansteuern, damit er sofort tun kann, was Sie wollen.
Bei einem Brute-Force-Ansatz würde das Signal mit der richtigen Amplitude und Impedanz an einem A / D-Eingang des Prozessors anliegen und von dort aus alles in der Firmware ausführen. Einige der dsPIC 33F können mit 1 MHz oder mehr abtasten, aber Sie haben keine Einzelheiten angegeben, um zu wissen, ob das gut genug ist oder nicht. Ein solcher Prozessor würde einige 100 mW benötigen, um mit voller Geschwindigkeit zu laufen. Beachten Sie, dass Sie nur 40 Befehlszyklen pro Lesung bei einer Abtastrate von 1 MHz erhalten. Das reicht aus, um gerade eine Spitze zu erkennen. Wenn nachfolgende Messwerte für eine Weile nicht benötigt werden, während Sie die Spitze verarbeiten (was auch immer das bedeutet), dann würde dies funktionieren.
Wenn die Spikes sehr kurz sind, können Sie dem A/D einen analogen Spike-Stretcher vorschalten. Etwas wie das:
Eine kurze positive Spitze kommt herein und bewirkt, dass C1 aufgeladen wird. Selbst wenn die Spitze unmittelbar danach verschwindet, bleibt die Spannung an C1 hoch und fällt mit einer Zeitkonstante von 10 µs ab, was einer Halbwertszeit von 7 µs entspricht. Wenn Sie für ein paar µs nach einer keinen weiteren Spike erkennen müssen, lockert diese Art von Spike-Stretcher die Sample-Anforderungen an den Prozessor.
Die tatsächliche Abklingzeit und die Impedanzen müssen wahrscheinlich an Ihre Besonderheiten angepasst werden.
Es ist jetzt offensichtlich, dass Sie versuchen, die Eigenschaften von Signalen mit niedriger Bandbreite zu messen. "Niedrig" ist relativ zu dem, was moderne Mikrocontroller leicht messen und verarbeiten können. In diesem Fall benötigen Sie keine ausgefallenen externen analogen Schaltungen, außer um die richtige Amplitude und Impedanz an den A/D-Eingang des Prozessors zu liefern. Sie können das Signal beispielsweise mit einer Rate von 2 kHz mit analogen Filtern abtasten, die bei etwa 300 Hz abfallen. Mit dieser Art von Setup verpasst der Sample-Stream garantiert keine Funktionen. Und bei 500 µs/Sample sollte genügend Zeit für die Peak-Erkennung und andere Verarbeitung bleiben.
Dies ist wirklich kein so schwieriges Problem, im Gegensatz zu dem, wonach Sie ursprünglich gefragt haben.
Abhängig von den Eigenschaften der Spitze können sie zu kurz sein, um vom Mikrocontroller erkannt zu werden. Ich würde eine externe analoge Schaltung bauen, um die Spitze zu erkennen, und einen anständigen digitalen Impuls an den Interrupt-Eingang eines Mikrocontrollers senden.
Eine Erkennungsschaltung kann aus einem schnellen Spitzenwertdetektor bestehen, der ein D-Flip-Flop mit dem geklemmten Eingangsimpuls an den D-Eingang triggert. Wenn es sich tatsächlich um eine Spitze handelt, speichert das Flip-Flop einen niedrigen Pegel, ein längeres Signal wird als logische 1 registriert. Je nach erwarteter Spike-Dauer können Sie das Signal am Eingang des Flip-Flops verzögern.
edit
Deine Angaben sind etwas widersprüchlich. Sie sagen, das Eingangssignal ist digital, aber Sie möchten die Amplitude (und Wellenform?) Messen. Wie auch immer, wenn es um EKG / EMG-Daten geht, sollte jeder Mikrocontroller mit A / D-Wandler damit umgehen können.
Sie sind sehr mysteriös in Bezug auf die Verarbeitung, aber für die Wellenformanalyse bietet Ihnen ein DSP Extras, die ein einfacher Mikrocontroller nicht hat, wie eine MAC- Anweisung (Multiply-and-Accumulate) zum Erstellen effizienter FIR- und IIR-Filter .
Olin Lathrop