Das Kammfilter ist ein Frequenzfilter, das das verzögerte Signal zum nichtverzögerten Signal mischt und dadurch bestimmte Frequenzen auslöscht. (Kammeffekt). Im Grunde ist das Kammfilter eine Verzögerungslinie mit Rückkopplung.
Die diskrete Übertragungsfunktion H(z) eines Feedback-Kammfilters M-ter Ordnung kann als
(1)
beschrieben werden.
Kammfilter mit Tiefpass
Man kann die Rückkopplung nur auf bestimmte Frequenzen begrenzen, in dem man ein Frequenzfilter in die Rückkopplungsbahn einbaut. Das ist für Reverb-Implementierung wichtig, da in der Realität die Schallenergie der höheren Frequenzen schneller abgedämpft wird. Um dies nachzubilden, kann ein Tiefpassfilter erster Ordnung eingebaut werden:
(2)
oder noch einfacher eine Glättung:
(3)
Wird dies in die Rückkopplungsbahn integriert, sieht es folgendermaßen aus:
Hierbei wurden zwei Dämpfungskoeffizienten und hinzugefügt.
Implementierung
Die Implementierung des Kammfilters mit Tiefpass ist im Folgenden gezeigt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* Main process comb filter with low pass */ float c_comb::process(float x){ float y; y = buffer[cptr]; filterstore = (y*damp2) + (filterstore*damp1); buffer[cptr] = x + (filterstore*feedback); if(++cptr>=bufsize) cptr = 0; return y; } |
Schreibe einen Kommentar