Hallo, nachdem ich schon fast das halbe Internet leergesucht habe, wollte ich einmal hier nachfragen. Ich kann mit 100MSPS ADCs einen Sinus aufnehmen. Dieser soll bis zu 20MHz gehen. Dieser Sinus entspricht der Amplitude eines Cantilevers eines Rasterkraft Mikroskops. Das ist ein kurzer Ausleger mit einer kleinen Spitze unten dran, die mit seiner Resonanzfrequenz angeregt wird. Ja klar sagt ihr jetzt, nehm einen digitalen Lockin. Also ADC Signal einmal mit Sinus und einmal mit Cosinus der Anregungsfrequenz multiplizieren, (Tiefpassfiltern, downsamplen)^N und irgendwann kommt dann die Amplitude und Phase heraus. Hier habe ich aber das Problem, dass ich um eine Amplitude zu erhalten, extrem lange samplen muss, und so im Endeffekt auch wieder nur im kHz-Bereich die aktuelle Amplitude erhalte. Da ich nach der Amplitude regeln muss, bedeutet ein schnelleres erhalten der aktuelle Amplitude ein schnelleres regeln, damit ein schnellerer aufgebautes Bild. Hierfür suche ich ein paar Anregungen. Denn eigentlich sollte man ja schon nach ein paar Durchgängen des Sinus eine sehr genaue Aussage treffen können, wie beispielsweise nach einem Fit (wenn die Datenverarbeitung schnell genug ist). Da alles auf einem FPGA relaisiert werden soll sollte die Verarbeitung auch schnell machbar sein.
Moment, willst du jetzt die Frequenz des Sinus-Signals oder die Amplitude? Mir ist nicht klar ob die Frequenz der Amplitude des Cantilevers entspricht oder ob du tatsächlich die Amplitude vom Sinus brauchst.
Die Frequenz finde ich durch einen sweep heraus, dafür habe ich alle Zeit der Welt. Die Frequenz kenne ich also und gebe sie auf den Cantilever. Ich messe dann das Signal welches der Cantilever ausgibt. Also eine Sinusschwingung gleicher Frequenz mit unbekannter Amplitude.
Ich bin grad nicht ganz sicher, aber kannst du nicht einfach die Betragsquadrate aller Messwerte addieren? Das sollte proportional zur Amplitude sein. Mein Gedanke dabei ist, dass du die sinc-Interpolation ausrechnen kannst, die dir das "perfekte" Sinussignal rekonstruiert, indem du Fouriertransformierst, mit Nullen auffüllst und wieder zurücktransformierst. Durch das Anhängen der Nullen ändert sich die Norm der Funktion nicht, durch die Fouriertransformation auch nicht, also sollte die Norm korrekt rauskommen, auch wenn der Sinus nur sehr spärlich abgetastet ist. Klingt das plausibel?
Mach das so: Urms^2 = Summe x_i^2 der letzten 100 Werte Udc = Mittelwert der letzten 100 Werte Uacrms^2 = Urms^2 - Udc^2 Wenn dich die Schwankungen im Ergebnis(ca. 1%) wegen der nicht exakt passenden Signalfrequenz zur Abtastfrequenz stört, dann wende auf die letzten 100 x_i Werte noch eine Fensterfunktion an.
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.