Sorry for my ignorance but there's is immense effort in electrical engineering in the topic of amplification. I can understand the reason for circuits rejecting noise or filtering noise, but have difficulty to grasp the reason behind signal amplification such as a single ended input output amplifier.
If signal is amplified the noise is also amplified so SNR will remain the same. SNR might even be worse because of the amplifying active circuit will introduce extra noise.
Can you give me a reason to amplify let's say a 0-50mV noisy signal to 0-3.3V range by a single ended amplifier which is coupled to a 0-3.3V 12-bit ADC? Or another example that makes the linear amplification important`.
EDIT UPDATE:
After reading the answers especially Spehro Pefhany's answer and the comments sections, I tried to quantify the estimate SNRs for both cases. I ignored external interference or ADC inherent thermal noise, I also ignored amplifier noise. I only used the 1mV rms signal noise and the uncorrelated ADC quantization error for calculations.
Please see the following equations in the Python code and let me know if there's any mistake:
import numpy as np;
ADC_range = 3.3
ADC_resolution = 12
ADC_quant_error = ADC_range / (2**ADC_resolution -1)
# Without amplification
V_input_sig_range = 0.05
V_input_sig_range_rms = 0.05 / np.sqrt(2)
V_noise_rms = 0.001
V_total_rms_noise = np.sqrt(V_noise_rms**2 + ADC_quant_error**2)
SNR = 20 * np.log10(V_input_sig_range_rms / V_total_rms_noise)
# With amplification
V_input_sig_range_amplified = 3.3
V_input_sig_range_amplified_rms = 3.3 / np.sqrt(2)
V_noise_rms_amplified = 0.066
V_total_rms_noise_amplified = np.sqrt(V_noise_rms_amplified**2 + ADC_quant_error**2)
SNR_amplified = 20 * np.log10(V_input_sig_range_amplified_rms / V_total_rms_noise_amplified)
print(SNR)
print(SNR_amplified)
The above results as:
SNR = 28.795 dB
SNR_amplified = 30.968 dB
The difference is 2.17 dB