Algoritmo di Karplus-Strong: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(35 versioni intermedie di 21 utenti non mostrate) | |||
Riga 1:
L'algoritmo di '''Karplus-Strong''' è un metodo usato nel campo dell'
== Come funziona ==
* viene generata una breve forma d'onda (di lunghezza di L campioni) di eccitazione. Nell'algoritmo originale era un [[rumore bianco]], ma può essere qualsiasi segnale a [[banda radio|banda]] estesa.
* questa eccitazione è portata in output e simultaneamente in retroazione in una catena di ritardi (delay line) lunga L campioni.
* l'uscita della catena di ritardi è portata ad un [[Filtro (elettronica)|filtro]]. Il [[guadagno (elettronica)|guadagno]] del filtro deve essere minore di 1 a tutte le frequenze. Di solito si tratta di un [[filtro passa basso]] del primo ordine.
* l'output filtrato è simultaneamente mixato in output e all'indietro in retroazione nella catena dei ritardi.
Riga 15:
\ y[n] = x[n] + \alpha y[n-K] \,
</math>
assume il valore di [[resistenza elettrica|resistenza]] <math>R^{L}</math> che quindi diventa:
:<math>
\ y[n] = x[n] + R^{L} y[n-L] \,
</math>
con [[funzione di trasferimento]]:
:<math>
\ H(z) = \frac{Y(z)}{X(z)} = \frac{1}{1 - R^{L} z^{-L}} \,
</math>
I poli di <math>H(z)</math> si ricavano da <math>z^{-L}=R^{L}</math> e quindi il filtro ha ''L'' [[Polo (analisi complessa)|poli]] <math>z=R e^{(j2l\pi)/L}</math> per <math>l=0,...,L-1</math> equispaziati attorno al cerchio (nel [[piano complesso]]) di raggio R. Il filtro produce uno spettro armonico con picchi in corrispondenza di multipli interi della frequenza fondamentale
:<math> f_0 = \frac{F_s}{L} \ </math> Hz
Un'[[Onda (fisica)|onda]], considerata come una perturbazione, si propaga attraverso il mezzo (confinato ad essere di lunghezza ''L'') e rimbalza avanti e indietro in base alle condizioni al contorno che la regolano. Ad ogni passaggio attraverso <math>R^{L}</math> nel ramo della retroazione viene dissipata energia. Se il segno dell'onda è invertito ad ogni [[riflessione (fisica)|riflessione]] <math>R^{L}</math> ha segno negativo e le formule risultanti sono:
:<math>
\ y[n] = x[n]
</math>
:<math>
Riga 37:
=== Ridefinizione del filtro comb ===
[[Julius O. Smith III]] ed altri hanno osservato che l'algoritmo di Karplus-Strong era analogo dal punto di vista fisico all'approccio a [[guida d'onda]] di un segnale. La [[retroazione]] rappresentava la perdita totale di un'[[Onda (fisica)|onda]] (prodotta ad esempio da una corda) in un periodo. Grazie a questa intuizione è possibile modellare a onde acustiche perché l'algoritmo di Karplus-Strong è strutturalmente identico ai più semplici modelli a guida d'onda.▼
Alla luce di quanto argomentato la struttra del filtro comb può essere ridefinita per sintetizzare suoni di tipo armonico come quelli prodotti da una [[chitarra]]. Le modifiche che andranno fatte dovranno implementare un decadimento dipendente dalla frequenza delle singole armoniche. In altre parole il modulo delle armoniche dovrà decadere man mano che le frequenze aumentano in modo che le armoniche più basse durino di più di quelle più alte. Questo si ottiene inserendo in diretta (non in retroazione) un [[filtro passa basso]] <math>H_{lp}</math> creando un ''filtro comb passa-basso''. Intuitivamente ad ogni passaggio le componenti ad alta frequenza sono attenuate in maniera più marcata di quelle a bassa frequenza. Considerando un filtro [[FIR]] del primo ordine le formule diventeranno le seguenti:▼
▲Alla luce di quanto argomentato la
:<math>
\ y[n] = \frac{1}{2} \cdot [x[n] + x[n-1]] \,
Riga 46 ⟶ 48:
</math>
La [[risposta in frequenza]] corrispondente è:
:<math>H_{lp}(f)=cos(\pi f) \cdot e^{-j\pi f}</math>
Da notare che la fase del filtro passa basso aggiunge un ulteriore ritardo di mezzo campione. Come conseguenza la nuova frequenza fondamentale generata sarà:
Riga 53 ⟶ 55:
== Accordatura della corda ==
Il [[delay]] richiesto ''D'' per una frequenza fondamentale data ''F''<sub>1</sub> è calcolato in base alla formula ''D'' = ''F''<sub>''s''</sub>/''F''<sub>1</sub> dove ''F''<sub>''s''</sub> è la [[frequenza di campionamento]]. La lunghezza della delay line è un numero multiplo del
Mantenendo il periodo (= lunghezza della linea di ritardi)
== Bibliografia ==
▲[[Julius O. Smith III]] ed altri hanno osservato che l'algoritmo di Karplus-Strong era analogo dal punto di vista fisico all'approccio a [[guida d'onda]] di un segnale. La [[retroazione]] rappresentava la perdita totale di un'[[onda]] (prodotta ad esempio da una corda) in un periodo. Grazie a questa intuizione è possibile modellare a onde acustiche perché l'algoritmo di Karplus-Strong è strutturalmente identico ai più semplici modelli a guida d'onda.
* {{Cita pubblicazione
▲ | author = Kevin Karplus, Alex Strong
| url = https://archive.org/details/sim_computer-music-journal_summer-1983_7_2/page/43
▲ | year = 1983
▲ | title = Digital Synthesis of Plucked String and Drum Timbres
▲ | journal = Computer Music Journal
| volume = 7
|
|
|
}}
* {{
|
|
|
| url = https://archive.org/details/sim_computer-music-journal_summer-1983_7_2/page/56
|
| volume = 7
|
|
|
}}
* {{Cita web|url=https://worldwide.espacenet.com/textdoc?DB=EPODOC&IDX=US4649783|autore=Alexander R. Strong, Kevin J. Karplus|titolo=Wavetable Modification Instrument and Method for Generating Musical Sound|data=17 marzo 1987}}
<!-- filed May 24, 1984, now expired -->
* Moore, F. Richard. ''Elements of Computer Music''. Upper Saddle River: Prentice-Hall, 1990. ISBN 0-13-252552-6.
* Dispense del corso di Informatica Musicale dell'[[Università di Padova]] del professor DePoli [https://web.archive.org/web/20071130040156/http://www.dei.unipd.it/corsi/musica/ Sito web del corso] pubblicate sotto [[licenza (informatica)|licenza]] [[Creative Commons]] ''Attribuition-NonCommercial-ShareAlike''▼
== Altri progetti ==
▲* Dispense del corso di Informatica Musicale dell'[[Università di Padova]] del professor DePoli [http://www.dei.unipd.it/corsi/musica/ Sito web del corso] pubblicate sotto [[licenza]] [[Creative Commons]] ''Attribuition-NonCommercial-ShareAlike''
{{interprogetto}}
==
*
*
{{portale|musica}}
[[Categoria:Tecnologia musicale]]
[[Categoria:
[[Categoria:Filtri elettronici]]
|