SYSTEM AND METHOD FOR DUAL TONE MULTIFREQUENCY DETECTION USING VARIABLE FRAME WIDTHS

Abstract: An improved dual tone multifrequency (DTMF) signal detector which uses the Goertzel DFT algorithm and which utilizes variable or differing frame widths that are frequency dependent for improved detection and reduced error. The DTMF detector includes a codec receiver which receives signals from the transmission media, and a digital signal processor (DSP) coupled to the codec. The DSP receives the digital samples and preferably applies the Goertzel DFT algorithm using differing frame lengths according to the present invention. The DTMF detector utilizes a different frame width for different tones of the possible tone frequencies according to the present invention. Thus the calculation uses a different frame length N for different ones of the uncorrelated frequencies, wherein the different frame lengths comprise at least a subset N of the number of digital samples. The different frame lengths N are designed to optimally align the calculated frequency spectrum at each of the different uncorrelated frequencies. The calculation produces an energy value for each of the different uncorrelated frequencies. The DTMF detector preferably multiplies a gain value with each of the energy values to adjust the gain of each of the energy values. After the frequency domain calculation, i.e., after energy values have been calculated for each of the different uncorrelated frequencies, and after any desired gain adjustment, the DSP determines maximum values of the energy values for each of the two or more frequency groups to detect the plurality of tones in the received signal. The DTMF detector also performs various other calculations to ensure valid tone detection.

Description: Title System and Method for Dual Tone Multifrequency Detection Using Variable Frame Widths Field of the Invention The present invention relates to the detection of dual tone multifrequency coded signals, and more particularly to a DTMF detector which computes the frequency spectrum of a received signal using a variable frame size for increased speed and accuracy Descπption of the Related Art Dual tone multifrequency (DTMF) coding is a generic name for push-button telephone signaling which is used in North American telephone systems A DTMF signal is used for transmitting a phone number or the like from a push button telephone to a telephone central office DTMr signaling is quickly replacing dial pulse signaling in telephone networks worldwide In addition to telephone call signaling, DTMF coding is also becoming popular in interactive control applications such as telephone banking, electronic mail svstems and answering machines wherein the user can select options from a menu by sending DTMF signals from a telephone A dual tone signal is represented by two sinusoidal signals whose frequencies are separated in bandwidth and which are uncorrelated in order to avoid false tone detections In general normal speech patterns or noise signals produce a signal with energy distributed throughout the frequency band In some cases speech may have sufficient energy on both DTMF frequencies to trigger a false detection As noted above, a DTMF signal encoder generates a DTMF signal by adding together two sinusoidal signals A DTMF signal includes one of four tones each having a frequency in a low frequency band and one of four tones, each having a frequency m a high frequency band In current DTMF systems, the following frequencies are allocated for the four tones in the low frequency band FA = 697 Hz, FD = 770 Hz, FC = 852 Hz and , FD = 941 Hz, and the following frequencies are allocated for the four tones in high frequency band FE 1209 Hz, FF = 1336 Hz, FG = 1447 Flz, and FH = 1633 Hz The frequencies used for DTMF encoding and detection are defined by the CCITT and are accepted around the world thus allowing dialing compatibility throughout the world As DTMF signals travel down a transmission line, such as a telephone line, the signals may become distorted due to attenuation or to any number of other affects, such as channel noise radiation etc In addition in some instances voice or speech signals are propagated down a telephone line simultaneously with D TMF signals Due to noise affects or speech, a DTMT signal can be missed by the detector 1 his is referred to as "talk-down" Also, speech can have a frequency domain content similar to a DTMF signal and trigger erroneous detection, this being referred to as a "talk-off effect Noise other than speech can also cause adverse effects and the receiver thus is sometimes unable to discern which DTMF signal has been detected The CCITT and AT&T have promulgated various standards for DTMF detectors These standards involve various criteria such as frequency distortion allowance, twist allowance, noise immunity, guard time talk-down talk-off acceptable signal to noise ratio, and dynamic range, etc The distortion allowance criteria specifies that a DTMF detector is required to detect a transmitted signal that has a distortion allowance less than I 5 The term 'twist" refers to the difference in decibels, between the amplitude of the strongest key pad row tone and the amplitude of the strongest key pad column tone In general, the twist is required to be between -4 and +8 decibels The noise immunity criteria requires that if the signal has a signal to noise ratio (SNR) greater than 12 decibels, then the DTMF detector is required to not miss the signal, I e , is required to detect the signal The guard time check criteria requires that if a tone has a duration greater than 40 milliseconds, the DTMF detector is required to detect the tone, whereas if the tone has a duration less than 20 milliseconds, the DTMF detector is required to not detect the tone Speech immunity refers to the ability of the DTMF detector to accurately distinguish DTMF tone signals from actual speech In other words, speech immunity refers to the ability of the DTMF detector to detect DTMF signals in the presence of speech, this being referred to as talk down The term "talk off' refers to a DTMF detector inadvertently detecting speech as a DTMF signal Originally, DTMF signal generators and detectors utilized analog circuitry to generate and decode DTMF signals However, with the rapid advance of VLSI technology and digital signal processmg (DSP) technology, many DTMF systems are now employing digital signal processors for increased accuracy and cost efficiency The advantages of a digital DTMF generation and detection system include improved accuracy, precision, stability, versatility and reprogrammabihty, as well as lower chip count The advantages of a DSP implementation of a DTMF system are especially valid for a telephone company Central Office, where DTMF detection can be simultaneously performed on multiple telephone channels In general, a DTMF detector examines the line or communication channel for the presence of two sinusoids using dedicated frequency domain algoπthms including modified Goertzel algorithms DFT FFTs, auto-correlation, zero crossing counting, and narrow band filter-based methods, among others The Goertzel algorithm is the most popular algorithm used in DTMF signal detection because it has the accuracy of a DFT-based algorithm while also having computational efficiency comparable to narrowband filter-based algoπthms Conventional use ofthe Goertzel algorithm is similar to DFT methods, which compute values in the frequency domain at desired discrete points As a result, this method has the disadvantage of the DFT, whereby the computed results may not be sufficiently close to the desired frequencies where tones may be located, thus reducing accuracy This problem is exacerbated by the fact that the DTMF frequencies desired to be detected are deliberately chosen to be uncorrelated for improved detection Therefore, in order to achieve sufficient resolution and thus sufficient accuracy, the window size or frame size is required to be fairly large As a result, conventional DTMF detectors using a fixed frame size to compute frequency domain values generally also have the disadvantage of slow detection and high computational costs to produce each result Thus improved DTMF signal detection techniques are desired which have increased accuracy and improved efficiency Summary of he Invention The present invention comprises an improved dual tone multifrequency (DTMF) or multitone signal detector which more efficiently and reliably detects DTMF signals The present invention uses a frequency domain detection method, such as a modified version ofthe Goertzel DFT algorithm, and utilizes variable or differing frame widths that are frequency dependent for improved detection and reduced error The DTMF detector according to the present invention preferably includes a coder/decoder (codec) receiver which receives signals from the transmission media The codec samples the received analog signals and produces digital signals, l e , digital samples The DTMF detector also includes a digital signal processor (DSP) coupled to the codec The DSP receives the digital samples and preferably applies the Goertzel DFT algorithm using differing frame lengths according to the present invention The present invention further includes a memory coupled to the DSP which is used by the DSP for temporary storage of data during processing (RAM), and retrieval of data such as filter coefficients (ROM) According to the present invention, the DTMF detector receives a plurality of digital samples of a received signal, wherein the received signal may include a plurality of tones, such as a DTMF or MTMF (multiple tone multifrequency) signal The received signals may include DTMF or MTMF tone signals and also may include one or more speech signals and or noise The plurality of tones comprise two or more tones from a plurality of different uncorrelated frequencies In one embodiment, the plurality of different uncorrelated frequencies comprise two or more frequency groups After receiving the digital samples, the DTMF detector calculates a frequency spectrum ofthe plurality of digital samples for each of the plurality of different uncorrelated frequencies The DSP preferably uses the Goertzel algorithm to compute the frequency spectrum The Goertzel DFT algorithm divides the sampled time domain signal into a plurality of discrete blocks or frames and then performs Fourier techniques to obtain energy values in the frequency domain The DTMF detector utilizes a different frame width for different tones of the possible tone frequencies according to the present invention Thus the calculation uses a different frame length N for different ones of the uncorrelated frequencies, wherein the different frame lengths comprise at least a subset N of the number of digital samples The different frame lengths N are designed to optimally align the calculated frequency spectrum at each of the different uncorrelated frequencies It is noted that the same frame length may be used for certain of the frequencies The calculation produces an energy value for each of the different uncorrelated frequencies It is noted that calculating the frequency spectrum using different frame lengths N produces differing energy contents in a plurality of the energy values Thus the DTMF detector preferably multiplies a gain value with each ofthe energy values to adjust the gain of each ofthe energy values After the frequency domain calculation, I e , after energy values have been calculated for each of the different uncorrelated frequencies and after any desired gain adjustment, the DSP determines maximum values ofthe energy values for each of the two or more frequency groups to detect the plurality of tones in the received signal The DTMF detector also performs various other calculations to ensure valid tone detection Therefore, the present invention comprises a DTMF detector and method for more accurately detecting the presence of two or more tones in a received signal The present invention uses frequency domain techniques and uses different frame widths for different tones of the DTMF tone frequencies for improved speed and accuracy Brief Description of the Drawings A better understanding of the present invention can be obtained when the following detailed descπption ofthe preferred embodiment is considered in conjunction with the following drawings, which Figure 1 is a block diagram ofthe DTMF detector ofthe present invention Figure 2 is a flowchart diagram illustrating operation ofthe DTMF detector ofthe present invention, Figure 3 illustrates a plurality of filters in the DTMF detector of Figure 1 , which apply the Goertzel algorithm usmg a variable frame length according to the present invention, Figure 4 illustrates operation ofthe Goertzel algorithm, Figure 5 is a block diagram illustrating logic which finds the maximum gain in each group of detected tones, Figure 6 illustrates operation of static thresholding in the flowchart diagram of Figure 2, Figure 7 illustrates operation ofthe dynamic thresholding in the flowchart diagram of Figure 2, Figure 8 illustrates operation of the second harmonic energy threshold check in the flowchart of Figure 2, Figure 9 illustrates operation of guard time checking functions performed by in the flowchart of Figure 2, and Figure 10 illustrates operation of twist checking functions in the flowchart of Figure 2 Detailed Description of he Preferred Embodiment Incoφoration bv Reference The following U S patents and references are hereby incoφorated by reference U S Patent No 5,408,529 titled "Dual Tone Detector Operable in the Presence of Speech or Background Noise and Method Therefor" — Greaves, issued April 18, 1995, is hereby incoφorated by reference U S Patent No 5,428,680 titled "DTMF Signal Receiving Apparatus Equipped With a DTMF Signal Judging Circuit" -- Murata et al , issued June 27, 1995 is hereby incoφorated by reference U S Patent No 5,257,309 titled "Dual Tone Multifrequency Signal Detection and Identification Methods and Apparatus" -- Brandman et al , issued October 26, 1993 is hereby incoφorated by reference U S Patent No 5,353,345 titled "Method and Apparatus for DTMF Detection" - Galand, issued October 4, 1994 is hereby incoφorated by reference U S Patent No 5,426,696 titled "Method of Improving Receiver Sensitivity and Speech Immunity With DTMF-Reception" -- Zimbrek, issued June 20, 1995 is hereby incoφorated by reference U S Patent No 5,325,427 titled "Apparatus and Robust Method for Detecting Tones" - Dighe issued June 29, 1994 is hereby incoφorated by reference "Digital Signal Processing Applications Using the ADSP-2100 Family", from Analog Devices Coφoration, Volume 1, Chapter 14, pages 441-500 is hereby incoφorated by reference in its entirety DTMF Detector The present invention comprises a DTMF detector which utilizes a variable frame size or differing frame sizes accordmg to the present invention The DTMF detector is comprised in a digital telephone answermg machine in the current embodiment However, it is noted that the present mvention may be used in various other applications, including telephone switching and interactive control applications, telephone banking, fax on demand, etc The DTMF detector of the present invention may also be used as the DTMF detector in a telephone company Central Office, as desired The present invention was designed to meet CCITT and AT&T standards, although the invention can be reprogrammed or undergo minor modifications to meet other telecommunication standards The preferred embodiment was developed to perform DTMF detection functions and preferably compπses a dual tone detector which detects two tones, wherein each tone is one of a plurality of predetermmed tones from two respective frequency groups However, the present invention may comprise a multi tone multi frequency (MTMF) detector for detecting a greater number of tones in a received signal, l e , two or more tones The two or more tones may be from two or more different frequency groups or from a single frequency group, as desired Thus the system and method ofthe present invention may be used for detecting any number of tones in a received signal Figure 1 - Block Diagram Referring now to Figure 1 , a block diagram of a DTMF detector 102 accordmg to the present invention is shown As shown, the DTMF detector 102 preferably compπses a port or connector or other means 103 for receiving analog or digital signals The port 103 is adapted for coupling to a communications medium, such as a phone line, cable or other transmission line It is noted that the port 103 may comprise any of vaπous means or connectors for coupling to a communications lme The DTMF detector 102 also preferably comprises a coder/decoder (codec) receiver 104 coupled to the port which receives an analog signal and converts the analog signal into digital format The codec receiver 104 preferably samples the analog signal at 8 kHz and utilizes pulse code modulation (PCM) or other suitable techniques to produce correspondmg digital data The codec chip 104 preferably comprises linear analog to digital (A/D) converters and digital to analog (D/A) converters The codec receiver 104 preferably comprises all the necessary A/D, D/A, sampling and filtering circuitry for bi-directional analog digital interfacing Once analog to digital conversion has been performed, digital data or digital samples are generated based upon the analog signal It is noted that the received signal may be compressed or companded, and thus digital data produced by the A/D converter in the codec 104 may be companded, t e , may comprise logarithmically compressed digital data As is well-known in the art, companding refers to logarithmically compressing a signal at die source and expanding the signal at the destination to obtain a high end-to-end dynamic range while reducing dynamic range requirements within the communication channel In this instance, the codec receiver 104 logarithmically expands the data to a linear format, preferably a 16 bit linear format In one embodiment, the port 103 in the DTMF detector 102 receives digital signals (l e , linear or logarithmic PCM) directly from the communication channel or transmission media, and thus a codec 104 is not required in the DTMF detector 102 for analog to digital conversion The DTMF detector 102 also preferably includes a digital signal processor (DSP) 106 coupled to the codec 104 The DSP 106 is preferably from the ADSP-2100 family from Analog Devices, Inc Other equivalent DSPs are acceptable, although a DSP that can perform 16 x 16 bit hardware multiplication is preferred for accuracy reasons It is noted that a software multiplier may be used, although the operating speed will be significantly reduced The DSP 106 receives the digital samples and preferably applies frequency domain techniques, preferably the Goertzel DFT algorithm, using variable or differing frame lengths accordmg to the present invention The Goertzel DFT algorithm divides the sampled time domain signal into a plurahty of discrete blocks or frames and then performs Fourier techniques on each frame to obtain energy values in the frequency domain for each ofthe possible tones The DTMF detector 102 utilizes differing frame widths for different ones of the possible tone frequencies according to the present invention In other words, the DTMF detector 102 utilizes differing frame widths for at least a plurality of the possible tone frequencies The DTMF detector 102 further includes a memory 108 coupled to the DSP which is used by the DSP 106 for storage and retrieval of data Preferably, the memory compπses a RAM (random access memory) for processmg storage and loading of program at the time of operation, and a ROM (read-only memory) for storage of fixed values, such as filter coefficients and other parameters used by the program The program is also preferably stored in the ROM before loaded into RAM The memory requirement for the DTMF detector alone is about 2 0 kbytes of ROM and 200 bytes of RAM The memory requirement is architecturally dependent and also depends on implementation It is noted that the memory 108 may comprise any of various types or sizes as desired It is noted that the present mvention may include a general puφose microprocessor mstead of DSP 106 The present invention may also include dedicated digital and/or analog hardware instead of, or in addition to, the DSP 106 Thus, although the following description descπbes the DSP 106 performmg the present invention, it is noted that the present invention may be performed by a general puφose microprocessor, or the present mvention may be at least partially or totally implemented in digital or analog logic, as desired The use of a programmable DSP 106 is the preferred embodiment ofthe invention Figure 2 - Flowchart Diagram Referring now to Figure 2, a flowchart diagram illustrating operation of the DTMF detector 102 according to the preferred embodiment of the present invention is shown The DTMF detector 102 is coupled to a transmission media As shown, the DTMF detector 102 receives an analog signal and determines whether dual tone multi frequency (DTMF) signals are comprised withm the received signal As shown, the received analog signal may comprise one or more of a DTMF signal, a speech or voice signal, or noise In step 122, the codec 104 in the DTMF detector 102 receives the analog signal and converts the analog signal into digital format In step 122 the codec receiver 104 preferably samples the analog signal at 8 kHz and performs pulse code modulation (PCM) or other suitable techniques to produce corresponding digital data As shown, the codec receiver 104 produces a digital signal referred to as x(n), which is sampled at 8 kHz It is also noted that the received signal may be logarithmically compressed or companded, and thus step 122 may further comprise logarithmically expanding the compressed data to produce linear data The followmg comprises a brief description of steps 124 - 140, and a more detailed descπption of each of the steps follows In step 124 the DSP 106 receives the digital signal x(n) from the codec 104 and performs the Goertzel DFT using differing frame lengths accordmg to the present invention In step 124 the DSP 106 produces a plurality of energy values A(m) where m = 1-16 The plurality of energy values A(m) comprise energy values at each of the two sets of four frequency tones for the first and second harmonics of the frequencies In step 126 the DSP 106 adjusts the gain of each of the energy values A(m) to compensate for differing energy content due to the differing frame lengths The DSP 106 in step 126 produces a plurality of adjusted energy values A'(m) In step 128 the DSP 106 determmes the maximum level of the energy values A'(m) in each frequency group In the following steps 130 - 138 the DSP 106 performs various tests to ensure valid tone detection In steps 130 and 132 the DSP 106 performs static and dynamic thresholding respectively to ensure that the energy values A'(m) meet certain basic criteria The static and dynamic thresholding performed m steps 130 and 132 eliminate invalid DTMF tones based on both signal level and signal/noise ratio After static and dynamic thresholding are performed in steps 130 and 132, in step 134 the DSP 106 performs second harmonic thresholding to prevent detection triggered by speech The DTMF detector ofthe present invention examines the second harmonics of the fundamental DTMF frequencies usmg a novel ratio comparison method according to the present mvention, which further distinguishes speech signals from DTMF signals In step 136 the DSP performs a guard time check to evaluate the frequency domain results and to ensure that the signal lasts at least a certain amount of time The guard time check evaluates the maximum energy values in relation to pπor and subsequent frames for improved detection In step 138, the DSP performs twist computation and thresholding The present mvention uses a novel twist computation technique which only performs the twist computation when the received signal is deemed stable, thus increasing accuracy After the twist computation is performed in step 138, in step 140 the DSP decodes the digit using the column and row indices and outputs the pressed DTMF digit from the received DTMF signals As noted in Figure 2, if any ofthe steps 130-140 fail, then no detection is mdicated Step 124 - Goertzel DFT with Variable Frame Lengths Referring again to Figure 2, in step 124 the DSP 106 receives the digital signal x(n) from the codec 104 and performs the Goertzel DFT for each of the possible tone frequencies using varying or differing frame lengths according to the present invention As discussed in the background section, decoding a DTMF signal involves detecting two tones in the received signal and then determining the number pressed by the user at the sending end based on the values ofthe detected tones More generally, decodmg a MTMF signal involves detecting a plurality of tones in the received signal CCITT recommendations Q 23 and Q 24 in the "Red Book", Volume VI define two groups of frequencies that are used for m-band signaling Group 1 comprises the frequencies 697 Hz, 770 Hz, 852 Hz, and 941 Hz, and these frequencies identify the rows of the telephone keypad, and Group 2 comprises the frequencies 1209 Hz, 1336 Hz, 1477 Hz and 1633 Hz, and these frequencies identify the columns of the telephone keypad 1 he DTMF signals each contain one row and one column frequency, and these signals are assigned using the following table 1209Hz 1336 Hz 1477 Hz 1633 Hz 697 Hz 1 2 3 A 770 Hz 4 5 6 B 852 Hz 7 8 9 C 941 Hz * 0 a D Table 1 DTMF frequency assignments The detection of the dual tones is performed by mathematically transforming the input time domain signal into the frequency domain using various Fourier transform techniques As is well-known, the discrete Fourier transform (DFT) is commonly used to transform discrete time domain signals mto their discrete frequency domain components As also noted in the background section, the Goertzel algonthm is a popular method for performing the DFT computation The Goertzel algorithm offers the accuracy of a DFT-based calculation, while having increased computational efficiency that is comparable to narrow band filter-based algorithms In general, the conventional usage of the Goertzel algorithm is similar to the DFT method and is performed by computing frequency domain values at the desired discrete points As a result, the Goertzel algorithm also has the disadvantage of the DFT, whereby the computed results may not be sufficiently close to the desired frequencies desired to be detected, thus severely reducing accuracy This is referred to as the leakage effect In other words, the DTMF detector 102 is designed to detect dual tones which will occur at specified predefined frequencies In the preferred embodiment, these frequencies are 697 Hz, 770 Hz, 852 Hz, 941 Hz, 1209 Hz, 1336 Hz, 1477 Hz, and 1633 Hz The frequencies used in the DTMF standard are not spaced at equal increments but rather are deliberately designed to be uncorrelated for more accurate detection As a result, if the conventional method of a fixed N (frame size) is used in the Goertzel algorithm, the frequencies are not optimally aligned at the frequency bins The effect is that the desired outputs are not exactly at the frequency bιns( multiples of Fs N) This causes the energy to be distributed among neighboring frequency bins, referred to as leakage Leakage can severely degrade the accuracy of the frequency domain outputs The following table illustrates the effect of leakage using an example of the Goertzel algorithm for DTMF frequency 852 Hz (N = 205) error in K 0 01 0 05 0 1 0 5 1 0 5 0 (%) output gain 94 0 80 6 74 7 60 9 49 6 43 6 (dB) output > 13 4 > 19 3 > 33 1 > 44 4 > 50 4 error(dB) Table 2 The effect of leakage Note K=N*f/fs In general, it has been found that a fixed-frame size of 205 points produces the least error m a Goertzel/DrT computation The inherent property of the DFT requires FNT to be equal to one, where F is the frequency domain resolution, N is the frame size in number of samples, and is also the computed number of outputs in the frequency domain, and T is the smallest period and equals 1/Fs where Fs is the sampling frequency In telephony applications, the period T is equal to 1 Fs = 1/8000 Thus, in order to achieve sufficient resolution, the frame size N is required to be very large As a result, detection of speech is generally slow and computational costs are higher for each result Even worse, a large frame size may result in the detection speed not meeting telecommunications standards Therefore, prior art DTMF detectors which utilize the Goertzel algorithm and/or the DFT and which utilize a fixed frame size N only compute frequency domain values in multiples of Fs N, wherem Fs is the sampling frequency, typically 8000 Hz for telephony applications Therefore, for example, if Fs = 8000 Hz and N = 100 sample points, the Goertzel algorithm only computes results at 80 Hz, 160 Hz, 240 Hz, etc Therefore, in summary since the DTMF standard frequency values are designed to be uncorrelated, in general, no single frame size value N can be chosen which results in all ofthe desired frequencies lined up at Therefore, the present mvention performs the Goertzel algorithm utilizing a varying or differing frame size N for a plurality of the DTMF frequencies to provide increased accuracy and efficiency The DTMF detector 102 of the present invention preferably uses a different frame size for different DTMF tone frequencies and then adjusts the gam after the frequency domain values have been computed This provides increased accuracy and speed over prior art methods The DTMF detector 102 of the present mvention provides better frequency distortion allowance and better twist allowance Referring again to Figure 2, in step 124 the DSP 106 applies the Goertzel DFT method using different frame lengths according to the present invention As shown, the DSP 106 receives a digital signal referred to as x(n), wherein the digital signal x(n) comprises a plurality of samples of a received signal Referring now to Figure 3, The DSP effectively computes 16 Goertzel DFTs with different frame lengths N(l ) - N(16) The different frame lengths for each ofthe Goertzel DFTs are as follows N(1), N(9) = 172, N(2), N(10) = 177, N(3), N(1 1 ) = 178, N(4), N(12) = 178, N(5), N(13) = 172, N(6), N(14) = 168 N(7), N(15) = 168 N(8), N(16) = 176 As shown in Figure 3, the operation of the DSP is represented as 16 Goertzel DFT blocks labeled GDFT ( 1 ) - GDFT - (16) Each of the Goertzel GDFT blocks, GDFT ( 1 ) - GDFT ( 16) produces a respective value A(l ) - A(16) The values A(l ) - A(16) are comprised of four smaller sub-arrays The values A(l) - A(16) are each provided to respective multipliers which multiplies the respective A(n) value with a respective gain These multipliers correspond to the ga adjustment in step 126 of Figure 2 Referring now to Figure 4, a diagram illustrating operation of the Goertzel algorithm is shown As noted above, the Goertzel algorithm evaluates the DFT of mput data with reduced computation and with increased efficiency Operation of the Goertzel algorithm is similar to a filter implementation, wherein the Goertzel algorithm does not require a buffer of input data items prior to operation, but rather computes a new output result with each occurrence of a new input sample As shown in Figure 4, the Goertzel algorithm performs a second order recursive computation ofthe DFT by computing a new Yk(n) output for every new input sample x(n) The DFT result, referred to as X(k) is equivalent to Yk(n) when n = N, i e , X(k) = Yk(N) As shown in Figure 4, the operation of the Goertzel algorithm can be divided into two phases The first phase involves computing the feedback legs in Figure 4 The second phase computes the feed forward when n = N and thus evaluates the value X(k) As discussed above, in the present mvention the DSP 106 performs the Goertzel algorithm shown in Figure 4 using a different frame length for different ones of the DTMF frequency values After the Goertzel DFT is applied to the received digital signal usmg variable frame lengths according to the present invention in step 124, the result is a plurality of frequency spectra values A(m) corresponding to the 8 DTMF standard frequencies or tones for the first and second harmonics The following two tables compare the Goertzel algorithm implementation using a fixed frame size and a variable frame size The first table below illustrates an example using N = 205 as the fixed frame size and shows the K errors It is noted that a fixed frame size of N = 205 is the best possible selection and produces the least maximum error for all K. values K = N * f / fs = 205 * f / 8000 = 0 025625 f DTMF frequency K(floatιng point) K (integer) absolute error ofK % error of 697 Hz 17 861 18 0 139 0 78 % 770 Hz 19 731 20 0 269 1 36 % 852 Hz 21 833 22 0 167 0 76 % 941 Hz 24 1 13 24 0 1 13 0 47 % 1209 Hz 30 981 31 0019 0 06 % 1336 Hz 34 235 34 0 235 0 69 % 1477 Hz 37 848 38 0 152 0 40 % 1633 Hz 41 846 42 0 154 0 37 % The transfer function for Goertzel algorithm is 1 H(z) \ - 2 cos(2πk l N)∑ 1 ' + , ∑ _ -2 where -j2πk/N Based on the above information, it is very important to reduce the error ofthe K values As discussed above, the system and method of the present invention uses different Ν values for different frequencies The table below describes the different Ν values or frame sizes used according to the preferred embodiment of the invention for the different DTMF tone frequencies The table also illustrates the associated K errors Std DTMF Ν K (floating K(mteger) Absolute error % error of K frequency point) ofK 697 Hz 172 14 985 15 0014 0 09 % 770 Hz 177 17 036 17 0 036 0 20 % 852 Hz 178 18 957 19 0 043 020 % 941 Hz 178 20 937 21 0 063 0 30 % 1209 Hz 172 25 993 26 0 007 0 02 % 1336 Hz 168 28 056 28 0 056 0 20 % 1477 Hz 168 31 017 31 0 017 0 05 % 1633 Hz 176 35 926 36 0 074 0 20 % Using this method, the present invention reduces the K error to less than 0 3 %, as compared with up to 1 36 % for prior art methods using fixed Ν In addition, the Ν values or frame sizes are reduced from 205 to 178 or less, which allows earlier detection by 15% or more Therefore, the DSP 106 preferably uses up to 178 digital speech samples which are input to the Goertzel algorithm A different number of these samples are used for the different tone frequencies Application ofthe Goertzel algorithm produces an array of 16 frequency domain values, wherein the outputs are basically discrete Fourier transform results. Eight of these values are for the fundamental frequencies and eight are for the second harmonics. This is illustrated in Figures 3 and 4. Most DFT/Goertzel based algorithms have difficulty meeting the required frequency distortion allowance. The frequency distortion allowance requires that all DTMF signals with a certain percentage of frequency distortion have to be detected as valid DTMF tones. However, if the distortion exceeds a certain larger percentage, then detection must be denied. The frequency distortion allowance criteria is described below. Let Fdtmf be a standard frequency and F is the actual frequency. Then: if Fdtmf * ( 1 - 2.5%) < F < Fdtmf * ( 1 + 2.5 %), then it is a valid tone if F > Fdtmf * ( 1 + 3.5 %) or F < Fdtmf * ( 1 - 3.5 %) then it is not a valid tone. One advantage of using variable frame sizes is that the DTMF detector 102 more easily meets the required frequency distortion allowance. If the desired frequency is located exactly at the bin (the detecting frequency) of the Goertzel algorithm, then +2.5 % error in the input frequency decreases the output the same amount as a -2.5 % error in the signal. The reason is that both errors are at the same distance from the bin. This is not the case if the desired frequency has error relative to the bin, it being noted that error is unavoidable if a fixed frame size is used. For example, assume that the desired frequency is 2.0 % bigger than the frequency bin. In this example, -2.0% error in the input signal moves the frequency nearer to the bin and generates the largest output result. On the other hand, +2.5 % error moves the frequency further away from the bin and generates a very small output. The asymmetric effect makes it very difficult to set the threshold for frequency distortion allowance test, therefore not meeting the very stringent telecom standards. Significant computational resources are necessary to determine if an energy value is at the right side or left side ofthe frequency bin. Therefore, setting different thresholds for left and right side distortion, i.e., actual frequency greater or smaller than the desired frequency, is not an adequate solution. Step 126 - Gain Adjustment In step 126 the DSP 106 preferably performs gain adjustment, as shown in Figure 3. Calculating the frequency spectrum using different frame lengths N produces differing energy contents in a plurality of the energy values. Thus the DTMF detector 102 preferably multiplies a gain value with each of the energy values to adjust the gain of each of the energy values. It is noted that the present invention provides better results even without gain adjustment. However, gain adjustment is desirable since different frame lengths have been applied to different frequencies and also because different Goertzel algorithm transfer functions have different gains at the narrow pass band. Thus the present invention preferably adjusts the gain in order to more correctly evaluate the results in the array A[ 1 ... 16]. After the gain adjustment in step 126, the result is a modified frequency spectra values A'(m). The gains were computed and also verified using laboratory method. The gain adjustments used in the preferred embodiment are listed below: Freq(Hz): Gain factor: 697 1.00000000 770 0.98902064 852 0.97439963 941 0.97849229 1209 1.00475907 1336 1.03484721 1477 1.02940728 1633 0.99550578 In the preferred embodiment, the DTMF detector 102 does not use the second harmonic outputs for computing twist. Therefore, gain adjustment for the second harmonics is less important. Thus, in the preferred embodiment, gain adjustment for the second harmonics is not performed in order to save computational resources. Assuming the gain factor for frequency Fl is G l , then the gain adjustment is calculated by performing: A'(1)= G1 * A(1) This is performed on the first eight elements in the Goertzel output array A[l,..,8] , i.e., the first harmonics, and a new array A'[l,..,16] is generated. The new array comprises the gain adjusted Goertzel DFT output. It is noted that the array elements A[9...16] are not adjusted and thus these values remain the same, i.e., A'[9...16] = A[9...16]. Step 128 - Determining the Maximum Gain in Each Frequency Group As noted above, the gain adjustment performed in step 126 produces four sub-arrays of the first and second harmonics ofthe row and column frequencies ofthe DTMF standard frequencies. In other words, the array A'[l,..,16] is comprised of four smaller arrays. Sub-array A'[l,..,4] comprises the values for the fundamental row frequencies and determines the row to which the pushed key belongs. Sub-array A'[5,..,8] comprises the values for the fundamental column frequencies and determines the column to which the pushed key belongs. The sub-array A'[9,..,12] comprises the DFT values for the second harmonics of the row frequencies, and the sub-array A'[13,..,16] comprises the values for the second harmonics for the column frequencies. Referring now to Figure 5, a block diagram is shown illustrating operation of step 128 in Figure 2. As shown in Figure 5, operation of the DSP 106 is represented as four blocks 151, 152, 153, and 154, wherein each of the blocks determines the value in the respective sub-array that has the maximum value or gain. The blocks 151 and 152 for the two first harmonic sub-arrays also obtain the respective index of the maximum gain value. The blocks 151 and 152 for the sub-arrays A'[l,..,4] and A'[5,..,8] each provide outputs comprising the maximum value in the sub-array and the respective index. The blocks 153 and 154 for the sub-arrays A'[9,..,12] and A'[13,.., 16] provide outputs comprising the respective maximum values in each ofthe sub-arrays. Thus in step 128 the DSP 106 determines the maximum value in the first two sub-arrays and the respective indices within the sub-array. This step can be described using pseudo code: M[1 ]= 0, I[1}= 0, for ( l = 1 to 4) { ιfA'[ι] > M[l] then M[l] = A'[ι], I[ l] = ι, endif } M[2] = 0, 1[2]= 0, for (l = 5 to 8) { ιf A'[ι] > M[2] then M[2] = A'[>], I[2] = i, endif } Thus, in step 128 the DSP 106 obtains the maximum values ofthe row and column frequency group ( M[l], M[2] ) and their respective index (I[l ], I[2] ) for the first harmonic sub-arrays In the preferred embodiment, the DSP 106 does not determine the indices for the second harmonics Rather the DSP 106 only obtains the maximum frequency output for the second harmonics of the row frequency, M[3], and the maximum frequency output for the second harmonics of the column frequency, M[4], as shown in Figure 5 Steps 130 and 132 - Static and Dynamic Thresholding The present invention also includes a method for improving the DTMF detector's functional dynamic range and noise immunity by performing static thresholding followed by dynamic thresholding This method increases the functional input signal dynamic range and has greater speech/noise immunity, l e , is more able to avoid detection triggered by speech or noise The static and dynamic thresholdmg performed in steps 130 and 132 eliminate invalid DTMF tones based on both signal level and signal/noise ratio The use of both static and dynamic thresholding allows a small static threshold to be selected, thus providing the DTMF detector with a wider dynamic range The dynamic thresholding in step 132 essentially performs a signal/noise ratio estimate, preferably using the ratio between the maximum value in the group and the second largest value in the sub-array The dynamic threshold performed step 132 provides a threshold comparison usmg an acceptable signal/noise ratio, which effectively prevents noise or speech-triggered detection, l e , provides better speech immunity Referring now to Figure 6, a flowchart diagram illustrating operation of the static thresholdmg step 130 is shown in Figure 1 As shown, the maximum values from the first two sub-arrays correspondmg to the first harmonic row and column frequency values are received in the static thresholding step 130 As shown, in step 242 the DSP 106 determines if M( 1 ) > Ts, l e , if the maximum value of the first sub-array is greater than Ts If not, then no detection occurs and operation completes If M(l ) > Ts in step 242, then step 244 the DSP determmes if the value M(2) is greater than Ts If not, then agam no detection is determmed If both M(l) and M(2) are greater than the threshold value Ts, then dynamic thresholdmg is performed on these values in step 132 of Figure 2 Referring now to Figure 7 the dynamic thresholding step 132 is shown As shown, the dynamic thresholding step compares the ratio of the maximum value M( 1 ) m the first sub-array to each of the other values m the sub-array A'[ l], A'[2], A'[3] and A'[4], and sets the signal/noise ratio error as the minimum ratio Likewise, the DSP 106 in step 132 determmes the mmimum ratio of M(2) with each of the other values from the sub-array A'[5], A'[6], A'[7] and A'[8], and sets the signal/noise ratio accordmgly More specifically, in Figure 7 the DSP 106 compares the ratio of the maximum value Ml and each of the other values in the sub-array A'[l], A'[2], A'[3] and A'[4] with a value Td and sets the SNR error as the ratio which is less than Td Likewise, the DSP 106 compares the ratio of the maximum value M(2) and each of the other values in the sub-array A '[5], A'[6], A'[7] and A'[8] with a value Td and sets the SNR error as the ratio which is less than Td Because Td = 10 <req π:d SNR " dB 0) , setting the SNR error means that either or both the column and row frequency values do not meet the required SNR If SNR error is set, no detection is indicated Thus the frequency domain values ( A'[l,. ,16] ) obtained through the Goertzel algorithm and gam adjustment are compared against thresholds using both static and dynamic techniques In the preferred embodiment, the static threshold is set to 6 (which provides a theoretical functional dynamic range of over 50 dB) and the dynamic threshold is set to 4 (about 12 dB) This allows very small DTMF signals (wide dynamic range) to be detected, as long as the signals have an acceptable signal to noise ratio This also effectively eliminates most idle channel noise, speech, and white noise Step 134 - Second Harmonic Thresholdmg In step 134, the DSP 106 performs second harmonic thresholding to further examine the validity of the detected tones and eliminate speech triggered DTMF detection This occurs before DTMF detection and usually is a continuous task for the DSP 106, even after the channel has been established The human voice, especially the female voice, can have a large amount of energy components over 1000 Hz and can be mistaken as DTMF signal Some music can also trigger DTMF detection Thus speech detection and/or speech immunity is a very important criteria for evaluating the quality of a DTMF detector As discussed above, a real DTMF signal is the sum of two sinusoids and has two steep peaks in the frequency domain Thus, a real DTMF signal does not have significant energy at second or higher harmonics Speech on the other hand generally always has a significant amount of energy at the second and higher harmonics This characteristic of speech make it easier to distinguish speech from DTMF signal Thus the present invention examines the second harmonics ofthe fundamental DTMF frequency Prior art methods have conventionally examined the value of the second harmonics, A'[9, ,16] According to the present invention, the DSP 106 compares the second harmonics with the values at the fundamental harmonics, A'[l, ,8] The DSP 106 computes the ratio of M[ l]/M[3] and M[2]/M[4], and compares the results with a pre-set threshold It is noted that the ratio A'[i] / A'[ι+8] ( assuming A'[ι] is the biggest value in its group) is not used because, if the speech has some energy at a frequency x% away from the bin, its second harmonic will have a distance of 2x% from the second harmonic bin Therefore, the present invention uses the maximum value in the second harmonic group to provide an estimate ofthe energy at the second harmonics This is beneficial to talk-off performance ofthe DTMF detector Referring now to Figure 8, a flowchart diagram illustrating operation of the second harmonic thresholding performed in step 134 of Figure 2 is shown As shown, in Figure 8 the DSP 106 compares the ratio of the maximum values of the first and second harmonics, M1/M3, with the threshold value Tsh, and also compares the ratio of the maximum values of the first and second harmonics of the column frequency, l e , the ratio M2/M4, and determines if this value is greater than the threshold Tsh If either of the ratios M1/M3 or M2/M4 are not greater than the threshold Tsh, then a speech error signal is generated mdicating that the detected signal actually corresponds to speech and not to a DTMF signal Step 136 - Guard Time Check The present invention discloses an improved guard time check method which overcomes the difficulty of meeting the guard-time performance requirement when using frame based processing methods (such as the Goertzel algorithm) The present invention also uses a larger cut-off duration value (but less than Tl) as descπbed below A larger cut-off duration value provides better talk-off performance for the DTMF detector This is because speech triggered 'fake DTMF signals' tend to have a short duration, while also having a frequency domain energy presentation which appears like a DTMF signal The guard-time parameter requires that all DTMF signals havmg a duration longer than Tl be detected as valid DTMF tones, I e , no misses are allowed) whereas all DTMF signals shorter than T2 (T2 < Tl) can not be detected as valid DTMF signals All tones have a duration between Tl and T2 are 'don't care which means the detector has the flexibility to either detect or miss the signal In general, it is deemed desirable to have a fixed cut-off value to warrant the guard-time performance The AT&T standard, and most other standards, require that any DTMF sequence longer than 40 ms must be accepted if it meets all other criteria A DTMF sequence shorter than 20 ms should never be detected Since the DTMF detector 102 ofthe preferred embodiment processes the speech sample as blocks, the DTMF detector 102 compares the maximum values( M[l] and M[2]) with the values from the previous and next frame to determine if the DTMF signal lasts at least 40 ms Referring now to Figure 9, a flowchart diagram illustrating the guard time check operation performed in step 136 of Figure 1 is shown As shown, in step 312 the DSP 106 determines if the index values I[l] and I'[l] are equal and index values I[2] and F[2] are equal Thus, this step determines if the DTMF signal has lasted a certain period of time More specifically, this step determines if the indices of maximum values in consecutive frames are identical If so, then in step 314 the DSP 106 computes the ratio or gain of the maximum value from the current and prior frame for each of the row and column frequencies In other words, in step 314 the DSP 106 computes G( 1) = M(1) / M'(l), G(2) = M(2) / M'(2), In steps 316 and 318 the DSP 106 determines if the computed ratios Gl and G2 are withm a range > 1/TG and < TG If the DSP 106 detects a DTMF signal which meets all ofthe criteria described above in steps 130 - 134, then the DSP 106 compares the maximum values with the values at the previous frame only if the indices remain the same If the ratio, l e , the result ofthe division, ofthe maximum values from the current and pπor frame is greater than the value Tg, then the signal passes the guard-time check It is noted that the value Tg is a programmable value that can be changed to meet different guard-time requirements The value Tg is preferably 2 5 Thus in step 136 of Figure 2 the DTMF detector 102 determines if the detected signal is of sufficient length to actually be a DTMF signal If the guard time check fails, the DSP 106 waits for the computation of next frame and compares the maximum value of current frame with the maximum value in the next frame, also assummg that the row and column mdices remain the same If the result is greater than Tg, the signal still passes the guard-time check If tins comparison fails again, then the signal on the current frame fails the guard-time check and cannot be recognized as a valid DTMF signal Step 138 - Twist Computation and Thresholding If the signal passes all of the above steps, then the final stage of evaluation is the twist check Like the other parameters described above, twist is another important criteria to eliminate unqualified signals The twist of a DTMF signal is defined as the level difference in dB between the higher and the lower tone M(2) Twist = 201ogιo M(\) Thus, if the twist is positive, the higher frequency level tone (the column frequency) is greater than the lower frequency level tone (the row frequency) In this instance, the twist is called forward twist If the twist is negative, i e , if the higher frequency level tone (the column frequency) is less than the lower frequency level tone (the row frequency), then the twist is called backward twist A telecom standard typically defines a twist allowance between a forward twist threshold and a backward twist threshold For example, AT&T requires -8 dB < twist < +4 dB When a DTMF signal travels through a telephone channel, distortion and noise are added to the DTMF signal and cause phase delay, group delay and even severe amplitude distortion These factors complicate the twist computation Accordmg to the present invention, the DTMF detector 102 performs a twist computation only when the signal becomes stable The DSP 106 monitors the outputs M[l] and M[2], which are the gain adjusted outputs from step 128, and only updates the twist value when both the higher and lower tone level in the current frame is greater then the previous frame, assuming that the row and column indexes, I[l] and I[2], remain the same This method is illustrated in Figure 10 and is executed as the following pseudo-code IF I[ l] = r[l] AND I[2] == I'[2] THEN IF M[ 1 ] > M'[1 ] AND M[2] > M'[2] THEN Twist = 20 log 10 (M[2]/M[l] ) ELSE Twist = Twist' ENDIF ENDIF In practical implementation, only a linear twist value is computed to avoid logarithmic computation, and the linear twist value is then compared with linear twist thresholds to determine if the detection meets the twist requirement. Note: Twist' is the twist value for the previous frame I'[l ] is I[l] in the previous frame, I'[2] is I[2] in the previous frame M'[ l] is M[l] in the previous frame, and M'[2] is M[2] in the previous frame DTMF Receiver Results Using MITEL 7292 Test Tape The following tests were performed on the DTMF detector of the present invention using the Mitel 7292 test tape. Test 1 : Frequency Distortion Allowance Digit 1 5 9 D Low +2.5% +2.8% +2.4% +2.2% Band Group -2.7% -2.3% -2.4% -2.0% High +2.5% +2.0% +2.1% +2.0% Band Group -2.8% -2.8% -2.3% -2.0% Test 2: Twist Test Digit 1 5 9 D Forward +3.7 dB +3.7 dB +3.5 dB +3.7 dB Twist Backward -8.0 dB -7.5 dB -7.5 dB -8.0 dB Twist Test 3 : Dynamic Range Test 34 dB (Maximum Input Signal dynamic range) Test 4: Guard-time Test : 28.9 ms. Test 5: Signal to Noise Ratio Test Input SNR 24 dB 18 dB 12 dB Detection 1000/1000 1000/1000 1000/1000 Test 6: Talk-off Test: 6 hits (one real DTMF signal and five false detections). System Requirements: Processing power: < 1.2 MIPS. ROM usage: 314 words. RAM usage: 69 words. Conclusion Therefore, the present invention comprises a system and method for performing DTMF detection with improved speed and accuracy. The combined methods of using varying frame sizes, combined static/dynamic thresholding, second harmonic thresholding, guard-time protection, and twist computation provide very good talk-off performance. The DTMF detector 102 of the present invention only has about 6 hits running the Mitel CM7291 standard test tape, whereas an algorithm which registers less than 10 hits is considered very good. The present invention also provides excellent performance in meeting other parameter criterias. Although the system and method ofthe present invention has been described in connection with the preferred embodiment, it is not intended to be limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the spirit and scope ofthe invention as defined by the appended claims.

Claims: Claims 1 A method for detecting dual tone multifrequency (DTMF) signals, compnsmg receiving a plurality of digital samples of a received signal, wherein said received signal includes a plurality of tones, wherein said plurality of tones comprise two or more tones from a plurality of different uncorrelated frequencies, wherein said plurality of different uncorrelated frequencies comprise two or more frequency groups, calculating a frequency spectrum on said plurality of digital samples for each of said plurality of different uncorrelated frequencies, wherein said calculating uses a frame length N comprising at least a subset N of said digital samples for each of said different uncorrelated frequencies, wherein said calculating uses a different frame length N of said digital samples for at least a plurality of said different uncorrelated frequencies, wherein said calculating produces an energy value for each of said different uncorrelated frequencies, determining maximum values of said energy values for each of said two or more frequency groups to detect said plurality of tones in said received signal 2 The method of claim 1 , wherein said calculating a frequency spectrum using different frame lengths N produces differing energy contents in a plurality of said energy values, the method further comprising multiplying gam values with at least a plurality of said energy values to adjust the gain of said energy values, wherein said multiplying occurs after said calculating a frequency spectrum on said plurality of digital samples and prior to said determining maximum values of said energy values 3 The method of claim 2, wherein said multiplying gain values with at least a plurality of said energy values to adjust the gam of said energy values comprises multiplying different ga values with at least a plurality of said energy values, wherein the magnitudes of said different gam values depend on the size of said different frame lengths N for said different uncorrelated frequencies, wherem the magnitudes of said different gain values further depend on the difference between said uncorrelated frequencies and said calculated frequency spectrum, wherein said different gain values compensate for said differing energy contents in said plurality of said energy values 4 The method of claim 1 , wherein said different frame lengths N are designed to optimally align said calculated frequency spectrum at said different uncorrelated frequencies for each of said plurality of different uncorrelated frequencies 5 The method of claim 1, wherein said calculating a frequency spectrum on said plurality of digital samples for each of said plurality of different uncorrelated frequencies comprises performmg a Goertzel algorithm on said plurality of digital samples for each of said plurality of different uncorrelated frequencies wherein said performing said Goertzel algorithm uses a different frame length N of said digital samples for a plurality of said different uncorrelated frequencies 6 The method of claim 1 , wherem said calculating a frequency spectrum on said plurality of digital samples for each of said plurality of different uncorrelated frequencies compπses performing a Discrete Fourier Transform (DFT) on said plurality of digital samples for each of said plurality of different uncorrelated frequencies, wherein said performing said DFT uses a different frame length N of said digital samples for a plurality of said different uncorrelated frequencies 7 The method of claim 1, wherein said plurality of different uncorrelated frequencies comprise two frequency groups mcludmg a first frequency group comprising frequencies 697 Hz, 770 Hz, 852 Hz, and 941 Hz, and a second frequency group comprising frequencies 1209 Hz, 1336 Hz, 1477 Hz, and 1633 Hz 8 The method of claim 7 wherein said different frame lengths N have the following values for said first and second frequency groups DTMF frequency N 697 Hz 172 770 Hz 177 852 Hz 178 941 Hz 178 1209 Hz 172 1336 Hz 168 1477 Hz 168 1633 Hz 176 9 The method of claim 1 , wherein said calculating a frequency spectrum compπses calculating a frequency spectrum on said plurality of digital samples for first and second harmonics of each of said plurality of different uncorrelated frequencies, wherein said calculating uses the same frame length N of said digital samples for both said first and second harmonics, and uses a different frame length N for a plurality of said different uncorrelated frequencies 10 The method of claim 1, further comprising receiving said received signal, wherein said received signal includes a plurality of tones, wherem said plurality of tones compπse two or more tones from a plurality of different uncorrelated frequencies, wherein said plurality of different uncorrelated frequencies compπse two or more frequency groups, and performing analog to digital conversion on said received signal to produce said plurality of digital samples of said received signal 1 1 A dual tone multifrequency detector for detect g dual tone multifrequency (DTMF) signals, compnsmg means for receiving a plurality of digital samples of a received signal, wherein said received signal includes a plurality of tones, wherein said plurality of tones comprise two or more tones from a plurality of different uncorrelated frequencies, wherein said plurality of different uncorrelated frequencies comprise two or more frequency groups, a digital signal processor for calculating a frequency spectrum on said plurality of digital samples for each of said plurality of different uncorrelated frequencies, wherein said digital signal processor uses a frame length N comprising at least a subset N of said digital samples for each of said different uncorrelated frequencies, wherein said digital signal processor uses a different frame length N of said digital samples for at least a plurality of said different uncorrelated frequencies, wherein said digital signal processor produces an energy value for each of said different uncorrelated frequencies, wherein said digital signal processor determines maximum values of said energy values for each of said two or more frequency groups to detect said plurality of tones in said received signal 12 The dual tone multifrequency detector of claim 1 1 , wherem said digital signal processor calculating a frequency spectrum using different frame lengths N produces differing energy contents a plurality of said energy values, wherein said digital signal processor multiplies gam values with at least a plurality of said energy values to adjust the gain of said energy values 13 The dual tone multifrequency detector of claim 12, wherem said digital signal processor multiplies different gain values with at least a plurality of said energy values, wherein the magnitudes of said different gain values depend on the size of said different frame lengths N for said different uncorrelated frequencies, wherein the magnitudes of said different gain values further depend on the difference between said uncorrelated frequencies and said calculated frequency spectrum, wherein said different gain values compensate for said differing energy contents in said plurality of said energy values 14 The dual tone multifrequency detector of claim 12, wherein said different frame lengths N are designed to optimally align said calculated frequency spectrum at said different uncorrelated frequencies for each of said plurality of different uncorrelated frequencies 15 The dual tone multifrequency detector of claim 1 1 , wherein said digital signal processor performs a Goertzel algorithm on said plurality of digital samples for each of said plurality of different uncorrelated frequencies, wherein said digital signal processor uses a different frame length N of said digital samples for a plurahty of said different uncorrelated frequencies in performmg said Goertzel algorithm 16 The dual tone multifrequency detector of claim 1 1 , wherein said digital signal processor performs a Discrete Fourier Transform (DFT) on said plurality of digital samples for each of said plurality of different uncorrelated frequencies, wherein said digital signal processor uses a different frame length N of said digital samples for a plurality of said different uncorrelated frequencies in performmg said DFT 17 The dual tone multifrequency detector of claim 1 1 , wherein said plurality of different uncorrelated frequencies comprise two frequency groups including a first frequency group compnsmg frequencies 697 Hz, 770 Hz, 852 Hz, and 941 Hz, and a second frequency group comprising frequencies 1209 Hz, 1336 Hz, 1477 Hz, and 1633 Hz 18 The dual tone multifrequency detector of claim 17, wherem said different frame lengths N have the following values for said first and second frequency groups DTMF frequency N 697 Hz 172 770 Hz 177 852 Hz 178 941 Hz 178 1209 Hz 172 1336 Hz 168 1477 Hz 168 1633 Hz 176 19 The dual tone multifrequency detector of claim 1 1 , wherein said digital signal processor calculating a frequency spectrum comprises calculating a frequency spectrum on said plurality of digital samples for first and second harmonics of each of said plurality of different uncorrelated frequencies, wherein said calculating uses the same frame length N of said digital samples for both said first and second harmonics, and uses a different frame length N for a plurality of said different uncorrelated frequencies 20 A dual tone multifrequency detector for detecting dual tone multifrequency (DTMF) signals, comprising a coder/decoder (codec) which receives an analog mput signal and generates a plurality of digital samples of the received analog input signal, wherein said received analog input signal includes a plurality of tones, wherein said plurality of tones comprise two or more tones from a plurahty of different uncorrelated frequencies, wherein said plurality of different uncorrelated frequencies comprise two or more frequency groups, a digital signal processor for calculating a frequency spectrum on said plurahty of digital samples for each of said plurality of different uncorrelated frequencies, wherein said digital signal processor uses a frame length N comprising at least a subset N of said digital samples for each of said different uncorrelated frequencies, wherein said digital signal processor uses a different frame len th N of said digital samples for at least a plurality of said different uncorrelated frequencies, wherein said digital signal processor produces an energy value for each of said different uncorrelated frequencies, wherein said digital signal processor determines maximum values of said energy values for each of said two or more frequency groups to detect said plurality of tones in said received signal 21 A method for detecting multi tone multifrequency (MTMF) signals, compnsmg receivmg a plurality of digital samples of a received signal, wherein said received signal includes a plurality of tones, wherein said plurality of tones comprise two or more tones from a plurality of different uncorrelated frequencies, wherein said plurality of different uncorrelated frequencies comprise one or more frequency groups, calculating a frequency spectrum on said plurality of digital samples for each of said plurality of different uncorrelated frequencies, wherein said calculating uses a frame length N compnsmg at least a subset N of said digital samples for each of said different uncorrelated frequencies, wherem said calculating uses a different frame length N of said digital samples for at least a plurality of said different uncorrelated frequencies, wherein said calculating produces an energy value for each of said different uncorrelated frequencies, determining maximum values of said energy values for each of said one or more frequency groups to detect said plurality of tones in said received signal 22 The method of claim 21, wherein said calculating a frequency spectrum using different frame lengths N produces differing energy contents in a plurality of said energy values, the method further comprising multiplying different ga values with at least a plurality of said energy values to adjust the gam of said energy values, wherein said multiplying occurs after said calculating a frequency spectrum on said plurality of digital samples and prior to said determining maximum values of said energy values 23 The method of claim 21 , wherein said different frame lengths N are designed to optimally align said calculated frequency spectrum at said different uncorrelated frequencies for each of said plurality of different uncorrelated frequencies 24 The method of claim 21 , wherein said calculating a frequency spectrum on said plurahty of digital samples for each of said plurality of different uncorrelated frequencies comprises performmg a Goertzel algorithm on said plurality of digital samples for each of said plurality of different uncorrelated frequencies, wherein said performmg said Goertzel algorithm uses a different frame length N of said digital samples for a plurality of said different uncorrelated frequencies 25 A multi tone multifrequency detector for detecting multi tone multifrequency (MTMF) signals, comprising means for receivmg a plurality of digital samples of a received signal, wherem said received signal includes a plurality of tones, wherein said plurality of tones compπse two or more tones from a plurality of different uncorrelated frequencies, wherein said plurality of different uncorrelated frequencies comprise one or more frequency groups, a digital signal processor for calculating a frequency spectrum on said plurality of digital samples for each of said plurality of different uncorrelated frequencies, wherein said digital signal processor uses a frame length N comprising at least a subset N of said digital samples for each of said different uncorrelated frequencies, wherein said digital signal processor uses a different frame length N of said digital samples for at least a plurality of said different uncorrelated frequencies, wherein said digital signal processor produces an energy value for each of said different uncorrelated frequencies, wherein said digital signal processor determines maximum values of said energy values for each of said one or more frequency groups to detect said plurahty of tones in said received signal 26 The multi tone multifrequency detector of claim 25, wherem said calculating a frequency spectrum using different frame lengths N produces differing energy contents in a plurality of said energy values, wherein said digital signal processor multiplies a gam value with at least a plurality of said energy values to adjust the gain of said energy values 27 The multi tone multifrequency detector of claim 25, wherein said different frame lengths N are designed to optimally align said calculated frequency spectrum at said different uncorrelated frequencies for each of said plurality of different uncorrelated frequencies 28 The multi tone multifrequency detector of claim 25, wherein said digital signal processor performs a Goertzel algorithm on said plurality of digital samples for each of said plurality of different uncorrelated frequencies, wherein said digital signal processor uses a different frame length N of said digital samples for a plurality of said different uncorrelated frequencies m performing said Goertzel algorithm

Inventors: BARTKOWIAK JOHN G, XIE ZHENG-YI, BARTKOWIAK, JOHN, G., XIE, ZHENG-YI
Applicants: ADVANCED MICRO DEVICES INC, ADVANCED MICRO DEVICES, INC.
Application year: 1996
Main classification: H04Q1
IPC codes: H04Q1