Posts

All-pass filters

All-pass filters bieden een eenvoudige manier om de faserespons van een IIR te wijzigen of te verbeteren zonder de omvang ervan te beïnvloeden. Als zodanig worden ze meestal aangeduid als fase-equalizers en hebben ze een bijzondere toepassing gevonden in digitale audiotoepassingen.

In zijn eenvoudigste vorm kan een filter worden opgebouwd uit een eerste orde transfer functie:

\( A(z)=\Large{\frac{r+z^{-1}}{1+r z^{-1}}}  \, \,  \normalsize{; r<1} \)

Merk bij \(\small A(z)\) op, dat de pool en de nul op de echte z-vlakas liggen en dat de pool bij de radius \(\small r\) een nul bij radius \(\small 1/r\) heeft. Zodanig dat de polen en nullen wederkerig zijn met elkaar. Deze eigenschap is de sleutel tot het all-pass filterconcept. Zoals we nu zullen zien door het concept verder uit te breiden naar een tweede orde all-pass filter:

\( A(z)=\Large\frac{r^2-2rcos \left( \frac{2\pi f_c}{fs}\right) z^{-1}+z^{-2}}{1-2rcos \left( \frac{2\pi f_c}{fs}\right)z^{-1}+r^2 z^{-2}} \)

Waarbij \(\small f_c\) de middenfrequentie is, \(\small r\) de radius of van de polen is en all pass filter, all-pass filter, allpass filter, all pass pole-zero \(\small f_s\) de sampling frequency. Merk op dat de teller en noemer coefficienten zijn weergegeven als spiegelbeeldig aan elkaar.  De eigenschap van het spiegelbeeld is wat de all-pass filter zijn gewenste eigenschap geeft, namelijk de ontwerper in staat stellen om de faserespons te wijzigen terwijl de magnituderespons constant of vlak blijft over het volledige frequentiespectrum.

all pass filter, all-pass filter, allpass, phase equaliser, altering/improving the phase response of an IIR without affecting its magnitude responseFrequentierespons van het all-pass filter:
Let op de constante omvang van het spectrum (weergegeven in blauw).

Implementatie

Een All-pass filter kan geimplementeerd worden in ASN FilterScript als volgt:
[code language=”java”]
ClearH1; // clear primary filter from cascade

interface radius = {0,2,0.01,0.5}; // radius value
interface fc = {0,fs/2,1,fs/10}; // frequency value

Main()
Num = {radius^2,-2*radius*cos(Twopi*fc/fs),1};
Den = reverse(Num); // mirror image of Num
Gain = 1;

[/code]
Voor een gedetailleerde beschrijving van de IIR-faseregelaar en de APF (all-pass filter) ontwerptool van de ASN-filterontwerper, zie het volgende artikel.

Download demo now

Licencing information