2010-05-20 12 views
10

Chi conosce l'algoritmo più robusto per un accordatore cromatico di strumenti?Algoritmo robusto per accordatore cromatico di strumenti?

Sto provando a scrivere un accordatore di strumenti. Ho provato le seguenti due algoritmi:

  1. FFT per creare un periodogramma welch e quindi rilevare la frequenza di picco

  2. Un semplice autocorrelazione (http://en.wikipedia.org/wiki/Autocorrelation)

ho rilevato il seguente base problemi:

  1. Precisione 1: in F FT la relazione tra campionamento, lunghezza di registrazione e dimensione del contenitore è fissa. Ciò significa che ho bisogno di registrare 1-2 secondi di dati per ottenere una precisione di pochi centesimi. Questo non è esattamente ciò che chiamerei in tempo reale.

  2. Precisione 2: l'autocorrelazione funziona un po 'meglio. Per ottenere l'accuratezza necessaria di pochi centesimi ho dovuto introdurre l'interpolazione lineare dei campioni.

  3. Robustezza: in caso di chitarra, vedo molti toni. Alcuni sottotitoli sono in realtà più forti del tono principale prodotto dalla corda. Non sono riuscito a trovare un modo efficace per selezionare la stringa corretta riprodotta.

Ancora, qualsiasi sintonizzatore elettronico a buon mercato funziona più robusto della mia implementazione. Come vengono implementati questi sintonizzatori?

risposta

4

È possibile anche interpolare FFT e spesso è possibile utilizzare le armoniche superiori per una maggiore precisione. Devi conoscere un po 'le armoniche dello strumento che è stato prodotto, ed è più facile se puoi assumere che hai meno di mezzo ottava di target, ma anche in assenza di questo, la frequenza fondamentale è solitamente molto più forte rispetto alla prima subarmonica, e non è molto al di sotto dell'armonica primaria. Una semplice euristica dovrebbe consentire di scegliere la frequenza fondamentale.

Dubito che il metodo di autocorrelazione funzioni in modo efficace su tutti gli strumenti, ma dovresti ottenere una serie di punteggi di auto-similarità che sono più alti quando sei compensato da una frequenza fondamentale. Se ne vai due, dovresti ottenere di nuovo lo stesso punteggio (con il rumore e lo smorzamento differenziale delle diverse armoniche).

+0

L'utilizzo di armoniche e subarmoniche in una semplice euristica ha davvero aiutato molto. Grazie Rex. – Stiefel