Hallo, um mein Lockin Algorithmus zu testen gebe ich mit meinem DAC einen logarithmischen Chirp aus und messe ihn mit einem ADC wieder ein. Der DAC erhöht alle 400 Samples die Frequenz von 20kHz bis 75MHz (insgesamt etwa 46000 Stufen, der DAC läuft mit 150MSPS) Wegen der großen Datenmenge kann ich hier nur Übersichtsbilder zeigen, auf denen man keine diskreten Schwingungen sieht. Beim ranzoomen sind sie aber da und sehen gut aus. Das erste angehängt Bild "Overview.png" zeigt oben alle aufgenommenen Daten. Auf der x-Achse sind die Samples aufgetragen. Man sieht hier eine recht konstante Amplitude von etwa 0.7V Die anderen beiden Diagramme zeigen die ADC Werte mit den jeweiligen Sinus/Cosinus Werten multipliziert. Hier mache ich einen Fehler, da bei einem Wechsel der Frequenz die Sinus/Cosinus Werte sich sofort ändern, die Frequenz die am ADC gemessen wird aber 2-3 Samples verzögert ist. Bei 400 Werten pro Frequenz sollten die paar Werte denke ich jedoch nicht so ins Gewicht fallen. Auf dem zweiten Bild sind oben und unten die gefilterten Kurven von vorher um den Faktor 400 dezimiert. Jetzt habe ich pro Frequenz noch einen Datenpunkt und kann die Skala mit angeben. Diese ist in Hertz. Wie man sieht sind die Werte unter 1MHz sehr undefiniert. Das kommt daher dass ich bei solch langsamen Frequenzen mit 400 Werten keine ganze Schwingung messen kann. In der Mitte ist die Wurzel der Summe der Betragsquadrate der beiden gefilterten Kurven. Dies sollte der Amplitude entsprechen. Wie man sieht habe ich eine Art Schwebung auf dem ganzen. Kann mir jemand helfen aufzuklären wo sie herkommt?
Hat vllt. was mit der Phase des Trägers zu tun, mit dem Du runtermischt, dessen relative Lage zum Signal. Oder mit Deinem Tiefpass hinter dem Mischer. Cheers Detlef
Gerald M. schrieb: > Wie man sieht habe ich eine Art Schwebung auf dem ganzen. Das wird die Differenz der Abtastfrequenzen von DAC und ADC sein, oder eine Subharmonische davon. Möglicherweise auch Aliasing.
:
Bearbeitet durch User
Detlef _. schrieb: > Hat vllt. was mit der Phase des Trägers zu tun, mit dem Du runtermischt, > dessen relative Lage zum Signal. Deswegen nutze ich ja den sinus und den cosinus. Detlef _. schrieb: > Oder mit Deinem Tiefpass hinter dem Mischer. Die Schwebung ist auch schon vor dem filtern da. Hp M. schrieb: > Das wird die Differenz der Abtastfrequenzen von DAC und ADC sein, oder > eine Subharmonische davon. > Möglicherweise auch Aliasing. Der DAC und ADC laufen mit der gleichen clock (150 MHz). Die Frequenzen gehen nur bis zu 75 MHz.
>>>>>>>>>>>>> Detlef _. schrieb: > Hat vllt. was mit der Phase des Trägers zu tun, mit dem Du runtermischt, > dessen relative Lage zum Signal. Deswegen nutze ich ja den sinus und den cosinus. >>>>>>>>>>>>> Ach so. Na, dann nimm mal den Betrag von dem gefilterten cos + j sin Signal, der ist dann möglicherweise ohne rippel. Cheers Detlef
Detlef _. schrieb: > Ach so. Na, dann nimm mal den Betrag von dem gefilterten cos + j sin > Signal, > der ist dann möglicherweise ohne rippel. Gerald M. schrieb: > der Mitte ist die Wurzel der Summe der Betragsquadrate der beiden > gefilterten Kurven. Dies sollte der Amplitude entsprechen. > Wie man sieht habe ich eine Art Schwebung auf dem ganzen.
Gerald M. schrieb: > Wie man sieht habe ich eine Art Schwebung auf dem ganzen. > Kann mir jemand helfen aufzuklären wo sie herkommt? Wenn ich dein Problem richtig verstanden habe, ist es Aliasing. Da du Frequenzen in der Nähe von fs/2 verwendest und der DAC einen realen TP besitzt und keinen idealen, entsteht im analogen eine Schwebung (Zwei Frequenzen nah beieinander, fs/2-f und fs/2+f). Diese Schwebung tastest du nun wieder mit den ADC ab.
Achso, oder meinst du den Ripple beim Rechten Bild in der Mitte und nicht beim Chirp-Signal Die Amplitude im hinteren Verlauf?
Ja genau. Beim rechten Bild das mittlere Diagramm. Das sollte die Amplitude sein, welche recht konstant ist ( leichte Biegung wegen dem Übertrager)
Gerald M. schrieb: > Gerald M. schrieb: >> der Mitte ist die Wurzel der Summe der Betragsquadrate der beiden >> gefilterten Kurven. Dies sollte der Amplitude entsprechen. >> Wie man sieht habe ich eine Art Schwebung auf dem ganzen. Hab nicht richtig gelesen, war wohl zu heiss. Cheers Detlef
Gerald M. schrieb: > In der Mitte ist die Wurzel der Summe der Betragsquadrate > der beiden gefilterten Kurven. Dies sollte der Amplitude > entsprechen. > Wie man sieht habe ich eine Art Schwebung auf dem ganzen. Nun ja, ganz offensichtlich ist das genau die doppelte "Frequenz" der Sinus- bzw. Cosinuskomponente. Oder? > Kann mir jemand helfen aufzuklären wo sie herkommt? Entweder sind Dein Sinus und Dein Cosinus nicht wirklich orthogonal zueinander, oder es ist ein Fehler in den Amplituden, denn die doppelte Frequenz kommt ja wohl durch sin^2 oder cos^2 zustande. Du kannst ja statt des einfache Pythagoras mal irgendwas der Art sqrt(r*sin^2+(1/r)*cos^2) verwenden und sehen, ob durch variieren des r die Welligkeit verschwindet. Das ist natürlich immer noch keine Erklärung; ich weiss.
Possetitjel schrieb: > Nun ja, ganz offensichtlich ist das genau die doppelte "Frequenz" der > Sinus- bzw. Cosinuskomponente. Oder? Ja, das komische ist nur ich benutze einen IP-Core von altera, der mir gleichzeitig den Sinus und Cosinus erzeugt (mit LUTs) Es wird auch immer die gleiche Clock verwendet. Wenn ich den NCO nach jedem Frequenzwechsel resete ist das Problem weg, nur sind natürlich die ersten paar Werte wegen der Unstetigkeit fürn Popo. Ich denke ich implementiere mal einen Zähler, der nur nach kompletten Umläufen des sinus/cosinus die Frequenz erhöht. Ich melde mich sobald ich es getestet habe.
Gerald M. schrieb: > Hier mache ich einen Fehler, da bei > einem Wechsel der Frequenz die Sinus/Cosinus Werte sich sofort ändern, > die Frequenz die am ADC gemessen wird aber 2-3 Samples verzögert ist. > Bei 400 Werten pro Frequenz sollten die paar Werte denke ich jedoch > nicht so ins Gewicht fallen. Nur als Info, das hier war der Fehler. Es waren nicht nur 2-3 Samples, es waren 34. Multipliziere ich die gemessenen Werte mit dem Sinus/Cosinus ergibt sich die Schwebung im ersten Beitrag. Multipliziere ich nicht Daten[n] mit Sinus[n], sondern Daten[n] mit Sinus[n-1] wird es besser. bei Sinus[n-34] ist sie komplett weg. Danke für die Hilfe
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.