// TOOL

IIR Filter Designer

Progetta filtri IIR digitali come cascata di sezioni del secondo ordine (biquad): scegli tipo, famiglia, ordine e frequenza di taglio, leggi risposta in frequenza, poli/zeri e i coefficienti pronti per CMSIS-DSP. Strumento dimostrativo.

Strumento IIR filter designer

1 · Specifica

v0.2: passa-basso/passa-alto, 5 famiglie (Butterworth, Chebyshev I/II, Ellittico, Bessel), ordini pari 2–8. Coefficienti validati contro scipy.signal. Bandpass/bandstop in arrivo.

Risposta

Risposta in ampiezza
Risposta in fase
Poli e zeri (piano z)

Coefficienti biquad (SOS)

Stadiob₀b₁b₂a₁a₂

Export CMSIS-DSP

Come funziona

Cos’è una cascata di biquad (SOS)?

Un filtro IIR di ordine N si realizza come cascata di sezioni del secondo ordine (biquad), numericamente più robuste di un’unica sezione di ordine alto. Ogni biquad ha funzione di trasferimento Hₖ(z) = (b₀ + b₁z⁻¹ + b₂z⁻²)/(1 + a₁z⁻¹ + a₂z⁻²) e la risposta complessiva è il prodotto H(z) = ∏ Hₖ(z) delle N/2 sezioni.

Un filtro IIR di ordine N si realizza come cascata di sezioni del secondo ordine (biquad), numericamente più robuste di una singola sezione di ordine alto. Ogni biquad ha funzione di trasferimento:

Dal continuo al discreto: trasformata bilineare

Il prototipo analogico (Butterworth, Chebyshev, ellittico o Bessel) viene mappato nel piano z con la trasformata bilineare, con pre-warping della frequenza di taglio:

La stabilità si legge dai poli: il semipiano sinistro analogico mappa nell'interno del cerchio unitario. Un filtro è stabile se tutti i poli hanno modulo < 1.

Quali sono le cinque approssimazioni?

Ogni famiglia è un compromesso tra ripidità della transizione, ripple e linearità di fase. Butterworth: modulo massimamente piatto, nessun ripple. Chebyshev I: ripple in banda, transizione più ripida. Chebyshev II: piatto in banda, ripple in stopband. Ellittico: il più ripido, ripple in entrambe le bande. Bessel: fase massimamente lineare. L’ellittico è la forma generale, le altre suoi casi particolari.

L'ellittico è la forma generale: le altre tre sono suoi casi particolari (ripple stopband→0 dà Chebyshev I, ripple banda→0 dà Chebyshev II, entrambi→0 dà Butterworth).

  • Butterworth — modulo massimamente piatto in banda passante, nessun ripple, roll-off 20·N dB/decade. Quando vuoi una banda passante pulita e non hai vincoli stretti di ordine.
  • Chebyshev I — ripple in banda passante, monotono in stopband. Transizione più ripida di Butterworth a parità di ordine.
  • Chebyshev II — piatto in banda passante, ripple in stopband. Utile quando vuoi banda passante pulita ma accetti ondulazioni nell\'attenuata.
  • Ellittico / Cauer — ripple in entrambe le bande, transizione più ripida in assoluto a parità di ordine. Fase più non lineare e ringing maggiore. Tipico nei filtri anti-aliasing aggressivi dove conta solo il modulo.
  • Bessel / Thomson — fase massimamente lineare (ritardo di gruppo costante), roll-off molto dolce. Quando conta la fedeltà nel tempo (no overshoot). La linearità è una proprietà analogica: la bilineare la distorce un po\' in digitale.

dove Tₙ è il polinomio di Chebyshev e Rₙ la funzione razionale ellittica (su funzioni ellittiche jacobiane), con ξ il fattore di selettività. Guida alla scelta e casi d'uso nella wiki del tool.

Come si esportano i coefficienti per CMSIS-DSP?

I coefficienti sono esportati nel formato di arm_biquad_cascade_df2T_f32: cinque valori per stadio nell’ordine {b₀, b₁, b₂, a₁, a₂}, con a₁ e a₂ negati rispetto alla funzione di trasferimento, perché CMSIS implementa y[n] = b₀x[n] + … − a₁y[n−1] − a₂y[n−2]. I coefficienti sono validati contro scipy.signal.

Coefficienti validati contro scipy.signal.

Approfondisci: wiki Filtri IIR digitali →