Forum: Digitale Signalverarbeitung / DSP / Machine Learning CIC-Kompensationsfilter - womit designen?


von Burkhard K. (buks)


Lesenswert?

CIC-Filter weisen einen starken "Droop" im Passband auf. Zur 
Kompensation kann ein FIR-Filter mit entsprechender Signalanhebung bei 
höheren Frequenzen nachgeschaltet werden - soweit so klar.

Aber wie (und mit welcher Software) lässt sich so ein 
Kompensationsfilter "designen"? Es geht ja nicht nur um Fc, Dämpfung im 
Stoppband und Breite des Übergangs, sondern auch um eine 
frequenzabhändige Signalverstärkung abhängig von der Ordnung des 
CIC-Filters. Welche Ansätze sind hier üblich?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Kennste schon die Application Note AN455 von Altera? Da ist ein 
Matlab/Octave Script drinnen, mit dem sowas vorexerziert wird.

Gruss
WK

von Alex (Gast)


Lesenswert?

Ggf. Python?

von Burkhard K. (buks)


Lesenswert?

Dergute W. schrieb:

> Kennste schon die Application Note AN455 von Altera? Da ist ein
> Matlab/Octave Script drinnen, mit dem sowas vorexerziert wird.

Danke - genau was ich suche. Die fir2() Funktion gibt es 
praktischerweise auch für Octave.

von T.U.Darmstadt (Gast)


Lesenswert?

Guter Tipp!

von Meety (Gast)


Lesenswert?

Die löst aber doch nicht die Problematik des TE, oder? Die Frage ist 
doch mehr, WO lege ich die Anhebung hin und WO die fg des FIR. Meines 
Wissens muss die fg des FIR leicht oberhalb der des CIC liegen und die 
Anhebung kurz davor. Die Frage ist, was ist "kurz davor". 5%, 10% ??

von Dergute W. (derguteweka)


Lesenswert?

Moin,

RTFA455 (read the f*ing Appnote AN455) :)

Gruss
WK

von Sascha (Gast)


Lesenswert?

Hallo,
vielen Dank für die App.Node die ist doch recht gut.
Das bringt auch mich weiter in meinem Projekt.

von T.U.Darmstadt (Gast)


Lesenswert?

Ich schiebe noch mal eine Frage nach: Womit kann man den ripple beim CIC 
berechnen? Gibt es dafür eine einfache Formel? Ich habe mich daran 
versucht, bin aber wohl gescheitert. Die Werte scheinen nicht zu 
stimmen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Haste hier schon geguckt - Formel (9)?
https://dspguru.com/dsp/tutorials/cic-filter-introduction/

Gruss
WK

von J. S. (engineer) Benutzerseite


Lesenswert?

Das ist aber auch noch recht allgemein und erklärt noch nicht, wie man 
ein Filter auf die bestehende Applikation anpasst. Ein klassisches CIC 
bietet da auch nicht so viele Möglichkeiten.

von Michael W. (Gast)


Lesenswert?

Burkhard K. schrieb:
> Es geht ja ...
> ... auch um eine frequenzabhändige Signalverstärkung

Wo und warum benötigt man eine solche Funktion?

von Burkhard K. (buks)


Lesenswert?

Markus W. schrieb:
>> ... auch um eine frequenzabhändige Signalverstärkung
>
> Wo und warum benötigt man eine solche Funktion?

Hinter dem CIC-Filter, um dessen frequenzabhängigen Abfall ("droop") zu 
kompensieren.

von Edi M. (Gast)


Lesenswert?

Die einfachste Methode ist es nach wie vor, die Grenzfrequenz des 
FIR-filters unter die des CIC zu designen. Dann ist das Verhalten des 
CIC im Stoppband egal. Den Abfall im Passband kann man mit einem 
Hochpass kompensieren. Sind zwar drei Filter, aber einfach er zu 
handhaben.

von Michael W. (Gast)


Lesenswert?

Burkhard K. schrieb:
> Hinter dem CIC-Filter, um dessen frequenzabhängigen Abfall ("droop") zu
> kompensieren.

Ok, Ich habe es mit dem Verhalten im Stopbandverwechselt. Ich nehme an, 
das Filter verstärkt die Frequenzen in dem lau auslaufenden Bereich, um 
es letztlich länger auf 1 zu halten und dann steiler zu machen. Das ist 
dann wohl aber eher schmalbandig oder? Und es ist ein Bandpass?

Die nächste Frage wäre, wie man die Welligkeit im Stopband verringert?

Das kapiere Ich z.B: nicht:

Edi M. schrieb:
> Die einfachste Methode ist es nach wie vor, die Grenzfrequenz des
> FIR-filters unter die des CIC zu designen. Dann ist das Verhalten des
> CIC im Stoppband egal.

Wenn das ein TP ist, braucht es doch das CIC gar nicht mehr, weil es 
wirkungslos wäre.(?)

von Burkhard K. (buks)


Lesenswert?

Markus W. schrieb:
> Ich nehme an,
> das Filter verstärkt die Frequenzen in dem lau auslaufenden Bereich, um
> es letztlich länger auf 1 zu halten und dann steiler zu machen.
Der CIC hat eine Sinc-Charakteristik, die mittels des 
Kompensationsfilters im Passband linearisiert wird.


> Die nächste Frage wäre, wie man die Welligkeit im Stopband verringert?
Indem man Fc des Kompensationsfilters auf (fs/R)/4 legt.


Aber bitte schau doch selbst in die erwähnte AN455 
(https://www.altera.com/en_US/pdfs/literature/an/an455.pdf), dort werden 
die Zusammenhänge wirklich erschöpfend erklärt.

von Mike (Gast)


Lesenswert?

In Matlab gibt es ein Tool namens "CIC Compensation Interpolator". Es 
steckt in der DSP System Toolbox unter dsp.CICCompensationInterpolator.

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.