Por lo que últimamente he estado observando una implementación en Python del algoritmo Karplus Strong, o más particularmente del sistema:
\ $ y [n] = \ alpha y [n-M] + x [n] \ $
Por lo que entiendo, se supone que \ $ x [n] \ $ es una señal definida desde 0..M-1 y 0 en cualquier otra parte. También \ $ y [n] = 0 \ para todos n < 0 \ $
Ahora si empezamos \ $ x \ $ con un ruido de entrada aleatorio de M muestras, entonces obtendremos una señal de frecuencia fundamental M del sistema anterior.
Para simular un acorde de guitarra de las siguientes notas: D4, A4, D4, E4 ... Uno calcula las frecuencias requeridas como: \ $ 440 \ veces 2 ^ \ frac {n} {12} \ $ donde n sería el número de medios tonos entre A4 y el armónico requerido.
Ahora las fuentes a las que me he referido, (por ejemplo, enlace ) Calcule la M (el búfer / retardo del sistema) como:
\ $ M = \ frac {F_s} {F_o} \ $ donde \ $ F_s \ $ es la frecuencia de muestreo, mientras que \ $ F_o \ $ es la frecuencia de la señal que me interesa (digamos D4)
Entonces, para \ $ F_s = 44100 Hz \ $ y \ $ F_o = 441 Hz \ $ luego \ $ M = 100 \ $
Este cálculo me confundió. Parece que ahora obtendré una señal cuya frecuencia fundamental es de 100 Hz, cuando necesitaba una señal cuya frecuencia fundamental era de 441 Hz. Entonces, según mi entendimiento, no debería ser M simplemente \ $ M = F_o \ $ que luego dará mi señal requerida.
Gracias: D