Forum: Analoge Elektronik und Schaltungstechnik Signal schnell mit weniger Auflösung oder langsamer mit höherer Auflösung abtasten?


von Gustl B. (-gb-)


Lesenswert?

Hallo,
ich werde ein Signal digitalisieren und muss da Entscheidungen treffen. 
Das Signal selbst (ohne Rauschen) geht von DC bis so 100 kHZ. Rauschen 
ist da auch drauf (ich weiß aber noch nicht wie sehr), aber nehmen wir 
mal weißes Rauschen mit sagen wir 10 mV Amplitude an. Das Signal selbst 
ist Unipolar zwischen 0 und 12 V.

Verwendet man einen ADC mit 16 Bits ist ca. 0,2 mV eine Stufe (12 
V/2^16). Das liegt also schon sehr weit im Rauschen, es werden also 
mehrere niederwertige (10 mV/0,2 mV = 50 sind zwischen 5 und 6 in binär) 
Bits rauschen.
Weil ich auch mit der Datenrate zum PC haushalten muss stellt sich die 
Frage was sinnvoller ist:
Schneller abtasten dafür mit weniger Bits oder langsamer und mit mehr 
Bits.
Ich kann zwischen grob zwischen 10 Bits und 2,5 MSamples/s und 24 Bits 
und 1 MSample/s alle Kombinationen auswählen. Wenn ich noch vor der 
Übertragung zum PC z. B. Mittelwerte bilde sind auch höhere Abtastraten 
möglich.

Die Frage:
Wie entscheidet man wieviele Bits der ADC haben soll den man verwendet?

Vielen Dank!

von Chris F. (chfreund) Benutzerseite


Lesenswert?

Du musst die mögliche Bandbreite bestimmen (ggf. zusätzlich durch die 
Schaltung begrenzen) und dann etwas mehr als das doppelte der Bandbreite 
als Abtastrate nehmen.

von Gustl B. (-gb-)


Lesenswert?

Gut, das ist mir schon klar, dass ich also mindestens mit etwas mehr als 
dem Doppelten abtasten muss, also hier mit etwas über 200 kHz Minimum. 
Weil mein Signal aber nicht periodisch ist und ich nicht abtaste um nur 
die Frequenz zu bestimmen hätte ich auch gerne möglichst viele 
Samplewerte. Die Frage ist eher wie man bestimmt wie viele Bits sinnvoll 
sind.

von Willem B. (mr_willem)


Lesenswert?

Je nachdem wie gut deine Schaltung ist kann ein Oversampling hilfreich 
sein um die Qualität des digitalen Signals zu verbessern. Dann wäre der 
Ansatz mehrere Messungen mit weniger Bits zu bevorzugen. Allerdings 
kannst du das eventuell ja auch direkt in einem MCU implementieren und 
die Datenrate zum PC gering halten. Durch Oversampling werden die am 
Ende aufgezeichneten Daten ja nicht mehr.
Das Shannon-Nyquist Kriterium musst du hierbei natürlich trotzdem noch 
erfüllen. Aber das hast du ja im Prinzip selbst gesagt.

von Jemin K. (jkam)


Lesenswert?

Normalerweise dimensioniere ich so, dass die letzten beiden Bits 
Rauschen sind. Dann kann man hinterher durch Mittelwertbildung die 
effektive Auflösung erhöhen. Also nimm irgendwas mit 3-4 Bit Rauschen 
und fertig.
Was genau Du brauchst, wirst Du nur durch Testen herausfinden. Wir 
wissen ja nicht, was Du mit den Werten genau vorhast, welche Bandbreite 
das Rauschen hat etc...

von Chris F. (chfreund) Benutzerseite


Lesenswert?

Du verstehst auch mit dem Doppelten von was? Bestimme erst einmal die 
notwendige Abtastrate und was überbleibt nimmst Du dann für die 
Genauigkeit.

von Gustl B. (-gb-)


Lesenswert?

Chris F. schrieb:
> Du verstehst auch mit dem Doppelten von was?

Naja also das Signal (das echte Signal ohne Rauschen geht so bis 100 
kHz), also muss ich mindestens mit dem Doppelten davon abtasten.

Es geht im ein Transmissionselektronenmikroskop, unter der Probe sitzen 
quasi Photodetektoren, die gehen in einen Transimpedanzwandler und da 
kommt dann das Signal raus das ich digitalisieren soll.

Gescannt/also mit dem Strahl über die Probe gerastert wird so mit 10 
us/Pixel. Ist die Probe an einem Pixel also durchläsig und am nächsten 
nichtmehr, so ändert sich die von mit zu messende Spannung schlagartig 
innerhalb der 10 us von z. B. 10 V nach 1 V.

Willem B. schrieb:
> Allerdings
> kannst du das eventuell ja auch direkt in einem MCU implementieren und
> die Datenrate zum PC gering halten. Durch Oversampling werden die am
> Ende aufgezeichneten Daten ja nicht mehr.

Das stimmt, ich werde das im FPGA machen. Die Frage ist eben ob es 
besser ist mit weniger Bits aber schnell zu abzutasten oder nur langsam 
mit z. B. 500 kHz aber dafür 24 Bits.

Mein Gedanke ist halt dass ich während das Mikroskop ein Pixel der Probe 
durchleuchtet sich die Intensität am Detektor eigentlich nicht ändert. 
Sampelt man für jedes Pixel einmal dann bekommt man einen Wert mit 
Rauschen. Sampelt man öfter kann man das Rauschen wegmitteln.

von Sascha_ (Gast)


Lesenswert?

Gustl B. schrieb:

> Das stimmt, ich werde das im FPGA machen. Die Frage ist eben ob es
> besser ist mit weniger Bits aber schnell zu abzutasten oder nur langsam
> mit z. B. 500 kHz aber dafür 24 Bits.

Das ist eigentlich äquivalent wenn du richtig dezimierst.

Stell dir nen SigmaDelta ADC vor: Der hat 1 Bit Auflösung, tastet dafür 
aber mir ner hohen Abtastrate ab (sagen wir 1MS/s).

Dann wird dezimiert und es wird aus 1Bit pro µs zum Beispiel 24bit pro 
24µs (sind etwa 41kS/s glaube ich).

Der Vorteil besteht daraus dass die Rauschleistung des 
Quantisierungsrauschens in höhere Frequenzbereiche verschoben wird, wo 
du Sie leicht mit einem TP erster Ordnung wegfiltern kannst.

Ich persönlich würde daher vorsichtig (denn ich kenne die genauen 
Projektparameter nicht) zu der schnellsten Abtastrate tendieren, die 
dein ADC noch mit fast maximaler Auflösung abtasten kann. Bei einem 24 
Bit ADC so 22-23 Bit.

Das Signalrauschen und das Quantisierungsrauschen mitteln sich dann im 
nachgeschalteten TP raus, aber das Quantisierungsrauschen in der 
relevanten Bandbreite ist niedriger weil sich die Rauschleistung 
verteilt.

von Gustl B. (-gb-)


Lesenswert?

Sascha_ schrieb:
> Ich persönlich würde daher vorsichtig (denn ich kenne die genauen
> Projektparameter nicht) zu der schnellsten Abtastrate tendieren, die
> dein ADC noch mit fast maximaler Auflösung abtasten kann. Bei einem 24
> Bit ADC so 22-23 Bit.

Na noch habe ich keinen ADC rausgesucht. Ich bin mir eben unsicher ob 24 
Bits oder 20 da sinnvoll sind und ich nicht vielleicht lieber mit 12 
Bits aber 10 MSamples/s abtasten sollte.

> Das Signalrauschen und das Quantisierungsrauschen mitteln sich dann im
> nachgeschalteten TP raus, aber das Quantisierungsrauschen in der
> relevanten Bandbreite ist niedriger weil sich die Rauschleistung
> verteilt.

Das TP Filter, das muss ich dann aber selber noch nachschalten oder? Ich 
habe das alles leider nie gelernt und stehe jetzt vor dem Problem dass 
ich aus den vielen unterschiedlichen ADCs die es so zu kaufen gibt ein 
Modell raussuchen muss. In einem ersten Demoboard das ich baue werde ich 
wohl mehrere ADC Modelle testen.

von Johannes E. (cpt_nemo)


Lesenswert?

Wenn dein Rauschen im Bereich 10 mV Amplitude hat und ein LSB bei 16 Bit 
ist 0,2 mV, dann bringt eine noch höhere Auflösung keinen Vorteil mehr.

Wenn du das im FPGA auswertest, dann solltest du versuchen, vom 
A/D-Wandler eine möglichst hohe Sample-Rate zu bekommen und dann im FPGA 
Filtern. Ein weißes Rauschen kann man damit sehr gut abschwächen und 
dadurch die effektive Anzahl der Bits deutlich erhöhen.

16 Bit mit 1 MSPS oder schneller hört sich für mich sinnvoll an, 14 Bit 
wären vermutlich auch noch ausreichend, wenn das Signal sowieso schon so 
verrauscht ist. In so einem Fall ist eine hohe Abtastrate wichtiger als 
eine hohe Auflösung.

Wenn du einen A/D-Wandler mit Parallel-Interface verwendest, gibt es 
noch wesentlich schnellere Wandler, da könnte man z.B. mit 20 MSPS bei 
z.B 14 Bit aufzeichnen und dann im FPGA so filtern, dass man wieder auf 
eine Datenrate kommt, die der PC gut verarbeiten kann.

von egonotto (Gast)


Lesenswert?

Gustl B. schrieb:
> Ist die Probe an einem Pixel also durchläsig und am nächsten
> nichtmehr, so ändert sich die von mit zu messende Spannung schlagartig
> innerhalb der 10 us von z. B. 10 V nach 1 V.

Hallo Gustl,

dann hast du aber kein Signal mit nur 100kHz Bandbreite. Und ist 10mV 
Rauschen RMS? Dann ist das Spitze-Spitze Rauschen vermutlich in der 
Größenordnung von so 100mVpp.

Ich würde mal probieren mit 12 Bit so schnell wie möglich abzutasten.

MfG
egonotto

von Gustl B. (-gb-)


Lesenswert?

Johannes E. schrieb:
> [...] wenn das Signal sowieso schon so
> verrauscht ist. In so einem Fall ist eine hohe Abtastrate wichtiger als
> eine hohe Auflösung.

Genau solche Aussagen wollte ich hier hören in dem Thread, vielen Dank!

Ja gibt noch viel schnellere ADCs, das weiß ich, aber ich brauche am 
Ende 9 davon die gleichzeitig 9 solche Signale abtasten. Wenn die 
jeweils ein Parallel-Interface haben wird es schnell knapp mit den FPGA 
IOs (da muss ja auch noch anderes Zeug ran). Ich werde wohl ADCs mit SPI 
Interface verwenden.

egonotto schrieb:
> dann hast du aber kein Signal mit nur 100kHz Bandbreite. Und ist 10mV
> Rauschen RMS? Dann ist das Spitze-Spitze Rauschen vermutlich in der
> Größenordnung von so 100mVpp.
>
> Ich würde mal probieren mit 12 Bit so schnell wie möglich abzutasten.

Das ist auch eine brauchbare Antwort, Danke! Wie geschrieben weiß ich 
noch nicht wie stark das rauscht, die 10 mV waren nur ein Beispiel, gut 
möglich, dass es viel stärker rauscht. Genaueres kann ich ab nächstem 
Mittwoch sagen, da darf ich mal ein gutes Oszi ranhängen. Welche 
Bandbreite hat mein Signal dann? Also wenn das Mikroskop beim Scannen 
von einem zum nächsten Pixel geht, dann kann das schon ordentlich große 
Sprünge im Signal gehen, aber für die Dauer eines Pixels sollte die 
Spanung dann relativ konstant sein, nur eben mit Rauschen drauf.

von Chris F. (chfreund) Benutzerseite


Lesenswert?

egonotto schrieb:
> dann hast du aber kein Signal mit nur 100kHz Bandbreite.

sobald er das begriffen hat, findet er die Lösung auf Anhieb selber :D

von Gustl B. (-gb-)


Lesenswert?

Schon klar, schneller sampeln aber: Wieso eigentlich?

Das Mikroskop ist ja für 10 us bei jedem Pixel. Also reicht es doch wenn 
ich innerhalb dieser 10 us dieses jeweilige Pixel einmal messe. Dann 
geht es zum nächsten Pixel und das messe ich dann wieder einmal. Wo wäre 
da der Fehler? Ausser dass man dann nur einen Wert je Pixel bekommt und 
da irgendein Rauschen drauf ist das man nicht wegmitteln kann.

von Sascha_ (Gast)


Lesenswert?

Gustl B. schrieb:

> Das TP Filter, das muss ich dann aber selber noch nachschalten oder? Ich
> habe das alles leider nie gelernt und stehe jetzt vor dem Problem dass
> ich aus den vielen unterschiedlichen ADCs die es so zu kaufen gibt ein
> Modell raussuchen muss. In einem ersten Demoboard das ich baue werde ich
> wohl mehrere ADC Modelle testen.

FIR; digitaler Filter. In nem FPGA sehr einfach umzusetzen, einfach in 
Matlab die Koeffizienten geben lassen und dann das "Blockschaltbild" 
eines FIR nachbauen.

Bei dem was ich jetzt gelesen habe, hat dein Signal vermutlich 
Frequenzanteile bis in den MHz Bereich hinein und ein nicht zu 
unterschätzendes Rauschen (wobei man das ggf. mit analogen, aktiven 
Tiefpassfiltern bekämpfen sollte weil das nunmal praktisch immer zu 
Aliasing führt, egal wie schnell man abtastet).

Meine Herangehensweise wäre:
- Signal erstmal an einen Spektrumanalysator und ein Oszi hängen
- Herausfinden welche Amplitude und Bandbreite dein Nutzsignal hat. So 
wie ich das verstanden habe, ist diese 10V 1V Schaltflanke wichtig.
- TP 2. Ordnung bauen der das Signal vorm ADC erstmal bandbeitenbegrenzt
- ADC wählen der ausreichende Samplingrate und Auflösung bietet

Der ADC Baustein selbst ist eigentlich für den Erfolg des Projekts ein 
eher unwichtiger Teil, was vor dem ADC kommt ist entscheidend. Selbst 
der beste ADC haut dir fiese Aliasing Artefakte rein, wenn du ein 
verrauschtes, nicht bandbreitenbegrenztes Signal direkt draufgibst.

Um das entstehende Quantisierungsrauschen noch weitestgehend zu 
unterdrücken, würde ich dann einen Sigma Delta Wandler mit 16-24 Bit 
einsetzen der mit mindestens 500kS/s abtastet.
Die meisten käuflich zu erwerbenden Bausteine machen die Dezimierung 
schon selbst, du kannst mit einem FPGA natürlich die Sigma Delta 
Wandlung auch selbst machen. Brauchst du nur nen Komparator für.

Son FPGA ist ja sehr leistungsfähig wenn es um repetetive Aufgaben geht, 
diese Leistungsfähigkeit würde ich versuchen einzusetzen.

von HildeK (Gast)


Lesenswert?

Sascha_ schrieb:
> Der Vorteil besteht daraus dass die Rauschleistung des
> Quantisierungsrauschens in höhere Frequenzbereiche verschoben wird, wo
> du Sie leicht mit einem TP erster Ordnung wegfiltern kannst.

Ja, so reduziert man das Quantisierungsrauschen, nicht aber das 
Rauschen, das In-Band im Signal vorhanden ist.
Er hat aber einen 16Bit- oder 24Bit-Wandler zur Verfügung und da spielt 
der Anteil des Quantisierungsrauschens keine Rolle mehr.

von Sascha_ (Gast)


Lesenswert?

Gustl B. schrieb:
Ausser dass man dann nur einen Wert je Pixel bekommt und
> da irgendein Rauschen drauf ist das man nicht wegmitteln kann.

"irgendein Rauschen" wird dann zu "irgendein Messfehler".

von Sascha_ (Gast)


Lesenswert?

HildeK schrieb:
> Sascha_ schrieb:
>> Der Vorteil besteht daraus dass die Rauschleistung des
>> Quantisierungsrauschens in höhere Frequenzbereiche verschoben wird, wo
>> du Sie leicht mit einem TP erster Ordnung wegfiltern kannst.
>
> Ja, so reduziert man das Quantisierungsrauschen, nicht aber das
> Rauschen, das In-Band im Signal vorhanden ist.
> Er hat aber einen 16Bit- oder 24Bit-Wandler zur Verfügung und da spielt
> der Anteil des Quantisierungsrauschens keine Rolle mehr.

Ja, auf das Inband Rauschen bin ich mittlerweile eingegangen. Das muss 
natürlich weg.

von Gustl B. (-gb-)


Lesenswert?

Sascha_ schrieb:
> FIR; digitaler Filter. In nem FPGA sehr einfach umzusetzen, einfach in
> Matlab die Koeffizienten geben lassen und dann das "Blockschaltbild"
> eines FIR nachbauen.

Das hab ich schonmal gemacht. War nicht sonderlich schwer.

Sascha_ schrieb:
> - Signal erstmal an einen Spektrumanalysator und ein Oszi hängen

Das ist geplant für nächste Woche.

Sascha_ schrieb:
> - Herausfinden welche Amplitude und Bandbreite dein Nutzsignal hat. So
> wie ich das verstanden habe, ist diese 10V 1V Schaltflanke wichtig.

Also die Flanke hat natürlich hohe Frequenzanteile aber mir ist nicht 
klar ob die selber wichtig ist. Es wird von Pixel zu Pixel gerastert und 
während eines Pixels ist die Spannung eher stabil. Also wie 
Gleichspannung mit Rauschen. Wenn ich zu jedem Pixel die Spannung messe 
(das wird ja sowas wie eine Helligkeit jedes Pixels) dann ist die Flanke 
doch egal.

HildeK schrieb:
> Er hat aber einen 16Bit- oder 24Bit-Wandler zur Verfügung und da spielt
> der Anteil des Quantisierungsrauschens keine Rolle mehr.

Noch habe ich keine Wandler. Ich kann mir beliebige kaufen. Vielleicht 
auch einen 14 Bit mit dann 5 MSamples/s.

Sascha_ schrieb:
> "irgendein Rauschen" wird dann zu "irgendein Messfehler".

Exakt. Daher ist es für mich logisch bei jedem Pixel das Signal öfters 
abzutasten und so das Rauschen (das auf dem Signal selbst) durch 
Mittelung etwas kleiner zu bekommen.

von Gustl B. (-gb-)


Lesenswert?

Sascha_ schrieb:
> Ja, auf das Inband Rauschen bin ich mittlerweile eingegangen. Das muss
> natürlich weg.

Das ist aber unklar ob ich das wegbekomme. An den Geräten und Detektoren 
selbst kann ich nichts machen.

von HildeK (Gast)


Lesenswert?

Gustl B. schrieb:
> Noch habe ich keine Wandler. Ich kann mir beliebige kaufen. Vielleicht
> auch einen 14 Bit mit dann 5 MSamples/s.

Vielleicht bin ich schon zu lange aus dem Thema draußen.

Du hast ja oben gezeigt, dass 14Bit reichen müssten. OK, kann ich 
zustimmen.
Warum dann aber mit 5MS/s arbeiten, wenn die Bandbreite des Signals nur 
100kHz beträgt? Um einen einfacheren Eingangstiefpass haben zu können? 
Wenn ja, dann hast du natürlich den Rauschanteil zwischen den 100kHz und 
der ausreichenden Sperrdämpfung des 'einfachen' TP nachher auch mit im 
digitalisierten Signal. Natürlich kannst du dann mit einem digitalen 
Filter und einer Dezimierung noch nacharbeiten, das bei vorhandenen 
Ressourcen (FPGA) durchaus sinnvoll sein kann.
Sollte allerdings keine digitale Filterung im Fokus sein, dann würde ich 
mit einem steilen Eingangstiefpass arbeiten und die Abtastfrequenz so 
klein wie möglich halten - auch in Hinblick auf die Tatsache, dass der 
Datenpfad zum PC limitiert ist.

von Gustl B. (-gb-)


Lesenswert?

Dann ist halt die Frage: Lieber einen analogen Tiefpass am Eingang oder 
Werte mitteln? Ich bin für die Mittelung und zwar weil:

Wenn das Mikroskop mehrere Pixel (im Beispiel hier 3) nacheinander 
scannt, dann ist die Ausgangsspannung grob wie eine Treppe, also die 
Werte sind dann nur als Beispiel (bei 4 Samples/Abtastungen je Pixel) 
mit etwas Rauschen:


(vorherige Pixel) ..., 100, 98, 102, 103, 180, 200, 195, 198, 154, 151, 
149, 153, ... (weitere Pixel)

Ein Tiefpass macht da die Kanten weg, aber bei der Mittelung kann ich 
eben jeweils genau die vier Werte eines Pixels zusammenzählen. Das ist 
dann also kein gleitender Mittelwert. Aus meiner Sicht wird das Ergebnis 
dann besser wie wenn ich vorher ein analoges Filter habe und nur einmal 
je Pixel abtaste.

: Bearbeitet durch User
von Lurchi (Gast)


Lesenswert?

Für ein gutes Ergebnis sollte man sowohl analog als auch digital 
filtern. Durch die Kombination mit digitaler Filterung hinter den ADC 
kann man das analoge Filter einfacher auslegen, ganz einsparen kann man 
es aber nicht. Nur analog filtern tut man sich heute (seit etwa 1990) 
eigentlich nicht mehr an, wenn es nicht besonders schnell sein muss.

Sigma delta Wandler haben die digitale Filterung schon drin - besser 
kriegt man es im FPGA auch nicht unbedingt hin. Man könnte also 
tatsächlich auch einen SD ADC mit 100 kHz Abtastrate (halt so schnell 
wie die Pixel reinkommen sollten) nutzen. Wenn man schon so viel 
Rauschen hat, wären auch 16 Bit Auflösung ausreichend. Ein Grund ggf. 
doch schneller abzutasten wäre, wenn man die Filterkurve individuell 
anpassen will da sollten dann etwa 500 kHz, also 5 mal mehr als die 
Zieldaten ausreichend sein.

Mit einem abtastenden ADC (z.B. SAR) muss man dagegen schneller 
abtasten. Also eher so 1-10 MHz und dann digital filtern, denn sonst 
wird das analoge anti-aliasing Fitler zu aufwändig.

Mitteln wäre dabei ein möglicher, aber nicht unbedingt guter Filter. 
Eine 16 fache Überabtastung entspricht 2 zusätzlichen Bits an Auflösung 
- entsprechend geringer darf die Auflösung also ausfallen. ggf. würden 
auch schon 12 Bit ausreichen. Die schnellere Abtastung macht aber das 
Interface aufwändiger.

von Sascha_ (Gast)


Lesenswert?

Gustl B. schrieb:
> Dann ist halt die Frage: Lieber einen analogen Tiefpass am Eingang
> oder
> Werte mitteln?

Beides. Analoger Anti-Aliasing Filter ist sowieso nötig.

Auf Analogseite hast du die Möglichkeit, entweder NUR AAF zu betreiben, 
dann wird der Analogfilter eher einfach. Im krassesten Fall ein RC 
Glied.
Dann musst du allerdings stark oversamplen.

Oder du machst auf der Analogseite einen aktiven Tiefpass zweiter 
Ordnung gefolgt von einem Integrator (Optimalfilter gegen Rauschen) und 
kannst dann relativ langsam samplen.

Bei Verwendung eines FPGA würde ich das Zwischending "AAF 2.Ordnung + 
Oversampling" wählen. Der hat genug Rechenleistung um digital zu machen, 
was der Integrator analog tun würde.

von Lurchi (Gast)


Lesenswert?

Bei einer Grenzfrequenz im Bereich 500 kHz für den analogen Filter kann 
man auch bereits an LC Filter denken. Auch der TIA für den Sensor kann 
bereits einen Teil der Filterfunktion übernehmen.

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.