WO2000030325A1 - Method and apparatus for detecting signalling tones - Google Patents

Method and apparatus for detecting signalling tones Download PDF

Info

Publication number
WO2000030325A1
WO2000030325A1 PCT/RU1998/000353 RU9800353W WO0030325A1 WO 2000030325 A1 WO2000030325 A1 WO 2000030325A1 RU 9800353 W RU9800353 W RU 9800353W WO 0030325 A1 WO0030325 A1 WO 0030325A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
signal
cadence
tone
processing period
Prior art date
Application number
PCT/RU1998/000353
Other languages
French (fr)
Inventor
Michael Leong
Yuri Zakharov
Original Assignee
Nortel Networks Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nortel Networks Limited filed Critical Nortel Networks Limited
Priority to PCT/RU1998/000353 priority Critical patent/WO2000030325A1/en
Priority to AU24433/99A priority patent/AU2443399A/en
Publication of WO2000030325A1 publication Critical patent/WO2000030325A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/82Line monitoring circuits for call progress or status discrimination

Abstract

A general purpose network tone detection method and apparatus that allows the precise and accurate recognition of North American tones (MF, DTMF (Dual-Tone Multifrequency) and CPT (Call Progress Tones)) and international MF-R2 tones as well as taking into consideration other common tones such as Calling Card Service Prompt and Recall Dial. Through the use of the Discrete Fourier Transform (DFT) on small time windows and by providing phase continuity between these windows, the results of the successive DFTs may be combined and processed by a second DFT computation. This second DFT allows higher frequency resolution without requiring the re-computation of the DFT from the time samples.

Description

Title: METHOD AND APPARATUS FOR DETECTING SIGNALLING TONES
Field of the invention
This invention relates to a method and an apparatus for detecting and discriminating between various types of electronic signals. More specifically it relates to telephone call processing and is particularly applicable to audible tones such as call progress tones (CPT) specifically in the area of telephone networks.
Background of the Invention
Telephone service providers increasingly supply a wide variety of options and features to subscribers, such as call waiting, three-way calling and credit card calling among many others. All these services are implemented to provide customers with conveniences and facilities that were unavailable a few years back.
In order to acfrieve communication between various units of a telephone network and with users and hence provide these services, telephone systems require various types of control signals. These signals include tones which are used to convey information to the system from the user or, alternatively, to inform the user of the current status of a telephone transaction. Tones may also be used to communicate between switches and other parts of the telephone network itself.
The correct detection of a tone is crucial to the functioning of the telephone network since the latter relies on them for operations such as dialling, billing and coin identification. Users also rely on these tones for information such as busy, dialling and dial tone. As a concrete example, automatic redial when faced with a billing signal and recognition of an incoming fax would not be possible without accurate tone recognition. Four categories of signalling are commonly used each with its own specifications and purposes. They are multi-frequency (MF) tones, dual-tone multi-frequency tones (DTMF) , international MF-R2 tones and call progress tones (CPT) . There are other signalling sequences that are not mentioned here since their purposes are similar in nature to the four signalling conventions mentioned above. Of particular interest here are call progress tones (CPT). Two separate devices are involved in the tone communication process: the transmitter, which creates and propagates the tones, and the receiver, which receives and decodes them.
Detection of tones is a problem that has been addressed in the past. For example Bennett et al., U.S. Patent 5,311,589 assigned to AT&T Bell Laboratories, describes a method to process DTMF and CPT tone using the Goertzel algorithm and a logical processing stage. The contents of this document are hereby incorporated by reference .
The correct detection of a tone by the receiver implies that the signal originating from a transmitter station is accurately decoded by the receiver as being the transmitted tone. Correct detection by the receiver of a digit encoded using any signalling methods also requires both a valid combination of frequencies and the correct timing element. A valid combination of frequencies implies that the receiver is able to discern that there is only the specified frequencies present and that these frequencies are located at or at least within reasonable distance of the nominal values. Furthermore the receiver is also able to verify within reasonable accuracy that the amplitude, twist and other characteristics of the tone conforms to certain pre-determined values. The receiver should also be able to obtain within reasonable accuracy the duration of tone in order to determine if it is valid when compared to pre-determined duration requirements such as inter-tone gaps, cadence and other temporal specifications. Tone receiver systems have been developed in many parts of the world and, although it is difficult to describe a standard tone receiver architecture, some characteristics are shared between many of them. Figure 1 illustrates a typical tone receiver system as present in the prior art. A typical tone communication system of the type depicted in Figure 1 generally comprises a device such as a transmitter 102 which encodes and transmits tones serially in a communication channel. The transmitter 102 could be a simple touch-tone telephone or be included as part of a telephone switch. A combination of the tones transmitted constitutes a tone pattern which typically has frequencies in the voice range (~ 180 - 3600 Hz) . Hence, in a telephone network, the communication channel is the voice channel. At the other end of the channel a receiver 100 is connected. The receiver 100 monitors the communication channel, detects and decodes the signal and, in turn, transmits the decoded information to another device such as a controller 116.
A typical prior art receiver 100 can be separated into five functional blocks namely an anti-aliasing low-pass filter 105, an analog to digital (A/D) converter 106, a storage buffer unit 108, a spectral processor 110 and a validation unit 112. Although a few receivers still use the analog signal directly, the trend is clearly towards digitisation because it can be processed by a digital computer and be implemented on an easily programmable DSP chip. In certain circumstances, the incoming signal may be digital.
In these cases the A/D converter 106 would not be required.
Typically, the incoming signal is digitally sampled by an analog to digital (A/D) 106 converter and assembled into frames in a storage buffer unit 108. These frames are then analysed at predetermined frequencies in order to obtain the frequency characteristics of the signal during that frame. Generally, the analysis is performed in two separate units 110 112.
The spectral processor 110 analyses the spectral characteristics of the samples received from the storage buffer unit 108 to obtain frequency and amplitude information for each frame. This analysis is similar for all types of signals differing perhaps by the frequencies analysed. Furthermore, this operation requires large computational power and limits the system in its processing capability. Traditionally, the spectral properties of tones have been detected by means of a bank of bandpass filters, one for each possible frequency in the tone. This is shown in figure 2 for the detection of a Multi-Frequency (MF) tone. The filters 200 202 204 206 208 210 may be digital or analog, and are used to estimate the energies of narrow bands of the spectrum in order to obtain a frequency representation of the signal. The bands are centred at the frequencies of interest and their width is chosen to reflect the frequency tolerance of the receiver of each analysed frequency. In the case of MF signalling, a tone is registered as present if and only if there is sufficient energy in two spectral bands. This can' be verified by means of devices comprising an energy computation and a pre-determined amplitude threshold 212 214 216 218 220 222. Another technique that can also be commonly used to analyse the spectral characteristics of the signals involves the computation of the Discrete Fourier Transform (DFT) . Typically the DFTs are computed only at the frequencies of interest and result in an estimation of energy in the frequency domain. This method is described in detail in "Discrete-Time Processing of Speech Signals" by Deller, Proakis and Hansen, Macmillan Publishing Company New York 1993 whose contents are hereby incorporated by reference. Energy estimates obtained at this stage are propagated to the validation unit 112.
The validation unit 112 determines, based on the information obtained from the previous stage, if a valid tone has been detected by evaluating the temporal and logical characteristics of the signal. Using the computed amplitude of each frequency, a candidate tone is determined for each frame and is often compared to previous frames for continuity. For instance, in the case of MF signalling, two and only two frequencies must be above the energy threshold. In any other circumstance either the signal should be ignored or an error should be reported. The temporal characteristic involves comparing the duration and cadence of the tone with respect to some reference template. In the case of MF and DTMF signals this temporal analysis is limited to short time duration signals typically in the range of 10ms to 40ms. For example, in the case of a DTMF digit with a frame length is 10ms, three consecutive frames are compared in order to conform to established standards and obtain 30ms duration for the tone. In the case of a CPT tone, a larger number of frames may be required to verify if the pattern of the given tone matches a predefined pattern with the same frequencies. A detailed description of logical processing can be found in Bennett et al., U.S. Patent 5,311,589 assigned to AT&T Bell Laboratories for both CPT and DTMF tones. Once either a valid tone or no tone has been detected, the result is sent to another device such as a controller 116 that uses the decoded information. The type of computation performed in the logical processing block is generally not computationally intensive and varies a lot between different signalling protocols.
Tone receivers of the type described above have been used in the past in tone detection and recognition systems. Such systems are often integrated into telephone networks where the different modules of the communication channels are able to communicate by sending and receiving various tones. Of particular interest here are call progress tones (CPT) which are commonly used to provide call progress information to users and other components of the system. Call progress tones generally comprise a frequency component and a timing component, the latter herein referred to as the cadence. The table below shows the frequency components of frequently used CPT tones.
Figure imgf000007_0001
Figure imgf000008_0001
As shown in the above table, the "Call Waiting" tone is composed of a single frequency at 440Hz and the busy tone is composed of two frequencies namely one at 480Hz and one at 620Hz.
The table below illustrates the frequency and timing behaviours of common CPT tones. Note that Dial, Ring, Busy and Reorder are dual-tones (i.e. 2 frequencies) while the SIT is a concatenation of three mono-tones (i.e. 1 frequency).
Figure imgf000008_0002
The difficulty concerning the detection of tones is two-fold. The first problem lies in the fact that many different types of signals are currently in use or will be introduced in the future. A main deficiency of the current systems is their lack of flexibility and the difficulty of reprogramming the Discrete Fourier Transform (DFT) in order to adapt to new tones such as Special Information tones (SIT), fax calling tones (CNG), recall dialling tones amongst many others. This difficulty implies considerable efforts in the redesign of new systems to accommodate these new tones and hence considerable costs.
Another problem lies in the difficulty in providing precise control of the time duration of a signal that is caused by the long frames required to have a high frequency resolution. In order to have a high frequency resolution in DFT computations and hence be able to distinguish smaller and smaller portions of the frequency spectrum, a long time interval or window is required. By doing so, the time resolution and hence the capacity of distinguishing between short time intervals is decreased. This is known as the frequency/time resolution trade-off.
Another difficulty resides in providing precise control over the frequency spectrum. About a nominal candidate frequency F0, which is one of the frequencies of a given tone, a small error margin is accepted to take channel distortions and other physical effects into account. The old band-pass filter technique does not allow precise control of the frequency tolerance bands unless the filter order is -very elevated which in turn is costly. As a result, the false classification of a detected tone may occur or alternatively, speech signals may be mistaken for an audible tone. Another problem in the telephone network is that several types of devices interact using CPT tones. Some CPT tones are generated by recent equipment and are likely to conform to precise tolerance requirements. Other CPT tones may be generated by older equipment and may have different tolerance requirements. Additionally, CPT tones generated by older equipment may not conform to tolerances at all since the number of previously used tones was low and they were essentially used for human detection. CPT tones have traditionally been used to convey to the user information regarding the telephone connection. In some applications, it may be preferable to detect CPT tones with very precise tolerance since the error of a false detection may be severe. In other applications, it may be preferable to relax the tolerance. Commonly, in order to provide flexibility in the frequency tolerance, two separate filters or two different DFT computations are performed in order to apply different tolerances at the same frequency. These DFT computations are generally performed directly on the source samples using different window sizes. The use of two separate filters generally results in high computational costs as well as high hardware costs.
Another deficiency of the current system particularly relevant for CPT tone detection is the cadence validation. For CPT tone detection, the time pattern component, herein referred to as the cadence component, must be validated in addition to the frequency component. A specific example will better illustrate this problem. The fax calling tone (CNG) is characterised by the following cadence {0.5 sec. ON; 3.0 sec. OFF; 0.5 sec. ON}. In order to detect this tone the CPT tone detector is configured to validate the sequence of three events pulse-silence-pulse. For the case that the observation beings at the start of the silence interval, the time to detect the full pattern is 3.0sec + 0.5 sec + 3.0sec + 0.5 sec = 7.0saCr Hence, a 7.0 second time interval is needed to provide sufficient time to see both ON pulses. This time interval is herein referred to as the observation window. This time delay contributes to the system' s holding time and may be aggravating to a human waiting for the system to respond. A common solution to this problem is to specify a shortened version of the cadence pattern. For example the single 0.5 sec ON with an observation window of 3.5 sec. However, this method may lead to erroneous detection. Another alternative would be to specify a longer pattern such as 0.5 sec. ON and 3.0 sec OFF with a observation window of 6.5 sec. However the improvement over the full 7.0 seconds is only marginal.
The other problems of detecting tones arise from the nature of the telephone network itself. In the normal course of tone detection it may occur that a speech utterance is mistaken for a tone, that a tone is not detected or that a given tone is mistaken for another. Although dual frequencies in MF, DTMF and CPT were chosen to be non-harmonically related and hence have little resemblance to the harmonic characteristic of the human voice, these tones have frequencies located in the same band as speech (~ 180-3600 Hz) . Human speech as well, has many fundamental and harmonic frequencies located in that band which causes a situation called "talk-off". Talk-off occurs when human speech, music or other sounds are mistaken for a tone in a telephone network context. This problem is compounded by noise on the lines since noise may occur in all frequency bands. Another problem that arises in the area of tone detection is the presence of background noise. In certain communications applications, it may be known that there is no user speech or background noise that is added to the CPT ' signal. For instance, when the calling party is an automated system, background noise from the calling end is very weak or not present. Similarly, when a called system detecting Dial, Ring and Busy tones when the called end is on-hook, there is generally no background noise or speech from the called end. In other applications, it may be. necessary to detect the tones in the presence of speech-, or background noise. Furthermore, band-pass filters and the traditional DFT computation are not reliable with tones distorted with Gaussian noise, impulse noise, speech signal, tone interruptions, time shifts between frequency components and those having ambiguous transition time zones between two states. This type of interference is very common in telephone networks where the transmission lines are subject to atmospheric conditions and an uncontrollable environment.
Thus, there exists a need in the industry to provide a tone receiver particularly well-suited to the detection of call progress tones being capable of a high degree of flexibility, being capable of maintaining high computational efficiency, being capable of providing a precise control over the time and frequency acceptance and rejection bands, and being able to detect CPT tone within a reduced time delay. Objects and Statement of the Invention
A principal object of the invention is to provide an improved method and apparatus for performing cadence detection on a signal.
Another object of the invention is to provide an improved method and apparatus for performing tone detection on a signal.
Another object of the invention is to provide an improved method for performing logical processing on a signal.
Another object of the invention is to provide an improved tone detection system.
As embodied and broadly described herein the invention provides an apparatus for performing cadence detection on a signal, said apparatus comprising: an input for receiving an input signal potentially manifesting -.-a certain cadence; a signal processing functional block coupled to said input for receiving the input signal, said signal processing functional block being operative to successively compute confidence level values over time during a processing period, a currently computed confidence level value being indicative of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period, said processing period being characterised by a variable duration; - said signal processing functional block including an output for generating an output signal indicative of the confidence level value at the end of said processing period.
For the purpose of this specification the expression "accumulator" is used to designates a device used to sum numbers by adding its current content to an input value and then replacing its current value by the newly computed one. In mathematical terms to perform the operation x = x + y.
For the purpose of this specification the expression "complex accumulator" designates an accumulator where the arguments are of the form "a+ib" and where a and b are real numbers and i = V-l . Furthermore this device preferably stores the real and imaginary parts of the result separately.
For the purpose of this specification the expression "complex multiplication" designates a multiplication where the arguments are of the form "a+ib" and where a "and b are real numbers and i = v-l. Furthermore a device implementing this operation preferably stores the real and imaginary parts of the result separately.
For the purpose of this specification the expression "cadence" is used to designate a pattern of regular or irregular pulses and silences. In a specific example, the cadence of the fax calling tone is characterized by 0.5 sec ON; 3.0 sec OFF; 0.5 sec ON;
3.0sec OFF and so one.
For the purpose of this specification, the word "state" is used to designate the condition of the signal in terms of certain attributes. In a specific example, attributes include "ON / OFF" conditions, frequency characteristics and duration characteristics.
In a preferred embodiment, a signal being detected contains several states. Every state in the signal is characterized by a set of parameters. In a specific example, state parameters include the number of frequencies, the nominal frequencies, the frequency tolerance, amplitude levels of the frequencies, amplitude twist, state duration and other parameters that are constant during a given state. Between two states of a signal, a transition zone can exist. In a most preferred embodiment of this invention the tone detector is capable of detecting several tones of the type described above at the same time. Because there are common nominal frequencies for different tone, the preferred embodiment of this invention uses a common stage of quadrature processing (first stage spectral processing) for the tones being detected. This allows a reduction in computations.
In a most preferred embodiment, the tone detection apparatus features a dual-stage spectral processing operation for detecting the presence of tones in the signal. During the first stage the energy of the signal is computed over a plurality of signal sub- frames in the frequency bands of interest, each frequency band corresponding to a given tone. For each sub-frame this involves computing a DFT coefficient _for each frequency band. The DFT coefficients are computed in a phase-continuous fashion from one sub-frame to another. The phase continuity will allow the second stage to perform high frequency resolution computations at a low computational cost. In addition, during the first stage, the average signal level A over a sub-frame is computed along with the energy D of the signal and sub-frame DFT coefficients. The results of the first stage -are stored in buffers and to wait for further processing. During the second stage analysis, a second DFT is computed on the basis of segments using the results of the first DFT computation. In other words, the spectral processing operation of tone detection apparatus performs a direct computation of the Discrete Fourier Transform (DFT) on short time sub-frames and then performs a second DFT computation on segments using the results of the first DFT computation. A segment is typically composed of about seven sub-frames. Adjacent segments may have overlapping sub-frames to achieve the desired temporal resolution. Other size combinations are possible depending on the desired time and frequency resolution. The validation unit then receives the results of the spectral processing. In a preferred embodiment the validation unit comprises a logical processing unit and a cadence processing unit. The logical processing unit performs a series of tests to determine if a tone is present in the signal. Preferably, for each tone of interest, a separate logical processing unit is present in the tone detector. Each logical processing unit receives the data generated from the spectral processing module. In a preferred embodiment, the logical processing unit determines whether the current segment of the signal satisfies the properties of the current state in the tone pattern being detected. In a preferred embodiment, this is performed by applying a series of tests to the spectral processing results. Some or all the following tests may be applied to the candidate frequencies: (i) a frequency tolerance test; (ii) a stability test; (iii) an SNR twist; (iv) a Power and twist test; (v) a pulse consistency test. In a specific example, for each tone a mask indicates which of these tests should be applied. The mask may be stored on a computer readable medium along with the other parameters of the tones . In a preferred embodiment, the output of the logical processing unit is a binary classification of the segment for each CPT tone as either a successful detection or an unsuccessful detection. Preferably, following the logical processing unit, a non-linear filtration unit processes the binary classification results in order to smooth out the output. In a specific example, a median filtration algorithm is used to smooth." the binary classification of the segments. In addition to the logical processing unit, a cadence processing unit receives the result of the spectral processing unit and the logical processing unit. Preferably, for each tone of interest, a separate cadence processing unit is present in the tone detector. Each cadence processing unit receives the data generated from the spectral processing module and the logical processing module corresponding to the same tone of interest. In a preferred embodiment, the cadence processing unit verifies whether the timing pattern of the signal satisfies that of a specific tone. The cadence processing unit further includes a "timeout" feature that allows a rapid decision as to whether a tone cannot be detected with a minimum confidence within the remainder of the observation window. When a minimum confidence value cannot be obtained in the remaining observation window for a given tone, the cadence processing unit allows the tone detector to timeout before the end of the observation window.
The use of the first DFT block with short time duration sub- frames enables to obtain a high temporal resolution for the signal.
As a specific example, suppose the signal is sampled at a rate of
8000Hz and that the time window is 20 samples. This permits a time resolution of:
2Qsamples I subframe _ . . . . = 2.5ms I subframe
SOOQsamples I sec
On the other hand the spectral resolution is poor being only 400Hz in the example above. .Hence, this stage allows a precise control over the tone duration evaluation.
The second DFT, obtained by using results computed in the first DFT on a complete segment enables us to obtain high spectral accuracy. Insuring the first DFT is phase continuous allows using the results directly in the second DFT without requiring a return to the time domam signal. Taking the example described above and assuming that a segment is composed of 7 sub-frames, the frequency resolution becomes ~57Hz. This stage allows a precise control of the frequency acceptance and rejection bands. By changing the nominal frequencies where each of these two blocks computes the DFT, this configuration can be adapted to suit nearly any signal.
In a preferred embodiment, the apparatus for performing tone detection suitable for detecting call progress tones comprises:
An anti-aliasing low-pass filter to eliminate the spectral portion of the analog signal that is not in the range of interest.
An analog to digital (A/D) converter which samples the incoming signal at a rate at least equal to the Nyquist rate (8000 Hz for a telephone network) and converts it to a digital format such as PCM code. A quadrature processing block that allows the system to substantially reduce the data stream with minimal loss of information as well as performs the first stage of spectral analysis. This processing block computes the DFT coefficients at candidate frequencies, the average signal level A and energy level D for each sub-frame of the signal. A precision spectral processing block which computes precise results regarding the frequency deviation of the signal with respect to nominal frequencies and permits stringent control over the accept/reject frequency bands of the receiver. This is achieved by computing a second level DFT over a segment on the basis of the first level DFTs computed by the quadrature-processing block. A logical processing block that compares temporal characteristics of the signals with pre-determined values as well as determines based on results from the quadrature and precision spectral processing blocks, if a proper tone has been detected. The logical processing block may comprise a filtering module to smooth out the classification results.
A cadence processing block analyses the results of the logical processing block over a slightly longer period of time
(generally in terms of seconds instead of msec for the other stages) . It allows determining if the correct cadence or time pattern has been detected. This block is present mainly when the tone detector is used for CPT tone detection. The cadence processing block further comprises a timeout feature allowing the tone recognition apparatus to timeout when a minimum confidence level cannot be reached within a given observation time window.
In a preferred embodiment, the tone detector may further comprise computer readable mediums including:
A digital sample buffer that accumulates the digitally sampled incoming signal into sub-frames that will be used in future processing.
A plurality of frequency buffers, one for each analysed frequency, which accumulate the results of the first processing stage into buffers representing a sequence of consecutive segments.
An average signal level buffer for storing the average signal level A computed for each sub-frame.
A signal energy buffer for storing the energy D of sub-frames computed for each sub-frame.
A lookup table comprising the pre-computed sine and cosine values needed for the Discrete Fourier Transform (DFT) computation. This table is used in both the quadrature processing block and the precision spectral processing block.
A tone parameter database storing parameter specifying the characteristics of each tone potentially detectable by the tone detection apparatus. Such characteristics may include the tests to be performed, rejection/acceptance boundaries and other useful information.
More specifically, in a most preferred embodiment, the tone detection apparatus operates as follows. The apparatus receives an analog signal from the system. The analog signal is first low passed filtered and then sampled in order to produce a digital signal. In the case of a telephone network application, the filtering is usually done at 4 kHz, since the frequencies of interest are in that range and therefore the sampling rate would be 8 kHz as directed by the Nyquist theorem. The digital samples are then stored in a buffer of size N that represents one sub-frame of the signal. The size of the sub-frame will determine the time resolution of the system. These samples are then transferred to the quadrature-processing block. There a DFT is computed on the sub-frames at each of the analysed candidate frequencies. A set of parameters, which are simply the values obtained by performing a DFT on a sub-frame, is generated. There is one parameter for each analysed frequency. These parameters in turn are stored, each frequency in a separate buffer. The average signal level A is also computed over a sub-frame and the result is stored in separate buffer. Also the energy D of the sub-frame is computed and the result is stored in another separate buffer. Once this analysis has been performed on a plurality of sub-frames and the resulting parameters have been stored in buffers, these computed values are processed by the precision spectral processing stage, by the logical processing stage, and by the cadence processing stage.
The precision spectral processing is executed for each of the tones of interest. For each of these tones there are frequencies of interest (often two) on which the precision spectral processing is performed around the nominal value for the frequency components. The analysis is computed on segments that are preferably composed of a few consecutive sub-frames. The purpose of this stage is to obtain power estimations for very narrow frequency bands and to determine if the frequency tolerance requirement was satisfied. Advantageously, an analysis is performed on (2L+1) local frequencies placed at regular intervals on both sides of a frequency that isvclosest to the nominal in a range determined by the specified frequency tolerance. Alternatively, the intervals are placed at irregular intervals. In a preferred embodiment, the specified frequency tolerance is stored in the tone parameter database. The analysis is done by computing a weighted version of the DFT operation at each of the local frequencies and then applying magnitude and weighting operators . The weighting function is usually a time domain window such as a Hamming window centred about a frequency near the nominal. Energy values of the input signal are found at this stage which are then supplied to the logical processing stage. The logical processing stage uses the values obtained from the previous stages at each of the analysed frequencies to compare the specifications of each tone over a given time window. Following this, a cadence processing unit analyses the timing characteristics of the signal over a longer time window. If the specifications are met, information about the tone received is sent to a controller station where the operation or connection is performed. In a specific example, information about the tone received is sent to a controller unit in binary format. In the event that some or all of the specifications have not been met, an error may be reported. Alternatively, the erroneous sequence may be ignored.
In a preferred embodiment, the logical processing stage provides frequency validation of the signal and outputs a binary classification of the segments as a successful tone detection or as an unsuccessful tone detection. In a preferred embodiment, the logical processing stage receives the results for the quadrature processing stage and the precision spectral processing stage. Preferably, for each tone of interest, a separate logical processing unit is present in the tone detector and each logical processing unit receives the data generated from the spectral processing module. For each tone of interest, the logical processing stage performs a set of tests to determine whether specifications for the tone have been met. Preferably, for each tone, the corresponding specifications are stored on a computer readable medium -in. the tone parameter database. In a preferred embodiment, for each tone of interest, a mask defines which tests are to be applied for the validation of the tone. Each test results in a binary result indicating whether the segment being tested is a pass or fail. Hence, for multiple tests, a vector is outputted for each segment. The vector is then processed and the segment is classified as either a successful detection or a unsuccessful detection according to the test results. Optionally, these classifications are stored in a buffer and processed by filtration stage. In a specific example, a median filtration algorithm is used. The filtration stage allows the elimination of variations in classification due to noise such as line noise, background noise, speech noise and impulse noise. The result of the logical processing stage is processed by the cadence processing stage. In a preferred embodiment, the cadence processing stage receives the results of the quadrature processing stage, the precision spectral processing stage and the logical processing stage. Preferably, for each tone of interest, a separate cadence processing unit is present in the tone detector. For each tone of interest, the cadence processing stage performs a timing validation test to evaluate whether the timing features of the signal conform to the specification of the tone. Preferably, for each tone the specifications are stored on a computer readable medium in the tone parameter database. Alternatively, each cadence processing unit is constructed for a specific tone. In a preferred embodiment, the tone detection apparatus provides a partial confidence feature that reports levels of partial confidence if the full cadence of a tone has not been qualified within a specified time, herein referred to as the observation window. The cadence processing stage tests the results and allows the system to time-out when a minimum confidence level cannot be reached within the observation window. In a preferred embodiment, the cadence processing operation is performed on the basis of segments. For a subframe that coincides with a segment interval, the timeout conditions are tested after the cadence validation .has been performed. Each cadence processing unit in the cadence processing stage must timeout before the cadence processing stage as a whole can report a timeout tone indication. The condition that all cadence processing unit have timed-out is tested on a subframe interval level. In a preferred embodiment, each cadence processing unit may timeout under the following conditions: a) the minimum level of confidence cannot be reached within the remaining time in the observation window. A null confidence level indication is reported. b) The full duration of the observation window has been reached. A tone indication is reported with the confidence level equal to the counter of the current state in the cadence processing.
As embodied and broadly described herein the invention provides a method for performing cadence detection on a signal, said method comprising the steps of: receiving a signal potentially manifesting a certain cadence; successively computing confidence level values over time during a processing period, a currently computed confidence level value being indicative of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period, said processing period being characterised by a variable duration; - generating an output signal indicative of the confidence level value at the end of said processing period.
As embodied and broadly described herein the invention provides a method for performing cadence detection on a signal, said method comprising the steps of: receiving an input signal potentially manifesting a certain cadence; processing said signal to successively compute confidence level values over time during a processing period, a currently computed confidence level value being indicative of a likelihood o- -..existence of a certain cadence in the input signal since a beginning of said processing period; controlling a duration of said processing period on a basis of the currently computed confidence level value.
As embodied and broadly described herein the invention provides an apparatus performing cadence detection on a signal, said apparatus comprising: an input for receiving an input signal potentially manifesting a certain cadence; a signal processing functional block for processing said signal to successively compute confidence level values over time during a processing period, a currently computed confidence level value being indicative of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period; a duration control unit for controlling the duration of said processing period on a basis of the currently computed confidence level value.
As embodied and broadly described herein the invention provides a tone detection apparatus suitable for detection of call progress tones, a call progress tone being characterised by at least one frequency component and a timing behaviour defining a certain cadence, said apparatus comprising: an input for receiving an input signal potentially containing a call progress tone, the signal being capable of being divided in a plurality of consecutive sections; a spectral processing ~unit for processing said signal to generate a plurality of sets of data elements, the sets of data elements providing spectral information about respective sections of the input signal; a frequency component processing unit coupled to said spectral processing unit for receiving sets of data elements and for processing the sets of data elements to output sets' of classification data elements indicating whether a frequency component of a certain call progress tone exists in respective sections of the input signal; a cadence processing unit coupled to said frequency component processing unit for receiving and processing sets of classification data elements to compute over time successive confidence level values for the input signal during a processing period encompassing the sections of the input signal that correspond to the sets of classification data elements processed by the cadence processing unit, a currently computed confidence level value being indicative of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period, said processing period being characterised by a variable duration; said cadence processing unit including an output for generating a signal indicative of the confidence level value at the end of said processing period.
As embodied and broadly described herein the invention provides a method for performing tone detection suitable for the detection of call progress tones, a call progress tone being characterised by at least one frequency component and a timing behaviour defining a certain cadence, said method comprising the steps of: receiving an input signal potentially containing a call progress tone, the signal being capable of being divided in a plurality of consecutive sections; processing said signal to generate a plurality of sets of data elements, the sets of data elements providing spectral information about respective sections of the input signal; processing the sets of data elements to output sets of classification data elements indicating whether a frequency component of a certain call progress tone exists in respective sections of the input signal;
- processing said sets of classification data elements to compute over time successive confidence level values for the input signal during a processing period encompassing the sections of the input signal that correspond to the sets of classification data elements processed by the cadence processing unit, a currently computed confidence level value being indicative of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period, said processing period being characterised by a variable duration; generating a signal indicative of the confidence level value at the end of said processing period.
As embodied and broadly described herein the invention provides a tone detection apparatus suitable for detecting call progress tones, a call progress tone being characterised by a sequence of states, said apparatus comprising: an input for receiving an input signal potentially containing a call progress tone, the signal being capable of being divided in a plurality of segments; a spectral processing unit for processing said signal to generate a plurality of sets of data elements, the sets of data elements providing spectral information about respective segments of the input signal; a logical processing unit coupled to said spectral processing unit for receiving and processing the sets of data elements, said logical processing unit being operative to compute over time successive classification elements for respective segments of the input signal, each of the successive classification elements indicating whether the properties of the signal during the time segment match the properties of a certain state of a certain call progress tone; - said logical processing unit including an output for generating-. - a result signal representative of the classification element computed by said logical processing unit .
As embodied and broadly described herein the invention provides method for detecting call progress tones, a call progress tone being characterised by a sequence of states, said method comprising the steps of: - receiving an input signal potentially containing a call progress tone, the signal being capable of being divided in a plurality of segments;
- processing said signal to generate a plurality of sets of data elements, the sets of data elements providing spectral information about respective segments of the input signal; processing the sets of data elements to compute over time successive classification elements for respective segments of the input signal, each of the successive classification elements indicating whether the properties of the signal during the time segment match the properties of a certain state of a certain call progress tone; generating a result signal representative of the classification element computed by said logical processing unit .
As embodied and broadly described herein the invention provides a tone detection system for use in a telecommunication network comprising an apparatus for performing cadence detection on a signal .
Brief description of the drawings
These and other features of the present invention will become apparent from the following detailed description considered in connection with the accompanying drawings. It is to be understood, however, that the drawings are designed for purposes of illustration only and not as a definition of the limits of the invention for which reference should be made to the appending claims.
Fig. 1 shows a high-level block diagram of a prior art tone receiver used in the context of Multi-Frequency (MF) , Dual Tone Multi-Frequency or call progress tones (CPT) .
Fig. 2 shows an example of a prior art spectral processing unit that uses bandpass filters to analyse the incoming signal. Fig. 3 shows a high-level block diagram of a preferred embodiment of the tone detection apparatus constructed in accordance with the present invention.
Fig. 4 shows a detailed block diagram of the quadrature-processing block of the tone detection apparatus of figure 3. Fig. 5 shows a block diagram of the DFT computation module of the quadrature processing block.
Fig. 6 shows a block diagram of a processing block, for computing exponential values using a lookup table of the apparatus, in accordance with the invention.
Fig. 7 shows a detailed diagram of the preferred embodiment of the precision spectral processing block of the apparatus constructed in accordance with the invention.
Fig. 8 and 8a shows a block diagram for embodiments of the validation unit.
Figure 8b shows a block diagram for an embodiment of the testing unit of the logical processing block.
Fig. 9 shows a flow diagram of an embodiment of the classification unit of the logical processing block. Fig. 10 shows a block diagram of the filtration unit of the logical processing block.
Fig. 11 and 11a show flow diagrams of the cadence processing block.
Fig. 12 shows an apparatus for tone detection in accordance with the spirit of the invention.
Description of a preferred embodiment
The present inventors have made the unexpected discovery that by performing a first DFT on a short time window (sub-frame) and a second DFT on a larger window (segment) , both high time and frequency resolution can be obtained while requiring a minimal amount of computation. Furthermore, by applying a non-linear filtration algorithm to the results of the logical processing operation, accrued robustness to noise is obtained. Finally, by allowing the system to time-out when a sufficient level of confidence cannot be reached within a given observation window during the cadence processing stage, an improvement in the response-time of the system can be obtained. A tone detection apparatus implementing these inventive principles can be adapted to various signalling conventions by simply modifying a pre- determined set of parameters. The result is a robust, highly efficient tone detection system that can be easily adapted to recognise current and future signalling convention by simply changing the necessary parameters.
In a most preferred embodiment of this invention, the tone detection apparatus is integrated into a communication channel, such as one that could be used in a telephone network, that enables the accurate detection and decoding of Call Progress Tones (CPT) . Call progress tones, also called audible tones, are used to inform users and operators of the system about the progress or disposition of the telephone call they are attempting. CPT tones include the dial tone, audible ring, line busy, reorder, special service information tones (SIT) , recall dial tone and many others represented as Multi-Frequency" signals having a complex cadence. Traditionally, standards governing the CPT tone have been very lax. Typically, we differentiate CPT tone more on the basis of their cadence than on stringent frequency and time accept/reject rules in contrast to the case for MF and DTMF tones where precise specifications are given. In a typical interaction, a transmitter from a calling office initiates a call progress tone sequence. The CPT receiver monitors the communication channel for tones. The CPT receiver first performs an analog to digital conversion of the signal and proceeds in the spectral and temporal analysis of the signal. The spectral analysis is performed by first computing a DFT as well as the average level and energy of a sub-frame of the sampled signal at the quadrature processing stage. Following this, the precision spectral processing stage performs a second DFT on the basis of the first DFT computation in the quadrature processing stage. Following this computation, the results of the quadrature processing stage and the precision spectral processing stage are sent to the logical processing block and cadence processing block which evaluate if some predetermined criteria have been met and if the spectral and temporal requirements have been attained. If a valid tone is detected, the corresponding information is sent to a controller that performs a predetermined operation such as connection or billing ,
The table below shows a few common Call progress tones (CPT)
Figure imgf000029_0001
The table below illustrates the frequency and timing behaviours of common CPT tones. Note that Dial, Ring, Busy and Reorder are dual-tones (i.e. 2 frequencies) while the SIT is a concatenation of three mono-tones (i.e. 1 frequency).
Figure imgf000029_0002
In a most preferred embodiment of the present invention, the tone detection apparatus shown in figure 3 receives an analog signal that is then processed by a multi-step operation. Anti-Aliasing Low-pass Filter
The first step, usually referred to as the anti-aliasing low- pass filter 105, is used to eliminate frequencies outside the range of interest thereby eliminating or reducing the effect of aliasing when the continuous signal is converted to digital format. By the Nyquist theorem, the cut-off frequency of the filter should be half that of the sampling frequency. In the case of a telephone network application, the cut-off is generally about 4000Hz. This operation is very well known in the art of signal processing.
Analog to Digital Converter
The second step, usually referred to as the analog to digital converter 106, consists of sampling the incoming analog signal to produce a digital version of it. Sampling is usually performed at a rate at least equal to the Nyquist rate such as to avoid the possibility of aliasing. In the context of a telephone network this rate is 8000 samples/second. Typical digital representations that could be used in the context of a receiver include Pulse Code Modulated signals. (PCM), differential PCM (DPCM) and Adaptive Delta Modulation (ADM) . Many coding schemes exist and are used for various reasons such as efficiency, compactness, simplicity and others. The most preferred embodiment of this invention uses the PCM coding scheme. The analog to digital conversion process is well known in the art of signal processing and telecommunications. Note here that in the case the input signal is digital, this A/D converter 106 and the low-pass filter 105 are not required. Further information on PCM and other coding techniques can be obtained on this topic from standard textbooks on signal processing such as in "Discrete-Time Processing of Speech Signals" by Deller, Proakis and Hansen, Macmillan Publishing Company New York 1993 whose content is hereby incorporated by reference. The digital samples obtained from the A/D converter 106 are then stored into sub-frames on a computer readable medium 108. Once a predetermined number of samples have been collected, these samples are passed on to the next processing stage. The number of samples N in the storage buffer depends on the frequency and time resolution desired by the system. Since at this stage we are mainly concerned with high time resolution, short time windows are used. In an embodiment of this invention used for CPT detection, we use sub- frames of 16 samples (2.0ms) for CNG tones and sub-frames of 32 samples (4.0 ms) for other CPT tones.
Spectral Processing
The third step, called spectral processing 301, analyses the spectral properties of the input signal. In a preferred embodiment, the spectral processing unit 301 comprises two functional blocks namely the quadrature processing block 300 and the precision spectral processing block 304. The spectral processing unit 301 further makes use of computer readable mediums containing a first level DFT storage unit 302, an average signal level storage unit 350, an energy value storage unit 352, and a set of tone parameters 308. The computer readable mediums may be any suitable devices for storing data such as a disk, NVRAM, ROM or other. Therefore, for the different classes of signals (MF, DTMF, MF-R2, and CPT) the main differences in the spectral processing step are the parameters 308 such as the nominal frequencies and the levels of tolerance that may be supplied for each different signal class .
The quadrature processing block 300 shown in figure 4 performs the preliminary filtration of the signal. In a preferred embodiment, the quadrature processing block 300 comprises three functional modules, namely a DFT computation module 450, a signal level computation module 452, and a sub-frame energy computation module 454. The DFT computation module 450, which is shown in details in figure 5, performs a DFT computation at each frequency of interest on a sub-frame of the digital signal. It consists of Nf structurally identical DFT channels where Nf is equal to the number of analysed frequencies. This module 450 achieves the high time resolution required for accurate tone detection. The spectral analysis is performed on the digital samples stored in the buffer 108 and the DFT coefficients are obtained at this stage and stored in the first level DFT storage unit 302. The DFT is well known in the art of signal processing and basic principles can be found in signal processing text books such as "Discrete-Time Signal Processing" by Oppenheim and Shafer, Prentice Hall series, 1989 whose content is hereby incorporated by reference. In a specific example, the DFT coefficients are computed by using the following equation: rN +N-\
(1) ξk{r) = ∑xt exιp{j2πfkiT + Φk} i = rN
"for i = rN to rN+N-1 i . e . over one sub-frame j = sqrt (-l )
In the above equation: Xi designate the PCM sample at time i; r is the sub-frame number; k is the index of the frequency analysed; fk is the frequency analysed; T is the reciprocal of the sampling rate and φk is the starting phase of the current sub-frame. The phase component φk is used at this stage in order to permit phase continuity between sub-frames and to allow parameters computed using sub-frames to be combined without requiring the re- computations of the DFT. In a specific example, when computing the DFT coefficients for a given sub-frame, the variable φk for use in the above formula is set to the value of the final phase of the previous sub-frame. This feature enables to provide phase continuity between the sub-frames.
A specific example of a device to carry out the DFT computation is depicted in figure 5. The device comprises:
Complex multipliers 402 404 406, one for each of the analysed frequencies. Complex accumulators 408 410 412, one for each of the analyzed frequencies. In figure 5, these blocks 408 410 412 indicate that the results of the multiplication 402 404 406 are summed over one sub-frame.
Following this, the computed values 414 416 418 are stored each in a separate buffer 420 422 424 part of the first level DFT storage unit 302 where they are stored for use by the second stage spectral processing computations. In a preferred embodiment, the size of each of the buffers is equal to at least the total number of sub-frames in a segment. If the receiver is designed to accommodate different segment durations, the size of the buffer is at least equal to the maximum segment duration. In a specific example, the buffers 420, 422 and 424 are circular buffers. Note that the illustration in figure 5 shows only 3 channels for the sake of simplicity. In the case of a receiver detecting MF, DTMF, CPT or any other signalling, the number of channels would be equal to the number of frequencies being analysed.
The computation of the complex multiplications 402 404 406 requires a more detailed explanation. In a preferred embodiment, in order to speed up the computations and hence favour the realtime characteristic of the invention, a look-up table is used to reduce the computational load by pre-computing a set of values and storing them in a permanent or temporary computer readable medium.
This reduces the complicated computation of an exponential into the computation of addresses in a look-up table. Furthermore, in order to satisfy the phase continuity criteria of the DFT computation for this invention, care must be taken to properly set the phases φk in the exponential values in order to achieve this goal. This is done by continuing the initial phase of a sub-frame DFT computation from the final phase of the previous sub-frame DFT computation. Figure 6 shows this computation, as it would be performed in a preferred embodiment of this invention. This modules comprises: A read-only-memory (ROM) unit 500 where the lookup table of previously computed values is stored. An index register 502 used to store the last address in the lookup table of the frequency analyzed. In order to provide phase continuity, both the real and imaginary part of the computation are stored and updated separately. A modulo M adder 504 used to compute the address in the lookup table. A δ register 506 used to contain the step size for each of the frequencies analyzed. An accumulator 508 used to sum intermediate results until a complete sub-frame as been analyzed.
The principles of this computation are well known in complex variable mathematics and in basic signal processing theory where an exponential can be expressed as a complex combination of Sine and Cosine waves. In mathematical terms:
(2) e =cos(φ)+ /*sin(φ) In the preferred embodiment of the invention, the sine values are stored in a lookup table 500 of size M which represents 360 degree, or one period of a sine wave, and which allows a frequency resolution of fs/M in the case where the sampling frequency in fs Hz. The cosine values are not stored in this table since they can be extracted from the sine value by shifting the angle by 90 degrees or, alternatively by shifting the indices in the lookup table by M/4. Therefore, with the above description in mind, equation 1 may be rewritten as:
Figure imgf000034_0001
(3) rN+N-\
+ j Σ z-*S[{ (A:)+ IndexSine( :)} mod ] i=rN where S(m}= sin (2jπn I M) m = 0,...., M - 1 ι.e. m is the index of the lookup table r is the subframe number N is the size of the subframe 0*) δ(k) is the address step in the table for the k' th frequency analysed
IndexCosin e (k) is the last address pointer to the lookup table of the frequency in the previous buffer for the real part of equation 3 IndexSine( k) is the last address pointer to the lookup table of the frequency in the previous buffer for the imaginary part of equation 3
The step size δ (k) is computed by dividing the analyzed frequency by the frequency resolution. As a concrete example, let us consider CPT tones where the nominal frequencies are located at {350, 440, 550, 940, 1400, 1480, 1800}. If the sampling rate is 8000Hz and using a lookup table of 800 entries, the frequency resolution is 10Hz and the following values of δ (k) would be obtained {35, 44, 55, 94, 140, 148, 180} each value corresponding to a specific nominal frequency.
The IndexCosine (k) and IndexSine(k) values shown in the previous equations are computed recursively to reflect the current phase of the computation. As illustrated in figure 6, the following computa-tion involving the modulo M adder 504 and the index register 502 is performed:
IndexCosine(£) = [indexCosine(λ) + δ(k)]modM IndexSine(£) = [lndexSine(&) + δ(k)]modM
Where IndexCosine (k) is initialized to M/4 to reflect the 90- degree phase shift of the cosine computation and IndexSine(k) is initialized to 0.
The organization described above allows continuous phase by using modulo M addressing in the look-up table and by storing real and imaginary part of the result separately. The organisation of the lookup table may vary greatly between different implementations and manners different from the one presented here do not detract from the spirit of the invention as long as the DFT computation is phase continuous. Continuity of phase allows the combination of the parameters computed in the sub-frames to be combined in later processing.
Preferably, the quadrature processing unit 300 also computes the average level of the signal over one sub-frame in module 452 as well as the energy value over one sub-frame in module 454. Calculating the average level and the energy of a signal is well known in the art of signal processing. Mathematically, module 452 this calculation may be expressed as follows:
Figure imgf000036_0001
and module 454 :
Figure imgf000036_0002
In the above, .equations, A is the average level of the signal in a given sub-frame and D is the energy value over one sub-frame. Computing such equations in the art of signal processing is well known in the art to which this invention pertains. In a specific example, the equations are computed with dedicated hardware such as DSP chips. In another specific example, a multipurpose digital computer is used to implement such equations. The values computed here are stored on a computer readable medium in any data suitable structure. The values of A are stored in the signal level storage unit 350 and the values of D are stored in the energy value storage unit 352. In a specific example, the signal level storage unit 350 and the energy values storage unit 352 are two circular buffers of a suitable size.
Another block in the spectral analysis stage 301 is the precision spectral processing block 304. The purpose of this stage is to achieve high frequency resolution in order to provide precise control of the accept/reject bands. The DFT parameters (ξ) computed in the quadrature block 300 are stored in Nf buffers for the duration of one segment where Nf is the number of frequencies analysed. In the preferred embodiment of this invention, the size of the segment is seven sub-frames. However, shorter or larger segments may be used to increase the frequency resolution of the system without detracting from the spirit of the invention. As a variant, the segments can also be made to overlap by including one or more of the last sub-frames composing the segment at the beginning of the following segment. By maintaining phase continuity in the sub-frame DFTs we can perform more precise and more robust processing than the traditional approaches without a major cost in computation. The general scheme of the precision spectral processing block 304 is shown in detail for one analysed frequency in figure 7. In the preferred embodiment of this invention this block comprises:
Complex multipliers 600, one for each of the local 2L+1 frequencies near the nominal frequency being evaluated. Complex accumulators 602, one for each of the local 2L+1 frequencies near the nominal frequency being evaluated.
Magnitude square evaluators 604, one for each of the local
2L+1 frequencies near the nominal frequency being evaluated. Real multipliers 606, one for each of the local 2L+1 frequencies near the nominal frequency being evaluated.
A device such as a multiplexor 608 used to select the position of maximum amplitude amongst 2L+1 entries.
The precision spectral processing block computes DFTs based on the results of the DFT produced by the quadrature block. It computes these DFTs at evenly spaced 2L+1 frequencies about the frequency of interest and uses complex weights to define local frequencies and frequency resolution. In the preferred embodiment of this invention, a value of L = 2 has been found to yield satisfactory results and hence a DFT is computed at 5 local frequencies. In a specific example, a Hamming window in the time domain has been used to given different weights to certain frequencies. Other windows such as the Bartlett window or no window at all may be used without detracting from the spirit of the invention. It must, however, be noted that not using a weight window will reduce the frequency accuracy of the system by not giving preference to any particular frequency in the acceptance band so a window weighing preferentially frequencies near that of interest is preferable. Mathematically, the operation performed can be expressed as follows:
Ak (l) = ak (l)Ek (l) location of maximum near fk = MAX[Ak (-L),...., Ak (θ),..., Ak (E)]
where
Figure imgf000038_0001
Emax = MAX[Ek {l)]
where Nτ is the total number of sub-frames in a segment and Emax is the power at the frequency of interest which has the strongest power.
^(0 = Λ(0-Λ w* Q, P) = w(/>) exp{/'2ΛFt il)pTm } where w(p) is a Hamming window p is the sub - frame index in a segment (10)
Tm is the duration of a sub - frame (2.5ms for 20samples at 8kHz)
1 is the index of the local frequency [-L,..0...,+L] f k is the value of the nominal frequency fk (1) is the value of a local frequency
The results of equations 8 and 9 (Ak ( l ) , Ek ( D ) and the location of their maximum values , are power estimations for narrow frequency bands about the nominal frequencies of interest . Mathematically equation 8 represents the magnitude squared of the weighted DFT over one segment evaluated at local frequencies about the frequency of interest and weighted by ak (l) . The matrix of k (l) values is selected such that the spectral windows obtained by 5 multiplying the energy estimates intersect at the points determined by the frequency tolerance. The computation of Ak(l) and of the maximum of the values obtained allows us to determine the position of the maximum amplitude value with accuracy. In the preferred embodiment of this invention, a vector is used to indicate which 10 bands are acceptable for having maximum amplitude and which are not. The matrix ak(l) may be stored on a computer readable medium in the tone parameter database 308 accessible by the spectral processing blocks 300 304.
Validation Unit
15
In a preferred embodiment, the validation unit provides logical / cadence processing pairs, one for each of the tones of interest. As shown in figure 8a, there is one logical / cadence pair 850 852 854 856 for each tone of interest. The description 20 below is directed to a single logical / cadence processing pair. Those skilled in the art will readily see how this may be applied to the other logical / cadence processing units.
As shown in figure 8, following the spectral processing unit 25 301, the signal is processed by the logical 758 and cadence processing units 756 in the validation unit. The logical processing block 758 produces a signal Dout that in inputted to the cadence processing block 756. The cadence processing block 756 outputs a confidence level indicative of level of success attained in the 30 cadence detection process. The cadence processing block 756 also updates the state of the signal. This state is used during the analysis of the signal in the logical processing block 758. The logical and cadence processing units will be described separately. The validation unit 306 determines for each candidate tone, based on the information obtained from the previous quadrature 300 and precision spectral processing blocks 304, if a valid tone has been detected. The validation unit 306 is different for each class of signals. For instance, in the case of MF and DTMF signalling, two and only two frequencies must be above the energy threshold while certain CPT tone are composed of single frequency tones. Furthermore, MF signalling the acceptance bands are ± 1.5% ± 5Hz while for the DTMF the acceptance band is only ± 1.5%. CPT tones frequency tolerance vary widely in the acceptance tolerance depending on the application.
In addition to evaluating the information supplied by the spectral processing stage, this block evaluates the temporal characteristics of the signal. In the case of MF and DTMF signals this temporal analysis is limited to short time duration signals typically in the range of 10ms to 40ms. In the case of CPT tones, a cadence processing operation compares the received cadence with a set of pre-determined values. The cadence processing will be described later oh in the specification. Once either a valid tone or no tone has been detected, the result is sent to another device such as a controller 116 that uses the decoded information.
Specifications for tones may be found in standards publications such as BellCore.
Here we will present a version of the logical processing block applicable to CPT tones. This design can be easily extended, although not directly applied, to other signalling modes. In a preferred embodiment, as shown in figure 8, the logical processing unit can be divided into a testing stage 750, a classification stage 752, and a non-linear filtration stage 754. The testing stage 750 receives the results of the spectral processing 301 and the parameters from the tone parameter database 308.
The testing stage 750, shown in more detail in figure 8b, performs the following series of tests in order to determine if the current segment satisfies the spectral properties of the tone:
•i) a frequency tolerance test 800; ii) a stability test 802; iii) an SNR twist test 804; iv) a Power test and twist test 806; v) a pulse consistency test 808.
Preferably, each tone has a subset of the tests listed above that must be performed in order to validate the tone. In a specific embodiment a test mask identifies for each CPT tone which tests are to be used. For example, the mask "10100" could indicate that test (iii) and (v) are to be performed with the digit "1" indicating the presence of a test and the digit "0" the absence of a test. Other means for selecting the tests to be performed may be used here without detracting from the spirit of the invention.
Preferable, tests (i) , (ii) , (iii) and (v) are performed and test
(iv) is selectively applied depending on the tone state to be detected. In a specific example of the busy tone, it may not be desirable to apply the power and twist test. More specifically, the busy tone may. either be a dual tone or a modulated tone depending on the unit generating the tone. If the tone detector want to be able to detect both instance of the busy tone, the power and twist test is omitted in order to be able to successfully recognize both the dual tone and the modulated tone.
Frequency tolerance
In a preferred embodiment, the frequency tolerance test unit 800 determines if the frequency deviation from the nominal is within a pre-determined bound. The frequency deviation from the nominal can be evaluated by simply comparing the position of maximum amplitude computed by the precision spectral processing block 304 in equation 8 and comparing it to some pre-determined boundary values in the tone parameter database 308. If the position of maximum amplitude is within the boundary, the test is successful. The test is unsuccessful otherwise. In the case of dual tone, this frequency tolerance test may be performed only on the two frequencies of the candidate tone in order to minimize the computations. In a preferred embodiment, a signal is outputted to indicate if the test was successful. In a specific example, a digital signal is outputted from the frequency tolerance test unit 800 with "1" indicating success and "0" indicating failure.
Stability test
In a preferred embodiment, the stability test unit 802 tests that the energy of the strongest frequency component does not vary excessively from one segment to the next. The permissible level of variation is specified and may be stored on a computer readable medium in the tone parameter database 308. The energy of a frequency component was computed in equation 9 of the specification. For the reader's convenience, equation 9 is reproduced below.
Figure imgf000042_0001
Emax = MAX[Ek (l)]
Where Emax is the energy of the strongest frequency component on the current segment. If the value of Emax is within a specified boundary, the test is successful. If Emax lies outside the specified boundary, the test is considered to have failed. Mathematically, this operation can be described as follows:
(11) Emax_previous x (l - deviαtion)( Emax ( Emax_previous x (l + deviation)
where Emax_previous is the energy of the previous segment and devia tion is the percentage value of the allowed change in energy from one segment to the next. In a preferred embodiment, a signal is outputted to indicate if the test was successful. In a specific example, a digital signal is outputted from the stability test unit 802 with "1" indicating success and "0" indicating failure.
SNR twist test
In a preferred embodiment, the SNR twist test unit 804 tests that the power of the strongest frequency component of interest constitute a minimum percentage of the total power of the signal. A value for the minimum percentage is specified for each tone of interest in the tone parameter database 308. In a preferred embodiment this percentage is stored as the parameter Twistl on a computer readable medium.
Mathematically, the operation performed is as follows:
NT-\
Dw = ∑D{n)- w(n) nn==00
(12) NNTT--\\
Aw = j_ A{n)- w{n)
B=0
(13) Etotal ^D^ A.1
Emax > Etotalx Twistl
where an Nτ is the number of sub-frames in a segment, A(n) is the average signal level of sub-frame n within a segment, D(n) is the energy value of sub-frame n within a segment, and w(n) is a weight window. If inequality 13 is satisfied, the test is successful. Otherwise the test has failed. In a specific example, a Hamming window has been used to given different weights to certain sub-frames within a segment. Mathematically, we can express the window w(n) as follows: / _ {0.54 - 0.46 • cos[ • (n - B)l B ^' ~ Nτ
(14)
Nτ -l
B =
Other windows such as the Bartlett window or no window at all may be used without detracting from the spirit of the invention. In a preferred embodiment, a signal is outputted to indicate if the test was successful. In a specific example, a digital signal is outputted from the SNR / twist unit 804 with "1" indicating success and "0" indicating failure.
Power and twist test
In a preferred embodiment, the Power and twist test unit 806 applies a combined power and twist test. In a preferred embodiment, these two tests are simultaneously performed in order to improve the computational efficiency of the system. The execution of these two tests in combination or separately does not detract from the spirit of the invention. The power in each frequency of interest should satisfy a minimum absolute level. To test that the maximum twist between frequency components does not exceed the tolerance, the power of each frequency component must satisfy a minimum threshold level relative to the power of the strongest component. The minimum absolute level and the permissible twist are specified as parameters in the tone parameter database 308. In a specific example, these parameters are stored on a computer readable medium. In a typical interaction, a varying threshold is computed as follows:
(15) Threshold - max {minimum absolute level, Emax • Twist}
where Twist is specified parameter defining the maximal twist between powers of frequency components within a tone . For example if Twist = -10 dB = 0 . 1 it means that the powers of the component frequencies can be as one is to 10 . The value of the Twist parameter is application specific. If the power of each frequency component is greater or equal to the threshold, the test is successful. If the power of each frequency component is less than the threshold, the test has failed. In a preferred embodiment, a signal is outputted to indicate if the test was successful. In a specific example, a digital signal is outputted from the Power and twist test unit 806 with "1" indicating success and "0" indicating failure.
In a preferred embodiment, a segment pulse ID variable stores a representation of the frequencies present in the current segment. In a specific example, the segment pulse ID is a bit vector with each corresponding to a frequency of interest. The bits of the segment pulse ID corresponding to frequencies with energies above a pre-determined threshold are set.
Pulse consistency test
In a preferred embodiment, every state of the signal is characterized by'ct set of parameters. For each tone state State = 1, ..., Nstate there is a parameter VDigit (State) describing the frequency components present during a given state. The cadence processing unit updates the value of the "State". The cadence unit is described later in the specification. In a specific example, the parameter VDigit (State) is a bit vecto"r, where each bit corresponds to one frequency of the tone. If a bit is set, the corresponding frequency should be present during the segment for detection to be successful. For example, for SIT we have three frequencies and three states. For the SIT, the following bit assignment can be used:
1. 950 Hz => bitO
2. 1400 Hz => bitl
3. 1800 Hz => bit2
The three states are: 1. Vdigit(l)= {001}
2. Vdigit(2)= {010}
3. Vdigit(3)= {100}
In a preferred embodiment, the pulse consistency test unit 808 checks if the current segment is consistent with the current state.
More specifically, the value VDigit [State] is compared with the segment pulse ID assigned to the current segment. If the two values match, this test is passed. For signals in which there is more than one tone state, such as the SIT signal which has three tone states with differing central frequencies, this test detects the transition from one state to another. In a preferred embodiment, a signal is outputted to indicate if the test was successful. In a specific example, a digital signal is outputted from the consistency test unit 808 with "1" indicating success and "0" indicating failure.
Classification
In a preferred'embodiment, the success or failure of each test is recorded in a bit vector..
The bit vector is then inputted to the next stage of the logical processing unit namely the classification stage 752. This stage provides a binary classification in which the classification
"1" indicates that in the current state the detection is successful. Successful detection means that either:
(i) the current state is an ON state and the current segment is consistent with this state, or
(ii) the current state is an OFF state and the current segment satisfies the spectral properties of one of the ON states. The classification "0" indicates that for the current segment the detection was unsuccessful. Unsuccessful detection means:
(i) the current state is an ON state and the current segment is inconsistent with this state, or (ii) the current statement is an OFF state and the current segment does not satisfy the properties of any ON state.
The classification is performed by analysing the results of the five tests recorded in the bit vector. The test mask indicates for each tone which test must be considered. As shown in figure 9, the classification is performed in a number of steps.
As a first step, the state VDigit [State] is checked to see if the current state it is an OFF state 950. If this test is answered in the negative, then a test is made to see if all the required tests are passed 952 by the. current segment. This is done by comparing the results of the test passed as recorded in the bit vector with the test mask. In a specific example, this is performed by checking the following condition:
Bit vector & test mask = test mask
where "&" denotes the bitwise AND function. If test 952 is answered in the positive, the segment is classified as a successful detection 954. If test 952 is answered in the negative, the segment is classified as an unsuccessful detection 960. If the state VDigit [State] is a OFF, then condition 950 is answered in the negative and condition 956 is evaluated. Condition 956 checks if the state of the segment satisfies any of the ON states. For the current segment to satisfy this condition, any of the tests specified in the test mask must fail. Logically, the following expression is tested:
Bit vector & test mask = test mask & PAUSE vector
In a specific example where "1" denotes test to be performed, the PAUSE vector is 11110 indicating that the consistency test is to be omitted. Other suitable tests may be used without detracting from the spirit of the invention. If the test succeeds, condition 956 is answered in the positive and the segment is classified as a successful detection 958. If the test fails, the segment is classified as an unsuccessful detection 960. In a preferred embodiment, the OFF state is denoted by the binary digit "0".
The invention further provide a method to smooth the classification results in order to produce an output signal with less variation than the signal composed by the classification results. Optionally, once the segment has been classified, the results are stored on a computer readable medium, and a set of classification segments is processed by the non-linear filtration stage 754. In a preferred embodiment a non-linear filtration algorithm is applied to the classification results. In a specific example, a median filtration algorithm is used. Figure 10 shows an apparatus for implementing the median filtration algorithm. A buffer 1000 stores the Z last classification results. In .a preferred embodiment, the length Z of the median filter is a prescribed parameter. The buffer is a shift register. The Z last classifications are summed by an adder 1002. In a specific example, the outputs of the shift register 1000 are the inputs of the adder 1002. The output of the adder 1002 is equal to the number of ones in the buffer 1000. The output of the adder is compared to a threshold value by a comparator 1004. In a specific example, the output of the adder 1002 is the input of the comparator 1004 which compares the calculated value to (Z-l)/2.
If the output of the adder is greater than (Z-l)/2, then the comparator 1004 outputs "1", else the comparator 1004 outputs "0".
The output of the comparator is then processed by an selective inverter 1006. The selective inverter 1006 receives as an input the output of the comparator as well as the current state. If the current state Vdigit [State] is an OFF state, the output of the comparator is inverted. The output of the non-linear filtration stage is a signal, herein referred to as Dout, defined as follows: Dout = 1 when the current segment is consistent with the current state (which can either be an ON state or an OFF state) . Dout =0 when the signal is in transition from the current state to a different state.
In a preferred embodiment, the tone detection apparatus includes a cadence processing unit. The cadence processing unit receives the results of the quadrature processing, the precision spectral processing and the logical processing stage. In a preferred embodiment, the cadence processing unit receives from the logical processing unit the binary result of the processing namely the classification result. Alternatively, the cadence processing unit receives the output Dout of the non-linear fi-ltration stage.
Cadence Processing
For each tone of interest, the cadence processing stage performs a timing validation test to evaluate whether the timing features of the signal conform to the specification of the tone being considered":" ~ Preferably, for each tone of interest, a separate cadence processing unit is present in the cadence processing stage. In a specific example, if it is desired for a tone detector to detect the fax calling tone and the SIT tone then two (2) cadence processing unit will be present in the cadence processing stage namely one for the fax calling tone and one for the SIT tone. Preferably, for each tone, the specifications are stored on a computer readable medium in the tone parameter database 308. Alternatively, each cadence processing unit is configured according to the specifications of their respective tones. In a preferred embodiment, the tone detection apparatus provides a partial confidence feature that reports levels of partial confidence if the full cadence of a tone has not been qualified within a specified time, herein referred to as the observation window. In a preferred embodiment, the cadence processing stage provides multiple cadence processing units, one for each of the tones of interest. The description below is directed to a single cadence processing unit. Those skilled in the art will readily see how this may be applied to the other cadence processing units.
In a preferred embodiment, the cadence processing operation is performed on the basis of segments. In a preferred embodiment, the cadence processing unit obtains the temporal pattern to be validated from the tone parameter database 308. The cadence processing unit also receives the processed signal from the logical processing unit and may also receive the output of the spectral processing unit. For each pulse in each cadence pattern, the temporal pattern of the tone specifies the state of the signal, the minimum duration and the maximum duration. In a specific example, the OFF states are identified by the digit "0" while the ON states are identified by a vector of digits specifying the desired frequencies . A common tone pattern is an ON-OFF cadence in which the ON pulses are multifrequency tones. In a specific example, such a tone may be specified with the following bit pattern {11, 00, 11} along with- -.an appropriate time duration for each portion of the tone. In another specific example, an SIT tone with three successive signal tones may be specified with the following bit pattern: {001, 010, 100} along with the appropriate length for each segment. In the special case where a tone continues indefinitely, such as the Dial tone, a predetermined value for the maximum duration is set. The specified sequence of NState ON and OFF states, where NState is the number of states in the tone pattern, is considered to be detected with full confidence if the complete sequence of ON and OFF states is detected. The minimum confidence level is also specified as the parameter Minimum_Confidence . The partial confidence levels are also specified in the tone parameters database. In a preferred embodiment, during the transition between two states of the signal, the conditions are relaxed. The length of the transition time is specified by a variable (Transition_Length) in the tone parameter database. Figure 11 shows flow diagram for the cadence processing block. In a typical interaction, the system initialises the current state of the pattern to "1" and the current segment count to "0" 1100. Once the system has been initialised, the cadence processing operation begins at step 1102. For each segment, the output of the logical processing unit is processed in the manner described previously. The output of the logical processing unit is such that a "0" signals the transition from the current state to a new state and a "1" indicates that the current segment satisfies the properties of the current state. There is no distinction between ON and OFF states in the cadence processing unit, the distinction having been made in the logical processing stage. The segment counter is then incremented by 1 as step 1102 and condition 1104 is tested. Condition 1104 checks if the system is allowing for a transition. If the number of segments in the transition is less than or equal to the maximum length of the transition, condition 1104 is answered in the positive and the processing of the current segment is complete. If -the number of segments in the transition is greater tharM the maximum length of the transition, then condition 1004 is answered in the negative and the system proceeds to evaluate condition 1108. Condition 1108 evaluates if the signal is in a transition. The presence of a transition is signalled through the presence of Dout=0. If a transition does not occur, condition 1108 is answered in the negative and the system proceeds to condition 1110. Condition 1110 evaluates the special condition where the tone being tested continues indefinitely (e.g dial tone) .
If the tone being tested is not such a tone, condition 1110 is answered in the negative and the cadence processing is done for the present segment 1112. Condition 1110 is answered in the positive if the tone being tested continues indefinitely. In figure 11 this is shown by setting the upper limit of the tone duration to 0 so that only the lower limit is tested. The system then proceeds to condition 1134 in figure 11a. Condition 1134 checks if the number of states is equal to the total number of states (NStates) in the tone and if the minimum duration of the tone has been satisfied. If either of the conditions fail, condition 1134 is answered in the negative and the cadence processing is done for the present segment 1136. Otherwise, condition 1134 is answered in the 5 positive and the system proceeds to step 1138. At step 1138, the system sets the confidence level to full confidence and then outputs the full confidence result 1140. Following this, the variables are re-initialised 1142. If at condition 1108 a transition is detected, condition 1108 is answered in the positive
10 and condition 1114 is tested. Condition 1114 checks if the current state satisfies the minimum and maximum duration for the tone state pattern. If the duration tolerance is not satisfied, condition
1114 is answered the negative and the system proceeds to step 1116.
At step 1116 the state and segment counter are re-initialised and
15 the processing for this segment is complete 1118. If the duration tolerance is satisfied, condition 1114 is answered in the positive and the segment counter is reset to for the next segment 1120. It is then tested at condition 1122 if the number of states is equal to the total number of states in the tone. If condition
20 1122 is answered in the negative the system proceeds to step 1124 where the state '-is incremented by 1. The processing is then completed for that segment 1126. If condition 1122 is answered in the positive, the tone pattern has been detected with full confidence. The system sets the confidence level to full confidence
25 1128 and then outputs the full confidence result 1130. Following this, the variables are re-initialised 1132.
In a preferred embodiment, the cadence processing unit provides a timeout feature. The timeout condition is tested at the
30 sub-frame level. For a subframe that coincides with a segment interval, the timeout conditions are tested after the cadence validation has been performed. Each cadence processing unit in the cadence processing stage must timeout before the cadence processing stage as a whole can report a timeout tone indication. In a
35 preferred embodiment, each cadence processing unit may timeout under the following conditions: a) the minimum level of confidence cannot be reached within the remaining time in the observation window. A null confidence level indication is reported. b) The full duration of the observation window has been reached. A tone indication is reported with the confidence level equal to the counter of the current state in the cadence processing.
In a preferred embodiment, a variable, say "TimeOut", tracks the remaining time before the time in the observation window expires. In a typical interaction, the TimeOut variable is initialised to an observation window value. Preferably, a common observation window value is used for all the cadence processing units in the cadence processing stage. Alternatively, each cadence processing unit is assigned an observation window value independently and the longest observation window value. In this situation the longest observation window duration is used to determine the timeout condition of the entire cadence processing stage. Following this, at the current subframe, a timeout test is performed for each of the selected cadence processing units. The selected cadence-.' processing units are specified in the tone parameter database. The timeout test determined if there is sufficient time remaining in the observation window interval to reach the minimum confidence level state. Mathematically, the condition being tested may be described as follows:
MinConfidence
(! ) TimeOut ≥ Subframe duration x step x J Lowlimit[n] n=State
where step is the segment advance size in units of subframes. For example, a segment may contain 7 sub-frames while the step may be 5 sub-frames. In this example, successive segments overlap by 2 sub-frames. MinConfidence is the lowest acceptable confidence level and Lowlimit is an array of the minimum durations of the tone state. If inequality 17 is not satisfied, then the cadence processing unit outputs a signal to indicate it. In a specific example, if inequality 17 is satisfied the cadence processing unit outputs "1" else it outputs Each selected cadence processing unit in the cadence processing stage tests condition 17.
When all the outputs indicate that each cadence processing unit has timed out or that the tone detection was not requested, a null confidence tone indication is reported.
A specific example will better illustrate the cadence processing operation. The fax calling tone (CNG) is characterised by the following cadence {0.5 sec. ON; 3.0 sec. OFF; 0.5 sec. ON}.
Without the partial confidence feature, a 7.0 second time interval is needed to provide sufficient time to see both ON pulses. This time interval is herein referred to as the observation window of the signal. An alternative is to specify the pattern to be the single 0.5 sec. ON with an observation window of 3.5 sec. However, this method may lead to erroneous detection. Another alternative would be to specify the pattern to be 0.5 sec. ON and 3.0 sec OFF with an observation window of 6.5 sec. However the improvement over the full 7.0~-sec. observation window period is minimal.
In a preferred embodiment the cadence processing module of the tone detection apparatus provides a partial confidence feature allowing the cadence unit to report partial confidence measures if the full cadence has not been received. For each tone of interest, a set of levels of confidence are defined. In the specific example of the CNG tone detector, the following levels of confidence are use:
Figure imgf000054_0001
Other confidence levels and observation window values may be used here without detracting from the spirit of the invention. The levels of confidence for each tone of interest are stored in the tone parameter database 308 of the tone detection apparatus. In a specific example, level 0 confidence indicates that the predefined criteria has not been met. In a preferred embodiment, when a signal has reached a full confidence level, the cadence processing unit outputs it at the time the event occurs. If the full confidence level has not been reached within the observation window period, the partial confidence result is outputted at the end of the observation window period. In the specific example shown previously, the cadence processing unit will report for a valid CNG tone either a level 1, level 2 or full confidence result depending on the alignment of the pulses in the 5.0 sec observation window. For non-CNG tones, there may be cases where a level 1 partial confidence measure is erroneously reported. However, the possibility of error is less than if the pattern had been specified to be the single 0.5 sec ON. The reason is that with the partial confidence feature the detection of a 0.5 sec ON pulse may later be disqualified if the .remaining signal does not satisfy the cadence pattern.*v. -For example, during the detection of the CNG tone, if a 0.5 sec ON pulse is detected between time 0.5 sec and 1.0 of the observation window, the confidence value is set to level 1. If at time 2.0 sec of the observation window, another ON pulse is observed, the state machine resets the confidence level to 0 and continues to look for the valid pattern in the remaining 3.0 sec of the observation window.
In another preferred embodiment, for each tone of interest, a minimum partial confidence parameter is specified. When it is known that the minimum confidence level cannot be satisfied in the remaining time, the system times out. In other words, the system times out as soon as possible. In a specific example, the minimum confidence level of the CNG tone is specified to be level 2 (o.5 sec ON; 3.0 sec OFF) and the observation window is specified to be 7.0 sec. At the time just over 3.5 sec, the cadence processing unit has not yet seen the start of an ON pulse. Therefore it is not possible for the minimum confidence level to be reached in the remaining < 3.5 sec. The cadence processing unit return a level 0 confidence result after 3.5 sec rather than wait for the full 7.0 sec to expire.
In another preferred embodiment of this invention, the tone detection apparatus is integrated into a communication channel, such as one that could be used in a telephone network, that enables the accurate detection and decoding of Multi-Frequency (MF) tones. MF tones are mainly used to transmit calling and/or caller number information between telephone switches. An MF tone is detected if and only if two of the allowable frequencies are above a certain amplitude threshold and the durations are long enough to avoid any erroneous recognition. Each combination of two frequencies represents a pulse that in turn represents a digit. If more than two frequencies are present, as caused by a double key press, the receiver should report an error. Frequency and duration standards for MF are shown in tables 1 and 2.
Table 1 : The -table below shows the multi-frequency (MF) tone combinations for the various digits and control signals.
Figure imgf000056_0001
Table 2: Specifications for tone receivers describe a variety of criteria that the receiver should conform to. Tolerances are generally specified with an "accept band", within which the tone should be accepted, and a "reject band" in which the tone should be rejected. Often there is a gap between these two bands in which the tone may or may not be accepted. The table below shows the tolerance of the MF system as directed by the BellCore specification "BOC Notes on the LEC Networks SR-TSV-002275" :
Figure imgf000057_0001
In a typicaMlnteraction, a transmitter from a calling office initiates a tone sequence by sending a special tone, called the KP tone, and then proceeds by sending a series tones representing a digit sequence. Upon termination, the transmitter sends a ST tone to indicate the end of the tone sequence. The MF receiver monitors the communication channel for the KP tone. Until its reception, it ignores all signals on the channel. Once it receives the KP tone, it monitors the channel, performs an analog to digital conversion of the signal and proceeds in the spectral and temporal analysis of the signal. The spectral analysis is performed by computing the straight DFT at the six frequencies of interest {700, 900, 1100, 1300, 1500, and 1700} over a short time sub-frame. Following this, a second DFT is performed on the results of the first DFT over a segment. This allows a very high time resolution due to the short time window of the first DFT and a high frequency resolution due to the longer time window resulting from the concatenation of many sub-frames in the second DFT. Following this computation, the results of the quadrature processing stage and the precision spectral processing stage are sent to the validation unit which evaluates if some predetermined amplitude criteria have been met and if the temporal requirement have been attained. If a valid tone is detected, the corresponding digit is sent to a controller that performs a predetermined operation such as connection or billing. The cadence processing unit may be omitted from the MF receiver without detracting from the spirit of the invention. Once the receiver decodes the ST tone, it stops monitoring the communication channel for digit tone and monitors for the KP tone once again.
In another specific embodiment of this invention, the tone detection apparatus is integrated into a communication channel, such as one that could be used in a telephone network, that enables the accurate detection and decoding of Dual Tone Multi-Frequency (DTMF) tones. DTMF are mainly used for communications between the user and the system and can also be used to transfer information between telephone switches. As a concrete example of DTMF signalling, customers dialling into a service provider and requesting information may confirm what is understood by pressing the numbers on a touch tone pad. DTMF tones are similar to MF tone in the sense that they are composed of two and only two frequencies. However, DTMF tones consist of one frequency from a low group and one frequency from high group and have 16 distinct combinations. The table 3 and 4 show the frequency and time specification for DTMF tones. The spectral processing of a DTMF tone is similar to the MF tones except that the frequencies analysed are different and that there are no KP/ST tones. Table 3
The table below shows the dual tone multi-frequency (DTMF) tone combinations for the various digits and control signals.
Figure imgf000059_0001
Table 4
Tolerances are generally specified with an "accept band" within which the tone should be accepted and a "reject band" in which the tone should be rejected. Often there is a gap between these two bands in which the tone may or may not be accepted. The table below shows the tolerance of the DTMF system as directed by the BellCore specification:
Figure imgf000059_0002
From the structural point of view, the tone receiver, in accordance with this invention can be implemented on a digital signal processor (DSP) chip. The present embodiment was implemented using a 56 MHz Motorola 56002 digital signal processor (DSP) written in code able to execute on a 56001 DSP chips and the code is written in assembly language. Alternatively, the above- described method for detecting a tone can be implemented on any suitable computing platform as shown in figure 12. Such computing platform typically includes a real-time CPU 1202 and a memory 1200 connected to the CPU by a data communication bus. The memory 1200 stores the data 1206 and the instructions of the program 1204 implementing the functional blocks depicted in the drawings and described in the specification." That program 1204 operates on the data 1206 in accordance with the algorithms described above to determined if a tone is present in a given signal.
Although the present invention has been described in considerable detail with .reference to certain preferred versions thereof, other versions are possible. For example in cases where new signalling must be introduced, it is sufficient to modify the parameters such as frequencies analysed and tolerance in order to use this invention. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred embodiment described above.

Claims

We claim:
1. An apparatus for performing cadence detection on a signal, said apparatus comprising: - an input for receiving an input signal potentially manifesting a certain cadence; a signal processing functional block coupled to said input for receiving the input signal, said signal processing functional block being operative to successively compute confidence level values over time during a processing period, a currently computed confidence level value being indicative of a likelihood of existence of a certain cadence in the input - signal since a beginning of said processing period, said processing period being characterised by a variable duration; said signal processing functional block including an output for generating an output signal indicative of the confidence level value at the end of said processing period.
2. An apparatus a defined in claim 1, wherein said signal processing functional block is operative to selectively terminate the processing period on the basis of the currently computed confidence level value.
3. An apparatus as defined in claim 1, wherein said signal processing functional block is operative to terminate said processing period when the currently computed confidence level value reaches a certain threshold.
4. An apparatus as defined in claim 1, wherein said signal processing functional block is operative to terminate said processing period when a duration of said processing period exceeds a certain value.
5. An apparatus as defined in claim 4, wherein said signal processing functional block is operative to terminate said processing period when the currently computed confidence level value and an amount of time remaining in the processing period before reaching said certain value indicate that the certain cadence is unlikely to be detected before reaching said certain value.
6. A method for performing cadence detection on a signal, said method comprising the steps of: receiving a signal potentially manifesting a certain cadence; successively computing confidence level values over time during a processing period, a currently computed confidence level value being indicative of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period, said processing period being characterised by a variable duration; generating an output signal indicative of the confidence level value at the end of said processing period.
7. A method a defined in claim 6, comprising the step of selectively terminating the processing period on the basis of the currently computed confidence level value.
8. A method as defined in claim 6, comprising the step of terminating said processing period when the currently computed confidence level value reaches a certain threshold.
9. A method as defined in claim 6, comprising the step of terminating said processing period when a duration of said processing period exceeds a certain value.
Ϊ0. A method as defined in claim 9, wherein said signal processing functional block is operative to terminate said processing period when the currently computed confidence level value and an amount of time remaining in the processing period before reaching said certain value indicate that the certain cadence is unlikely to be detected before reaching said certain value.
11. A method for performing cadence detection on a signal, said method comprising the steps of: receiving an input signal potentially manifesting a certain cadence; processing said signal to successively compute confidence level values over time during a processing period, a currently computed confidence level value being indicative of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period; controlling a duration of said processing period on a basis of the currently computed confidence level value.
12. A method as defined in claim 11, comprising the step of terminating the processing period when the currently computed confidence level value reaches a predetermined threshold.
13. A method as defined in claim 11, wherein the duration of said processing does not exceed a certain value.
14. An apparatus performing cadence detection on a signal, said apparatus comprising: an input for receiving an input signal potentially manifesting a certain cadence; a signal processing functional block for processing said signal to successively compute confidence level values over time during a processing period, a currently computed confidence level value being indicative of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period; a duration control unit for controlling the duration of said processing period on a basis of the currently computed confidence level value.
15. An apparatus as defined in claim 14, wherein said duration control unit is operative to terminate the processing period when the currently computed confidence level value reaches a
5 predetermined threshold.
16. An apparatus as defined in claim 14, wherein the duration of said processing does not exceed a certain value.
10 17. A tone detection apparatus suitable for detection of call progress tones, a call progress tone being characterised by at least one frequency component and a timing behaviour defining a certain cadence, said apparatus comprising: an input for receiving an input signal potentially
15 containing a call progress tone, the signal being capable of being divided in a plurality of consecutive sections; a spectral processing unit for processing said signal to generate a plurality of sets of data elements, the sets of data elements providing spectral information about
20 respective sections of the input signal; a frequency component processing unit coupled to said spectral processing unit for receiving sets of data elements and for processing the sets of data elements to output sets of classification data elements indicating
25 whether a frequency component of a certain call progress tone exists in respective sections of the input signal; a cadence processing unit coupled to said frequency component processing unit for receiving and processing sets of classification data elements to compute over time
30 successive confidence level values for the input signal during a processing period encompassing the sections of the input signal that correspond to the sets of classification data elements processed by the cadence processing unit, a currently computed confidence level value being indicative
35 of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period, said processing period being characterised by a variable duration; said cadence processing unit including an output for generating a signal indicative of the confidence level value at the end of said processing period.
18. An apparatus a defined in claim 17, wherein said cadence processing unit is operative to selectively terminate the processing period on the basis of the currently computed confidence level value.
19. An apparatus as defined in claim 17, wherein said cadence processing unit is operative to terminate said processing period when the currently computed confidence level value reaches a certain threshold.
20. An apparatus as defined in claim 17, wherein said cadence processing unit is operative to terminate said processing period when a duration of said processing period exceeds a certain value.
21. An apparatus as defined in claim 20, wherein said signal processing functional block is operative to terminate said processing period when the currently computed confidence level value and an amount of time remaining in the processing period before reaching said certain value indicate that the certain cadence is unlikely to be detected before reaching said certain value.
22. A method for performing tone detection suitable for the detection of call progress tones, a call progress tone being characterised by at least one frequency component and a timing behaviour defining a certain cadence, said method comprising the steps of: - receiving an input signal potentially containing a call progress tone, the signal being capable of being divided in a plurality of consecutive sections; processing said signal to generate a plurality of sets of data elements, the sets of data elements providing spectral information about respective sections of the input signal; 5 processing the sets of data elements to output sets of classification data elements indicating whether a frequency component of a certain call progress tone exists in respective sections of the input signal; processing said sets of classification data elements to
10 compute over time successive confidence level values for the input signal during a processing period encompassing the sections of the input signal that correspond to the sets of classification data elements processed by the cadence processing unit, a currently computed confidence
15 level value being indicative of a likelihood of existence of a certain cadence in the input signal since a beginning of said processing period, said processing period being characterised by a variable duration; generating a signal indicative of the confidence level
20 value at the end of said processing period.
23. A method a defined in claim 22, further comprising the step of selectively terminating the processing period on the basis of the currently computed confidence level value.
25
24. A method as defined in claim 22, wherein said terminating step terminates said processing period when the currently computed confidence level value reaches a certain threshold.
30 25. A method as defined in claim 22, wherein said terminating step terminates said processing period when a duration of said processing period exceeds a certain value.
26. A method as defined in claim 25, wherein said terminating
35 step terminates said processing period when the currently computed confidence level value and an amount of time remaining in the processing period before reaching said certain value indicate that the certain cadence is unlikely to be detected before reaching said certain value.
527. A tone detection system for use in a telecommunication network comprising the apparatus defined in claim 1.
28. A tone detection apparatus suitable for detecting call progress tones, a call progress tone being characterised by a sequence of 0 states, said apparatus comprising: an input for receiving an input signal potentially containing a call progress tone, the signal being capable of being divided in a plurality of segments; a spectral processing unit for processing said signal to 5 generate a plurality of sets of data elements, the sets of data elements providing spectral information about respective segments of the input signal; a logical processing unit coupled to said spectral processing unit for receiving and processing the sets of 0 data elements, said logical processing unit being operative to compute over time successive classification elements for respective segments of the input signal, each of the successive classification elements indicating whether the properties of the signal during the time segment match the 5 properties of a certain state of a certain call progress tone; said logical processing unit including an output for generating a result signal representative of the classification element computed by said logical processing 0 unit.
29. An apparatus as defined in claim 28, wherein said logical processing unit further comprises a non-linear filtration unit, said non-linear filtration unit comprising, an input for 5 receiving successive classification elements, said non-linear filtration unit being operative to process said successive classification elements in order to produce a result signal, said result signal containing substantially less variation than said successive classification elements. 5
30. An apparatus as defined in claim 29, wherein said nonlinear filtration unit is operational to apply a median filtering operation to said successive classification elements.
10 31. A method for detecting call progress tones, a call progress tone being characterised by a sequence of states, said method comprising the steps of: receiving an input signal potentially containing a call progress tone, the signal being capable of being divided in
15 a plurality of segments"; processing said signal to generate a plurality of sets of data elements, the sets of data elements providing spectral information about respective segments of the input signal; processing the sets of data elements to compute over time
20 successive classification elements for respective segments of the input signal, each of the successive classification elements indicating whether the properties of the signal during the time segment match the properties of a certain state of a certain call progress tone;
25 - generating a result signal representative of the classification element computed by said logical processing unit.
32. A method as defined in claim 31, further comprising a 30 non-linear filtration step, said non-linear filtration step further comprising the steps of: receiving successive classification elements; - processing said successive classification elements in order to produce a result signal, said result signal containing 35 substantially less variation than said successive classification elements.
3. A method as defined in claim 32, wherein said non-linear filtration step is operational to apply a median filtering operation to said successive classification elements.
PCT/RU1998/000353 1998-10-30 1998-10-30 Method and apparatus for detecting signalling tones WO2000030325A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/RU1998/000353 WO2000030325A1 (en) 1998-10-30 1998-10-30 Method and apparatus for detecting signalling tones
AU24433/99A AU2443399A (en) 1998-10-30 1998-10-30 Method and apparatus for detecting signalling tones

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU1998/000353 WO2000030325A1 (en) 1998-10-30 1998-10-30 Method and apparatus for detecting signalling tones

Publications (1)

Publication Number Publication Date
WO2000030325A1 true WO2000030325A1 (en) 2000-05-25

Family

ID=20130281

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU1998/000353 WO2000030325A1 (en) 1998-10-30 1998-10-30 Method and apparatus for detecting signalling tones

Country Status (2)

Country Link
AU (1) AU2443399A (en)
WO (1) WO2000030325A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961423B2 (en) 2002-06-24 2005-11-01 Freescale Semiconductor, Inc. Method and apparatus for performing adaptive filtering
US7215765B2 (en) 2002-06-24 2007-05-08 Freescale Semiconductor, Inc. Method and apparatus for pure delay estimation in a communication system
US7242762B2 (en) 2002-06-24 2007-07-10 Freescale Semiconductor, Inc. Monitoring and control of an adaptive filter in a communication system
US7388954B2 (en) 2002-06-24 2008-06-17 Freescale Semiconductor, Inc. Method and apparatus for tone indication
US7529363B2 (en) 2002-08-28 2009-05-05 Freescale Semiconductor, Inc. Tone detector and method therefor
US7844048B2 (en) 2004-03-08 2010-11-30 Freescale Semiconductor, Inc. Selective tone event detector and method therefor
US9503568B1 (en) 2016-06-30 2016-11-22 Captioncall, Llc Detecting dial tone on a telephone line

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023906A (en) * 1990-04-24 1991-06-11 The Telephone Connection Method for monitoring telephone call progress
EP0550144A1 (en) * 1991-12-31 1993-07-07 AT&T Corp. Method and apparatus for detection of a control signal in a communication system
US5321745A (en) * 1992-05-26 1994-06-14 Vmx, Inc. Adaptive efficient single/dual tone decoder apparatus and method for identifying call-progression signals
US5477465A (en) * 1993-08-31 1995-12-19 Talx Corporation Multi-frequency receiver with arbitrary center frequencies

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023906A (en) * 1990-04-24 1991-06-11 The Telephone Connection Method for monitoring telephone call progress
EP0550144A1 (en) * 1991-12-31 1993-07-07 AT&T Corp. Method and apparatus for detection of a control signal in a communication system
US5321745A (en) * 1992-05-26 1994-06-14 Vmx, Inc. Adaptive efficient single/dual tone decoder apparatus and method for identifying call-progression signals
US5477465A (en) * 1993-08-31 1995-12-19 Talx Corporation Multi-frequency receiver with arbitrary center frequencies

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961423B2 (en) 2002-06-24 2005-11-01 Freescale Semiconductor, Inc. Method and apparatus for performing adaptive filtering
US7215765B2 (en) 2002-06-24 2007-05-08 Freescale Semiconductor, Inc. Method and apparatus for pure delay estimation in a communication system
US7242762B2 (en) 2002-06-24 2007-07-10 Freescale Semiconductor, Inc. Monitoring and control of an adaptive filter in a communication system
US7388954B2 (en) 2002-06-24 2008-06-17 Freescale Semiconductor, Inc. Method and apparatus for tone indication
US7529363B2 (en) 2002-08-28 2009-05-05 Freescale Semiconductor, Inc. Tone detector and method therefor
US7844048B2 (en) 2004-03-08 2010-11-30 Freescale Semiconductor, Inc. Selective tone event detector and method therefor
US9503568B1 (en) 2016-06-30 2016-11-22 Captioncall, Llc Detecting dial tone on a telephone line
US10063691B1 (en) 2016-06-30 2018-08-28 Sorenson Ip Holdings, Llc Detecting dial tone on a telephone line

Also Published As

Publication number Publication date
AU2443399A (en) 2000-06-05

Similar Documents

Publication Publication Date Title
JP3066213B2 (en) Control signal detection method
US6782095B1 (en) Method and apparatus for performing spectral processing in tone detection
US6370244B1 (en) Efficient digital ITU-compliant zero-buffering DTMF detection using the non-uniform discrete fourier transform
Felder et al. Efficient dual-tone multifrequency detection using the nonuniform discrete Fourier transform
US8457301B2 (en) Multi-frequency tone detector
US5163050A (en) Configurable parameter dtmf detector
CA2149163C (en) Detection of tones while minimizing incorrect identification of other sounds as tones
EP1395065B1 (en) Tone detector and method therefor
WO2000030325A1 (en) Method and apparatus for detecting signalling tones
US4460808A (en) Adaptive signal receiving method and apparatus
US5353345A (en) Method and apparatus for DTMF detection
US6199036B1 (en) Tone detection using pitch period
US6560331B1 (en) System and method for precise DTMF signal detection
US6587559B1 (en) Cross-frame dual tone multifrequency detector
EP0988758B1 (en) Tone detection with aliasing bandpass filters
US6850616B2 (en) Frequency error detection methods and systems using the same
WO1999029085A2 (en) Method and apparatus for detecting tones
US6046977A (en) Method and apparatus for detecting signal misalignment
JP2962210B2 (en) Dial detection device
US6301355B1 (en) Method and apparatus for analyzing dual tone multi-frequency (DTMF) signals on a private branch exchange (PBX) switch
KR100384286B1 (en) Dual Tone Multi Frequency Signaling Detecting Method Of Switching System
Andritsopoulos et al. An accurate Dual Tone Multiple Frequency Detector based on the low-complexity Goertzel algorithm
Bagchi et al. Dual-Tone Multi-Frequency Signal Decoding
JPH0865717A (en) Dial detection device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AM AT AU BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IS JP KE KG KP KR KZ LK LR LT LU LV MD MG MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TT UA UG US UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 09830690

Country of ref document: US

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase