1 / 12

Riconoscimento frequenze di note musicali

Riconoscimento frequenze di note musicali. Corso ESIM Prof. P. Daponte. Gruppo di lavoro: Mario Calì 195/001418 Marco Gallucci 195/001241 Roberto De Falco 195/001429 Eugenio Macchia 195/001134. Problema. Riconoscere una nota musicale utilizzando il ‘C6711 DSK’ .

sagira
Download Presentation

Riconoscimento frequenze di note musicali

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Riconoscimento frequenze di note musicali Corso ESIM Prof. P. Daponte Gruppo di lavoro: Mario Calì 195/001418 Marco Gallucci 195/001241 Roberto De Falco 195/001429 Eugenio Macchia 195/001134

  2. Problema • Riconoscere una nota musicale utilizzando il ‘C6711 DSK’

  3. Musica, note e frequenze (1) Con l'espressione Nota Musicale si intendono fondamentalmente due cose: • il segno con cui si rappresentano i suoni usati nella musica • due note, di cui una ha frequenza doppia rispetto all'altra, che sembrano molto simili e di conseguenza sono comunemente chiamate con lo stesso nome. L'intervallo determinato da queste note è detto ottava

  4. Musica, note e frequenze (2) • si è consolidato l'uso di dodici note per ottava • il La4 corrisponde a una frequenza acustica di 440 Hz. Ogni nota è separata dal La4 da un numero intero di semitoni. E ogni 12 semitoni si ha un raddoppio di frequenza.

  5. Strumenti matematici • Per operare l’analisi in frequenza di un segnale è possibile ricorrere alla Trasformata discreta di Fourier (DFT) • La DFT è definita dalla formula • per q = 0, 1, ..., N-1.Calcolare direttamente questa somma richiede una quantità di operazioni aritmetiche O(N2). Un algoritmo FFT ottiene lo stesso risultato con un numero di operazioni O(n log(n))

  6. Fast Fourier Transform • L'algoritmo FFT più diffuso è l'algoritmo di Cooley-Tukey. Questo algoritmo si basa sul principio di divide et impera, e spezza ricorsivamente una DFT di qualsiasi dimensione N con N numero composto, tale che N=N1N2 in DFT più piccole di dimensioni N1 e N2, insieme a O(n) moltiplicazioni per l'unità immaginaria, detti fattori twiddle. • L'uso più conosciuto dell'algoritmo di Cooley-Tukey è di dividere e trasformare in due pezzi di n/2 ad ogni passo, ed è quindi ottimizzato solo per dimensioni che siano potenze di due

  7. Soluzione Matlab • Matlab fornisce agli sviluppatori una funzione di libreria per il calcolo della FFT x = abs(fft(x)) • Grazie all’utilizzo di un costrutto for, è possibile calcolare la frequenza relativa al valore massimo della FFT del segnale, e quindi la frequenza fondamentale • Successivamente, si calcola la frequenza del segnale: freq =(indMax-1)*campFreq/camp; • dove indMax = frequenza fondamentale • campFreq = frequenza di campionamento • Camp = numero di campioni utilizzati

  8. Da Matlab a C • La libreria del TMS320C67x DSP per il calcolo della FFT fornisce la libreria DSPF_sp_cfftr2_dit • Da manuale, la suddetta funzione richiede due procedure di supporto, una per il calcolo dei fattori di Twiddle, ed un’altra per il bit reverse: gen_w_r2 - bit_rev

  9. Simulazioni in Code Composer Studio • Le prime prove sperimentali sono state effettuate fornendo, all’interno del codice sorgente, la lista di campioni prelevati da Matlab x[1024] = {0.014, 0.013, 3.56, …} • Visti i risultati soddisfacenti, si è passati alla sperimentazione su DSP reale

  10. Interrupt • Per effettuare il testing su DSP reale è stata creata una ISR (interrupt service routine) associata al clock da 8kHz presente sulla scheda DSK • Il programma è stato posto in ascolto tramite la seguente funzione main():

  11. Interrupt Service Routine • L’ISR rappresenta il cuore dell’applicazione • Grazie all’utilizzo di più variabili booleane, l’isr stabilisce quando iniziare la memorizzazione dei campioni acquisiti. • Scartato il rumore iniziale, l’isr procede all’esecuzione della fft, e dei successivi calcoli • Un algoritmo di ricerca della minima distanza dalle frequenze delle note conosciute, restituisce la nota corrispondente

  12. Conclusioni • Il sistema attuale riconosce tutte le note della 4° scala dal DO al SI, compresi i semitoni. • E’ ovviamente possibile estendere il riconoscimento alle altre scale musicali semplicemente inserendo nel codice sorgente i valori delle rispettive frequenze. LA LA

More Related