Forum: Mikrocontroller und Digitale Elektronik Signale für DAC generieren


von Adam P. (adamap)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

falls dieser Beitrag doch eher in den DSP Bereich fällt, dann bitte 
verschieben. Danke.

Vorliegende Situation:
Ich habe hier einen selbstentwickelten Simulator der vordefinierte 
Signale (Sinus, EKG, EEG, Rechteck) im Bereich 20 µV bis 1V ausgeben 
kann.

Leider sind diese Signale fest in einem EEPROM hinterlegt, die dann auf 
einen DAC herausgetaktet werden.

Hier habe ich angesetzt und diesen Zweig von der Ausgabe getrennt und 
verwende nun den internen DAC vom SAM4E16E und schleuse das Signal so 
ein, funktioniert!

Nun habe ich bis jetzt meine EKG Signale selbst mit Excel designt, was 
jedoch ziemlich umständlich ist (siehe Bild_1).
Die DAC Werte werden dann in den Simulator geladen (USB->UART).

Kennt von euch jemand ein Tool, mit dem man Signale designen kann?
Ich stell mir das so vor, dass man die Kurve anklicken kann und diesen 
Punkt "ziehen" kann oder vielleicht gibt es sogar noch elegantere 
Lösungen?

Bin für jede Info dankbar.

Gruß Adam

von J. T. (chaoskind)


Lesenswert?

Je nach benötigter Frequenz kannst du dir beliebige Wellenformen in 
Audacity "malen".
Die Ausgabe wäre dann als wav oder andere Audioformate.
Möglicherweise lassen die sich auch als csv ausgeben, da bin ich mir 
spontan aber nicht sicher...

von Adam P. (adamap)


Lesenswert?

J. T. schrieb:
> Je nach benötigter Frequenz kannst du dir beliebige Wellenformen in
> Audacity "malen".

Ja, das ist leider nicht das was ich suche, der Tongenerator kann auch 
nur Sinus, Rechteck, Sägezahn.

Mir gehts hauptsächlich um ein EKG Signal, welches ich anpassen kann.
Hintergrund sind diverse Krankheiten, die ich damit abbilden möchte.

von Ove M. (Firma: ;-) gibt es auch) (hasenstall)


Lesenswert?

Ich habe zwar gerade keine Lösung für dich parat, doch mit Anklicken und 
„ziehen“ stelle ich mir das gerade recht problematisch vor.
Hintergrund, bei einem EKG gibt es verschiedene Ableitungen, das heisst 
du brauchst ein Signal „zeitsynchron“ in verschiedenen Ausprägungen, die 
dann wieder deine Ableitungen simuliert.
Wenn du „nur“ einen Kanal betrachtest, werden viele möglichen 
Erkrankungen nicht simuliert werden können.
Soweit mein Halbwissen dazu.

Viele Grüße Ove

von J. T. (chaoskind)


Lesenswert?

Adam P. schrieb:
> Ja, das ist leider nicht das was ich suche, der Tongenerator kann auch
> nur Sinus, Rechteck, Sägezahn.

Du kannst aber einzelne Samples im File verschieben, wimre. Kann ich 
heut abend mal schauen, ob mich die Erinnerung nicht trügt und 
gegebenenfalls berichten.

P.S.

die Bearbeitung wird dadurch aber auch nicht entspannter. Für 1 Sekunde 
"Signal" müsstest du dann je nach Samplerate auch mall 44100 
Sampkepunkte verschieben. Nicht unbedingtdas, was ich mir unter 
entspannter Bearbeitung vordtelle.

Evtl kann man sich was schreiben, was dir parametriesierbare Kurven 
erzeugt.

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Bitte nicht schlagen, wenn das einzige Werkzeug eine Keule ist, sieht 
jede Aufgabe wie ein Robbenbaby aus ;)

Eagle ist zwar für Platinen gedacht, aber man kann im Board mit der 
"wire" Funktion zeichnen und malen. Man kann auswählen zwischen "nur 
rechtwinklig", "beliebig schräg" bis "freihändig". Mit CTRL und SHIFT 
zusammen kann man freihändige Kurven verformen. Es braucht ein wenig 
Übung.

Das Ergebnis wird als XML in *.brd gespeichert. Ein Kurve mit einem 
geraden und zwei kurvigen Stücken sieht z.B. so aus:
1
<board>
2
<plain>
3
<wire x1="9" y1="50" x2="26" y2="58" width="0.2" layer="51"/>
4
<wire x1="26" y1="58" x2="48.5" y2="50.5" width="0.2" layer="51" curve="-87.272153"/>
5
<wire x1="48.5" y1="50.5" x2="44" y2="40" width="0.2" layer="51" curve="-102.255136"/>
6
</plain>

von Adam P. (adamap)


Lesenswert?

Ove M. schrieb:
> Wenn du „nur“ einen Kanal betrachtest, werden viele möglichen
> Erkrankungen nicht simuliert werden können.
> Soweit mein Halbwissen dazu.

Da magst du recht haben, jedoch ist das für mich in diesem Fall nicht 
relevant.
Ich simuliere nur die zweite Ableitung (rot/grün).
Hintergrund ist, ich benötige unterschiedliche Kurven um mein 
Algorithmus für die R-Zacken Erkennung zu testen. Wird benötigt um dann 
die PTT zu berechnen.

Mit dem oben genannten EKG funktionuiert es, nun gibt es aber 
Krankheitsbilder wo z.B. die T-Welle genau so hoch ist wie die R-Zacke 
und genau sowas möchte ich nachbilden und testen.

von Peter G. (metalfranke)


Lesenswert?

Hallo,

ein anderer Ansatz wäre einen "handgemalten" Impuls zu digitalisieren.
Ich habe gute Erfahrungen mit WebPlotDigitizer gemacht:

https://automeris.io/WebPlotDigitizer.html


Gruß Peter

von Ove M. (Firma: ;-) gibt es auch) (hasenstall)


Lesenswert?

Peter G. schrieb:
> Hallo,
>
> ein anderer Ansatz wäre einen "handgemalten" Impuls zu digitalisieren.
> Ich habe gute Erfahrungen mit WebPlotDigitizer gemacht:
>
> https://automeris.io/WebPlotDigitizer.html
>
>
> Gruß Peter

Das ist ja mal ein sehr schöner Link, danke für den Tip!
Viele Grüße Ove

von Adam P. (adamap)


Lesenswert?

Peter G. schrieb:
> Hallo,
>
> ein anderer Ansatz wäre einen "handgemalten" Impuls zu digitalisieren.
> Ich habe gute Erfahrungen mit WebPlotDigitizer gemacht:
>
> https://automeris.io/WebPlotDigitizer.html
>
> Gruß Peter

Das ist ja SUPER :)
Da kann ich ja direkt die eingescannten Bilder aus dem EKG Buch 
interpretieren lassen.

Top, werde ich mal ausprobieren.

von Adam P. (adamap)


Angehängte Dateien:

Lesenswert?

Fazit:

Vielen Dank @Peter G. (metalfranke).

Bild_1 (Scan)
Bild_2 (Hintergrund entfernt und Kurve geschwärzt)
Bild_3 (Fertiges EKG Signal wird ausgegeben)

Somit, Problem gelöst.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.