Forum: FPGA, VHDL & Co. Phasenproblem beim NCO


von Gisbert (Gast)


Lesenswert?

Ich verwende einen NCO, um Frequenzen zwischen 10 und 30 MHz 
herzustellen. Die Taktfrequenz des FPGA liegt bei 100 MHz. Jetzt ist es 
js so, dass der NCO für Frequenzen von z.B. 29 MHz nicht mit den 100 
harmoniert. Der Phasenakku wird dann um einen "krummen" Wert 
fortgeschrieben.

Je nach Rundung bekomme ich damit eine z.B. etwas zu kleine Frequenz, 
was dazu führt, dass die Phase vom Ideal wegläuft.

Frage: Wird das irgendwie ausgeglichen?

Oder muss ich das per Hand machen, durch z.B: reset?

von Duke Scarring (Gast)


Lesenswert?

Gisbert schrieb:
> Je nach Rundung bekomme ich damit eine z.B. etwas zu kleine Frequenz,
> was dazu führt, dass die Phase vom Ideal wegläuft.
Richtig.

Deine Frequenzauflösung wird durch die Bitbreite des Akkus vorgegeben:
1
F_step = F_sampling / ( 2**akku_width)
Bei 100 MHz und z.B. 8 Bit kannst Du nur Schritte von 390.625 kHz 
einstellen.

> Frage: Wird das irgendwie ausgeglichen?
Nein.

> Oder muss ich das per Hand machen, durch z.B: reset?
Damit hast Du einen Frequenzsprung (und möglicherweise auch einen 
Phasensprung).

Wie genau ist denn Deine Taktquelle?
Und warum brauchst Du eine so genaue Frequenz?
Bei Funksystemen muß man z.B. damit rechnen das die Frequenz der 
Gegenstelle abweicht. (Doppler-Effekt, andere Temperatur etc. pp)

Duke

von Harald (Gast)


Lesenswert?

>> Oder muss ich das per Hand machen,
>Damit hast Du einen Frequenzsprung
Somit wäre aber die Phase zumindest für eine gewisse Zeit in dem 
gewünschten range zu halten.

Um solche Effekte bei Spüngen zu mindern, kann man in digitalen 
Analog-Systemen (und solchen die beanspruchen, sowas zu sein :-) ein 
künstliches Phasenrauschen aufsetzen und Filtern. Damit "verteilt" sich 
der Sprung.

von Gisbert (Gast)


Lesenswert?

>ein künstliches Phasenrauschen aufsetzen
Mit der taktgebenden PLL?

von Harald (Gast)


Lesenswert?

Z.B, ja. Oder man lässt es von draussen kommen.

von Gisbert (Gast)


Lesenswert?

>andere Temperatur
?

von Jochen F. (jamesy)


Lesenswert?

Ein NCO hat eigentlich keinen solchen Phasensprung. Selbst wenn ich die 
29 MHz mit einem Takt von "nur" 30 MHz erzeuge, dann addiere ich immer 
einen bestimmten Wert, und nur die Breite des Akkumulators legt die 
Phasenabweichung fest, bzw. die Breite der anschließenden D/A-Wandlung. 
Das geht (fast) mit beliebiger Präzision. Phasensprünge werden zur 
Modulation des NCO verwendet, abrupte Sprünge geben PSK, ein +-Offset 
erzeugt FM, eine binäre Multiplikation des Akkumulators erzeugt AM, und 
so fort......

von Gisbert (Gast)


Lesenswert?

Aber es gibt doch ein Ganzzahlprolem!(?) Der Akku wird mit einem Wert 
addiert, der dazu führt, das nach der Zahl der Takte/Sekunde zu einem 
kompletten Akkuüberlauf führt. Wenn aber die gwünschte Freuquenz nicht 
ganzzahlig zur Taktfrequenz üpasst, geht es nicht ganz genau.

von Jochen F. (jamesy)


Lesenswert?

Der Akkuüberlauf ist nur der Wert, der 360 Grad Phase entspricht, und 
wird einmal pro Periode erreicht.
Der Trick: Der Akkumulator läuft nicht immer wieder bei Null los.

von Selbi (Gast)


Lesenswert?

Das sind zwei unterschiedliche Dinge:

1) Phasenrauschen:

Der Sinuswert wird von einem hochgenauen Akku abgenommen und ist 
aufgrund der Rundung in der Phase ungenau. Folglich ist der Wert 
ungenau. Im Mittel stellt sich ein Phasenrauschen um eine Periode ein, 
die exakt der Akkumulatorperiode entspricht.

2) Frequenz:
Der Akku selbst ist nicht beliebig gross und der "Hinzuzählwert" der ja 
die Frequenz bestimmt, unterliegt auch einer Rundung. Die reale Frequenz 
ergibt sich zu f= Akkugroesse / (Taktfrequenz * Schrittweite).

Wenn diese Zahlen nicht optimal zusammenpassen, kommt man zu einer 
gerundeten = falschen Frequenz!

Ein wichtiger Punkt ist auch die Dimensionierung von Akku gegen 
Tabellengrösse.

von Selbi (Gast)


Lesenswert?

Ich habe oben f=Freuquenz geschrieben, meinte aber die Periode!

von Audioengineer (Gast)


Angehängte Dateien:

Lesenswert?

Einen Phasensprung in dem Sinn gibt es nicht, aber eine flasche 
Frequenz. Das ist u.U, schwerwiegender. Es ist daruf zu achten, dass der 
Akumulator genügend gross und die Auflösung fein genug ist.

von Audioengineer (Gast)


Lesenswert?

Bei der Grafik wird der Akku auf 11 Bit gekürzt, was bei dem grossen 
Akku bei 96kHz reicht, trotzdem stimmt die Frequenz noch nicht gut 
genug. Wenn man die Abtastfreuquenz erhöht, um mehr Bandbreite zu 
bekommen, muss der Akku quadratisch wachsen, weil sonst der 
Schrittfaktor nicht genau eingestellt werden kann.

von Ratgeber (Gast)


Lesenswert?

Was spräche gegen einen größeren Akkumulator? Soviel mehr Platz braucht 
der nicht. Ich weiss nicht auswendig, was der Core so kann, aber da 
solte genug Reserve drin sein.

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.