Riconoscimento frequenze di note musicali
Sponsored Links
This presentation is the property of its rightful owner.
1 / 12

Riconoscimento frequenze di note musicali PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on
  • Presentation posted in: General

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’ .

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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’


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


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.


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))


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


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


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


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


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():


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


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


  • Login