Ich möchte folgende Gleichung optimieren: a + b/c
Dies ist die Ausgangsbasis um die Frequenz einer Fractional N PLL
einzustellen. Was ich bisher mache ist a zu berechnen für den Integer N
mode. Dann kenne ich den Rest, den ich brauche um b/c zu bestimmen. Das
funktioniert allerdings nicht immer, da die werte ja diskret sind. Bei
manchen gewünschten Frequenzen habe ich durchaus mal eine Abweichung von
512 oder 256, je nach eingestellten Wert. Wie wird so ein System optimal
gelöst?
Gordon N. schrieb:> a + b/c
Das ist keine Gleichung, und da gibt es auch nichts zu
optimieren da du keine Forderungen bzw Kriterien dafür
aufgestellt hast.
Entweder du schreibst den kompletten Berechnungs-Weg hin
oder nennst gleich den Chip (inklusive Datenblatt) den
du verwenden willst.
fairwirrta schrieb:> Das ist keine Gleichung, und da gibt es auch nichts zu> optimieren da du keine Forderungen bzw Kriterien dafür> aufgestellt hast.
a + b/c = d so jetzt ist es eine Gleichung. Es geht um einen MAX2870.
Wahrscheinlich ergibt sich der Gesamtteiler aus dem Hauptteiler und dem
Quotienten, der dann die Vorgabe macht, für die Umschaltung der Faktoren
der PLL, um am Ende (jitternd) im Durchschnitt auf die gewünschte
Zielfrequenz zu gelangen. Das ist ja das gegebene Prinzip, wenn es
ganzzahlig nicht passt.
Richtig geraten?
Wie auch immer, sollte man das im Kopf können, wenn die Zahlen auf dem
Tisch liegen, vorausgesetzt (und jetzt mache ich mich wieder unbeliebt)
man hat ein ordentliches Abitur auf einem ordentlichen Gymnasium besucht
und in der 8. Klasse Mathe aufgepasst: Dort hieß das
"Partialbruchzerlegung".
Die U30-Franktion, die bachelor und die anderen, die das nicht können,
benutzen einfach Excel, um es auszuprobieren. Die mit Promotion bemühen
selbstredend MATLAB und die "signal processing toolbox".
Wenn das nicht hilft, einfach den SRUM-Master anhauen, ein Krisenmeeting
anzusetzen.
#
Jürgen S. schrieb:> 8. Klasse Mathe aufgepasst: Dort hieß das> "Partialbruchzerlegung"
Hut ab, wenn ihr das Schon ond er 8. Klasse hattet. Du bist einfach
Mathemann
Gordon N. schrieb:> a + b/c = d so jetzt ist es eine Gleichung. Es geht um einen MAX2870.
Ah, da war ich noch am Tippen, als das kam. Gleichwohl:
Ohne die Zahlen selber, kann dir hier keiner helfen, außer dir selber.
Wie wäre es mit einem Taschenrechner?
Die Aufgabe ist im Übrigen dieselbe wie die umgekehrte
Ganzzahlmultiplikation las Ersatz einer Division ohne Rest. Man muss nur
den Rest mit dem Divisor multiplizieren, um einen wieder berechenbaren
Quotienten zu bekommen.
171 / 47 = 3 + 30/47. Die "3" ist der Ganzzahl, die "30" der
"Modulowert" für 47. Die muss jetzt mit dem Skalierungsfaktor
multipliziert werden, z.B. 256 ->
= (3 x 256 + 30 * 256 / 47) / 256
-> 163 / 256 für die "30".
Deine Teiler sind also 163 und ab und zu 164. Gemäß dem Restverhältnis.
Wie man sieht funktioniert das bei meinem Beispiel nicht, weil es eine
"irrationale" Zahl ist (Klasse 9).
Auf Deutsch. Du kriegst deine PLL nur für rationale Teilerverhltnisse
ans Lafen oder musst selber mitzählen und rechnen und die
Teilerverhältnisse permanent anpassen, wie bei einer PDM.
Geht im FPGA!
Gordon N. schrieb:> a + b/c = d so jetzt ist es eine Gleichung.
Und auf was bitte soll die optimiert werden?
Gordon N. schrieb:> Ich möchte folgende Gleichung optimieren: a + b/c
Martop schrieb:> Hut ab, wenn ihr das Schon ond er 8. Klasse hattet. Du bist einfach> Mathemann
Ich weiss es deshalb weil es in der 8. den bundesweiten Mathewettbewerb
gab und dort eine solche Aufgabe dran kam.
Helmut -. schrieb:> Heißt der nicht SCRUM-Master oder bist du auch nur Bachelor?
Eigentlich ja, aber es ist ein Master auf dem dritten Bildungsweg, der
vergessen hat, sich bei Maren Gilzer ein "C" zu kaufen.
Jürgen S. schrieb:> Ich weiss es deshalb weil es in der 8. den bundesweiten Mathewettbewerb> gab und dort eine solche Aufgabe dran kam.
Bundesweiter Mathewettbewerb, merkste selber ne?
Es geht darum das algorithmisch möglichst effizient zu machen. Also
letztendlich b/c=d lösen unter der Bedingung, dass b und c ganze zahlen
sind und d positiv reelle Zahl. Schön wenn ihr alle promoviert habt und
Abitur habt. Ich mit meinem Hauptschulabschluss kann da nicht mithalten.
> und d positiv reelle Zahl
Dazu braucht es keine wesentlich mächtigere reelle Zahl.
Bei Brüchen kommen nur rationale Zahlen heraus.
> algorithmisch möglichst effizient
Vielleicht hat Bresenham da was im Angebot.
Echte zahlentheoretsche Geschütze sind schon unhandlich.
Jürgen S. schrieb:> Gordon N. schrieb:> 171 / 47 = 3 + 30/47. Die "3" ist der Ganzzahl, die "30" der> "Modulowert" für 47. Die muss jetzt mit dem Skalierungsfaktor> multipliziert werden, z.B. 256 ->>> = (3 x 256 + 30 * 256 / 47) / 256> -> 163 / 256 für die "30".>> Deine Teiler sind also 163 und ab und zu 164. Gemäß dem Restverhältnis.>> Wie man sieht funktioniert das bei meinem Beispiel nicht, weil es eine> "irrationale" Zahl ist (Klasse 9).
Das ist sicherlich keine irrationale Zahl.
Mario H. schrieb:> Gordon N. schrieb:>>> Fractional N PLL einzustellen>> Wurde bereits hier diskutiert, inkl. Lösungsvorschlag:> Beitrag "Re: RF Sysnthesizer PLL Optimierung".
Habe mir deinen code zur Einstellung der PLl angesehen. Sehe da mehrere
Probleme in dem Algorithmus. Da sind so viele Fälle nicht abgedeckt.
> > Wie man sieht funktioniert das bei meinem Beispiel> > nicht, weil es eine> > "irrationale" Zahl ist
Auch durch "Gejitter" aka Dithering kann der Wert
nur angenaehert werden.
Und man muss dafuer nicht unbedingt einen FPGA einspannen.
Im uebrigen wird die Zahl dadurch auch nicht irrational.
Es bleibt die Summe zweier rationaler Zahlen mit einer
gewissen Gewichtung.
> Da sind so viele Fälle nicht abgedeckt.
Dann nur zu! Frisch ans Werk.
Auch ein DDS hat das "near integer"-Problem. Integer ist der Fall, dass
bei jeder Schwingung dieselben Sinustabellenwerte benutzt werden, dann
ist das Signal sauber. "Near" liegt dicht daneben.
Je nach Anwendung gibt es auch die Möglichkeit, die Umkehrfunktion zu
benutzen. Wenn die Umrechnung von Wunschfrequenz auf Registerwerte nicht
geschlossen lösbar ist, kann die umgekehrte Richtung immer noch einfach
lösbar sein.
Beispiel ein SSB-Empfänger. Ich drehe mit dem großen Drehencoderknopf
übers Band, höre ein Quäken und stelle langsam die richtige Tonhöhe ein.
Erst jetzt möchte ich die Empfangsfrequenz wissen. Dazu brauche ich nur
die Umrechnungsformel (im Datenblatt erklärt) von Registerwerten zu
Frequenz, die exakt lösbar ist.
Rezy schrieb:>> Wie man sieht funktioniert das bei meinem Beispiel nicht, weil es eine>> "irrationale" Zahl ist (Klasse 9).> Das ist sicherlich keine irrationale Zahl.
Die Anführungszeichen hast du aber schon gelesen, oder?
Diplomierter schrieb:>> und d positiv reelle Zahl> Dazu braucht es keine wesentlich mächtigere reelle Zahl.> Bei Brüchen kommen nur rationale Zahlen heraus.
Das Problem sind weder rationale noch irrationale Zahlen, sondern die
Frage, ob sich die Zahl mit dem zur Verfügung stehenden Teiler der PLL
einstellen lässt. Ist dies ganzzahlig nicht der Fall, geht es nicht
anders, als den Teiler so geschickt zu wechseln, dass im Mittel diese
Frequenz heraus kommt.
Christoph db1uq K. schrieb:> Auch ein DDS hat das "near integer"-Problem.
...und auch dort wird es genau so gelöst :-)
Diplomierter schrieb:>> algorithmisch möglichst effizient> Vielleicht hat Bresenham da was im Angebot.
...auch der kann nur ganzzahlig lösbare Brüche ganzzahlig ohne Reste
lösen.
Martop schrieb:> in der 8. den bundesweiten Mathewettbewerb>> gab und dort eine solche Aufgabe dran kam.> Bundesweiter Mathewettbewerb, merkste selber ne?
Ja, "Bundeswettbewerb Mathematik" und ich meinte mich zu erinnern, dass
ich noch der für uns in der 8. war, weil ich mich an das Jahr erinnere.
Die Urkunde habe ich noch. Kann aber auch der Herbst der 9. gewesen
sein. Werde mal nachsehen. Die Aufgabe war damals jedenfalls das Finden
der Ganzzahlvorschrift für das Zeichnen einer Gerade - also
gewissermaßen Bresenham per Hand -> Malen auf Karokästchen.
Gordon N. schrieb:> Habe mir deinen code zur Einstellung der PLl angesehen. Sehe da mehrere> Probleme in dem Algorithmus. Da sind so viele Fälle nicht abgedeckt.
Sicher? Welcher Fall ist denn nicht abgedeckt? Und was sind die Probleme
mit dem Algorithmus?
Vielleicht sollte ich zur Vermeidung von Missverständnissen und für
zukünftige Anfragen einmal kurz erklären, was der in
Beitrag "Re: RF Sysnthesizer PLL Optimierung"
referenzierte Code macht.
Die Sache ist wirklich sehr einfach: Wenn man eine Dezimalzahl wie z.B.
1,23456789 in eine gemischte Zahl (d.h. eine ganze Zahl plus einen
echten Bruch) umwandeln will, muss man den ganzzahligen Teil abtrennen,
d.h. 1 + 0,23456789, und den echten Dezimalbruch (d.h. mit einer Null
vorm Komma) mit einer hinreichend großen Zehnerpotenz erweitern, hier
z.B. 1000000000. Dann erhält man für dieses Beispiel
Im nächsten Schritt kann man dann den Bruch dann in einen irreduziblen
(d.h. einen vollständig gekürzten) Bruch umwandeln, indem man Zähler und
Nenner durch den größten gemeinsamen Teiler (greatest commen divisor --
gcd) von 234567890 und 1000000000 teilt. Da gcd(234567890, 1000000000) =
10, erhält man für das Beispiel
Die Zehnerpotenz in diesem Beispiel, also 100000000 = 1e8, hat man
natürlich geeignet zu wählen. Sie darf für Fraktional-N-PLL-Anwendungen
nur so groß sein dass sie in das entsprechende Register des
PLL-Synthesizers passt. Wenn die Zehnerpotenz kleiner ist als die
Dezimalzahl Stellen hinter dem Komma hat, muss man im Zähler Stellen
abschneiden, und man bekommt nur eine Näherung. Für z.B. 1e6 anstatt 1e8
hat man
und es ist gcd(234567, 1000000) = 1, d.h. der Bruch ist bereits
irreduzibel.
In dem oben referenzierten Code sieht das so aus:
Dabei ist pll_div der Dezimalbruch, der in eine gemischte Zahl
umgewandelt werden soll, params.pll_int ist der ganzzahlige Anteil
(32-bit unsigned integer) und pll_frac der echte Dezimalbruch; precision
ist die Zehnerpotenz, mit der erweitert wird. Durch das Teilen mit
gcd_val erreicht man, dass der Bruch, der schließlich in die Register
des PLL-Chips geschrieben wird, irreduzibel ist, genau wie oben in dem
einfachen Beispiel.
Man sieht, dass man vermutlich ein wenig Laufzeitoptimierung betreiben
könnte, indem man round(pll_frac*precision) nicht zweimal ausrechnet,
sondern beim ersten Mal wegspeichert.
Die Berechnung des gcd ist Standard und folgt dem euklidischen
Algorithmus:
1
staticuint32_tgcd(uint32_ta,uint32_tb)
2
{
3
uint32_tremainder;
4
while(b!=0)
5
{
6
remainder=a%b;
7
a=b;
8
b=remainder;
9
}
10
returna;
11
}
Der in dem Projekt verwendete PLL-Baustein hat übrigens für den Nenner
des fraktionalen Anteils des PLL-Teilers einen Wertebereich von 2^32-1;
die verwendete precision = 1000000000 ist die größte Zehnerpotenz, die
dort hinein passt. Man könnte allerdings theoretisch auch einen noch
größeren Wert nehmen, der keine Zehnerpotenz ist.
Warum die Gymnastik mit dem gcd und dem Kürzen zu einem irreduziblen
Bruch? Man könnte den Bruch auch ungekürzt lassen, d.h. einfach mit
precision erweitern und im Zähler eventuell verbleibende
Nachkommastellen abschneiden. Der verwendete PLL-Baustein hat aber einen
Delta-Sigma-Modulator, bei dem die führende Integer Boundary Spur bei
f_PFD/Nenner liegt. D.h. je kleiner der Nenner, desto weiter rückt die
Störlinie vom Träger weg.
Ich bin mir allerdings bei erneuter Betrachtung nicht sicher, ob es
überhaupt einen Einfluss auf die Störlinien hat, wenn man den Bruch im
fraktionalen Anteil erweitert, d.h. ob für die Störlinie nur der Nenner
des irreduziblen Bruchs zählt. Ausprobiert habe ich das nicht. Es lohnt
sich eventuell, mal wieder im Lehrbuch unter Delta-Sigma-Modulator
nachzulesen.
Mario H. schrieb:> Der verwendete PLL-Baustein hat aber einen Delta-Sigma-Modulator
Worauf bezieht sich diese Aussage? Kann dieser den ungenauen Bruch so
ändern, dass es im Mittel stimmt? Weil so richtig genau "hin" kriegt man
es ja auch mit noch so großem Nenner nicht.
> 1,23456789 ~ 1 + 1234567 / 1000000
Ich korrigiere mal kurz:
1,23456789 ~ 1 + 1234568 / 1000000 wegen Rundung
Der Modulator müsste also die hintere 7 gegen die 8 so austauschen, daß
der richtige Wert herauskommt.
Olf schrieb:>> Der verwendete PLL-Baustein hat aber einen Delta-Sigma-Modulator> Worauf bezieht sich diese Aussage?
Auf den LMX2582. Dieser verwendet einen Delta-Sigma-Modulator. Das ist,
neben dem traditionellen Pulse Swallower, eine weitere Möglichkeit, eine
Fraktional-N-PLL zu realisieren.
> Kann dieser den ungenauen Bruch so ändern, dass es im Mittel stimmt?
Nein, den "ungenauen Bruch" nicht. Der Bruch, genauer gesagt die ganzen
Zahlen N, M, D, werden in der Software zu einem gegebenen Dezimalbruch a
berechnet, so dass a = N + M/D ist, und dann in den PLL-Baustein
geschrieben. Von den Näherungen, die dabei eventuell gemacht wurden,
weiß der PLL-Baustein natürlich nichts.
> Weil so richtig genau "hin" kriegt man es ja auch mit noch so> großem Nenner nicht.
Doch, für endliche Dezimalbrüche schon. Siehe das obige Beispiel
Das Gleichheitszeichen ist ernst gemeint, da ist nichts genähert.
> Ich korrigiere mal kurz 1,23456789 ~ 1 + 1234568 / 1000000> wegen Rundung
Okay, man kann hier natürlich runden, was sicher auch sinnvoll ist. Der
oben gepostete Code macht das auch, vermöge der round() Funktion.
Außerdem müsste es dann
heißen.
> Der Modulator müsste also die hintere 7 gegen die 8 so austauschen, daß> der richtige Wert herauskommt.
Der Delta-Sigma-Modulator hat mit der Berechnung, wie gesagt, erstmal
nichts zu tun, das passiert alles im Mikrocontroller. Der Modulator ist
im PLL-Baustein.
Jürgen S. schrieb:> Rezy schrieb:>>> Wie man sieht funktioniert das bei meinem Beispiel nicht, weil es eine>>> "irrationale" Zahl ist (Klasse 9).>> Das ist sicherlich keine irrationale Zahl.> Die Anführungszeichen hast du aber schon gelesen, oder?
Jep. Wenn ich also schreibe: Ich bin "Ingenieur", bin ich eigentlich gar
kein Ingenieur? Interessant. Wer so prahlt, sollte mit den
Begrifflichkeiten einfach auch korrekt umgehen.
Gordon N. schrieb:> Ich möchte folgende Gleichung optimieren: a + b/c> Dies ist die Ausgangsbasis um die Frequenz einer Fractional N PLL> einzustellen.
Du schreibst zwar Wirrwarr (das oben ist ein Ausdruck aber keine
Gleichung), aber ich meine dennoch den eigentlichen Sach-Hintergrund
darin zu erkennen.
Im Prinzip geht es darum, eine echt gebrochene Zahl (b/c) mit b<c so zu
finden, daß sie dem gewünschten Verhältnis ausreichend nahe kommt. Egal
ob nun ein bissel kleiner oder größer. Und zwar ohne daß man dafür viel
Rechenaufwand im DAP bzw. µC erzeugt. Und was "ausreichend" ist, muß
noch festgelegt werden.
Also die Frage
"Welche ganzen Zahlen b und c ergeben ein Teilerverhältnis b/c, das
einem beliebigen Wert x (mit 0 <= x < 1) möglichst nahe kommt.
Randbedingungen:
b < c
und c < 1024 (beispielsweise)
und wie errechnet man am einfachsten b und c bei Kenntnis von x ?"
Mir kommen da noch andere Randbedingungen in den Sinn, so z.B. wie
sinnvoll ist es, die Größen von b und c möglichst klein zu halten, wenn
man zugleich auf den wahrscheinlich auftretenden Jitter des
Ausgangssignales achtet? Gibt es da ein Optimum, wo sich Ablage und
Jitter die Waage halten?
Ich hatte das Problem vor einigen Jahren schon mal, als ich einen LO für
einen kleinen Empfänger (so von 9 kHz bis etwas mehr als 30 MHz) mit
einem SI5351 konstruiert hatte. Wenn ich mich recht erinnere, dann hatte
ich damals mit Eingabeln gearbeitet. Aber das war für manuelle
Abstimmung per Knopf am Gerät. Entsprechend niedrig waren die
Geschwindigkeits-Anforderungen.
W.S.
W.S. schrieb:> Mir kommen da noch andere Randbedingungen in den Sinn, so z.B. wie> sinnvoll ist es, die Größen von b und c möglichst klein zu halten, wenn> man zugleich auf den wahrscheinlich auftretenden Jitter des> Ausgangssignales achtet?
Eher anders herum: In der Regel wird die höchstmögliche Zwischenfrequenz
angestrebt, weil sich die in Relation zur später (um so stärker
heruntergeteilten) Endfrequenz besser kompensieren lässt, wobei es auf
den Chip ankommt. Auch wenn es sehr krumme Verhältnisse sind, kann das
auch etwas schlechter sein.
Rezy schrieb:> Jep. Wenn ich also schreibe: Ich bin "Ingenieur", bin ich eigentlich gar> kein Ingenieur?
Möchtest du dich nur wichtig machen, oder trägst du auch etwas zum Thema
bei?
Mario H. schrieb:> Man könnte allerdings theoretisch auch einen noch> größeren Wert nehmen, der keine Zehnerpotenz ist.
Ich würde immer zusehen, dass es gerade Zahl ist, weil sich dadurch ein
zwangsweise symmetrischer Takt ergibt. Es gibt einen Fall, wo man
ungerade Verhältnisse benötigt und zwar dann, wenn man eine DDS
antreiben will, die eine definierte Zielfrequenz hat, die zudem in der
Nähe von Nyquist liegt. Damit kann man dafür sorgen, dass sich die
Schwebung, die sich bildet in hohen, besser filterbaren Frequenzen
abbildet.
Jürgen S. schrieb:> Es gibt einen Fall, wo man> ungerade Verhältnisse benötigt und zwar dann, wenn man eine DDS> antreiben will,
Korrektur: Bezieht sich in dem Fall natürlich nicht auf den Systemtakt
mit dem die Daten rausgetaktet werden, sondern den Teiler, mit dem der
Datentakt der DSS, also deren Grundfrequenz, erzeugt wird.
Gordon N. schrieb:> Es geht darum das algorithmisch möglichst effizient zu machen.
Wir wissen immer noch nicht welche Zahlen es sind. Dann kann dir auch
jemand eine Lösung liefern. Auch eine mit wechselndem Teiler wie man das
in den Fällen macht, in denen es nicht ganzzahlig geht und wie ich das
schon oben vorgeschlagen hatte.
W.S. schrieb:> Mir kommen da noch andere Randbedingungen in den Sinn, so z.B. wie> sinnvoll ist es, die Größen von b und c möglichst klein zu halten, wenn> man zugleich auf den wahrscheinlich auftretenden Jitter des> Ausgangssignales achtet? Gibt es da ein Optimum, wo sich Ablage und> Jitter die Waage halten?
Bei einer einfachen Fraktional-N-PLL mit Pulse Swallower bzw. einem
Delta-Sigma-Modulator erster Ordnung kommt es nicht darauf an, welche
Darstellung des Bruchs man verwendet.
Bei Delta-Sigma mit höherer Ordnung jedoch schon. In den Datenblättern
von Texas Instrumens (LMX2582 z.B.) sowie in dem Opus Magnum von Dean
Banerjee (https://www.ti.com/cn/lit/ml/snaa106c/snaa106c.pdf) finden
sich ein paar Hinweise dazu. Man kann mit größerem Zähler und Nenner
(bei gleichem Verhältnis natürlich) die Sub-Fractional Spurs positiv
beeinflussen, was allerdings zu Lasten des Phasenrauschens (bzw. Jitter
im Zeitbereich) geht.
Da ich möglichst geringes Phasenrauschen erreichen wollte, habe ich den
in Beitrag "Re: PLL Gleichung lösen"
gezeigten Code so gestaltet, dass Zähler und Nenner immer relativ prim
sind (d.h. der Bruch vollständig gekürzt ist).
Ob das auch bewirkt, dass bei einer Delta-Sigma-PLL die Störtöne weiter
vom Träger weg liegen, was meiner Anwendung auch zupass käme und ich
eigentlich damit erreichen wollte, ist mir momentan nicht klar. Da
müsste ich, wie gesagt, die Nase mal etwas in die Bücher stecken. Ich
finde dazu auf die Schnelle auch keine Hinweise in den Unterlagen von
TI.
Jürgen S. schrieb:> Ich würde immer zusehen, dass es gerade Zahl ist, weil sich dadurch ein> zwangsweise symmetrischer Takt ergibt. Es gibt einen Fall, wo man> ungerade Verhältnisse benötigt und zwar dann, wenn man eine DDS> antreiben will, die eine definierte Zielfrequenz hat, die zudem in der> Nähe von Nyquist liegt. Damit kann man dafür sorgen, dass sich die> Schwebung, die sich bildet in hohen, besser filterbaren Frequenzen> abbildet.
Ich bin mir nicht sicher, ob ich verstanden habe, was Du damit meinst.
Aber für eine PLL-Anwendung sollte es darauf nicht ankommen. Schließlich
kann man auch nach dem Kürzen des Bruchs einen ungeraden Nenner
bekommen.
Jürgen S. schrieb:> Gordon N. schrieb:>> Es geht darum das algorithmisch möglichst effizient zu machen.> Wir wissen immer noch nicht welche Zahlen es sind. Dann kann dir auch> jemand eine Lösung liefern.
Gordon hat sich schon lange verabschiedet, wie es scheint und ich frage
mich auch, wo hier der Hase im Pfefferliegt?
Und:
Mario H. schrieb:> Bei einer einfachen Fraktional-N-PLL mit Pulse Swallower bzw. einem> Delta-Sigma-Modulator erster Ordnung kommt es nicht darauf an, welche> Darstellung des Bruchs man verwendet.
Es ist grob gesagt egal, wie genau der Nenner zu definieren ist, wenn er
aufgrund der Wunschtaktverhältnisse nicht als INTEGER darstellbar ist.
Da hilft das beste Kürzen nicht. Die Frequenz stimmt nicht(?)
Ob und in welcher Weise sich höhere Zahlen positiv auswirken, hängt von
der PLL ab. Es dürfte bei einem stabilen Takt ziemlich egal sein, ob es
eine gerade oder ungerade Zahl ist.
Thomas U. schrieb:> Gordon hat sich schon lange verabschiedet, wie es scheint und ich frage> mich auch, wo hier der Hase im Pfefferliegt?
Ganz einfach:
Es ist ein generelles Problem, wie man irgendwelche Integerzahlen
kombiniert, um sowohl einem gewünschten Teilerverhältnis möglichst nahe
zu kommen, als auch den Rechenaufwand in Grenzen zu halten, als auch
möglichst Jitter, Spurs usw. klein zu halten.
Das ist eine Rechen- und Optimierungsaufgabe, vor der andere Leute auch
stehen und die es gründlich zu diskutieren wert ist.
W.S.
W.S. schrieb:> Das ist eine Rechen- und Optimierungsaufgabe, vor der andere Leute auch> stehen und die es gründlich zu diskutieren wert ist.
Ja, wobei man meinen sollte, dass das gelöst sein müsste.
Lese ich aber diese links:
Beitrag "Re: PLL Gleichung lösen"
scheint das nicht unbedingt so zu sein.
Diese "spurs" sind ja am Ende immer irgendwie vorhanden. Als nix
"Verschwindibus". ?