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?
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?
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.
Wenn man die Guete mit einem DDS erzeugten sinus misst benoetigt man keine Frequenz zu messen, die ist ja gegeben durch die Anregung.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.