Forum: Digitale Signalverarbeitung / DSP / Machine Learning CIC-Filter für Halbierung der Abtastrate


von Autodidakt (Gast)



Lesenswert?

Hier und da werden einem CIC-Filter für Decimation wie sauer Bier 
angeboten. Also, rein aus akademischen Interesse, möchte ich die 
Samplingfrequenz halbieren.

-- Schritt 1:

CIC-Filter mit 10 Integratoren/Kammfilter, also effektiv 10 kaskadierte 
gleitenden Durchschnitte der 1. Ordnung (2 Koeffizienten), siehe 1. 
Bild.

Ok, klar, die 10 Stufen filtern nur sehr schwach, so das die nutzbare 
SNR nach der Dezimierung wegen Aliasing in großen Teilen schlecht ist.

-- Schritt 2:

CIC-Filter mit 6 Stufen 3. Ordnung (4 Koeffizienten) verwenden. Nützt 
aber nichts, da zu stark im Nutzbereich gedämpft wird und so auch nur 
ein erbärmliches SNR durch Aliasing übrig bleibt.

Also schon etwas gelernt: Die höhere Ordnung der gleitenden 
Durchschnitte bringt nichts.

-- Schritt 3:

Zwei gleitende Durchschnitte 2. Ordnung (3 Koeffizienten), können 
natürlich nicht als Integrator/Kammfilter bei Halbierung der 
Samplingrate aufgebaut werden, und dann wieder CIC mit 6 Stufen.

Ergibt ein für so manche Anwendung akzeptables Resultat. Allerdings auch 
hier nicht sehr berauschend.

-- Schritt 4:

Brute-Force, CIC-Struktur mit 32 Stufen.

Ja, geht. Aber: Der Rechenaufwand ist doch beachtlich. Der Datenpfad 
wird um 32 Bits aufgeblasen, wegen der ganzen Overflows der 
Integratoren. Und anschließend brauche ich ja doch wieder (wie bei allen 
anderen Varianten auch) einen FIR-Filter bei halbierter Samplingfrequenz 
um die Verzerrungen im Nutzbereich zu reparieren und das obere Drittel 
platt zu machen. Denn die Aliasing-Anteile möchte ich ja nicht haben.

-- Meine Frage:

Kann es sein, dass CIC-Filter überhaupt nicht sinnvoll sind bei einer 
Halbierung der Samplingfrequenz? Oder was übersehe ich? Geht man anders 
vor?

Literaturtipps?

von Autodidakt (Gast)


Lesenswert?

Ach, habe gerade gemerkt, meine Berechnung von "Filter+Mirror" 
(Aliasing) war nicht korrekt.

Im Groben stimmen die Werte in den vier angehängten Plots. Aber das 
leicht Wellige ist natürlich falsch (abs() vergessen).

von W.S. (Gast)


Lesenswert?

Autodidakt schrieb:
> Kann es sein, dass CIC-Filter überhaupt nicht sinnvoll sind...

Naja, selbst Hogenauers Zeitgenossen waren da recht skeptisch. Der 
eigentliche Sinn ist wohl, bei eher drastischen Reduktionen (so 100:1 
oder noch viel mehr) das Feld zu vermeiden, wo man die in dem Akku 
aufsummierten Einzelwerte zwischenspeichern müßte, um sie nachher wieder 
abzuziehen.

Aber wo du die zusätzlichen 32 Bit hernimmst für eine 2:1 Reduktion 
erschließt sich mir nicht. Plotte doch mal, was sich ergibt, wenn du es 
simpel machst, also jeden ersten Wert zwischenspeichern und die Summe 
aus diesem und dem zweiten Wert dann (um 1 Bit verbreitert) als 
halbierte Samplerate ausgeben. Also immer den Mittelwert aus zwei 
aufeinanderfolgenden Samples. Sowas sollte nicht wirklich auftragen und 
zumindest eine Halbierung der Samplerate wie gewünscht ergeben.

W.S.

von J. S. (engineer) Benutzerseite


Lesenswert?

Autodidakt schrieb:
> Hier und da werden einem CIC-Filter für Decimation wie sauer Bier
> angeboten.

Die exzessive Verwendung dieses Filters hat aus meiner Sicht mehrere 
Gründe, die miteinander zusammenhängen:

1) Es ist das Filter, das die beste Relation von Wirkung / Aufwand hat. 
Damit gilt es gemeinhin als "effektiv". Da Viele aber sehr ungenau 
formulieren, interpretieren das Manche als "funktionell effektiv".

2) Es ist sehr früh erfunden worden und hat sie etabliert. Da Wissen 
sich generell bei mäßig informierten Personen immer so verbreitet, dass 
gerne einer von anderen abschreibt, ohne darüber nachzudenken, bleibt es 
in Mode: Weil jeder CIC-Filter benutzt, benutzt sie jeder.

3) Im englischen Sprachraum wird das CIC gerne als "SINC3-Filter" 
bezeichnet. Da das SINC-Filter in der eigentlichen Bedeutung ein 
perfektes Tiefpass-Filter ist, wird dessen scheinbare Güte damit noch 
untermauert.

Dadurch tun sich sozusagen "Fallen" auf, in die so mancher schon 
reingetappt ist und sich dann über seinen gefilterten output wunderte.

Ein CIC ist meistens dann nutzbar, wenn man eine Kombination von CIC und 
FIR einsetzt und dabei zu einer Dezimation gelangt, die vom Aufwand her 
->effektiver und/oder platzsparender ist, als ein alleiniger FIR-Filter. 
Das ist oft, aber bei Weitem nicht immer der Fall.

von Simon D. (jamen)


Lesenswert?

Autodidakt schrieb:

> Kann es sein, dass CIC-Filter überhaupt nicht sinnvoll sind bei einer
> Halbierung der Samplingfrequenz? Oder was übersehe ich? Geht man anders
> vor?
>
> Literaturtipps?

Hier findest du eine, meiner Ansicht nach, gut verständliche 
Beschreibung und Motivation

https://www.dsprelated.com/showarticle/1337.php

In der Nachrichtentechnik kenne ich mich nicht so gut aus aber dafür mit 
Präzisions-ADC und da kommen CICs regelmäßig als Dezimationsfilter zum 
Einsatz. Die schlechten Filtereigenschaften sind wirklich nur dann 
akzeptabel, wenn man die durch Aliasing hinzugefügte Rauschleistung 
akzeptieren kann und mit der, im Vergleich zur Nyquistfrequenz, geringen 
Bandbreite zurechtkommt. Dann kann das auch ein gutes Filter sein. ADC 
mit einem Weitbandfilter, das, soweit ich weiß, als FIR implementiert 
wird, nutzen die Nyquistfrequenz deutlich besser aus und haben auch eine 
bessere Aliasunterdrückung. Die brauchen dann aber teilweise mehr als 
das zehnfache an Leistung und kosten auch entsprechend.

Wenn man nicht deutlich von der einfachen Implementierung der CIC 
profitieren kann, z. B. in einem IC oder FPGA, haben die aus meiner 
Sicht wenig Berechtigung. Jeder moderne Prozessorkern rechnet ein 
einfaches FIR genau so schnell wie ein einfaches CIC und dann muss man 
sich die Vorteile echt andichten. Das ist zumindest meine Meinung dazu. 
CICs haben mir meine Messtechnik schon oft genug schlechter gemacht, als 
sie mit einem vernünftigen FIR- oder IIR-Dezimationsfilter hätte sein 
können. Gerade bei eigentlich sehr guten Delta-Sigma-Kernen kann ein CIC 
leider viel kaputt machen.

CIC-Filter sind vermutlich dann besonders sinnvoll, wenn sehr stark 
dezimieren möchte, z. B. um den Faktor 1024. Man müsste ein FIR mit sehr 
vielen Taps verwenden, um den engen Durchlassbereich zu schaffen, oder 
in mehreren Stufen dezimieren, um den Aufwand zu reduzieren. Das ist in 
einem Prozessor vergleichsweise einfach aber in einem IC oder FPGA 
möglicherweise deutlich komplizierter. Dann verwendet man einfach ein 
CIC dritter, vierter oder fünfter Ordnung und schon hat man ein 
funktionelles Dezimationsfilter, das auch bei 1024 Taps einfach zu 
implementieren ist.

LG Simon

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

Simon D. schrieb:
> CIC-Filter sind vermutlich dann besonders sinnvoll, wenn sehr stark
> dezimieren möchte, z. B. um den Faktor 1024

Es bleibt trotzdem das Problem, das die nicht-ganzzahligen Frequenzen 
sich sehr gut durch das Filter hindurchdrängen können und dies auch bei 
mehrstufigen Anordnungen, weil die meist mit derselben Dezimationszahl 
arbeiten: Natürlich bietet es sich an, einen CIC3 mit 4 Bit = Faktor 16 
zu bauen und damit eine elegante Dezimation von Faktor 4096 zu bekommen. 
Dann favorisiert man allerdings eben immer wieder dieselben Oberwellen.

Daher braucht man für die meisten Anwendungen immer noch einen FIR 
dahinter - in Einzelfällen auch vor der CIC-Dezimation.

Es ist zudem ratsam, die Faktoren entsprechend zu verteilen, z.B. bei 
3en im im Terzabstand, also 1.00 : 1.25 : 1.56, also nicht Binärzahlen 
zu nehmen, sondern andere, die an die Aufgabe ankoppeln: Ich hatte 
anderswo hier schon mal meinen Decimator vorgestellt, der das 
48kHz-(SA)CD-Audio  auf die 49152 umsetzt, die man für bestimmte DACs 
braucht: 6,1 MBit / 128 (4*4*8) = 48kHz und eben 125 (5*5*5). Genau so 
kann man das weiter ausdehnen und Faktoren mit 4,5,6 verwenden, um durch 
120 zu Teilen und alles zu bekommen, was man für Zeit- und 
Winkelausgaben und deren Zwischenumrechungen braucht.

Noch interessanter sind Primzahlen, um die Periodizität zu erhöhen und 
damit den spektralen Fehler besser zu verteilen. Für Rauschen ist das 
effektiv. Bei einem gewünschten Faktor um 4000 bieten sich z.B. 13,17 
und 19 an.

Natürlich kann man dann nicht mehr so einfach Addieren und 
Differenzieren, weil die Überläufe und Diefferenzbildungen mit INT oder 
VHDL Vektoren nicht mehr automatisch stimmen, sondern manuell abgefangen 
werden müssen. Das erhöht schon mal schlagartig den Aufwand.

von J. S. (engineer) Benutzerseite


Lesenswert?

Was der TE ja eigentlich haben will, ist ein Halbbandfilter, nehme ich 
an. Dazu reicht meistens ein einfaches FIR-Filter mit z.B. 7 TAPs, bei 
denen man 5 Berechnungen braucht.

von Simon D. (jamen)


Lesenswert?

Hallo Jürgen,

das klingt sehr interessant, kannst du darauf nochmal genauer eingehen?

> Es bleibt trotzdem das Problem, das die nicht-ganzzahligen Frequenzen
> sich sehr gut durch das Filter hindurchdrängen können und dies auch bei
> mehrstufigen Anordnungen, weil die meist mit derselben Dezimationszahl
> arbeiten: Natürlich bietet es sich an, einen CIC3 mit 4 Bit = Faktor 16
> zu bauen und damit eine elegante Dezimation von Faktor 4096 zu bekommen.
> Dann favorisiert man allerdings eben immer wieder dieselben Oberwellen.

Meinst du mit durchdrängen oberhalb der Nyquistfrequenz nach der 
Dezimation oder einfach nur im "Sperrbereich" des Filters?

Und was meinst du damit?

> Es ist zudem ratsam, die Faktoren entsprechend zu verteilen, z.B. bei
> 3en im im Terzabstand, also 1.00 : 1.25 : 1.56, also nicht Binärzahlen
> zu nehmen, sondern andere, die an die Aufgabe ankoppeln

Ich verstehe darunter die Länge bzw. Bittiefe der drei CICs, die im 
entsprechenden Verhältnis sein sollen. War das so gemeint? Oder meinst 
du damit den Dezimationsfaktor?

LG Simon

von W.S. (Gast)


Lesenswert?

Jürgen S. schrieb:
> Was der TE ja eigentlich haben will, ist ein Halbbandfilter,

Darüber hat er sich nur sehr vage ausgelassen. Und ein CIC ist primär 
ein Verfahren, um die Samplerate zu verändern und nicht um zu filtern. 
Deswegen sollte man auch nicht über die "miese Filterwirkung" 
räsonnieren.

W.S.

von Simon D. (jamen)


Lesenswert?

W.S. schrieb:
> Jürgen S. schrieb:
>> Was der TE ja eigentlich haben will, ist ein Halbbandfilter,
>
> Darüber hat er sich nur sehr vage ausgelassen. Und ein CIC ist primär
> ein Verfahren, um die Samplerate zu verändern und nicht um zu filtern.
> Deswegen sollte man auch nicht über die "miese Filterwirkung"
> räsonnieren.
>
> W.S.

Aber es ist doch eine ganz essenzielle Funktion eines 
Dezimationsfilters, dass es eine gute Alias-Unterdrückung hat und das 
hat ein CIC eben oft leider gar nicht in dem Rahmen.

von J. S. (engineer) Benutzerseite


Lesenswert?

Simon D. schrieb:
> Meinst du mit durchdrängen oberhalb der Nyquistfrequenz nach der
> Dezimation oder einfach nur im "Sperrbereich" des Filters?
Sowohl als auch, bei allen Filtern muss man schauen, wie gut sie wo 
sperren, wenn man runtersampeln will - und die Nachteile des CIC machen 
sich natürlich besonders im Sperrbereich bemerkbar, weil dort eben doch 
relevant viel durchgelassen wird, was bei Nutzung als AA-Filter sher 
unglücklich ist, da dies eben "umgeklappt" wird. S.u.

W.S. schrieb:
>> Was der TE ja eigentlich haben will, ist ein Halbbandfilter,
> Darüber hat er sich nur sehr vage ausgelassen.
Ich beziehe mich auf den thread-Titel und seinen Satz:

Autodidakt schrieb:
> bei einer Halbierung der Samplingfrequenz?
das erfordert mal wenigstens einen HBF.

Simon D. schrieb:
> Oder meinst
> du damit den Dezimationsfaktor?
den lokalen Dezimationsfaktor jeder Kaskadenstufe. Bei klassischen 
binären Zahlen bilden sich vielfache Frequenzen der jeweils darunter 
liegenden und im Fall der unglücklichsten Ansteuerung kriegt man dann 
einen entsprechenden Störpeak. Mit anderen Zahlen ist das besser 
verteilt. Einfach mal durchsimulieren.

von J. S. (engineer) Benutzerseite


Lesenswert?

Simon D. schrieb:
>> Deswegen sollte man auch nicht über die "miese Filterwirkung"
>> räsonnieren.
>> W.S.
> Aber es ist doch eine ganz essenzielle Funktion eines
> Dezimationsfilters, dass es eine gute Alias-Unterdrückung hat und das
> hat ein CIC eben oft leider gar nicht in dem Rahmen.
Genau das.

Fürs Audio und viele andere Applikationen ist ein homogener 
Filterverlauf einfach besser. Sogar ein einfacher 6dB-IIR, der eine im 
Grenzbereich viel schlechtere Sperrwirkung hat und trotzdem schon mehr 
Rechen- und Resourcenaufwand macht, ist da einfach er zu handhaben, wenn 
die Abtastfrequenz ausreichend groß ist und dem flachen Verlauf Rechnung 
trägt.

Ich kann ein Beispiel eines Kunden benennen, wo es um die Regelung eines 
Antriebs ging. Dort wurden die Messsignale (letztlich die Motorenströme) 
per CIC gefiltert um die Oberwellen und Störungen rauszubekommen und den 
Sollstrom mit dem Iststrom vergleichen zu können. Eigentlich einfach.

Leider wurde von dem Entwickler (faktisch ein dualer Masterstudent in 
Ausbildung) ein "effektiver" CIC-Filter eingeführt und auch benutzt - 
lange, bevor ich in das Projekt kam. Da ich auch nach Wochen keinen 
Zugriff auf diesen Teil der Signalverarbeitung hatte, wusste ich das 
nicht. Die Firma hatte sehr lange mit der Regelung zu kämpfen. Einen 
Grund kann man sich leicht bildlich vorstellen, wenn man sich vor Augen 
führt, wie die dezimierten Motorströme aussehen, wenn die Motordrehzahl 
bei konstantem Drehmoment und damit konstantem Sollstrom, langsam 
steigt, wenn der Motor beschleunigt:

Die Oberwellen im Sperrbereich addieren zu einem Zusatzsignal, das sich 
gemäß den Wellen im Filterverlauf auf den eigentlichen Messwert als "AC" 
aufmoduliert - quasi ein kleiner Frequenz-Spannungs-Umsetzer. Es gibt 
dann sozusagen virtuelle Wellen im Stromprofil, dem die Regelung 
entgegen gehen will. Das kann zu mechanischem Ruckeln und Schwingen 
führen, in vielen Fällen schwingt die Regelung an sich - in etwa mit der 
Resonanzfrequenz, die sich aus der Totzeit der Messung und Verarbeitung 
ergibt. Solche Effekte wurden mir von den (ebenfalls jungen) Entwicklern 
am Teststand berichtet - aber helfen lassen, hatten sie sich nicht, 
obwohl sie um mein Wissen auf dem Gebiet wussten und ich in einem 
Projekt direkt davor sogar etwas sehr ähnliches gemacht hatte 
(Lautsprecher-Membranbewegung regeln).

Ich habe dann mal dem älteren Analogentwickler gesprochen, der für die 
Platine zuständig war und der wies mich auf den Einsatz des CIC hin, 
weil er auch schon den Verdacht hatte, dass da was faul sein könnte. Der 
konnte sich aber auch nicht durchsetzen, da ebenfalls Externer. Das 
letzte was ich noch gehört habe, war, dass der Bearbeiter (inzwischen 
Master) überzeugt davon ist, dass sein CIC stimmt und funktioniert.

Manchen Leuten ist einfach nicht zu helfen. Solche Fälle häufen sich 
aber nach meiner Erfahrung. Gerade die dualen Studenten und Jungbachelor 
haben heute eine sehr stabile Meinung von ihren Fähigkeiten. Ich weis 
nicht wie und was an solchen Bildungsstätten gelehrt wird, aber es 
scheint die Lernenden nicht dazu anzuregen, ihre Gedanken zu 
hinterfragen oder gemeinsam an einer Lösung zu arbeiten. Da fehlen 
manchmal einfache Grundlagen wie auch oft das große Gesamtverständnis. 
Ich bin mehr denn je ein Gegner dieser verkürzten Tempoausbildungen.

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Jürgen S. schrieb:
>> ... Dezimationsfilters, dass...
> Genau das.

Hat Hogenauer das Ding nun erfunden, um zu filtern oder zu dezimieren? 
Natürlich zum Dezimieren.

Ich kann durchaus verstehen, daß man gerne beides zugleich haben will, 
um Rechentakte zu sparen. Ein bissel filtern tut ja Hogenauers CIC auch, 
aber längst nicht so wie ein echtes Filter. Also klafft zwischen Wunsch 
und Realität eine Lücke. Man kann darüber jammern, aber das ist nicht 
produktiv. Seit ewig weiß man, daß der gleitende Mittelwert der 
schlappste aller Tiefpässe ist. Entweder lebt man damit oder man muß 
sich einen anderen Tiefpaß suchen.

W.S.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Autodidakt schrieb:
> Kann es sein, dass CIC-Filter überhaupt nicht sinnvoll sind bei einer
> Halbierung der Samplingfrequenz?
Ja.

Man kann CIC Filter auch noch "schaerfen" - wird aber auch bei 1:2 
Dezimation nicht viel bringen.
Guggstu Paper:
https://users.metu.edu.tr/ccandan/pub_dir/opt_sharpened_CIC_filt__extended__new.pdf

Gruss
WK

: Bearbeitet durch User
von Audiomann (Gast)


Angehängte Dateien:

Lesenswert?

Dergute W. schrieb:
> Man kann CIC Filter auch noch "schaerfen"
> Guggstu Paper:
Ein "getürkter" CIC-Filter von der Universität Ankara - wie geil ist das 
denn??? - "Scharf" wie voll de fett krasse Döner, Aldää.

In der letzten Grafik heißt es "output with Nyquist rate" - ist das 
nicht genau das für das Halbieren der Abtastfrequenz?

Macht das eigentlich viel mehr Aufwand? Diese Rückkopplungen sehen 
kompliziert aus.

von Autodidakt (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank an alle soweit, für den Input!

W.S. schrieb:
> Aber wo du die zusätzlichen 32 Bit hernimmst für eine 2:1 Reduktion
> erschließt sich mir nicht.

Nicht für eine 2:1, sondern für 32 Integratoren, Dezimation um den 
Faktor 2, und anschließend 32 Combs.

Da jedes Integrator/Comb-Paar einen Verstärkungsfaktor von 2 hat, ergibt 
das pro Paar ein zusätzliches Bit.

W.S. schrieb:
> Also immer den Mittelwert aus zwei aufeinanderfolgenden Samples.

Das ist kein CIC-Filter. Im Link von "Simon D." ist beschrieben, wie ein 
CIC-Filter funktioniert und woher die zusätzlichen Bits kommen.


Simon D. schrieb:
> Hier findest du eine, meiner Ansicht nach, gut verständliche
> Beschreibung und Motivation
>
> https://www.dsprelated.com/showarticle/1337.php

Ja, ist bekannt, vielen Dank trotzdem!


Dergute W. schrieb:
> Man kann CIC Filter auch noch "schaerfen" - wird aber auch bei 1:2
> Dezimation nicht viel bringen.
> Guggstu Paper:
> 
https://users.metu.edu.tr/ccandan/pub_dir/opt_sharpened_CIC_filt__extended__new.pdf

Vielen Dank! Das muss ich erst mal "verarbeiten".


Ansonsten habe ich mit mehrstufigen CIC-Filtern experimentiert. Im 
Angang habe ich mal eine Dezimierung um den Faktor 20 aus 3 
CIC-Strukturen durchgerechnet.

Ziel: Nyquist-Frequenz zu 50% ausnutzen, also Sampling mit 80 Hz und 
dann runter dezimieren auf 4 Hz. Die Nutzbandbreite geht dann bis 1 Hz.

Um das Kompensationsfilter nach dem 3. CIC-Filter habe ich mich noch 
nicht gekümmert. Mal sehen, wann ich das angehe.

Man sieht aber schön, solange man noch viel Abstand zum Nutzband hat, 
kommt man mit einem kleinen CIC-Filter schon sehr weit.

Das Beispiel geht von einem 12-Bit AD-Wandler aus.

Der 1. CIC-Filter hat eine Verstärkung von 5^5 = 3125, das sind 11,6 
Bits. D.h. mit 12 Bits vom Wandler plus 12 Bits Verstärkung, passt der 
erste CIC-Filter in 24-Bit-Arithmetik. 5 Integratoren und 5 Kammfilter 
mit 24 Bit, das ist für einen kleinen 8-Bit-Mikrocontroller nicht viel 
Arbeit.

Der 2. CIC-Filter benötigt auch 24 Bits. Dabei kann er 16 Bits der 
vorherigen Stufe verwenden.

Beim 3. CIC-Filter kommt man nicht um 32 Bits rum, da er alleine für 
seinen Verstärkungsfaktor schon 12 Bits benötigt.

Aber hier wird's interessant:

In meinen Berechnungen habe ich mit korreliertem Rauschen gerechnet. 
Allerdings ist Quantisierungsrauschen ja unkorreliert. D.h. durch die 
Filterei gewinnt man SNR.
Wenn das 3. CIC-Filter auf 16fach aufgebohrt wird, kommt man immer noch 
mit 32 Bits aus, wenn man 16 Bits vom 2. CIC-Filter als Input verwendet. 
In dieser Konstellation ist das korrelierte Rauschen durch Aliasing in 
allen 3 CIC-Filtern im Nutzbereich aber soweit weg, dass man beinahe 
durchgängig 15 Bit SNR hat.


Also, so habe ich das halt alles verstanden. Vielleicht findet ja jemand 
einen Denkfehler?

Als nächstes werde ich wohl mal schauen, ob ich noch einen Arduino Nano 
oder so habe, und das Raschen des AD-Wandlers mal untersuchen und mal 
testen, ob man wirklich 15 Bits rausholen kann, durch 20 faches 
Oversampling.

von Audiomann (Gast)


Lesenswert?

Autodidakt schrieb:
> ob man wirklich 15 Bits rausholen kann, durch 20 faches
> Oversampling.
Faktor 20 macht doch eigentlich maximal 4 Bits, oder? Und statistisch 
noch weniger.

Oder reden wir von einer 20-fachen Reduzierung der Abtastfrequenz um 
Faktor 2? Das wären 1Mio und statistisch 10 Bits.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Zusammenhangloses Gesabbel von mir:
Ich geb' mal zu bedenken, dass wenn man "wie bekloppt" die C und I 
Stufen kaskadiert, sich der Frequenzgang (und auch die Impulsantwort) 
des Apparats an eine Gaussfunktion annaehrt. Und ueberhaupt nicht an 
einen "idealen" Tiefpass.

Das Paper von der Uni Ankara oxidiert bei mir auch nur so rum. Im Buch 
"Streamlining DSP" von Rick Lyons gibt's uebrigens auch ein Kapitel 
ueber sharpened CIC Filter.

Als Altera noch Altera hiess und nicht Intel, hatten die eine 
Applikationnote AN455, in der war ein Matlab/Octavescript, mit dem ein 
Kompensationsfilter fuer den "Passband-Droop" errechnet werden konnte. 
Das script ist aber wohl mittlerweile aus der Dokumentation verschwunden 
worden.

Gruss
WK

von Autodidakt (Gast)


Lesenswert?

Audiomann schrieb:
> Faktor 20 macht doch eigentlich maximal 4 Bits, oder? Und statistisch
> noch weniger.

Ja, Du hast recht, ich habe mich verhaspelt.

Ich habe mich durch die Verstärkung des 1. CIC-Filters täuschen lassen. 
Seine Verstärkung ist 5^5 = 3125. Daraus die Wurzel ist 55.9 und das 
wären 5.8 Bits gewesen.

Aber das ist natürlich Blödsinn. Denn die Gesamtverstärkung ist nicht 
unkorreliert. Dann klappt das mit dem SNR-Gewinn natürlich nicht. 
Effektiv ist natürlich nur der Faktor 5, wegen der Dezimation um Faktor 
5, unkorreliert wirksam. D.h. der erste CIC-Filter gewinnt nur knapp 1.2 
Bits.

Entsprechend ist der Gewinn über alle 3 CIC-Filter natürlich nur 
Wurzel(20), also knapp 2.2 Bits.

D.h., wollte man 15 Bits aus dem 12 Bit AD-Wandler holen, müsste man 
mindestens mit Faktor 64 Oversamplen, oder?

von Autodidakt (Gast)


Lesenswert?

Dergute W. schrieb:
> Ich geb' mal zu bedenken, dass wenn man "wie bekloppt" die C und I
> Stufen kaskadiert, sich der Frequenzgang (und auch die Impulsantwort)
> des Apparats an eine Gaussfunktion annaehrt. Und ueberhaupt nicht an
> einen "idealen" Tiefpass.

Ja, das ist klar. Aber ich glaube, es ist kein Ziel von CIC-Filter, 
einen idealen Tiefpass zu erreichen.

Der Tiefpass muss ja nur so sein, dass Aliasing in der Dezimation der 
einzelnen Stufen, das SNR nicht verschlechtert.

von Autodidakt (Gast)


Angehängte Dateien:

Lesenswert?

So könnte eine Dezimation um Faktor 64 für einen 12-Bit-AD-Wandler der 
am Ende 15 Bits liefert aussehen, denken ich.

- Die 1. Stufe kann in 16 Bit gerechnet werden.
- Die 2. Stufe benötigt 24 Bit (Input 16 Bit der ersten Stufe).
- Die Stufen 3 und 4 müssen in 32 Bit gerechnet werden. Input
  auch jeweils 16 Bit der vorherigen Stufe.

Wäre aber ganz nützlich, wenn das mal jemand nachrechnen wollte... ;)

von Audiomann (Gast)


Lesenswert?

Autodidakt schrieb:
> So könnte eine Dezimation um Faktor 64 für einen 12-Bit-AD-Wandler der
> am Ende 15 Bits liefert aussehen, denken ich.

Eine kleine Zwischenfrage zum Grundverständnis:

Wenn die Aufgabe lautet:
> CIC-Filter für Halbierung der Abtastrate
Wieso muss dann so weit herunter dezimiert werden? Oder versuchst du die 
Theorie um die Kaskadenfilter zu überprüfen, weil die ist doch 
offensichtlich schon weit und breit diskutiert. Der Hogenauer ist schon 
lage tot!

von Autodidakt (Gast)


Lesenswert?

Audiomann schrieb:
> Wenn die Aufgabe lautet:
>> CIC-Filter für Halbierung der Abtastrate
> Wieso muss dann so weit herunter dezimiert werden?

Naa, das habe ich ja schon gemerkt, dass ein CIC-Filter zur Halbierung 
mit starker Ausnutzung des Nyquist-Bereichs nicht so dolle ist.

Darum jetzt einfach die weiteren Experimente, wie das ausgeht, wenn man 
stärker dezimiert.

Audiomann schrieb:
> Der Hogenauer ist schon lage tot!

Ja mei, der arme. Wenn man nicht studieren könnte/dürfte/täte, was 
andere sich so ausgedacht haben, eijeijei... Das wäre eine trostlose 
Welt.

Wie gesagt, geht einfach nur um Erkenntnisgewinn. Und Erkenntnis gewinnt 
man durchs machen noch am meisten.

von J. S. (engineer) Benutzerseite


Lesenswert?

Autodidakt schrieb:
> es ist kein Ziel von CIC-Filter,
> einen idealen Tiefpass zu erreichen.

Das ist der Satz des Tages: " CIC != SINC "

Autodidakt schrieb:
> - Die 1. Stufe kann in 16 Bit gerechnet werden.> - Die 2. Stufe benötigt 24 Bit (Input 16 Bit der ersten Stufe).> - Die Stufen 3 und 4 müssen in 32 Bit gerechnet werden. Input>   auch jeweils 16 Bit der vorherigen Stufe.>
> Wäre aber ganz nützlich, wenn das mal jemand nachrechnen wollte... ;)
Bitte sehr:

Man nehme das zu erwartende, extremste Spektrum für die minimale 
Aussteuerung, welches für einen CIC bei einer Konzentration der 
Frequenzen im hohen Bereich liegt und rechne es durch. Oder man weis, 
dass dort ein weißes Spektrum reinkommen wird (weil man nix weis) oder 
man weis, dass es ein Audiospektrum sein wird, oder man weis, dass es 
das DSD-Signal eines Audiosignals sein wird, oder man weis etwas 
anderes.

Die 16 Bit in der ersten Stufe sind also in aller Regel zuviel, weil die 
Fehler, die man macht, in den Folgestufen praktisch weggefiltert werden 
- aber im Einzelfall ist es eben auch zu wenig.

Autodidakt schrieb:
>> Der Hogenauer ist schon lage tot!
> Ja mei, der arme.
So wie es aussieht, scheint er noch am Leben:
https://www.linkedin.com/in/eugene-hogenauer-3a658928?original_referer=https%3A%2F%2Fwww.google.com%2F

... und auch seine Filter ist nicht ohne Bedeutung:

Was mich immer wieder wundert, ist der Umstand, dass es bis in die 
1980er gedauert hat, ihn zu definieren. Wenn ich mich zurück erinnere, 
haben wir Anfang der 1980er mit dem C64 auch schon AD-Wandler ausgelesen 
(Zilog) und dann durch mehrstufige Mittelung geglättet. Praktisch war 
das ein CIC, ohne dass man das genauer definiert hätte, oder wüsste, es 
es das noch nicht gibt. Wenn man da ein bisschen schneller gewesen wäre 
... :-)

Komischerweise sind nämlich große Portionen der Thematik um FIR-Filter 
schon sehr lange vorher geklärt gewesen. Vielleicht hat sich auch keiner 
getraut, so etwas Triviales zu publizieren :-)

von Mark (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe etwas interessantes dazu gefunden: In dem angehängten Bild wird 
der Verlauf des CIC dargestellt und zwar für einen SINC1, 3, und 5. Ich 
habe den Verlauf von 1,3,5 hintereinander geschalteten IIR dagegen 
gehalten. Kann es sein, dass Faktor 8 oder 10 der Samplefrequenz eine 
Art break even darstellt? Der CIC ist bei niedrigen Frequenzen generell 
besser, aber vom Verlauf -wenn man es extrapoliert, scheint bei 8 Ende 
der Fahnenstange zu sein.

von Gerhard H. (ghf)


Lesenswert?

CIC-Filter sind gut, wenn man wirklich heftig dezimieren will.
Etwa um ein paar Audiokanäle aus einem 100MHz-ADC-Datenstrom
eines SDR herauszufischen.
Das erledigen sie mit sehr wenig Rechenaufwand und mit einer
Struktur, die sich sehr schön in ein FPGA gießen lässt.
Ohne Multiplizierer und gut für's Grobe.

Ansonsten kommt das Sperrband immer wieder hoch, das lässt sich
durch Kaskadieren beheben, mit immer noch sehr wenig Aufwand.

Dann hängt das Passband gerne ein paar dB durch. Das kann
man mit einem kleinen FIR-Filter mit gegenläufigem Frequenzgang
im Passband ohne viel Getue ausgleichen. Das Verhalten des FIR
im Sperrbereich des CIC ist egal, dort kommt sowieso nichts mehr.

Ausserdem kann man das Korrekturfilter mit der niedrigen Ausgangs-
Datenrate des Dezimators takten. so dass man die leider notwendigen
Multiplizierer leicht über die Zeit mehrfach benutzen kann. Das
wird also auch nicht teuer.

Das Kompensationsfilter VOR das CIC zu setzen wäre wohl möglich,
aber doch sehr dumm.


Das Halbbandfilter ist ein FIR-Filter mit eingeschränkter Wahl der
Eckfrequenz. Dafür wird jeder 2. Filterkoeffizient 0, was seinen
Multiplizierer spart. Zusätzlich sind die verbliebenen Koeffizienten
symmetrisch, was die Zahl der Multiplizierer nochmal halbiert.

Gruß, Gerhard

: Bearbeitet durch User
von Autodidakt (Gast)


Lesenswert?

Jürgen S. schrieb:
> Nö
> Nö
> Nö

https://de.m.wikipedia.org/wiki/Datei:Dunning-Kruger-Effect.png
Jürgen S. schrieb:
> Man nehme das zu erwartende, extremste Spektrum für die minimale
> Aussteuerung,

   [weiterer sinnloser Quark]

Ein Moving-Average, und damit auch ein CIC-Filter, ist BIBO konform.

Jürgen S. schrieb:
> Die 16 Bit in der ersten Stufe sind also in aller Regel zuviel, weil die
> Fehler, die man macht, in den Folgestufen praktisch weggefiltert werden

Bei 12 Bit Input (2er Kompliment), benötigt eine CIC-Struktur aus 4 
Stufen und einer Dezimierung um den Faktor 2 exakt 16 Bits. Nicht mehr 
und nicht weniger.

Du weißt ja sicher, dass der Verstärkungsfaktor einer CIC-Struktur 
gleich dem Dezimierungsfaktor potenziert mit der Anzahl der Stufen ist, 
gell? Daraus den Logarithmus zur Basis 2 ergibt die Anzahl der 
zusätzlichen Bits die für die Implementierung einer CIC-Struktur. 
Weniger geht nicht, dann funktioniert es nicht, mehr bringt keinerlei 
Vorteil.

Es gibt auch keine phantasievollen Fehler, wie von Dir postuliert, die 
in einem CIC-Filter entstehen die man später irgendwie wegmachen müsste.



Mark schrieb:
> Kann es sein, dass Faktor 8 oder 10 der Samplefrequenz eine
> Art break even darstellt? Der CIC ist bei niedrigen Frequenzen generell
> besser, aber vom Verlauf -wenn man es extrapoliert, scheint bei 8 Ende
> der Fahnenstange zu sein.

Ja und nein. Die Dämpfung bei einem Moving-Average bzw. CIC ist 
tatsächlich asymptotisch begrenzt.

Das ist allerdings gar kein Nachteil beim CIC. Der interessante Teil an 
CIC-Filtern sind die "Täler" und nicht die "Berge". Diese Täler liegen 
nämlich genau da, wo man sie für eine Dezimierung (oder Interpolation) 
benötigt.

Dein Beispiel: Ich verstehe Deine Grafik so, dass die "8" die 
Nyquistfrequenz, also fs/2 ist. Danach und aus der Form, haben Deine 
Moving-Average-Filter 16 Koeffizienten.

Mit diesem CIC-Filter würde man nun um Faktor 8 oder 16 dezimieren. Und 
dann kommen einem die "Täler" zur Hilfe: Genau da wo durch die 
Dezimierung ein Aliasing in die Nutzbandbreite, ausgehen von 0 Hz, 
gespiegelt würde, dämpfen die CIC-Filter beinahe unendlich.

Wichtiges Detail dabei: Die (sinnvoll) verwendbare Bandbreite ist nur 
ein Teil der Bandbreite nach der Dezimation. Ich würde sagen, bei mehr 
als der halben Nyquistfrequenz (nach Dezimation) wird es sinnlos.

Zurück zu Deinem Beispiel: Würde man um den Faktor 8 dezimieren, also 
dezimierte Nyquistfrequenz wäre 1 Hz, würden durch Aliasing die 
Frequenzen 2, 4, 6 und 8 genau auf 0 Hz gespiegelt und dort eben als 
Aliasing-Rauschen auftreten. Aber an eben genau diesen Frequenzen ist 
der CIC-Filter ideal, so dass eben kein Aliasing auftritt.

Die nutzbare Bandbreite für das Nutzsignal ist dabei die Breite des Tals 
nach links und rechts an genau diesen Frequenzen für den angestrebten 
Rauschabstand. Bei 100dB SNR wären das in Deinem Beispiel etwa 0,2 Hz.

Der IIR mit 30dB hat übrigens bei 2 Hz keine 30dB Dämpfung. Somit wäre 
das SNR bei 0Hz nach der Dezimierung eben nur ca. 30dB.

Die CIC-Strukturen glänzen wirklich bei der Dezimierung bzw. 
Interpolation. Es sind nur Additionen, und genau da, wo man es braucht, 
ist ihre Dämpfung (beinahe) ideal.

von J. S. (engineer) Benutzerseite


Lesenswert?

Autodidakt schrieb:
> https://de.m.wikipedia.org/wiki/Datei:Dunning-Kruger-Effect.png
> Jürgen S. schrieb:
>> Man nehme das zu erwartende, extremste Spektrum für die minimale
>> Aussteuerung,
>
>    [weiterer sinnloser Quark]

Du solltest nicht Dinge als Quatsch bezeichnen, nur weil du sie 
inhaltlich nicht verstanden hast.

Autodidakt schrieb:
> Bei 12 Bit Input (2er Kompliment), benötigt eine CIC-Struktur aus 4
> Stufen und einer Dezimierung um den Faktor 2 exakt 16 Bits. Nicht mehr
> und nicht weniger.
Theoretisch. Praktisch hängt es von der Aussteuerung des Filters und dem 
Spektrum ab. Simuliere es mit unterschiedlichen Spektren, wenn du es 
nicht glaubst.

Autodidakt schrieb:
> Die CIC-Strukturen glänzen wirklich bei der Dezimierung bzw.
> ist ihre Dämpfung (beinahe) ideal.
Nur, wenn man Annahmen über die Frequenz machen kann, die in Relation 
zur Abtastfrequenz ins Filter läuft und nur wenn, das Nutzspektrum 
deutlich unterhalb der Abtastrate liegt, mit der weiterverarbeitet wird.

Ansonsten gilt das:

Jürgen S. schrieb:
> Ein CIC ist meistens dann nutzbar, wenn man eine Kombination von CIC und
> FIR einsetzt und dabei zu einer Dezimation gelangt

von Experte (Gast)


Lesenswert?

Jürgen S. schrieb:
> Theoretisch. Praktisch hängt es von der Aussteuerung des Filters und dem
> Spektrum ab.

Das ist vollkommener Blödsinn.

Wenn 12 Bit Zweikomplement reingehen, geht der Wertebereich der Samples 
von -2048 bis +2047.

Welches Spektrum soll nun diese Limitierung verletzen können? Auf welche 
Weise soll das geschehen?

Bleiben wir bei dem strittigen 12-Bit Input, 4 Stufiges CIC-Filter, 
Halbierung der Samplerate:

Mit jeder Stufe wird der mögliche Wertebereich verdoppelt, da zwei 
Samples addiert werden. Also:

  Input:      -2048 bis +2047
  Stufe 1:    -4096 bis +4094
  Stufe 2:    -8192 bis +8188
  Stufe 3:   -16384 bis +16376
  Stufe 4:   -32768 bis +32752

Durch die Dezimierung wird nun jedes 2. Ergebnis verworfen. Dadurch 
ändern sich die verbleibende Werte nicht.

D.h. das Ergebnis passt in diesem Fall immer in 16 Bit. Egal welche 
Folge von Eingangsdaten ankommen.


> Simuliere es mit unterschiedlichen Spektren, wenn du es
> nicht glaubst.

Zeig mir das ominöse Wunderspektrum, dass die Regeln der 
Grundschulmathematik bricht.

von W.S. (Gast)


Lesenswert?

Experte schrieb:
> Mit jeder Stufe wird der mögliche Wertebereich verdoppelt, da zwei
> Samples addiert werden.

Zumeist macht man es anders herum, also nach rechts heraus. Also um so 
etwa bei deinem Beispiel zu bleiben:
Input:   -2048..+2047 in Einerschritten
1. Stufe -2048..+2047 in Schritten 0.5
2. Stufe -2048..+2047 in Schritten 0.25
3. Stufe -2048..+2047 in Schritten 0.125
usw.
Also ebenfalls pro Stufe ein Bit mehr. Bloß irgendwann wird das albern, 
denn die "Präzision" ist eigentlich nur vorgetäuscht. Der ganze CIC ist 
eigentlich nur ein gleitender Mittelwert, aber der Aufwand für das 
Vorhalten eines Feldes für das Aufbewahren der Summanden bis zu ihrem 
jeweiligen Entfernen aus der Summe wird vermieden, indem man den jeweils 
vorherigen Summenbetrag zwischenspeichert. Und der richtet sich in 
seiner Bitbreite eben danach, wieviele Summanden in der Summe sind bzw. 
wie groß die Summe werden kann. Das wird alles erst wirklich 
interessant, wenn die Samplerate um Größenordnungen reduziert werden 
soll und nicht um den hier vorliegenden Fall, daß sie nur halbiert 
werden soll.

W.S.

von J. S. (engineer) Benutzerseite


Lesenswert?

W.S. schrieb:
> Und der richtet sich in
> seiner Bitbreite eben danach, wieviele Summanden in der Summe sind bzw.
> wie groß die Summe werden kann.

Exakt und diese Summe = faktisch die Aussteuerung hängt von Spektrum ab, 
wie ich schon mehrfach erklärt habe: Wenn es ein rosa Rauschen ist, geht 
eine anderen "Menge" an Information verloren, als bei weisem Rauschen. 
Von daher gilt das, was ich oben sagte und auch jeder Signalverarbeiter 
kennt:

Der Filter braucht am Ende deutlich weniger Auflösung, als die 
scheinbare Vektorbreite vorgibt. Man kann das sehr schön sehen, wenn 
MATLAB oder auch die FD-Tools von DSP- und FPGA-Herstellern die Vektoren 
festlegen. Man kann das auch sehr leicht ausprobieren und es täte 
Mitdiskutanten wie "Experte" und "Autodidakt" oder wer sich auch immer 
dahinter verbirgt, wirklich gut, das einfach mal zu tun, statt 
facebook-artig alles als "Blödsinn" abzutun, nur weil sie nicht lesen, 
nicht denken und nicht rechnen können oder wollen.

Der Diskussionsstil ist wirklich immer armseeliger in diesem Forum! 
Immer mehr dummdreiste Neulinge und Seitendiskutanten schmeißen ihr 
unqualifiziertes Halbwissen rein. Redet ihr in euren Firmen mit Kollegen 
eigentlich genau so, wenn diese eine andere Meinung haben, als ihr und 
Dinge infolge von mehr Wissen und mehr Erfahrung anders auslegen?

Themen wie CIC, FIR, Auslegung, Sinn und Nutzen sind seit Dekaden 
hinreichend diskutiert und erforscht.

W.S. schrieb:
> Das wird alles erst wirklich
> interessant, wenn die Samplerate um Größenordnungen reduziert werden
> soll und nicht um den hier vorliegenden Fall, daß sie nur halbiert
> werden soll.

Das ist auch so eine Sache dieses threads: Er heißt "CIC für die 
Halbierung der Abtastrate"

Wer Verständnis für die Problematik hat, verneint diese Fragestellung. 
Ein Blick auf die Sperrdämpfung reicht. Dass CIC für hohe Abtastraten 
mithin einsatzfähig sind, ist unbestritten - ändert aber nichts an dem 
Umstand dass sie es hier nicht sind. Für den Zweck der Halbierung der 
Abtastrate braucht es einen Halbbandfilter und der ist bis auf einige 
wenige Ausnahmen nicht mit einem CIC zu machen. Hatte ich oben schon 
erklärt.

Was mit einem CIC eben zu machen ist, ist die massive Dezimation. Die 
wiederum wird - alias oder nicht - die Oberwellen und damit Energie = 
Information aus dem Signal nehmen (bzw. bei ungeschickter Sampleraten / 
Dezimationsfaktorwahl ungewünschte Aliasenergie belassen). Heißt auf 
Deutsch: Es verschwinden in jedem Fall sehr viele Höhen (der Sinn des 
Filters) und damit Aussteuerung des Signals. Dies ist der Grund, warum 
man mit zunehmender Zahl an Stufen eben NICHT linear mehr Bits benötigt, 
wie das oben anklingt. Auch das habe ich nun hinreichend erklärt.

Wer das immer noch nicht einsehen will: Ordentliche Uni suchen, 1. 
Semester Nachrichtentechnik besuchen und dann lernen.

von -gb- (Gast)


Lesenswert?

Autodidakt schrieb:
> Kann es sein, dass CIC-Filter überhaupt nicht sinnvoll sind bei einer
> Halbierung der Samplingfrequenz? Oder was übersehe ich? Geht man anders
> vor?
Kein Mensch nutzt solche Filterstrukturen zum Halbieren der 
Abtastfrequenz.

W.S. schrieb:
> Hat Hogenauer das Ding nun erfunden, um zu filtern oder zu dezimieren?
> Natürlich zum Dezimieren.
Wo wäre für dich der grundlegende Unterschied? Jeder Dezimator ist ein 
Filter.

Simon D. schrieb:
> Aber es ist doch eine ganz essenzielle Funktion eines
> Dezimationsfilters, dass es eine gute Alias-Unterdrückung hat und das
> hat ein CIC eben oft leider gar nicht in dem Rahmen.
+1

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Georg B. schrieb:
> Wo wäre für dich der grundlegende Unterschied? Jeder Dezimator ist ein
> Filter.

Fuer mich ist ein Filter ein Filter und ein Dezimator ein Dezimator. Das 
ist ungefaher so wie eine Kuh und ein Fahrrad.
Das Filter aendert irgendwas am Signal, z.b. Frequenzgang, 
Gruppenlaufzeit, etc. An der Abtastrate aendert ein Filter erstmal nix. 
Fuer jedes Sample, was reingeht, kommt auch eines wieder raus aus'm 
Filter.

Ein Dezimator dagegen nimmt einfach stumpf aus jeweils N Samples rein, 1 
Sample und gibt das im Original wieder aus. Die anderen N-1 Samples 
fallen komplett unter den Tisch.
Das ist der Unterschied.

In der Praxis kann man unter bestimmten Umstaenden bei bestimmten 
Filtern da evtl. beides so miteinander vermauscheln, dass es fuer das 
unbedarfte Auge nicht mehr separat zu erkennen ist. Sollte man aber nur 
dann tun, wenn man weiss was man da tut.
Wenn man dann berechnen will, was bei dem Krempel rauskommt, tut man 
sich deutlich leichter, wenn man das schoen separat macht. Also erst ein 
Filter, mit dem unerwuenschte Spektralanteile aus dem Signal entfernt 
werden, dann der Dezimator, der weil (fast) keine unerwuenschten 
Spektralanteile mehr im Signal sind, das dann erst dezimieren kann, ohne 
das Abasttheorem mehr zu verletzen, als man's halt grad aushalten kann.

Gruss
WK

von -gb- (Gast)


Lesenswert?

In Orndung, also die formelle Trennung von Abtastratenreduzierung und 
Bandbreitenreduzierung. Da gehe ich mit.

In der Literatur und auch sonst ist es nur eben so, dass unter dem 
Begriff "Dezimator" auch noch mehr verstanden wird. Der Filter, der 
erforderlich ist, steckt da mit drinne.

von Hans (Gast)


Lesenswert?

Georg B. schrieb:
> "Dezimator" auch noch mehr verstanden wird. Der Filter, der
> erforderlich ist, steckt da mit drinne.
Der richtige Begriff wäre "Dezimationsfilter".

Hier haben wir z.B. das Formulierungsproblem:

Autodidakt schrieb:
> W.S. schrieb:
>> Also immer den Mittelwert aus zwei aufeinanderfolgenden Samples.
> Das ist kein CIC-Filter. Im Link von "Simon D." ist beschrieben, wie ein
> CIC-Filter funktioniert
Doch, DASS ist ein 2-stufiges Dezimationsfilter. Ein schlechtes, aber 
ein Filter und zwar eins das genau so funktioniert, wie Hogenauer es 
beschreibt. Nimm 3 Stück davon in Folge und du hast ein 1:8 
Dezimationsfilter.

Frage des Professors: Warum ist das nicht dasselbe, wie einfach direkt 8 
Werte zu addieren?

von Grobi (Gast)


Lesenswert?

Ich frage mal von der Seite in diesen thread hinein:

Aufgrund der Aussage hier
Beitrag "Re: CIC-Filter für Halbierung der Abtastrate"

wäre meine Frage: Ab wann lohnt ein CIC-Filter?

Faktor 2 geht nicht. Ok. Aber Faktor 64 wäre aber in Ordnung?

Baut man dann einen 4:4:4 oder nimmt gleich eine Summation über 64?

Ich frage deshalb:
Hans schrieb:
> Frage des Professors: Warum ist das nicht dasselbe, wie einfach direkt 8
> Werte zu addieren?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Grobi schrieb:
> wäre meine Frage: Ab wann lohnt ein CIC-Filter?
Ich wuerd' mal sagen: Das haengt stark davon ab, was dich entsprechende 
Rechenoperationen in entsprechender Genauigkeit auf deiner HW kosten.

>
> Faktor 2 geht nicht. Ok. Aber Faktor 64 wäre aber in Ordnung?
>
> Baut man dann einen 4:4:4 oder nimmt gleich eine Summation über 64?
>
Auch hier wuerd' ich sagen, dass da halt viel Zusaetzliches reinspielt; 
neben den oben genannten Kosten fuer Rechnerei auch was an 
Aliasunterdrueckung gefordert ist und an Ripple/Droop im Passband noch 
toleriert werden kann.
Ich wuerd' CICs eher als einen moeglichen Teil einer 
Dezimationsvorrichtung sehen. Die man dann entsprechend aufteilen oder 
mit anderen Filtern ergaenzen kann.

Gruss
WK

von Grobi (Gast)


Lesenswert?

Das war jetzt nicht so konkret, oder?
Der Rechenaufwand bei 4:4:4 scheint mir höher, als einfach 64x zu 
summieren.
Wo wäre der Nachteil? Ist die Summe, die ich nach jeder Addition eines 
neuen Wertes bekomme, "schlechter"?

Ich sehe den Vorteil darain, dass ich diese 64-er-Summe beliebig 
unterabtasten könnte. Ich glaube daber, dass die Qualität, also die 
Dämpfung der Höhen gefühlsmäßig schlechter ist, oder?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Grobi schrieb:
> Das war jetzt nicht so konkret, oder?
Ich glaub' halt nicht dran, dass es so ganz einfache Kochrezepte fuer 
alles auf jeder HW gibt.

> Der Rechenaufwand bei 4:4:4 scheint mir höher, als einfach 64x zu
> summieren.
> Wo wäre der Nachteil? Ist die Summe, die ich nach jeder Addition eines
> neuen Wertes bekomme, "schlechter"?
> Ich sehe den Vorteil darain, dass ich diese 64-er-Summe beliebig
> unterabtasten könnte. Ich glaube daber, dass die Qualität, also die
> Dämpfung der Höhen gefühlsmäßig schlechter ist, oder?

Die neue RTL-Daily-Soap: Gute Summen, schlechte Summen ;-)
Guck' dir halt die entsprechenden Frequenzgaenge an und entscheide, was 
dir da fuer deinen konkreten Fall besser oder schlechter gefaellt.

Gruss
WK

von J. S. (engineer) Benutzerseite


Lesenswert?

Dergute W. schrieb:
> Die neue RTL-Daily-Soap: Gute Summen, schlechte Summen ;-)

-----------------------------------------
Du hast viele Formeln,
doch weißt nicht, wohin du willst!
Bist immer auf der Suche;
bist du die Berechnung stillst!

Ich seh' viele Her(t)z-
sehe gute Wellen, schlechte Wellen
ein Integral das neu beginnt.
Durch Quint' und durch Terz,
wird in guten und in schlechten Summen
dein Ergebnis bestimmt!
-------------------------------------------

:D:D:D

Passt auch zu dem Thema:
Beitrag "Ergebnisse einer FFT zusammen fassen"

von -gb- (Gast)


Lesenswert?

Hans schrieb:
> Georg B. schrieb:
> Der richtige Begriff wäre "Dezimationsfilter".
.. bestehend aus Filter und Dezimator. Aber ok ...

> Frage des Professors: Warum ist das nicht dasselbe, wie einfach direkt 8
> Werte zu addieren?
Ja, bitte Herr Professor, warum ist das nicht das selbe?

von A. F. (chefdesigner)


Lesenswert?

Autodidakt schrieb:
> Das ist allerdings gar kein Nachteil beim CIC. Der interessante Teil an
> CIC-Filtern sind die "Täler" und nicht die "Berge". Diese Täler liegen
> nämlich genau da, wo man sie für eine Dezimierung (oder Interpolation)
> benötigt.

Ich denke, da hast du ein Verständnisproblem: Die Täler, wie du sie 
nennst, sind lokale Punkte, bei denen die gesampelte Frequenz genau ein 
Vielfaches der Abtastfrequenz ist. Das ist nicht das Verhältnis zwischen 
einschreibender und auslesender Frequenz. Das heißt, ein Signal, dessen 
Frequenz zufällig zu Abtastrate passt, wird in einem CIC völlig 
eliminiert, weil es intergermäßig hineinpasst. Für alle anderen gilt das 
nicht.

Aus dem Grund sind für die Beurteilung des Filters sehr wohl die "Berge" 
interessant.

Eine Frage zu diesem verschärften Filter:

Audiomann schrieb:
> In der letzten Grafik heißt es "output with Nyquist rate" - ist das
> nicht genau das für das Halbieren der Abtastfrequenz?
In der Erklärung dazu ersehe ich keine eindeutige Grafik für die 
Dämpfung im Stoppband. Das wäre zu untersuchen. Kann jemand schlüssig 
erklären, wie dieser "Ankara-Filter" arbeitet? Ich erblicke eine Reihe 
weiterer Divisionen und Verzögerungsglieder. Ich nehme an, es werden 
dann diese problematischen "Berge" abgetragen?

von He. (Gast)


Lesenswert?

Zusätzliche Integrationsglieder hinten in der Kette dürften auf die 
hohen Frequenzen wirken, rate ich einfach mal.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Geheimtip: Die wirken auf alle Frequenzen (bis auf genau eine).
Und alle Phasen...

scnr,
WK

von He. (Gast)


Lesenswert?

Ja schon, aber die Integrationsdauer wird ja von hinten nach vorne 
wieder herabgesetzt - so wie das gezeichnet ist - und damit sollten die 
Perioden mit der Zahl der Verzögerungsglieder korellieren. Diese ist 
endlich und damit sollte IMO das Spektrum bestimmt sein, das bearbeitet 
wird.

Denkfehler?

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.