Abstract:
A digital signal processor is provided with the facility to measure accurately, and nonintrusively, the levels of noise and/or speech signals appearing on an in-service network connection.

Description:
FIELD OF THE INVENTION 
     This invention relates to the accurate measurement of noise and speech levels in a transmission path, such as a telephone connection. 
     BACKGROUND OF THE INVENTION 
     The levels of noise and speech signals propagating through an in-service transmission path are used to determine the quality of the path. For example, the transmission quality of the path may be questionable if the level of the noise signals is high, or if the level of the speech signals is low (weak). It can be appreciated, therefore, that an accurate determination of the quality of a transmission path requires an accurate measurement of the levels of noise and speech signals as they propagate through the transmission path. 
     Prior measuring arrangements have been unable to achieve such accuracy, since they do not accurately measure the level of noise present in a transmission path. For example, one such prior measuring arrangement performs multiple measurements over a respective 30 millisecond window when noise signals are believed to be present on the transmission path. Noise signals are believed to be present when the level of the signal on the path falls below a predetermined threshold. At that point, the prior measuring arrangement measures the level of all signals that are present on the transmission path within the 30 millisecond window. The arrangement then determines an average noise value for the window. When the prior measuring arrangement has completed a number of such measurements, it then outputs, as the noise level of the transmission path, the average having the lowest value. This prior measuring arrangement does not provide an accurate noise level measurement because both speech signals and noise signals could be present during the 30 millisecond window, thereby biasing the resulting average. 
     U.S. Pat. No. 5,216,702 to the inventor hereof, the specification of which is incorporated herein by reference, describes a method and apparatus for obtaining a nonintrusive measurement of noise and speech signals present on in-service connection by first determining whether samples of signals received from the connection correspond to noise or speech. The noise and speech levels of the connection are then determined as a function of such samples. Specifically, individual average power levels are determined for succeeding groups of noise signals that are present on the connection within a predetermined period of time. An average power level is then determined for the succeeding groups as a whole. When a predetermined number of such average power levels have been determined, the median of such average power levels is output as the noise measurement of the connection. A speech level measurement is obtained in a similar manner. 
     The median of the average power levels was chosen as the output in the method and apparatus of U.S. Pat. No. 5,216,702 because it provided an accurate measurement of noise level during testing of the system under laboratory conditions. Under laboratory conditions, the testing environment is generally well controlled because noise and speech are injected into the system from recorded sources. However, when the system was tested in the field subsequent to the issuance of U.S. Pat. No. 5,216,702, it was discovered that a median of the average power levels does not provide an accurate measurement of noise. Specifically, a significant amount of ambient background noise, such as a television or a baby, which is absent under laboratory conditions, exists in the field. This background noise adds significant variability to the signals present on the transmission path. This variability due to background noise cannot be discriminated from the circuit noise present on the channel, and thus a median of the average power levels tends to overstate the actual circuit noise level of the channel. 
     SUMMARY OF THE INVENTION 
     Provided is a facility which obtains a nonintrusive measurement of speech and noise signals present on an in-service connection by first determining whether samples of signals received from the connection correspond to speech or noise, and then determining the noise and speech levels of the connection as a function of such samples. In this way, a dynamic noise measurement is obtained, in accord with an aspect of the invention, by determining the minimum of a number of measurements of the average power levels of noise signals, in which the measurements are accumulated over respective periods of time when it is known that noise signals are present on the connection. The minimum of the average power levels under such a measuring scheme, once thought to underestimate the noise measurement, has subsequently been discovered as providing a more accurate measurement of the noise present on the transmission path under real world conditions. A speech level measurement is obtained in a similar manner. 
     More specifically, an average power level is determined for succeeding groups of noise signals that are present on the connection within a predetermined period of time. When a predetermined number of such average power levels have been determined, then, in accord with an aspect of the invention, the minimum of such average power levels is outputted to an output terminal as the noise measurement. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 illustrates the manner in which signal level measuring equipment may be connected to an in-service network connection for the purpose of measuring the level of noise and/or speech signals propagating through the connection. 
     FIGS. 2-5 illustrate in flow chart form the program which implements the present invention in the digital signal processor of FIG. 1. 
    
    
     DETAILED DESCRIPTION 
     FIG. 1 illustrates a conventional telephone connection established between station sets S1 and S2 via Central Offices (COs) 200 and 250 and interexchange network 300. The way in which a telephone connection is established between telephone station sets is well-known and will not be discussed herein. However, it is seen from the FIG. that such a connection includes telephone lines 201, which connects station set S1 to Central Office (CO) 200. At CO 200, a conventional hybrid arrangement converts 2-wire telephone line 201 to a so-called 4-wire transmission path comprising paths 203 and 204. Paths 203 and 204 are then connected through toll switch 305, intertoll connection 310 and toll switch 315 to CO 250 where another conventional hybrid arrangement converts paths 203 and 204 into a 2-wire telephone line extending to station set S2. 
     As is well-known, interexchange network 300 may be of the type which transports speech signals via its associated intertoll network 310 in digital form. Accordingly, COs 200 and 250 include analog-to-digital and digital-to-analog converters in the interface that they present at network 300. 
     In order to gauge the quality of the transmission connection between station sets S1 and S2, copies (samples) of the digital speech signals traveling in the E and F directions along intertoll connection 310 are supplied to transmission measurement arrangements 100 via leads 101 and 102 are then presented to respective inputs of Digital Signal Processor (DSP) 115 via interface circuits 105 and 110, respectively. DSP 115, which may be, for example, the model DSP32 manufactured by Lucent Technologies, Inc., formerly the Systems and Technology Division of AT&amp;T, analyzes the digital samples that it receives from the E and F directions to determine if they represent speech or noise. Specifically, if particular digital samples represent a level which equals or exceeds a predetermined threshold, for example, a threshold having a level -42 dBm, then DSP 115 operating in accord with the principles of the invention concludes that the samples represent speech signals. 
     It is well-known that a speaker typically drops the level of his or her voice when completing a response. Accordingly, the level of a speaker&#39;s &#34;trailing&#34; voice signals may be below the aforementioned threshold. To account for that situation, DSP 115 is arranged in accord with an aspect of the present invention so that when it detects a speech signal that equals or exceeds the threshold, it then considers all succeeding samples that occur within a predetermined window--illustratively 200 milliseconds--to be speech signals, even though the levels of those signals may be below the threshold, as will be explained below. 
     More specifically, DSP 115 is arranged to process a number of samples each second, e.g., 8000, for each of the E and F directions. To facilitate such processing, DSP 115 accumulates the squared values of a group of samples, e.g., 16, as they are received. In a preferred embodiment of the invention, the samples are filtered with a 200 Hz High Pass filter before they are squared and summed. This filter removes low frequency noise from sources such as AC Power from the signal. DSP 115 then determines an average power value for the group. If the average power equals or exceeds the aforementioned threshold of -42 dBm, then DSP 115 considers the average power value and succeeding ones of such values occurring within the aforementioned window to represent speech. As an aspect of the invention, DSP 115 is arranged to accumulate a predetermined number--illustratively 10,000--of such average power values that are speech for both the E and F directions. When it has concluded such processing, DSP 115 outputs via lead 103 the average value of the 10,000 power values it accumulated for the E direction and for the F direction. The outputted averages respectively represent the speech level measurements for the E and F direction. 
     It can be appreciated that, during the measurement, speech signals traveling in either the E and F direction could be an echo, which, if included in the speech measurement, could bias the overall speech measurement that DSP 115 outputs to lead 103. To guard against such a possibility, DSP 115 is arranged, in accord with an aspect of the invention, to determine if a group of speech samples that it receives represents an echo. If DSP 115 finds that to be the case, it discards the group. In particular, if DSP 115 receives simultaneously a group of speech samples from both the E and F directions, then DSP 115 determines if one of the groups represents an echo. If that is the case, then, as mentioned above, DSP 115 discards the average power level determined for that group, as will be explained below. 
     In addition, if DSP 115 finds that the average power level of a group of samples received from either the E or F direction is below -42 dBm and is not within the aforementioned speech window, then DSP 115 considers the group to be noise. If that is the case, then DSP 115 accumulates (sums) that average power level with the average power levels determined for succeeding groups of samples obtained from the same direction within a 200 millisecond window. However, if any one of such succeeding average power levels equals or exceeds -42 dBm, then DSP 115 discards the accumulation. DSP 115 does so since a power level of -42 dBm most likely represents speech and, therefore, would adversely effect the noise measurement represented by the accumulation, as will be explained below. 
     Turning now to FIGS. 2 through 4, the program which implements the principles of the invention in DSP 115 is shown in flow chart form. Specifically, when the program is entered at block 500 it clears a number of flags, counters and accumulators (identified below) and then proceeds to block 501. At block 501, the program accepts a sample of a signal traveling in the F direction over intertoll transmission path 310 (FIG. 1), and then proceeds to block 502. At block 502, the program calculates in a conventional manner the square of the voltage level represented by the received sample. The program then adds the result of the calculation to a running sum (accumulation) designated FDSUM. The program then increments a counter designated SUMCTR by a value of one. The program uses SUMCTR to determine when it has acquired a group of N samples from both the E and F directions, as will be seen below. In an illustrative embodiment of the invention, the value of N may be, for example, 16. Similarly, at blocks 503 and 504, the program acquires a sample of a signal traveling in the E direction and then determines the square of the voltage level of that sample. The program then adds the latter result to a running sum designated EDSUM. The program then proceeds to block 505. 
     As shown in FIG. 2, in a preferred embodiment of the invention, the E and F direction samples are filtered with a C-message filter before they are squared and summed. The C-message filter reflects the impact of noise at different frequencies on callers&#39; opinion of quality. 
     At block 505, the program returns to block 501 if the value contained in SUMCTR indicates that it has not acquired N samples (e.g., 16 samples) for each of the two oppositely directed transmission paths. Otherwise, the program proceeds to block 506 where it clears (sets to zero) the contents of SUMCTR and then proceeds to block 507. At block 507, the program calculates a value designated FDVAL (EDVAL), which is proportional to the average power level of the group of samples acquired from the F (E) direction. The program then proceeds to block 508 where it clears FDSUM and EDSUM and increments two counters respectively designated FDHANGOVER and EDHANGOVER by a value of one. The program then proceeds to block 509. (The purpose of the latter counters will be made clear below. However, it suffices to say at this point that those counters represents a particular period of time which is defined herein as being a &#34;hangover&#34; time.) 
     Program blocks 509, 510 and 518 through 520 represent a program module which determines if the value of FDVAL determined at block 507 represents speech. Program blocks 511, 512, and 521 through 523 perform a similar function on EDVAL. 
     Specifically, at block 509, the program compares the value FDVAL with a threshold (TH) having a predetermined value--illustratively -42 dBm. If the program finds that the values of FDVAL equals or exceeds the value of TH, then it proceeds to block 518. At block 510, the program sets the contents of counter FDHANGOVER to zero and sets a flag FDSTATE to equal a value of one to indicate that the value of FDVAL represents speech. The program then proceeds to block 511. 
     As an aspect of the invention, the program classifies as speech signals samples of signals acquired within 200 milliseconds of a group of samples whose power value, e.g., FDVAL, exceeds TH. Accordingly, the program uses a &#34;hangover&#34; time to include samples of weak speech signals. The program implements the foregoing by incrementing hangover counter FDHANGOVER by a value of one each time it passes through block 508, in which, in accord with the aforementioned sample rate, a value of one represents two milliseconds. In addition, the program clears counter FDHANGOVER at block 510 to ensure that the F-direction samples that are acquired within the next 200 milliseconds are classified as speech signals. 
     In particular, when the program arrives a block 518, it compares the value represented by the contents of counter FDHANGOVER with a predetermined value M, e.g., 100, representing 200 milliseconds. The program proceeds to block 519 if the comparison indicates that the former value is less than the latter value. Otherwise, the program proceeds to block 520. At block 519, the program sets flag FDSTATE to a value of one to indicate that the current value of FDVAL represents speech. At block 520, the program sets the value of FDSTATE to zero to indicate that the value of FDVAL does not represent speech, since that value is below TH and was derived from samples that were received after the expiration of the hangover time. The program then proceeds to block 511 (FIG. 3). 
     As mentioned above, blocks 511, 512 and 521 through 523 perform a similar function with respect to EDVAL. As such, when the program arrives at block 513, the value of flag EDSTATE will be set to a one or zero, indicating that the value of EDVAL represents speech or nonspeech (noise) signals, respectively. 
     Blocks 513, 514 and 524 represent a program module which determines if (a) speech signals were detected in one direction only, E or F, or both directions, or (b) nonspeech signals were detected in both the E and F directions. If speech is detected in both directions, then the program (blocks 526 and 527) determines, in accord with an aspect of the invention, if either the E- or F-direction speech is an echo. If that is the case, then the program retains the power level derived from the true speech samples and discards the power level derived from the echo. The program discards the latter power level, since it represents a reflection of true speech signals. If the module determines that EDVAL and FDVAL both represent speech, then the module retains both values and accumulates them in a manner to be described below. 
     Specifically, the program at block 513 proceeds to block 514 if it finds FDSTATE is set to a value of one, which, as mentioned above, is indicative of speech. Otherwise, the program proceeds to block 524 where it proceeds to block 531 if it finds that EDSTATE is set to a value of zero, which, as mentioned above, is indicative of nonspeech signals (i.e., noise). Otherwise, the program proceeds to block 525. 
     At block 514 (525), the program clears two values, EDNOISE and FDNOISE, which it uses to accumulate the power level value determined for each of a number of successive groups of samples that are found to represent noise and obtained from the E direction and/or F direction, respectively. The program also clears a counter, NSCTR, that it uses to track the number of successive groups of E- and F-direction samples that are found to be noise. The purpose of the EDNOISE and FDNOISE values and NSCTR counter will be made clear below. Following the foregoing, the program then proceeds to block 515. 
     At block 515, the program proceeds to block 610 if it finds that EDSTATE is also set to a value of one. Otherwise, the program proceeds to block 516. 
     At block 516 (528) the program determines whether or not it has processed a predetermined number--illustratively 10,000--groups of F-direction (E-direction) speech samples. To make that determination, the program maintains a counter, FDCTR (EDCTR), which it increments following the processing of a group of F-direction (E-direction) speech samples. If the program finds that the value of FDCTR (EDCTR) equals or exceeds a value of 10,000 (noted in the FIG. as P) then it proceeds to block 519 (530). Otherwise, the program proceeds directly to block 517 (529). At block 519 (530), the program sets a flag designated FDDONE (EDDONE) to indicate that it has processed 10,000 groups of F-direction (E-direction) speech samples. The program then proceeds to block 517 (529). At block 517 (529), the program adds the value of FDVAL (EDVAL) (i.e., the power level that the program derived from the current group of samples obtained from the F (E) direction) to an accumulation, FDSPEECH (EDSPEECH), of such power levels. The program then increments counter FDCTR (EDCTR) by a value of one and then returns to block 501 to repeat the foregoing process. 
     The program reaches block 610 if speech is detected in both the E and F directions, in other words if EDVAL and FDVAL are both determined to be speech. If this is the case, EDVAL and FDVAL are summed and stored temporarily, and will be added to EDSPEECH and FDSPEECH, if they are determined to not be echos, either when the program is finished or when a predetermined number have been accumulated, for example 50. At block 610, EDVAL and FDVAL are added to EDTSUM and FDTSUM, respectively. In addition, a counter DTCTR is incremented. At block 615, DTCTR is checked to determine whether a predetermined number, for example 50, EDVAL and FDVAL values have been accumulated. If 50 have not been accumulated, then the program returns to block 501. Otherwise, as shown in block 620, FDTSUM is compared to two-times EDTSUM. If FDTSUM is greater than two-times EDTSUM, then EDTSUM is considered to represent echo signals and the program proceeds to block 625, where EDTSUM is discarded, FDTSUM is added to FDSPEECH, and FDCTR is incremented by a value equal to DTCTR. Otherwise, the program proceeds to block 630, where EDTSUM is compared to two-times FDTSUM. If EDTSUM is greater than two-times FDTSUM, then FDTSUM is considered to represent echo signals and the program proceeds to block 635, where FDTSUM is discarded, EDTSUM is added to EDSPEECH, and EDCTR is incremented by an amount equal to DTCTR. Otherwise, the program proceeds to block 640 where EDTSUM is added to EDSPEECH, FDTSUM is added to FDSPEECH, and EDCTR and FDCTR are both incremented by a value equal to DTCTR. From blocks 625, 635 and 640, the program proceeds to block 645, where DTCTR, FDTSUM and EDTSUM are set to zero, and thereafter the block 536A. 
     At block 531, the program determines whether the value of a counter, APTR, is less than a predetermined value i, for example, a value of 11. APTR is initially set to a value of 1. The program uses the aforementioned NSCTR counter to track 100 consecutive FDVALs and EDVALs that represent noise power levels, in which an NSCTR value of 100 represents 200 milliseconds. In this way, the program stores the average power level of consecutive samples obtained within a 200 millisecond window from both the E and F transmission paths. 
     In particular, if the program finds that the value of APTR is less than 11, then it proceeds to block 532. Otherwise, it proceeds to block 535. At block 532, the program (a) adds the values of FDVAL and EDVAL (which represent noise) to accumulators FDNOISE and EDNOISE, respectively, and (b) increments counter NSCTR by a value of one. As stated above, in a preferred embodiment of the invention, the samples included in the noise sums (FDNOISE and EDNOISE) are filtered with a C-message filter before they are squared and summed (blocks 501-504). The C-message filter reflects the impact of noise at different frequencies on callers&#39; opinion of quality. The program then proceeds to block 533, where it checks to see if the value of NSCTR equals 100. If that is the case, then the program proceeds to block 550. Otherwise, it returns to block 501. At block 550, the program sets counter NSCTR to zero. Then, as shown in blocks 555-575, the program determines whether the values FDNOISE/100 and EDNOISE/100 are the minimum of such values measured by the program thus far. If a new minimum is found, that value is stored in the appropriate one of EDNSMIN and FDNSMIN. The program then (a) clears accumulators FDNOISE and EDNOISE, (b) increments counter APTR by a value of one and then (c) goes to block 536. 
     At block 535, the program sets a flag, NSDONE to indicate that it has accumulated sufficient data to calculate an accurate noise level measurement for the E and F transmission paths and the program then proceeds to block 532. 
     At blocks 536 through 538, the program determines if it has accumulated the required data to generate speech and noise measurements for both the E and F transmission paths and proceeds to block 539 if it finds that to be the case. Otherwise, the program returns to block 501 via the NO branches of blocks 536A through 538. 
     The program arrives at block 539 as a result of having accumulated in each accumulator FDSPEECH and EDSPEECH the average power values for approximately 10,000 groups of respective speech samples and has stored in each of EDNSMIN and FDNSMIN the minimum power values relating to noise samples. As mentioned above, each of the latter power values represents the average power contained in a 200 millisecond window of noise signal samples. More particularly, the program at block 539 determines the average power level for the aforementioned groups obtained from the F direction path by dividing the contents of accumulator FDSPEECH by FDCTR. The program then converts the resulting value to dBm and outputs that result to lead 103 (FIG. 1) as the speech measurement for F direction. The program then proceeds to block 540 where it similarly generates a speech measurement for E direction and outputs the result to lead 103. The program then proceeds to block 541 where it converts FDNSMIN to dBrnC, which is dB referenced to a Picowatt using C-message weighting, and outputs that result to lead 103 as the noise measurement for the F direction. The program then proceeds to block 542 where it determines in a similar manner the noise measurement for the E direction and then outputs that result to lead 103. The program then exits via block 543. 
     In an alternative embodiment of the present invention, rather than finding the minimum of exactly i average values of 100 FDVALs and EDVALs and then ceasing to accumulate such values, the program operates such that it need only accumulate a predetermined minimum number of average values of 100 FDVALs and EDVALs, before setting the NSDONE flag equal to one. However, in this alternative embodiment, the program will continue to accumulate average values of FDVALs and EDVALs, even after the minimum number have been accumulated, until the speech level measurements are completely done, i.e., until FDDONE and EDDONE are equal to one. In all other respects, the program functions in an identical manner. 
     The foregoing is merely illustrative of the principles of the invention. Those skilled in the art will be able to devise numerous arrangements, which, although not explicitly shown or described herein, nevertheless embody those principles that are within the spirit and scope of the invention.