[linux-dvb] SNR calculation in stv0299 driver
Johannes Stezenbach
js at linuxtv.org
Thu Jul 21 11:45:44 CEST 2005
Hi,
Gill Robles-Thome wrote:
> Can anyone explain the algorithm used to calculate the SNR for the
> stv0299 driver? Ie
>
>
> case FE_READ_SNR:
> {
> s32 snr = 0xffff - ((stv0299_readreg (i2c, 0x24) << 8)
> | stv0299_readreg (i2c, 0x25));
> snr = 3 * (snr - 0xa100);
> *((u16*) arg) = (snr > 0xffff) ? 0xffff :
> (snr < 0) ? 0 : snr;
> break;
> }
>
>
> I don't understand where the 0xa100 value comes from, or why the result
> is them multiplied by 3! Registers 0x24 and 0x25 are apparently "Noise
> Indicator" registers, but the stv0299 specification doesn't explain very
> well how these registers should be used.
Me, I don't understand it either. The data sheet just says:
"A simple C/N estimator can be easily implemented by comparing the
current indications with a primarily-recorded look-up table", but
doesn't give more information about this.
You'll have to ask the original author of the driver, Peter Schildmann.
Greetings to JP.
Johannes
More information about the linux-dvb
mailing list