The automatic adjustment of the gain of an incoming electrical or acoustical signal prior to further signal processing is known in the prior art. Typically, automatic gain control (AGC) mechanisms are implemented in hardware using non-linear devices, such as diodes, to compand the incoming signal. In digital signal processing, such non-linear devices are unavailable. Normally, a digital signal processor accomplishes AGC by performing arithmetic division. A drawback with the use of arithmetic division is that it requires significant amounts of the processing capability of the digital signal processor.
AGC mechanisms are normally used in devices which receive amplitude varying signals. The following are examples of such amplitude varying signals: speech from a microphone wherein the distance between the microphone and the speaker changes or where individual speakers talk at varying amplitudes; modem signals from a telephone line, since the amplitude attenuation of any one telephone line may be different from other telephone lines; and, speech from a telephone line wherein the sources of variation may be due to both the speaker and the varying telephone line. Automatic gain control mechanisms are helpful to limit the dynamic range over which most of the most complex portion of the signal processing must work, i.e., to prevent amplifiers from saturating from high level signals while at the same time minimizing the effects of thermal noise introduced by circuitry.
As mentioned previously, the non-linear effects commonly employed in hardware implementations are not available in a digital signal processor. An AGC process in such a processor uses division. Typically, the input signal level, which is usually the largest sample over a period of time, is determined, and then arithmetic inversion is performed. All subsequent incoming samples over a period of time are then multiplied by this inverted value. Consequently, large incoming signals are multiplied by a small AGC value, and small incoming signals are multiplied by a large AGC value. A problem with current signal processors is that division is performed rather inefficiently. As a result, large amounts of the processing power of a digital signal processor is employed just for automatic gain control. In a telephony environment, this leaves critical functions such as dual tone multi-frequency detection demodulation, call progress, and telephone line monitor, with reduced processing capability.
U.S. Pat. No. 4,191,995 shows a typical digital AGC circuit implemented in hardware. The circuit includes both an analog attenuator and a digital attenuator for applying controlled attenuation to the input analog signal and the digital representation of said input signal, respectively. The analog and digital attenuators operate under control of a digital control circuit. U.S. Pat. No. 3,996,519 also discloses a digital signal processor having automatic gain control implemented in hardware. The processor disclosed therein utilizes two parity generators, a set-reset flip-flop shift register and logic to control the output of a serially connected shift register.
U.S. Pat. No. 4,499,586 describes a microprocessor controlled automatic gain control used in a receiver for receiving recurring first and second scanning signals. The apparatus includes a linear and a logarithmic amplifier. Means are provided for generating a digital gain control signal in response to a peak magnitude signal with a D/A convertor for converting digital gain control signals into analog gain control signals which are then applied to the gain control input of a linear amplifier.
U.S. Pat. No. 4,477,698 discloses an apparatus for detecting pickup at a remote telephone set. The apparatus uses a high gain band pass filter with no automatic gain control employed. Although the apparatus is able to detect telephone call pickup, it is unable to compensate for different speech levels and/or modem signal levels which would require automatic gain control.