Effiziente Spitzenerkennung Mikroprozessor- oder DSP-Architektur

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.

Argh, Sie hätten an erster Stelle erwähnen können, dass Ihre Bandbreite wirklich niedrig ist.

Antworten (2)

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.

Aktualisieren:

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.

Danke für die Antwort. Ich suche nach Architekturen, die nicht nur die Spitzenwerterkennung eines Signals mit niedriger Bandbreite am effizientesten durchführen, sondern auch die Verarbeitung schnell durchführen können. Ich weiß, dass die meisten uC- und DSP-Chips die Arbeit erledigen würden, aber ich versuche, die Mindestanforderungen und die beste Architektur zu finden. Und ich bin mir auch nicht sicher, wie komplex die Algorithmen sein würden, aber wenn ich den schlimmsten Fall betrachte, denke ich, dass es am besten wäre, die vorläufige Analyse gut durchzuführen
Wenn Sie sich nicht sicher sind, was Sie brauchen, beginnen Sie mit viel Leistung. Dann können Sie später zurückskalieren, wenn/wenn dies in großen Mengen produziert wird. Ein dsPIC 33F kann 20.000 Anweisungen pro Abtastung bei einer Abtastrate von 2 kHz ausführen. Das sind viele Zyklen.

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 .

Bitte überprüfen Sie das Update in der Frage. Ich suche nicht nur nach Spike-Intervallen. Entschuldigung, dass ich die Frage nicht klar gestellt habe.
Tatsache ist, dass die meisten Herzkrankheiten aus Störungen in EKG-Spikes errechnet werden. Ich habe den Algorithmus oder den Code noch nicht geschrieben, mache aber eine vorläufige Analyse dazu. Ich habe viele Forschungsarbeiten durchgesehen, aber ich sehe keinen Grund, warum ein bestimmtes uC oder ein DSP ausgewählt wurde, und habe mich daher gefragt, ob ich hier eine Antwort bekommen könnte
@Neel - Für die Signalanalyse ist DSP der richtige Weg, auch wenn Sie die Algorithmen noch nicht fertiggestellt haben. Für diese Art von Signalen sind sie alle geeignet, also hängt die Wahl von anderen Faktoren wie Kosten, Lieferantenunterstützung, Entwicklungstools usw. ab.