www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Delta-Sigma-Modulator und SINC3 Filter


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Ich habe eine Analog-Digital-Wandlung mit einem Delta-Sigma-Modulator 2. 
Ordnung und einem SINC Filter 3. Ordnung aufgebaut. Funktioniert 
wunderbar.

Mir ist nur nicht so ganz klar warum der Sinc3 Filter eine Ordnung höher 
sein muss als der Modulator.

Weiß von euch jemand warum das so ist?
mfg
Michael

Autor: Morris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich verwende einen delta sigma wandler ad7401. der digitale 
tiefpassfilter wurde auch gleich in vhdl im datenblatt mitgeliefert. 
jedoch designed für xilinx fpga's. nun verwende ich aber ein altera fpga 
cyclone 2 und ich bekomme den filter nicht 100%ig zumlaufen mal wird das 
signal richtig zurückgewonnen und manchmal nicht, ohne das ich etwas am 
code geändert habe...

gibt es dazu erfarhugsberichte bzw kann mir da jemand weiterhelfen?

THX

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe auch einen Sigma-Delta-Modulator 2. Ordnung, allerdings weiß ich 
nicht, wie ich in Octave den Tiefpass 3.Ordnung dazu realieiseren kann.
Hat jemand ne Idee?

Danke

Autor: Lara (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich interessiere mich auch dafür, warum der sinc-Filter ein Ordnung 
höher sein muss als die Ordnung des SD-Modulators.
@Michael
Konnest du deine Frage klären?
Danke!

Autor: Mario Klebsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich hab mit die Verilog-Quelle im Datenblatt mal angesehen. Darin wird 
für die Stufen nach der Decimation ein Ripple-Clock verwendet. Quartus 
wird da vermutlich auch drüber meckern und Du bekommts möglicherweise 
Probleme im Timing-Analysator.

Ich hab den Code nicht ausprobiert, aber Quartus hat bisher fast immer 
gejammert, wenn ich in meinen Designs etwas ähnliches mache.

Anstatt die hinteren Stufen mit dem dezimierten WordClock laufen zu 
lassen würde ich ein WordClockEn bauen, der beim Wraparound des 
Decimation-Counters einen Takt lang aktiv ist. In den folgenden 
always-Blöcken würde ich nach dem asynchronen Reset ein if (WordClockEn) 
einbauen.

Das ganze Design würde dann mit nur noch einem Takt laufen.

73, Mario

Autor: wp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das Sinc Filter muss nicht eine Ordnung höher sein als der Modulator. Es 
ist genauso möglich eine andere Ordnung zu wählen oder sogar ein völlig 
anderes Tiefpassfilter (z.B. IIR statt FIR).

Das Sinc3 Filter liefert aber bei einem Modulator zweiter Ordnung sehr 
gute Ergebnisse bei vergleichbar geringem Hardware-Aufwand (FPGA-Slices 
etc.). Das gilt für Downsampling-Raten ab etwa 16.

Die Auflösung eines Delta-Sigma-Modulators wird aus seinem 
Signal-Rausch-Abstand (SNR) unter Annahme eines idealen Tiefpassfilters 
berechnet. Mit idealen Tiefpassfiltern ist das aber so eine Sache in der 
Praxis. Das Sinc3 Filter ist bei einem Modulator zweiter Ordnung jedoch 
ein guter Kompromiss zwischen erreichter Auflösung (berechnet aus SNR) 
und Hardware-Aufwand.

Gruß
wp

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bin ebenfalls im Datenblatt des AD7401 über die Aussage gestolpert, 
dass ein sinc3 gut zu einem Sigma-Delta-Modulator zweiter Ordnung passen 
würde. Warum nur...
Ein paar Gedanken dazu, bitte um Kommentar. @Moderator: Eigentlich 
gehört das ins DSP-Forum. Verschieben?

Lesenswert als Hintergrund:

[1] 
http://www.embedded.com/design/configurable-system...

[2] 
http://repository.upenn.edu/cgi/viewcontent.cgi?ar...

Die Sache mit dem Modulator

Wie man als Praktiker weiss (Statistiker bitte weghören oder 
präzisieren), halbiert sich das Rauschen, wenn man vier verrauschte 
Messwerte mittelt. Auf einen ADC-Ausgang bezogen bekommt man für jede 
Halbierung der Abtastrate durch Mittelung ein halbes Bit mehr Auflösung. 
Wenn man also einen 1-Bit-ADC hätte und 44 kHz mit 16 Bit haben wollte, 
müsste der 44 kHz*2^(16/0.5) = 189 GHz Abtastrate haben. Nicht 
praktikabel.

Daher spielt man mit dem Rauschspektrum. Typischerweise hat man einen 
1-Bit-Wandler, der mit 16 MHz getaktet ist und man möchte ein Signal bis 
1 kHz sehen. Man braucht also nur einen winzigen Teil des ursprünglichen 
Spektrums. Man kann jetzt das Rauschen aus dem Frequenzspektrum von 0... 
ein paar kHz herausschieben und in den oberen uninteressanten Bereich 
verlagern. Dort filtert man es heraus und fertig ist die 
Rauschunterdrückung! Genau das machen Sigma-Delta-Modulatoren. Siehe 
[2], Bild 12. Wie man sieht, wird das Rauschen von den tiefen in hohe 
Frequenzen geschoben, je höher die Ordnung des Modulators ist, umso 
stärker. Präziser ausgedrückt erreicht man bei tiefen Frequenzen durch 
einen Modulator L-ter Ordnung L+0.5 Bit mehr Auflösung pro Dezimierung 
um Faktor 2. Für einen Modulator 2. Ordnung (wie im AD7401) also 2.5 Bit 
pro Faktor 2. Damit würde für CD-Qualität 44 kHz*2^(16/2.5) = 3.7 Mhz 
reichen, was vernünftiger klingt.
Voraussetzung ist natürlich ein Filter, das die oberen Frequenzbänder 
(wohin das Rauschen geschippt wurde) auch entfernen kann.

Sinc3

Sinc3 klingt etwa so kompliziert wie Galliumnitrid-Kaskode oder 
Unobtainium-Tunnelkontakt. Tatsächlich sind sinc-Filter aber nur 
gleitende Mittelwertfilter. In der üblichen hardwareoptimierten 
Inkarnation ist die Länge des Mittelwerts gleich dem 
Dezimierungsverhältnis, ein 1:16-dezimierendes Filter mittelt also über 
16 Werte. Gleitende Mittelwertfilter sind so ziemlich die schlechtesten 
Filter, die man sich ausdenken kann. Tatsächlich macht es Mühe, ein 
Filter zu entwickeln, das noch schlechter performt. Verwirrend ist 
übrigens auch noch die Bezeichnung sinc - sie kommt daher, dass die 
Amplitude im Frequenzbereich einem sin(x)/x ähnelt (was man sinc nennt). 
Nicht verwechseln darf man das mit das mit der Impulsantwort (=Kernel) 
eines idealen Tiefpass. Bei einem idealen Tiefpass (also 
"Brickwall"-Frequenzantwort) ist die Impulsantwort ein sinc (man kann 
auch Tiefpass-FIR-Filter so entwerfen - sinc+Fenster - aber 
Parks-McClellan ist besser). Im Gegensatz hat der gleitende Mittelwert 
eine "Brickwall"-Impulsantwort und eine sinc-Frequenzantwort. Grad 
andersherum, nicht verwechseln!

Zur Illustration habe ich das einen Sigma-Delta-Modulator 2. Ordnung mit 
verschiedenen Filtern simuliert. Siehe Bild. Man sieht das 
Frequenzspektrum des Modulators mit einem Eingangssignal von 1 kHz 
(klebt links an der Y-Achse) und einer Modulatorfrequenz von 16 kHz. Man 
sieht schön, wie das Rauschen im unteren Frequenzbereich unter -100 dB 
geht und oberhalb stark ansteigt. An der orangefarbenen Kurve sieht man, 
warum der gleitende Mittelwert so schlecht ist: Mit steigender Frequenz 
ist kaum eine Absenkung der Amplitude vorhanden und abgesehen von 
regelmässigen Senken (die von der gleichmässigen Verteilung der 
Filternullstellen auf dem Einheitskreis in der Z-Ebene kommen, siehe 
auch "Kammfilter") kommt das Signal immer wieder hoch.
Warum nimmt man also trotzdem dieses Filter? Weil es mit sensationell 
geringem Aufwand zu implementieren ist. Man braucht für eine 
Filterordnung nur ein Register für den Integrator und eins für den 
Differenzierer - das wars. Ein FIR-Filter mit besserer Qualität bräuchte 
ein Koeffizienten-ROM und einen Multiplizierer - um Grössenordnungen 
aufwendiger. Ein IIR-Filter hätte Probleme mit Auflösung und Stabilität.
Wie verbessert man ein erbärmliches Filter? Man wendet es mehrfach an. 
Das nennt man dann sincx - ein sinc3 sind einfach drei Mittelwertfilter 
hintereinandergeschaltet. Auch das geht unglaublich effizient mit der 
bekannten CIC-Filterstruktur.
In der Grafik sieht man das Ergebnis. Während ein einzelnes sinc-Filter 
bei höheren Frequenzen keine Absenkung bringt, ist sinc2 etwas besser 
und sinc3 noch mehr. Tatsächlich dominiert im sinc3-Spektrum der Bereich 
um 100-300 kHz - die höherfrequenten "Rauschhügel" haben allesamt eine 
viel niedrigere Amplitude und fallen nicht mehr ins Gewicht. Hier sieht 
man auch, warum ein sinc4 nicht viel mehr bringen würde: Im unteren 
Frequenzbereich bringen die sinc-Filter nur wenig Dämpfung (dort wurde 
aber ja auch das Rauschen vom Modulator weggeschoben) und obenraus ist 
drei mal sinc gut genug.
In der Grafik sieht man übrigens das gesamte Frequenzspektrum vor der 
Dezimierung. Durch die Dezimierung um den Faktor 32 bleibt ein Spektrum 
von 0 - 250 kHz übrig und die oberen Frequenzanteile werden einfach nach 
unten hineingespiegelt (und dazuaddiert). Man braucht also eine gute 
HF-Unterdrückung (sozusagen), damit das aufsummierte Rauschen der oberen 
Bänder nicht die SNR im Basisband verringert.

Und nochmal zur Wiederholung: Das Rauschspektrum des Modulators (blaue 
Kurve) hängt von der Ordnung ab. Ein SD-Modulator 1., 3. oder höherer 
Ordnung würde ein anderes Spektrum erzeugen, wofür dann vielleicht 
andere Filter optimal passen würden. Die Aussage im Datenblatt des 
AD7401 stammt wohl von einem Praktiker, der das alles schon ein paar mal 
durchexerziert hat. Wieviel Knowhow doch in einem so kurzen Satz stecken 
kann.

Kommentare, Korrekturen, Verbesserungen?

Gruss Martin

PS: Natürlich aus lesenswert das DSP-Buch von Richard G. Lyons

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.