Capitolo 1 parte I
Transcript
Capitolo 1 parte I
Appunti di Elaborazione numerica dei segnali Capitolo 1 - Campionamento (I) Introduzione ............................................................................................... 1 definizione di campionamento .................................................................... 2 segnale campionato .................................................................................... 3 Teorema del campionamento ...................................................................... 5 Formula di ricostruzione............................................................................. 8 Errore di aliasing ........................................................................................ 9 Cenni al progetto del filtro analogico anti-aliasing ................................... 13 Esempio di campionamento ideale............................................................ 14 Campionamento di una sinusoide ............................................................. 16 Campionamento di un segnale generico .................................................... 21 Filtri di ricostruzione ................................................................................ 22 Caso particolare: funzione PLOT del Matlab ..................................... 24 Osservazione ............................................................................................ 31 Traslazione nel tempo del pettine di campionamento................................ 31 Possibilità di sottocampionamento ed applicazioni ................................... 35 Esercizio................................................................................................... 39 Osservazione: possibilità di non usare il campionatore............................. 43 Effetti della non-idealità del campionatore ............................................... 44 INTRODUZIONE Il processo di campionamento di un segnale analogico variabile nel tempo riveste una grossa importanza nella maggior parte dei sistemi elettronici: esso infatti consente il passaggio dal dominio del continuo al dominio del discreto, ossia quindi la conversione dei segnali da analogico in digitale. Le conversioni digitaleanalogico (D→A) e analogico-digitale (A→D) consentono dunque il collegamento fondamentale tra il mondo delle quantità analogiche ed il mondo dei segnali digitali (o segnali numerici): • i cosiddetti DAC (acronimo di Digital Analog Converter) sono dispositivi aventi lo scopo di ricostruire un segnale analogico in uscita da un dispositivo digitale dopo, per esempio, una elaborazione o dopo l’immagazzinamento in una memoria numerica o semplicemente dopo una trasmissione in forma digitale; • invece, gli ADC (acronimo di Analog Digital Converter) sono dispositivi che convertono il segnale analogico in ingresso ad un dispositivo nella sua equivalente forma digitale. Nei moderni sistemi digitali è spesso necessario collegare componenti o parti che possono essere lontane tra loro. Questa tendenza è favorita dal fatto che i segnali digitali sono meno soggetti, rispetto a quelli analogici, all’influenza dei disturbi e del rumore. Nonostante questo, però, è importante sottolineare che, volendo trasmettere un segnale digitale, è necessario utilizzare linee di trasmissione progettate ad hoc, in Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 modo da evitare una degradazione del contenuto informativo contenuto nel segnale stesso: infatti, i segnali digitali hanno spesso dei tempi di trasmissione estremamente piccoli (dell’ordine dei nanosecondi), per cui richiedono delle linee in grado di trasmettere segnali ad elevata frequenza. DEFINIZIONE DI CAMPIONAMENTO La fase iniziale e spesso più critica dell’elaborazione digitale di un segnale analogico è quella del campionamento: esso consiste semplicemente nella trasformazione di un segnale continuo nel tempo in un segnale discreto ad esso equivalente. Lo scopo è quello di dare di una funzione s(t) continua nel tempo una descrizione in termini dei valori che essa assume in istanti equidistanti tra loro. Se questa operazione non è eseguita correttamente, tenendo presenti le caratteristiche spettrali del segnale tempo-continuo in esame, si ottengono dei risultati errati, in quanto il contenuto informativo del segnale campionato risulta diverso da quello del segnale di partenza, per cui l’informazione posseduta da quest’ultimo non può essere più ricostruita fedelmente. Consideriamo dunque un segnale s(t) continuo nel tempo: s(t) t Figura 1 - Generico segnale analogico da campionare. L’origine dei tempi è ovviamente del tutto arbitraria “Campionare” s(t) significa considerare i valori che esso assume per valori discreti di t, che siano multipli interi di una quantità fissa. Dobbiamo dunque scegliere un valore TC (reale positivo) e valutare i valori che s(t) assume negli istanti di campionamento, ossia negli istanti t = nTC con n=-∞ , .... , -2, -1 , 0 , +1 , +2 , .... . +∞ s(t) t Figura 2 - Indicazione degli istanti di campionamento, equispaziati nel tempo di TC Autore: Sandro Petrizzelli 2 Campionamento (parte I) La quantità TC prende il nome di periodo di campionamento: esso rappresenta chiaramente l’intervallo di tempo che intercorre tra due misure successive del valore di s(t), cioè tra due campioni successivi. L’inverso di TC, ossia fC=1/TC, è la frequenza di campionamento e rappresenta il numero di valori di s(t) che si valutano nell’unità di tempo, cioè il numero di campioni nell’unità di tempo. Quanto più piccolo è TC, tanto maggiore è fC e quindi tanti più campioni possiamo raccogliere nell’unità di tempo. SEGNALE CAMPIONATO Ci proponiamo adesso di verificare se possiamo ottenere l’andamento esatto, cioè l’andamento continuo nel tempo, del segnale s(t) a partire solo dalla conoscenza dei suoi campioni. Vedremo perciò come è possibile fare questo e sotto quali ipotesi il risultato finale risulta valido. Intanto, è ovvio che l’insieme dei valori di s(nTC) che otteniamo negli istanti t=nTC, cioè i cosiddetti campioni del segnale in esame, costituiscono il cosiddetto segnale discreto equivalente al segnale continuo s(t): lo possiamo dunque indicare con la notazione s(nTC). Prende invece il nome di segnale campionato di s(t) il segnale che si ottiene mediante la formula s C (t) = +∞ ∑ s(nT C n = −∞ )δ( t − nTC ) Al contrario del segnale discreto, il segnale campionato è dunque un segnale CONTINUO nel tempo, costituito da una successione di impulsi, ciascuno traslato di una quantità nTC rispetto all’origine e di area pari al valore del corrispondente campione s(nTC). Questo segnale campionato ha ovviamente la particolarità di assumere, in ogni istante, il valore che ivi assume s(t). Andiamo ora a determinare lo spettro del segnale campionato sC(t). Intanto, possiamo manipolare ulteriormente l’espressione di questo segnale: infatti, considerando che il prodotto s(nTC)δ(t-nTC) ha senso solo per t=nTC, mentre vale 0 altrove, possiamo porre proprio t=nTC, in modo da ottenere s C (t) = +∞ ∑ s(nTC )δ(t − nTC ) = n = −∞ +∞ +∞ n = −∞ n = −∞ ∑ s(t )δ(t − nTC ) = s(t ) ∑ δ(t − nTC ) La sommatoria di impulsi per cui s(t) viene moltiplicato in questa formula prende il nome di pettine di campionamento. A partire da questa espressione, calcoliamo SC(f), la quale sarà evidentemente pari alla trasformata del secondo membro; questo secondo membro è costituito da un prodotto: ricordando allora che un prodotto nel dominio del tempo equivale ad una convoluzione nel dominio della frequenza (proprietà di convoluzione in frequenza della trasformata di Fourier), possiamo scrivere che +∞ S C (f ) = S(f ) * Fourier ∑ δ( t − nTC ) n = −∞ Il segnale g( t ) = +∞ ∑ δ(t − nT n = −∞ C ) è una successione di impulsi di area unitaria, ossia un segnale periodico, dove il periodo è pari proprio al periodo di campionamento TC: ricordando allora come si 3 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 calcola la trasformata di Fourier di un segnale periodico, possiamo scrivere che la trasformata di g(t) ha espressione G (f ) = 1 TC +∞ n = −∞ n C ∑ δ f − T Si tratta di una ulteriore successione di impulsi1. In altre parole, il pettine di impulsi di campionamento è rappresentabile, spettralmente, con la sovrapposizione di sinusoidi complesse di frequenza 1/TC e multipli, tutte di ampiezza 1/TC: p(t) TC 2TC 3TC t P(f) -2fC -fC fC 2fC f Figura 3 - Pettine di campionamento nel tempo, p(t), e corrispondente spettro a righe, P(f) Andando a sostituire nella espressione di SC(f) otteniamo S C (f ) = S(f ) * 1 TC n 1 = δ f − ∑ TC TC n = −∞ +∞ +∞ n = −∞ n C ∑ S(f ) * δ f − T A questo punto, ci ricordiamo che la convoluzione tra un qualsiasi segnale e l’impulso traslato è pari al segnale stesso calcolato nel punto in cui è applicato l’impulso2, per cui concludiamo che lo spettro del segnale campionato è 1 S C (f ) = TC n S f − ∑ T n = −∞ C +∞ Come è fatto questo spettro? Dato che la funzione S(f) è proprio lo spettro del nostro segnale s(t) di partenza, deduciamo che SC(f) consiste in una successione di repliche, a meno del fattore costante 1/TC, dello spettro di s(t), ciascuna 1 Ricordiamo che la trasformata di un segnale periodico è sempre una successione di impulsi. La particolarità, quindi, in questo caso sta nel fatto che anche il segnale di cui calcoliamo la trasformata è una successione di impulsi. 2 In pratica, la convoluzione tra una funzione ed un impulso centrato in un certo istante τ produce una semplice traslazione della funzione a cavallo dell’impulso Autore: Sandro Petrizzelli 4 Campionamento (parte I) traslata rispetto all’origine di una quantità pari ad un multiplo della frequenza di campionamento fC=1/TC: infatti, andando a sviluppare parzialmente quella sommatoria, troviamo evidentemente che SC (f ) = .. + 1 2 1 1 1 1 1 1 2 S f + + S f + + S(f ) + S f − + S f − + ... − TC TC TC TC TC TC TC TC TC Si tratta dunque di un segnale periodico di periodo 1/T. Supponiamo, ad esempio, che lo spettro di s(t) sia del tipo seguente: S(f) -fC -B B fC f Figura 4 - Spettro di un segnale passa-basso di banda monolatera B (e quindi banda bilatera 2B) Lo spettro del segnale campionato sarà allora del tipo seguente: SC(f) -2fC -fC -B B fC 2fC f Figura 5 - Spettro del segnale campionato per il segnale di figura 4. Gli impulsi posizionati sulla frequenza fC e sui suoi multipli rappresentano lo spettro del pettine di campionamento, indicato al fine di evidenziare l’effetto della convoluzione: S(f) viene collocato a cavallo di ciascun impulso di campionamento (in frequenza). In figura sono indicate solo le repliche a cavallo della frequenza 0, di ±fC e di ±2fC,, ma sono da considerarsi anche le repliche a cavallo degli infiniti altri multipli della frequenza di campionamento TEOREMA DEL CAMPIONAMENTO Fino ad ora, abbiamo dunque ottenuto quanto segue: una volta noti i campioni del segnale tempocontinuo s(t) di partenza, abbiamo costruito il corrispondente segnale campionato sC(t) e abbiamo trovato che il suo spettro SC(f) è costituito da una successione di infinite repliche (a meno del termine 1/TC) dello spettro di s(t). Allora, è evidente che, se riusciamo ad isolare, a partire da queste infinite repliche, quella centrata nell’origine, avremo ottenuto proprio lo spettro di s(t), che è quello che ci interessa ottenere in fase di ricostruzione. Si pongono allora due domande: come è possibile isolare lo spettro di s(t) a partire dallo spettro di sC(t) e, in secondo luogo, quando è possibile far questo? 5 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 La risposta alla prima domanda è nota: basta infatti moltiplicare SC(f) per un rettangolo opportuno3, tale cioè che azzeri tutte le altre repliche mentre lasci più o meno invariata quella “centrale”. La risposta alla seconda domanda discende a sua volta da quanto appena detto: infatti, è ovvio che noi possiamo isolare S(f) , cioè la replica centrale, solo a condizione che essa non sia sovrapposta alle altre repliche. Infatti, è chiaro che se SC(f) è quello nella figura 5, noi siamo in grado di trovare 2 valori -w,+w tali che il rettangolo avente per estremi tali valori racchiuda solo la replica centrale mentre non racchiuda le altre. Al contrario, se SC(f) fosse del tipo SC(f) -2fC -fC fC 2fC f Figura 6 - Spettro del segnale campionato (frutto del campionamento del segnale di figura 4) in caso di sovrapposizione spettrale. Anche in questo caso non sono state indicate (ma sono presenti) le repliche spettrali posizionate sugli altri multipli di fC. è chiaro che noi non potremo mai trovare un intervallo di frequenza che racchiuda solo la replica centrale. Questo ci consente dunque di dire che la condizione necessaria perché sia possibile ricostruire il segnale s(t) a partire dai suoi campioni è che le repliche di S(f) che costituiscono SC(f) non si sovrappongano reciprocamente. Vediamo allora cosa deve succedere affinché non ci sia la sovrapposizione delle repliche. E’ subito evidente che la posizione delle repliche dipende strettamente dal valore della frequenza di campionamento fC: allora, indicato con [-B,+B], dove B è la banda di SC(f), l’intervallo (simmetrico rispetto all’origine) che racchiude la replica centrale, è evidente che, affinché non si abbia la sovrapposizione delle repliche, deve essere f C ≥ 2B SC(f) -2fC -fC -B B fC 2fC f Figura 7 - Spettro del segnale campionato (frutto del campionamento del segnale di figura 4) in assenza di sovrapposizione spettrale 3 In generale, come avremo modo di osservare più avanti, si tratta di filtrare il segnale campionato mediante un filtro passa-basso; a livello puramente teorico, quello che serve è un filtro ideale, mentre sappiamo bene che, nella pratica, i filtri ideali non esistono e quindi bisogna prendere le opportune precauzioni. Autore: Sandro Petrizzelli 6 Campionamento (parte I) La condizione fC≥2B prende il nome di condizione di Nyquist e sintetizza il cosiddetto teorema del campionamento: Teorema - Un segnale analogico passa-basso, di banda B, può essere completamente rappresentato da un sequenza di campioni regolarmente spaziati, ottenuti con una frequenza di campionamento non inferiore a 2B Il valore limite è ovviamente fC=2B, nel quale caso avremmo SC(f) fatto nel modo seguente: SC(f) -2fC -fC -B B fC 2fC f Figura 8 - Segnale campionato ottenuto ai limiti del teorema di campionamento, ossia prendendo fC=2B, ossia anche B=fC/2 (cioè banda del segnale pari alla frequenza di Nyquist) E’ ovvio che la condizione di Nyquist non ha senso quando B=∞, ossia quando lo spettro di s(t) NON è a banda limitata4: infatti, se B=∞, tale spettro si estende da -∞ e + ∞ ed è quindi inevitabile che le repliche, a prescindere dal valore della frequenza di campionamento, si sovrappongano. Per esempio, non sarà mai possibile ricostruire un segnale s(t) il cui spettro sia una funzione periodica. Teoricamente, un qualsiasi segnale di durata limitata, e quindi di banda infinita, sarebbe campionabile. Questo, però, renderebbe del tutto inutile, ai fini pratici, il campionamento, in quanto, nella realtà, noi abbiamo sempre a che fare con segnali di durata temporale limitata. Questo aspetto sarà comunque discusso in seguito. Quindi, la seconda ed ultima condizione per poter ricostruire s(t) a partire dai suoi campioni è che lo spettro di s(t) sia a banda limitata. Sotto, dunque, le due condizioni esaminate, possiamo arrivare alla espressione di s(t) a partire dai valori dei suoi campioni: facciamo osservare che questa espressione non è approssimata, ma è esatta (almeno a livello teorico). Ci sono adesso alcune definizioni importanti da considerare: • in primo luogo, la frequenza pari alla metà della frequenza di campionamento prende il nome di frequenza di Nyquist; • infine, si definisce durata del campionamento (o anche finestra di osservazione) il tempo totale durante il quale si effettua il campionamento del segnale continuo considerato. Idealmente, la finestra di osservazione dovrebbe essere infinita, ma, praticamente, non potrà che essere finita. 4 Ricordiamo la definizione rigorosa di segnale a banda limitata: si tratta di un segnale il cui spettro presenta ampiezza nulla in tutto il campo eccetto una banda ben definita. Segnali a banda limitata possono derivare da un processo di filtraggio oppure dalle limitazioni in banda imposte da sensori, amplificatori o altri componenti del sistema 7 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 FORMULA DI RICOSTRUZIONE Ritornando adesso all’aspetto matematico della questione, abbiamo detto che, per isolare S(f) a partire da SC(f), basta moltiplicare quest’ultima funzione per un opportuno rettangolo: vediamo allora quali devono essere le caratteristiche di questo rettangolo. In primo luogo, ricordando che l’espressione dello spettro del segnale campionato è 1 S C (f ) = TC n S f − ∑ T n = −∞ C +∞ è chiaro che le repliche di S(f) di cui è composto sono a meno del fattore 1/TC. Di conseguenza, se il rettangolo ha altezza pari proprio a TC, siamo certi che il suo prodotto per SC(f) dà la replica con il corretto fattore di scala. In secondo luogo è importante la banda del rettangolo (che indichiamo con D), la quale deve essere tale da conservare la replica cui siamo interessati e da azzerare tutte le altre. Il minimo valore, per quanto detto, è pari alla banda B del segnale s(t) di partenza, mentre il massimo valore dipende dalla posizione della replica spettrale immediatamente adiacente e quindi dalla frequenza di campionamento. La banda del rettangolo prende il nome di frequenza di carico del filtro. Vediamo infine come si arriva, da un punto di vista matematico, al segnale s(t) a partire dallo spettro del suo segnale campionato: abbiamo detto che la prima cosa è la moltiplicazione per un opportuno rettangolo, al fine di ottenere proprio lo spettro di s(t). Detto Sr(f) l’esito del prodotto, abbiamo dunque che f S r (f ) = S C (f ) TC rect 2D A meno di interferenze, Sr(f) è dunque esattamente lo spettro di s(t) (il pedice “r” sta per “ricostruito”). Con una operazione di antitrasformazione di Fourier, arriviamo all’espressione di sr(t): dato che abbiamo un prodotto nel dominio della frequenza, otterremo una convoluzione nel dominio del tempo, per cui f s r ( t ) = Fourier −1 [S C (f )]* Fourier −1 TC rect 2D L’antitrasformata di SC(f) è il segnale campionato, per cui +∞ f s r ( t ) = ∑ s(nTC )δ( t − nTC ) * Fourier −1 TC rect 2D n = −∞ L’antitrasformata di un rettangolo di altezza TC e base 2D è invece 2DTC sinc(2Dt ) , per cui +∞ +∞ s r ( t ) = ∑ s(nTC )δ( t − nTC ) * [2DTC sinc(2Dt )] = ∑ [s(nTC )δ( t − nTC )]* [2DTC sinc(2Dt )] = n = −∞ n = −∞ = +∞ ∑ 2DTC s(nTC )[(δ( t − nTC ) )* (sinc(2Dt ) )] = n = −∞ Autore: Sandro Petrizzelli +∞ ∑ 2DT s(nT )(sinc(2D(t − nT ))) C n = −∞ 8 C C Campionamento (parte I) In conclusione, la formula di ricostruzione del segnale s(t) è la seguente: s r ( t ) = 2DTC +∞ ∑ s(nT C n = −∞ )sinc(2D( t − nTC ) ) E’ ovvio che, avendo a che fare con una serie di infiniti termini, questa formula di ricostruzione è ideale, ossia non è realizzabile nella pratica. Tuttavia, essa serve per mostrare che effettivamente la ricostruzione di s(t) a partire dai campioni è teoricamente possibile senza che venga effettuata alcuna approssimazione, cioè senza alcuna perdita di informazioni. Prima di proseguire, vediamo che cosa succede nel caso particolare in cui decidiamo di prendere la frequenza di campionamento esattamente uguale al doppio della banda B dello spettro S(f), ossia 1 fC = = 2B . Questo implica, come già osservato, che lo spettro del segnale campionato sia TC costituito da repliche di S(f) perfettamente adiacenti tra di loro: SC(f) -2fC -fC -B B fC 2fC f Figura 9 - Segnale campionato ottenuto ai limiti del teorema di campionamento, ossia prendendo fC=2B, ossia anche B=fC/2 (cioè banda del segnale pari alla frequenza di Nyquist) e quindi anche che la frequenza di carico del filtro sia D=B, ossia pari alla banda dello spettro di s(t). Mettendo insieme queste due relazioni, si trova ovviamente che 2DTC = 2BTC = f C TC = 1 In base a questa relazione, la frequenza di carico del filtro risulta essere la metà della frequenza di campionamento, ossia è pari alla frequenza di Nyquist. In queste condizioni, la formula di ricostruzione si riduce a s r (t) = +∞ ∑ s(nT n = −∞ C )sinc(f C ( t − nTC ) ) ERRORE DI ALIASING Il campionamento può far incorrere in due errori: l’errore di aliasing e l’errore di troncamento. In questo paragrafo ci occupiamo del primo, rimandando a dopo le considerazioni sull’errore di troncamento. L’errore di aliasing si ha quando lo spettro del segnale campionato presenta una parziale sovrapposizione delle varie repliche di S(f) che lo compongono. In base a quanto visto prima, 9 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 l’aliasing si verifica solo quando non viene rispettato il teorema di campionamento, ossia quando si campiona ad una frequenza fC inferiore al doppio della banda del segnale, ossia quando la frequenza di Nyquist fC/2 è inferiore alla massima frequenza contenuta nel segnale s(t) che si sta campionando. Supponiamo, ad esempio, di voler campionare un segnale analogico avente il seguente spettro: Si osserva che l’armonica di massima frequenza di tale segnale analogico è alla frequenza fM. Se allora campioniamo ad una frequenza fC superiore a 2fM, lo spettro del segnale campionato risulta essere il seguente: Le repliche spettrali sono separate e quindi quella centrale si può isolare mediante un opportuno filtro passa-basso. Al contrario, se campioniamo ad una frequenza fC inferiore a 2fM, lo spettro del segnale campionato risulta essere il seguente: Si verifica dunque la parziale sovrapposizione delle repliche. Consideriamo, in particolare, la replica centrale, che è quella che noi vorremmo isolare per ricostruire il segnale analogico di partenza: l’errore di aliasing consiste evidentemente nella sovrapposizione delle frequenze più elevate (comprese tra fC-fM ed fM) con le frequenze inferiori a fC/2. In particolare, si ha una rotazione di 180°, rispetto alla frequenza fC/2, delle frequenze superiori a fC/2 stessa. Il risultato è la nascita di componenti a frequenze false, le quali frequenze si ottengono facilmente dalla differenza tra la frequenza di campionamento fC e le frequenze comprese tra fC/2 e fM. Nel caso in cui queste frequenze false si sovrappongano a frequenze già esistenti nello spettro del segnale analogico s(t), si ha il cosiddetto fenomeno dell’interferenza armonica. Facciamo un esempio numerico per capire bene questi ultimi concetti. Supponiamo di voler campionare un segnale sinusoidale s(t) di frequenza 50 Hz: sarà dunque un segnale del tipo s( t ) = A cos(2πf 0 t ) , dove ovviamente f0=50Hz. Lo spettro di questo segnale è notoriamente costituito Autore: Sandro Petrizzelli 10 Campionamento (parte I) da due impulsi, di area A/2, posizionati alle frequenze -f0 e +f0: analiticamente, l’espressione di tale spettro è A A S(f ) = δ(f − f 0 ) + δ(f + f 0 ) 2 2 Fissato un generico (per il momento) periodo di campionamento TC, lo spettro del segnale campionato avrà la seguente espressione: S C (f ) = 1 TC n A = S f − ∑ TC 2TC n = −∞ +∞ A n δ f − − f 0 + ∑ TC n = −∞ 2TC +∞ +∞ n n = −∞ C ∑ δ f − T + f 0 Consideriamo, per l’indice n, i valori -2,-1,0,+1,+2 in modo da ottenere le repliche situate nei pressi dell’origine: 2 1 1 2 − f 0 + − f 0 + δ f − − f 0 + δ(f − f 0 ) + δ f − − f 0 + δ f + δ f + TC TC TC TC A 2 1 1 2 + + f 0 + δ f + + f 0 + δ(f + f 0 ) + δ f − + f 0 + δ f − + f 0 δ f + 2TC TC TC TC TC S C (f ) = A 2TC Ricordando che fC=1/TC, abbiamo dunque che AfC [δ(f + 2fC − f0 ) + δ(f + fC − f0 ) + δ(f − f0 ) + δ(f − fC − f0 ) + δ(f − 2fC − f0 )] + 2 SC (f ) = + AfC [δ(f + 2fC + f0 ) + δ(f + fC + f0 ) + δ(f + f0 ) + δ(f − fC + f0 ) + δ(f − 2fC + f0 )] 2 Adesso sostituiamo qualche valore numerico: abbiamo già detto che f0=50Hz; se volessimo rispettare il teorema di campionamento, dovremmo campionare almeno a 100 Hz; facciamo invece l’ipotesi di campionare a 75 Hz, per cui lo spettro del segnale campionato assume la seguente espressione: SC (f ) = + AfC [δ(f + 100) + δ(f + 25) + δ(f − 50) + δ(f − 125) + δ(f − 200)] + 2 AfC [δ(f + 200) + δ(f + 125) + δ(f + 50) + δ(f − 25) + δ(f − 100)] 2 Se adesso consideriamo solo le componenti di interesse fisico, ossia quelle a frequenza positiva (quelle a frequenza negativa sono ovviamente in posizione simmetrica rispetto alla frequenza nulla), abbiamo quanto segue: S C (f ) = Af C [δ(f − 50) + δ(f − 125) + δ(f − 200) + δ(f − 25) + δ(f − 100)] 2 Abbiamo dunque 5 componenti, di cui una a 50 Hz, corrispondente al segnale analogico di partenza, una a 25 Hz e altre a frequenze di 100 Hz, 125 Hz e 200 Hz. Allora, se andiamo a moltiplicare lo spettro del segnale campionato con un rettangolo tale da filtrare le componenti a 11 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 frequenza superiore di 50 Hz, è evidente che otteniamo in uscita sia la componente di 50 Hz, che ci interessa, sia una nuova (e indesiderata) componente a 25 Hz. La ricostruzione, quindi, è affetta da errore di aliasing: il segnale ricostruito presenta una armonica in più rispetto al segnale s(t) di partenza. Vediamo un altro caso: consideriamo un segnale composto da tre componenti armoniche, rispettivamente alle frequenze di 50 Hz (armonica fondamentale), 100 Hz e 150 Hz: s( t ) = A cos(2πf 0 t ) + B cos(2π(2f 0 ) t ) + C cos(2π(3f 0 ) t ) dove ovviamente f0=50Hz. Lo spettro di questo segnale , considerando solo le frequenze fisiche, è dunque il seguente: S(f ) = A B C δ(f − f 0 ) + δ(f − 2f 0 ) + δ(f − 3f 0 ) 2 2 2 Campionando con una generica (per il momento) frequenza di campionamento fC, otteniamo un segnale campionato il cui spettro (includendo, per il momento, tutte le frequenze ) è il seguente: +∞ n S f − = f S(f − nf C ) = ∑ T C n∑ = −∞ n = −∞ C +∞ B C A = f C ∑ δ(f − nf C − f 0 ) + δ(f − nf C − 2f 0 ) + δ(f − nf C − 3f 0 ) + 2 2 n = −∞ 2 1 TC S C (f ) = + fC +∞ +∞ A ∑ 2 δ(f − nf n = −∞ C + f0 )+ B C δ(f − nf C + 2f 0 ) + δ(f − nf C + 3f 0 ) 2 2 Consideriamo -1,0,+1 come valori dell’indice n: B C A S C (f ) = f C δ(f + f C − f 0 ) + δ(f + f C − 2f 0 ) + δ(f + f C − 3f 0 ) + 2 2 2 B C B C A A + f C δ(f − f 0 ) + δ(f − 2f 0 ) + δ(f − 3f 0 ) + f C δ(f − f C − f 0 ) + δ(f − f C − 2f 0 ) + δ(f − f C − 3f 0 ) + 2 2 2 2 2 2 B C A + f C δ(f + f C + f 0 ) + δ(f + f C + 2f 0 ) + δ(f + f C + 3f 0 ) + 2 2 2 B C B C A A + f C δ(f + f 0 ) + δ(f + 2f 0 ) + δ(f + 3f 0 ) + f C δ(f − f C + f 0 ) + δ(f − f C + 2f 0 ) + δ(f − f C + 3f 0 ) 2 2 2 2 2 2 Per rispettare il teorema di campionamento dovremmo campionare a 300 Hz, mentre invece supponiamo di farlo a 180 Hz: sostituendo i valori numerici e considerando solo le componenti fisiche (cioè a frequenza positiva), otteniamo B C B C A A S C (f ) = f C δ(f − 50) + δ(f − 100) + δ(f − 150) + f C δ(f − 230) + δ(f − 280) + δ(f − 330) + 2 2 2 2 2 2 C B A + f C δ(f − 130) + δ(f − 80) + δ(f − 30) 2 2 2 Autore: Sandro Petrizzelli 12 Campionamento (parte I) Si osserva dunque la presenza delle tre componenti di interesse (a 50 Hz, 100 Hz e 150 Hz), alle quali però si aggiungono altre componenti, che in ordine di frequenza crescente sono a 30 Hz, 80 Hz, 130 Hz, 230 Hz, 280 Hz e 330 Hz. Queste ultime tre vengono filtrate nel momento in cui si moltiplica SC(f) per un rettangolo di banda pari proprio a 150 Hz; rimangono invece le altre tre, che contribuiscono quindi a differenziare il segnale ricostruito dal segnale originale s(t). In definitiva, dunque, il rispetto del teorema del campionamento consente di evitare l’errore di aliasing. In realtà, questo è vero solo dal punto di vista teorico, mentre invece sorgono diverse difficoltà quando si deve operare concretamente: il problema principale è che non si può campionare infinitamente un dato segnale, ma bisogna limitarsi a farlo in un intervallo di tempo comunque finito, che abbiamo chiamato finestra di osservazione. Questa finestra di osservazione comporta dunque una limitazione temporale del segnale analogico da analizzare, il che corrisponde ad un segnale teoricamente con spettro infinito e quindi inevitabilmente soggetto alla sovrapposizione delle repliche traslate. In altri termini, l’errore di aliasing è teoricamente sempre presente. L’unico modo per evitare la sovrapposizione delle repliche traslate dello spettro del segnale è quello di limitarlo in banda prima di campionarlo: bisogna cioè utilizzare opportuni filtri (detti perciò filtri antialiasing), i quali eliminano, dal segnale analogico di partenza, un certo numero di frequenze, in modo da permettere la successiva corretta discretizzazione. Quali frequenze, allora, vanno eliminate? Per limitare al minimo le distorsioni del segnale filtrato rispetto al segnale di partenza, è necessario filtrare solo le componenti a contenuto energetico minore, ossia quelle che contribuiscono in maniera minima al contenuto informativo del segnale. In generale, il criterio più sensato è quello di ritenere trascurabili quelle componenti di ampiezza confrontabile con le componenti rumore e che quindi da tale rumore sarebbero comunque indistinguibili. Ancora, l’inevitabile presenza del rumore è un altro motivo fondamentale per cui non si può prescindere dal pre-filtraggio del segnale s(t) da campionare: abbiamo detto che lo spettro del segnale campionato è una ripetizione periodica, a passo fC, dello spettro del segnale s(t); il campionatore, però, riceve in ingresso sia s(t) sia il rumore sovrapposto, che, in generale, è un rumore bianco, cioè con spettro di potenza costante su tutte le frequenze; allora, se campionassimo l’ingresso senza pre-filtrare, noi ripeteremmo, a passo fC, sia lo spettro di s(t) sia lo spettro del rumore, ma quest’ultimo è esteso su tutte le frequenze, per cui, in banda base come nel resto delle frequenze, avremmo la somma (in potenza) di infiniti contributi di rumore, il che sarebbe inaccettabile. Pre-filtrando, invece, noi otterremmo in banda base un unico contributo di rumore, che è quello relativo alla banda di s(t) e dal quale non possiamo ovviamente liberarci. CENNI AL PROGETTO DEL FILTRO ANALOGICO ANTI-ALIASING Il progetto del filtro analogico anti-aliasing va fatto dunque in modo oculato, avendo a priori una idea dei segnali da campionare: per un segnale la cui potenza è concentrata alle basse frequenze, verrà utilizzato un filtro passa-basso, mentre, per un segnale la cui potenza è concentrata ad alte frequenze (come accade nei segnali modulati), si utilizzerà un filtro passa-banda. Nei filtri analogici non è facile rispettare, nella realizzazione pratica, le specifiche riguardanti la banda passante e quelle di transizione e oscura. Di conseguenza, è proprio il filtro anti-aliasing a degradare le prestazioni complessive di un sistema digitale, a meno ovviamente di non far crescere in modo consistente il costo. Una soluzione spesso utilizzata è quella di scegliere una banda passante del filtro anti-aliasing maggiore di quella del segnale analogico da analizzare, in modo da degradare il meno possibile, nel campo delle frequenze di interesse, il segnale filtrato. Ovviamente, occorre poi rispettare sempre il 13 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 teorema del campionamento: generalmente, si sceglie una frequenza di campionamento variabile tra 4 e 10 volte quella di Nyquist. Una volta effettuato questo sovracampionamento, è possibile ridurre il numero dei dati da elaborare, scartando quelli di non interesse, usando degli appositi filtri dedicati. In particolare, la frequenza di campionamento viene ridotta nello stesso rapporto di eliminazione dei dati, in un processo che prende il nome di decimazione dei dati campionati. ESEMPIO DI CAMPIONAMENTO IDEALE Supponiamo di voler ricostruire il segnale x(t) sapendo che la sua banda è w (ovviamente limitata) e che i suoi campioni, misurati con una frequenza di campionamento fC=1/T=2w e supposti in numero infinito, valgono tutti 0 tranne i seguenti tre: x(0) = 1 1 x − = 0.5 2w 1 x + = 0.5 2w Dobbiamo semplicemente applicare la formula generale di ricostruzione, che, per fC=2w, è x r (t) = +∞ ∑ x( nT)sinc( f C n =−∞ ( t − nT) ) Sviluppando quella sommatoria e tenendo conto che gli unici termini non nulli sono quelli per n=-1,0,+1, abbiamo quanto segue: x r ( t ) = x ( − T ) sinc( f C ( t + T ) ) + x ( 0) sinc( f C t ) + x ( T ) sinc( f C ( t − T ) ) = 1 1 = x − sinc( f C ( t + T ) ) + x ( 0) sinc( f C t ) + x sinc( f C ( t − T ) ) 2w 2w Sostituendo i valori dei campioni, otteniamo x r ( t ) = 0.5sinc( f C ( t + T)) + sinc( f C t ) + 0.5sinc( f C ( t − T)) Sostituendo adesso l’espressione della funzione “sinc” otteniamo x r ( t ) = 0.5 sin( πf C ( t + T)) πf C ( t + T) + sin( πf C t ) πf C t Ricordando che fC=1/T, abbiamo inoltre che Autore: Sandro Petrizzelli 14 + 0.5 sin( πf C ( t − T)) πf C ( t − T) Campionamento (parte I) x r ( t ) = 0.5 = 0.5 1 sin π ( t + T) T πf C ( t + T) t sin π + π T πf C ( t + T) + + 1 sin π t T πf C t 1 sin π t T πf C t + 0.5 + 0.5 1 sin π ( t − T) T πf C ( t − T) = t sin π − π) T πf C ( t − T) Adesso, ricordando la proprietà della funzione Seno secondo cui sin(α+π) = - sin(α) sin(α-π) = - sin(α) abbiamo che t sin π T 1 sin π t T 1 sin π t T 0.5 0.5 x r ( t ) = −0.5 + − 0.5 = − + 1− = πf C ( t + T) πf C t πf C ( t − T) πf C t − T t+T 1 1 sin π t 2 sin π t 2 2 T −0.5t + 0.5T + t − T − 0.5t − 0.5T T t − T2 − t = = 2 = 2 πf C πf C t 2 − T2 t −T 1 1 sin π t sin π t T T t = − 1 = t 2 − T 2 πf C 2 πw t sin π T t 1 − t 2 − T 2 Proseguendo con i calcoli, si arriva al seguente risultato finale: 1 sin π t T 1 x r ( t) = 2 2 πwt 1 − (2 wt ) L’andamento grafico di questo segnale è il seguente (per w=2): 15 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 A titolo di esercizio, ricaviamo l’espressione dello spettro di xr(t): per farlo, partiamo dalla relazione x r ( t ) = 0.5sinc( f C ( t + T)) + sinc( f C t ) + 0.5sinc( f C ( t − T)) = 1 1 = 0.5sinc 2w t + = + sinc( 2wt ) + 0.5sinc 2w t − 2w 2w = 0.5sinc( 2wt + 1) + sinc( 2wt ) + 0.5sinc( 2wt + 1) La trasformata di questo segnale si può calcolare sfruttando una serie di proprietà a noi note: in primo luogo, applicando la proprietà di linearità noi abbiamo che [ ] [ ] [ X r ( f ) = 0.5Fourier sinc( 2wt + 1) + Fouriere sinc( 2wt ) + 0.5Fourier sinc( 2wt + 1) ] Ricordandoci adesso che la trasformata del segnale z( t ) = sinc( 2ωt ) si calcola mediante la proprietà di dualità e vale 1 f Z( f ) = rect 2w 2w abbiamo che X r ( f ) = 0.5Fourier[sinc( 2wt + 1)] + 1 f rect + 0.5Fourier[sinc( 2wt + 1)] 2w 2w Ricordandoci infine della proprietà di traslazione nel tempo, concludiamo che 1 1 1 f − jπf w f f jπf w X r (f ) = rect rect rect + e + e 2w 2w 4w 2w 4w 2w 1 1 Possiamo inoltre applicare le formule di Eulero, ottenendo che 1 1 1 1 f πf f 1 − jπf w 1 jπf w = Xr ( f ) = rect + e rect 1 + e 1 + cos 2w 2 2w w 2w 2 2w Da questa espressione, in particolare dalla presenza della funzione “rect”, di nota che lo spettro X(f) del nostro segnale è certamente a banda limitata, il che costituisce la condizione fondamentale perché si possa operare la ricostruzione di s(t) a partire dai suoi campioni. CAMPIONAMENTO DI UNA SINUSOIDE Abbiamo già fatto in precedenza un esempio di campionamento di una sinusoide. Analizziamo adesso la cosa con maggiori dettagli, in modo da introdurre nuovi concetti. Faremo le ipotesi semplificative di assenza di rumore e di segnali a banda limitata (quindi teoricamente di durata infinita). Autore: Sandro Petrizzelli 16 Campionamento (parte I) Consideriamo dunque una sinusoide a frequenza f0, che quindi avrà una espressione analitica del tipo s( t ) = cos(2πf 0 t ) ed uno spettro del tipo seguente: S(f) -f0 f -f0 Figura 10 - Spettro di una sinusoide Coseno di frequenza f0 Volendo campionare questo segnale in modo da rispettare il teorema di campionamento, dobbiamo considerare fC≥2f0, ossia dobbiamo considerare una frequenza di Nyquist fC/2 non inferiore alla frequenza della sinusoide stessa. Rispettando questa condizione, sappiamo che lo spettro del segnale campionato è una ripetizione periodica di S(f) a cavallo di fC e dei suoi multipli; in pratica, dobbiamo quindi prendere i due impulsi indicati in figura e riportarli a cavallo di fC e dei suoi multipli: SC(f) 3 − fC 2 -fC f − C 2 -f0 f0 fC 2 fC 3 fC 2 f Figura 11 - Spettro del segnale campionato (frutto del campionamento della sinusoide di cui alla figura 2) nel caso venga rispettato il teorema del campionamento. Gli impulsi tratteggiati rappresentano lo spettro del segnale campionato, che ovviamente comprende anche i due impulsi in ±f0, che coincidono con quelli del segnale di partenza A questo punto, per la ricostruzione, non dobbiamo far altro che raccogliere tutto quello che f f troviamo all’interno dell’intervallo − C , C , in modo da eliminare le repliche di S(f) non 2 2 centrate nell’origine: in questo caso, avendo rispettato il teorema del campionamento, quello che otteniamo in uscita dal filtro di ricostruzione è proprio il segnale di partenza. Adesso immaginiamo di diminuire la frequenza di campionamento, per cui la frequenza di Nyquist fC/2 si avvicina a f0. Fin quando fC/2 rimane superiore ad f0, non abbiamo problemi, in quanto stiamo ancora sovracampionando: 17 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 SC(f) − -fC 3 f fC − C 2 2 fC 2 fC 3 fC 2 f Figura 12 - Filtraggio passa-basso del segnale campionato nel caso sia stato rispettato il teorema del campionamento f f L’intervallo − C , C contiene ancora solo lo spettro del segnale di partenza. 2 2 Se però scegliamo la frequenza di campionamento in modo che fC/2 diventi inferiore ad f0, sorgono i problemi, legati al sottocampionamento: SC(f) -fC f C − 2 f C fC 2 f Figura 13 - - Filtraggio passa-basso del segnale campionato nel caso non sia stato rispettato il teorema del campionamento f f Dato che fC/2 è inferiore ad f0, succede che nell’intervallo − C , C non viene più a trovarsi lo 2 2 spettro del segnale di partenza, ma termini spettrali relativi alle repliche posizionate in +fC ed in -fC. Evidentemente, questi termini corrispondono ancora ad una sinusoide, ma di frequenza inferiore ad f0: in particolare, è una sinusoide a frequenza fC-f0. Quindi, non rispettando il teorema del campionamento, l’uscita del filtro di ricostruzione è una sinusoide a frequenza inferiore a quella originale; la nuova frequenza è funzione della fC che è stata usata. Il fenomeno appena descritto può essere anche impostato in modo diverso, al fine di evidenziare alcune importanti osservazioni. Anziché ritenere fissata la frequenza f0 della sinusoide da campionare e arbitraria la frequenza fC di campionamento, facciamo il contrario: supponiamo di aver fissato una certa fC e vediamo come cambiano le cose, in fase di ricostruzione, al variare della frequenza f0 della sinusoide in ingresso. Autore: Sandro Petrizzelli 18 Campionamento (parte I) Come caso iniziale, supponiamo di scegliere un valore di f0 tale da rispettare il teorema di campionamento: SC(f) 3 − fC 2 -fC f − C 2 -f0 f0 fC 2 fC 3 fC 2 f Figura 14 -Filtraggio passa-basso del segnale campionato nel caso sia stato rispettato il teorema del campionamento. Lo spettro del segnale da isolare si trova effettivamente contenuto nel cosiddetto “intervallo non ambiguo”, che va da -fC/2 a +fC/2 Adesso supponiamo di aumentare f0. Che succede? Da un punto di vista dello spettro del segnale campionato, abbiamo un “movimento” dei vari impulsi: i due impulsi in ±f0 si allontanano dall’origine rispetto alla figura precedente; i due impulsi in ±(fC-f0) si avvicinano invece all’origine; i due impulsi in ±(fC+f0) si allontanano e così via: SC(f) − 3 fC 2 -fC − fC 2 fC 2 fC 3 fC 2 f Figura 15 - -Filtraggio passa-basso del segnale campionato nel caso sia stato rispettato il teorema del campionamento. Rispetto alla figura 14, però, gli impulsi sono più vicini alla frequenza di Nyquist, cioè alla frequenza di taglio del filtro passa-basso ideale) di ricostruzione Dato che continuiamo a rispettare il teorema del campionamento, l’uscita è ancora una sinusoide a frequenza f0, per cui l’incremento della frequenza in ingresso corrisponde ad un pari incremento della frequenza in uscita. Se continuiamo ad aumentare f0, fino a superare il valore fC/2, le cose cambiano: 19 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 SC(f) − 3 fC 2 -fC f − C 2 fC 2 fC 3 fC 2 f Figura 16 - -Filtraggio passa-basso del segnale campionato nel caso non sia stato rispettato il teorema del campionamento. Lo spettro del segnale da isolare si trova all’esterno dell’intervallo non ambiguo, che invece contiene termini derivati dalle repliche spettrali posizionate in fC e -fC f f Nell’intervallo − C , C non sono più contenuti gli impulsi corrispondenti ad S(f), ma sono 2 2 contenuti l’impulso “negativo” di S(f-fC) e l’impulso positivo di S(f+fC). Il risultato in uscita è ancora una sinusoide, ma di frequenza inferiore a fC/2. Abbiamo cioè ottenuto che ad un aumento della frequenza in ingresso è corrisposta una diminuzione della frequenza in uscita. Questo è appunto dovuto al fatto che in uscita abbiamo raccolto componenti spettrali diverse da quelle che ci interessavano. E’ un tipico problema di aliasing. Se aumentiamo ulteriormente la frequenza f0, la frequenza dell’uscita continua a diminuire, fin quando prendiamo f0=fC: a questo punto, otteniamo in uscita una continua. Proseguendo ancora con l’aumento di f0, riprendiamo ad ottenere una sinusoide in uscita con frequenza crescente, ma sempre inferiore a fC/2: SC(f) − 3 fC 2 -fC f − C 2 fC 2 fC 3 fC 2 f Figura 17 - ”Movimento”, in frequenza, degli impulsi che costituiscono il segnale campionato: all’aumentare della frequenza f0 della sinusoide in ingresso, gli impulsi corrispondenti al segnale da isolare si allontanano dall’origine, mentre quelli derivanti dalle repliche in fC e -fC si avvicinano all’origine Autore: Sandro Petrizzelli 20 Campionamento (parte I) CAMPIONAMENTO DI UN SEGNALE GENERICO Consideriamo un problema analogo a quello del paragrafo precedente: supponiamo di avere a disposizione un dato campionatore che campioni ad una frequenza massima fC prefissata. Potremmo trovarci nelle condizioni di dover campionare, mediante questo dispositivo, un segnale la cui banda supera il valore fC/2, il che non ci consente di rispettare il problema del campionamento: S(f) -fC − fC 2 fC 2 fC f Figura 18 - Spettro di un generico segnale analogico passa-basso che non rispetta il teorema del campionamento, dato che la sua banda monolatera supera la frequenza di Nyquist Assumendo, per semplicità, che non ci sia alcun rumore sovrapposto al segnale, ci chiediamo quale, tra le seguenti due alternative, sia la migliore: disinteressarci del fatto che non venga rispettato f f il campionamento e campionare ugualmente oppure prefiltrare s(t) nell’intervallo − C , C e poi 2 2 campionare. Nel primo caso, sappiamo ormai bene che il mancato rispetto del teorema del campionamento porta alla sovrapposizione delle repliche spettrali: SC(f) -fC − fC 2 fC 2 fC f Figura 19 - Spettro del segnale campionato del segnale di figura 18 nel caso non venga effettuato un pre-filtraggio: l’aliasing pregiudica le informazioni a ridosso della frequenza di Nyquist Il risultato è che il filtro di ricostruzione ci dà un segnale con le informazioni in alta frequenza (zone più annerite nel grafico) compromesse. 21 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 f f L’alternativa è invece quella di prefiltrare il segnale nell’intervallo − C , C e poi campionare. 2 2 In questo modo, è vero che perdiamo l’informazione eliminata dal pre-filtraggio, ma è anche vero f f che, in uscita, otteniamo un segnale, esteso ancora in − C , C , con tutta informazione utile, in 2 2 quanto privo di aliasing: SF (f) spettro del segnale pre-filtrato -fC − fC 2 fC 2 fC f Figura 20 - Spettro del segnale ottenuto pre-filtrando passa-basso il segnale della figura 18 SC(f) spettro del segnale (pre-filtrato) campionato -fC − fC 2 fC 2 fC f Figura 21 - Campionamento del segnale della figura 20: avendo eliminato le componenti esterne all’intervallo [-fC/2,fC/2], viene eliminato l’aliasing Con questo secondo modo di procedere, quindi, si riesce ad estrarre la massima informazione che il sistema consente. FILTRI DI RICOSTRUZIONE Consideriamo nuovamente il problema del campionamento di una sinusoide. Abbiamo in precedenza analizzato questo problema nei minimi dettagli, partendo però da una ipotesi tutt’altro che attuabile nella pratica: quella di avere un filtro di ricostruzione ideale, cioè con funzione di f f trasferimento perfettamente rettangolare (e di modulo 1) nell’intervallo − C , C e nulla 2 2 all’esterno di tale intervallo: Autore: Sandro Petrizzelli 22 Campionamento (parte I) HR(f) -fC − fC 2 fC 2 fC f Figura 22 - Filtro di ricostruzione ideale, corrispondente ad un filtro passa-basso ideale Un filtro del genere5 consente la ricostruzione perfetta del segnale, a patto ovviamente di aver rispettato il teorema del campionamento: la formula di ricostruzione, già ricavata in precedenza, prevede in pratica che il segnale campionato sC(t) venga moltiplicato per una funzione di risposta all’impulso (cioè l’antitrasformata della HR(f) riportata in figura) che ha espressione h R (t) = f C sin (πf C t ) πf C t Nella realtà, invece, i filtri non godono mai di questa idealità: essi possiedono una banda passante, cioè la banda all’interno della quale lasciano passare pressoché intatto il segnale (o comunque con una attenuazione non superiore ad un limite massimo), una banda attenuata, ossia la banda al cui interno le componenti spettrali devono essere attenuate di una quantità superiore ad un limite minimo tollerabile, ed una banda di transizione in cui si ha il passaggio (più o meno rapido a seconda dell’ordine dei poli) dalla banda passante a quella attenuata: HR(f) f Figura 23 - Classica funzione di trasferimento di un filtro passivo: la banda passante prevede un modulo costante (idealmente =1) per la funzione di trasferimento; la banda attenuata prevede un modulo costante (idealmente nullo) La funzione di risposta all’impulso corrispondente a questo spettro non è più del tipo sin(t)/t. Allora, quando scegliamo la frequenza di campionamento, dobbiamo necessariamente tener conto di quale sia l’intervallo di frequenze che il filtro di ricostruzione lascia passare praticamente invariate: nota questa informazione, dovremo fare in modo che il segnale campionato presenti la 5 la cui funzione di risposta all’impulso (pari all’antitrasformata della funzione di trasferimento) è un classico sin(f)/f 23 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 replica centrale di S(f) (quella centrata in f=0) tutta contenuta nel suddetto intervallo. Ad esempio, andrebbe bene una scelta del tipo seguente: HR(f) -fC f − C 2 fC 2 fC f Le due linee tratteggiate indicano la porzione di spettro in cui è opportuno che sia allocato lo spettro del segnale che è stato campionato e che quindi si vuol ricostruire. Caso particolare: funzione PLOT del Matlab Cerchiamo adesso di capire come sia fatto il filtro di ricostruzione usato dal programma Matlab; tale filtro è rappresentato semplicemente dalla funzione PLOT del Matlab, la quale funziona nel modo seguente: dato il vettore dei campioni ottenuti appunto dal campionamento del segnale di partenza, la funzione riporta, sul piano cartesiano, tali campioni e poi semplicemente li unisce con dei segmenti. t Figura 24 - Azione della funzione PLOT del Matlab: essa congiunge semplicemente i campioni del segnale In questo modo, il segnale che viene riportato sul video è una spezzata composta dai segmenti che congiungono (e quindi interpolano) i vari campioni. E’ abbastanza intuitivo rendersi conto di come sia fatta la risposta all’impulso di tale filtro di ricostruzione: si tratta semplicemente di un rettangolo isoscele, di base 2TC (periodo di campionamento) e altezza unitaria: Autore: Sandro Petrizzelli 24 Campionamento (parte I) 1 -TC TC t Figura 25 - Funzione di risposta all’impulso corrispondente alla funzione PLOT Moltiplicando ciascun triangolo per il valore del corrispondente campione e sommando i vari prodotti, si ottiene il segnale ricostruito: t Figura 26 - Azione di ricostruzione esercitata da un interpolatore lineare, ossia un interpolatore con funzione di risposta all’impulso di tipo triangolare: ogni triangolo è collocato in corrispondenza degli istanti di campionamento ed è scalato di una quantità pari al campione cui si riferisce Nota la funzione di risposta all’impulso, ci possiamo quindi ricavare la funzione di trasferimento del filtro, che sarà la sua trasformata di Fourier. Per calcolare tale trasformata, ci basta tener conto che un triangolo isoscele di base 2TC ed altezza TC è il risultato della convoluzione di due rettangoli, centrati entrambi in t=0, di base TC ed altezza unitaria: convoluzione TC 1 − TC 2 TC 2 -TC t TC t Allora, possiamo scrivere che h MATLAB ( t ) = 1 TC t rect TC t * rect TC 25 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 dove il fattore moltiplicativo 1/TC serve ad ottenere un triangolo di altezza unitaria. Per ottenere la corrispondente funzione di trasferimento, ci basta trasformare: al prodotto di convoluzione nel tempo corrisponderà un prodotto, in frequenza; ricordando allora che la trasformata sin (πTC f ) di ciascuno dei due rettangoli è TC (quindi con gli zeri in corrispondenza di ±fC e πTC f multipli) otteniamo sin 2 (πTC f ) H MATLAB ( f ) = TC (πTC f )2 Diagrammando questa funzione, abbiamo quanto segue: Questa funzione (con gli zeri sempre in corrispondenza di ±fC e multipli) è tutt’altro che un filtro f f passa-basso ideale nell’intervallo − C , C ; pur trascurando le code secondarie, che comunque 2 2 decrescono abbastanza rapidamente6, questo filtro presenta due problemi fondamentali: • il primo è che esso lascia passare tutte le componenti di frequenza inferiore a fC e non a fC/2, come sarebbe opportuno, pur applicando una attenuazione notevole a quelle comprese tra fC/2 ed fC. Questo comporta una ricostruzione del segnale, pur nell’ipotesi di aver rispettato il teorema di campionamento, che dà un esito diverso a seconda di dove è posizionato lo spettro del segnale che è stato campionato. Ciò che possiamo auspicare è che il segnale che è stato campionato abbia una banda molto piccola rispetto ad fC; • il secondo problema riguarda ancora una volta l’aliasing, secondo, però, un significato leggermente diverso da quello considerato fino ad ora: sappiamo che lo spettro del segnale campionato (cioè del segnale in ingresso al filtro di ricostruzione) presenta infinite repliche dello spettro del segnale analogico di partenza, centrate in 0, ±fC, ±2fC e così via; il particolare andamento di H MATLAB ( f ) comporta allora che le repliche centrate su ±fC vengano parzialmente fatte passare e vadano perciò a sommarsi7 alla replica centrale (che è l’unica di nostro interesse). 6 A questo proposito, è bene ricordare che lo smorzamento delle code della funzione sin2(f)/f2 avviene molto più rapidamente che nella funzione sin(f)/f, data ovviamente la presenza dell’operatore “quadrato” 7 Nel discorso che stiamo facendo, la somma è diversa dalla sovrapposizione: si considerano infatti termini spettrali che vengono effettivamente lasciati passare dal filtro, ma senza sovrapporsi ad altri termini spettrali, quindi senza generare aliasing nel significato con cui lo abbiamo inteso fino ad ora. D’altra parte, questa somma è comunque deleteria, in quanto le informazioni di Autore: Sandro Petrizzelli 26 Campionamento (parte I) Per limitare al minimo entrambi questi inconvenienti, la soluzione è evidente: bisogna fare in modo che la banda del segnale analogico che è stato campionato sia molto più piccola della frequenza di campionamento fC. In tal modo, si ottiene un duplice risultato: • intanto, lo spettro che ci interessa ottenere in uscita comprende frequenze che la funzione sin 2 (πTC f ) lascia passare più o meno invariate (ricordiamo che il lobo principale della (πTC f )2 suddetta funzione è approssimativamente piatto per le frequenze molto basse); • in secondo luogo, le componenti spettrali, relative alle repliche centrate su ±fC vengono sufficientemente attenuate da non procurare grossi problemi. Possiamo renderci conto molto bene di quanto appena detto svolgendo una simulazione MATLAB in cui il segnale da campionare sia semplicemente una sinusoide. Consideriamo, ad esempio, una sinusoide di frequenza 500 Hz. Il teorema del campionamento ci dice che dobbiamo campionare almeno a 1 kHz. Scegliamo, ad esempio, fC=5 kHz, cui corrisponde TC=0.2 msec. Costruiamo allora un vettore in cui riportiamo i valori che la funzione cos(2π ⋅ 500 ⋅ t ) assume per t=kTC, dove k è ovviamente un numero naturale positivo. Prendendo k=0,...,99, ossia costruendo un vettore di 100 campioni, Matlab fornisce la figura seguente: Si nota subito il raccordo tra i vari segmenti, ma la ricostruzione è tutto sommato accettabile. Il motivo è che la banda del segnale analogico originale (banda che coincide, in questo caso, con la frequenza della sinusoide) soddisfa ai requisiti di cui si parlava prima. Aumentiamo adesso la frequenza della sinusoide a 2 kHz, quindi abbastanza vicino al limite, rappresentato dalla frequenza di Nyquist fC/2=2.5 kHz. Il diagramma fornito da Matlab è il seguente: nostro interesse si compongono con altre informazioni che invece non ci interessano, per cui il risultato finale è ancora una ricostruzione non perfetta del segnale. In questo senso, anche questo fenomeno si può descrivere come aliasing. 27 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 Questo segnale non assomiglia più ad una sinusoide: il motivo è che il filtro di ricostruzione ha lasciato passare due componenti spettrali, una (quella di interesse) a 2 kHz e l’altra (dovuta alla replica spettrale centrata su fC=5kHz) a 3 kHz: SC(f) -3 kHz -2 kHz -fC -5 kHz f − C 2 -f0 2 kHz 3 kHz f0 fC 2 fC f (kHz) 5 kHz La composizione di queste componenti non è ovviamente una sinusoide pura. Quindi, ciò che possiamo osservare è che, pur avendo rispettato il teorema del campionamento, la ricostruzione del segnale è tutt’altro che buona semplicemente a causa della non idealità del filtro di ricostruzione. Tra l’altro, la figura appena riportata suggerisce come interpretare l’andamento ricavato per il segnale ricostruito: infatti, noi abbiamo due impulsi, di ampiezza diversa (si tenga conto infatti dell’andamento della funzione di trasferimento del tipo sin2(f)/f2), centrati simmetricamente rispetto alla frequenza fC/2=2.5 kHz (e, ovviamente, vale il simmetrico per le frequenze negative). Uno spettro di questo tipo è tipico di una portante sinusoidale, a frequenza 2.5 kHz, modulata d’ampiezza, in DSB-SC (quindi con portante soppressa) da una sinusoide a 500 kHz. Abbiamo cioè una portante alla frequenza di Nyquist modulata in DSB-SC dalla sinusoide che abbiamo campionato all’inizio. Questo spiega l’andamento del segnale ricostruito riportato nella penultima figura. Proseguendo adesso con la simulazione, possiamo trovare conferma di quanto detto in precedenza e, in particolare, di quanto succede se, mantenendo costante la frequenza di campionamento, aumentiamo la frequenza della sinusoide da campionare. 28 Autore: Sandro Petrizzelli Campionamento (parte I) Per esempio, se prendiamo f0=2.5kHz, ossia il limite massimo per f0, otteniamo quanto segue: In questo caso, la scelta di f0 è tale che sia la replica centrale di S(f) (spettro della sinusoide che è stata campionata) sia quella posizionata in fC comprendano un impulso proprio in fC/2; tali due impulsi si sommano (costruttivamente) e danno origine al segnale appena rappresentato. Questo è il segnale di massima frequenza che noi possiamo ricostruire; infatti, in base alle considerazioni fatte in precedenza, se poniamo f0=3.5 kHz, anziché ottenere un ulteriore aumento di frequenza della sinusoide in uscita, otteniamo una diminuzione: Ovviamente, permane ancora quell’effetto di distorsione che prima abbiamo descritto come una modulazione in DSB-SC. Per ridurre al minimo tale effetto, dobbiamo allontanare gli impulsi, il che si ottiene prendendo ad esempio f0=4.5 kHz: 29 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 Prima di proseguire con i nostri discorsi, facciamo un’altra interessante simulazione, che in pratica ripete quanto fatto poco fa, con la differenza di usare, come segnale da campionare, non più un Coseno, ma un Seno. In particolare, prendiamo f0=2.5kHz, ossia il limite massimo di frequenza imposto dal teorema del campionamento (dato che abbiamo fissato fC=5kHz). La ricostruzione fornita da Matlab è la seguente: Questo segnale, dall’andamento apparentemente assurdo, nasconde in realtà un “trucco”: infatti, la scala delle ordinate è graduata in 10-14, il che significa che il segnale ricostruito è nullo. Perché? Il motivo è evidente: la scelta di f0 è tale che sia la replica centrale di S(f) (spettro della sinusoide che è stata campionata) sia quella posizionata in fC comprendano un impulso proprio in fC/2, ma quello dovuto alla replica in fC è negativo (in quanto lo spettro di un Sin presenta notoriamente negativo l’impulso a frequenza negativa), per cui compensa l’altro (la somma dei due impulsi è distruttiva) e determina una uscita nulla. Autore: Sandro Petrizzelli 30 Campionamento (parte I) OSSERVAZIONE Non sempre il fenomeno dell’aliasing è deleterio e lo possiamo comprendere con un esempio molto semplice, legato ad una esperienza comune. Consideriamo un albero che viene inquadrato da lontano da una telecamera: la telecamere, descrivendo ogni quadro come un successione di righe orizzontali in numero finito e discreto, funziona in pratica da campionatore, per cui è anch’essa soggetta al teorema del campionamento. Data la distanza tra telecamera e albero, sul display (e quindi anche sul video su cui la telecamera riversa le immagini) non saranno visibili le foglie dell’albero perfettamente delineate; nonostante questo, però, l’impressione visiva è nitida. Se decidiamo di sfuocare l’immagine, agendo sull’apposito comando della telecamera, quello che otteniamo è sicuramente inaccettabile per noi. Sfuocare equivale semplicemente a filtrare, ossia quindi ad eliminare informazione che, in effetti, il mezzo non è in grado di trasmettere, per cui, teoricamente, la cosa non dovrebbe darci fastidio. Al contrario, di fastidio ne abbiamo. Il motivo è proprio legato all’aliasing: è vero che, nel momento in cui sfochiamo, riduciamo o eliminiamo l’aliasing, ma è anche vero, evitando di sfocare, noi possiamo aiutarci con modelli mentali precostituiti, riuscendo comunque a ricostruire nella mente le scene che vediamo. In altre parole, l’aliasing è deleterio solo quando produce equivocazione, altrimenti non lo è: nel caso della trasmissione televisiva, quindi, il filtraggio anti-aliasing non viene mai effettuato, puntando appunto su informazioni precostituite delle quali gli utenti sono già dotati e che sfruttano per la visione. TRASLAZIONE NEL TEMPO DEL PETTINE DI CAMPIONAMENTO Continuiamo a parlare del teorema del campionamento e, in particolare, con riferimento al filtro di ricostruzione usato da Matlab, vediamo quale conseguenza può avere un eventuale traslazione temporale del pettine di campionamento a seconda che il teorema del campionamento venga rispettato oppure no. Ricordiamo intanto che il pettine di campionamento non è altro che la successione temporale di impulsi (di area unitaria ed equispaziati di TC) con i quali noi rappresentiamo il comportamento di un campionatore ideale: +∞ s C ( t ) = s( t )g ( t ) = s( t ) ∑ δ( t − nTC ) n = −∞ Il segnale in uscita dal campionatore è il prodotto del segnale da campionare per il pettine di campionamento: il prodotto di ciascun impulso per il segnale da campionare fornisce (teoricamente) il valore del segnale nell’istante di applicazione dell’impulso. Da un punto di vista pratico, noi avviamo il campionamento a partire da un certo istante t=0, ma, in teoria, il campionamento di un segnale di durata infinita (e quindi di banda limitata, condizione necessaria per l’applicazione del teorema del campionamento) va da -∞ a +∞. Ci chiediamo adesso cosa succede se trasliamo, nel tempo, di una quantità ∆t il pettine di campionamento: g ∆t ( t ) = g( t + ∆t ) = +∞ ∑ δ( t + ∆t − nT n = −∞ 31 C ) Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 1 +∞ n , ci basta applicare la proprietà di traslazione δ f − ∑ TC n = −∞ TC nel tempo della trasformata di Fourier, con la quale otteniamo che Se la trasformata di g(t) era G ( f ) = G ∆t ( f ) = G ( f )e j2 πf∆t 1 j2 πf∆t +∞ n = e δ f − ∑ TC T n = −∞ C Abbiamo cioè un termine di variazione di fase proporzionale a ∆t ed alla frequenza. Ripetendo gli stessi ragionamenti fatti all’inizio, troviamo da qui che lo spettro del segnale campionato è S C , ∆t ( f ) = 1 j2 πf∆t +∞ n e S f − ∑ TC TC n = −∞ Questo è dunque il segnale che mandiamo al filtro di ricostruzione. Quest’ultimo deve semplicemente isolare S(f) a partire da SC(f). Idealmente, deve perciò trattarsi del solito filtro passabasso ideale di banda pari a quella del segnale: se Sr(f) è l’esito del prodotto tra SC(f) e la funzione di trasferimento del filtro (supposto per il momento di banda generica D), abbiamo dunque che n f f j2 πf∆t +∞ S r , ∆t ( f ) = S C, ∆t ( f ) TC rect S f − = rect e ∑ TC 2D 2D n = −∞ Antitrasformando, possiamo supporre che l’operatore e j2 πf∆t corrispondente alla traslazione temporale sia applicato alla funzione di trasferimento del filtro: +∞ n f j2 πf∆t −1 s r , ∆t ( t ) = Fourier −1 rect e * Fourier ∑ S f − TC 2D n = −∞ L’antitrasformata di SC,∆t(f) è il segnale campionato, per cui f j2 πf∆t +∞ s r , ∆t ( t ) = Fourier −1 rect * ∑ s(nTC )δ( t − nTC ) e 2D n = −∞ Dato che l’antitrasformata di un rettangolo di altezza TC e base 2D è 2DTC sinc(2Dt ) , per cui +∞ +∞ sr ,∆t (t ) = ∑ s(nTC )δ(t − nTC ) * [2DTCsinc(2D(t + ∆t ))] = ∑ [s(nTC )δ(t − nTC )]* [2DTCsinc(2D(t + ∆t ))] = n = −∞ n = −∞ = +∞ ∑ 2DTCs(nTC )[(δ(t − nTC ))* (sinc(2D(t + ∆t )))] = n = −∞ +∞ ∑ 2DT s(nT )(sinc(2D(t + ∆t − nT ))) n = −∞ C C C Confrontando questa espressione con quella ottenuta in assenza della traslazione ∆t, si osserva che abbiamo ottenuto lo stesso segnale ricostruito, con uno sfasamento temporale che è sempre ∆t. Apparentemente, quindi, la matematica ci dice che la presenza della traslazione del pettine di campionamento non porta alcuna conseguenza, se non quella di traslare, nello stesso modo, il segnale ricostruito. Autore: Sandro Petrizzelli 32 Campionamento (parte I) In realtà, le cose non sono così semplici e lo possiamo vedere con ragionamenti molto più intuitivi, facendo ricorso ancora una volta al campionamento di una sinusoide. Consideriamo perciò una sinusoide a frequenza f0 (e periodo T0). Per rispettare il teorema del campionamento, dobbiamo campionare almeno a 2f0, ossia, in parole povere, dobbiamo prendere almeno 2 campioni per ogni periodo della sinusoide. Si tratta allora di capire se, qualunque sia la posizione dei due campioni (ovviamente equispaziati di TC) nel generico periodo, la ricostruzione del segnale sia possibile oppure no. E’ immediato rendersi conto che la cosa più sbagliata è quella di prendere i due campioni negli istanti t=0 e t=T0/2 (con riferimento al primo periodo della sinusoide8), ossia quando la sinusoide vale 0: in questo caso, infatti, otteniamo solo campioni nulli, per tutta la durata del campionamento, per cui il segnale che ricostruiremo, usando un qualsiasi filtro di ricostruzione, sarà sempre nullo. Se invece spostiamo di ∆t il pettine di campionamento, i nostri campioni (sempre con riferimento T al primo periodo della sinusoide) saranno in t=∆t ed in t = 0 + ∆t e quindi saranno sicuramente ≠0. 2 In questo caso, se il filtro di ricostruzione è ideale cioè con funzione di risposta all’impulso del tipo sin(t)/t, ci si rende conto facilmente che la ricostruzione non solo è possibile, ma è anche fedele, quale che sia il valore di ∆t. Quindi, nel campionamento di una sinusoide, nell’ipotesi di prendere fC=2f0 (cioè 2 campioni per periodo) e nell’ipotesi di usare un filtro di ricostruzione ideale, la ricostruzione è sempre possibile a patto di non campionare la sinusoide stessa negli istanti in cui vale 0: questo è l’unico caso in cui la ricostruzione dà un segnale identicamente nullo. Se, invece, prendiamo più di due campioni per periodo, ossia consideriamo fC>2f0, allora diventa ininfluente quando prendiamo i campioni, ossia diventa ininfluente la presenza di un ∆t nel pettine di campionamento. Passiamo adesso al caso in cui il filtro di ricostruzione non è più ideale. In particolare, possiamo far riferimento ancora una volta al filtro lineare (quindi con funzione di risposta all’impulso triangolare) usato dalla funzione PLOT del Matlab: 1 TC -TC t E’ chiaro che valgono sicuramente le stesse considerazioni fatte poco fa nel caso in cui prendiamo fC=2f0 (cioè 2 campioni per periodo) e scegliamo i campioni esattamente negli istanti in cui la sinusoide vale 0: abbiamo detto che, in questo caso, l’uscita del filtro di ricostruzione è comunque nulla comunque lo stesso filtro sia fatto. Consideriamo allora altre situazioni, aiutandoci direttamente con una simulazione. Prendiamo una sinusoide a f0=50 Hz, che cioè compie una oscillazione completa ogni 20 millisecondi (T0=20msec). Se rispettiamo il teorema del campionamento, dobbiamo campionare almeno a fC=100 Hz, ossia dobbiamo prendere almeno 2 campioni ogni 20 millisecondi, cioè 1 8 Data la periodicità sia del segnale da campionare sia del pettine di campionamento, il discorso vale per tutti i periodi della sinusoide 33 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 campione ogni 10 millisecondi (TC=10msec). Se facciamo in modo che, per ogni periodo, i due campioni corrispondano al massimo ed al minimo della sinusoide, otteniamo quanto segue: (l’asse delle ascisse indica la numerazione dei campioni). Come era logico aspettarsi, la funzione PLOT congiunge i punti di massimo e di minimo, generando un’onda triangolare con lo stesso periodo della sinusoide in ingresso. Se adesso, invece, spostiamo ancora il pettine di campionamento, per esempio anticipandolo, l’esito della ricostruzione è il seguente: La forma d’onda è ancora un’onda triangolare, ma di diversa ampiezza rispetto alla precedente, dato che sono stati presi punti diversi (sia pure simmetrici rispetto all’asse orizzontale). Abbiamo cioè mostrato, con un esempio intuitivo, che, campionando con il minimo numero di campioni e ricostruendo il segnale con un filtro non ideale, l’influenza della posizione temporale degli impulsi di campionamento è notevole. Se invece aumentiamo il numero di campioni per periodo, le cose migliorano. Ad esempio, ripetendo le ultime due simulazioni (cioè conservando gli stessi ∆t), ma con una frequenza di campionamento pari a 10 volte quella della sinusoide (quindi 10 campioni per periodo), i risultati sono i seguenti: Autore: Sandro Petrizzelli 34 Campionamento (parte I) Le due forme d’onda, adesso, somigliano molto di più sia tra loro sia alla sinusoide di partenza. L’unica differenza è, evidentemente, nella traslazione temporale che è diversa nei due casi. Prima di passare ad altro argomento, possiamo fare un’altra importante osservazione: abbiamo appena mostrato che, se ci manteniamo ben al di sopra dei limiti del teorema di campionamento (cioè prendiamo fC>2f0), la presenza di un ∆t nel pettine di campionamento non influenza in modo apprezzabile la ricostruzione, mentre invece l’influenza diventa molto maggiore se ci manteniamo ai limiti del teorema del campionamento o addirittura scendiamo al di sotto, cioè aliasiamo; allora, questo può essere un modo di capire se stiamo aliasando oppure no: data la sinusoide da campionare, della quale non conosciamo a priori la frequenza, eseguiamo il campionamento più volte, con diversi ∆t, e poi ricostruiamo: se, ricostruendo, otteniamo praticamente sempre la stessa cosa, significa che non c’è alias, cioè che stiamo effettivamente prendendo fC>2f0; altrimenti, se vediamo risultati diversi al variare del ∆t, significa che stiamo aliasando, per cui dobbiamo aumentare la frequenza di campionamento. Questo discorso, fatto nel caso di un segnale puramente sinusoidale, può chiaramente essere esteso a qualsiasi segnale, essendo quest’ultimo scomponibile come somma di infinite sinusoidi ed essendo il sistema in questione di tipo lineare. POSSIBILITÀ DI SOTTOCAMPIONAMENTO ED APPLICAZIONI Consideriamo un segnale s(t) avente il seguente spettro S(f): Figura 27 - Spettro di un segnale analogico passa-basso Indicando con B la banda (monolatera) del segnale, dovremmo campionare con una frequenza di campionamento pari almeno a 2B. Supponiamo invece di non poterci permettere questa scelta e invece di essere obbligati a campionare proprio a fC=B. Sappiamo ormai bene che questo 35 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 sottocampionamento9 produce l’aliasing, ossia produce, nello spettro del segnale campionato, la sovrapposizione parziale delle repliche spettrali: Figura 28 - Campionamento del segnale di fugura 27: il mancato rispetto del teorema del campionamento provoca la sovrapposizione delle repliche spettrali L’effetto dell’aliasing è evidente: in banda base, cioè nell’intervallo di frequenze corrispondente allo spettro del segnale s(t) di partenza, per alcune frequenze troviamo il termine di nostro interesse, facente parte cioè di S(f), cui però è sommato un termine (indicato come disturbo) dovuto alla replica adiacente. Analiticamente, possiamo cioè scrivere che, alla frequenza f in questione, lo spettro del segnale campionato vale S C (f ) = S(f ) + S(f − f C ) Consideriamo in questo caso solo il contributo di S(f − f C ) in quanto, in banda base (e con riferimento solo alle frequenze positive, dato che per quelle negative vale l’esatto simmetrico) l’unico termine di disturbo è proprio S(f − f C ) . Ci chiediamo allora se, pur non potendo campionare a frequenza maggiore di fC=B, cioè pur non potendo rispettare il teorema del campionamento, possiamo ugualmente sperare di ricostruire il segnale. La risposta a questa domanda è affermativa e si basa su uno schema di principio schematizzato nella figura seguente: S(f) SC1(f) H1 (f) fC=B SC2(f) H2 (f) fC=B In pratica, noi prendiamo il nostro segnale s(t) e lo mandiamo in due diversi rami, in cui esso viene elaborato da due filtri, per il momento non precisati, con funzioni di trasferimento H1(f) e H2(f). Le uscite di questi due filtri, in termini di spettro, sono dunque rispettivamente H1(f)S(f) e H2(f)S(f). Questi sono i due segnali che andiamo effettivamente a campionare, mediante due campionatori (ideali) a frequenza fC=B. I due segnali campionati che così otteniamo sono entrambi nelle condizioni descritte prima: ognuno di essi, cioè, possiede, in banda base, la replica spettrale di 9 In questo caso, dato che campioniamo a metà della frequenza minima che sarebbe necessario adottare, il sottocampionamento è di un fattore 2. Autore: Sandro Petrizzelli 36 Campionamento (parte I) interesse, cui si sovrappone un disturbo, rappresentato dalla replica spettrale adiacente, centrata in fC. Analiticamente, possiamo perciò scrivere che S C1 (f ) = H 1 (f )S(f ) + H 1 (f − f C )S(f − f C ) S C 2 (f ) = H 2 (f )S(f ) + H 2 (f − f C )S(f − f C ) I termini dovuti all’aliasing sono dunque H 1 (f − f C )S(f − f C ) per il primo ramo e H 2 (f − f C )S(f − f C ) per il secondo. Il nostro obbiettivo è quello di ottenere S(f). L’unica possibilità è quella di poter ricavare S(f) ed S(f-fC). Da un punto di vista analitico, questi due termini possono essere ottenuti semplicemente risolvendo quel sistema. Si tratta allora di imporre che quel sistema ammetta una soluzione diversa da quella banale, il che accade se la matrice dei coefficienti è invertibile, ossia ha determinante diverso da zero. Ricavando allora l’espressione del suddetto determinante, otteniamo la seguente condizione da imporre: H 1 ( f ) H 1 (f − f C ) ≠0 H 2 (f ) H 2 (f − f C ) Esplicitando, otteniamo evidentemente che H 1 (f ) H 2 ( f − f C ) ≠ H 1 ( f − f C ) H 2 ( f ) → H 1 (f ) H 2 (f ) ≠ H 1 ( f − f C ) H 2 (f − f C ) Naturalmente, a noi non interessa che questa condizione sia verificata per tutte le frequenze, ma f f solo nella banda di interesse, che è − C , C . 2 2 Se allora imponiamo quella condizione per le suddette frequenze, ossia scegliamo i due filtri H1(f) e H2(f) in modo da soddisfare la condizione, il sistema diventa risolvibile e riusciamo a ricavare S(f) e S(f-fC) a partire da SC1(f) e SC2(f). Abbiamo quindi ottenuto che, pur sottocampionando, possiamo ricavare S(f) a patto di dimensionare opportunamente i filtri H1(f) e H2(f). Si possono fare altre due considerazioni: • la prima, peraltro già accennata prima, è che, nel discorso fatto, abbiamo considerato l’asialing dovuto solo alla replica spettrale posizionata in fC; questo è dovuto proprio al fatto di aver considerato il caso particolare di un campionamento a frequenza metà di quella imposta dal teorema del campionamento. E’ chiaro che sottocampionando con un fattore maggiore di 2, l’aliasing coinvolge più repliche spettrali. In generale, allora, se si sovrappongono N repliche (quindi abbiamo preso fC=2B/N), sarà necessario fare N misure, ossia progettare N filtri H1(f), H2(f),... ,HN(f), in modo da ottenere (a livello analitico) un sistema di N equazioni (una per ogni ramo dello schema) nelle N incognite S(f),S(f-fC),S(f-2fC),...,S(f-(N-1)FC). In questo caso, il determinante che deve essere imposto non nullo è dunque di ordine N; • la seconda considerazione riguarda proprio il determinante della matrice dei coefficienti del sistema: la condizione da imporre non è solo che esso sia diverso da zero, ma anche che sia abbastanza grande in modulo. Il motivo è nella presenza del rumore: infatti, tenendo conto che il determinante compare a denominatore nella soluzione del sistema, esso contribuisce di fatto a pesare sia le componenti di segnale in uscita sia quelle di rumore; allora, se il determinante è troppo piccolo, i termini di rumore rischiano di diventare di livello troppo elevato, mentre 37 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 sappiamo che essi vanno mantenuti al minimo livello possibile. Ottenendo un determinante abbastanza grande, il rumore può essere mantenuto entro limiti accettabili. Consideriamo adesso due applicazioni concrete del procedimento appena esposto. Una prima applicazione si ottiene considerando i seguenti due filtri: H 1 (f ) = 1 ( trasduttore) H 2 (f ) = j2πf (derivatore) Calcolando il determinante della matrice dei coefficienti del sistema, otteniamo det = H 1 (f )H 2 (f − f C ) − H 1 (f − f C )H 2 (f ) = j2π(f − f C ) − j2πf = − j2πf C ≠ 0 Avendo trovato un determinante non nullo, deduciamo che i due filtri fanno al caso nostro, ossia ci consentono di ricavare S(f). In realtà, c’è da osservare che il filtro H2(f) non potrà mai essere un derivatore ideale e, tra l’altro, questo è per noi un bene, in quanto, se fosse un derivatore ideale, il modulo della sua funzione di trasferimento avrebbe il seguente andamento: |H2 (f)| f Figura 29 - Funzione di trasferimento di un derivatore ideale In questo caso, il filtro amplificherebbe anche le alte frequenze, dove però abbiamo solo rumore, il che ovviamente non ci va bene. Allora, dato che la condizione det≠0 ci serve che sia verificata solo fino alla frequenza di Nyquist fC/2, ci va bene un filtro con una funzione di trasferimento del tipo seguente: |H2 (f)| f fC/2 Figura 30 - Funzione di trasferimento di un derivatore reale adatto ai nostri scopi. Il disegno è “stilizzato”, in quanto, nella pratica, l’andamento decrescente a partire da fC/2 è molto più lento Autore: Sandro Petrizzelli 38 Campionamento (parte I) Un altro caso che possiamo considerare è quello in cui H1(f) continua ad essere un trasduttore, mentre H2(f) è un ritardatore: H 1 (f ) = 1 H 2 (f ) = e − j2 πfτ ( trasduttore) (ritardatore puro) In questo caso, il determinante della matrice è il seguente: ( ) det = H 1 (f )H 2 (f − f C ) − H 1 (f − f C )H 2 (f ) = e − j2 π (f −f C )τ − e − j2 πfτ = e − j2 πfτ e j2 πf C τ − 1 = ( ) = e j2 πf C τ − 1 (cos(2πfτ) − jsin (2πfτ)) E’ evidente che, in questo caso, il determinante non si annulla mai, in quanto il primo termine tra parentesi è una costante non nulla, mentre, per il secondo termine, la parte reale e la parte immaginaria non si annullano mai per lo stesso valore di frequenza. Questo però è un tipico caso in cui possiamo avere dei problemi da valori del determinante non troppo elevati. ESERCIZIO Restiamo adesso sempre nell’ambito del sottocampionamento, considerando una situazione in qualche modo legata a quanto detto nel paragrafo precedente. Consideriamo ancora un segnale s(t) avente il seguente spettro S(f): Se B è la banda (monolatera) del segnale, dovremmo campionare con una frequenza di campionamento pari almeno a 2B, mentre invece supponiamo di campionare ancora una volta a fC=B. Il risultato è ancora una volta la sovrapposizione delle repliche spettrali di S(f) di cui è composto il segnale campionato. Adesso supponiamo di ripetere il campionamento del segnale, con la stessa frequenza fC, ma sfasando i campioni, rispetto ai campioni precedenti, esattamente di TC/2 secondi: 2° campionamento 1° campionamento t TC 39 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 Sia per il primo sia per il secondo campionamento, non avendo in alcun caso rispettato il teorema del campionamento, i campioni ottenuti non ci danno una descrizione precisa del segnale, in quanto portano entrambi all’aliasing descritto prima. D’altra parte, è abbastanza lecito aspettarsi che, intercalando i due insiemi di campioni come nella prossima figura, noi otteniamo un segnale frutto di un campionamento a frequenza doppia rispetto a quello seguito nei due campionamenti realmente eseguiti: campionamento a frequenza doppia t TC In questo caso, noi abbiamo rispettato il teorema del campionamento, per cui ci aspettiamo di poter ricostruire perfettamente il segnale di partenza. Vediamo se è veramente così, sfruttando la matematica. Per prima cosa, dobbiamo capire come realizzare, nella pratica, i due campionamenti appena descritti, entrambi ad una frequenza metà della frequenza richiesta dal teorema del campionamento: S(f) SC1(f) H 1 (f) fC SC2(f) H 2 (f) fC Per quanto riguarda il primo campionamento, che supponiamo parta all’istante t=0, non abbiamo problemi, in quanto possiamo inviare al campionatore direttamente il segnale s(t). Per quanto riguarda, invece, il secondo campionamento, abbiamo due possibilità: • la prima è ritardare di TC/2 l’inizio del campionamento, in modo che il secondo campionatore cominci a funzionare a partire da t=TC/2; questa scelta equivale quindi a spostare di TC il pettine di campionamento, ma abbiamo visto che, quando siamo ai limiti o al di sotto del teorema di campionatore, questo provoca dei grossi problemi nel caso in cui il filtro di ricostruzione non sia ideale; • la seconda possibilità è allora quella di spostare nel tempo il segnale s(t), prima di inviarlo al campionatore, in modo che il campionamento abbia inizio nell’istante da noi desiderato. Possiamo allora procedere nel modo seguente: supponendo che i due campionatori partano nello stesso istante, non abbiamo altra possibilità se non quella di “anticipare” il segnale di TC/2, in modo che, nell’istante in cui il campionatore del ramo inferiore parte, prelevi, come primo campione, quello a t=TC/2. Autore: Sandro Petrizzelli 40 Campionamento (parte I) S(f) SC1(f) Q fC SC2(f) ritardo Q TC/2 fC Fissato dunque il modo di operare, possiamo procedere all’analisi analitica. Per quanto riguarda il ramo superiore, non abbiamo da fare passaggi diversi da quelli svolti fin qui, per cui scriviamo direttamente che il segnale campionato è +∞ sC1 ( t ) = s( t ) ∑ δ( t − nTC ) infrequenza → SC1 (f ) = n = −∞ 1 TC +∞ n = −∞ n C ∑ S f − T dove ricordiamo che TC è il periodo di campionamento prescelto, pari al doppio di quello che in realtà ci servirebbe per rispettare il teorema del campionamento. Per quanto riguarda, invece, il ramo inferiore, abbiamo detto che dobbiamo anticipare s(t) in modo da prelevare, come primo campione, quello relativo all’istante t=TC/2: ciò significa, evidentemente, anticipare il segnale di TC/2, per cui il segnale campionato è T +∞ j2 πf C n TC +∞ in frequenza 2 sC2 (t) = s t + ∑δ(t − nTC ) →SC2 (f ) = S(f )e * ∑ δ f − 2 n=−∞ TC n=−∞ E’ immediato rendersi conto di quale sia il risultato di quel prodotto di convoluzione: n 1 +∞ n jπ f −TC TC 1 +∞ n SC2 (f ) = S f − e = S f − e jπfTC e jπn ∑ ∑ TC n=−∞ TC TC n=−∞ TC jπn Il termine esponenziale (complesso) e , se sviluppato in forma trigonometrica (cioè come somma di un coseno e di un seno in quadratura) vale (-1)n, per cui concludiamo che SC2 (f ) = 1 +∞ n (−1)n S f − e jπfTC ∑ TC n=−∞ TC A questo punto, dati i due segnali campionati, dobbiamo intercalarli nel modo descritto prima: 41 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 2° campionamento 1° campionamento t TC Si tratta allora di sommare sC1(t) e sC2(t), dopo aver però ritardato quest’ultimo, nel tempo, nuovamente di TC/2: T 1 +∞ n 1 − j2πf 2C +∞ n jπfTC T n sC1 (t) + sC2 t − infrequenza →STOT(f ) = S f − + e ( − 1 ) S f − ∑ ∑ T e TC n=−∞ TC TC 2 n=−∞ C E’ evidente che, nella seconda sommatoria, i due esponenziali si elidono, per cui abbiamo quanto segue: 1 +∞ n 1 +∞ n 1 +∞ n n n n STOT(f ) = S f ( 1 ) S f S f ( 1 ) S f + − − = − + − − − ∑ ∑ T T T ∑ T TC n=−∞ TC TC n=−∞ C C n=−∞ C C dove abbiamo tenuto conto del fatto che le due sommatorie usano lo stesso indice e lo stesso intervallo di valori. A questo punto, si tratta di capire cosa accade ai termini della sommatoria al variare di n: si osserva allora facilmente che il termine (-1)n fa in modo che i termini con n dispari si elidano, mentre quelli con n pari si sommino, dando perciò come risultato finale lo spettro STOT(f ) = 2 +∞ 2n ∑ Sf − TC n=−∞ TC Questo segnale è proprio quello ottenibile campionando s(t) a passo TC/2, ossia a frequenza doppia di quella usata realmente dai due campionatori. Abbiamo cioè ottenuto quello che volevamo, ossia adottare due sottocampionamenti, opportunamente spostati nel tempo uno rispetto all’altro, per giungere ad un unico segnale campionato che rispetti il teorema del campionamento. Facciamo osservare che questo modo di procedere vale in generale, non solo quando prendiamo TC pari a metà di quanto imposto dal teorema del campionamento. In altre parole, possiamo adottare questo procedimento anche quando scegliamo un TC che rispetti il teorema del campionamento: il vantaggio è in ogni caso quello di campionare a frequenza metà. Non solo, ma nessuno ci impedisce di estendere lo schema, aggiungendovi più rami, in modo da ridurre ulteriormente la frequenza di lavoro di ciascun campionatore: ad esempio, se usassimo 4 rami, potremmo permetterci di campionare ad un periodo TC che sia 4 volte più piccolo di quello richiesto del teorema del campionamento: Autore: Sandro Petrizzelli 42 Campionamento (parte I) S(f) Q fC ritardo Q TC/2 fC ritardo Q TC/3 fC ritardo Q TC/4 fC E’ evidente che la struttura da realizzare è tanto più complessa quanto maggiore è il numero di rami, tenendo anche conto che, in sede di ricostruzione, servirà anche la circuiteria necessaria ad intercalare, nel modo opportuno, i vari segnali campionati. D’altra parte, il vantaggio è proprio quello di poter usare campionatori più lenti, tanto più lenti quanto maggiore è il numero di rami. Da notare anche che i maggiori benefici, in questo schema, sono tratti dai quantizzatori: infatti, si suppone di dover usare uno schema di questo tipo solo perché non si può disporre di campionatori più veloci, per cui i campionatori stessi lavorano comunque al massimo delle proprie prestazioni; al contrario, i quantizzatori si trovano a dover funzionare a frequenza minore, tanto minore (ancora una volta) quanto maggiore è il numero di rami. OSSERVAZIONE: POSSIBILITÀ DI NON USARE IL CAMPIONATORE Sappiamo bene che la conversione di un segnale da analogico a digitale prevede essenzialmente due passi: il campionamento, con tutte le considerazioni fatte nei precedenti paragrafi, e la successiva quantizzazione, secondo lo schema seguente: s(t) SC(f) Filtro anti-alias Q Registro fC Se ci poniamo nel caso ideale, il campionatore tira fuori dei numeri (delle misure) che il quantizzatore provvede a convertire in gruppi di bit da immagazzinare in un apposito registro. Ci sono dei casi in cui si può pensare di evitare l’uso del campionatore. Consideriamo infatti come funziona il quantizzatore: esso riceve un segnale elettrico, fornito dal classico dispositivo a campionamento e tenuta, e lo converte in bit; questo segnale elettrico, mantenuto costante dal campionatore per un certo intervallo di tempo (pari al periodo di campionamento TC) rappresenta il 43 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 valore del segnale nell’istante di campionamento considerato; allora, se siamo nelle condizioni per cui, durante un intervallo temporale di durata TC, il segnale s(t) non cambia, il campionatore diventa inutile, in quanto il quantizzatore riceve comunque un valore costante in ingresso. In questo caso, quindi, ci basta effettuare una regolazione elettronica del registro che riceve i bit dal quantizzatore. Quindi, nel caso di segnali abbastanza lenti rispetto al periodo di campionamento che si è scelto, possiamo anche non usare il campionatore, la cui funzione è resa superflua dal fatto, appunto, che il segnale varia pochissimo in ciascun periodo TC. Ovviamente, laddove il segnale s(t) subisca variazioni apprezzabili in ciascun periodo TC, allora non possiamo proprio fare a meno del dispositivo che misura s(t) stesso negli istanti di campionamento. EFFETTI DELLA NON-IDEALITÀ DEL CAMPIONATORE Riprendiamo nuovamente la formula matematica con cui abbiamo espresso il segnale campionato, ossia il segnale all’uscita dal campionatore: s C (t) = +∞ +∞ n = −∞ n = −∞ ∑ s(nTC )δ(t − nTC ) = s(t) ∑ δ(t − nTC ) Si tratta del prodotto tra il segnale analogico da campionare ed il cosiddetto pettine di campionamento. Quest’ultimo è una successione di infiniti (teoricamente) impulsi che servono a prelevare, negli istanti di campionamento prescelti, i campioni del segnale s(t). In pratica, quindi, il pettine di campionamento rappresenta il comportamento del campionatore, che, ogni TC secondi, preleva il valore assunto dal segnale. L’uscita del campionatore è il segnale sC(t) costituito da una forma d’onda che, in ogni istante, assume il valore di s(t) in quello stesso istante. Questo ragionamento, sul quale noi abbiamo basato i discorsi di tutti i precedenti paragrafi, si fonda dunque sull’ipotesi di avere a disposizione un campionatore ideale, che legga istantaneamente il valore di s(t) negli istanti prescelti per il campionamento. Se volessimo rappresentare, a livello circuitale, questo dispositivo, potremmo farlo nel modo seguente: Il generatore rappresenta il segnale s(t) a campionare. L’interruttore ed il condensatore modellano invece il campionatore: quando l’interruttore si chiude, la tensione ai capi del condensatore assume il valore assunto da s(t); se l’interruttore ha una chiusura istantanea10, la tensione sul condensatore si mantiene costante, sul valore letto all’atto della chiusura dell’interruttore, fino alla successiva lettura. Si tratta perciò del classico dispositivo a campionamento e tenuta, nel senso che l’uscita del dispositivo è un valore di tensione che si mantiene costante dopo ogni chiusura dell’interruttore. 10 cioè si chiude e si riapre dopo appena un istante Autore: Sandro Petrizzelli 44 Campionamento (parte I) L’analisi circuitale di quel circuito porta all’espressione di sC(t) prima riportata solo nell’ipotesi in cui tutti e 3 gli elementi presenti siano ideali, il che non avviene mai. Cerchiamo allora di capire cosa accade quando l’interruttore ed il condensatore non sono ideali11. Dire che l’interruttore (cioè il campionatore) non è ideale significa dire che, una volta chiuso, esso non si riapre istantaneamente, ma rimane chiuso per un certo intervallo di durata τ. Se il condensatore fosse ideale, non avremmo molta differenza rispetto a prima, in quanto la tensione a cui il condensatore rimane carico, dopo che l’interruttore si è finalmente aperto, sarebbe quella dell’istante precedente all’apertura stessa. In realtà, nemmeno il condensatore è ideale: nel complesso, succede che l’operazione di campionamento non sia più una lettura istantanea dei valori assunti da s(t), ma una media temporale di s(t) nell’intervallo di durata τ. In parole povere, il campionatore reale si comporta ancora come un dispositivo a tenuta, che cioè mantiene invariato il valore della tensione in uscita fino al successivo istante di campionamento, ma tale valore non è quello istantaneo di s(t) nell’istante kTC (con k generico), ma una media temporale di s(t) compiuta nell’intervallo [kTC , kTC + τ] . Mentre, quindi, a livello ideale, dovremmo ottenere, per il k campione, che s C (k ) = s(kTC ) , nella realtà ciò che otteniamo è kTC ~s (k ) = 1 s( t )dt C τ kT∫C − τ L’interruttore si apre effettivamente in kTC, rilasciando un certo valore di tensione, ma effettua la misura per un intervallo τ, per cui fa una media di s(t) in tale intervallo e la fornisce come campione12. Cerchiamo allora di capire, sulla base di queste considerazioni, come sia fatto realmente il segnale in uscita dal campionatore. Ci basta, in fin dei conti, ricavare la funzione di risposta all’impulso del campionatore. In pratica, il campionatore moltiplica il segnale s(t) in ingresso non più per un pettine di impulsi ideali, per un pettine di impulsi rettangolari di altezza unitaria e durata τ: τ TC t t τ Figura 31- Schematizzazione del funzionamento di un campionatore reale: il campionatore ha un tempo di chiusura non infinitesimo (per quanto piccolo) e questo è modellabile tramite un pettine di campionamento formato da impulsi rettangolari di durata τ (che, ovviamente, dovrà essere quanto più piccolo possibile rispetto al periodo di campionamento TC) 11 Per quanto riguarda il generatore, trattarlo come ideale significa assumere nulla la resistenza serie (oppure infinita la resistenza parallelo se consideriamo la rappresentazione di Norton, ossia mediante il generatore di corrente). 12 Esteso il discorso a tutta la durata del campionamento, possiamo dire che il campionatore esegue una media temporale a finestra mobile, dove tale finestra dura τ secondi. 45 Autore: Sandro Petrizzelli Appunti di “Elaborazione numerica dei segnali” - Capitolo 1 E’ facile verificare che la funzione di risposta all’impulso di questo dispositivo è un rettangolo, di durata τ ed altezza 1/τ (quindi di area unitaria) che comincia in t=0: Figura 32- Risposta all’impulso e corrispondente funzione di trasferimento di un campionatore reale Infatti, indicando con h(t) la suddetta risposta all’impulso (rappresentata nella figura insieme al suo spettro), si ha evidentemente che l’uscita del dispositivo, calcolata come convoluzione dell’ingresso s(t) per h(t), è +∞ +∞ t 1 1 = = α − α α = α − α α = u ( t ) s( t ) * h ( t ) ∫ s( )h ( t )d s( ) h ( t )d s(α)dα ∫ ∫ τ τ −∞ −∞ t −τ Calcolando questa funzione in t=kTC, si ottiene proprio kT 1 C u ( t = kTC ) = s(α)dα = ~sC (k ) τ kT∫C − τ Nota la risposta all’impulso, è nota anche la funzione di trasferimento, la quale, come sappiamo e come è indicato nella figura precedente, è ancora una volta del tipo sin(f)/f, con il primo zero in 1/τ. Siamo allora in grado di capire quale effetto abbia il campionatore non ideale sul nostro segnale: l’effetto di un filtraggio passa-basso. Se vogliamo che tale effetto sia minimo, abbiamo una sola possibilità: fare in modo che le componenti spettrali del segnale s(t) in ingresso siano concentrati nella regione di H(f) maggiormente piatta, ossia alle basse frequenze: questo significa richiedere la condizione 1 B << τ dove ovviamente B è la banda (monolatera13) di s(t). D’altra parte, l’importanza di questa condizione si può capire, in modo molto intuitivo, nel tempo: 1 1 infatti, la condizione B << equivale anche a τ << , il che significa che il tempo di chiusura B τ dell’interruttore deve essere sufficientemente più piccolo delle variazioni temporali del segnale s(t). In questo modo, se cioè il segnale subisce solo una minima variazione durante l’intervallo di durata τ, la media su tale intervallo sarà un’ottima approssimazione del segnale; al contrario, se il segnale subisse notevoli variazioni durante l’intervallo τ, la media temporale sarebbe una descrizione 13 Per “monolatera” intendiamo semplicemente la massima frequenza positiva del segnale. Autore: Sandro Petrizzelli 46 Campionamento (parte I) estremamente povera (il che corrisponde appunto ad un effetto passa-basso, cioè a non tenere traccia delle alte frequenze). A questo punto, avendo capito quale effetto abbia il campionamento non ideale sul segnale s(t), possiamo proporre un modello molto semplice del campionatore stesso: possiamo pensarlo, infatti, come la cascata di un filtro passa-basso con funzione di trasferimento del tipo sin(f)/f e di un campionatore ideale: s(t) sC(t) s(t) sC(t) τ t fC fC In questo modo, riusciamo a dare ancora una descrizione del segnale in uscita come prodotto di una forma d’onda analogica sF(t) per un pettine di impulsi ideali di campionamento, dove però la forma d’onda analogica sF(t) tiene conto dell’effetto passa-basso subito dal segnale originale s(t). Per concludere con questo argomento, possiamo considerare un primo tipo di applicazione di tecniche numeriche: abbiamo detto che il campionatore reale ha un effetto passa-basso sul segnale s(t) da campionare; misurare l’intervallo di chiusura τ del campionatore non è difficile, per cui noi siamo in grado di conoscere, con buona precisione, la funzione di trasferimento del campionatore e quindi conosciamo l’attenuazione subita dalle varie componenti di s(t). Possiamo allora pensare, dopo che è stata effettuata la numerizzazione del segnale, di compensare la suddetta attenuazione: s C(t) s(t) τ t Q DSP fC Con tecniche numeriche siamo in grado di riportare su le componenti spettrali che sono state precedentemente attenuate. Ovviamente, c’è un problema, legato al rumore: infatti, con questa operazione numerica, è vero che riusciamo a compensare l’attenuazione sul segnale, ma è anche vero che sagomiamo il rumore in modo da esaltare le alte frequenze14. Allora, questa operazione numerica può dare risultati apprezzabili solo quando l’attenuazione che si deve compensare è di pochi dB, altrimenti si corre il rischio di esaltare eccessivamente il rumore. D’altra parte, ci possono essere dei casi, come quello del segnale televisivo, nei quali il rumore in alta frequenza dà molto meno fastidio di quello in bassa frequenza, per cui una esaltazione delle alte frequenze di rumore potrebbe comunque essere tollerabile: noi ricaveremmo un miglioramento del segnale utile ed un peggioramento del rumore che però non percepiamo, per cui non ci dà alcun fastidio. Autore: SANDRO PETRIZZELLI e-mail: [email protected] sito personale: http://users.iol.it/sandry succursale: http://digilander.iol.it/sandry1 14 Infatti, il segnale digitalizzato è sempre la sovrapposizione del segnale utile e dell’immancabile rumore: non essendo possibile distinguere i due segnali, l’operazione di compensazione dell’attenuazione comporta l’esaltazione delle alte frequenze sia sul segnale sia sul rumore; sul segnale, l’operazione ci va bene, in quanto appunto compensa l’attenuazione introdotta precedentemente, mentre sul rumore non ci va bene. 47 Autore: Sandro Petrizzelli