Forum: Mikrocontroller und Digitale Elektronik Frequenz und Guetemessung eines Sinussignals


von Stefan (Gast)


Lesenswert?

Hallo,

mein Ziel ist ein ein Sinussignal zu messen welches eine Eingangsspanung 
von
- 0.1V bis + 0,1V besitzt, die Frequenz liegt im Bereich zwischen 100kHz 
und 500kHz liegen.Ueber eine Verstaerkerungschaltung und einen 
Transformator wandle ich das Signal in in ein rein differentielles, 
verstaerkes es und versetze es mit einem Offset um auf einen A/D Wandler 
zu geben. Aus den Abtatswerten moechte ich nun die Signalfrequenz 
ermitteln und spaeter auch noch die Guete des Schwingkreises. Die 
Messung der Signalfrequenz soll mit einer Genauigkeit von 50 Hz 
erfolgen. Meine Frage ist jetzt welches Verfahren euerer Meinung nach am 
besten geeignet ist um aus den Abtastwerten die Frequenz des Signals zu 
ermitteln.

mfg

Stefan

von Der Dude (Gast)


Lesenswert?

Die Signalfrequenz würde ich nicht aus den AD-Werten ermitteln. Sondern 
über die Periodendauer. ICP ist Dein Freund, falls Du einen Atmel 
verwendest. Meine Glaskugel ist leider gerade zur Inspektion weg.

>spaeter auch noch die Guete des Schwingkreises.

Was für ein Schwingkreis?

von Der Dude (Gast)


Lesenswert?

Ausserdem musst Du mit Deinem Verstärker und Trafo aufpassen, dass das 
Signal nicht verfälscht wird.

Was soll das denn insgesamt für ein Gerät werden?

von Stefan (Gast)


Lesenswert?

Das Signal an sich wird nicht verfaelscht bei der Verstaerkerschaltung, 
darauf hab ich bereits geachtet. Wollte eigentlich einen DSP von Texas 
Instruments verwenden, aber ATMEL waere auch kein Problem. Geht um ein 
Geraet zur kontaktlosen Resonanzfrequenzmessung von RFID Transpondern. 
Uber eine DDS soll der Transponder angeregt werden und ich messe dann 
die Freuquenz mit der er antwortet. Die Abtastwerte benoetige ich dann 
fuer die Guetemessung. Bekomm ich eine entsprechend grosse Genauigkeit, 
wenn ich es mit ICP messe? Wuerde ich ueber die Abtastwerte gehen und 
mit den Nulldurchgaengen arbeiten braeuchte ich ja sehr hohe 
Abtastraten, richtig?

von Der Dude (Gast)


Lesenswert?

Das ist richtig. Wenn Du 500 kHz mit 50 Hz auflösen willst, musst Du 
mindestens 500kHz/50 Hz = 10 000 Messwerte pro Sekunde erzeugen.

Über Input Capture, oder Du kannst es auch anders machen, bei positiver 
Flanke über Interrupt-Eingang Zähler starten, bei nächster Flanke wieder 
stoppen, erhältst Du eine Genauigkeit von einigen Mikro-Hz.

Um den Dämpfungsverlauf zu messen brauchst Du eigentlich keinen DSP. 
Bisschen Analogtechnik (OP's) und gut ist's.

Ob man zum Anregen einen DDS benötigt, vor allem in dem niedrigen 
Frequenzbereich, sei dahingestellt.

von Stefan (Gast)


Lesenswert?

Die Idee mit dem Interrupteingang und dem Zaehler starten finde ich sehr 
gut, vielleicht werde ich das noch zusaetzlich implementieren. hab mir 
aber gerade ueberlegt das ganze System anders zu machen. Da das Geraet 
eh an den PC angeschlossen werden soll, werd ich die ganze Auswertung 
ueber PC machen. Da gibts ja von LabView schoene Funktionen die man da 
nutzen kann und mir die ganze Sache mit der Signalverarbeitung 
erleichtern. Ich hab vor das Signal mit 8 MHz abzutasten, das sollte mir 
ausreichend werte pro Peridode geben um mir von LabView ein geignetes 
Ergebnis berechnen zu lassen. Aber wie meinst du das mit dem 
Daempfungsverlauf? Das wuerde mich interessieren, hast du da eventuell 
nen paar hilfreiche Links?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das hört sich nach dem Prinzip des guten alten Dipmeters an, das schon 
aus der Röhrenzeit bekannt ist. Dessen Oszillator wird neben dem 
Messobjekt durchgestimmt, und bei der Resonanz gibt es eine kleine 
Amplitudenänderung ein "Dip", die auf einem Zeigerinstrument beobachtet 
wird. Aus der Breite der Resonanz kann man vielleicht noch etwas zur 
Güte aussagen.

Wenn du mehr als eine Periode abzählst, wird die Frequenzmessung 
genauer, auch mit wenigen Abtastpunkten, die "500kHz/50 Hz = 10 000 
Messwerte pro Sekunde" gelten nur, wenn nur eine Schwingung ausgemessen 
wird.

von Stefan (Gast)


Lesenswert?

Ich hab das nochmal durchdacht, das mit dem LabView war zu schoen um 
wahr zu sein. Die Berechnung muss doch in dem Geraet durch gefuehrt 
werden. Was fuer ein ATMEL wuerde sich da anbieten? Mir sind die 
Abtatstwerte wichtig, das heisst, er brauch genug Leistung um die Daten 
schnell genug vom A/D wandler in einen Speicher zu schreiben.

von sechseinssechs (Gast)


Lesenswert?

Wenn man die Guete mit einem DDS erzeugten sinus misst benoetigt man 
keine Frequenz zu messen, die ist ja gegeben durch die Anregung.

von Stefan (Gast)


Lesenswert?

Jepp, 10000 Messwerte pro Schwingung und nicht pro Sekunde, und das ist 
extrem viel. Die Funktion mit dem durch Wobbeln (dipmeter) soll auch 
implementiert werden, allerdings laesst sich hier ueber Gleichrichtung 
und A/D wandlung des Signals einfach bestimmen wo die Resonanzfrequenz 
liegt. Wenn man weiss mit welcher Frequenz man den Schwingkreis angeregt 
hat. Mir geht im Moment um die Frequenzmessung, ohne dass ich es mit 
einer Wobbelfunktion anrege, ich sende quasi ein Kommando an den 
Transponder und schau mir seine Antwort an. Und die Frequenz der Antwort 
moechte ich bestimmen.

von Detlef _. (detlef_a)


Lesenswert?

>>Jepp, 10000 Messwerte pro Schwingung und nicht pro Sekunde, und das ist
>>extrem viel.

>>Das ist richtig. Wenn Du 500 kHz mit 50 Hz auflösen willst, musst Du
>>mindestens 500kHz/50 Hz = 10 000 Messwerte pro Sekunde erzeugen.

Das ist falsch. Du kannst wesentlich besser auflösen. Wenn Du 
beispielsweise Deine 500kHz mit GENAUEN 1001000Hz abtastest, also 
bißchen neben der doppelten Signalfrequnz, kannst Du aus der 
Schwebungsfrequenz Deine gesuchte Frequnz genau bestimmen. Unterabtasten 
geht auch. Du kannst bei gegebener Genauigkeitsanforderung beliebig 
Aufwand gegen Meßzeit handeln: Wenn Du bei Deinem 500kHz Signal zwei 
Jahre lang die Perioden zählst, hast Du die Frequnz auch sehr genau. 
Dieses Verfahren mit dem Zähler und dem Nulldurchgang ist anfällig gegen 
Rauschen aber schnell.

Sag mal genauer, was Du willst: Wie lange liegen die 500kHz an, in 
welchem Berich schwanken die, wie genau soll die Frequnz bestimmt werden 
...


Cheers
Detlef

von Stefan (Gast)


Lesenswert?

Der zu messende Bereich sollte zwischen 15 kHz und 500kHz liegen, das 
Signal liegt fuer ca 50 Schwingungen an. Die Frequenz soll auf 50 Hz 
genau bestimmt werden. Wobei hier der Bereich zwischen 100kHz und 200kHz 
am wichtigsten ist. Das Problem mit dem Rauschen kommt dadurch dass 
mehrere positive Flanke auftreten koennen, richtig?

von Detlef _. (detlef_a)


Lesenswert?

>>Das Problem mit dem Rauschen kommt dadurch dass mehrere positive Flanke 
>>auftreten koennen, richtig?

Dein Signal ist mit Rauschen überlagert, im schlechten Falle geht das 
Signal mehrmals durch 0, bevor es 'endgültig' im anderen Quadranten ist.

>>Signal liegt fuer ca 50 Schwingungen an.
Ne abklingende, gedämpfte Schwingung?

Kannst Du Nyquist erfüllen, also > 1Ms/s abtasten?

Cheeers
Detlef

von sechseinssechs (Gast)


Lesenswert?

Mit dem internen ADC geht das nicht. Der ADC muss auch bei 
Unterabtastung das Nyquistkriterium erfuellen. Es muss ein Sample und 
Hold da sein und der muss schnell genug sein. Der interne ADC mit seinen 
15kSample kann nicht Unterabtasten.

von U. harms (Gast)


Lesenswert?

Mein Vorschlag:
Durch die Anregung per DDS ist die ungefähre Frequenz ja bereits 
bekannt. Das Empfangssignal wird multiplikativ mit der Frequenz vom DDS 
gemischt und durch einen Tiefpassfilter geschickt. Dieses Signal kann 
dann leichter digitalisiert werden. Da aber nur ca. 50 Schwingungen (bei 
500 kHz = 100 us) zur verfügung stehen, wird das schon recht kanpp mit 
dem internen AD Wandlern, denn ca. 100 Werte sollte man schon nocht 
aufnehmen. Das Signal stellt dann die Differenzfrequenz zur DDS Frequenz 
dar. Zur Auswertung kann dann ein normaler least square fit genommen 
werden, ist zwar eher lamgsam aber es sind ja nicht mehr viele Daten. 
Trotzdem könnte DSP oder wenigstens ein ARM Prozessor besser geeignet 
sein.
Mit einem DSP könne man natürlich auch schon vorher digitalisieren und 
mehr rechnerisch machen.
Ich habe mit einem ähnlichen Verfahren gute Erfahrungen gemacht um die 
Güte und Frequenz mechanisscher Resonatoren zu messen. Insbesondere 
funktioniert das auch noch bei ziehmlich verrauschtem Signal. Die 
mögliche Auflösung liegt ziehmlich nahe am theoretisch möglichen. Aus 50 
Perioden die Frequenz bis auf 1/10000 zu bestimmen ist schon recht 
anspruchsvoll, wenn das Signal verrauscht ist.

Wenn es einfacher werden soll, die Amplitude des Empfangssignals als 
Funktion der Sendefrequenz messen und dann aus der Kurve die Frequenz 
und Güte bestimmen. Um die Frequenz grob zu finden, bleibt auch kaum ein 
anderes Verfahren übrig.

von sechseinssechs (Gast)


Lesenswert?

Um das Ganze zu vereinfachen kann man einen AD5932, ein ScanDDS nehmen. 
Un die Amplitude kan man mit einem LTC 5507, ein log arithmierender 
Amplitudendetektor mit 48dB Amplitudenbereich nehmen, dann kann man mit 
dem langsamen internen ADC den Amplitudengang waehrend einem Scan 
messen.

von Stefan (Gast)


Lesenswert?

Erst mal danke fuer die ganzen Ideen, meine Loesung wird nun so 
aussehen. Werd  nen DSP von TI nehmen TMS320F8xx. Ueber den Ecap Eingang 
werd ich die Frequenz bestimmen. Die Abtastastung fuehre ich mit nem 
8MS/s D/A Wandler durch. Um eventuell spaeter das Spektrum zu berechnen. 
Und um die Guete zu bestimmen, werd ich mir mit einem Peak Detector die 
Maximalwerte bestimmen lassen. Und dann anhand der verbrauchten Cycles 
zwischen 2 Maximalwerten die Guete berechnen.

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.