Even though the 20*log(ratio of arbitrary quantities) form is almost ubiquitously used when defining SNR in the DSP realm, I maintain it is incorrect, and the 10*log(ratio) should always be used. The definition of dB is 10*log(ratio of powers). In the analog realm, power is V^2/R, where V and R are voltage and impedence across that voltage respectively, so we have dB = 10*log((V1^2/R1) / (V2^2/R2)) = 20*log(V1/V2) + 10*log(R2/R1). Especially at high frequencies (radar, communications, etc), it is generally desirable to match impedences for maximum transfer of power, meaning that R2 = R1. If that is the case then the second term vanishes and we're left with this definition of dB: 20*log(V1/V2). Perfectly acceptable when dealing with analog circuits. But when working with software in the DSP realm, what is an impedence? What is a voltage? Those concepts have no meaning, they do not exist in software, they are HARDWARE concepts. Once we have converted an analog signal to digital, the concepts of voltage and impedence are meaningless. So we can hardly say that impedences match (what would that even mean? the impedence of the circuit sourcing the ADC matches the input impedence of the ADC? LUDICROUS!!), meaning we have no basis for saying that the second term vanishes, and thus no basis for defining a dB as 20*log(ratio of arbitrary quantities). Therefore, it makes most sense to revert to the definition of a dB and use the 10*log(ratio of arbitrary quantities) form.