Noise Floor Calibration

Overview

The noise floor calibration is done periodically to determine what the current thermal noise floor is. Since the hardware doesn't have a fixed reference, it estimates the thermal noise floor at the receiver and uses this internally for a variety of methods.

How does it work?

The best thing to do is read the patent document. It goes into a lot of useful details.

What's it used for?

The estimated thermal noise floor is used as both a reference for measuring incoming signal strength against, as well as the offset for various PHY signal level parameters.

How's it implemented in hardware?

The PHY has a few bits in the AGC control register (AR_PHY_AGC_CONTROL) which controls how the noise floor is programmed, calibrated and used.

For the AR5212 (802.11abg) and later 802.11n chips, the NF calibration hardware is the same. In particular:

How is it done in software?

The software tracks the last handful of noise floor calibration values and programs in the median value. This is to avoid a few things:

See the following functions:

The noise floor calibration is called periodically from the driver (defaulting to 30 seconds) - this is one of the responsibilities of ath_hal_calibrate().

What goes wrong?

A few things can go wrong:

How could it be improved?

Source files

Further reading

Patents

dev/ath_hal(4)/NoiseFloorCalibration (last edited 2012-03-18T08:02:25+0000 by AdrianChadd)