It’s a pretty easy measurement to make. On an opamp, you might do the following:
In the left schematic, you drive the opamp terminals with the exact same signal. The gain here is unity, so it might be hard to discern the opamp CMRR from the analyzer CMRR. The second circuit on the right has 60 dB of gain, so it’s easy to force the opamp to reveal its CMRR. Input a 0 dBV signal, and if the opamp has 120 dB of CMRR, then the 0 dBV signal shows up as 60 dB.
On an analyzer, you’d do the following:
And then drive with a 0 dBV signal and then measure the resulting level. You will have 8 different readings, because each of the 8 inputs will have its own CMRR that is determined by the performance of the 0.1% thin film resistors used in the front front end. On the particular QA403 on my desk, the best CMRR is attained at +12 dBV. Here we can see the 0 dBV signals applied to the + and - inputs are attenuated -95 dB.
The CMRR for the other full scale inputs are as follows:
0 dBV Max input -91.8 dB CMRR
6 -79.61
12 -94.9
18 -72.2
24 -81.3
30 -76.9
36 -82.1
40 -74.2
Now, as you note, you can see the CMRR varies quite a bit. And there are calculators on-line to help you figure the minumum and typical CMRR given the gain and resistor tolerance. For example, with 0.1% resistors, an FDA with unity gain will see a minimum CMRR of 54 dB (76 dB typ). And 0.01% resistor would yield 74 dB minimum (96 dB typ). In a world of unlimited budget, you’d hand-tune a pot in the front-end to drive down the CMRR to some satisfying number. But once you add pots to the design, then you get into the treadmill of annual calibrations which has its own drawbacks.
But rather than treating variation as a problem, it can be a benefit too. For example, on the analyzer noted above, the CMRR difference between the 6 dBV full scale input and the 18 dBV full scale input is 22 dB (this will vary unit to unit). But this means that simply switching the input from, say, 12 dBV to 18 dBV will result in a shift in CMRR performance. And if your signal is showing levels of hash changing as you move from 12 to 18 dBV, you can know it’s due to CMRR.
OK, but what about times when you really, really need killer CMRR performance? In the post HERE there is discussion of a Line Receiver (pasted below):
This is a special circuit that is focused on CMRR. Note in the front-end the 0.1%. But take a look at R19 between the two OPA1612 opamps. Like your earlier post on how to reduce the impact of imbalances, the schematic borrows from the TI INA1651 line receiver:
In the INA1651 spec, TI goes through the math for the different center V values:
The tradeoff is settling time for the circuit.
The backend of the circuit performs a balanced to single-ended conversion, The resistor array on the right side of the schematic is 0.1% absolute, but matching is +/- 5 ppm (0.0005%). At that level, the CMRR is more likely an issue with routing.
Probably more info that you wanted, but hopefully interesting to some.