There is a 16-bit data acquisition board and below is the recording of 120 seconds of voltage input at 500Hz sampling rate. The blue plot corresponds to the input voltage Vin and the green plot output voltage Vout is after 6Hz digital filter in time series:
And here below is the FFT of both input and output signals:
Basically I used the following code in Python to obtain the FFT plots:
plt.figure() y = v_in T = 1/sampling_rate N = len(y) yf = scipy.fftpack.fft(y) xf = np.linspace(0.0, 1.0/(2.0*T), N//2) amplitude = 2.0/N * np.abs(yf[:N//2]) pow = (N/sampling_rate)*amplitude*amplitude/2 plt.semilogx(xf, 20*np.log10(amplitude),'-b', label="$Vin$") y = v_out T = 1/sampling_rate N = len(y) yf = scipy.fftpack.fft(y) xf = np.linspace(0.0, 1.0/(2.0*T), N//2) amplitude = 2.0/N * np.abs(yf[:N//2]) pow = (N/sampling_rate)*amplitude*amplitude/2 plt.semilogx(xf, 20*np.log10(amplitude), '-g', label="$Vout$") plt.legend(loc='upper right') Here is my question:
The dynamic range of a 16 bit system is 96dB. This means max to min power ratio is 96dB or min to max ratio is -96dB.
How come then in my plots the 96dB is exceeded? I tried to figure out but couldn't find the reason.


