TRASFORMATA DI HILBERT - univpm.it · Le funzioni di Walsh di ordine superiore, con N = 2m, m...

12
1 TRASFORMATA DI HILBERT La Trasformata di Hilbert è una particolare rappresentazione che, contrariamente ad altre trasformate (Fourier, Laplace, Z, …) non realizza un cambiamento del dominio di definizione. In altre parole, a partire da una funzione del tempo s(t), la trasformata di Hilbert ) ( ~ t s è ancora una funzione del tempo. In questo, la trasformata di Hilbert è simile al teorema del campionamento, che pure costituisce una rappresentazione di un segnale analogico, sotto determinate condizioni. L’operazione di trasformazione di Hilbert è concettualmente, ed operativamente, molto semplice: ) ( ~ t s si ottiene come uscita da un filtro, appunto detto di Hilbert, caratterizzato dalla funzione di trasferimento: < = > = 0 per 0 per 0 0 per ) ( f i f f i f H H (1) in termini di parte reale e parte immaginaria, ovvero: 1 per 0 ( ) 0 per 0 H f H f f = = (2a) { } < π = > π = 0 per 2 0 per 0 0 per 2 ) ( arg f f f f H H (2b) in termini di modulo e fase. Nel dominio della frequenza si ha dunque: ) ( ) ( ) ( ~ f S f H f S H = , (3) dove S(f) è la trasformata di Fourier di s(t) mentre ) ( ~ f S è la trasformata di Fourier di ) ( ~ t s . La trasformata di Hilbert ) ( ~ t s può dunque essere ottenuta dapprima utilizzando la (3) e quindi antitrasformando, secondo Fourier, il risultato del prodotto, oppure direttamente nel dominio del tempo, come integrale di convoluzione tra il segnale s(t) e la risposta impulsiva h H (t) del filtro di Hilbert. Quest’ultima si ricava facilmente e vale: t t h H π = 1 ) ( . (4) In considerazione del fatto che H H (f) è una funzione puramente immaginaria e dispari, era lecito attendersi che h H (t) fosse puramente reale e dispari. Tutto ciò dalle proprietà della trasformata di Fourier.

Transcript of TRASFORMATA DI HILBERT - univpm.it · Le funzioni di Walsh di ordine superiore, con N = 2m, m...

1

TRASFORMATA DI HILBERT

La Trasformata di Hilbert è una particolare rappresentazione che, contrariamente ad altre trasformate (Fourier, Laplace, Z, …) non realizza un cambiamento del dominio di definizione. In altre parole, a partire da una funzione del tempo s(t), la trasformata di Hilbert )(~ ts è ancora una funzione del tempo. In questo, la trasformata di Hilbert è simile al teorema del campionamento, che pure costituisce una rappresentazione di un segnale analogico, sotto determinate condizioni. L’operazione di trasformazione di Hilbert è concettualmente, ed operativamente, molto semplice:

)(~ ts si ottiene come uscita da un filtro, appunto detto di Hilbert, caratterizzato dalla funzione di trasferimento:

⎪⎩

⎪⎨

<=>−

=0per0per00per

)(fiffi

fH H (1)

in termini di parte reale e parte immaginaria, ovvero:

1 per 0( )

0 per 0H

fH f

f≠⎧

= ⎨ =⎩ (2a)

{ }

⎪⎪⎩

⎪⎪⎨

=

=

0per2

0per0

0per2

)(arg

f

f

f

fH H (2b)

in termini di modulo e fase. Nel dominio della frequenza si ha dunque:

)()()(~ fSfHfS H= , (3) dove S(f) è la trasformata di Fourier di s(t) mentre )(~ fS è la trasformata di Fourier di )(~ ts . La trasformata di Hilbert )(~ ts può dunque essere ottenuta dapprima utilizzando la (3) e quindi antitrasformando, secondo Fourier, il risultato del prodotto, oppure direttamente nel dominio del tempo, come integrale di convoluzione tra il segnale s(t) e la risposta impulsiva hH(t) del filtro di Hilbert. Quest’ultima si ricava facilmente e vale:

tthH π=

1)( . (4)

In considerazione del fatto che HH(f) è una funzione puramente immaginaria e dispari, era lecito attendersi che hH(t) fosse puramente reale e dispari. Tutto ciò dalle proprietà della trasformata di Fourier.

2

ESEMPIO: La trasformata di Hilbert della funzione s(t) = Acos(2πfct) vale )(~ ts = Asin(2πfct). Infatti:

( ) ( )[ ]cc ffffAfS +δ+−δ=2

)( ,

e quindi, utilizzando la (1):

( ) ( )[ ] ( ) ( )[ ]cccc ffffi

AffiffiAfS +δ−−δ=+δ+−δ−=22

)(~ .

Quest’ultima è la trasformata di Fourier di )(~ ts = Asin(2πfct).

* * * * * ESEMPIO: Vogliamo calcolare la trasformata di Hilbert del segnale:

( ) ( )cos(2 )cu t m t f t= π dove m(t) è un segnale reale con spettro (di ampiezza e fase) compreso tra [−B, B], con B < fc. Sia M(f) ta trasformata di Fourier di m(t). Per il segnale u(t) si avrà allora:

[ ]1( ) ( ) ( )2 c cU f M f f M f f= − + +

La trasformata di Hilbert di u(t), indicata con ( )u t% , si ottiene facendo passare u(t) attraverso il filtro di Hilbert. Di conseguenza, con ovvia notazione, si avrà:

[ ] [ ]1 1( ) ( ) ( ) ( ) ( ) ( )2 2c c H c cU f M f f M f f H f jM f f jM f f= − + + = − − + +%

avendo usato la definizione di filtro di Hilbert. A questo punto è sufficiente osservare che si può riscrivere:

[ ] [ ]1 1( ) ( ) ( ) ( ) ( ) ( ) ( )2 2c c c cU f M f j f f j f f M f f f f f

j= ⊗ − δ − + δ + = ⊗ δ − −δ +%

dove ⊗ indica la convoluzione. Antitrasformando, si ottiene infine:

( ) ( )sin(2 )cu t m t f t= π% Nel caso sia

( ) ( )sin(2 )= π cu t m t f t con una procedura perfettamente analoga, si dimostra che risulta:

3

( ) ( )cos(2 )= − π% cu t m t f t

* * * * *

L’operazione di trasformazione inversa di Hilbert, che consente di riottenere il segnale s(t) a partire da )(~ ts , richiede, in realtà, una nuova trasformata di Hilbert. E’ immediato, infatti, verificare che:

)()()()()(~)()(~~ fSfSfHfHfSfHfS HHH −=== . (5)

Se ne conclude che la trasformata di Hilbert della trasformata di Hilbert restituisce, a meno del segno, il segnale originale. A rigore, quindi, l’operazione di antitrasformazione è identica a quella di trasformazione con l’introduzione di un cambiamento di segno nel risultato. Va a questo punto precisato che quanto sopra vale per tutti i valori di f ≠ 0. In f = 0, infatti, in ragione delle (1) e (2), il valore di S(0), se diverso da zero, viene annullato, e non potrà essere più recuperato (in particolare dall’operazione di antitrasformazione (5)). Questa puntualizzazione definisce la condizione che deve essere verificata affinché un segnale s(t) sia “Hilbert trasformabile”: è necessario che la sua trasformata di Fourier sia nulla in f = 0. Visto che

∫∞

∞−

= ttsS d)()0( è proporzionale al valor medio del segnale s(t), si può concludere che la classe dei

segnali per cui è applicabile la trasformata di Hilbert è quella dei segnali a valor medio nullo1. Applicazioni della trasformata di Hilbert si trovano nell’ambito della sintesi di reti lineari, mentre un utilizzo particolarmente importante per lo studio dei sistemi di telecomunicazione riguarda la rappresentazione dei segnali in modulazione di ampiezza a banda laterale unica (SSB: Single Side Band).

* * * * * Altri esempi di trasformate di Hilbert sono riportati nella Tabella seguente:

( )s t )(~ ts sin t

t 1 cos t

t−

rect( )t

11 2ln 1

2

t

t

−−π +

( )tδ 1tπ

21

1 t+ 21

tt+

1t

( )t−πδ

1 In realtà, la definizione qui fornita per il filtro di Hilbert è ideale: le funzioni di trasferimento (1) e (2), infatti, presentano una transizione brusca per f = 0. Un filtro reale (e quindi realizzabile) potrà soltanto approssimare tale definizione nell’intorno dell’origine per cui, onde evitare la comparsa di distorsione nel segnale ricostruito, si dovrà imporre che il segnale s(t) non solo presenti valor medio nullo ma, in aggiunta, non abbia componenti armoniche significative per un opportuno intervallo di frequenze nell’intorno dell’origine.

4

In tabella, rect(t) rappresenta l’impulso rettangolare di ampiezza unitaria centrato nell’origine. Il fatto che la trasformata di Hilbert dell’impulso matematico (delta di Dirac) sia uguale a 1/(πt) è ovvia conseguenza della (4) e della definizione di risposta impulsiva. La trasformata di Hilbert di 1/t, pure riportata in tabella, è allora conseguenza della proprietà di dualità.

5

TRASFORMATA WALSH

La Trasformata Walsh utilizza come funzioni espansione delle opportune sequenze di impulsi rettangolari (funzioni di Walsh), suscettibili di assumere i valori ±1. Si tratta quindi di una tecnica di rappresentazione particolarmente semplice ed efficiente quando si lavora con l’algebra binaria. La Trasformata Walsh è particolarmente indicata per descrivere segnali che presentano discontinuità; al contrario, è minore la sua capacità di rappresentazione nel caso di forme d’onda continue. Le funzioni di Walsh dipendono dal tempo (t) e dalla sequenza (n). La variabile sequenza (sequency) prende il posto della frequenza nella Trasformata di Fourier: indicata con T la durata di una forma d’onda elementare, la variabile sequenza (detta anche “indice del codice di Walsh”) rappresenta il numero di transizioni +1/−1 all’interno di T. La generica funzione di Walsh viene allora indicata con WAL(n, t). Le funzioni di Walsh WAL(0, t), WAL(1, t), ….., WAL(7, t) sono rappresentate in Figura 1; nella rappresentazione, le funzioni sono ordinate in sequenza (cioè con un numero di attraversamenti dello zero crescente).

Figura 1 Una funzione f(t) può essere espressa in termini di funzioni di Walsh come segue:

∑−

=

+=1

10 ),(),0()(

N

ii tiWALatWALatf (6)

con

6

∫=T

i dttiWALtfT

a0

),()(1 (7)

D’altro canto, le funzioni WAL(n, t) con n pari (n = 2k) vengono anche indicate con CAL(k, t), mentre le funzioni WAL(n, t) con n dispari (n = 2k + 1) vengono anche indicate con SAL(k, t), essendo k = 1, 2, ….., N/2 − 1 (N è l’ordine massimo considerato: N = 8 in Figura 1). Di conseguenza, la funzione f(t) può essere espressa in termini di funzioni di Walsh pari e dispari come segue:

[ ]∑ ∑−

=

=

++=12/

1

12/

10 ),(),(),0()(

N

i

N

jji tjCALctiSALbtWALatf . (8)

Le funzioni di Walsh sono ortogonali. Vale infatti la relazione:

0

per( , ) ( , )

0 per

T T n mWAL m t WAL n t dt

n m=⎧

= ⎨ ≠⎩∫ (9)

Le definizioni precedenti sono del tutto generali. Nondimeno, dal punto di vista pratico, il maggior utilizzo della Trasformata Walsh si ha nella rappresentazione di segnali in forma discreta. Nel qual caso, indicando con x(n) la sequenza numerica rappresentativa del segnale e con X(k) la sequenza dei coefficienti della Trasformata Walsh, si può scrivere, per la coppia trasformata/antitrasformata:

1,...,1,0),()(1)(1

0

−== ∑−

=

NknkWALnxN

kXN

n

(10)

e

1,...,1,0),()()(1

0

−==∑−

=

NnnkWALkXnxN

k

(11)

Nelle (10) e (11) la variabile discreta n prende il posto della variabile continua t, e i valori (±1) delle WAL(k, n) si ottengono per campionamento delle WAL(k, t). In Figura 1 è riportato, in tratteggio, il campionamento delle funzioni di Walsh WAL(0, t) - WAL(7, t). Qui la condizione di ortogonalità (9) potrà scriversi, più chiaramente:

1

0

per( , ) ( , )

0 per

N

i

N n mWAL m i WAL n i

n m

=

=⎧=⎨ ≠⎩

∑ (12)

Le (10) e (11) lasciano chiaramente intendere che la dimensione dell’insieme di Walsh considerato eguaglia la cardinalità della sequenza numerica che costituisce il segnale originale. A meno del fattore 1/N il calcolo della trasformata è formalmente identico a quello dell’antitrasformata, e può essere convenientemente gestito in termini matriciali. In effetti, posto per semplicità formale, Wkn = WAL(k, n), definita la matrice della trasformazione

7

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

−−−−

1,11,10,1

10

1,00100

NNNN

N

WWW

WWWW

L

MM

L

W , (13)

e indicati con

⎥⎥⎥⎥

⎢⎢⎢⎢

=

−1

1

0

Nx

xx

Mx (14)

e

⎥⎥⎥⎥

⎢⎢⎢⎢

=

−1

1

0

NX

XX

MX , (15)

rispettivamente, i vettori colonna rappresentativi della sequenza dei dati e dei coefficienti della trasformata, è chiaro che risulta:

xWX ⋅=N1 . (16)

dove ⋅ rappresenta il prodotto (matriciale) righe per colonne. ESEMPIO: Sia data la sequenza di dati, di dimensione N = 4:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

3021

x .

Si considera la matrice della trasformazione:

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−−

−−=

1111111111111111

W .

Dalla (16) allora si evince:

8

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−−

−−=⋅=

4206

41

3021

1111111111111111

411 xWX

N.

Dunque, esplicitamente: X0 = 1.5, X1 = 0, X2 = 0.5, X3 = −1. E’ rimarchevole la semplicità del calcolo rispetto, ad esempio, alla valutazione di una DFT. Peraltro, alla stregua della Trasformata Discreta di Fourier, anche per la Trasformata Walsh Discreta sono state proposte in letteratura “implementazioni veloci” (FDWT: Fast Discrete Walsh Transform).

* * * * * Il modo più semplice per “costruire” le funzioni di Walsh, e cioè per ottenere la matrice W consiste nell’utilizzo del “metodo di Sylvester”. Il punto di partenza di tale metodo è costituito dalla matrice di Hadamard di ordine 2:

⎥⎦

⎤⎢⎣

⎡−

=1111

2H . (17)

Le righe, o equivalentemente le colonne, di tale matrice definiscono già una coppia di funzioni di Walsh (N = 2). Le funzioni di Walsh di ordine superiore, con N = 2m, m intero (è questa la scelta che viene utilizzata sistematicamente) si ottengono utilizzando la formula ricorsiva

22/ HHH ⊗= NN . (18) il simbolo ⊗ indicando il prodotto di Kronecker tra matrici. In pratica, sulla base della (18), W = HN si ottiene sostituendo ciascun elemento di HN/2 con la matrice H2 moltiplicata per il valore (±1) dell’elemento stesso. ESEMPIO: Volendo ottenere l’insieme delle funzioni di Walsh con N = 8, si ricava dapprima H4 come:

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−−−−

=⊗=

1111111111111111

224 HHH ,

e quindi H8 come:

9

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

−−−−−−−−

−−−−−−−−

−−−−−−−−−−−−

=⊗=

1111111111111111111111111111111111111111111111111111111111111111

248 HHH .

* * * * *

Le funzioni di Walsh costruite con il metodo di Sylvester non sono ordinate in sequenza; per rendersene conto, basta osservare l’esempio precedente, in cui la seconda riga di H8, ad esempio, rappresenta la funzione che in precedenza si è indicata con WAL(7, t). L’ordinamento che risulta dall’uso del metodo di Sylvester si dice naturale. A dispetto del fatto che l’ordinamento in sequenza sembra quello più logico (è equivalente ad ordinare secondo multipli crescenti della frequenza fondamentale le armoniche dello sviluppo in serie di Fourier) il fatto di poter ricavare direttamente le sequenze dall’applicazione del metodo di Sylvester rende l’ordinamento naturale particolarmente attraente nella pratica. Ad esempio, le funzioni di Walsh trovano applicazione nel sistema CDMA IS-95 (anche noto come sistema CDMAOne)2, ove a ciascun canale è associata una sequenza di Walsh di lunghezza pari a 64 bit. L’insieme delle N = 64 sequenze di Walsh è riportato in Figura 2, ove le sequenze sono appunto ordinate in modo naturale. Per sottolineare il fatto che le sequenze di Walsh sono ottenute utilizzando matrici di Hadamard, talora si parla anche di Trasformata di Walsh-Hadamard (WHT). Come per altre trasformate, uno dei maggiori utilizzi della Trasformata Walsh è ai fini della compressione dei segnali, vale a dire della loro rappresentazione con un numero minore di dati (senza perdita di informazione o con ridotta perdita di informazione). Si definisce efficienza di compressione, η, il rapporto percentuale tra la riduzione del numero dei dati della sequenza compressa e il numero dei dati della sequenza originale. In formula: η = [(no. dati seq. originale − no. dati seq. trasformata)/no. dati seq. originale]⋅100%. (19) Ovviamente la trasformazione è tanto più efficiente, dal punto di vista della compressione, quanto più η è prossimo al 100%. Per alcuni segnali, lo spettro Walsh (vale a dire la sequenza ordinata dei coefficienti della Trasformata) ha energia rapidamente decrescente con la sequenza. Questo fatto ha implicazioni positive dal punto di vista della compressione, consentendo di trasmettere un numero limitato di coefficienti della trasformata, in luogo della sequenza originale, pur garantendo una qualità elevata. Tale circostanza è stata ad esempio dimostrata per il segnale di elettrocardiogramma (ECG).

2 Il sistema “IS-95” (Interim Standard 95), sviluppato dalla società americana Qualcomm Inc., è stato per l’America del Nord (Stati Uniti - Canada) lo standard più significativo per la telefonia cellulare di seconda generazione (2G). Utilizzando la soluzione CDMA in un’epoca in cui gran parte del resto del mondo propendeva piuttosto per la soluzione TDMA, eventualmente in combinazione con FDMA (come nel GSM, che è invece lo standard Europeo per 2G), esso ha introdotto una serie di elementi innovativi, ed ha costituito un punto di riferimento anche per lo sviluppo dei sistemi radiomobili di terza generazione (3G - UMTS).

10

Figura 2

11

TRASFORMATA COSENO DISCRETA (DCT) Nella Trasformata Coseno Discreta (DCT: Cosine Discrete Transform) le funzioni espansione sono cosinusoidali, con argomento discreto. Si può pensare alla DCT come ottenuta a partire dalla DFT, considerandone la sola parte reale. Indicato con X(k) il coefficiente k-esimo della trasformata, si ha dunque3:

( ) 1,,1,0,2cos11Re1

0

1

0

/2 −=⎟⎠⎞

⎜⎝⎛ π

=⎥⎥⎦

⎢⎢⎣

⎡= ∑∑

=

=

π− NkNknx

Nex

NkX

N

nn

N

n

Nknin L . (20)

In realtà, in luogo della (20), risulta più frequente l’utilizzo dell’espressione seguente, il cui significato è ovviamente equivalente:

( ) 1,,1,0,2

)12(cos1 1

0

−=⎥⎦⎤

⎢⎣⎡ π+

= ∑−

=

NkN

knxN

kXN

nn L . (21)

ESEMPIO: Si consideri la sequenza dati: x0 = 1, x1 = 2, x2 = 0, x3 = 3. I coefficienti della DCT, calcolati usando la definizione (20), saranno:

( ) ( ) 5.14110 3210

1

0

=+++== ∑−

=

xxxxxN

XN

nn

( ) ( ) 25.02

3coscos2

cos412cos11 3210

1

0

=⎥⎦

⎤⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ π

+π+⎟⎠⎞

⎜⎝⎛ π+=⎟

⎠⎞

⎜⎝⎛ π

= ∑−

=

xxxxN

nxN

XN

nn

( ) ( ) ( ) ( )[ ] 13cos2coscos414cos12 3210

1

0

−=π+π+π+=⎟⎠⎞

⎜⎝⎛ π

= ∑−

=

xxxxN

nxN

XN

nn

( ) ( ) 25.02

9cos3cos2

3cos416cos13 3210

1

0

=⎥⎦

⎤⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ π

+π+⎟⎠⎞

⎜⎝⎛ π

+=⎟⎠⎞

⎜⎝⎛ π

= ∑−

=

xxxxN

nxN

XN

nn

Riprendendo la definizione di efficienza di compressione, introdotta con la (19), ove si stabilisca un “criterio a soglia”, in virtù del quale soltanto i coefficienti in modulo maggiori di 0.375 vengano riconosciuti come significativi ai fini della rappresentazione (e dunque della ricostruzione) della sequenza trasmessa, per l’esempio in questione soltanto X(0) = 1.5 e X(2) = −1 verrebbero “salvati”, conseguendo in tal modo un valore di η = 50%.

3 SI noterà che, rispetto alla definizione di DFT fornita in una dispensa precedente, nella trasformata è stato introdotto il fattore 1/N (che allora non comparirà nell’antitrasformata). Come noto questa “arbitrarietà” nel posizionamento dei fattori di normalizzazione (da distribuire nelle operazioni diretta ed inversa) è assolutamente lecito e teoricamente giustificabile.

12

Una delle applicazioni più significative della DCT si trova nella compressione delle immagini4. In questo caso, è necessario considerare la trasformata bi-dimensionale. In particolare, data una sequenza bi-dimensionale x(m, n) a N×N valori (nel caso delle immagini si tratterà, ad esempio, della distribuzione della funzione di luminanza, che stabilisce il livello di grigio) la corrispondente DCT può essere calcolata come segue:

( ) ∑∑−

=

=

=1

0

1

0

),(10,0N

k

N

l

lkxN

X (22)

( ) 0,,2

)12(cos2

)12(cos),(2,1

0

1

0

≠⎥⎦⎤

⎢⎣⎡ π+

⎥⎦⎤

⎢⎣⎡ π+

= ∑∑−

=

=

vuN

vlN

uklkxN

vuXN

k

N

l

. (23)

Il coefficiente X(0,0) viene denominato “componente DC” mentre gli altri coefficienti si indicano come “componenti AC”. Come già si era sottolineato per la Trasformata Walsh, l’efficienza della trasformata per l’applicazione specifica è misurata dalla, relativa, semplicità del calcolo e dalle proprietà di compattezza spettrale. Si verifica infatti che i coefficienti maggiormente significativi sono in numero limitato ed essenzialmente concentrati nell’intorno della componente DC (è giusto dire “alle basse frequenze”). Questo consente di ottenere coefficienti di compressione piuttosto elevati5. Più in dettaglio, l’immagine da comprimere viene suddivisa in blocchi di dimensione 8×8 e la DCT viene applicata a ciascuno di questi blocchi. Se necessario, vengono aggiunte righe (o colonne) di riempimento, successivamente eliminate in fase di ricostruzione. All’applicazione della DCT seguono le operazioni di quantizzazione e codifica (quest’ultima realizzata con opportune tecniche di codifica di sorgente, ad esempio codifica di Huffman) per la cui descrizione si rimanda, ovviamente, a corsi più specialistici.

4 In particolare, la DCT è stata utilizzata nello standard JPEG (Joint Photographic Experts Group) la cui “missione”, già a partire dal 1986, è stata quella di definire uno standard per la memorizzazione e la trasmissione di immagini fisse. Successivamente, lo standard JPEG è stato il punto di partenza per gli standard MPEG (Moving Pictures Expertes Group) and JBIG (Joint Bi-level Image Experts Group). 5 In realtà, l’entità della compressione è ovviamente funzione del livello di qualità desiderato; in molte applicazioni, peraltro, non si richiede una risoluzione necessariamente “superfine”.