Forum: Digitale Signalverarbeitung / DSP / Machine Learning Digitaler Lock In notwendige Taktrate


von Marco D. (Gast)


Lesenswert?

Hallo zusammen,

ich stehe aktuell vor folgendem Problem:

Ich möchte gerne 12 Vollbrücken mit einer Bandbreite von 100 Hz 
auswerten. Dafür habe ich nur sehr begrenzten Bauraum. Da ich aufgrund 
von 50 Hz Einkopplungen Probleme mit der Anregung der Brücken per 
Gleichspannung haben werde, bin ich zu dem Entschluss gekommen einen 
Lock In Verstärker zu verwenden, mal ganz davon abgesehen das 
1/f-Rauschen ebenfalls im Gleichspannungsbetrieb problematisch wäre.

Ich stehe aktuell vor der Wahl diesen digital oder analog aufzubauen. 
Mir ist bewusst das aufgrund analoger Fehler (Temperaturdrift, 
Linearitätsfehler des analogen Mischens) die digitale Variante zu 
bevorzugen ist. Da mein Bauraum allerdings stark begrenzt ist, werde ich 
für die Digitalisierung aller Vollbrücken nur einen uC verwenden und 
nicht jede Brücke seperat digitalisieren können. Da ich wenig bis gar 
keine Erfahrung mit digitaler Signalverarbeitung habe, fällt es mir 
schwer abzuschätzen welche Taktfrequenz mein uC haben muss um 12 Signale 
mit einer abgetasteten Bandbreite von 200 Hz digital in Echtzeit zu 
mischen und zu filtern.

Im Prinzip lässt sich ein digitaler Lockin Verstärker meinem Verständnis 
nach mit der Multiplikation des Messsignals mit einem Referenzsignal und 
einer anschließenden FIR Tiefpass Filterung konstruieren. Ich will 
wissen ob der zur Verfügung stehende uC (AN1115) ausreichend schnell ist 
oder ob ich aufgrund der zu niedrigen Taktung des uC die digitale 
Variante ausschließen kann. Meine konkrete Frage an die Community lautet 
daher:

Gibt es eine Faustregel wonach ich abschätzen kann wie hoch meine 
uC-Taktung sein muss um meine 12 Vollbrücken in Echtzeit mit einem 
digitalen Lock-In-Verstärker zu verarbeiten ?

Mein bisheriger Ansatz sah wie folgt aus:

Um die Signale in Echtzeit auswerten zu lassen muss der uC in einem 
Taktzyklus alle 12 Vollbrücken erfassen und verarbeiten können
=> fmin = 1/t_Laufzeit

wobei t_Laufzeit die Summe aller Rechenschritte des Algorithmus 
inklusive Wartezeiten, die durch den FIR-Filter oder aus anderen Gründen 
entstehen, beinhaltet.

Die Trägerfrequenz sollte laut Literaturangabe Faktor 10 haben, daraus 
folgt: Trägerfrequenz = 1kHz

Das vom Trägersignal modulierte Messsignal hat somit eine Frequenz von 
1,1 kHz. Um alle 12 Messsignale auswerten zu können, müssen daher 1,1 
kHz * 12 Samples/s ausgewertet werden können. Wie schon oben erwähnt 
habe ich leider keine Ahnung davon wie viele Rechenschritte notwendig 
wären einen solchen Algorithmus zu verarbeiten.

Ich würde mich über jeden Hinweis/Tipp von euch freuen,

Viele Grüße

Marco D.

von Schorsch X. (bastelschorsch)


Lesenswert?

Wenn die Trägerfrequenz 1kHz haben soll, wird die Abtastfrequenz 
sicherlich bei 10-50 kHz liegen müssen. Es bleiben je nach Prozessor ca. 
1000-10000 Takte übrig. Das dürfte für 12 Kanäle sehr knapp werden. Gibt 
es vielleicht etwas mehr Info, was du eigentlich machen willst ? Brücken 
mit 100 Hz Bandbreite sind schon recht sportlich. Welche Genauigkeiten 
sind dabei gefordert ?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Da sind noch viel zu viele Unbekannte drinnen, um da irgendwas 
abschaetzen zu koennen. Was muss denn der Tiefpass leisten, welche 
Durchlass-, Sperrcharakteristik, Wie siehts mit dem 
Phasengang/Gruppenlaufzeit aus? welche Genauigkeit?

Wenns da schon in eine ordentliche Rechnerei ausartet: Kann man evtl. 
irgendwelche Tricks anwenden, um die Rechenlast zu senken?

Was kommt denn noch nach den Tiefpaessen? Da wirds doch sicher eine 
weitere Verarbeitung geben: Da auch wieder welche Genauigkeit, was muss 
da gerechnet werden, z.B. Wurzeln, Logarithmen, trigonometrisches 
Gedoens?

Gruss
WK

von Peter Schmitt (Gast)


Lesenswert?

Aktuell wird für die Auswertung der Brücken pro Vollbrücke eine Beckhoff 
El3356 Klemme verwendet. Deren Messfehler wird mit +- 0,01 %, bezogen 
auf den Messbereichsendwert von 12 V, angegeben. Meine Elektronik soll 
den Anforderungen nach diesen Messfehler einhalten.

Gruppen-/bzw. Phasenlaufzeiten hab ich ehrlich gesagt zu wenig Ahnung 
von digitalen Filtern bzw. digitaler Multiplikation und wie viele 
Rechenschritte dafür notwendig sind, weshalb ich mich auch schwer tue 
abzuschätzen wie hoch mein Prozessor getaktet sein muss um die 12 
Signale zu verarbeiten. Ich kann nur grob abschätzen das meine gesamte 
tolerierbare Latenz bei insgesamt 50 ms liegen darf.

Ich hab jetzt mal mit einem Kollegen in Matlab mit der Filter Design 
Toolbox einen FIR Filter erzeugt. Matlab hat hierfür 4 Koeffizienten 
ausgespuckt was ich als etwas wenig empfinde. Jetzt habe ich allerdings 
keine Ahnung wie ich auf Basis der Filterkoeffizienten meine gesamte 
Verzögerung des digitalen Lock Ins (Rechenzeit der Mischung und 
Filterung plus Verzögerung aufgrund der Faltung von Signal und FIR 
Filter) berechne. Wirklich relevant ist für mich aber erst nur ob die 
Taktung des uC ausreicht für den Filter (Verzögerung durch Faltung ist 
erstmal zweitrangig).

Nach dem Tiefpass werden die Daten mittels Ethercat Slave an den 
Ethercat Master weitergegeben der in Form einer echtzeitfähigen Matlab 
Simulink-Schnittstelle realisiert ist. Da der Ethercat-Bus Signale bis 
100 MBit bei Zykluszeiten von 100 us erreicht sollte dies nicht mein 
Flaschenhals sein.

Mir ist aktuell noch nicht klar wir ihr auf eine Abtastrate von bis zu 
50 kHz kommt bei einer maximalen modulierten Frequenz von 1,1 kHz. Alles 
was drüber liegt wird vorher gefiltert. Mir ist bewusst das die 
Abtastung etwas höher als Nyquiest liegen muss, aber gleich so viel 
höher ?

Ein weiterer Punkt der mir aktuell noch nicht klar ist:
Warum ist bei einem digitalen Lock In eine hohe Auflösung des 
AD-Wandlers gefordert wenn ich mein Messsignal doch sowieso vorher noch 
mit einem Instrumentationsverstärker verstärke ? Bei einem analogen Lock 
in Verstärker wird es doch früher oder später auch i.d.R. digitalisiert. 
Nur das ich dort ein demoduliertes Signal digitalisiere. Das würde 
meinem Verstndnis nach nur eine höhere Anforderung an die Taktung des 
AD-Wandlers bedeuten. Außerdem ist mir nicht klar wieso bei einem 
analogen Lock In die Phasenverschiebung so kritisch sein soll wenn ich 
die Amplitude meiner Spannung unabhängig von meiner Phase mit dem 
IQ-Demodulation. Auswerten können soll.

Gruß Marco D.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Hm. Also ich hab' so das Gefuehl, dass das irgendwie nix wird. Du kennst 
ja noch nicht mal deinen Namen.
Naja, um was zum Thema zu schreiben: Aufm AVR hab' ich fuer ein 
Halbbandfilter mal mit 7 Takten fuer eine 8*8bit MAC Operation und 4 
Takten pro Tap fuers "samples schieben" kalkuliert. Und der AVR ist ja
nun nicht gerade als DSP praedestiniert.
Fuer deine 0.01% Genauigkeit werden wohl 16bit Samplebreite passen. 
Musst halt gucken, was dein Prozessor draus fuer Assembler macht, wenn 
du ein 4 Tap FIR in der Programmiersprache deiner Wahl drauf 
implementierst.
Ich wuerde aber mal mutmassen, dass da dein Ethercat-Sendegedoens 
einiges mehr an Rechenbumms brauchen wird.

Gruss
WK

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.