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

Riconoscimento frequenze di note musicali PowerPoint PPT Presentation


  • 86 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

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

Problema

  • Riconoscere una nota musicale utilizzando il ‘C6711 DSK’


Musica note e frequenze 1

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

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

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

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

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

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

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

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

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

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