Forum: Digitale Signalverarbeitung / DSP / Machine Learning digitale demodulation. Habe Sinus auf Amplitudenbestimmung bei Chirp


von Gerald M. (gerald_m17)


Angehängte Dateien:

Lesenswert?

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?

von Detlef _. (detlef_a)


Lesenswert?

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

von Hp M. (nachtmix)


Lesenswert?

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
von Gerald M. (gerald_m17)


Lesenswert?

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.

von Detlef _. (detlef_a)


Lesenswert?

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

von Gerald M. (gerald_m17)


Lesenswert?

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.

von Alex (Gast)


Lesenswert?

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.

von Alex (Gast)


Lesenswert?

Achso, oder meinst du den Ripple beim Rechten Bild in der Mitte und 
nicht beim Chirp-Signal Die Amplitude im hinteren Verlauf?

von Gerald M. (gerald_m17)


Lesenswert?

Ja genau.
Beim rechten Bild das mittlere Diagramm. Das sollte die Amplitude sein, 
welche recht konstant ist ( leichte Biegung wegen dem Übertrager)

von detlef_a (Gast)


Lesenswert?

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

von Possetitjel (Gast)


Lesenswert?

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.

von Gerald M. (gerald_m17)


Lesenswert?

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.

von Gerald M. (gerald_m17)


Lesenswert?

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
Noch kein Account? Hier anmelden.