AUTOMATIC GAIN CONTROL IN A DIGITAL SIGNAL PROCESSOR

Abstract: Automatic gain control in a digital signal processor is described. A predetermined threshold value, a predetermined automatic gain control value, and a predetermined count threshold value are established and stored in a data memory associated with a signal processor. Each incoming signal sample that is received is multiplied by the AGC value with the product being temporarily stored in the data memory. The absolute value of the resulting product is taken and added to the predetermined threshold value. If the result of this operation results in a signal processor overflow, then the AGC value is reduced and stored back into the data memory. The adjustment period of the AGC value is chosen to be well under the allowable distortion time for speech, dual tone multi-frequency reception, and modem operation.

Description: Technical Field This invention relates generally to automatic gain control, and more particularly, to automatic gain control in a digital signal processor. Background Art 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. Patent 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. Patent 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. Patent 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. Patent 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. U. S. 4,161,628 discloses an apparatus for tracking amplitude fades for multi amplitude signalling. The apparatus has means for multiplying the amplitude of each received data symbol by an adjustable gain coefficient to obtain a gain product signal. The apparatus also compares the gain product signal with reference values representative of gain products corresponding to the upper and lower values of the amplitude levels of data signals. The apparatus thus adjusts the value of the gain coefficient so as to provide the AGC function. Disclosure of the Invention Accordingly, it is an object of this invention to provide improved automatic gain control in a digital signal processor. It is another object of this invention to provide automatic gain control in a digital signal processor without the use of non-linear hardware devices. In accordance with these and other objects of the invention, automatic gain control is provided in a digital signal processing environment to provide automatic gain control (AGC) in speech, telephony, and modem applications. According to the present invention, a predetermined threshold value is established and stored in a memory location in the data storage associated with signal processor. A predetermined automatic gain control (AGC) value as well as a predetermined count threshold value is established and also stored in the data storage. Each incoming signal sample that is received is multiplied by the AGC value, with the product being temporarily stored at another location within the data storage of the signal processor. The absolute value of the resulting product is taken and added to the predetermined threshold value. If the result of this operation results in a signal processor overflow, then the AGC value is reduced (multiplied by a positive fraction less than one) and stored back into the memory location in which the predetermined AGC value has been stored. If a predetermined number of consecutive samples causes an overflow, then the AGC value is reduced within a set time period. This time period is chosen to be well under the allowable distortion time for speech, dual tone multiple frequency (DTMF) reception, and modem operation. Brief Description of the Drawing Fig. 1 is a functional block diagram of the system according to the present invention. Fig. 2 is a flow chart depicting the operation of the preferred embodiment of the present invention. Fig. 3 is a flow chart depicting an alternative embodiment according to the present invention. Best Mode for Carrying Out the Invention A simplified functional block diagram is shown in Fig. 1. Signal processor 11 may be any commercially available signal processor such as the Texas Instruments TMS32010. Signal processor 11 is totally controlled by host processor 19 and must have its central processing unit (CPU) instructions loaded before operation. Signal processor 11 uses instruction memory 12 as well as data memory 13. Both of these memories, i.e., instruction memory 12 and data memory 13 are accessible by host processor 19 although not at the same time as signal processor 11. Instruction memory 12 is accessible by host processor 19 only when signal processor 11 is turned off, i.e., reset. At that time, host processor 19 can load from instruction memory 12 and then switch to data memory 13 which is shared at all times dynamically with signal processor 11. Both signal processor 11 and host processor 19 have the capability to interrupt one another with interrupt masking under control of host processor 19. Speech and/or audio signals are input over lines 21, 22, and 23 to receiver 17. These signals, which have amplitude variations, may be speech from either a microphone or telephone as well as speech from a telephone line, or they may be modem signals from a telephone line. These incoming signals, which are in analog format, are converted to digital by A/D converter 16 and temporarily stored in data register 15. These digitized signals are then input to data memory 13. A/D converter 16 provides digitized samples of the analog signals input over lines 21, 22, and 23. It is these digitized samples which are stored in data memory 13 and which are amplitude adjusted, thereby providing automatic gain control using signal processor 11. The automatic gain control (AGC) of the signals stored in data memory 13 is performed by signal processor 11 in conjunction with data memory 13 using bus 14. In addition to the storage of the digitized input samples in data memory 13, other predetermined values which are used to perform the automatic gain control of such digitized input signals are stored in data memory 13. These predetermined values include: a threshold value (THVAL); a predetermined AGC value (AGCVAL); and, a predetermined count threshold (CNTTH). Additionally, during the AGC processing of the digitized samples in data memory 13 by signal processor 11, further values are generated which are then stored in data memory 13. This will be explained in more detail hereinafter. The automatic gain control of the digitized samples stored in data memory 13 will now be explained in more detail with reference to Fig. 2. The predetermined threshold and countthreshold values, (THVAL) and (CNTTH), respectively, are input from data memory 13 over bus 14 to signal processor 11. The digitized samples are also input over bus 14 from data memory 13 to signal processor 11. Each digitized sample input over bus 14 is multiplied in signal processor 11 by the AGC value which had previously been stored in data memory 13. The product value is then temporarily stored in data memory 13 as PRODVAL. The absolute value of the product just formed is then taken and added to the predetermined threshold value, (THVAL), which had been stored in data memory 13. If the result of this summation is an overflow, then the original AGC value is multiplied by 0.75 and stored back into data memory 13. Additionally, when an AGC overflow occurs, a count, known as the AGC count, is reset to 0. When an overflow condition does not occur, i.e., the sum of PRODVAL and (THVAL) does not cause overflow, then the AGC count value (AGCCNT) is incremented. When a significant number of digitized samples are input to signal processor 11 which do not cause the threshold value to overflow, then the AGC count value (AGCCNT), which is incremented each time, can become quite large. Accordingly, for each digitized sample that does not cause an overflow condition, the AGC count value (AGCCNT) is compared with the predetermined count threshold value, (CNTTH), which had been stored previously in data memory 13. When the AGC count value (AGCCNT) exceeds the original count threshold value, then the AGC value is multiplied by 1.01. For each succeeding inputted sample time that the output threshold does not overflow, the AGC value is once again multiplied by 1.01. The adjustment of the AGC value in the AGC count value (AGCCNT) is done at a rate to insure that there is an allowable amount of distortion in the incoming signal upon which the automatic gain control is performed. For speech, the allowable distortion time is on the order of 15 milliseconds while for dual tone multi-frequency tones, the allowable distortion time is about 5 milliseconds. The allowable distortion time for modems is considerably longer than that for speech. Having assured that the AGC value is changed rapidly enough to prevent distortion, the gain controlled output is then taken to be the product value that results by multiplying the AGC value by the digitized sample that is input to signal processor 11 over bus 14 from data memory 13. An alternative method of performing automatic gain control on the digitized samples stored in data memory 13 will now be described in more detail with reference to Fig. 3. This alternative method of AGC differs from that previously described in that there are two predetermined threshold values (THVAL) which are stored in data memory 13, threshold value 1 (THVAL1) and threshold value 2 (THVAL2). Threshold value 1 is lower than threshold value 2. Using this alternative method, after the AGC value has dropped to a level where the threshold value 1 THVAL1 no longer causes overflows, but where threshold value 2 still does cause overflows, the amount of reduction in the AGC value at overflow is decreased. This is seen by the additional branch existing in the flow chart depicting this alternative embodiment as opposed to the preferred embodiment depicted in Fig. 2. As can be seen, the "no" branch after the first overflow decision provides that the absolute value of the product value is added to a second value for the AGC. At this point, an additional decision is made as to whether or not an overflow occurred. If the overflow occurred once again, then the AGC count is reset and the AGC value is multiplied by 0.97 instead of the previously used 0.75. The "no" branch following this second overflow decision path is identical to the "no" path shown for the preferred embodiment. That is, the AGC count is incremented and then a decision is made as to whether or not the AGC count is greater than the count threshold which had previously been stored in data memory 13. If the AGC count does, at this point, exceed the count threshold, then the AGC value is multiplied by 1.01. Once again, after the AGC has been performed on the digitized input sample, the product value is taken as the gain controlled output of the system. As an example of the operation of the alternative method, assume that the initial AGC value is 1,000. Assume also that 4 out of the first 23 digitized samples cause the second threshold value to be exceeded. The AGC value will then be multiplied by 0.75 four times by the time the 23rd digitized sample is reached. At that point, the AGC value is approximately 316. Assume further that 7 out of the next 15 samples cause the first threshold value to be exceeded but do not exceed the second threshold value. If the multiplier associated with the first threshold value is 0.97 as shown in Fig. 3, then after these 15 samples, the AGC value will be 255. This iterative process allows very quick adjustment of the AGC value to the correct range. In another alternative embodiment based upon the preferred embodiment, a plurality of threshold values (THVAL) and a plurality of count threshold values CNTTH are used. In this alternative embodiment, the lowest value of the plurality of predetermined threshold values called THVAL1 is added to the absolute value of the product term PRODVAL to form a first result. If an overflow occurs, then the automatic gain control value is reduced. If no overflow occurs, a second predetermined threshold value THVAL2 slightly higher than the former value THVAL1 is added to the absolute value of the product term to form a second result. If an overflow occurs then the automatic gain control value AGCVAL is reduced but significantly less than previously. If no overflow occurs, the previous operation is performed with a third predetermined threshold value THVAL3 higher than the latter value THVAL2 and so on. Similarly, a plurality of count threshold values is established and the lowest valued of the plurality of count threshold values is compared to the automatic gain control count value. If the automatic gain control count value exceeds the lowest valued of the plurality of count threshold values, then the automatic gain control value is multiplied by a number greater than 1. Other embodiments of the invention can be advantageously used. Specifically, multiple threshold values may be used in the alternative embodiment to enable increased precision on the automatic gain control adjustments. Further, the up multiplier may be made a function of the threshold range within which the AGC value is operating.

Claims: Apparatus for providing an automatic gain control in a signal processor (11), comprising: processing means (11, 12, 13) for establishing a predetermined automatic gain control value (AGCVAL); said processing means (11, 12, 13) receiving a sample of an input signal and multiplying said sample by said predetermined automatic gain control value (AGCVAL), thereby generating a product term (PRODVALUE); and, said processing means (11, 12, 13) reducing said automatic gain control value (AGCVAL) subsequent to the value of said product term causing an overflow condition in said signal processor (11) characterized in that said processing means establishes a predetermined threshold value (THVAL); adds said predetermined threshold value to the absolute value of said product term (PRODVAL) to form a first result; and said processing means (11, 12, 13) reduces said automatic gain control value (AGCVAL) if said first result is an overflow. Apparatus according to claim 1 characterized in that said processing means (11, 12, 13) reduces said automatic gain control value (AGCVAL) by multiplying said predetermined automatic gain control value by a number less than one. Apparatus according to claim 2 characterized in that said processing means (11, 12, 13) established an automatic gain control count value (AGCNT) which is reset to 0 subsequent to an overflow condition occurring, and is incremented subsequent to a no overflow condition occurring. Apparatus according to claim 3 characterized in that said processing means (11, 12, 13) establishes a count threshold value (CNTTH), and compares said automatic gain control value (AGCCNT) to said count threshold value (CNTTH) and multiplying said automatic gain control value (AGCCNT) by a number greater than one subsequent to said automatic gain control value (AGCCNT) exceeding said count threshold value (CNTTH). Apparatus according to claim 1 characterized in that said processing means (11, 12, 13) establishes a plurality of predetermined threshold values (THVAL)n, and said processing means adds said absolute value of said product term (PRODVAL) to each of said predetermined threshold value (THVAL)n to form h results, and said processing means reduces said automatic gain control value (AGCVAL) subsequent to the lowest value of said plurality of predetermined threshold values (THVAL)n causing an overflow.

Inventors: WEST, LYNN PARKER
Applicants: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1986
Main classification: H03G3
IPC codes: H03M1, H03G3