Introduzione al progetto IIR Filter

I filtri Infinite Impulse Response (IIR) sono una pietra angolare dell’elaborazione digitale del segnale, offrendo una selettività efficiente della frequenza con meno coefficienti rispetto alle controparti Finite Impulse Response (FIR) . La scelta della funzione di trasferimento del filtro IIR da una serie di specifiche di prestazioni è un processo sistematico che fonde la teoria del prototipo analogico con le tecniche di trasformazione digitale.

Informazioni sulle specifiche del filtro

Ogni disegno del filtro inizia con una serie chiara di requisiti. Più precisamente questi sono definiti, più facile diventa selezionare un prototipo appropriato e determinare l'ordine richiesto.

  • Frequenza bordo passabanda (ω[]p):[] La frequenza superiore (o inferiore) della banda passante, spesso data in radianti al secondo o Hz. Per i filtri a basso passaggio, questa è la frequenza di taglio dove il guadagno inizia a cadere.
  • Frequenza del bordo della fascia (ω[]][]]]):[ La frequenza oltre la quale l'attenuazione deve essere almeno il valore della banda di arresto specificato.
  • Spaccamento della banda passante (δ]p]): La variazione massima consentita nel guadagno all'interno della banda passante, generalmente espressa in decibel (dB) come Ap] = 20 log10(1+δ]
  • ]Ammorbidimento a banda larga (A]][]]][]] L'attenuazione minima richiesta nella banda di arresto, espressa in dB (ad esempio, 60 dB). Questo equivale al massimo guadagno a banda di stop consentita.
  • Tipo di filtro:[[] Basso passaggio, alto-pass, band-pass, band-stop o all-pass.
  • ] Frequenza di campionamento (F[]]]]] Critica per l'implementazione digitale, poiché tutte le frequenze analogiche devono essere normalizzate alla gamma Nyquist (da 0 a F]]/2].

Ulteriori considerazioni possono includere requisiti di linearità di fase (spesso meglio soddisfatti dai filtri Bessel o FIR) e limiti di risorse computazionali.Tutte le specifiche devono essere registrate sia in domini analogici (precontati) che digitali per evitare confusione durante la trasformazione.

Selezione del Prototipo di Filtro

Il prototipo è un filtro analogico a bassa portata con una frequenza di taglio normalizzata di 1 rad/s. Quattro prototipi classici sono ampiamente utilizzati, ciascuno offrendo un diverso trade-off tra il passaband ripple, l'attenuazione della banda di stopband e la linearità di fase.

Butterworth Filter

Il filtro Butterworth fornisce una risposta massimamente flat passband senza alcuna ondulazione. Il suo guadagno diminuisce monotonicamente con la frequenza, e il suo roll-off è moderato — 20n dB/decade per un filtro nth order.

Chebyshev Tipo I Filtro

I filtri Chebyshev Type I introducono equiripple nel passband ma raggiungono un roll-off più ripido alla frequenza di cutoff rispetto a Butterworth. La fascia passante è specificata (ad esempio, 0,5 dB). Questi filtri sono utili quando è necessaria una fascia di transizione più affilata, ma la fascia passante può essere tollerata.

Chebyshev Tipo II (Inverse Chebyshev) Filtro

Il tipo II ha una fascia di stoppa e una passbanda piana, che offre un ripido roll-off poco prima della banda di stop, ma la banda di stop mostra l'attenuazione dell'equiripple. Questo tipo viene selezionato quando una passbanda piana è obbligatoria ma alcune variazioni della banda di stop sono accettabili.

Filtro ellittico (Cauer)

I filtri ellittici offrono il più ripido roll-off possibile per un dato ordine permettendo la ripple sia in banda passante che in stopband. Sono ottimali per applicazioni che richiedono elevata selettività con un basso ordine di filtro, come filtri anti-aliasing o separazione dei canali. Il trade-off è significativa fase non lineare e sensibilità per la quantizzazione del coefficiente.

Filtro di boschetto

I filtri Bessel massimizzano la planarità del ritardo del gruppo, preservando la forma dei segnali domini temporali, la loro risposta di magnitudine ha un roll-off più lento di Butterworth, rendendoli adatti alle comunicazioni a base di polso o dove la fase lineare è critica.

La scelta dipende dalle specifiche. Ad esempio, se il rigoglio della banda passante deve essere inferiore a 0,1 dB e è necessaria un'attenuazione della banda di 60 dB, un Chebyshev Tipo I o un disegno ellittico potrebbe essere appropriato.

Determinazione dell'ordine del filtro richiesto

Una volta scelto il tipo di prototipo, l'ordine minimo n] che soddisfa sia la ricrespatura della banda passante che l'attenuazione della banda ferma devono essere calcolati.

[[FLT]]] [Caso:] ]] – 1) / (10,1] [FLT]] [FLT]]] [FLT]]] [FLT]]] [FLT]][FLT]]] [FLT]] [FLT]] [FLT]][FLT][FLT]]]]][FLT]]][FLT]]][FLT]][FLT]][FLT]]][FLT][FLT][FLT]]]]]][FLT][FLT][FLT]][FLT]]]]]][FLT][FLT][FLT][FLT]]]][FLT]]]][FLT]]]]]]]]]][FLT]]][FLT][FLT]

Il programma di calcolo è il sistema di calcolo più elevato, e il sistema di ωp], ω è il sistema di calcolo più vicino, e il sistema di calcolo è il più alto , ω] sono le frequenze di passaggio e di stopby

Rilevamento della funzione di trasferimento analogico H(s)

Con il tipo di prototipo e l'ordine noto, il passo successivo è quello di ottenere la funzione di trasferimento a basso passaggio normalizzato [H(s)] con un cutoff di 1 rad/s. Per ogni prototipo, i poli (e gli zero per ellittico/Chebyshev Type II) sono noti analiticamente.

  • Butterworth:[] I polacchi si trovano su un cerchio di raggio 1 nella metà piano sinistra ad angoli (2k+1)π/(2n) + π/2, per k = 0,1,...,n−1. Nessun valore finito.
  • Chebyshev Tipo I:[]] I polacchi si trovano su un ellisse con foci a ± jω[p[]. Il raggio dell'asse minore è legato al fattore di ripple ε = √(100.1Ap[FLT]
  • Chebyshev Tipo II:[] Ha sia i pali che gli zeri sull'asse immaginario (fermata). Gli zeri sono a s = ± j ωs[ / cos(...).
  • Ellittico:[] Invola funzioni ellittiche giacobiche; i poli e gli zeri sono disponibili nelle tabelle o attraverso routine numeriche.

La funzione di trasferimento è poi formata come rapporto di polinomi: H(s) = K * N(s) / D(s)], dove il guadagno K normalizza la risposta di magnitudo (ad esempio, K = 1 per unità di guadagno DC).

Applicare le trasformazioni di frequenza

Il filtro del prototipo normalizzato deve essere trasformato per soddisfare la frequenza di taglio desiderata e il tipo di filtro. Le trasformazioni di frequenza sostituiscono la variabile complessa s[] con una funzione di s] che mappa la risposta del prototipo alla banda passante desiderata.

Accesso a Low-pass

Sostituire s] con ]s / ωc[][]], dove ωc]]] è la frequenza angolare desiderata di cutoff.

Accesso a Internet

Sostituire s → ω[]c / s]. Questo converte gli zeri e i poli in modo reciproco, invertendo la risposta di magnitudo.

Accesso a banda larga

La trasformazione del band-pass è s → (s2 + ω]0]2) / (s Δω)[, dove ω[0]] è la frequenza centrale e Δω la larghezza di banda.

Accesso a banda-stop

Simile al band-pass, ma con s → s Δω / (s2 + ω0]2)].

Dopo la trasformazione, la funzione di trasferimento H(s)] è ora espressa in termini di variabile di frequenza angolare analogica che corrisponde ai bordi della banda passante desiderata.

Discretizzare il filtro utilizzando il Bilinear Transform

Il metodo più usato per convertire l'analogico H(s)] in un digitale [H(z)] è la trasformazione bilineare:

s = (2/T) · (1 – z−1) / (1 + z−1)]

dove T]] è il periodo di campionamento. Questa trasformazione mappa l'intero piano s della metà sinistra nel cerchio dell'unità nel piano z, garantendo stabilità (fornito il filtro analogico è stabile). Tuttavia, la mappatura introduce la curvatura di frequenza: la frequenza analogica Ω e la frequenza digitale ω sono correlati da

Ω = (2/T) tan( ω/2 ).

Per compensare, le frequenze di taglio analogiche utilizzate nella trasformazione devono essere precondite. Se il cutoff digitale desiderato è ω[d] (in radianti per campione), preriscaldare a Ωanalog] = (2/T) tan( ω applicare la funzione analogica di biline[5].

Il filtro bilineare di trasformazione si traduce in una funzione razionale in z−1] dello stesso ordine del filtro analogico. I coefficienti possono essere ottenuti mediante la sostituzione algebrica e l’espansione polinomiale, o più comunemente utilizzando le funzioni di progettazione digitale del filtro in software come la funzione MATLAB ].

Esprimere la funzione di trasferimento finale H(z)

Dopo la discorsizzazione, la funzione di trasferimento è un rapporto di polinomi in z−1:

H(z] = (b0 + b1 z−1 + ... + b]N[] z−]N]] / (1 + a1 z−1 + ... + a M z

dove N] e M[] sono tipicamente uguali (l'ordine del filtro). Per una sezione di secondo ordine (SOS), i coefficienti sono spesso scritti come:

H(z) = (b0 + b1 z−1 + b2 z−2) / (1 + a1 z−1 + a2 z−2)

I filtri di ordine superiore devono essere calcolati in sezioni di secondo ordine cascalate per migliorare la stabilità numerica e ridurre il rumore di quantizzazione. L'implementazione dell'equazione di differenza deriva direttamente da H(z):

y[n] = b0 x[n] + b1 x[n−1] + ... + b]N[[ x[n−N] – a1 y[n−1] – a] M]] y[n−M]]

Considerazioni pratiche

La creazione di una funzione di trasferimento teorico è solo parte del progetto; l'implementazione di successo richiede l'attenzione alle realtà digitali di elaborazione del segnale (DSP):

  • Effetti di quantizzazione:[] L'aritmetica di precisione finita può spostare le posizioni dei poli, causando instabilità o alterando la risposta della frequenza.
  • Scaling:[] I segnali di ingresso e uscita dovrebbero essere scalati per evitare il sovraflusso di sistemi a punto fisso.
  • Distorsione di infezione:[] I filtri IIR introducono una fase non lineare, che può essere inaccettabile in alcune applicazioni. Se la linearità di fase è critica, consideri un filtro FIR o un prototipo Bessel.
  • I trasmettitori di avvio:[ La memoria infinita dei filtri IIR provoca un transito iniziale; questo può essere mitigato inizializzando le variabili di stato o permettendo un periodo di riscaldamento.
  • I vincoli di tempo reale:[] Il numero di operazioni moltiplicatori-accumulate per campione influisce direttamente sul throughput.

Esempio: Progettazione di un Chebyshev Tipo I Low-Pass Filter

Supponiamo di avere bisogno di un filtro digitale a basso passaggio con le seguenti specifiche:

  • Frequenza di campionamento: 10 kHz
  • Bordo passante: 2 kHz (ωp = 0,4π rad/sample)
  • Bordo di stopband: 3 kHz (ωs = 0.6π rad/sample)
  • Ritiro del passband: 1 dB
  • Ammorbidimento della banda: 40 dB

Step 1: Preriscaldare le frequenze analogiche usando T = 1/10000 s. Ωp = 2 × 104 abbronzatura(0.4π/2) ≈ 2 × 104 × 1.376 ≈ 27520 rad/s; Ω

Step 2:[]] Ordine di Determinazione utilizzando Chebyshev Tipo I formula: con 1 dB ripple e 40 dB attenuazione, ordine n ≈ 4 (arrotondato su).

Step 3:[] Trova la funzione di trasferimento Chebyshev normalizzata di tipo I per n=4, 1 dB ripple (poli e guadagno disponibile nelle tabelle). Esempio dal design standard: H(s) = K / (s2 + 0.3473s + 0.8591)(s2 + 0.8506s + 0.3381) ).

Step 4:[] Applicare il passaggio a basso-passo pre-riscaldato alla trasformazione a basso-passo: sostituire s con s / Ω[p].

Step 5:[] Applicare la trasformazione bilineare alla funzione di trasferimento analogico pre-riscaldata. Utilizzando uno strumento o una sostituzione manuale, i rendimenti b e un coefficiente per ogni sezione di secondo ordine. L'H(z finale sarà in forma SOS cascaded.

Questo esempio, sebbene condensato, illustra l'intero pipeline. Per il calcolo numerico completo, fare riferimento alla documentazione del software DSP o ai riferimenti standard.

Conclusioni

La funzione di trasferimento del filtro IIR dalle specifiche è un processo metodologico che va dai requisiti alla selezione del prototipo, alla determinazione dell’ordine, alla derivazione della funzione di trasferimento analogico, alla trasformazione della frequenza, alla discretizzazione e all’implementazione.