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 :
[code language=”java”]
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
[/code]
Leave a Reply
Want to join the discussion?Feel free to contribute!