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
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?
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?
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.
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?
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.
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.
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.
>>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
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?
>>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
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.
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.
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.
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.