Daniel Lazarus escribió:
Esto me interesa. Podrías explicar más detalladamente cómo se calcula ese error?
#31
Lo explica parcialmente la Recommendation ITU-R BS.1770-3 / Annex 2 / Appendix 1: "Considerations for accurate peak metering of digital audio signals" (página 20).
El documento es gratis; recomiendo la versión inglesa porque la española no está perfectamente traducida. Y cuidado con las fórmulas, a los denominadores compuestos les falta un paréntesis que agrupe sus factores.
http://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-3-201208-I!!PDF-E.pdf
http://www.itu.int/rec/R-REC-BS.1770-3-201208-I
El caso con mayor error de sublectura lo plantea teóricamente: una onda sinusoidal a la máxima frecuencia que, tras sobremuestrear, deja su pico imaginario perfectamente centrado entre 2 de las nuevas muestras[1].
Ese pico imaginario o inter-sample peak es el punto de máxima amplitud de la onda reconstruída. Lo importante es que las 2 nuevas muestras entre las que se encuentra siguen siendo menores, por eso la diferencia se llama error de sublectura y requiere un margen que evite clipping en la reconstrucción.
Recuerdo que los ficheros PCM almacenan muestras o samples, valores de impulsos discretos cuyo máximo o mínimo es el peak-sample.
Esta recomendación BS.1770 dice que, si mides con oversampling 4x y filtro igual o superior al FIR propuesto, puedes llamar true-peak al peak-sample de siempre. Sigue teniendo un determinado error de sublectura respecto al inter-sample peak, pero menor y sólo afecta a la medición/procesado, no a la reconstrucción de la onda.
[1]: "nuevas muestras" se refiere a "nuevo conjunto expandido de muestras", incluyendo a las preexistentes al sobremuestreo.
Lo que no explica el documento es por qué elige una onda sinusoidal, sabiendo que otro tipo como cuadrada no impone un límite calculable entre esos 2 puntos. Supongo que por alguna/s de estas conjeturas:
— La amplitud de la sinusoidal es sencilla de calcular a partir de un período conocido, como el dividido n veces por oversampling.
— Es compatible con la postcondición de muestreo correcto de banda limitada desde el que se parte: si antes no había frecuencias > Fs/2 por haber sido filtradas, tras el sobremuestreo no deben surgir de la nada. Por lo que no tiene sentido calcular el máximo error esperando encontrar cambios radicales entre esos nuevos samples (que generarían overtones, o sería simple distorsión), sino valores interpolados.
— La fórmula de interpolación de Whittaker-Shannon usa sinc(), una función definida a partir de la sinusoidal. Aunque, en la práctica, el upsampling a múltiplos enteros se hace añadiendo muestras intermedias de valor 0, aplicando un nuevo filtro paso-bajo y compensando ganancia si hiciera falta. La necesidad de este filtro final puede desconcertar, puesto que la suposición anterior ya había descartado la generación excesiva de nuevos armónicos > Fs/2. Pero hay que tener en cuenta que este método es un tanto tramposo por eficiencia: esas muestras intermedias a 0 sí suponen inicialmente un cambio radical en amplitud, y justamente el filtro es el que elimina la imagen especular a la vez que interpola.
http://www.lavryengineering.com/lavry-white-papers/
https://en.wikipedia.org/wiki/Oversampling
https://en.wikipedia.org/wiki/Reconstruction_filter
Adjunto una hoja de cálculo en la que ir modificando la frecuencia de corte en términos absolutos. Permite experimentar con el cálculo del error de sublectura máximo o cercano al máximo. También limitar el espectro a medir/procesar manteniendo la Fs, de forma que veas a partir de qué ratio de oversampling el error entra en tus límites aceptables para cierta tarea.
EDITADO