I have a signed 16 bit ADC which means it maps -10V to +10V range to 16 bit. So the max voltage +10V is 2^15-1 = 32767; zero is 0; and -10V is -2^15 = -32768.
My confusion is that when I perform data-acquisition with such 16 bit hardware and do the FFT with MATLAB or Python tool I dont know how the program know the resolution of the data(like 16-bit). And if I create my own array in MATLAB by coding what would be the bit resolution when it does the FFT.
I don't know if I could articulate where I am stuck at. Basically as I have written before imagine you have a have a signed 16 bit ADC which means it maps -10V to +10V range to 16 bit. So the max voltage +10V is 2^15-1 = 32767; zero is 0; and -10V is -2^15 = -32768. And imagine you have a binary file file full of 16-bit samples recorded by this ADC hardware. Now if you perform FFT in MATLAB or Python these tools will read 16 bit file and convert these unsigned bits to voltage and perform FFT.
But imagine you want to do/mimic the same thing with coding not by using FFT. How would you make such array in MATLAB or Python?
Here is an example: Let's say I want to create/plot a sinusoid in MATLAB or Python where I can mimic exactly that 16 bit ADC which samples a 1V 100Hz sinusoid input for 1 seconds which is sampled with 512Hz sampling rate. At the end I want to obtain the same FFT plot where I would obtain after a real ADC sampling. How can that sort of array be obtained? How does the FFT function know the resolution of the ADC when it calculates the FFT?


