Sistemi a tempo discreto e filtri FIR
In questa pagina 5
Il corso lavora in inglese e le note sono in italiano: il termine inglese compare accanto a quello italiano la prima volta, perché l'esame è scritto in inglese. In tutto il corso il passo di campionamento si prende : il segnale è una successione , , e le frequenze sono normalizzate (, vedi Risposta in frequenza dei sistemi FIRSe all'ingresso di un FIR c'è un esponenziale complesso A e^{jφ} e^{jω̂n} (per ogni n), l'uscita è lo stesso esponenziale moltiplicato per H(ω̂) = Σ b_k e^{-jω̂k}: la frequenza non cambia, ampiezza e fase sono modificate da |H| (guadagno) e ∠H (sfasamento). Per sovrapposizione si trattano somme di sinusoidi. H è periodica di periodo 2π e, per coefficienti reali, hermitiana (|H| pari, fase dispari). La cascata ha H = H1·H2. Esempi: ritardo (fase lineare), differenza prima (passa-alto), {1,2,1} (passa-basso), media mobile di L punti (Dirichlet: |H| = |sin(Lω̂/2)/(L sin(ω̂/2))|, fase lineare -(L-1)ω̂/2).Risposta in frequenza dei sistemi FIR →). I segnali a tempo discreto sono già trattati in Segnali a tempo discretoUn segnale a tempo discreto è una funzione complessa $s(nT)$ definita sui multipli interi del quanto temporale $T$ (insieme $\mathbb Z(T)$, velocità $F_p=1/T$). Le definizioni sono quelle dei segnali continui con la somma al posto dell'integrale e il quanto $T$ al posto di $dt$: area $\sum T,s(nT)$, energia $\sum T|s(nT)|^2$, convoluzione $\sum T,x(kT)y(nT-kT)$. L'impulso ideale discreto vale $1/T$ nell'origine. Esponenziali e sinusoidi discreti sono periodici solo se $f_0/F_p$ è razionale e hanno frequenza ambigua a meno di multipli di $F_p$. I segnali periodici con periodo $NT$ sono descritti da $N$ valori e si trattano al calcolatore.Segnali a tempo discreto → (lì con esplicito): qui si richiama solo quello che serve e si passa subito ai filtri.
Dal segnale analogico a quello digitale
Un segnale (signal) è l'evoluzione di una grandezza fisica rispetto a una variabile indipendente (il tempo per un suono, lo spazio per una fotografia) che trasporta informazione. Lo si elabora (signal processing) per due scopi: analisi (capire o estrarre l'informazione: filtrare, togliere rumore, riconoscere strutture) e sintesi (costruire un segnale che contenga una certa informazione: musica sintetica, segnali di telefonia e radio).
Ogni segnale è una funzione, e si classifica guardando dominio (il tempo) e codominio (l'ampiezza), ciascuno continuo oppure discreto:
| dominio (tempo) | codominio (ampiezza) | nome |
|---|---|---|
| continuo | continuo | segnale analogico (analog) |
| continuo | discreto | analogico quantizzato |
| discreto | continuo | segnale campionato (sampled) |
| discreto | discreto | segnale digitale (digital) |
Un calcolatore rappresenta ed elabora esattamente solo i segnali digitali: tempo scandito dai multipli di e ampiezze prese da un insieme finito di livelli.
Lo schema di elaborazione
Lo schema base per elaborare un segnale analogico è la catena: filtro passa-basso (low-pass filter, LPF) di ingresso convertitore A/D elaborazione numerica (DSP, digital signal processing) convertitore D/A LPF di uscita. Le ipotesi sono due: l'ingresso è a banda limitata (è il compito del primo LPF, che evita l'aliasing) e la frequenza di campionamento è almeno il doppio della banda del segnale (Teorema del campionamento, interpolazione e aliasingTeorema di Shannon: un segnale a banda limitata $\omega_M$ si ricostruisce esattamente dai campioni se $T_c<\pi/\omega_M$ (frequenza di campionamento maggiore di quella di Nyquist $2f_{\max}$), con la formula di interpolazione ideale $x(t)=\sum_nx(nT_c)\operatorname{sinc}\left(\frac{t-nT_c}{T_c}\right)$. Sotto Nyquist c'è aliasing: le frequenze alte si confondono con quelle basse e l'informazione è persa.Teorema del campionamento, interpolazione e aliasing →). Sotto queste ipotesi la catena fa quello che farebbe un circuito analogico, ma con i vantaggi sotto.
Il convertitore A/D (analog-to-digital) è un campionatore ideale seguito da un quantizzatore uniforme. Se il segnale sta in e il convertitore ha bit, ogni campione viene sostituito dal livello più vicino, con intero e passo di quantizzazione Il dato che arriva al processore è l'intero ; è un fattore di scala implicito.
Esempio. Con e : e l'errore massimo è . Un convertitore a 8 bit con la stessa dinamica darebbe .
Il convertitore D/A (digital-to-analog) fa l'operazione inversa: da produce la tensione e la mantiene costante fino al campione successivo (interpolatore di ordine zero, zero-order hold), la cui risposta in frequenza è L'uscita è quindi un segnale a "scalini", a tempo continuo e ampiezza discreta, che il LPF finale liscia (Campionamento e ricostruzioneIl campionamento $s_c(nT)=s(nT)$ trasforma un segnale continuo in uno discreto e, in frequenza, ripete lo spettro con periodo $F_c=1/T$: $S_c(f)=\sum_kS(f-kF_c)$. Se le repliche si sovrappongono si ha aliasing e il segnale non è recuperabile. Un interpolatore $\mathbb Z(T)\to\mathbb R$ con risposta impulsiva $g$ produce $\tilde s(t)=\sum_nT g(t-nT)s(nT)$ e $\tilde S=G,S_c$. Teorema del campionamento: se $s$ ha banda $B$ e $F_c\ge2B$, l'interpolatore ideale $G=\operatorname{rect}(f/F_c)$ ricostruisce esattamente $s(t)=\sum s(nT)\operatorname{sinc}(F_c(t-nT))$. Se le ipotesi non valgono c'è un errore, in banda e fuori banda, riducibile con un prefiltro anti-aliasing.Campionamento e ricostruzione →).
Perché il digitale
- Precisione: dipende solo dal numero di bit con cui si rappresentano i numeri, e con registri lunghi diventa praticamente illimitata a basso costo.
- Affidabilità (reliability): un sistema digitale che funziona esegue sempre le stesse operazioni e dà sempre lo stesso risultato; non risente di deriva termica né di rumore.
- Adattività (adaptivity): per cambiare il comportamento di un filtro si cambiano numeri in memoria, non componenti.
L'esempio classico è la trasmissione. Un canale attenua di un fattore e aggiunge rumore : il ricevitore vede . Con un segnale analogico il ricevitore può solo riamplificare di e ottiene : il segnale è a posto ma il rumore è stato amplificato insieme a lui. In una linea lunga con ripetitori ogni tratta aggiunge il suo rumore, che si accumula: per esempio con e rumore indipendente di deviazione standard per tratta, dopo tratte la deviazione standard del rumore è (è perché le potenze di rumori indipendenti si sommano). Con un segnale digitale (per esempio ) il ripetitore applica una soglia, , e rigenera il segnale pulito: finché il rumore non è abbastanza forte da cambiare il segno, l'errore viene cancellato a ogni tratta invece di accumularsi.
Sistemi a tempo discreto
Definizione (sistema a tempo discreto, discrete-time system). È un processo che trasforma una sequenza di ingresso in una sequenza di uscita , e si scrive . In generale dipende da tutto l'ingresso: passato, presente e futuro.
Tutti i sistemi del corso hanno un solo ingresso e una sola uscita.
Due segnali fondamentali
Definizione (campione unitario o impulso unitario, unit sample). (il delta di Kronecker, non il delta di Dirac: qui vale , non è una distribuzione, vedi Impulso ideale (delta di Dirac)L'impulso ideale $\delta(t)$ è il segnale "nullo fuori dall'origine e di area $1$" definito dalla proprietà rivelatrice $\int s(t)\delta(t-t_0),dt=s(t_0)$: è il limite (in senso operativo) di impulsi rettangolari sempre più stretti e alti di area $1$. Serve per scrivere derivate dei segnali con salti (la derivata del gradino è $\delta$, il salto diventa un impulso di area pari al salto), come elemento neutro della convoluzione e come risposta impulsiva dei filtri. Non ha senso parlare di energia o potenza di $\delta$.Impulso ideale (delta di Dirac) →).
Definizione (gradino unitario, unit step). per e per .
Legami utili: (il gradino "sale" solo in ) e . Soprattutto, ogni segnale è una somma di impulsi traslati e pesati: Perché: vale solo per , quindi nella somma sopravvive un solo termine, . Questa scrittura è il punto di partenza di tutto il discorso sui sistemi LTI (Sistemi LTI e convoluzione discretaUn sistema lineare e tempo-invariante (LTI) è completamente descritto dalla sua risposta impulsiva h[n]: y[n] = Σ x[k] h[n-k] = x[n] * h[n] (somma di convoluzione). Si ricava scomponendo x in impulsi traslati e usando linearità e invarianza. La convoluzione è commutativa, associativa e distributiva; una cascata di LTI equivale a un solo filtro con h = h1 * h2 e l'ordine non conta. Se x ha lunghezza N e h lunghezza L, y ha lunghezza N+L-1. Si calcola col metodo della finestra scorrevole o a tabella. I FIR sono LTI; altri sistemi (n·x[n], x[-n], x²) non lo sono.Sistemi LTI e convoluzione discreta →).
Esempio. La sequenza per (e zero altrove) è .
Grafico interattivo: Il segnale x[n] = 2δ[n] + 4δ[n-1] + 6δ[n-2] + 4δ[n-3] + 2δ[n-4], usato negli esempi seguenti
La media mobile
Il primo filtro è la media mobile (moving average, o running average): ogni campione di uscita è la media di una finestra di campioni di ingresso che scorre. Con tre punti "in avanti": Questa è un'equazione alle differenze (difference equation): è una descrizione completa del filtro perché permette di calcolare per ogni .
Esempio svolto (calcolo di ). Con in :
- ;
- ;
- e ;
- , , e fuori da .
Quindi per (verificato con Python). Sia l'ingresso sia l'uscita hanno supporto finito: l'uscita è più lunga di due campioni, perché la finestra comincia a "vedere" il segnale prima che l'ingresso inizi e finisce dopo.
Causalità. In questa forma l'uscita comincia (a ) prima dell'ingresso: il filtro usa il futuro dell'ingresso. Un sistema che usa solo valori presenti e passati è causale (causal: la causa precede l'effetto, è zero finché non diventa diverso da zero); uno che usa valori futuri è non causale (non-causal) e non è realizzabile in tempo reale, perché i campioni futuri non sono ancora disponibili. Ma non è un difetto del segnale registrato: sulle registrazioni (immagini, audio salvato) il futuro c'è, ed è spesso conveniente usarlo.
La media a tre punti causale (backward average) è Dà gli stessi numeri ma partendo da invece che da : il supporto è traslato di due campioni, i valori sono gli stessi. Il filtro centrato dà gli stessi valori partendo da : è simmetrico, quindi non ritarda il segnale.
Grafico interattivo: Uscita della media mobile centrata a 3 punti con ingresso {2,4,6,4,2}: 2/3, 2, 4, 14/3, 4, 2, 2/3 per n = -1,...,5 (supporto più lungo di 2 campioni; il picco 14/3 sta in n = 2, come l'ingresso)
Media mobile di punti
La media mobile causale di punti è . Più è lunga la finestra, più l'uscita è "liscia", e più è lungo il transitorio ai bordi del segnale.
Esempio (3 e 7 punti). Ingresso , : una crescita esponenziale lenta più un'oscillazione di periodo campioni. Il filtro lascia passare quasi intatta la parte lenta e attenua l'oscillazione: con l'ampiezza della sinusoide scende da a , con a (i fattori e sono il guadagno del filtro alla frequenza , calcolato in Risposta in frequenza dei sistemi FIRSe all'ingresso di un FIR c'è un esponenziale complesso A e^{jφ} e^{jω̂n} (per ogni n), l'uscita è lo stesso esponenziale moltiplicato per H(ω̂) = Σ b_k e^{-jω̂k}: la frequenza non cambia, ampiezza e fase sono modificate da |H| (guadagno) e ∠H (sfasamento). Per sovrapposizione si trattano somme di sinusoidi. H è periodica di periodo 2π e, per coefficienti reali, hermitiana (|H| pari, fase dispari). La cascata ha H = H1·H2. Esempi: ritardo (fase lineare), differenza prima (passa-alto), {1,2,1} (passa-basso), media mobile di L punti (Dirichlet: |H| = |sin(Lω̂/2)/(L sin(ω̂/2))|, fase lineare -(L-1)ω̂/2).Risposta in frequenza dei sistemi FIR →; verificati con Python). In più l'uscita arriva in ritardo di campioni ( per , per ).
import numpy as np
n = np.arange(0, 41)
x = 1.02**n + 0.5*np.cos(2*np.pi*n/8 + np.pi/4)
for L in (3, 7):
h = np.ones(L)/L # coefficienti b_k = 1/L
y = np.convolve(h, x) # lunghezza 41 + L - 1
print(L, len(y)) # 43 e 47Il filtro FIR causale
Definizione (filtro FIR, finite impulse response). Un filtro FIR causale di ordine è il sistema È una media mobile pesata di campioni, e è la lunghezza del filtro. I numeri sono i coefficienti (filter coefficients).
La media mobile a 3 punti è il caso , . Attenzione alla differenza tra ordine (numero di ritardi) e lunghezza (numero di coefficienti): confonderli è l'errore più frequente.
Supporto dell'uscita. Se l'ingresso ha supporto (lunghezza ), la finestra di campioni comincia a toccare il segnale in e smette in : l'uscita ha supporto , cioè lunghezza . Con , si ottengono i campioni di prima.
Risposta impulsiva. Con nell'equazione si ha , che vale per e altrove. Quindi La risposta impulsiva (impulse response) di un FIR è la sequenza dei suoi coefficienti: dura campioni e poi si annulla, da cui "a risposta impulsiva finita". Il filtro è completamente descritto da . I filtri a risposta impulsiva infinita (IIR) hanno invece una retroazione interna e possono rispondere per sempre (di solito con un decadimento): sono trattati in Filtri IIR - definizione e confronto con i FIRUn filtro IIR (infinite impulse response) è un sistema LTI descritto da $y[n]=\sum_{\ell=1}^{N}a_\ell y[n-\ell]+\sum_{k=0}^{M}b_kx[n-k]$: l'uscita usa anche le uscite passate (retroazione), per questo si chiama ricorsivo. Con le condizioni di riposo iniziale è LTI, $H(z)=\frac{\sum b_kz^{-k}}{1-\sum a_\ell z^{-\ell}}$ è un rapporto di polinomi, l'ordine è $N$ (numero di poli) e la risposta impulsiva ha durata infinita. Nel primo ordine $y[n]=a_1y[n-1]+b_0x[n]$ si ha $h[n]=b_0a_1^nu[n]$, ROC $|z|>|a_1|$, stabile se $|a_1|<1$; il gradino dà $b_0\frac{1-a_1^{n+1}}{1-a_1}\to\frac{b_0}{1-a_1}$. Si implementa iterando l'equazione alle differenze, non con la convoluzione. Rispetto ai FIR gli IIR rispettano le stesse specifiche di modulo con ordine molto più basso, ma possono essere instabili e non hanno fase lineare. Progetto: per tentativi (notch), con la trasformazione $s\to z$ dai filtri analogici, o con ottimizzazione numerica.Filtri IIR - definizione e confronto con i FIR →.
Due casi semplici
- Ritardo: è un FIR con un solo coefficiente non nullo. Per : , , .
- Somma mobile (running sum) di 3 punti con ingresso gradino: vale per La finestra "si riempie" in campioni; da lì in poi il filtro vede solo uni e l'uscita è costante. Con la media mobile a punti sul gradino si ottiene : una rampa lineare di passi che sale fino a (di qui l'idea di regime e transitorio, vedi Risposta a regime e transitorioLa formula y[n] = H(ω̂) X e^{jω̂n} vale per un esponenziale complesso definito per ogni n. Se l'esponenziale è applicato all'istante n = 0, x[n] = X e^{jω̂n}u[n], l'uscita di un FIR di ordine M ha tre regioni: zero per n < 0, transitorio per 0 ≤ n < M (somma incompleta Σ_{k=0}^{n} h[k]e^{-jω̂k}), regime per n ≥ M (uguale al caso bilatero). Per un IIR stabile il transitorio non si annulla in tempo finito ma tende a zero; la sua analisi dice se il sistema è stabile.Risposta a regime e transitorio →).
Schemi a blocchi
Per calcolare un FIR servono tre operazioni: moltiplicare per una costante (), sommare () e ritardare di un campione (, l'unico elemento con memoria). Con questi tre blocchi si disegna il filtro. Nella forma diretta (direct form) l'ingresso scorre in una catena di ritardi, ogni uscita della catena è moltiplicata per un e i prodotti vengono sommati. Nella forma trasposta (transposed form) il segnale è inviato in parallelo a tutti i moltiplicatori e la catena dei ritardi raccoglie le somme parziali. Le due forme hanno la stessa equazione (si verifica sostituendo all'indietro le equazioni dei nodi). I FIR sono feed-forward: tutti i percorsi vanno dall'ingresso all'uscita, senza anelli.
Per scrivere l'equazione di uno schema qualsiasi: si dà un nome all'ingresso di ogni ritardo, si scrive la sua uscita in funzione di quel nome, si scrive un'equazione per ogni sommatore e si eliminano i segnali interni.
Esempio (costo della cascata). Due medie mobili e in cascata equivalgono a un solo filtro (calcolato in Sistemi LTI e convoluzione discretaUn sistema lineare e tempo-invariante (LTI) è completamente descritto dalla sua risposta impulsiva h[n]: y[n] = Σ x[k] h[n-k] = x[n] * h[n] (somma di convoluzione). Si ricava scomponendo x in impulsi traslati e usando linearità e invarianza. La convoluzione è commutativa, associativa e distributiva; una cascata di LTI equivale a un solo filtro con h = h1 * h2 e l'ordine non conta. Se x ha lunghezza N e h lunghezza L, y ha lunghezza N+L-1. Si calcola col metodo della finestra scorrevole o a tabella. I FIR sono LTI; altri sistemi (n·x[n], x[-n], x²) non lo sono.Sistemi LTI e convoluzione discreta →). Realizzato come singolo filtro servono moltiplicazioni e addizioni; realizzato come cascata , servono addizioni e nessuna moltiplicazione ( somme; il corso conta e addizioni contando i termini invece delle somme, ma la differenza che conta sono le moltiplicazioni). In hardware (FPGA) un moltiplicatore costa molta più area e potenza di un sommatore: la cascata è più economica.
Domande d'esame
- Vantaggi dell'elaborazione numerica e schema di conversione. Traccia: schema LPF–A/D–DSP–D/A–LPF e le due ipotesi (banda limitata, ); A/D = campionatore + quantizzatore, , errore ; D/A con interpolatore di ordine zero; precisione, affidabilità, adattività; esempio della trasmissione (analogico: il rumore si amplifica e si accumula; digitale: soglia e rigenerazione).
- Definire un filtro FIR causale e determinarne risposta impulsiva e supporto dell'uscita. Traccia: equazione alle differenze, ordine e lunghezza ; ; uscita lunga per ingresso lungo ; causalità; esempio con la media mobile a 3 punti (causale e centrata: stessi valori, supporto traslato di ).
Versione ripasso
- Sistema. , con un ingresso e un'uscita. FIR causale di ordine (lunghezza ): . Risposta impulsiva per , zero altrove.
- Impulso e gradino. per , altrove; per . Legami: ; .
- Media mobile a 3 punti. Anticausale ; causale . Con la causale dà a partire da ; la centrata dà gli stessi valori a partire da , senza ritardo.
- Supporto. Ingresso lungo con FIR di ordine : uscita lunga . Esempio: , dà campioni.
- Causalità. Causale = usa solo presente e passato. Non causale = usa campioni futuri: non realizzabile in tempo reale, ma su registrazioni salvate è possibile.
- Media mobile di punti. . Esempio con : con l'ampiezza della sinusoide scende a , con a ; ritardo campioni.
- Gradino. Somma mobile di punti: . Media mobile di punti sul gradino: .
- Forma diretta e trasposta. Stessa equazione. Diretta: ingresso in una catena di ritardi, ciascun nodo moltiplicato per , somma. Trasposta: in parallelo a tutti i moltiplicatori, catena dei ritardi per le somme parziali. I FIR sono feed-forward.
- Cascata. e danno : come singolo filtro servono moltiplicazioni; in cascata nessuna moltiplicazione, solo somme.
- Conversione. Schema LPF, A/D, DSP, D/A, LPF. A/D: quantizzatore uniforme con ed errore massimo . Esempio: , V dà V. D/A: tenuta di ordine zero, .
- Vantaggi del digitale. Precisione (dipende dai bit), affidabilità (stessi risultati sempre), adattività (si cambiano numeri, non componenti).
- Trasmissione. Analogico: il rumore cresce con le tratte, come . Digitale: una soglia rigenera il segnale a ogni tratta.
- Ipotesi della catena. Ingresso a banda limitata (la prima LPF evita l'aliasing) e (Teorema del campionamento, interpolazione e aliasingTeorema di Shannon: un segnale a banda limitata $\omega_M$ si ricostruisce esattamente dai campioni se $T_c<\pi/\omega_M$ (frequenza di campionamento maggiore di quella di Nyquist $2f_{\max}$), con la formula di interpolazione ideale $x(t)=\sum_nx(nT_c)\operatorname{sinc}\left(\frac{t-nT_c}{T_c}\right)$. Sotto Nyquist c'è aliasing: le frequenze alte si confondono con quelle basse e l'informazione è persa.Teorema del campionamento, interpolazione e aliasing →). Con queste ipotesi la catena fa quello che farebbe un circuito analogico.
- Segnali e sistemi. Un segnale è una funzione con dominio (tempo) e codominio (ampiezza), ciascuno continuo o discreto. Il digitale è discreto in entrambi: è l'unico che un calcolatore tratta esattamente.
- Analisi e sintesi. Analisi: estrarre informazione (filtrare, togliere rumore). Sintesi: costruire un segnale che contiene informazione (musica sintetica, telefonia, radio).
- Quantizzazione a 8 bit. Con la stessa dinamica di V, mV.
- Impulso e sistemi. Un sistema è determinato dalla risposta a : per un FIR la risposta sono i coefficienti. Per : .
- Ritardo come FIR. ha per , , .
- Equazione alle differenze. La media mobile è descritta da : basta a calcolare per ogni .
- Esempio di trasmissione. Canale con e rumore per tratta: dopo tratte la deviazione standard del rumore è nel caso analogico. Nel caso digitale, rigenera il segnale finché il rumore non cambia il segno.
- Errore tipico. Confondere ordine (ritardi) con lunghezza (coefficienti).