Tengo un ADC de 16 bits firmado, lo que significa que asigna un rango de -10 V a +10 V a 16 bits. Entonces el voltaje máximo + 10V es 2 ^ 15-1 = 32767; cero es 0; y -10V es -2 ^ 15 = -32768.
Mi confusión es que cuando realizo la adquisición de datos con dicho hardware de 16 bits y hago la FFT con MATLAB o la herramienta Python, no sé cómo el programa conoce la resolución de los datos (como 16 bits). Y si creo mi propia matriz en MATLAB codificando cuál sería la resolución de bits cuando haga la FFT.
No sé si podría articular donde estoy atascado. Básicamente, como he escrito antes, imagino que tienes un ADC de 16 bits firmado, lo que significa que asigna un rango de -10 V a +10 V a 16 bits. Entonces el voltaje máximo + 10V es 2 ^ 15-1 = 32767; cero es 0; y -10V es -2 ^ 15 = -32768. E imagine que tiene un archivo binario lleno de muestras de 16 bits grabadas por este hardware ADC. Ahora, si realiza FFT en MATLAB o Python, estas herramientas leerán un archivo de 16 bits y convertirán estos bits sin signo a voltaje y realizarán FFT.
Pero imagina que quieres hacer / imitar lo mismo con la codificación, no utilizando FFT. ¿Cómo harías tal matriz en MATLAB o Python?
Aquí hay un ejemplo: Digamos que quiero crear / trazar una sinusoide en MATLAB o Python donde puedo imitar exactamente ese ADC de 16 bits que muestrea una entrada sinusoidal de 1V 100Hz durante 1 segundo, que se muestrea con una frecuencia de muestreo de 512Hz. Al final, quiero obtener el mismo gráfico de FFT que obtendría después de un muestreo ADC real. ¿Cómo se puede obtener ese tipo de matriz? ¿Cómo conoce la función FFT la resolución del ADC cuando calcula la FFT?