Forum: Mikrocontroller und Digitale Elektronik Signaltransformation


von Robert (roboter1964)


Angehängte Dateien:

Lesenswert?

Hallo,

ich muss über DAC ein Signal ausgeben.
16 bit, 2Khz Updaterate.

2 Bilder sind eigefügt. So ähnlich geht es auch weiter.
Signal 1 ist bei ADC 0V, Signal 2 bei ADC 1V, Signal 3 bei 2V und so bis 
5V.
Die Länge und Form der Signale sind unterschiedlich. Es gibt nicht 
wirklich einen (rechnerischen) Zusammenhang.
Wie kann ich die Signale aneinander anpassen?
Es soll ein fließender Übergang stattfinden.
Wie die Signale dazwischen (bei 0,33V z.B.) aussehen ist nicht relevant.

Was wäre der richtige Weg?

Herzlichen Dank

von H. H. (Gast)


Lesenswert?

Robert schrieb:
> Was wäre der richtige Weg?

Zu erzählen um was es eigentlich geht.

von Robert (roboter1964)


Lesenswert?

> Zu erzählen um was es eigentlich geht.

Etwas Neues lernen

von J. T. (chaoskind)


Lesenswert?

Du willst also in Abhängigkeit eines gemessenen ADC-Wertes eine 
arbiträre Wellenform per DAC ausgeben?

Dann musst du dir Punkte auf der auszugenden Wellenform suchen und diese 
in der richtigen Geschwindigkeit ausgeben. Wenn da kein rechnerischer 
Zusammenhang zwischen ADC und DAC zu finden ist, wüsste ich nicht, wie 
man es sonst machen sollte.

: Bearbeitet durch User
von Robert (roboter1964)


Lesenswert?

>Du willst also in Abhängigkeit eines gemessenen ADC-Wertes eine
>arbiträre Wellenform per DAC ausgeben?
Korrekt.
Es muss kein ADC Wert als Abhängigkeit sein.
Zähler funktioniert auch. Ändert nichts an der Lösung der Aufgabe.
Alle 10.000Punkte Zählerstand neues Signal.
Dabei sind die Signale willkürlich. Das ist die Herausforderung.

>Dann musst du dir Punkte auf der auszugenden Wellenform suchen und diese
>in der richtigen Geschwindigkeit ausgeben.
Bitte noch einen Satz zu dem Verfahren.

von Daniel A. (daniel-a)


Lesenswert?

Nehme N Zähler. Wenn der Zähler >= Anzahl Samples des Signals ist, 
subtrahiere die Anzahl Samples vom Zähler. Zähle alle Zahler parallel, 
egal ob sie Teil des Mischsignals sind oder nicht.

Jetzt zur Interpolation. Nimm deinen Wert. Runde ab. das, und das + 1 
ist dein Signalindex. Hol dir das Sample das zum Zähler des jeweiligen 
Signals gehört, nennen wir die a und b. Jetzt definieren wir noch 
t=(wert mod 1). Damit kann man nun interpolieren. Linear interpolieren 
wäre: a*(1-t) + b*t.

Und schon hast du dein interpoliertes Mischsignal! Ist aber nicht 
garantiert, dass das eindeutig ist. Aber davon wieder zum Anfangswert zu 
kommen, war ja keine Anforderung.

(Der Grund für mehrere Zähler ist, dass sonst die Perioden anders sein 
können, und dann das kgv grösser als der Wertbereich des Zählers werden 
könnte, und man Probleme mit Overflows bekäme. Wobei, da gibt es einen 
netten Trick. Wenn man einen 64bit Zähler nimmt, und den immer nur um 1 
erhöht, kann man ihn nicht so schnell erhöhen um jemals den Overflow zu 
sehen).

von Rainer W. (rawi)


Lesenswert?

Robert schrieb:
> Wie kann ich die Signale aneinander anpassen?
> Es soll ein fließender Übergang stattfinden

Kannst du das "fließend" mathematisch definieren?
Soll das Signal dazwischen nur stetig sein oder soll auch ein bestimmter 
Übergang der spektralen Eigenschaften stattfinden?

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.