Habe mir mittels MATLAB die Koeffizienten für einen FIR-Hochpass und Tiefpass ausgeben lassen. Erstaunlich oder nicht, sind sie nicht komplementär! Ich hätte erwartet, dass die HP-Koeffs einfach der "Rest" des Tiefpasses sind, man also ein Signal, dass von 0 gegen fg geht mit dem von fg gegen unendlich wieder zusammenmischen kann und bekommt 1! Warum ist das so? Kann es sein, dass man da irgendwie auf den ripple optimiert und andere Optima findet? Ich brauche nämlich einen Filter, der sich so verhält, wie beschrieben, wenn also beider Pfade auf 100% stehen, soll der Filter unsichtbar werden.
Es geht auch wirklich um die Koeffizienten und nicht um noch darin enthaltene Glättung oder Fensterung. Fenster hätte ich extra, wenn benötigt. Der "FIT-Filter-Designer" verhält sich ähnlich. auch da sind die Ergebnisse nicht komplementär.
Moin, Also willst du einen Tiefpass und einen Hochpass, die - wenn parallel geschaltet sind - sich irgendwie wieder aufheben. OK - aufheben geht nicht ganz, weil die Zeitverzoegerung bleiben wird, aber der Betragsfrequenzgang kann wieder ueberall konstant sein. Dann lass dir von Matlab halt nur den Tiefpass berechnen und den Hochpass berechnest du dir selbst, indem du den Tiefpass von einem entsprechend verschobenen Dirac abziehst. Dann ergeben TP+HP wieder einen verschobenen Dirac - was du ja haben willst. Beispiel: Dein TP ist sowas hier: [0.25, 0.5, 0.25] das ziehst du von [0 1 0] ab; das ergibt also [-0.25, 0.5, -0.25] und verkaufst es dir als HP. Gruss WK
Wie willst du die Koeffizienten denn mischen? Das sind halt Koeffizienten einer Differential bzw. Differenzengleichung. Das ist ein dynamisches System und dessen Verhalten ist unterschiedlich bei unterschiedlichen Koeffizienten ;-)
Thomas W. schrieb: > Habe mir mittels MATLAB die Koeffizienten für einen FIR-Hochpass und > Tiefpass ausgeben lassen. Erstaunlich oder nicht, sind sie nicht > komplementär! Du machst einen Tiefpaß zu einem Hochpaß, indem du - mal ganz salopp gesagt - alle Koeffizienten negierst und dann 1.0 auf den mittleren Koeffizienten addierst. Das ist dann Weka's Dirac. Das gilt nur für Filter mit ungerader Länge. Bei gerader Tapanzahl müßtest du m.E. auf die beiden mittleren jeweils 0.5 addieren. Ja, wenn du einen derartigen TP und den so daraus hergestellten HP addierst, kommt nur 1.0 in der Mitte der Taps bei heraus, alles andere ist 0. Aber wie kommst du zu " nichtkomplementär"? Aus den Ergebnissen eines Filterprogrammes, dessen interner Rechengang nicht offengelegt ist? Wer weiß, was dessen Autoren sich dabei gedacht haben. Vielleicht den 3 dB Punkt, vielleicht einen anderen? W.S.
Ich habe es jetzt so gemacht, wie ursprünglich mal angedacht, nämlich einfach die Koeffizienten von 1 abgezogen. Es bleibt jetzt das Thema der Fensterung. Wie bringt man die Daten wieder zusammen, wenn gefenstert wurde? Wenn Ich z.B: einen EQ baue, dann muss in der Stellung 1:1:1 für ale drei Bänder wieder eine 1 rauskommen. Wäre es richtig, das Fenster nur zum Interpretieren der Lautstärke zu benutzen und beim Mischen ohne Fenster zu arbeiten?
Moin, W.S. schrieb: > Das gilt nur für Filter mit ungerader Länge. Bei gerader Tapanzahl > müßtest du m.E. auf die beiden mittleren jeweils 0.5 addieren. Ja, fast. Eigentlich muesste dann ein um u=(x+0.5) verschobener sinc(u) statt dem Einheitsstoss hergenommen werden. Weil der aber unhandlich lang ist, muesste man ihn abschneiden und fenstern und's waer immer noch problematisch. Besser Filter mit ungerader Anzahl Koeffizienten nehmen und sich Aerger ersparen. Thomas W. schrieb: > Ich habe es jetzt so gemacht, wie ursprünglich mal angedacht, > nämlich > einfach die Koeffizienten von 1 abgezogen. Es bleibt jetzt das Thema der > Fensterung. Wie bringt man die Daten wieder zusammen, wenn gefenstert > wurde? Erst Tiefpasskoeffizienten berechnen, von mir aus incl. Fensterung. Das ergibt den Tiefpass (Ach). Diese dann von dem verschobenen Einheitsstoss abziehen; das ergibt den Hochpass. Wenn man die Daten wieder zusammenbringen will: Die Samples aus Tief- und Hochpass einfach wieder addieren. > Wenn Ich z.B: einen EQ baue, dann muss in der Stellung 1:1:1 für ale > drei Bänder wieder eine 1 rauskommen. Wäre es richtig, das Fenster nur > zum Interpretieren der Lautstärke zu benutzen und beim Mischen ohne > Fenster zu arbeiten? Hae? Fuer so einen 3-Band EQ wuerd' ich auch erst TP (mit Grenzfrequenz A), dann HP (mit Grenzfrequenz B)designen; beide als FIR mit gleicher Laenge. Dann beide aufaddieren; von einem verschobenen Einheitsstoss abziehen; und das dann als "Bandpass" verkaufen. Die 3 Ausgangssignale dieser 3 Filter dann gewichtet wieder aufsummieren; die Gewichtung stellt dann halt die Klangregelung dar. Gruss WK
Moin, Beispiel fuer Berechnung der Filter (Koeffizientenrundung auf 8bit) mit Octave:
1 | lp=(round(256*firls(30,[0 1/16 3/16 1],[ 1 1 0 0]))); %lowpass |
2 | hp=(round(256*firls(30,[0 7/16 9/16 1],[0 0 1 1]))); %hipass |
3 | es=zeros(31,1);es(16)=256; %shifted dirac |
4 | bp=es-lp-hp; %bandpass |
5 | clf; |
6 | hold on; |
7 | plot(20*log10(abs(freqz(bp/256))),"r"); |
8 | plot(20*log10(abs(freqz(lp/256))),"g"); |
9 | plot(20*log10(abs(freqz(hp/256))),"b"); |
10 | plot(20*log10(abs(freqz((lp/4+bp/2+hp*2)/256))),"c"); %example setting low=-12dB, mid=-6dB, hi+6dB |
Vorteil dieser so konstruierten Filter: Egal, wie der Frequenzgang dann tatsaechlich eingestellt wird - die Gruppenlaufzeit bleibt immer ueber den gesamten Bereich konstant. Gruss WK
Eine Frage: Die Kurzen sehen für mich grundsätzlich ok aus. Aber der Überschnitt der jeweiligen Kurven liegt bei -6dB. Sollten das nicht -3dB sein? Dann sehe Ich , dass der Verlauf unterhalb von -30dB ziemlich be....ssen aussieht. Wie kriegt man das in den Griff? Mehr Filterbreite nehme ich an? Was bräuchte es für sagen wir -60dB?
Moin, Carlo schrieb: > Eine Frage: Die Kurzen sehen für mich grundsätzlich ok aus. Aber > der > Überschnitt der jeweiligen Kurven liegt bei -6dB. Sollten das nicht -3dB > sein? Nee, die Ausgangssignale der Filter sollen ja wieder aufsummiert werden und dann an den jeweiligen Grenzfrequenzen keine Hubbel kriegen. Wenn das Signal dann ausm Tiefpass mit -6dB rauskommt und das Signal ausm Bandpass auch mit -6dB (=0.5) und ich addiere beide auf, bin ich wieder bei genau 0dB - waeren es jeweils nur -3dB (=0.707) kaeme in Summe +3dB raus. Ist so aehnlich wie bei Linkwitz-Riley Filtern. > Dann sehe Ich , dass der Verlauf unterhalb von -30dB ziemlich be....ssen > aussieht. Wie kriegt man das in den Griff? Mehr Filterbreite nehme ich > an? > > Was bräuchte es für sagen wir -60dB? Das kommt daher, weil ich - einer spontanen "Eingebung" folgend - die Filterkoeffizienten alle auf 8bit Aufloesung runde. Wenn du da mit hoeherer Aufloesung arbeitest... Und die Filter kann man natuerlich auch laenger machen oder die Filterflanken breiter - dann klappts auch mit -60dB. Bloss fuer den 3-Band-Klangregelbetrieb muss das Filter garnicht so "gut" sein - ueblicherweise gibts da ja eher nur so +-12...+-18dB Einstellumfang. Gruss WK
Ich brauche nicht mal 18dB. Sind eher nur 6dB. Sollte aber schon genau sein. Ich würde dann auch schon 16 Bit spendieren für die Koeffizienten. Die Zwischenfrage finde ich aber schon interessant: wie es ausschaut, nimmt z.B. der Bassfilter durchaus viele Höhen mit. Das darf auf keinen Fall sein. Basslautsprecher vertragen keine Höhen.
Moin, Ja - aeh - ich weiss nicht so recht... Das Dingens von mir ist hauptsaechlich als Beispiel gedacht, wie man sowas loesen koennte. Das muss man nicht exakt so machen, da kann man auch komplett andere Filter hernehmen, andere Frequenzen, genauere Koeffizienten, etc. Deshalb hab' ich ja den Octavecode dazugeschrieben, damit jeder damit experimentieren kann. Hier ein Bild, wo die Filterkoeffizienten 16bit genau sind und die Filter auch eine um je 1/8 verbreiterte Flanke haben - aber noch die selbe Anzahl Koeffizienten wie vorher. Thomas W. schrieb: > wie es ausschaut, > nimmt z.B. der Bassfilter durchaus viele Höhen mit. Das darf auf keinen > Fall sein. Basslautsprecher vertragen keine Höhen. Hm? Wo'n? Zur Erlaeuterung (ich bezieh' mich ab jetzt auf's obere Bild, mit den 8bit Koeffizenten, also nicht das Bild an diesem Post): Das gruene ist der Tiefpass. Der hat dann von mir aus - wenn er eben nur mit 8bit breiten Koeffizienten berechnet wird, bei einer normierten Frequenz von vielleicht 310/512 - das wuerde dann bei 48kHz Samplingfrequenz einer Frequenz von 14.53kHz entsprechen, seine "schlechteste" Sperrdaempfung von ca. 36dB. Das heisst dann: Haette ich eine Endstufe mit 4000W Leistung und ich wuerde einen Tieftoener ueber so ein Filter anschliessen, dann bekaeme der bei 14.53kHz 1W (i.w. Ein ganzes Watt) faelschlicherweise aus dem Filter ab. Da das ganze Dingens aber doch als Klangregler laufen soll, wird doch zu dem Ausgang des Tiefpasses der andere Kram eh wieder dazuaddiert - mit dem jetzt geforderten +/- 6dB Einstellbereich - d.h. die Leistung bei 14.53kHz ist dann einstellbar zwischen 2000W und 8000W. Wen kratzt da das eine popelige Watt, das der olle Tiefpass auch nur deswegen durchlaesst, weil er so simpel und ungenau gestrickt ist, dass das alles wahrscheinlich sogar auf einem AVR laufen wuerde ;-) ? Gruss WK
Moin, Dergute W. schrieb: > - d.h. die Leistung bei > 14.53kHz ist dann einstellbar zwischen 2000W und 8000W. Huups - Fehler gemacht; es muss heissen: zwischen 1000W und 16000W. Gruss WK
Dergute W. schrieb: > Nee, die Ausgangssignale der Filter sollen ja wieder aufsummiert werden > und dann an den jeweiligen Grenzfrequenzen keine Hubbel kriegen. Das Prinzip ist klar. Nur fehlt mir manchmal der Blick, wann man mit 6dB arbeiten muss: Log2 (0,5) ist ja -0,3 und in Dezi sind das 3dB. Irgendwie steckt hier aber wieder die Leistung und damit 20*log(x) drin, nehme ich an. Das war, weil es Spannungen waren und die Leistung mit dem Quadrat ging, oder? Warum nimmt man dann bei Filtern die 3dB als Eckfrequenz?
Bei -3 dB halbiert sich die Leistung oder die Amplitude sinkt auf etwa 70 %. Kann man so berechnen: 10*log10(0.5) ist ca -3 dB. Das ist die Definition für die Leistung. Für Amplitude nimmst du den Faktor 20 statt 10. Anders herum ist 10^((-3 dB)/20) = 0.7079, also die 70 % Du brauchst 6 dB weil du Amplituden anguckst und eben die Hälfte davon haben möchtest.
Carlo schrieb: > Warum nimmt man dann bei Filtern die 3dB als Eckfrequenz? Bin nicht sicher, aber aber 6 dB gelten natürlich nur, wenn die beiden zu addirenden Signale gleiche Amplitude und keine Phasenverschiebung haben. Ich nehme aber sn, dass an der Grenzfrequenz Hoch- und Tiefpass auch noch phasenverschobene Signale liefern und somit komplex addiert werden muss. Dann braucht man natürlich mehr Amplitude. Gerhard
Jan K. schrieb: > Bei -3 dB halbiert sich die Leistung oder die Amplitude sinkt auf etwa > 70 %. Kann man so berechnen: 10*log10(0.5) ist ca -3 dB. Das ist die > Definition für die Leistung. Für Amplitude nimmst du den Faktor 20 statt > 10. Anders herum ist 10^((-3 dB)/20) = 0.7079, also die 70 % > > Du brauchst 6 dB weil du Amplituden anguckst und eben die Hälfte davon > haben möchtest. ok, stimmt, die Amplituden müssen sich zu 1 ergänzen. Aber: Die Leistung geht mit Uhoch2. In dem Punkt, in dem die Spannung auf die Hälfte abgesunken ist, also in diesem Fall 6dB, betrüge die Leistung nur noch ein Viertel. Nimmt man dieselbe Leistung des anderen Signals hinzu, habe ich rechnerisch 2x 1/4 = die halbe Leistung. Das ist aber nicht so, oder? Wo ist der Denkfehler?
Moin, Carlo schrieb: > Warum nimmt man dann bei Filtern die 3dB als Eckfrequenz? Das tut man halt dann, wenns grad' passt. Und manchmal passen halt 6dB bei der Eckfrequenz besser. Daher Obacht geben bei Grenzfrequenzangaben von Filtern. 3dB sind nicht in Stein gemeisselt. Gerhard schrieb: > Ich nehme aber sn, dass an der Grenzfrequenz Hoch- und Tiefpass > auch noch phasenverschobene Signale liefern und somit komplex addiert > werden muss. Allgemein ist das so, aber speziell bei dieser Kombi von TP, HP und daraus abgelittenem BP ist gerade der Witz, dass das da mit den Phasenverschiebungen, etc. wunderbar hinhaut. Die 3 Filter haben immer exakt die gleiche Gruppenlaufzeit. Da kann man dann prima solche Faxen machen. Achtet man bei den verschiedenen Filter nicht auf sowas, sind Loecher im Frequenzgang fast schon vorprogrammiert. Carlo schrieb: > Nimmt man dieselbe Leistung des anderen Signals hinzu, habe ich > rechnerisch 2x 1/4 = die halbe Leistung. Das ist aber nicht so, oder? Ja, das ist so aehnlich, wie wenn du 2 Wechselspannungsquellen hast, meinetwegen jede mit 1Veff. Jede davon schliesst du an jeweils einen 1Ohm Widerstand. Dann gibts 2W Heizleistung. Schaltest du jetzt beide Spannungsquellen in Reihe und schliesst beide Widerstaende in Reihe an, wirds spannend: Allgemein ist's dann auch so, dass dann 2W umgesetzt werden (Auch wenns erst keiner wahrhaben will). Sonderfall ist aber, wenn beide Wechelspannungsquellen frequenzmaessig irgendwie korreliert sind. Dann kann die Gesamtleistung irgendwo zwischen 0..4W liegen...kommt halt auf die Phasenlage der Quellen zueinander an. Da hier aber die Ausgangssignale aus TP,HP und BP aus dem selben Eingangssignal stammen, sind die korreliert und wegen den gleichen Gruppenlaufzeiten wird die Addition auch wieder schoen simpel. Daher 6dB statt 3dB ;-) Gruss WK
Dergute W. schrieb: > Das gruene ist der Tiefpass. Der hat dann von mir aus - wenn er eben nur > mit 8bit breiten Koeffizienten berechnet wird, bei einer normierten > Frequenz von vielleicht 310/512 - das wuerde dann bei 48kHz > Samplingfrequenz einer Frequenz von 14.53kHz entsprechen, seine > "schlechteste" Sperrdaempfung von ca. 36dB. Das heisst dann: Haette ich > eine Endstufe mit 4000W Leistung und ich wuerde einen Tieftoener ueber > so ein Filter anschliessen, dann bekaeme der bei 14.53kHz 1W (i.w. Ein > ganzes Watt) faelschlicherweise aus dem Filter ab. Wenn das angesteuerte Signal glatt ist, ja - wenn der Pegel der hohen Prequenzen aber sehr hoch ist im Vergleich zum Bass, sieht das anders aus. Trotzdem danke für das Beispiel. Quantitativ scheint es also kein Problem zu sein.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.