Moin,
![Zitat](images/misc/quote_icon.png)
Zitat von
nobody0
Fehlerkorrektur und Gray-Code sind zwei verschiedene Dinge; die haben nix mit einander zu tun. Gray-Codierung ist nur eine robuste Codierung, bei der jeweils maximal ein Bit kippen kann und das bedeutet im worst case nur eine Phasenverschiebung, aber niemals einen falschen Wert.
Stoehn! Ich glaub', wir drehen uns ein wenig im Kreis. Jaaaaa - es kann nur ein Bit kippen, aber nur wenn ich mich auf diese +/-1 Bedingung beschraenke, was dann zur Folge hat, dass ich, wenn ich dieses Feature ausnutzen will, nur mit recht niedrigen Eingangsfrequenzen - wie im letzten Post durchgerechnet - arbeiten darf. Sonst geht eben diese Eigenschaft des Graycodes verloren.
![Zitat](images/misc/quote_icon.png)
Zitat von
nobody0
Unsinn;
Welch' starkes Wort ![Smilie](images/smilies/smile.gif)
![Zitat](images/misc/quote_icon.png)
Zitat von
nobody0
wenn mit 400 kHz vom Parallelport gelesen wird, hat das mit Sample-Frequenz des AD-Wandlers nix zu tun. Und wenn der AD-Wandler mit 4 MHz und Speed-Gray arbeitet, wird die durch Gray-Kodierung bedingte Nicht-Exaktheit der Ausgabe vernachlässigbar, denn mehr als 200 kHz kann man ohnehin nicht auflösen und die sind mit 4 MHz Speed-Gray sehr genau verfolgbar.
Mit Verlaub - bei obenstehendem will sich mir beim besten Willen nicht der Sinn erschliessen. Was nuetzt mir denn ein schneller AD-Wandler, der mit 4MSamples/sec wandelt, wenn ich bloss jedes 10. Sample einles'? Das ist doch rausgeschmissenes Geld.
Beispiel: Ich sample mal ein 100 KHz dreieckartiges Signal(lassen sich die Samples leichter im Kopf rechnen, als beim Sinus) mit einem 4MSamples/sec (von mir aus 12 bit) Wandler, dann fallen hinten folgende Werte raus:
Code:
0,100,200,300,400,500,600,700,800,900,
900,800,700,600,500,400,300,200,100,0,
0,-100,-200,-300,-400,-500,-600,-700,-800,-900,
-900,-800,-700,-600,-500,-400,-300,-200,-100,0,usw.
Davon les' ich jetzt nur jedes 10. Sample (also mit 400 KSamples/sec) ein; im PC kommen also z.b. an:
So, jetzt bin ich zu faul +900 und -900 in Graycode umzurechnen, aber wie willst du aus solchen Werten noch irgendwie erkennen koennen, obs nicht vielleicht doch ein anderer Wert war?
Und wozu muss der arme AD-Wandler sich so beeilen, und 10 Samples wandeln, von denen du eh' bloss eines einliest?
![Zitat](images/misc/quote_icon.png)
Zitat von
nobody0
Nach gray code counter oder grey code counter suchen ...
Oha, ich glaub' ich hab' was gefunden:
http://www.ornl.gov/sci/engineering_.../phenixadc.pdf
Jetzt wird mir auch klar, woher du dein AD-Wandlerbeispiel hast.
Aber: Der graycode wird nur wandlerintern verwendet, dort genau aus den Gruenden, die du anfuehrst, naemlich dass sich beim Zaehlen immer nur ein Bit aendern kann.
Dafuer ist der Graycode auch genau die richtige Wahl, nur - wie du in Fig.1 in dem pdf sehen kannst, ist da noch auf der rechten Seite ein Gray-Binary-Decoder, der den bei der Wandlung festgestellten Zaehlerstand wieder auf binaer bringt. D.h. irgendwo chipintern kanns sein, dass ein AD-Wandler mit graycodes arbeitet. Dort aus gutem Grund.
Kann aber genausogut sein, dasses ein Sigma-Delta Wandler ist, oder dass da ein Aeffchen mit 'nem Voltmeter und 'ner 10er Tastatur hockt, das ist eigentlich voellig wurscht.
Denn nach aussen hin - sprich: Zum Parallelport des PC hin bietet der Graycode eben so gut wie keinerlei Vorteile mehr, deshalb isses nicht so clever, den an der Stelle verwenden zu wollen...
Gruss
WK
Lesezeichen