Sei sulla pagina 1di 2

Vediamo di ripercorrere quanto fatto nell'ultima lezione di Taensm.

Il docente, m Daniele Galante, ci ha guidati all'interno del cepstrum,(nitrito di cavalli) ovvero lo "spettro dello spettro", uno strumento di analisi che pu esse re utilizzato per stimare la frequenza di un segnale periodico o pseudoperiodico . Se ben ricordo, ci ha riassunto cos il procedimento per ottenere il cepstrum: -si parte da un segnale nel dominio del tempo -lo si finestra come meglio si crede -si fa la trasformata di fourier del segnale originale, ottenendone lo spectrum, siamo cos nel dominio della frequenza -si prende il logaritmo del modulo dello spectrum e si fa la trasformata di four ier di quest'ultimo, ottenendo il cepstrum. Arriviamo cos nuovamente nel dominio del tempo; non trattandosi per di un dominio del tempo analogo a quello cui siamo abituati, lo chiamiamo dominio delle quefrenze. L'implementazione in matlab di tutto quanto detto finora abbastanza semplice: vedi allegato cepstrum0.m . Dal grafico prodotto da cepstrum0, non si capisce ancora granch, ma di fatto non sappiamo ancora cosa dobbiamo aspettarci(il motivo per cui non si vede granch che non abbiamo settato degli assi appropriati). Di certo per possiamo gi fare delle osservazioni: 1- notare che il grafico dello spectrum e del cepstrum hanno ENTRAMBI le caratte ristiche tipiche di uno spettro: sono centrosimmetrici , ovvero la met di sinistr a lo specchio della met di destra. Questo ci porta alla seguente osservazione: 2 - per comprendere cos' il cepstrum bisogna ricordarsi che esso la fft dello spe ttro. In pratica pu convenire questo stratagemma: fingiamo che lo spettro (il sec ondo subplot) sia un segnale nel dominio del tempo, e che il cepstrum(terzo subp lot) sia la sua analisi spettrale. Si vede nel nostro caso che lo spettro un seg nale pseudoperiodico, che assomiglia in qualche maniera ad un'onda triangolare. Il grafico della fft di una onda triangolare nel dominio del tempo sarebbe una s erie di picchi equispaziati di ampiezza decrescente, che quello che possiamo int ravedere nel terzo subplot. 3 - Se ben notiamo, il primo "bin" del cepstrum ha un valore molto elevato (6000 circa). Se continuiamo con lo stratagemma di considerare il secondo grafico com e se fosse nel dominio del tempo, e il terzo come se fosse la sua analisi in fre quenza, questo facilmente spiegabile notando che la forma d'onda rappresentata n el secondo subplot non centrata sullo zero, il che significa che ha una forte co mponente continua, che ritroviamo nella sua analisi spettrale (terzo grafico). N on vale la pena cercare di eliminare questa componente continua dallo spectrum, anche perch si rischierebbe di alterare la parte significativa. Conviene piuttost o (e cos faremo d'ora innanzi) evitare di mostrare i primi bin, che peraltro non ci servono ad alcunch, nel grafico del cepstrum. Notare che per evitare confusion e, l'asse x non in secondi ma in campioni. Veniamo ora al secondo file allegato: cepstrum1.m . Qui nel secondo subplot sett iamo gli assi in maniera da vedere lo spettro fino a Nyquist. Nel terzo subplot (quello del cepstrum) invece impostiamo gli assi in modo da non vedere la compon ente continua, e di vedere invece in dettaglio quello che succede nella zona di nostro interesse, laddove prima si vedevano quei piccoli picchi via via pi bassi. Ora che abbiamo zoomato, vediamo chiaramente che questi picchi sono periodici, come ci aspettavamo. Per averne conferma, usiamo la funzione peaks che allego, come faccio nel file c epstrum2.m . Questa funzione trova i massimi locali sopra una certa specificata soglia. Guardando il grafico si vedono gli asterischi rossi individuati da peaks (). Sul terminale compaiono gli indici corrispondenti ai massimi individuati. Si nota che stato individuato un picco all'indice 21, che ancora nella parte inizi ale (rumorosa) del cepstrum, e va pertanto ignorato. Tutti gli altri picchi indi viduati come si vede sono equispaziati di 147 campioni. Questo significa che di fatto le linee che vediamo nel cepstrum sono periodiche, com'era lecito aspettar si visto che questo non altro che lo spettro del subplot 2, che una funzione pse

udoperiodica. Bene, giunti a questo punto possiamo concentrarci sul motivo per cui abbiamo ini ziato tutto ci: la frequency estimation. Il m Galante ci ha dato questo suggerimento: la frequenza del segnale analizzato f=fs/samples dove samples il numero del "bin di quefrenze" del primo picco non d ovuto alla componente continua. Nel nostro caso, dunque, il primo picco all'indi ce 148 del cepstrum. Purtroppo a causa di una idiosincrasia di octave, in realt q uesto indice corrisponde al bin di quefrenze numero 147, dunque la frequenza sti mata dall'analisi cepstrale : f=fs/c = 44100/147=300 . Bingo! Come ci spieghiamo tutto ci? Notare che in cepstrum2.m ho variato gli assi dei pr imi due subplot, per meglio comprendere le seguenti considerazioni. subplot1: Il segnale periodico preso in considerazione ha tutte le parziali superiori che via via si attenuano(1/k). Il periodo di questo segnale - nel dominio del tempo - di t1=1/frq=0.0033 secondi subplot2: questo segnale genera uno spettro in cui le righe relative alle componenti sono equispaziate(periodiche). Poich consideriamo la magnitudine in scala logaritmica, l'attenuazione non risulta tanto evidente quanto sarebbe se la scala fosse line are. Il periodo di questo segnale - nel dominio delle frequenze - , ovvero lo sp azio tra ogni "riga verticale", l'inverso del precedente, ovvero t2=1/t1=frq=300 Hz. subplot3: questo il cepstrum, ovvero lo spettro del subplot2. Visto che il segnale del sub plot2 ha molte meno parziali del segnale di partenza, dovremo aspettarci uno spe ttro le cui parziali sono meno e pi attenuate. Analogamente a quanto successo pas sando dal subplot1 al subplot2, anche qui il periodo - ovvero la distanza fra le righe verticali - l'inverso del periodo del segnale analizzato, ovvero t3=1/t2= 1/frq=t1=0.0033secondi. Nel grafico i valori dell'asse x sono riportati per como dit in campioni. Basti ricordare l'equivalenza samples=t*sinc=t*fs. Abbiamo dunque capito che nel nostro caso il cepstrum un segnale pseudoimpulsivo con inviluppo negativo(ogni impulso pi basso del precedente), che ha lo stesso p eriodo del segnale di partenza. (Dico nel nostro caso perch il risultato ottenuto dipende moltissimo dal tipo di segnale analizzato, e il caso da noi utilizzato abbastanza ideale). Nel caso in cui la frequenza del segnale di partenza non fos se nota, questa potrebbe essere stimata attraverso l'analisi cepstrale, e calcol ando poi la frequenza del cepstrum con la succitata formula del m Galante, che or a ci risulta molto pi chiara: f=samples/fs dove samples il numero del campione cui corrisponde il primo picco non sullo zer o e non "rumoroso".(ricordare sempre che il numero del campione inferiore di uno all'indice del vettore di octave) Poich abbiamo detto che cepstrum un segnale ps eudoimpulsivo periodico, samples anche la distanza(ovvero la differenza) tra cia scuna coppia di picchi consecutivi.