Progetto di filtri FIR con il metodo delle finestre
In questa pagina 8
Un filtro ideale passa-basso lascia passare tutto fino a una frequenza di taglio e blocca tutto il resto: ha risposta impulsiva infinita e non causale, quindi non si può realizzare. Il progetto di un filtro FIR (FIR filter design) consiste nel trovare i coefficienti di un filtro causale a risposta impulsiva finita la cui risposta in frequenza (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 →) approssima quella ideale entro tolleranze assegnate. Qui ci si limita ai filtri a fase lineare, per i quali il progetto riguarda solo il modulo (Sistemi a fase lineare e assenza di distorsioneUn sistema non deforma il segnale se y[n] = K x[n-n0]: modulo costante e fase lineare -n0 w, cioè ritardo di gruppo costante n0. Un sistema reale e causale ha fase lineare (generalizzata) se e solo se è FIR con risposta impulsiva simmetrica h[n] = h[N-n] (ampiezza pari, fase -N w/2) o antisimmetrica h[n] = -h[N-n] (ampiezza dispari, fase -N w/2 + pi/2). Il ritardo di gruppo è N/2: intero se N è pari (vale la condizione di non distorsione), semi-intero se N è dispari (uscita interpolata e ritardata). Un IIR causale non può essere simmetrico, quindi non ha fase lineare esatta.Sistemi a fase lineare e assenza di distorsione →, Filtri FIR a fase lineare - tipi e zeriI FIR a fase lineare di ordine N si dividono in quattro tipi: I (N pari, h simmetrica), II (N dispari, simmetrica), III (N pari, antisimmetrica), IV (N dispari, antisimmetrica). Si scrive H = e^{-jwN/2} e^{jb} A(w), con A somma di coseni (tipi I e II) o di seni (III e IV). Dalla relazione H(z) = ±z^{-N} H(1/z) segue che gli zeri vengono in gruppi (z0, z0*, 1/z0, 1/z0*) e che ci sono zeri forzati: tipo II in z = -1, tipo III in z = 1 e z = -1, tipo IV in z = 1, tipo I nessuno. Quindi II non fa passa-alto, III non fa passa-basso né passa-alto, IV non fa passa-basso. Ogni tipo II, III, IV è un tipo I moltiplicato per (1+z^-1), (1-z^-2), (1-z^-1).Filtri FIR a fase lineare - tipi e zeri →). Tre metodi: finestre (questo è il metodo principale del corso), campionamento in frequenza e minimax.
Le specifiche di un filtro passa-basso
Gli altri tipi di filtro (passa-alto, passa-banda, elimina-banda) si ricavano da un prototipo passa-basso, quindi si descrive solo questo. Le specifiche sono date sul modulo della risposta in frequenza, perché le tolleranze non possono essere nulle e fra la banda passante e quella oscura serve una banda di transizione (transition band).
Definizione (specifiche del passa-basso).
- : limite della banda passante (pass-band edge); per il segnale passa praticamente inalterato.
- : limite della banda oscura (stop-band edge); per il segnale è fortemente soppresso. Per si è in banda di transizione e non si impone nulla.
- : errore in banda passante, (l'ideale sarebbe ).
- : errore in banda oscura, (l'ideale sarebbe ).
In decibel: ondulazione in banda passante (pass-band ripple) e attenuazione in banda oscura (stop-band attenuation) .
Esempio. Con si ha dB e dB. Con e si ha dB e dB.
Filtro causale a fase lineare di tipo I
Un FIR causale di ordine ha coefficienti ; è a fase lineare se . Nel tipo I ( pari, simmetria ) la risposta in frequenza si scrive
con e per . La parte è reale e si chiama risposta di ampiezza (amplitude response); la fase è esattamente (ritardo di campioni). Il perché: si porta il filtro in forma simmetrica traslando di campioni, , per ; essendo , le esponenziali e si accoppiano in e la somma diventa reale. Negli altri tre tipi di fase lineare cambia solo un fattore fisso (e quindi un vincolo sugli zeri in ), mentre resta una combinazione di coseni (o seni).
Esempio. Per e si ha , , , quindi e .
Obiettivo: la serie di Fourier dell'ampiezza desiderata
Si vuole un filtro la cui risposta approssimi
dove è l'ampiezza desiderata: reale, non negativa e periodica di periodo (per un passa-basso, per e altrimenti). Il fattore di fase è il ritardo che garantisce la fase lineare. Poiché è periodica, ha una serie di Fourier (Serie di FourierUn segnale periodico di periodo $T_p$ si scrive come somma di esponenziali alle frequenze multiple della fondamentale $F=1/T_p$: $s(t)=\sum_nS_ne^{i2\pi nFt}$, con $S_n=\frac1{T_p}\int_{T_p}s(t)e^{-i2\pi nFt}dt$. Si basa sull'ortogonalità degli esponenziali su un periodo. $S_0$ è il valor medio; per segnali reali $S_{-n}=S_n^$ e si passa alla forma con coseni e seni; vale il teorema di Parseval $P=\sum|S_n|^2$. La convoluzione ciclica diventa il prodotto $T_pX_nY_n$ dei coefficienti. Le somme troncate presentano il fenomeno di Gibbs vicino ai salti.Serie di Fourier →) che coincide con una DTFT (Trasformata di Fourier a tempo discretoLa trasformata di Fourier di un segnale discreto è $S(f)=\sum_nT,s(nT),e^{-i2\pi fnT}$: una funzione continua e periodica in $f$ di periodo $F_p=1/T$. L'antitrasformata è l'integrale su un periodo, $s(nT)=\int_0^{F_p}S(f)e^{i2\pi fnT}df$. Le regole sono quelle del caso continuo (traslazione, convoluzione $\leftrightarrow$ prodotto, Parseval $\sum T|s|^2=\int_0^{F_p}|S|^2$), con incremento e somma corrente al posto di derivata e integrale. Per segnali reali $S(f)=S^(-f)$, quindi basta $[0,F_p/2]$. Esempi: $\delta\to1$, $1\to\delta_{F_p}$, rect $\to$ sinc periodico, $a^n\mathbf 1_0\to\frac T{1-ae^{-i2\pi fT}}$.Trasformata di Fourier a tempo discreto →):
Quindi è la risposta impulsiva (infinita) del filtro ideale con ampiezza e fase nulla. Siccome è reale e pari, è reale e pari. Confronto: la risposta di un FIR è una somma finita , quella desiderata una somma infinita. Tutta la progettazione sta nel scegliere in modo che la somma finita approssimi quella infinita. Il filtro ha la fase di per costruzione; resta da approssimare il modulo.
Teorema (i tre metodi).
- Finestre (windowing, o troncamento della serie di Fourier): si usa una somma parziale della serie di .
- Campionamento in frequenza (frequency sampling): è l'IDFT di campioni di , quindi coincide con solo su quei campioni.
- Minimax (algoritmo di Parks-McClellan): si cercano i coefficienti che minimizzano il massimo dell'errore pesato ; il peso permette errori diversi nelle diverse bande. I filtri risultanti sono equiripple.
Metodo delle finestre
Il troncamento
Per un tipo I si lavora con il filtro non causale simmetrico , , che ha risposta con . L'idea è prendere i coefficienti centrali della serie di :
Il filtro causale si ottiene ritardando di campioni:
Il ritardo non cambia il modulo, aggiunge soltanto il fattore e rende il filtro realizzabile. è simmetrica, , perché lo è .
Esempio: il passa-basso ideale
Per in e altrove ( è la frequenza di taglio normalizzata):
(Con , come nel corso e in numpy.sinc.) Il filtro causale è . Il coefficiente più grande è quello centrale, qualunque sia il taglio, e più la banda è stretta più tutti i coefficienti sono piccoli (guadagno 1 in continua spalmato su molti campioni).
Esempio. , , finestra rettangolare: e, per simmetria, , , (è ), , , , , , , . La somma dei coefficienti è (il guadagno in continua).
Perché il troncamento è il migliore possibile, e perché dà Gibbs
Teorema (ottimalità). Fra tutti i filtri FIR a fase lineare di ordine , la somma parziale minimizza l'errore quadratico medio .
Dimostrazione. Per Parseval , con fuori da . L'ultima somma non dipende dalla scelta di ; la prima è non negativa e vale zero se e solo se per .
Il troncamento è dunque ottimo in media quadratica, ma non è ottimo nel caso peggiore: guardando il massimo dell'errore ci sono filtri migliori (è il minimax). Per capire cosa succede al modulo, si osserva che moltiplicare per in tempo equivale a convolvere in frequenza (Proprietà della trasformata di FourierCon le proprietà (linearità, simmetrie, ritardo $\leftrightarrow e^{-j\omega t_0}$, modulazione $\leftrightarrow$ traslazione in frequenza, scala, dualità, convoluzione $\leftrightarrow$ prodotto, Parseval $E=\frac1{2\pi}\int|X|^2$, derivata $\leftrightarrow j\omega$, moltiplicazione per $t\leftrightarrow j,d/d\omega$, integrazione) quasi tutte le trasformate si ottengono da poche coppie base senza integrare.Proprietà della trasformata di Fourier →):
con la lunghezza della risposta impulsiva (è il nucleo di Dirichlet: la serie geometrica di termini). vale in e si annulla in , . Il tratto fra i due primi zeri è il lobo principale (main lobe), largo ; gli altri sono i lobi laterali (side lobes). Il primo lobo laterale vale circa il 22% del principale (cioè dB) qualunque sia : aumentando i lobi si restringono ma non si abbassano.
Il risultato dell'integrale è la media pesata di con il nucleo centrato in . Dove è costante o varia lentamente il nucleo vede un valore quasi costante e ; vicino a un salto di i lobi laterali, che hanno segno alterno, entrano e escono dal salto e producono oscillazioni (fenomeno di Gibbs).
Grafico interattivo: Passa-basso con ω0 = π/3 progettato con la finestra rettangolare: aumentando L le oscillazioni si stringono ma il sovraelongo (circa 9%) resta; con Hamming scompaiono
Esempio. Con il massimo di è per , per , per e per : il sovraelongo converge a circa il 9% del salto (con minimo nella banda oscura), come si vede nel grafico. L'errore in banda passante e in banda oscura è circa , cioè dB, e non dipende da . Quello che dipende da è la larghezza della transizione, circa , e la rapidità delle oscillazioni.
Altre finestre
Per ridurre i lobi laterali, al posto di si usa una finestra più regolare, che scende dolcemente verso i bordi. Il prezzo è un lobo principale più largo, cioè una transizione più larga. Le espressioni qui sono quelle non causali di lunghezza dispari, ; nel codice dei laboratori le stesse finestre sono scritte con , per esempio la Hamming .
| finestra | , |
|---|---|
| rettangolare | |
| triangolare (Bartlett) | |
| Hann (Hanning) | |
| Hamming | |
| Blackman |
(Hann e Hamming sono "coseni rialzati": un coseno più una costante.)
Grafico interattivo: Finestre di lunghezza L = 51 (N = 50), n = 0, ..., 50: la rettangolare vale 1 ovunque, le altre scendono verso i bordi
I loro spettri sono combinazioni di nuclei di Dirichlet traslati: i termini coseno spostano il nucleo in e, se i pesi sono scelti bene, i lobi laterali dei tre nuclei si cancellano a vicenda.
Grafico interattivo: Modulo in dB degli spettri (L = 51): più il lobo principale è largo, più i lobi laterali sono bassi
Proprietà delle finestre fisse e valori tipici (tabella delle dispense; i valori di larghezza del lobo principale e di livello del lobo laterale sono stati ricalcolati numericamente per ):
| finestra | lobo principale | lobo laterale massimo | banda di transizione | attenuazione minima |
|---|---|---|---|---|
| rettangolare | dB | 21 dB | ||
| triangolare | dB (calcolato ) | 26 dB | ||
| Hann | dB | 44 dB | ||
| Hamming | dB (calcolato ) | 54 dB | ||
| Blackman | dB (calcolato ) | 74 dB |
Tre fatti generali per tutte le finestre fisse:
- la larghezza della transizione è inversamente proporzionale alla lunghezza: , con che dipende solo dalla finestra (colonna "banda di transizione");
- gli errori sono quasi uguali nelle due bande, , e dipendono solo dal tipo di finestra, non da ;
- entrambi non dipendono dalla frequenza di taglio .
Il punto 2 ha una conseguenza pratica: con le finestre fisse non si possono scegliere e separatamente. Queste cifre sono regole pratiche (si vedrà nell'esempio sotto che per soddisfare davvero 50 dB serve un ordine un poco più grande di quello dato dalla tabella).
La finestra di Kaiser
La finestra di Kaiser ha un parametro che permette di scegliere l'attenuazione:
dove è la funzione di Bessel modificata di ordine zero. Con si ottiene la rettangolare ( dB). Date in dB e la banda di transizione , si usano le formule empiriche
Esempio. Per dB e (cioè in unità di ): con la seconda formula (con la prima, che vale sopra 50 dB, si avrebbe : i due valori coincidono quasi sul confine) e , quindi (pari, per il tipo I).
Procedura di progetto
- Si calcola la risposta impulsiva ideale (con taglio ).
- Si sceglie il tipo di finestra dalla richiesta (la meno costosa che arriva a ) e l'ordine dalla larghezza della transizione: .
- Si calcola e, per un filtro causale, .
- Si calcola e si verifica che le specifiche siano rispettate; se no si aumenta o si cambia finestra.
Vantaggi del metodo: è semplicissimo, intuitivo e conserva gli zeri di (utile per i filtri di interpolazione, vedi Elaborazione multirate - decimazione e interpolazioneL'elaborazione multirate cambia la frequenza di campionamento di un segnale. Interpolazione per $L$ (da $F_s$ a $LF_s$): l'espansore inserisce $L-1$ zeri fra i campioni, $W(\hat\omega)=X(L\hat\omega)$, lo spettro si ripete $L$ volte nell'asse più ampio; un passabasso con taglio $\pi/L$ e guadagno $L$ elimina le immagini, e con il sinc ideale $h[n]=\operatorname{sinc}(n/L)$ i campioni originali sono conservati ($y[nL]=x[n]$); in pratica FIR a finestre o interpolatore lineare (triangolo). Decimazione per $M$ (da $F_s$ a $F_s/M$): $y[n]=x[nM]$, $Y(\hat\omega)=\frac1M\sum_{k=0}^{M-1}X\big(\frac{\hat\omega-2\pi k}M\big)$, repliche sovrapposte (aliasing) se la banda supera $\pi/M$: si fa precedere da un passabasso con taglio $\pi/M$. Conversione razionale $F_s'=\frac LMF_s$ ($L,M$ coprimi): espansore $L$, un solo passabasso di taglio $\min(\frac\pi L,\frac\pi M)$ e guadagno $L$, decimatore $M$; $y[n]=\sum_kx[k],g[nM-kL]$ non è una convoluzione e il sistema è periodicamente tempo-invariante. Realizzare il tutto in più stadi (fattori piccoli prima per l'interpolazione, grandi prima per la decimazione) e con strutture polifase riduce molto il costo.Elaborazione multirate - decimazione e interpolazione →). Svantaggi: i filtri non sono ottimi (le stesse specifiche si ottengono con ordini minori con il minimax) e gli errori , sono simili, il che non è sempre ciò che serve. Nella pratica le finestre più usate sono Hamming (per la semplicità) e Kaiser (per le prestazioni).
Esempio completo e confronto fra i metodi
Specifiche: kHz, banda passante fino a kHz, banda oscura da kHz, dB (). Normalizzando : , , e taglio .
- Rettangolare: non va bene, perché qualunque sia .
- Hamming: , quindi , . Controllo numerico: , ( dB), appena fuori specifica; con si ottiene , e la specifica è soddisfatta. La tabella è una regola pratica, non una garanzia: il passo 4 serve.
- Hann e Blackman: con la ricerca dell'ordine minimo servono (Hann) e (Blackman).
- Kaiser: , soddisfa le specifiche (, ); con si ha e non basta.
- Minimax (vedi sotto): (); con è .
Grafico interattivo: Stesse specifiche (banda passante fino a 0,25π, banda oscura da 0,375π, 50 dB): Hamming N = 54, Kaiser N = 48 (β = 4,55), minimax N = 42
I tre filtri hanno tutti ma ordini : a parità di specifica il minimax è il più economico (e il filtro è più corto, quindi più veloce da calcolare e con minor ritardo, campioni).
Campionamento in frequenza
L'idea è molto semplice: si campiona la risposta desiderata in punti equispaziati , , si prendono questi valori come una DFT (Trasformata di Fourier discreta (DFT) e convoluzione circolareLa DFT di N campioni x[0..N-1] è X[k] = sum x[n] e^{-j2pi kn/N}, k = 0..N-1 (IDFT: x[n] = (1/N) sum X[k] e^{j2pi kn/N}); vede il segnale come periodico di periodo N e dà N campioni equispaziati della DTFT, cioè X(z) valutata sulle radici N-esime dell'unità. Se x ha durata M <= N non c'è aliasing temporale e lo zero-padding (N > M) infittisce solo i campioni della stessa DTFT. Proprietà: traslazione circolare, simmetria coniugata X[k] = X*[N-k], prodotto = convoluzione circolare. La convoluzione circolare coincide con la lineare solo se N >= Dx + M - 1; altrimenti la coda si ripiega sull'inizio. La FFT calcola la DFT con (N/2) log2 N moltiplicazioni invece di N^2.Trasformata di Fourier discreta (DFT) e convoluzione circolare →) e la risposta impulsiva è l'IDFT:
Il filtro ottenuto ha esattamente nei punti campione, ma fra un campione e l'altro non c'è controllo. Equivale a , , cioè la risposta ideale (infinita) ripiegata su sé stessa con periodo , perché campionare in frequenza significa ripetere in tempo (Trasformata di Fourier discreta (DFT) e convoluzione circolareLa DFT di N campioni x[0..N-1] è X[k] = sum x[n] e^{-j2pi kn/N}, k = 0..N-1 (IDFT: x[n] = (1/N) sum X[k] e^{j2pi kn/N}); vede il segnale come periodico di periodo N e dà N campioni equispaziati della DTFT, cioè X(z) valutata sulle radici N-esime dell'unità. Se x ha durata M <= N non c'è aliasing temporale e lo zero-padding (N > M) infittisce solo i campioni della stessa DTFT. Proprietà: traslazione circolare, simmetria coniugata X[k] = X*[N-k], prodotto = convoluzione circolare. La convoluzione circolare coincide con la lineare solo se N >= Dx + M - 1; altrimenti la coda si ripiega sull'inizio. La FFT calcola la DFT con (N/2) log2 N moltiplicazioni invece di N^2.Trasformata di Fourier discreta (DFT) e convoluzione circolare →): l'aliasing nel tempo della risposta impulsiva ideale è l'errore (verificato numericamente per l'esempio sotto).
Esempio. (), . I campioni cadono in , cioè in , , , , : i campioni sono in banda passante (il taglio è ), già è oltre il taglio. Si pone per e (i simmetrici), negli altri. Si ottiene , , , , , , , , (e simmetrici), con somma . L'errore è circa in banda passante e in banda oscura (dai campioni in poi).
Per attenuare le oscillazioni si ammorbidisce il salto con un campione di transizione: se si pone nel campione (che sta nella banda di transizione) gli errori scendono a (banda passante) e (banda oscura), e con la banda oscura arriva a (con in banda passante). Il prezzo è una transizione più larga: la risposta scende da a attraverso due intervalli fra campioni () invece che uno. Nel grafico i punti sono i campioni imposti.
Grafico interattivo: Campionamento in frequenza, N = 16 (17 campioni a ω_k = 2πk/17), ω0 = π/3: la risposta passa per i campioni (punti) ma oscilla fra l'uno e l'altro; un campione di transizione a 0,5 riduce le oscillazioni
Minimax e algoritmo di Parks-McClellan
Il metodo minimax (o Chebyshev approximation) è ottimale nel caso peggiore: dati l'ampiezza desiderata e un peso positivo , entrambi continui su un insieme compatto (per un passa-basso : la transizione è esclusa), si cerca
Il peso rende più o meno importante l'errore in una banda: per avere dieci volte più piccolo di si pone in banda passante e in banda oscura.
Teorema (alternanza). Sia una combinazione di coseni e . è la soluzione del problema minimax se e solo se ha almeno alternanze, cioè punti in con e .
Una combinazione di coseni ha gradi di libertà: serve una alternanza in più. Le alternanze stanno ai bordi delle bande o nei massimi e minimi dell'errore. La conseguenza è che l'errore ha tutti i picchi della stessa altezza: la risposta è equiripple, cioè con ondulazioni di ampiezza uguale. L'algoritmo di Remez parte da una stima dei punti , risolve il sistema lineare di equazioni nelle incognite , aggiorna i punti e ripete, e converge in poche iterazioni.
Esempio. (, quindi servono alternanze), banda passante , banda oscura , pesi uguali. scipy.signal.remez dà (simmetrica) con errore massimo in entrambe le bande. I punti di errore massimo sono con segni : sono proprio , di cui ai bordi delle bande. Con peso (banda oscura più importante) gli errori diventano e , in rapporto .
Grafico interattivo: Minimax con N = 10, banda passante [0, 0,3π], banda oscura [0,4π, π]: l'errore oscilla con ampiezza costante (equiripple); con peso 10 sulla banda oscura l'errore lì è dieci volte più piccolo
Stima dell'ordine
Per un passa-basso, con e non necessariamente uguali:
L'ordine è inversamente proporzionale alla larghezza della transizione, non dipende dal taglio e dipende da (raddoppiare e dimezzare lascia invariato). Vale anche per i passa-alto. Per passa-banda ed elimina-banda ci sono due transizioni: si calcolano e e l'ordine sta fra e , in pratica più vicino al massimo.
Esempio. Con : e . Il valore effettivo è (con l'errore è ): la stima è approssimata e va verificata.
Confronto
| metodo | cosa controlla | ottimale? | errori in banda passante/oscura | ordine |
|---|---|---|---|---|
| finestre | ricavata da e dalla finestra | no (ma ottimo in errore quadratico per la rettangolare) | quasi uguali, fissati dalla finestra | più alto |
| campionamento in frequenza | esatta nei campioni | no | non controllati fra i campioni | dipende dai campioni |
| minimax | errore massimo pesato | sì, nel caso peggiore | scelti con il peso , equiripple | il più basso |
Domande d'esame
- Descrivi la tecnica del windowing per il progetto di un filtro FIR e commenta come la scelta della finestra e della sua lunghezza incide sul risultato. Traccia: ampiezza desiderata periodica e serie di Fourier, coefficienti del passa-basso ideale; troncamento a = finestra rettangolare, ritardo di per la causalità e fase lineare; effetto in frequenza = convoluzione con il nucleo di Dirichlet, lobo principale (larghezza ) e lobi laterali (22%); Gibbs 9% indipendente da ; finestre rastremate: lobi laterali più bassi, lobo principale più largo, e fissati dal tipo; stesso compromesso risoluzione/leakage nella STFT (Trasformata di Fourier a tempo breve e spettrogrammaPer un segnale lungo il cui contenuto in frequenza cambia nel tempo si calcolano tante DFT brevi: X[k, l] = sum_{n=0}^{L-1} w[n] x[l+n] e^{-j2pi kn/N}, con finestra di analisi w di lunghezza L, istante l = m R (passo R, di solito L/2) e DFT a N >= L punti. Il modulo (o i dB) di X[k, l] come immagine tempo-frequenza è lo spettrogramma. La finestra impone un compromesso: lunga = ottima risoluzione in frequenza (Delta w circa 8pi/L per Hann) ma transizioni temporali sfocate su circa L/2 campioni; corta = buona localizzazione nel tempo ma righe vicine fuse. Si provano più lunghezze.Trasformata di Fourier a tempo breve e spettrogramma →, Analisi spettrale con la DFT - finestre e leakageAnalizzare lo spettro di un segnale con la DFT vuol dire osservarne solo L campioni (finestra rettangolare) e campionare in frequenza la DTFT. Una sinusoide non dà una riga ma il nucleo di Dirichlet della finestra centrato in w0: lobo principale largo 4pi/L e lobi laterali (il primo a -13.3 dB). Due toni più vicini della mezza larghezza del lobo non si separano (risoluzione, che dipende solo da L), e i lobi laterali di un tono mascherano i toni deboli (leakage). La DFT campiona la DTFT a 2pi k/N: l'ampiezza è corretta solo se il tono cade su un bin (periodi interi nella finestra), altrimenti si perde fino a 3.9 dB; lo zero-padding infittisce i campioni ma non migliora la risoluzione. Le finestre rastremate (Hann, Hamming, Blackman) abbassano i lobi laterali (-31, -42, -58 dB) a prezzo di un lobo principale più largo.Analisi spettrale con la DFT - finestre e leakage →).
- Confronta i metodi delle finestre, del campionamento in frequenza e minimax. Traccia: tabella sopra; ottimalità e alternanza, alternanze, equiripple, pesi; ordine inferiore a parità di specifiche (esempio contro ); campionamento in frequenza esatto nei campioni, campione di transizione.
- Dimostra che il troncamento della serie di Fourier minimizza l'errore quadratico fra i filtri FIR di ordine . Traccia: Parseval, separazione dei termini e , la seconda somma non dipende da ; ma non minimizza l'errore massimo (per questo esiste il minimax).
Versione ripasso
- Specifiche del passa-basso. e bordi di banda passante e oscura; e tolleranze, con in banda passante e in banda oscura. In dB: , . Esempio: dà dB e dB.
- Tipo I. pari, : , con , , . Esempio: dà , .
- Obiettivo. con reale, non negativa, periodica . Serie di Fourier: , . Un FIR è una somma finita, quella ideale infinita: si sceglie perché la somma finita approssimi l'infinita.
- Metodo delle finestre. Troncamento: per , poi ritardo: , . è simmetrica perché lo è .
- Passa-basso ideale. , . Con .
- Esempio. , , rettangolare: , , , , , , , ; zero per . Somma .
- Ottimalità. Per Parseval, il troncamento minimizza l'errore quadratico medio fra i FIR di ordine ; non minimizza l'errore massimo.
- Gibbs. Il filtro è la convoluzione in frequenza con il nucleo di Dirichlet: , con . Lobo principale , primo lobo laterale dB (circa ) indipendente da . Vicino a un salto compaiono oscillazioni: sovraelongo circa indipendente da , cioè dB. Esempio con : massimo per , per .
- Effetto di . Aumentando la transizione si stringe, circa ; il sovraelongo non si riduce.
- Finestre fisse. Rettangolare ; triangolare ; Hann ; Hamming ; Blackman . Lobo principale in unità di : rettangolare, triangolare, Hann, Hamming, Blackman. Transizione in unità di : , , , , . Attenuazione minima: , , , , dB.
- Tre fatti generali. La transizione è inversamente proporzionale a : . Gli errori sono quasi uguali, , e dipendono solo dalla finestra. Non dipendono dal taglio .
- Kaiser. , con rettangolare. Formule empiriche: per ; per . Ordine: .
- Esempio di Kaiser. dB, transizione : , , quindi .
- Procedura. Taglio ; finestra dalla richiesta; ordine dalla transizione; e ritardo; verifica di sulle specifiche.
- Esempio completo. kHz, kHz, kHz, dB: , , taglio .
- Rettangolare: qualunque sia , non va bene.
- Hamming: ; con si ha dB (appena fuori); con si ha , , specifica soddisfatta.
- Hann e Blackman: e .
- Kaiser: , (, ); con non basta.
- Minimax: (); con è , non basta.
- Campionamento in frequenza. in punti , . Esatto nei campioni, nessun controllo fra un campione e l'altro. Equivale a ripiegare la risposta ideale con periodo : l'aliasing nel tempo è l'errore.
- Esempio di campionamento. , , : per e , altrove. Si ottiene , , , , , , , , , somma ; errore circa e .
- Campione di transizione. Con nel campione gli errori scendono a e ; con la banda oscura arriva a . Prezzo: transizione più larga.
- Minimax (Parks-McClellan). Si minimizza su (esclusa la transizione). Teorema: con coseni è ottima se e solo se l'errore pesato ha almeno alternanze. La risposta è equiripple. L'algoritmo di Remez risolve un sistema lineare di equazioni con e aggiorna i punti. Peso : dieci volte più piccolo di .
- Esempio minimax. , banda passante , oscura : errore massimo in entrambe, alternanze; con peso gli errori sono e .
- Stima dell'ordine. . Esempio: dà , effettivo .
- Confronto. Finestre: errori fissati dalla finestra, ordine più alto. Campionamento in frequenza: esatto nei campioni, non controllato fra i campioni. Minimax: ottimale nel caso peggiore, ordine più basso a parità di specifiche.
- Perché le finestre rastremate costano banda. Il prodotto di con il segnale è convoluzione in frequenza: moltiplicare per una finestra che scende a zero ai bordi attenua i lobi laterali, ma allarga il lobo principale e quindi la transizione. Non esiste una finestra che migliori entrambi.
- Hamming e Hann come coseni rialzati. Sono un coseno più una costante; i loro tre nuclei di Dirichlet (centrale e due traslati di , con pesi e per Hann) hanno lobi laterali che si cancellano in parte.
- Finestre con . Il grafico dei moduli in dB mostra che più il lobo principale è largo, più i lobi laterali sono bassi.
- Verifica della specifica. Con Hamming si ha e ; con si ha dB. La tabella dà un ordine di partenza, il passo 4 della procedura è obbligatorio.
- Minimax, errore alternato. Per () servono alternanze, di cui ai bordi delle bande. Punti di errore massimo: , con segni alternati. Il filtro è simmetrico: .
- Vantaggi e svantaggi. Finestre: semplicissime, conservano gli zeri di (utile per i filtri di interpolazione, Elaborazione multirate - decimazione e interpolazioneL'elaborazione multirate cambia la frequenza di campionamento di un segnale. Interpolazione per $L$ (da $F_s$ a $LF_s$): l'espansore inserisce $L-1$ zeri fra i campioni, $W(\hat\omega)=X(L\hat\omega)$, lo spettro si ripete $L$ volte nell'asse più ampio; un passabasso con taglio $\pi/L$ e guadagno $L$ elimina le immagini, e con il sinc ideale $h[n]=\operatorname{sinc}(n/L)$ i campioni originali sono conservati ($y[nL]=x[n]$); in pratica FIR a finestre o interpolatore lineare (triangolo). Decimazione per $M$ (da $F_s$ a $F_s/M$): $y[n]=x[nM]$, $Y(\hat\omega)=\frac1M\sum_{k=0}^{M-1}X\big(\frac{\hat\omega-2\pi k}M\big)$, repliche sovrapposte (aliasing) se la banda supera $\pi/M$: si fa precedere da un passabasso con taglio $\pi/M$. Conversione razionale $F_s'=\frac LMF_s$ ($L,M$ coprimi): espansore $L$, un solo passabasso di taglio $\min(\frac\pi L,\frac\pi M)$ e guadagno $L$, decimatore $M$; $y[n]=\sum_kx[k],g[nM-kL]$ non è una convoluzione e il sistema è periodicamente tempo-invariante. Realizzare il tutto in più stadi (fattori piccoli prima per l'interpolazione, grandi prima per la decimazione) e con strutture polifase riduce molto il costo.Elaborazione multirate - decimazione e interpolazione →); ma non sono ottime e gli errori sono simili nelle due bande. Nella pratica: Hamming per semplicità, Kaiser per le prestazioni.
- Ordine a parità di specifica. Con le stesse specifiche: (Hamming), (Kaiser), (minimax). Il minimax è anche il più corto, quindi con il ritardo più basso ( campioni).
- Limiti del metodo. Il metodo non tratta bande con tolleranze diverse senza cambiare finestra; per farlo serve il minimax con pesi .
- Esempio di transizione. Con il campione a la risposta scende da a attraverso due intervalli invece di uno.
- Errore tipico. Confondere la tabella delle finestre con una garanzia: le cifre sono regole pratiche, va sempre verificato sulle specifiche.