Linea di delay digitale

Da testwiki.
Versione del 17 mar 2025 alle 03:21 di imported>FrescoBot (Bot: numeri di pagina nei template citazione e modifiche minori)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca
Rappresentazione diagrammatica a blocchi standard di una delay line a ritardo intero M.[1]

Una linea di delay digitale, (o semplicemente delay line, chiamata anche delay filter) è un filtro digitale che ritarda un segnale di un certo numero di campioni. Se tale ritardo è di un numero non intero di campioni minore di uno, si parla specificatamente di una delay line frazionaria (anche chiamata interpolated delay line o fractional delay filter). Nel digital signal processing, è comune modellizzare un ritardo arbitrario di campioni come la serie di una delay line a ritardo intero e un fractional delay filter[2].

Le digital delay lines sono blocchi funzionali diffusi nella modellizzazione e simulazione acustica degli ambienti, strumenti musicali ed effetti digitali. Un'applicazione comune delle delay lines sono le digital waveguide synthesis, che possono essere usate come strumento di sintesi musicale per diversi tipi di strumenti, quali strumenti a corda o a fiato. Per implementare effetti digitali è standard d'industria usare uno schema di Dattorro, che fa uso di fractional delay lines[3].

Teoria

La delay line standard con ritardo intero è derivata dalla trasformata 𝒵 di un segnale a tempo discreto x ritardato di M campioni[4]:

y[n]=x[nM] 𝒵 Y(z)=zMHM(z)X(z)

In questo caso, zM=HM(z) è la delay line intera con le seguenti caratteristiche:

{||=1=0dBmodulo a zero dB=ωM,fase lineare con ω=2πfTs dove Ts è il periodo di campionamento in secondi [s]

La corrispondente risposta impulsiva nel dominio discreto nel tempo non è altro che la trasformata 𝒵 inversa di HM(z), la quale è un semplice impulso traslato di M campioni[5]:

hm[n]={1for n=M0for nM

Nel caso di ritardo frazionario, il discorso diventa più complicato. Nella sua forma teorica più generica, una delay line con ritardo frazionario è definita come una delay line standard con ritardo D, modellato come la somma di una componente intera M e di una componente frazionaria d minore di un campione:

HD(z)=zDwhereD=DM+(DD)d

Questa è la rappresentazione in dominio 𝒵 di un problema di filter design non banale: la soluzione è una qualsiasi risposta all'impulso che rappresenti o approssimi la trasformata 𝒵 inversa di HD(z)[2].

Soluzione (Design di filtri)

Soluzione ingenua

La soluzione concettualmente più semplice si ottiene campionando la soluzione continua, banale per ogni valore di ritardo anche frazionario. Dato un segnale continuo x ritardato di D campioni, o τ=DTs secondi[6]:

y(t)=x(tD) Y(ω)=ejωDHideal(ω)X(ω)

In questo caso, ejωD=Hideal(ω) è il filtro a ritardo frazionario nel dominio continuo del tempo con:{||=1=0dBzero dB gain=ωD fase lineare τgr=ddω=Dgroup delay costanteτph=ω=Dphase delay costante

La soluzione ingenua per il filtro campionato hideal[n] è semplicemente la trasformata inversa di Hideal(ω) campionata, che produce un filtro IIR non-causale a forma di Seno Cardinale sinc() traslato di D[6]. hideal[n]=1[Hideal(ω)]=12ππ+πejωDejωndω=sinc(nD)=sin(π(nD))π(nD) Il sinc continuo è traslato del ritardo frazionario, mentre viene campionato dentro la griglia del piano cartesiano. Di conseguenza:

  • quando il ritardo è un numero intero di campioni, D, il sinc traslato e campionato degenera a un semplice impulso traslato, come da soluzione teorica.
  • quando il ritardo è un numero frazionario di campioni, D, il sinc traslato e campionato produce un filtro IIR non-causale, che non è implementabile nella pratica.
Animation of shifting sinc
La delay line frazionaria ideale si ottiene dal campionamento della trasformata inversa di Fourier continua del filtro a ritardo frazionario. Per valori interi di ritardo la soluzione degenera in semplici impulsi traslati. Ritardare un segnale campionato equivale concettualmente a ricampionare il suo corrispettivo continuo con lo stesso periodo di campionamento ma un diverso allineamento di campioni, traslato di D. L'immagine mostra solo alcuni campioni attorno a zero, ma il filtro non-causale IIR è definito per un numero infinito di campioni in entrambe le direzioni dell'asse.

FIR causale troncato

La soluzione realizzabile concettualmente più semplice si ottiene semplicemente troncando la soluzione ingenua sopra[7].

hτ[n]={sinc(nD)per 0nN0altrove
dove
N12<D<N+12eN è l'ordine del filtro.

Troncare la risposta all'impulso potrebbe causare instabilità, per mitigare la quale si possono usare una serie di tecniche:

  • Filtrare la risposta all'impulso troncata con una finestra, con l'obiettivo di "ammorbidirla". In questo caso dobbiamo aggiungere un ulteriore traslazione L per allineare la finestra e il sinc(), così da filtrare simmetricamente[7][8].
hτ[n]={w(nD)sinc(nD) per LnL+N0 altrove

dove

L={round(D)N2per N pariDN12per N dispari
  • Metodo General Least Square (GLS)[2] → adatta iterativamente la risposta in frequenza filtrando un design Least Square Integral Error, minimizzando lo LSIE tra la risposta in fraquenza ideale e quella troncata. È definito come:
ELS=12παπαπw(ω)|HDtruncated(ejω)HDid(ejω)|2dω

dove

0<α1 è il parametro di larghezza passabanda
  • Interpolatore di Lagrange (Maximally Flat Fractional Delay Filter)[9] → aggiunge vincoli di "appiattimento" per le prime N derivate del Least Square Integral Error. Questo metodo è di particolare interesse in quanto la letteratura fornisce una soluzione in formula chiusa:
Una rappresentazione diagrammatica della formula di interpolazione di Lagrange.[10]
hD[n]=k=0,knNDknkdove0nN

Segue una tabella dell'espansione della formula per filtri di ordine fino a N=3:

Espansione della formula di interpolazione di Lagrange[7]
hτ[0] hτ[1] hτ[2] hτ[3]
N = 1 1D D - -
N = 2 (D1)(D2)2 D(D2) D(D1)2 -
N = 3 (D1)(D2)(D3)6 D(D2)(D3)2 D(D1)(D3)2 D(D1)(D2)6

Soluzione passa-tutto IIR a fase approssimata

Un altro approccio consiste nel design di un filtro IIR di ordine N con una struttura in trasformata 𝒵 che lo forza a essere passa-tutto, approssimando un ritardo frazionario D[7]:

HD(z)=zNA(z)A(z1)=aN+aN1z1+...+a1z(N1)+zN1+a1z1+...+aN1z(N1)+aNzN

che ha

{||=1=0dB0dB gainHD(z)=Nω+2A(z)=Dωvalore obiettivo per D

I poli e zeri di A(z) and A(z1) rispettivamente sono strutturalmente reciproci, e hanno l'effetto di appiattire la risposta in frequenza ||| , mentre la fase è calcolata in funzione della fase di A(z). Di conseguenza, il problema si semplifica nel design di un filtro FIR A(z), ossia trovare i suoi coefficienti ak come funzioni di D (ricordare che a0=1 sempre), tali che la fase approssimi il valore obiettivo di HD(z)=Dω[7].

Il problema si può risolvere nel seguente modo:

  • Minimizzazione iterative del Least Square Phase Error[2], definito come:
ELS=12πππw(ω)|DωID(Nω+2A(z))HΔHD|2dω
  • Minimizzazione iterativa del of Least Square Phase Delay Error[2], definito come:
ELS=12πππw(ω)|ΔHDω|2
  • Filtro Passa-Basso Tutti-Polei di Thiran con Group Delay Massimamente Piatto[11] → offre una formula chiusa per trovare i coefficienti ak per ritardi positivi D>0:
ak=(1)k(Nk)l=0ND+lD+k+l

dove

(nk)=N!k!(Nk)!

Segue una tabella dell'espansione della formula sopra calcolata per filtri di ordine fino a N=3:

Thiran All-Pole Low-Pass Filter Coefficients Formula Expansion[7]
a0 a1 a2 a3
N = 1 1 D1D+1 - -
N = 2 1 2D2D+1 (D1)(D2)(D+1)(D+2) -
N = 3 1 3D3D+1 3(D2)(D3)(D+1)(D+2) (D1)(D2)(D3)(D+1)(D+2)(D+3)

Storia commerciale

Le prime digital delay lines vennero usate nel 1973 al Summer Jam at Watkins Glen di New York, per compensare il ritardo di propagazione del suono nell'aria proveniente dalle torri di diffusione, in quel caso molto distanti tra loro nella vasta area dedicata al pubblico, almeno 600,000 persone. La società del New Jersey Eventide fornì delle delay lines capaci di 200 millisecondi di ritardo, adatte a ritardare le quattro torri di diffusione dei 175 millisecondi necessari a compensare il ritardo del suono nei 60 metri che le distanziavano dal palco. Altre dieci torri di diffusione, sei a 120 metri e quattro a 180 metri furono ritardate con la stessa tecnica di 350 e 525 millisecondi rispettivamente. Ogni modulo Eventide DDL 1745 conteneva parecchi circuiti integrati di registri a scorrimento a 1000-bit e costava l'equivalente di un'auto nuova.[12]

Note

Bibliografia

Voci correlate

Collegamenti esterni