Me gustaría usar STFT para el análisis multipitch. Me doy cuenta de que detectar los parciales existentes en la señal es solo el comienzo. Todavía tengo problemas con eso.
Digamos que tengo señal muestreada con frecuencia 'CD' 44100Hz
. Con la ventana de 1024
muestras obtengo la resolución del bin de frecuencia 22500Hz/512=43Hz
. Esto es suficiente solo para discernir notas altas de piano como:
C5 = 523.251Hz
y C#5 = 554.365
.
Solía pensar que 1024
es una ventana bastante grande. ¿Pero tal vez no lo es y normalmente se usan ventanas más grandes para detectar parciales?
¿Se puede aumentar la resolución de frecuencia con algún otro método que no sea aumentar el tamaño de la ventana, lo que empeora la resolución de tiempo? Pensé en dos métodos:
Método 1:
- Divida la señal en bandas de frecuencia con filtros de paso de banda (por ejemplo
0-11.25Hz
y11.25-22.5Hz
). - Reduzca la muestra de las bandas más altas para que las frecuencias altas originales ahora sean bajas (así que hágalo para la segunda banda
11.25-22.5Hz -> 0Hz-22.5Hz
), no estoy seguro de que esto sea posible. - Conjuntos de contenedores resultantes de Concat con etiquetas ajustadas.
Método2:
- Utilice series de filtros de paso bajo con límite creciente.
- Realice FFT en rangos de frecuencia crecientes.
- Para cada frecuencia, utilice la mejor resolución posible (contenedores del primer FFT en el que se incluyó esta frecuencia).
- Esto hará que las frecuencias bajas tengan una mejor resolución, pero creo que esto está bien porque para notas más altas la diferencia de frecuencia es mayor.
Le agradeceré cualquier comentario sobre este tema.
También leí aquí: ¿Cómo influyen el tamaño de la ventana, la frecuencia de muestreo en la estimación del tono FFT? sobre el método para mejorar los resultados de picking pico. Creo que intentará usarlo.