Esercizio 16filtro IIR del primo ordine, coefficienti, tempo di salita, taglio e risposta al gradino (temi d'esame gennaio 2025, febbraio 2025, settembre 2026 e 2004)
In questa pagina 5
Testo (temi d'esame gennaio 2025 problema P2; febbraio 2025 problema P4; settembre 2026 problema P3; 28 giugno 2004 problema 7).
(i) Il filtro numerico passa-basso è calcolato a kHz, frequenza di campionamento di (febbraio 2025). Determinare: (a) il tempo di salita al 99% e il valore finale della risposta al gradino unitario; (b) la frequenza di taglio; (c) la rappresentazione in 16 bit nel formato frazionario puro senza segno dei coefficienti; (d) il massimo tempo di calcolo consentito se l'algoritmo è eseguito in una routine attivata dall'ADC al completamento della conversione.
(ii) Stesse richieste (a), (b), (c) per a kHz (gennaio 2025).
(iii) Un filtro ha risposta al gradino unitario (settembre 2026). Determinare i coefficienti nella modalità Q16 (esadecimale e errore di arrotondamento) e la posizione relativa del polo .
(iv) Un filtro ha risposta al gradino (2004): valori di e e minimo numero di bit per riprodurre i coefficienti in notazione frazionaria con segno con errore relativo .
Teoria usata: Filtri numerici IIR e FIRUn filtro numerico è una equazione alle differenzerelazione che dà il campione di uscita in funzione di campioni di ingresso e di uscita passati $y(k)=\sum_ib_ix(k-i)+\sum_ia_iy(k-i)$. IIR (ricorsivo: qualche $a_i\ne0$) ha risposta impulsiva infinita e bastano pochi termini; FIR (tutti $a_i=0$) è sempre stabile ma richiede molti termini. Il passa-basso IIR del primo ordine $y(k)=b,x(k)+a,y(k-1)$ con $a+b=1$ ha guadagno 1 ed è stabile se $|a|<1$; la risposta al gradino è $y(k)=1-a^{k+1}$. Il filtro analogico equivalente (Eulero) ha $\tau=\dfrac{a,T_c}{1-a}$ e $f_T=\dfrac1{2\pi\tau}$. La media mobile di $N$ campioni è un FIR passa-basso che si assesta in $N$ passi.Filtri numerici IIR e FIR →, Discretizzazione di Eulero e TustinPer realizzare numericamente un filtro o regolatore $F(s)$ si approssima $\frac1s$ con un integratore a tempo discreto. Eulero: $\boxed{s=\dfrac{1-z^{-1}}{T_c}}$ (da $\mathrm{Int}(nT)=\mathrm{Int}((n-1)T)+T,x(n)$). Così $\dfrac{1+s\tau_z}{1+s\tau_p}$ diventa $y(k)=\dfrac{\tau_p}{T_c+\tau_p}y(k-1)+\dfrac{T_c+\tau_z}{T_c+\tau_p}x(k)-\dfrac{\tau_z}{T_c+\tau_p}x(k-1)$. Il passaggio inverso (da algoritmo a $F(s)$) usa $z^{-1}\approx1-sT_c$. L'approssimazione è affidabile solo fino a circa $f_c/10$ (distorsione, warping); Tustin $s=\frac2{T_c}\frac{1-z^{-1}}{1+z^{-1}}$ è più fedele.Discretizzazione di Eulero e Tustin →, Rappresentare un valore reale in virgola fissa - formato ottimo ed errorePer rappresentare un reale $x$ su $W$ bit a virgola fissa si sceglie il formato che minimizza l'erroresceglie la rappresentazione per cui la differenza tra il valore rappresentato e quello vero è la più piccola possibile: il maggior numero di bit frazionari $m$ compatibile con l'intervallo ($n=W-m$ bit interi, con U se $x\ge0$, con S se $x<0$). Poi $C=\mathrm{round}(x\cdot2^m)$, scritto in esadecimale (per un negativo, in complemento a 2), e l'errore $\varepsilon=\frac{C}{2^m}-x$, positivo se in eccesso, ha modulo $\le2^{-(m+1)}$. Se invece è dato l'errore massimo, i bit minimi si ricavano da $2^{-(m+1)}\le\varepsilon_{max}$.Rappresentare un valore reale in virgola fissa - formato ottimo ed errore →.
(i) , , kHz
s.
(a) Risposta al gradino: . Valore finale . Tempo di salita al 99%: , quindi campioni (con : ); in tempo . (Nel continuo il tempo per arrivare al 99% di un primo ordine è ms: la differenza è la discretizzazione del tempo.)
(b) Frequenza di taglio. Il filtro analogico equivalente con Eulero ha s e . Il rapporto : l'approssimazione di Eulero è affidabile.
(c) Coefficienti 0.16 U. (); (). Si verifica : il guadagno in continua è esattamente 1.
(d) Tempo di calcolo. L'algoritmo deve finire prima che arrivi il campione successivo: , con la durata della conversione dell'ADC e delle latenze (Sistemi di interruzioni - latenza, nesting e sostenibilitàCon $N$ sorgenti, ciascuna ISR $i$ ha durata $T_{d,i}$ (spesso già comprensiva della latenza intrinseca $T_{LI}$ e dell'istruzione in corso) e periodo minimo $T_{p,i}$. Condizione necessaria: $\sum_iT_{d,i}/T_{p,i}<1$ (la percentuale di impegno della CPU è la somma). Condizione di intervallo per ogni $i$ (priorità 1 = massima): $T_{d,i}+\sum_{k<i}n_k,T_{d,k};[+\max(T_{RC},\max_{j>i}T_{d,j})\text{ senza nesting}]\le T_{p,i}$, con $n_k=\lceil T_{p,i}/T_{p,k}\rceil$. Latenza massima della priorità $n$: con nesting $T_{LI}+\sum_{i<n}T_{ex,i}$; senza nesting si aggiunge $\max_{j>n}T_{ex,j}$.Sistemi di interruzioni - latenza, nesting e sostenibilità →); al limite .
(ii) , , kHz
s. (a) valore finale ; campioni (): tempo . (b) s; ; : l'approssimazione di Eulero è ancora accettabile. (c) (); (); ✓.
(iii) Risposta data:
I due zeri iniziali indicano un ritardo di 2 campioni sull'ingresso: . Il primo valore non nullo è . Il successivo . Verifica: ✓; (valore finale 1). Q16: , ; , ( ✓). Posizione del polo: ; , quindi (circa il 4% della frequenza di campionamento). Il ritardo di 2 campioni non cambia il polo.
(iv) Risposta
Tre zeri iniziali: ritardo di 3 campioni, ; ; ✓. Così e . Bit minimi per rappresentare in frazionario con segno (1.) i due coefficienti con errore relativo :
- (6 bit): (), () ✗;
- (7 bit): () ✗;
- (Q7, 8 bit): (), () ✓. Servono 8 bit (formato Q7).
Errori comuni
- Usare (manca il fattore ): .
- Arrotondare per difetto il numero di campioni: → 34 (non 33).
- Dimenticare il ritardo dei primi campioni nulli: danno un ritardo di campioni ma non cambiano .
- Rappresentare e con errori che non sommano a (il guadagno in continua devia da 1): si controlla .
- Usare Eulero con senza avvertire che la frequenza di taglio non è più affidabile.
Versione ripasso
Testo. Filtro IIR: a 50 kHz; a 40 kHz; risposte al gradino e (gennaio e febbraio 2025, settembre 2026, 2004).
- (i) valore finale 1; campioni = ms; µs, kHz; , .
- (ii) = ms; kHz; , .
- (iii) , (ritardo 2); , ; .
- (iv) , (ritardo 3); 8 bit (Q7: , ).
- Errori: senza ; per difetto; ritardo scambiato per coefficiente; (Filtri numerici IIR e FIRUn filtro numerico è una equazione alle differenzerelazione che dà il campione di uscita in funzione di campioni di ingresso e di uscita passati $y(k)=\sum_ib_ix(k-i)+\sum_ia_iy(k-i)$. IIR (ricorsivo: qualche $a_i\ne0$) ha risposta impulsiva infinita e bastano pochi termini; FIR (tutti $a_i=0$) è sempre stabile ma richiede molti termini. Il passa-basso IIR del primo ordine $y(k)=b,x(k)+a,y(k-1)$ con $a+b=1$ ha guadagno 1 ed è stabile se $|a|<1$; la risposta al gradino è $y(k)=1-a^{k+1}$. Il filtro analogico equivalente (Eulero) ha $\tau=\dfrac{a,T_c}{1-a}$ e $f_T=\dfrac1{2\pi\tau}$. La media mobile di $N$ campioni è un FIR passa-basso che si assesta in $N$ passi.Filtri numerici IIR e FIR →).