+ All Categories
Home > Documents > LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale...

LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale...

Date post: 03-Aug-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
17
Universit` a degli Studi di Bologna Seconda Facolt` a di Ingegneria - Sede di Cesena C.d.L. in Ingegneria Elettronica e delle Telecomunicazioni LENS Laboratorio di elaborazione numerica dei segnali Lezioni del prof. Andrea Giorgetti Anno Accademico 2008/09 Marco Alessandrini 15 aprile - 10 giugno 2009
Transcript
Page 1: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

Universita degli Studi di BolognaSeconda Facolta di Ingegneria - Sede di Cesena

C.d.L. in Ingegneria Elettronica e delle Telecomunicazioni

LENSLaboratorio di elaborazione

numerica dei segnali

Lezioni del prof. Andrea GiorgettiAnno Accademico 2008/09

Marco Alessandrini

15 aprile - 10 giugno 2009

Page 2: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

Indice

1 Segnali numerici 31.1 Sistemi LTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Stima della F-trasformata di segnali ad energia finita . . . . . . . . . 51.3 Stima della F-trasformata di segnali a potenza finita . . . . . . . . . 8

2 Sistemi LTI tempo-discreti 102.1 Filtri IIR (Infinite Impulse Response) . . . . . . . . . . . . . . . . . 102.2 Filtri FIR a fase lineare . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Progetto di filtri FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.1 Metodo delle finestre . . . . . . . . . . . . . . . . . . . . . . . 132.3.2 Metodo min-max (di Parks-McClellan) . . . . . . . . . . . . . 15

2.4 Realizzazione di filtri FIR su DSP . . . . . . . . . . . . . . . . . . . 16

Elenco delle figure 17

Elenco delle tabelle 17

Riferimenti bibliografici 17

Indice 2

Page 3: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

1 Segnali numerici

Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenentia R o a C. {

xn

}+∞

n=−∞, xn ∈ R oppure C

Tale caratteristica semplifica tutta la teoria dei segnali, eliminando integrali (sosti-tuiti da serie) e distribuzioni.

Consideriamo, d’ora in poi, xn ∈ C.

Energia. Se E <∞, la sequenza e ad energia finita:

Edef=

+∞∑n=−∞

|xn|2

Potenza. Se P <∞, la sequenza e a potenza finita:

Pdef= lim

N→+∞

+N∑n=−N

|xn|2

1.1 Sistemi LTI

I sistemi di elaborazione numerica sono infiniti. I sistemi di interesse per il corsosono quelli Lineari Tempo-Invarianti, o LTI (figura 1).

LTD

TI

TD

LTI

Figura 1: Sistemi di elaborazione LTI

Sistema lineare. Soddisfa la sovrapposizione degli effetti:{x′n → T [x′n] = y′nx′′n → T [x′′n] = y′′n

⇒ T [ax′n + bx′′n] = ay′n + by′′n

Per ogni sistema lineare si puo definire una funzione di risposta impulsiva (hn)rispetto all’impulso unitario (δn).

Sistema lineare tempo-invariante. E un sistema lineare che risponde soloquando stimolato. La funzione di risposta impulsiva hn:

• caratterizza il sistema;

1 Segnali numerici 3

Page 4: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

• consente di determinare l’uscita, dato l’ingresso, in modo univoco:

yn =+∞∑

k=−∞

xk ·hn−k︸ ︷︷ ︸convoluzione discreta

= {xn} ∗ {hn}

=+∞∑

k=−∞

hk ·xn−k = {hn} ∗ {xn}

Per lavorare col calcolatore servono sequenze di lunghezza limitata e predeterminata:

x = (x0, x1, . . . , xN−1) vettore segnaleX = (X0, X1, . . . , XN−1) vettore della DFT di x

La trasformata di Fourier si calcola con:

X(f) =+∞∑

n=−∞xne−j2πfT

che pero ha f continua, quindi non va bene per un calcolatore. Allora si modificacon:

Xqdef=

N−1∑n=0

xne−j2πn q

N ⇒ X = DFT[x]

Inversamente si ottiene l’antitrasformata:

xq =1N

N−1∑q=0

Xqej2πn q

N ⇒ x = IDFT[X]

Il fattore che accomuna tutti gli elementi dei vettori e Wdef= e−j

2πN :

Xq =N−1∑n=0

xnWqn

da cui:

X0 = x0 + x1 + x2 + · · ·+ xN−1

X1 = x0 + x1W + x2W2 + · · ·+ xN−1W

N−1

...XN−1 = x0 + x1W

N−1 + x2W2(N−1) + · · ·+ xN−1W

(N−1)(N−1)

Quanto detto e sintetizzabile nella seguente rappresentazione matriciale:X0

X1

X2

...XN−1

=

1 1 · · · · · · 11 W W 2 · · · WN−1

1 W 2 W 4 · · · W 2(N−1)

......

.... . .

...1 WN−1 · · · · · · W (N−1)(N−1)

·

x0

x1

x2

...xN−1

W e la matrice di Fourier: contiene i pesi, che dipendono solo da N .

X = W ·x DFT

x = W−1 ·X IDFT

1.1 Sistemi LTI 4

Page 5: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

W−1 =

1 1 · · · · · · 11 W−1 W−2 · · · W−(N−1)

1 W−2 W−4 · · · W−2(N−1)

......

.... . .

...1 W−(N−1) · · · · · · W−(N−1)(N−1)

Per calcolare Xq sono necessarie

N · (N − 1) somme +N ·N prodotti ' N2 somme +N2 prodotti.

In particolare, gli N2 prodotti pesano molto sulla computazione. Allora si usala FFT (Fast FT), in una delle sue diverse declinazioni, per ridurre il numero dimoltiplicazioni; col metodo di decimazione nel tempo si riesce a calcolare Xq conN

2· log2

N

2moltiplicazioni.

Per stabilire un confronto, considerando ad esempio N = 256:

• con la DFT servono 65 536 moltiplicazioni;

• con la FFT servono 896 moltiplicazioni.

L’unico svantaggio e che la FFT, di solito, ha bisogno di N potenza del 2.

1.2 Stima della F-trasformata di segnali ad energia finita

Si vuole trovare la trasformata di Fourier, senza utilizzare la formula integrale e informa numerica (quindi efficiente).

1. Costruzione delle ripetizioni periodiche (figura 2):

• del segnale: x(t) =∑k x(t− kT ) con T arbitrario;

• dello spettro (supposto): X(f) =∑nX(f − nF ) con F arbitrario.

2. Vincolo su T e F (passi di ripetizione) e campionamento di un solo periododi ciascuno dei due.

T ·F = N ∈ N

Da ognuno dei passi di campionamento di vogliono N campioni equispaziati:

∆t =T

N=

1F

, ∆f =F

N=

1T

Si ottengono i vettori dei campioni, il primo noto, il secondo incognito:

x = (x0, x1, . . . , xN−1) , xi = x(i ·∆t)

X =(X0, X1, . . . , XN−1

), Xi = X(i ·∆f)

3. Associazione tra i campioni dei due vettori, tramite relazione matematica trax e X:

X = ∆t ·DFT[x]

per cui la DFT da una stima numerica della trasformata di Fourier del segnalein ingresso. Vale anche la relazione inversa:

x =1

∆t· IDFT

[X]

1.2 Stima della F-trasformata di segnali ad energia finita 5

Page 6: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

Figura 2: Costruzione delle ripetizioni periodiche nella stima della F-trasformata di segnali adenergia finita

Dimostrazione. Poiche x e periodico, lo posso sviluppare in serie diFourier1:

x(t) =+∞∑

m=−∞cme

j2πm tT

Ipotesi: cm =1TX(mT

)= ∆f

+∞∑m=−∞

X(m ·∆f)ej2πmt∆f

Campionando:

x(n ·∆t) = ∆f+∞∑

m=−∞X(m ·∆f)ej2πmn∆t∆f

= ∆f+∞∑

m=−∞X(m ·∆f)ej2π

mnN

Si puo scomporre la sommatoria:

m = q + kN con{q = 0, 1, . . . , N − 1k = −∞, . . . ,+∞

xn = ∆f+∞∑

k=−∞

N−1∑q=0

X [(q + kN)∆f ] ej2π(q+kN) nN

= ∆fN−1∑q=0

+∞∑k=−∞

X(q∆f + kF )ej2πqnN ej2πkn

= ∆fN−1∑q=0

X(q∆f)ej2πqnN

= ∆f ·N · IDFT[Xq

]=

1∆t· IDFT

[Xq

]

1I coefficienti di Fourier (cm) non sono noti ma, supponendo di conoscerli, assumiamo che sianoi campioni dello spettro.

1.2 Stima della F-trasformata di segnali ad energia finita 6

Page 7: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

I parametri in gioco sono:

• ∆f : deve essere piccolo, per avere maggior dettaglio;

• F : deve essere grande abbastanza da non avere aliasing;

• T : deve essere grande.

Tutto questo porta a richiedere N grande, con le seguenti conseguenze:

1. molto campionamento;

2. molta lentezza della DFT;

3. molta memoria richiesta per completare le operazioni.

Realizzazione della stima con MATLAB. Si puo realizzare l’algoritmo vistocon MATLAB. Utilizziamo un segnale rettangolare (segnale.m):

function ris = segnale(t,tau)

% funzione impulso rettangolare

if abs(t) < tau/2, ris=1;

else ris=0;

end

Il seguente script calcola la stima della fdt associata al segnale (qualunque esso sia)contenuto in segnale.m:

close all

clear

% LETTURA DEI PARAMETRI

tau = input(’Parametro dell’’impulso [secondi]: ’);

T = input(’Periodo di ripetizione [secondi]: ’);

N = input(’Numero di campioni (meglio 2^k): ’);

fmax = input(’Massima frequenza visualizzata [Hz]: ’);

% PASSI DI CAMPIONAMENTO

dt = T/N;

df = 1/T;

% CAMPIONAMENTO DELLA RIPETIZIONE PERIODICA DEL SEGNALE

for i=1:N,

tempo(i) = i*dt;

x(i) = segnale(tempo(i),tau);

xr(i) = segnale(tempo(i),tau) + segnale(tempo(i)-T,tau) + ...

segnale(tempo(i)-T*2,tau) + segnale(tempo(i)+T,tau) + ...

segnale(tempo(i)+T*2,tau);

end

% GRAFICO x(t) E xr(t)

subplot(321), plot(tempo,x), xlabel(’time(s)’),ylabel(’x(t)’);

subplot(322), plot(tempo,xr), xlabel(’time(s)’),ylabel(’xr(t)’);

% CALCOLO DELLO SPETTRO

y = dt * fft(xr); % ALGORITMO

% y in generale e COMPLESSA

freq = (0 : df : (N-1)*df); % asse delle frequenze

% N campioni distanziati di df

% GRAFICO DELLO SPETTRO

subplot(323), plot(freq,abs(y)), ylabel(’|Xr(f)|’);

subplot(324), plot(freq,angle(y)), ylabel(’arg(Xr(f))’);

1.2 Stima della F-trasformata di segnali ad energia finita 7

Page 8: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

% PORZIONE DELLO SPETTRO

npunti = min(round(fmax / df , N)); % se fmax troppo grande

freq = freq(1:npunti);

y = y(1:npunti);

subplot(325), plot(freq,abs(y)), ylabel(’|Xr(f)|’);

subplot(326), plot(freq,angle(y)), ylabel(’arg(Xr(f))’);

% CONFRONTO CON SPETTRO TEORICO

for i=1:npunti,

Xteo(i) = tau * sinc(freq(i)*tau);

end

figure

plot(freq,abs(Xteo),freq,abs(y),’*’), xlabel(), ylabel();

1.3 Stima della F-trasformata di segnali a potenza finita

Per analizzare un segnale a potenza finita si parte con l’osservarlo solo per un certoperiodo di tempo, operando poi un troncamento (figura 3): quindi, la trattazioneavviene come se si trattasse di un segnale ad energia finita.

Figura 3: Troncamento preliminare del segnale nella stima della F-trasformata di segnali a potenzafinita

|XT (f)|2 = ET (f) spettro di energia

XT (f) = F[xT (t)

]Lo spettro di potenza di x(t) e:

Sx(f) = lim∆f→0

{limT→∞

1T

∫ f+∆f

f

|XT (ξ)|2 dξ

}

I due limiti non sono invertibili!Supponiamo ora di volerli invertire, possiamo quindi affermare che:

Sx(f) 6= limT→∞

1T|XT (f)|2

infatti (addirittura) aumentando T le cose possono peggiorare. Possiamo alloraaccettare:

Sx(f) ' limT→∞

1T|XT (f)|2

se si accetta di non usare l’approccio preciso e corretto. In definitiva:

Sx(f) ' 1T|XT (f)|2

1.3 Stima della F-trasformata di segnali a potenza finita 8

Page 9: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

Si divide in parti ∆t =T

N, dove N e il numero di campioni:

XT (q ·∆f) = ∆t ·DFT[{xn}

]Sx(q ·∆f) ' 1

T

∣∣∣∆t ·DFT[{xn}

]∣∣∣2=

∆t2

T

∣∣∣DFT[{xn}

]∣∣∣2=

∆tN

∣∣∣DFT[{xn}

]∣∣∣2=

1N · fs

∣∣∣DFT[{xn}

]∣∣∣2= I(q ·∆f) PERIODOGRAMMA

Errore nel troncamento. L’errore provocato dal troncamento si amplifica (pereffetto Gibbs) aumentando T . Il risultato e uno spettro seghettato. Welch forniscela soluzione col seguente procedimento:

1. si osserva lungo un intervallo T ;

2. si calcola il periodogramma I(1)(q ·∆f);

3. si osserva lungo un intervallo T successivo al precedente;

4. si calcola il periodogramma I(2)(q ·∆f);

5. si itera il procedimento fino a I(L)(q ·∆f), per cui alla fine il tempo diosservazione e T ·L;

6. si calcola il valor medio di tutti i periodogrammi:

I(q ·∆f) =1L

L∑i=1

I(i)(q ·∆f)

che e un’ottima stima dello spettro se L e sufficientemente grande, per lamaggior parte dei segnali.

Spesso conviene prendere T minore e fare piu letture (L), migliorando la media.Il risultato e migliore rispetto a qualsiasi stima effettuata senza medie. Convienescegliere gli intervalli parzialmente sovrapposti (con fattore di sovrapposizione dicirca 1

2 ).

Realizzazione della stima con MATLAB. In MATLAB e sufficiente unaistruzione per stimare il periodogramma di una funzione a potenza finita:

I = ( abs( fft(x) ).^2 )/(N*fs)

in cui x e il vettore dei campioni e I diventa il vettore periodogramma.

1.3 Stima della F-trasformata di segnali a potenza finita 9

Page 10: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

2 Sistemi LTI tempo-discreti

Un sistema LTI tempo-discreto e caratterizzato dalla risposta impulsiva hn, cioe larisposta che propone il sistema quando stimolata dalla delta di Dirac (in versionenumerica) δn.

yn = {xn} ∗ {hn}

=+∞∑

k=−∞

xk ·hn−k

Ys(f) = Xs(f) ·Hs(f)

Hs(f) = Fs[hn

]funzione di trasferimento

Allora:

Hs(f) =+∞∑

n=−∞hne−j2πnfT

dove il passo di campionamento e T =1fs

.

Causalita. Il sistema e causale se hn = 0 per n < 0.

2.1 Filtri IIR (Infinite Impulse Response)

I filtri IIR sono una sottoclasse di sistemi LTI (figura 4). Lo schema generico di unfiltro IIR e in figura 5.

LTIIIR

TD

Figura 4: Sistemi di elaborazione IIR

Txn

b0

T

b1

b2

T

bM­1

T

yn

T T

­aN

­a2

­a1

Elementi di ritardoMemorizzano porzioni successive di segnale

Linea di ritardo(“Media mobile” o “Moving average”)Memorizza gli ultimi M campioni dell'ingresso

Linea di retroazione(“Autoregressive”)

Figura 5: Filtro IIR

2 Sistemi LTI tempo-discreti 10

Page 11: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

Incognite: {b0, b1, . . . , bM−1

a1, a2, . . . , aN

L’equazione che lega l’ingresso con l’uscita e:

yn =M−1∑k=0

bkxn−k −N∑k=1

akyn−k

la cui trasformata secondo Fourier e:

Ys =M−1∑k=0

bkXs(f)e−j2πkfT −N∑k=1

akYs(f)e−j2πkfT

da cui si ricava:

Hs(f) =Ys(f)Xs(f)

=

M−1∑k=0

bke−j2πkfT

1 +N∑k=1

ake−j2πkfT

Filtri FIR. Scegliendo i coefficienti ak = 0 (∀k) si ottiene una sottoclasse deifiltri IIR, cioe i filtri FIR (Finite Impulse Response):

Hs(f) =Ys(f)Xs(f)

=M−1∑k=0

bke−j2πkfT

Sparisce la parte autoregressiva (retroazione). Nel dominio del tempo rimane solola sommatoria con x:

yn =M−1∑k=0

bkxn−k

La risposta impulsiva coincide con la sequenza dei pesi, quindi ha durata finita:

hn = bn

Nota 2.1. Se M e il numero di prese del filtro, l’ordine del filtro e M − 1.

Confronto tra FIR e IIR. In tabella 1 sono riportati vantaggi e svantaggi deidue tipi di filtro implementabile.

FIR IIR(1) Sempre stabili (1) Stabilita da verificare(2) Robustezza contro la quantizzazione (2) Poco robustidei coefficienti(3) Fase lineare con coeff. simmetrici (3) Fase lineare non garantita,

solitamente impossibile(1) Meno efficienti (1) Piu efficienti (a pari risultato

servono meno coefficienti)

Tabella 1: Confronto tra FIR e IIR

2.2 Filtri FIR a fase lineare 11

Page 12: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

hn

n

b0

b1

b2

b3

T

hn

n

b0

b1

b3

b4

T

b2

h'n

n

b0

b1

b2

T

b3

(a) (c)(b)

Figura 6: Esempi di risposte impulsive di FIR: (a) M = 4, b0 = b3 e b1 = b2; (b) M = 5, b0 = b4e b1 = b3; (c) M = 4, b0 = b3 e b1 = b2, con risposta centrata sull’origine

2.2 Filtri FIR a fase lineare

Condizione di simmetria. Una risposta impulsiva e simmetrica, rispetto a un’i-potetica meta, se hn = hn−M+1 (figura 6). Tutte le risposte impulsive si possonopensare come centrate sull’origine (cfr. i casi (b) e (c) in figura 6).

Hs(f) = Fs[hn

]= Fs

[h′n

]· e−j2πfT

M−12

dove M−12 e un fattore di traslazione.

Se i coefficienti sono simmetrici, si sfrutta la proprieta per cui la F-trasformatadi una funzione simmetrica (pari) e sempre reale.

Hs(f) ∈ R ⇒ arg(Hs(f)

)= −2πfT

M − 12

+{

}quindi la fase e lineare con la frequenza (figura 7), come richiesto.

arg(HS(f))

f

Figura 7: Fase di un filtro FIR

Per reti con fase lineare si ha il ritardo introdotto dal segnale, pari a:

−2πf · T M − 12︸ ︷︷ ︸t0

t0 e il ritardo introdotto dal filtro ed e direttamente proporzionale al numero diprese: quindi molte prese causano grandi ritardi di elaborazione.

2.3 Progetto di filtri FIR

Per progettare filtri FIR si usano, in generale, tre diverse tecniche di sintesi:

1. il metodo delle finestre;

2. il metodo del campionamento in frequenza;

3. il metodo min-max (di Parks-McClellan).

2.2 Filtri FIR a fase lineare 12

Page 13: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

Applicazione Specifiche Mascheredi progetto

Sintesi di b Implementazione

Figura 8: Algoritmo di progetto per FIR

Lo sviluppo del progetto e incentrato sul calcolo dei coefficienti b del filtro.Il progetto e effettuato sulla base della frequenza normalizzata F = fT = f

fs

(adimensionale):

H(f) =M−1∑n=0

bne−j2πnfT ⇒ H(F ) =

M−1∑n=0

bne−j2πnF

Le funzioni di trasferimento cosı ottenute sono sempre periodiche.

Maschere di progetto. Stabiliscono le aree nel diagramma di Bode dove devestare la fdt e le aree dove non deve stare.

F

Bbanda passante

0 1/2

2

1

1+1

1­1

∆Fbanda di 

transizionebanda attenuata

guadagno inbanda attenuata

ripple inbanda passante

Figura 9: Maschera di progetto per filtro FIR

I parametri della maschera sono: δ1 →δ2 →∆F

Rp[dB] = 20 log10

1+δ11−δ1 RIPPLE

As[dB] = −20 log10 δ2 ATTENUAZIONE∆F SELETTIVITA

Rp e una grandezza fornita alternativamente a δ1. As, invece, e l’attenuazione inbanda attenuata rispetto al guadagno presente in banda passante.

Poiche la fdt e periodica, e sufficiente esprimere i dati nell’intervallo[0 ,

12

].

2.3.1 Metodo delle finestre

Si vuole realizzare una fdt desiderata Hd(F ).

Hd(F ) ={e−j2πFα, |F | ≤ FT

0, FT ≤ |F | ≤ 12

α: ritardo (in numero di campioni) introdotto dal filtro.

hd(n) = F−1s

[Hd(F )

]= 2FT sinc (2FT (n− α))

2.3 Progetto di filtri FIR 13

Page 14: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

Figura 10: Esempio di fdt desiderata e risposta impulsiva associata

Problemi:

1. La risposta impulsiva non e causale. Cio e normale nel limite in cui un filtropassa-basso ideale e impossibile da realizzare.

2. La risposta ha durata infinita.

Soluzioni:

1. Si forza la risposta a 0 per n < 0.

2. Si tronca la risposta, forzandola a 0 per n > M − 1.

Cio equivale a moltiplicare per una finestra rettangolare Wn, composta da Mcampioni da 0 a M − 1:

Wn ={

1, n ∈ [0 , M − 1]0, altrove

la cui risposta impulsiva e hn = hd(n) ·Wn.

Per avere fase lineare e opportuno scegliere α =M − 1

2, cosı da rendere simme-

trica hn (la finestra Wd e centrata su α). Assumendo bn = hn si ha la situazione difigura 11.

Figura 11: Metodo delle finestre con bn = hn

Il roll-off di Hn(f) dipende dal lobo principale di |W (F )|. In questo caso par-ticolare e ampio 2

M , percio aumentando M il filtro e piu ripido. I lobi secondari,invece, determinano le altre oscillazioni. In sintesi:

• Per rendere il filtro piu selettivo, basta aumentare M .

2.3 Progetto di filtri FIR 14

Page 15: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

• Per avere meno oscillazioni bisogna cambiare il tipo di finestra. Invece dellafinestra rettangolare si puo scegliere un modello con raccordi smussati: infattisono le transizioni 1 → 0 della finestra rettangolare a causare il fenomeno diGibbs.

2.3.2 Metodo min-max (di Parks-McClellan)

Il metodo min-max2 e utilizzato per ottenere filtri FIR equiripple. L’algoritmo sipropone di ottimizzare la sintesi del filtro, cosa che non avviene col metodo dellefinestre (il numero di prese utilizzate non e minimo) perche il ripple non e costante.

Si puo verificare che, se il ripple e uniformemente distribuito, il filtro e moltomigliore rispetto al metodo delle finestre. Infatti, poiche nel metodo delle finestrei parametri δ1 e δ2 sono strettamente vincolati, e impossibile dosare il ripple nellesottobande, ottenendo un risultato insoddisfacente.

Algoritmo min-max. L’obiettivo e definire una fdt desiderata ideale Hd(F ).

1. Si definisce una funzione errore (che traccia il ripple): E(F ) = H(F )−Hd(F ).

2. Si minimizza il ripple massimo:

min bmax |E(F )|

oppure:E(F ) = W (F ) ·

(H(F )−Hd(F )

)dove W (F ) e la funzione peso, che controlla E(F ) nelle diverse sottobande.

E(F) Teoremadell'alternanza

Sistemadi equazioni

Algoritmodi Remez

b

Figura 12: Algoritmo min-max per FIR

Implementazione dell’algoritmo min-max con MATLAB. In MATLAB epredisposta la funzione firpm per calcolare i coefficienti b, con la sintassi che segue:

b = firpm(f, A, W)

FFaFp0 1/2

d2

1

1+d1

1­d1

Figura 13: Maschera di progetto per filtro FIR (in MATLAB)

In particolare:2Conosciuto anche col nome dei suoi autori (Parks e McClellan), nonche con l’errata attribuzio-

ne al matematico Remez. Con il nome remez era indicata anche la funzione relativa all’algoritmo,nelle vecchie versioni di MATLAB (ora sostituita dalla funzione firpm).

2.3 Progetto di filtri FIR 15

Page 16: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

• b e il vettore b dei pesi.

• f e il vettore che identifica le transizioni tra le bande, definendo le frequenze3

che le delimitano. Ad esempio, per un filtro passa-basso si definira:

f = [0 Fp Fa 1]

dove 0 la frequenza corrispondente all’asse delle ordinate, Fp e Fa delimita-no gli estremi della banda di transizione4 e 1 indica che non ci sono altretransizioni.

• A e il vettore delle ampiezze in corrispondenza delle frequenze indicate nelvettore f. Nell’esempio precedente:

A = [1 1 d2 d2]

dove 1 indica che non c’e attenuazione, mentre d2 corrisponde all’attenuazio-ne δ2.

• W e il vettore dei pesi nelle sottobande, cioe il requisito sul ripple. Per questo,il numero di elementi di W e la meta di quello di f. Nell’esempio precedente:

W = [d1 d1/d2]

2.4 Realizzazione di filtri FIR su DSP

Algoritmo di sintesi.

• Si alloca un vettore per memorizzare gli ultimi N campioni.

• Si alloca un vettore per la risposta impulsiva b.

• Si moltiplicano i vettori elemento per elemento, poi si sommano i prodotti.

Misura della fdt. Si ha un segnale d’ingresso nella forma x(t) = Vx cos(2πft +ϕx). L’uscita sara del tipo y(t) = Vy cos(2πft + ϕy). Il modulo della fdt si trovacon:

|H(f)| = VyVx

=VyppVxpp

L’argomento della fdt e arg(H(f)

)= ϕy − ϕx. Per la misura, essendo difficile

rilevare la fase, si effettua un confronto tra l’uscita y(t) attesa:

y1(t) = Vy cos(

2πft+ ϕx + ϕy − ϕx)

e la y(t) ritardata:y2(t) = Vy cos

(2πf(t−∆t) + ϕx

)per cui, eguagliando:

2πft+ ϕx + ϕy − ϕx = 2πf(t−∆t) + ϕx

arg(H(f)

)= ϕy − ϕx = −2πf ·∆t

3La normalizzazione delle frequenze, come effettuata da MATLAB, non segue la definizioneF = f

fsma piuttosto quella di Nyquist F = f

fs/2. Quindi, per non sbagliare, bisogna adeguare la

normalizzazione e fornire a MATLAB le frequenze F del tipo della seconda notazione.4Se fp e fa sono le frequenze che delimitano la banda di transizione, a MATLAB bisogna

comunicare Fp =fp

fs/2e Fa = fa

fs/2.

2.4 Realizzazione di filtri FIR su DSP 16

Page 17: LENS - Marco AlessandriniLENS - Marco Alessandrini CC BY: $ n = 1 Segnali numerici Un segnale numerico e tempo-discreto, quindi e una sequenza di numeri appartenenti a R o a C. n x

LENS - Marco Alessandrini CC© BY:© $\© =©

Elenco delle figure

1 Sistemi di elaborazione LTI . . . . . . . . . . . . . . . . . . . . . . . 32 Costruzione delle ripetizioni periodiche nella stima della F-trasformata

di segnali ad energia finita . . . . . . . . . . . . . . . . . . . . . . . . 63 Troncamento preliminare del segnale nella stima della F-trasformata

di segnali a potenza finita . . . . . . . . . . . . . . . . . . . . . . . . 84 Sistemi di elaborazione IIR . . . . . . . . . . . . . . . . . . . . . . . 105 Filtro IIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Esempi di risposte impulsive di FIR . . . . . . . . . . . . . . . . . . 127 Fase di un filtro FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Algoritmo di progetto per FIR . . . . . . . . . . . . . . . . . . . . . 139 Maschera di progetto per filtro FIR . . . . . . . . . . . . . . . . . . . 1310 Esempio di fdt desiderata e risposta impulsiva associata . . . . . . . 1411 Metodo delle finestre con bn = hn . . . . . . . . . . . . . . . . . . . . 1412 Algoritmo min-max per FIR . . . . . . . . . . . . . . . . . . . . . . . 1513 Maschera di progetto per filtro FIR (in MATLAB) . . . . . . . . . . 15

Elenco delle tabelle

1 Confronto tra FIR e IIR . . . . . . . . . . . . . . . . . . . . . . . . . 11

Riferimenti bibliografici

[1] Leonardo Calandrino, Marco Chiani. Lezioni di Comunicazioni elettriche.Pitagora Editrice, 2004.

[2] Andrea Giorgetti. µ−introduzione a MATLAB. 2004.

CC© BY:© $\© =©

Quest’opera e stata rilasciata sotto la licenza Creative Commons Attribu-zione-Non commerciale-Non opere derivate 2.5 Italia. Per leggere una copiadella licenza visita il sito web

http://creativecommons.org/licenses/by-nc-nd/2.5/it/

o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, SanFrancisco, California, 94105, USA.

E consentito riprodurre e distribuire liberamente il presente testo, senza apporvi modi-fiche e mantenendo sempre riconoscibile il nome degli autori, purche non a scopo di lucro,senza scopi commerciali (direttamente o indirettamente) e per esclusivo uso personale.

E possibile pubblicare il file o sue parti su siti internet, purche siano citati in manieraevidente gli autori (Marco Alessandrini, Alessandro Callozzo e Lorenzo Minghini).

Per qualunque informazione, problematica, suggerimento o reclamo utilizzare l’indiriz-zo [email protected].

Elenco delle figure 17


Recommended