Posts

Fractional Farrow Delay Filter

Bij signaalverwerking is het soms nodig om de sample frequency van een signaal met een fractie van een sample aan te passen of te verfijnen. Een FIR Farrow vertragingsfilter wordt meestal gebruikt om deze taak te bereiken. Deze kan worden gecombineerd met een traditionele gehele vertragingslijn om een universele fractionele lengte vertragingslijn te bereiken.

Een Fractionele vertraging op basis van een FIR Farrow-structuur kan worden gedefinieerd als:

\(H(z)=(1-\alpha)+\alpha z^{-1}; \; 0 \leq \alpha \leq 1 \)

Welke een fractionele lineaire vertraging oplevert van \(\alpha\) btussen 0 en 1 monster. Een meer universele bouwsteen kan echter worden bereikt door de Farrow-vertragingsstructuur te combineren met een integer vertraging, \(\Delta\)

\(H(z)=(1-\alpha) z^{-\Delta}+\alpha z^{-(\Delta+1)}\)

De onderstaande grafiek toont de magnitude (blauw) en fase (paars) spectra voor \(\Delta=9, \, \alpha=0.52\). Zoals te zien, resulteert het fractionele vertragingselement in een niet-vlak spectrum bij hogere frequenties.


Frequency reponse of Farrow delay filter.

Implementatie

Een Farrow vertragingsfilter kan als volgt in ASN FilterScript worden geïmplementeerd :

ClearH1;  // clear primary filter from cascade

interface alpha = {0,1,0.02,.5}; // fractional delay
interface D = {1,30,1,10};       // integer delay

Main()
Num = {zeros(D),1-alpha,alpha}; // numerator coefficients
Den = {1};                      // denominator coefficient
Gain = 1/sum(Num);              // normalise gain at DC

Download demo nu

Licentie informatie