Forum: Digitale Signalverarbeitung / DSP / Machine Learning Einfacher IIR-Filter für langsamen UC verbessern


von Rechenfreak (Gast)


Lesenswert?

Ich brauche eine Art Frequenzweiche für einen AVR. Geht in die Richtung 
Beitrag "Audio Equalizer"

Als einfachste Rechnung habe ich einen TP gebaut, der so funktioniert: 
TPWert(t+1) = TPWert(t)*0,9 + Input(t)*0,1 was zu einem -6dB Verhalten 
oberhalb der GF führt. Als Hochpassausgang nehme ich einfach den Rest, 
also HPWert(t+1= = Input(t)  - TPWert(t+1).

Frage 1: Ist das so ok, oder muss ich den TPWert(t) nehmen, um die 
Differenz zu bilden?

Ich weiß, dass ich den HP auch anders, getrennt berechnen kann, muss 
aber in dem Fall sicherstellen, dass zu jedem Zeitpunkt die Summe aus 
beiden Werten wieder ein weißes Signal ergibt, so als wäre es 
ungefiltert.

Frage 2: Kann ich das kaskadieren, also einfach zwei 
hintereinanderschalten?

Wie muss ich die Dämpfung/Trennung einstellen? Kleiner, Grösser oder 
genau gleich dem Wert im ersten Filter?  Beim Probieren scheint es so zu 
sein, dass der Knick beim gleichen Wert auch an derselben GF liegt und 
ab dann die erwünschten 12dB auftreten.

Kann ich auch dann wieder einfach die Differenz zwischen dem Input und 
dem zweifach gedämpften TP bilden?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Zur Berechnung analoger Frequenzweichen habe ich hier mal Literatur 
gepostet:
Beitrag "Re: Rechtecksignal in Tiefpassfilter"

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Rechenfreak schrieb:

> Als einfachste Rechnung habe ich einen TP gebaut, der so funktioniert:
> TPWert(t+1) = TPWert(t)*0,9 + Input(t)*0,1 was zu einem -6dB Verhalten
> oberhalb der GF führt. Als Hochpassausgang nehme ich einfach den Rest,
> also HPWert(t+1= = Input(t)  - TPWert(t+1).

Hm - 0.9 und 0.1 sind so dezimal, mit 0.875 und 0.125 ging's sicher 
schneller ;-)

> Frage 1: Ist das so ok, oder muss ich den TPWert(t) nehmen, um die
> Differenz zu bilden?

So ausm Bauch raus koennt's schon passen, guck' einfach, ob wenn du in 
den Apparat einen Dirac reingibst auch die Summe von TP und HP Antwort 
einen Dirac ergeben.

> Ich weiß, dass ich den HP auch anders, getrennt berechnen kann, muss
> aber in dem Fall sicherstellen, dass zu jedem Zeitpunkt die Summe aus
> beiden Werten wieder ein weißes Signal ergibt, so als wäre es
> ungefiltert.
Wenn du das so haben willst, dann passt das schon so.

> Frage 2: Kann ich das kaskadieren, also einfach zwei
> hintereinanderschalten?
Ja kannst du schon machen, aber da kommt nix allzu dolles dabei raus. Du 
kannst damit nur immer einen reellen Pol in deinem Filter kriegen, 
kein kongungiert-komplexes Polpaar. Das brauchts aber bei allen 
"vernuenftigen" Filterapproximationen mit Ordung >1.

> Kann ich auch dann wieder einfach die Differenz zwischen dem Input und
> dem zweifach gedämpften TP bilden?
Ja.

Gruss
WK

von Rechenfreak (Gast)


Lesenswert?

Danke für die bisherigen Antworten.

Dergute W. schrieb:
> damit nur immer einen reellen Pol in deinem Filter kriegen,
> kein kongungiert-komplexes Polpaar.
Danke für diesen input. Dazu muss ich aber nochmals Literatur wälzen, 
was das nochmals genau war. Ich frage dann später gfs. nochmals nach.

Christoph db1uq K. schrieb:
> Zur Berechnung analoger Frequenzweichen habe ich hier mal Literatur
> gepostet:
> Beitrag "Re: Rechtecksignal in Tiefpassfilter"
Ok, aber das bezieht sich doch auf reelle Bauteile. Kriege ich das auch 
in überschaubare SW hinein?

von Joe F. (easylife)


Lesenswert?

Um bei der Frequenzweiche einen Übergang zu erreichen, der möglichst 
keinen Pegelsprung oder Phasenänderung hat, bietet sich ein 
Linkwitz-Riley Crossover an. Digital lässt sich dieser mit 4 IIR 
Butterworth Filter implementieren (-> LR4). Jeweils 2 hintereinander 
geschaltete Filter werden als TP, 2 als HP verwendet.
Als Filter-Algorithmus sollte man die klassiscche Bi-Quad 
Implementierung verwenden, für die Koeffizienten-Berechnung finde ich 
dieses Excel-Sheet sehr praktisch:
https://www.minidsp.com/images/fbfiles/files/All_digital_coefs_v1-20101026.zip
https://www.minidsp.com/applications/advanced-tools/advanced-biquad-programming

von Gunar (Gast)


Lesenswert?

Rechenfreak schrieb:

> Ok, aber das bezieht sich doch auf reelle Bauteile. Kriege ich das auch
> in überschaubare SW hinein?

Du als Rechenfreak wirst da keine Probleme haben.

von Rechenfreak (Gast)


Angehängte Dateien:

Lesenswert?

Gunar schrieb:
> Du als Rechenfreak wirst da keine Probleme haben.
Danke für diesen hilfreichen Beitrag.

Dergute W. schrieb:
> Wenn du das so haben willst, dann passt das schon so.
Das war der erste Denkansatz. Allerdings sehe ich, dass es bei 
Rechtecken zu enormen Sprüngen kommt, weil der Tiefpassanteil in der 
Phase wegläuft und das Abziehen zu einem gewaltigen Offset führt.

Joe F. schrieb:
> Linkwitz-Riley Crossover an
Eigentlich wollte ich das möglichst einfach halten, wegen der 
Rechenzeiten.

Würde denn dieses Filter das Problem der Phase beheben? D.h. kommt der 
HP dann auch so raus, dass er phasenverschoben ist und ohne Offset kommt 
- trotzdem aber die Summe perfekt passt?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Rechenfreak schrieb:
> Allerdings sehe ich, dass es bei
> Rechtecken zu enormen Sprüngen kommt, weil der Tiefpassanteil in der
> Phase wegläuft und das Abziehen zu einem gewaltigen Offset führt.

Da kann ich dir nicht folgen. Das klingt komisch. Was stellst du denn 
auf dem Bild dar? Schraubst du da von links nach rechts auch an der 
Grenzfrequenz?

Joe F. schrieb:
> Um bei der Frequenzweiche einen Übergang zu erreichen, der möglichst
> keinen Pegelsprung oder Phasenänderung hat, bietet sich ein
> Linkwitz-Riley Crossover an.

Linkwitz-Riley TP/HP Kombis haben eine (kleine) Beule in der 
Gruppenlaufzeit um die Grenzfrequenz herum. Daher ist die Summer der 
(Dirac)Impulsantworten von HP und TP kein Dirac.
Nochdazu ist der Rechenaufwand fuer so ein "serioeses" Filter (aufm AVR) 
deutlich hoeher.

Gruss
WK

von Gustl B. (-gb-)


Lesenswert?

Dergute W. schrieb:
> Schraubst du da von links nach rechts auch an der
> Grenzfrequenz?

Würde der Rechteck dann nicht an allen Ecken runder werden? Das sieht 
sehr nach Lade- und Entladekurve aus, so als käme Kapazität hinzu.

von Karl K. (karl2go)


Lesenswert?

Rechenfreak schrieb:
> TPWert(t+1) = TPWert(t)*0,9 + Input(t)*0,1

Du rechnest aber hoffentlich nicht mit Floats?

Mit Int wäre es:

tpwert8 := tpwert8 - tpwert8 div 8 + input;

tpwert8 ist 8mal so groß wie der Eingangswert. Das ist nötig um 
Summierung von Rundungsfehlern zu vermeiden. Natürlich muss der 8fache 
Eingangsbereich in die Variable passen.

div 8 macht ein Shiftright, was wenige Takte dauert. Alles andere dauert 
deutlich länger. Teiler muss unbedingt 2^n sein. Mit anderen Teilern 
wird eine Software-Division aufgerufen, die ewig dauert.

Es gibt noch einen Rundungsfehler mit div 8, sind die Werte nur positiv 
kann man das so vermeiden:

tpwert8 := input + tpwert8 - (tpwert8 + 4) div 8;

von Rechenfreak (Gast)


Lesenswert?

Karl K. schrieb:
> Es gibt noch einen Rundungsfehler mit div 8, sind die Werte nur positiv
> kann man das so vermeiden:
>
> tpwert8 := input + tpwert8 - (tpwert8 + 4) div 8;
Die Technik ist mir bekannt, aber es muesste auch für negative Werte 
klappen. Ich runde meistens in einem Schritt und entscheide dann über 
Addition und Subtraktion.


Dergute W. schrieb:
> Schraubst du da von links nach rechts auch an der
> Grenzfrequenz?
Ja sicher, dass ist ein konstantes Rechteck mit variabler Grenzfrequenz 
und zeigt die Aufteilung in tiefe und hohe Frequenzen.

Im Prinzip ist das Ergebnis richtig, weil HP ja aus Eingang - TP 
gebildet wird. Da aber der Eingang auf Phase 0 liegt und der TP 
phasenverschoben ist kommt hintenraus sehr viel offset rein. Es wäre 
wünschenswert, wenn der HP mitverzögert würde. Ich habe aber keinen 
Schimmer wie man das macht und wie das geht.

Dergute W. schrieb:
> Linkwitz-Riley TP/HP Kombis haben eine (kleine) Beule
Das hört sich aber so an, dass das geeigneter sein könnte. Der 
Wiki-Artikel unterscheidet offenbar Butterworth und L-R-Filter und 
zeigt, dass das L-R zweiter Ordnung diese Beule nicht haben soll. Oder 
beträgt die nur nicht die in der blauen Kurve dargestellten 3dB?
https://de.wikipedia.org/wiki/Linkwitz-Riley-Filter

Auf der Seite Linkwitzlab wird in der Originalpublikation auch eine 
flache Kurve als Summe aufgeführt. Die 180°Phasenverschiebung-Thematik 
muss ich nochmals prüfen, aber das Filter käme mir schon entgegen. 
Leider tue ich mich schwer die Formeln in eine Vorschrift in den 
Zeitbereich zu übersetzen.

Hier wird das auch angesprochen:
Beitrag "Linkwitz-Riley Filter bauen"

Und vor allem hier:
Beitrag "1 - Tiefpass = Hochpass"

Bringt mich aber auch noch nicht direkt auf die Formeln. Was ich den 
Grafiken entnehme ist, dass einem ein TP+HP und dann ein HP+TP 
aufgezogen wird. Aus der NT kann ich mich noch dunkel an solche Dinge 
wie Phasenkompensation erinnern.

Wie auch immer:

In diesem Bericht wird auf die Konstellation der Lautsprecher abgehoben. 
Dabei kommt eine anzuwendende Zeitverzögerung vor:
https://www.rane.com/note160.html

Versteht das jemand wie man das verzögern muss?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Rechenfreak schrieb:
> Ja sicher, dass ist ein konstantes Rechteck mit variabler Grenzfrequenz
> und zeigt die Aufteilung in tiefe und hohe Frequenzen.
>
> Im Prinzip ist das Ergebnis richtig, weil HP ja aus Eingang - TP
> gebildet wird.

Ja, so seh' ich das dann auch.

Rechenfreak schrieb:
> Da aber der Eingang auf Phase 0 liegt und der TP
> phasenverschoben ist kommt hintenraus sehr viel offset rein. Es wäre
> wünschenswert, wenn der HP mitverzögert würde. Ich habe aber keinen
> Schimmer wie man das macht und wie das geht.

Naja dein Tiefpass hat halt auch alles andere als eine konstante 
Gruppenlaufzeit. Die Kroete musst du um der Einfachheit halber 
schlucken.
Im Durchlass ist die so von 9..0 samples.
Du kannst dein Eingangssignal mal so um 4..5 Samples verzoegern, bevor 
du von ihm den TP abziehst, um den HP zu erhalten.


Die Beule in der Gruppenlaufzeit bei den LR-Filtern sieht man nirgends 
auf den Bildern. Im engl. Wikipediaartikel kann man's lesen, wenn man 
drauf achtet:

> However, crossovers of higher order than 4th may have less usability
> due to their complexity and increasing peak in group delay around
> crossover frequency.

Aber ist auch klar, denn LR-Filter bestehen aus kaskadierten 
Butterworthfiltern. Und Butterworth hat eben eine kleine GLZ-Beule, 
sonst waer's ein Bessel und kein Butterworth...

Rechenfreak schrieb:
> Das hört sich aber so an, dass das geeigneter sein könnte.

Das musst du wissen, ob dir das eher taugt. Und ob du's schnell genug 
rechnen kannst.


Gustl B. schrieb:
> Würde der Rechteck dann nicht an allen Ecken runder werden?
Nein.

> Das sieht
> sehr nach Lade- und Entladekurve aus, so als käme Kapazität hinzu.

Jepp. Das gehoert dann genauso.

Gruss
WK

von Joachim B. (jar)


Lesenswert?

Karl K. schrieb:
> Du rechnest aber hoffentlich nicht mit Floats?

die Frage ist berechtigt aber immer noch unbeantwortet!

von Joe F. (easylife)


Lesenswert?

Rechenfreak schrieb:
> Leider tue ich mich schwer die Formeln in eine Vorschrift in den
> Zeitbereich zu übersetzen.

https://ccrma.stanford.edu/~jos/filters/Biquad_Software_Implementations.html

https://en.wikipedia.org/wiki/Digital_biquad_filter

von Dergute W. (derguteweka)


Angehängte Dateien:

Lesenswert?

Moin,

Naja, ob nach einer Linkwitz-Riley HP/TP-Kombi das aufgesplittete 
Rechtecksignal jetzt "schoener" aussieht, als nach der hier 
urspruenglich verwendeten Methode? Mehr CPU_Bumms/Sample braucht man auf 
jeden Fall...

Gruss
WK

von Karl K. (karl2go)


Lesenswert?

Dergute W. schrieb:
> Naja, ob nach einer Linkwitz-Riley HP/TP-Kombi das aufgesplittete
> Rechtecksignal jetzt "schoener" aussieht, als nach der hier
> urspruenglich verwendeten Methode?

Musst Du halt ein Filter dahinterschalten. ;-)

von Joe F. (easylife)


Lesenswert?

Dergute W. schrieb:
> ob nach einer Linkwitz-Riley HP/TP-Kombi das aufgesplittete
> Rechtecksignal jetzt "schoener" aussieht, als nach der hier
> urspruenglich verwendeten Methode?

Ich kann irgendwie nicht erkennen, was dein Diagramm darstellt.
Und auch weiss ich nicht, was an einem gefilterten Rechtecksignal als 
"schön" durchgeht und was nicht.
Filter beurteile ich in der Regel mit Hilfe von Sinus-Sweeps und den 
daraus resultierenden Kurven (Amplitude, Phase).

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Joe F. schrieb:
> Ich kann irgendwie nicht erkennen, was dein Diagramm darstellt.

Das stellt jeweils den zeitlichen Verlauf des Ausgangssignal nach einem 
Hoch- und einem Tiefpass dar, wenn man einen nullsymmetrischen 
Rechteckburst mit Grundfrequenz in der Naehe der Uebernahmefrequenz der 
Filter reinschickt.

> Und auch weiss ich nicht, was an einem gefilterten Rechtecksignal als
> "schön" durchgeht und was nicht.
> Filter beurteile ich in der Regel mit Hilfe von Sinus-Sweeps und den
> daraus resultierenden Kurven (Amplitude, Phase).

Das weiss ich eben auch nicht. Aber das war wohl ein Grund, diesen 
Thread zu eroeffnen.
Und je nachdem was man vorhat, kann ein Filter ruhig auch von aus der 
Filterantwort im Zeitbereich her definiert werden.
Weil wir das aber nicht wissen, und weil Linkwitz-Riley hier genannt 
wurde und ich heute frueh aus dem Fenster schaute und mir dachte: "Was 
fuer ein wunderschoener Herbsttag, da muss ich doch gleich mal schauen, 
wie so eine Filterkombi auf einen Rechteckburst reagiert", schrub ich 
meinen vorhergehenden Post in diesem Thread ;-)

Gruss
WK

von Karl K. (karl2go)


Lesenswert?

Joe F. schrieb:
> Filter beurteile ich in der Regel mit Hilfe von Sinus-Sweeps und den
> daraus resultierenden Kurven

Wenn ich eine PWM filtern will interessiert mich das schon, wie der 
Filter auf einen steilen Anstieg reagiert, und Linkwitz-Riley scheint 
hier ziemlich abzukacken. Etwas, das man in einem Sinus-Sweep 
anscheinend nicht sieht.

von Joe F. (easylife)


Lesenswert?

Karl K. schrieb:
> und Linkwitz-Riley scheint
> hier ziemlich abzukacken.

Das kann man von Biquads wohl so pauschal nicht sagen...
Ursprünglich war von "Audio" und "Frequenzweiche" die Rede, und dafür 
sind die wunderbar geeignet.

Wozu willst du denn eine PWM durch eine Frequenzweiche schicken?
Tiefpassfiltern (mit höherer Ordnung) würde ich ja noch verstehen, aber 
was interessiert einen dabei der HP Anteil?

von Phreak (Gast)


Lesenswert?

Joachim B. schrieb:
> die Frage ist berechtigt aber immer noch unbeantwortet!
Nein, Integer, entsprechend hoch skaliert. Das sollte kein Problem sein, 
oder?

Joe F. schrieb:
> Rechenfreak schrieb:
>> Leider tue ich mich schwer die Formeln in eine Vorschrift in den
>> Zeitbereich zu übersetzen.
https://ccrma.stanford.edu/~jos/filters/Biquad_Software
D.h. der biquad ist der Linkwitz-Riley? - bzw. der LR gehört zu den 
biquads?

Ich habe inzwischen weitergelesen und sehe sich widersprechende 
Darstellungen. Ich hatte oben schon gemutmaßt, dass das Filter so 
aufgebaut sein müsse, dass jeweils ein HP und ein LP verschaltet sind, 
jedenfalls bei dem "2. Ordnung".

HighPath = HPF + LPF  und LowPath = LPF + HPF.

Das erkenne ich an der biquad-Struktur noch nicht wieder. Das ist ja nur 
ein Pfad (?).

Die Struktur kenne ich gleichwohl, ich nehme an dass ich die 
Koeffizienten aus dem Kochbuch von RBJ entnehmen kann. Dazu habe ich auf 
dessen DSP-Seite einiges gefunden.

Demnach müsste ich den biquad 4x nehmen und jeweile 2 HP und 2 TP 
aufbauen, wobei ich annehme, dass die HPs und TPs jeweils identisch 
sind?

von Phreak (Gast)


Lesenswert?

Joe F. schrieb:
> Das kann man von Biquads wohl so pauschal nicht sagen...
> Ursprünglich war von "Audio" und "Frequenzweiche" die Rede, und dafür
> sind die wunderbar geeignet.
Ja, das ist die Anwendung.

> Wozu willst du denn eine PWM durch eine Frequenzweiche schicken?
Weil die im Rahmen der Signalverarbeitung durchaus vorkommen könnte.

> Tiefpassfiltern (mit höherer Ordnung) würde ich ja noch verstehen, aber
> was interessiert einen dabei der HP Anteil?
Weil das auf dem HighPath herauskommt und somit dem Verstärker des HT 
zugeführt wird.

Um das technisch sinnvoll zu nutzen muss natürlich noch eine 
Bandbegrenzung des Highpath rein, als z.B. 25-30kHz. Die Frage ist, ob 
man das nicht VOR das Trennfilter einbaut, wenn das Filter damit 
Probleme hat, oder ob es egal ist, weil hinten dasselbe rauskommt.

von Joe F. (easylife)


Lesenswert?

Phreak schrieb:
> Das erkenne ich an der biquad-Struktur noch nicht wieder. Das ist ja nur
> ein Pfad

Ein Biquad stellt dabei nur einen 2nd-order Filter dar. Du brauchst also 
insgesamt 4 Biquads (2xHP, 2xTP). Wenn du den Multiplikator für Gain 
weglässt kommst du so auf 4x4=16 Multiplikationen insgesamt.

Die LR4 Struktur sieht dann so aus:
1
          -> HP1 -> HP2 -> OUTPUT_HP
2
        /
3
INPUT -o
4
        \
5
          -> LP1 -> LP2 -> OUTPUT_LP

Aus irgendeinem Grund, den ich gerade nicht finde, habe ich 
unterschiedliche Q's für die jeweils hintereinander liegenden Filter 
verwendet (0.5411 und 1.3068). Fc ist für alle 4 Filter gleich.

: Bearbeitet durch User
von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

Habs gerade noch mal ausprobiert. Die Qs 0.5411 und 1.3068 waren für 
einen Crossover mit jeweils 4 Biquads hintereinander (LR8).

LR4 kann man ganz prima mit 2 jeweils identischen Biquads mit Q=0.70711 
bauen.
Das Produkt aller Qs (für einen Pfad) muss insgesamt 0.5 ergeben, damit 
der Frequenzgang der Summe flach wird.

Hier ein Beispiel mit Fc=200 Hz.
LP (2x):
a1:  1.962980251780930
a2: -0.963653146670958
b0:  0.000168223722508
b1:  0.000336447445016
b2:  0.000168223722508

HP (2x):
a1:  1.962980251780930
a2: -0.963653146670958
b0:  0.981658349612971
b1: -1.963316699225940
b2:  0.981658349612971

a0 ist jeweils 1.0

Die Koeffizienten sind im "MiniDSP" Format, evtl. muss für andere BiQuad 
Implementierungen bei a1 und a2 das Vorzeichen invertiert werden.

: Bearbeitet durch User
von Egal (Gast)


Lesenswert?

Auf YouTube gibt es ein interessantes Video wo erklärt wird, wie man ein 
Audio Hochpass / Tiefpass mittels IIR Filter auf einem STM32 realisiert.

https://www.youtube.com/watch?v=lNBrGOk0XzE

von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

Egal schrieb:
> Auf YouTube gibt es ein interessantes Video

Ich will ja nicht meckern, aber ist es wirklich hilfreich 30 Minuten 
lang jemandem mit sehr anstrengendem Akzent auf youtube zuzuhören, nur 
um zu erfahren, dass man Audioprocessing mit dem STM32 machen kann?
Die Musik am Ende des Videos ist ja sehr hübsch anzuhören, aber 
eigentlich möchte man lieber Messergebnisse sehen... ;-)

Zum Glück gibts da ja noch den Link zu seinem Git-Repository, und da 
entdeckt man dann, dass die Filterparameter leider sehr ungeeignet für 
einen Crossover sind.
Der Crossoverbereich ist "dank" niedriger Filterordnung (nur je 1 Biquad 
für HP und TP) sehr groß.
Mit Q=0.7 gibt es an der Crossoverfrequenz eine hässliche +3dB Delle.
Und nicht erwähnt wird, dass entweder HP oder TP um 180° in der Phase 
gedreht werden müssen.
Nicht wundern, bei meiner Grafik ist der Crossoverpunkt bei 500 Hz, das 
liegt daran, dass mein Sweep mit 48KHz läuft und die Koeffizienten in 
dem STM32 Demo-Programm für 96 KHz sind. Das Problem dürfte aber 
trotzdem sichtbar sein.

von Rechenfreak (Gast)


Lesenswert?

Joe F. schrieb:
> Ich will ja nicht meckern, aber ist es wirklich hilfreich 30 Minuten
> lang jemandem mit sehr anstrengendem Akzent

Das ist auch mein Eindruck mit den ganzen Möchtegerns auf dieser 
Plattform. Drehen ein Video zur Selbstdarstellung und ommeln minutenlang 
herum, für wenig Information. Da fragt man lieber in einem Fachforum.

Danke für deine Bemühungen. Bringt mich weiter!

von J. S. (engineer) Benutzerseite


Lesenswert?

Karl K. schrieb:
> tpwert8 := input + tpwert8 - (tpwert8 + 4) div 8;

Das gibt aber sattes digitales Rauschen!

von Mark (Gast)


Lesenswert?

Karl K. schrieb:
> tpwert8 ist 8mal so groß wie der Eingangswert. Das ist nötig um
> Summierung von Rundungsfehlern zu vermeiden. Natürlich muss der 8fache
> Eingangsbereich in die Variable passen.
Wieso ausgerechnet 8?

Jürgen S. schrieb:
> Karl K. schrieb:
>> tpwert8 := input + tpwert8 - (tpwert8 + 4) div 8;
> Das gibt aber sattes digitales Rauschen!
Wie ließe es sich vermeiden? Größere Vektorbreite?

von J. S. (engineer) Benutzerseite


Lesenswert?

Mark schrieb:
>> Das gibt aber sattes digitales Rauschen!
> Wie ließe es sich vermeiden?
Richtig(er) runden. So ist es immer die 0,5. Das geht schlauer und 
braucht je nach Abtastung auch weniger Bits. D.h. man kann damit auch 
die Auflösung im letzten Bit genauer hinbekommen. Hängt vom akzeptablen 
Rauschspektrum und dessen Lage ab.

> Größere Vektorbreite?
Die hilft unabhängig davon ebenfalls und je einfacher / schlechter man 
rundet, desto mehr Zusatzbits braucht es.

Rechenfreak schrieb:
> Kann ich auch dann wieder einfach die Differenz zwischen dem Input und
> dem zweifach gedämpften TP bilden?
Ja sicher, ergibt aber eine um so größere Phasenverschiebung. Dieser 
einfache Filter hat eine zunehmende Phasenverschiebung mit der Frequenz.

von Ralf (Gast)


Lesenswert?

Joe F. schrieb:
> unterschiedliche Q's für die jeweils hintereinander liegenden Filter
> verwendet (0.5411 und 1.3068). Fc ist für alle 4 Filter gleich.

Kann es sein, dass die LP das größere Q haben?
Vielleicht dazu, damit sie in Relation schmalbandiger sind, aber real 
dieselbe Bandbreite aufweisen wie die LP mit geringerem Q?

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.