|Publication number||USRE29460 E|
|Application number||US 05/772,391|
|Publication date||Oct 25, 1977|
|Filing date||Feb 28, 1977|
|Priority date||Jul 22, 1974|
|Publication number||05772391, 772391, US RE29460 E, US RE29460E, US-E-RE29460, USRE29460 E, USRE29460E|
|Inventors||Jeffrey P. Mills|
|Original Assignee||Gte Automatic Electric Laboratories Incorporated|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (3), Non-Patent Citations (2), Referenced by (3), Classifications (11), Legal Events (1)|
|External Links: USPTO, USPTO Assignment, Espacenet|
Reference may be made to the following U.S. Pat. Nos.: 2,902,542; 3,432,619; 3,435,147; 3,544,723; 3,548,107 and 3,632,888.
Pulse-Coded Modulation (PCM) is a system of audio frequency transmission whereby the continuously varying (analog) audio signal is coded into a series of digital binary pulses, transmitted over a distance, and then converted back to analog. The signal, while in digital form, may be transmitted over very large distances. Any distortion or attenuation introduced by the transmission medium can be corrected for at strategic points ("repeaters") since the full amount of information can be recovered from the digital pulse-coded signal at each repeater. Furthermore, many audio signals can be combined onto one PCM line, and later separated, so that the line can transmit many conversations. This multiplexing is achieved by sequentially transmitting one pulse from each conversation onto the line, and, at the receiving end of the line, using a demultiplexer to divert each pulse to the correct converter, each of which then converts the pulses of one conversation back to the conventional analog form. The principle is described in various publications, and reference may be made for instance to "An Introduction to PCM Switching", Automatic Electric Technical Journal, Apr. 1971.
Control signal information, such as the number being called, etc., is conveyed over conventional telephone lines by audio-frequency tones, such as the Touch Calling Multifrequency (TCMF) and the Two-Out-of-Six Multifrequency (2/6 MF) schemes. In these schemes two audio frequencies are generated by oscillators and applied to the conventional telephone line, and filters are used at the receiving end to detect the presence of these control signal tones and cause the system to operate accordingly.
Although many different schemes could be used to transmit the control signal information over PCM lines, it is desired, for compatibility reasons, to inject the same tones into the analog circuitry and code them, like any other audio signal, such as voice signals, into the PCM format. Then, at the receiving end, the demultiplexer could convert this pulse-coded tone back to analog, and the presence of the tones may be detected, as with conventional telephone lines, by filters, as set forth for example in U.S. Pat. No. 3,544,723. This patent also suggests the detection of a PCM tone signal by comparing an incoming signal to its delayed derivative, the detection being effected in the PCM domain.
Improved method and apparatus for detecting one or more tones in a PCM signal are disclosed in applicant's copending applications, Ser. No. 309,020, filed Nov. 24, 1972, now U.S. Pat. No. 3,863,030; and Ser. No. 311,064, filed Dec. 1, 1972, now U.S. Pat. No. 3,824,471, and assigned to the same assignee here. Those applications use digital Fourier spectrum analysis and describe two different techniques for implementation.
Accordingly it is a principal object of the present invention to provide a novel PCM receiver combination and method for detecting a PCM tone signal utilizing logic circuits without the necessity of converting the PCM signal to analog and then filtering it, without the necessity for deriving the derivative of the PCM signal, and with a lower error rate than that obtainable using Fourier spectrum analysis. The detector monitors the incoming PCM signal to determine the presence of a valid combination consisting of any two of the six frequencies used for control. It determines the tone combination (or absence of tones) which would most liekly cause the sequence of samples being observed. This process constitutes statistical detection, which is a well-known process. The application of the process to this problem is discussed in my paper entitled "Statistical Detection of Quantized Audio Tones", Proceedings of the National Electronics Conference, vol. 28, 1973.
The apparatus required for the detection technique described herein is somewhat more complex than that described in either of my above mentioned applications. Therefore, this technique is best suited for applications where the errors introduced by the previously described techniques, although small, are unacceptable. However, as more large scientific computers are produced, the component circuits may become readily available in large-scale monolithic form. Then, the present invention may be preferable over those described in the aforementioned applications even when the reduced error rate is not required.
In one embodiment of the invention, a multiplicity of N samples from the PCM signal are observed and are designated by an N-dimensional vector, x. Typically, 10 samples are observed, i.e., N = 10. The audio signal which was encoded to obtain these samples may or may not contain a pair of MF tones, and there are several combinations of MF tones which the signal could contain. The combination of MF tones is designated β, which may be equal to 1, 2, etc., or 0 if no tones are present at all. Depending on the PCM samples x, it is possible to estimate which combination of MF tones β was probably transmitted. Specifically, for each possible combination of MF tones β, the probability that the sequence of samples x would result is calculated. This probability is designated Px|β. The combination β for which Px|β is highest is then deemed to be the combination of MF tones which is present. If β is deemed to be 0, then this is equivalent to deciding that no MF tones are present at all.
Other objects will appear from time to time in the ensuing specification, drawings, and claims.
FIG. 1 is a block diagram representation of the PCM tone receiver of the present invention;
FIG. 2 is a block diagram representation of the floating-point multipliers of FIG. 1;
FIG. 3 is a block diagram representation of the floating-point adders of FIG. 1;
FIGS. 4 and 5 are a block diagram representation of a detector circuit driven by the PCM tone receivers of the type in FIG. 1; and
FIG. 6 is a graphic representation of a quantizing function useful in describing the method of the present invention.
The essence of my invention is a device which calculates the probability Px|β defined above. The theory behind this calculation is fully justified in my dissertation, entitled Statistical Detection of Quantized Audio Tones, Illinois Institute of Technology, Chicago, 1973. The process will be described here.
Corresponding to each possible combination of MF tones, (including the special case of no tones at all, or β = 0), there exists a unique covariance matrix, which is designated Λ.sub.β. If the number of PC samples to be observed is designated N, then Λ.sub.β is a positive-definite, symmetric N × N matrix. The actual values of the numbers contained in the matrix depend on the tone frequencies being sought, as well as their strength and tolerance and the amount of background noise. The numbers must be calculated, for each possible pair of tones, by the method described below.
A tone generated by an oscillator will vary slightly in amplitude and frequency and therefore constitutes a stochastic process. A stochastic process will first be defined corresponding to each single tone, and, by summing the two appropriate processes, it will then be possible to define a stochastic process corresponding to each possible combination, β.
The output of a sinewave oscillator is a stochastic process given by:
u(t) = V cos(ωt + φ) (1)
where t represents time and where V, ω, and φ are random variables representing peak amplitude, angular velocity (2π-frequency), and phase, respectively. The process must be stationary, since the time origin is unknown and therefore cannot affect the process. Therefore, the phase must be uniformly distributed, or:
P3 (φ) = 1/2π for 0 ≦ φ < 2π (2)
System specifications state that the frequency of an audio signaling tone must be held within a certain range centered about the nominal frequency, but nothing is usually specified regarding the probability density of the frequency within its permissible limits. For the purpose of this analysis, the frequency is assumed to have a normal probability density function with its mean equal to the given nominal frequency, ƒ0, and with its standard deviation equal to one third of the specified frequency tolerance, Δƒ. Then the conditional probability density of given ƒ0 is given by: ##EQU1## where ω0 = 2πƒ0 and σ2 = 2πΔƒ/3.
System specifications state Vmax and Vmin, the tolerance limits of the tone amplitude, but, again, nothing is usually known about the probability density function of the amplitude between these limits. In this case it is most reasonable to assume that the logarithm of the amplitude is normally distributed between the limits. The resulting amplitude probability density function is the logarithmico-normal function: ##EQU2## where σ1 = (1/6)1n(Vmax /Vmin). Furthermore, it is assumed that φ, ω, and V are all statistically independent.
The stochastic process, u(t), consisting of a single, undistorted audio tone, with random amplitude, frequency, and phase, is completely defined by Eqs. (1) through (4). Except for the small probability that one of the normally-distributed random variables exceeds three times its standard deviation, this definition is consistent with the system specifications.
It may be shown by one skilled in the art that the mean of u(t) is zero and that its autocorrelation function, which depends on the nominal tone frequency, ƒ0, is given by: ##EQU3## where: ##EQU4## The quantity σu 2 is equal to R.sub.ƒo (0) and therefore represents the average total power present in u(t).
Equation (5) states the autocorrelation function of u(t) in terms of Vmax, Vmin, f0, and Δƒ, all of which are explicitly specified for a particular tone in a given system. When numerical values are substituted for these quantities, a well-defined function, R.sub.ƒo (τ) results.
A new process, designated u(t), is now defined to be an ergodic Gaussian process with its mean equal to zero and its autocorrelation function equal to R.sub.ƒo (τ) given by Eq. (5). Thus, the mean and autocorrelation function of u(t) are identical to those of u(t). The sample functions of the two processes may be shown to be similar, although not identical. For the purposes of this invention, the Gaussian process u(t) is used to represent u(t). With this approximation, computation is greatly simplified.
Now consider the sum of two such processes designated u1 (t) and u2 (t). Their cross-correlation functions are identically zero; therefore, the processes are uncorrelated, or linearly independent. Thus, the autocorrelation function of their sum is equal to the sum of their autocorrelation functions.
Let u1 (t) and u2 (t) represent the Gaussian approximations of u1 (t) and u2 (t), respectively. In order that the autocorrelation function of u1 (t) + u2 (t) be identical to that of u1 (t) + u2 (t), u1 (t) and u2 (t) must be uncorrelated. Therefore, in order to achieve a sum process which is Gaussian, u1 (t) and u2 (t) must be statistically independent, and any possible interdependence between u1 (t) and u2 (t) must be ignored in the Gaussian approximation. This does not significantly reduce the optimality of the detector.
The generated audio tones pass through various sources of additive noise before being applied to the input of the PCM encoder. System specifications stipulate that the detector must operate under the assumption that the additive noise is Gaussian, band-limited white noise with specified power and bandwidth. This noise will therefore be added to the tones present in each message, and it represents only channel noise applied before the signal is encoded into PCM format. It does not include quantizing noise, which will be discussed later.
If n(t) is a stationary band-limited white Gaussian process, its autocorrelation function is given by:
Rn (τ) = (σn 2 /2πƒ2 τ)sin(2πƒ2 τ) (7)
where σn 2 is the noise power, ƒ2 is the upper cut-off frequency, and the lower cut-off frequency is zero. Since the noise process is Gaussian, it is completely specified by Eq. (7).
Let u(t) represent any stationary Gaussian random process, and let it be sequentially sampled N times with a period designated T. The amplitude of u(t) at each respective instant of sampling will then be u(t0), u(t0 +T), u(t0 + 2T), u(t0 + 3T), . . . , u(t0 +(N-1)T), where t0 is an arbitrary time origin. Let u be an N-element column vector representing these amplitudes. Then, since u(t) is Gaussian, the joint probability density function of all elements of u is Gaussian and is therefore given by:
Pu (u) = (1/√|2πΛ|) exp(-1/2ut Λ-1 u) (8)
where Λ is the convariance matrix of u, and where ut represents the transpose of u. Each element of Λis given by:
λij =R[(j-i)T] (9)
where R represents the autocorrelation function of the stationary process u(t).
If u(t) approximates a single audio tone, then its autocorrelation function is given by Eq. (5); its covariance matrix, Λ.sub.ƒ0, may be obtained by evaluating R.sub.ƒo (τ) at τ=0, τ=T, τ=2T, etc. On the other hand, if u(t) is band-limited white Gaussian noise, then its autocorrelation function is given by Eq. (7). In the physical systems discussed herein, the upper cut-off frequency of the system, ƒ2, is equal to one half the sampling rate. Symbolically:
ƒ2 = 1/(2T) (10)
then, by Eq. (7):
Rn (kT) = 0 for k ≠ 0, Rn (0) 32 σn 2 (11)
Λn = σn 2 I (12)
where I is the identity matrix. Finally, if u(t) is a combination of these processes representing a messsage, β, then its covariance matrix, Λ.sub.β, is equal to the sum of the covariance matrices of the individual processes, each obtained as above. The joint probability density function of the amplitudes of all samples, u, resulting from the tone combination β, is then given by:
Pu|β (u|β) = (1/√|2πΛ.sub.β |)exp(-1/2uΛ.sub.β-1 u) (13)
This probability density function is the basis of the detection scheme used in this invention.
A pulse-modulated signal is quantized in order that it may be encoded into binary form. Quantization may be regarded as a function, designated Q. It is a step function possibly with varying step sizes, such as shown for a D-2 channel quantizer in FIG. 6. The independent variable, u, is a continuous variable which represents the quantizer input voltage, and the dependent variable, x, is a discrete number which specifies the appropriate quantizing level on the graph. Only the magnitudes of u and x are shown; it is understood that their signs are identical.
To define the function, Q, it is only necessary to tabulate the lower end point a(x) and the upper end point b(x) for each segment x. Alternatively, the midpoint c(x) may be tabulated, along with d(x), the distance from the midpoint to either end of segment x. These quantities are illustrated for x = +120 in FIG. 6. The table is not included here but it may easily be derived from the compatibility specification for the system under consideration. Functions a and b are related to c and d as follows:
a(x) = c(x) - d(x)
b(x) = c(x) + d(x) (14)
These functions will be subsequently utilized to derive the joint probability distribution of the output of the quantizer.
Let a sample uk be applied to the input of the quantizer defined above. The output of the quantizer, designated xk, will then be Q(uk), where Q represents the quantizing function. If each of the N samples is sequentially applied to the quantizer, then the N consecutive outputs, designated by the vector x, will be given by:
x = Q(u) (15)
A particular value of x occurs if and only if the following inequality is safisfied for every sample:
a(xk) ≦ uk < b(xk) (16)
where a and b are the end-point functions defined.
Let the variables u1 through uN define the coordinates of a point in an N-dimensional Euclidean space. Then Eq. (16) is satisfied for every sample if and only if the point lies within the region bounded by the hyperplanes u1 = a(x1 ), u2 = a(x2), . . . , uN = a(xN), and the hyperplanes u1 = b(x1), u2 = b(x2), . . . , uN = b(xN). This region, designated Ω(X), is a rectangular hypersolid; its position and size depend on x.
The conditional distribution of x given β is therefore given by: ##EQU5## where Pu| β (u|β) is given by Eq. (13) which, when substituted into Eq. (17), yields:
Px|β .sub.Ω(x) (1/√|2πΛ.sub.β |) exp(-1/2ut Λ.sub.β.sup. -1 u)du (18)
where Λ.sub.β is the covariance matrix corresponding to the message β.
A multi-dimensional hypervolume integral may be calculated approximately by multiplying the hypervolume of the region of integration by the value of the integrand at the center of the region. The hypervolume of region Ω(x) is equal to the product of all of its dimensions, which is expressed as ##EQU6## since each i-th dimension is equal to 2d(xi). The value of u at the center of Ω(x) is equal to c(x), which is a vector containing c(x1), c(x2), . . . , c(xN). Therefore: ##EQU7## This expression yields an acceptable approximation to Px|β, and will henceforth be assumed to be equal to Px|β for practical purposes. β
Since Λ.sub.β is positive definite, there must exist a lower triangular matrix, A.sub.β, such that (A.sub.β)t · (A.sub.β) = 1/2Λ.sub.β-1, where (A.sub.β)t represents the transpose of the matrix A.sub.β, Λ.sub.β-1 represents the inverse of matrix Λ.sub.β, and where · represents conventional matrix multiplication. The numbers contained in matrix A.sub.β may be calculated from those contained in matrix Λ.sub.β by a well-known technique known as triangular decomposition.
For each pair of MF tones, β, therefore, the numbers contained in matrix Λ.sub.β and those contained in matrix A.sub.β may be calculated by known techniques. These numbers are constants for each possible pair of MF tones β and are stored in certain read-only memories contained in the apparatus to be subsequently described.
The apparatus to be described is entirely digital. Where analog quantities must be represented, the quantities are expressed as 8-bit floating-point binary numbers. The convention used in my invention is such that any .[.floatingpoint.]. .Iadd.floating-point .Iaddend.number contains a 1-bit sign, s, a three-bit exponent, c, and a 4-bit fraction, m. The 8-bit floating-point number is organized thus:
s c1 c2 c3 m1 m2 m3 m4
where each letter represents 1 binary bit which may be either zero (0) or one (1). Thus, the range of C is from zero 000 to seven (111). The number m is assumed to have a binary point immediately to the left of m1, therefore its value may range from zero (0.0000) to 15/16 (0.1111). If S = 0, the .[.floatingpoint.]. .Iadd.floating-point .Iaddend.number is positive, whereas if S = 1 then the number is negative. With these conventions, the value, V, of the .[.floatingpoint.]. .Iadd.floating-point .Iaddend.number represented by these bits is defined to be:
V = (1-2s) · (1+m) .sup.. 2c /256
Therefore this convention may be used to approximately represent any positive or negative quantity whose magnitude is between zero (which is represented by 00000000 or 10000000) and one (which is represented by 01111111 if positive, or 11111111 if negative). Several of the quantities to be represented (probabilities, for example) have precisely this range. If the quantity being represented has a different range, then a scale factor, V0, will be included which is equal to the maximum possible value of the quantity being represented. Thus:
V = V0 · (1-2s) · (1+m) · 2c /256
In particular, the instantaneous voltage of the analog signal is represented in this manner when encoded into a PCM sample (except for a small displacement discussed later). Typically, the range of the analog signal coltage is from 0 volts to ±2 volts. Therefore, the instantaneous voltage is properly represented if a scale factor of 2 volts is assumed, i.e., V0 = 2 volts.
A block diagram of the preferred embodiment of my invention is shown in FIG. 1. Each interconnection which is represented by a heavy (double) line consists of eight leads which convey a floating-point binary number as defined above. An interconnection represented by a fine (single) line consists of a single lead which conveys 1 binary bit. The function of each block will now be described. For simplicity, the circuitry is shown for N = 4; it may be expanded as shown to provide any value of N.
Blocks 1 through 5 are floating-point multipliers. The floating-point number appearing at the output of each multipler is equal to the product of the floating-point numbers applied to the two inputs of that multiplier. Since .[.floatingpoint.]. .Iadd.floating-point .Iaddend.multiplication is a well-known technique, known circuits may be used here. One such circuit is shown in FIG. 2. The floating-point multiplication algorithm is as follows:
1. The sign of the product is equal to the exclusive-or (⊕) of the signs of the factors, i.e.:
Sp = St ⊕S2
2. the exponent of the product is equal to the sum of the exponents of the factors minus eight, i.e.:
cp =c1 + c2 - 8
The value of eight must be subtracted in order to account for the scaling factor of 256 described earlier.
3. The fraction of the product is related to the fractions of the factors in the following manner:
1 + mp = (1 + m1) (1 + m2)
mp = (1 + m1) (1 + m2) - 1
The operation of FIG. 2 is self-explanatory, with the exception of the function of the AND gates. If c1 + c2 is eight or greater, an addition overflow occurs, and, if this overflow is ignored, the output of the 3-bit fixed-point adder is equal to c1 + c2 - 8, as desired. If c1 + c2 is less than 8, however, no overflow occurs, and, in fact, c1 + c2 - 8 is negative. Since a negative exponent represents a very small number, the sum is forced to zero by the AND gates in this case. This avoids the necessity of providing for negative exponents. The 256-word read-only memory is addressed by 8 bits -- four from each fraction m1 and m2. The word read out from that address is equal to
(1 + m1) (1 + m2) - 1
Blocks 6 through 12 are floating-point adders. The floating-point number appearing at the output of each adder is equal to the sum of the floating-point numbers applied to the two inputs of that adder. Since floating-point addition is a well-known technique, known circuits may be used here. One such circuit is shown in FIG. 3 and is described as follows.
Subtractor 70 is a four-bit subtractor. Its outputs are defined as follows: ##EQU8## where all outputs are 1-bit binary numbers. The outputs thus represent a 5-bit positive or negative binary number in signed magnitude form. This is also a standard logic circuit as used, for instance, in digital computers.
Selector 71 is a data selector, which is also a standard logic circuit as used in digital computers. Its data inputs and output are each three bits. Since it contains two data inputs, its address input requires one bit. When the address input is 0, the data on input 0 is routed through to the output, and when the address input is 1, the data or input 1 is routed through to the output. AND gates 72 through 77 are standard logic circuits wherein an output is 1 if and only if both inputs are 1. Not gate 92 is also a standard logic circuit wherein the output is 1 if and only if the input is 0.
Adder 89 is a fixed-point adder identical to Adder 52 of FIG. 2 except that input a2 is only one bit.
The adder unit 88 is also a fixed-point adder. The inputs and the output are 5-bit signed binary numbers with negative numbers expressed in signed magnitude form. Each 6-bit signed number contains a sign bit and five magnitude bits.
This is also a standard logic circuit.
Shifter circuits 80 through 86 are described as follows. Input a and the output are 5-bit binary numbers. The amount of shift, m, is one for circuits 80, 81 and 86; two for circuits 82 and 93; and four for circuits 84 and 85. If ai oi represent one input bit and one output bit, respectively (1 ≦ i ≦ 5), where bit 1 is the left-most bit, and bit 5 is the right-most, the logic of all shifter circuits is as follows, substituting the appropriate number for m as specified above: ##EQU9## where ε and | represent Boolean "AND" and "OR", to distinguish from multiplication or addition. The result is that, if input s is 1, the output is equal to input a shifted m bits to the right, with binary zeros shifted into bits o1 through om. Shifter 86 provides a special function; namely, it replaces a bit lost due to overflow; therefore, this shifter shifts a binary "one" into bit o1. .[.In.]. .Iadd.If .Iaddend.input s of any shifter is o, its output is equal to input a with no shift or other change whatsoever.
Operation of the floating-point adder is as follows. The entire circuit is combinational; i.e., the floating-point sum of difference appears at its output as soon as the two numbers are applied at the inputs, except for gate delays.
The binary output of subtractor 70 is equal to the difference of the two exponents. Case 1 occurs when the exponent of a2 is greater than or equal to the exponent of a1. Then s = 0 and the outputs of AND gates 72, 73, and 74 are 0. Since the coefficient of a2 is equal to its fraction plus one (1 + m), a constant 1 must be added to the fraction. The resulting coefficient of a2 is propagated through shifter circuits 80, 82, and 84, with no shifting, to input a2 of adder 88. The address input of selector 71 is also 0, and the exponent of a2 is propagated through selector 71 to input a1 of adder 89.
The magnitude of the difference of the exponents is represented, in binary format, by the three outputs d1 through d7, of subtractor 70. Since output s is 0, the output of Not gate 92 is 1. Therefore, the s inputs of shifters 81, 83, and 85 will be equal to the outputs d1, d2, and d4, respectively, of subtractor 70. The coefficient of a1 (i.e., its fraction plus 1) is applied to shifter 81, which will shift it one bit if d1 = 1. The result is applied to shifter 83 which in turn will shift it two more bits if d2 = 1, and so forth. The total number of shifted positions will be equal to the binary number represented by d1, d2, and d4 which is equal to the difference of the two exponents. The shifted coefficient is then in the correct position to be applied to input a1 of adder 88.
The output of adder 88 is the sum of the coefficient of a2 and the shifted coefficient of a1. According to the well-known floating-point addition algorithm, this sum will represent the coefficient of the floating-point sum.
Case 2 occurs when the exponent of a1 is greater than the exponent of a2. Then s = 1, the exponent of a1 is propagated through selector 71, and the coefficient of a2 is shifted by an amount equal to the difference between a1 and a2 in the same manner as the coefficient of a1 was shifted in case 1. The output of adder 88 is, as with case 1, the coefficient of the sum of a1 and a2.
When the addition or subtraction within adder 88 causes an overflow, i.e., when the sum or difference would require 6 magnitude bits, output ovf is 1. The coefficient of the sum or difference is shifted one bit to the right by shifter 87, which also shifts the lost bit back into the coefficient, as previously described. Adder 89 adds 1 to the exponent to correct for this shift. On the other hand, if no overflow occurs, the coefficient and exponent are propagated through shifter 87 and adder 89, respectively, with no change. The output is, in all cases, the floating-point representation of the sum of a1 and a2. The uppermost bit of the coefficient is ignored, and the remaining 4 bits comprise the fraction.
Blocks 13 and 28 are NOT gates, or inverters. These are well-known digital logic circuits.
Blocks 14 through 18 are four-bit buffers, or D-registers. When the C input changes from a logic 0 to a logic 1, the 4-bit binary number applied to the data input will appear at the .[.otput.]. .Iadd.output .Iaddend.of the respective buffer. At all other times the output will retain its previous value regardless of the state of the data input. This is a standard logic circuit.
Block 19 is a 256-word, 8-bit read-only memory which is used as a function generator to generate the function f. The contents of the memory are fixed at the time of manufacture. The contents of each word are related to its address in the following manner. The 8-bit address applied to the memory is designated x and is actually a floating-point binary number whose value is designated c(x). Let d(x) represent the difference between this value, c(x), and the next larger value which may be represented by the type of floating-point number used here. Thus, d(x) is a measure of the precision of the value c(x). The contents of the read-only memory location at each address x is made equal to the floating-point representation of the natural logarithm of the difference, d(x). Thus, for any binary number x applied to the memory, where x represents the quantity c(x), the output of the memory will represent the quantity 1 n[d(x)].
Blocks 20 through 23 are N-word, 8-bit read-only memories, where N is the number of observed PCM samples as defined previously. In this case, the address is a .[.fixedpoint.]. .Iadd.fixed-point .Iaddend.binary number, i, which may range from 1 to N. Word i of memory 20 contains the floating-point representation of the number aii, which is the number contained in the i-th row and the i-th column of matrix A.sub.β, defined earlier. Word 1 of memory 21 contains zero, and for i>1, word i contains the number ai, i-1 which is the number contained in the i-th row and the (i-1)-th column of matrix A.sub.β. Words 1 and 2 of memory 22 contain zero, and for i>2, word i contains the number ai, i-2, which is the number contained in the i-th row and the (i-2)-th column of matrix A.sub.β. The contents of the remaining memories up to 23 follow the same pattern; the first k-1 words of the k-th memory contain zero, and for i>k-1, word i contains ai, i-k-1. As stated earlier, the matrix A.sub.β (and therefore the numbers aii, etc.) are determined by known mathematical techniques from the covariance matrix Λ.sub.β, which is, in turn, determined from information known about the MF tones being sought. The numbers aii, etc., are different for each pair of MF tones being sought, i.e., for each value of β.
Block 24 is a modulo-N-binary counter. Each time its input is changed from 0 to 1, its output changes to the next higher binary number, until the number N is reached at which time it returns to zero. This is a well-known logic circuit.
Block 25 is an autonomous clock circuit which generates alternate 1s and 0s at its output at a rate corresponding to the rate of the observed PCM samples which in this case is 8 kilohertz, i.e., 8000 logic 1's and 8000 logic 0's per second.
Block 26 is a decoder circuit. Its output is a logic zero if and only if the binary number applied to its input is zero. This is a well-known logic circuit.
Block 27 is a multiple AND gate (the symbol & is used to distinguish it from multiplication). When input C is a logic 1 the binary number at its output equals that at its DATA input, otherwise the output is zero. This is also a well-known logic circuit.
Operation of the detector is as follows, referring to FIG. 1. A sequence of N samples from the PCM signal is applied at the point labelled PCM Samples In. If each sample is regarded as a floating-point number, then its value, V, is equal to:
V = (1 - 2s) · (1 + m) · 2c /256
where s, m, and c are certain bits in the sample as defined previously. However, the amplitude of the analog signal, Va, which was encoded to obtain this sample, is:
Va = Vo - (1 -2s) · [(1 + m) · 2c - 1]/256
where Vo is the scaling factor described earlier. This correspondence is dictated by the PCM encoding technique, which is well established. To correct for the displacement of -1, a floating-point number is generated whose sign s is opposite to that contained in the PCM sample, and whose fraction m and exponent c are zero. This is achieved by inverting the sign bit via NOT gate 28 and combining it with 7 binary zeros. This number is added, by adder 6, to the incoming PCM sample, and the value represented by the output of the adder, designated c(x), is:
c(x) = [(1-2s)· (1+m)· 2c /256] - [1-s)(1+0)· 20 /256]
c(x) = (1-2s)[(1+m)· 2c -1]/256
Therefore, this value represents the true analog voltage (appropriately scaled) encoded into the PCM sample. This is a combinational (non-time-dependent) process which is repeated on each PCM sample.
As each PCM sample appears at the output of Adder 6, Buffers 14 through 17 are pulsed by clock 25. This causes each sample to be gated into the next buffer (the last sample is lost). Therefore, at any time, the last N samples are stored in these buffers.
Counter 24 advances continuously after being reset. Let i represent the number of PCM samples received since counter 24 was last reset (0 ≦ i < N). The value represented by the output of Buffer 14 is c(xi), and the value represented by the output of Read-only Memory 20 is aii, both of which were defined earlier. These floating-point numbers are multiplied by Multiplier 1, the output of which represents the value aii c(xi). Similarly, the output of Buffer 15 represents the value c(xi-1), and for i>1, the output of Read-only Memory 21 represents the value ai, i-1. Therefore, for i>1, the output of Multiplier 2 represents the value ai, i-1 c(xi-1). Similarly, for i>2, the output of Multiplier 3 represents ai, i-2 c(xi-2), and so on up to Multiplier 4. The outputs of these multipliers are added by Adders 7 through 9, and the output of Adder 9, designated wi, is therefore: ##EQU10## This quantity is multiplied by itself (squared) by Multiplier 5, and its sign is inverted by NOT gate 13. The quantity applied to the lower input of Adder 12 is therefore -wi 2.
The PCM sample xi is also applied to Read-only Memory 19, and the output of the latter represents the quantity 1n[d(xi)], as defined previously. This quantity is applied to the upper input of Adder 12, the output of which is 1n[d(xi)]-w2. This quantity is added, by Adder 10, to the contents of Buffer 18, which was set to zero by AND gate 27 controlled by decoder 26, when counter 24 was equal to zero, i.e., before the first observed PCM sample. The above quantity is added to the total in Buffer 18 as each PCM sample is processed. Therefore, after N samples are processed, Buffer 18 will contain the quantity Q': ##EQU11## The following floating-point constant is hard-wired into the lower input of Adder 11:
1/2 1n[2N /(πN |Λ.sub.β |)]
where |Λ.sub.β | represents the determinant of the covariance matrix Λ.sub.β defined previously. Therefore, the output of Adder 11, designated Q, will be equal to: ##EQU12## This is mathematically equivalent to: ##EQU13## Let w be an N-dimensional column vector consisting of the numbers w1 through wN. It is a well-known mathematical fact that: ##EQU14## where wt represents the transpose of w and where · represents conventional matrix multiplication. Furthermore, let c(x) be an N-dimensional column vector consisting of the numbers c(x1) through c(xN). Then the earlier definition of w1 for all values of i may be written thus
w = (A.sub.β) · c(x)
where A.sub.β is as defined earlier (note that A.sub.β was .[.chosed.]. .Iadd.chosen .Iaddend.to be lower-triangular, i.e., aik = 0 for k > i). Therefore: ##EQU15## and the output of Adder 11 is equal to: ##EQU16##
As shown in my dissertation, referred to above, the expression within the braces is the expression for the desired probability, Px |.sub. β, therefore;
Q = 1nPx |.sub.β.
Thus, the output of Adder 11 represents the natural logarithm of the desired probability, Px |.sub.β.
FIG. 1 is implemented separately for each possible combination of MF tones, i.e., for each value of β. Typically, there are 15 possible combinations, plus the additional case of no tones at all (β=0); therefore, FIG. 1 is repeated 16 times. As stated above, the contents of Read-only Memories 20 through 23 and the constant which is hard-wired into the lower input of Adder 11 are different for each of the sixteen implementations of FIG. 1. These numbers were determined from the covariance matrix Λ.sub.β associated with each MF-tone combination, β, with Λ.sub.β calculated as described in my dissertation, as mentioned above.
To determine the most-likely combination of MF tones (the most likely value of β) which caused the observed sequence of PCM samples, x, it is only necessary tp choose the value of β which yields the highest value of Px |.sub.β, or, equivalently, the highest value of 1nPx |.sub.β. A circuit for this purpose is shown in FIGS. 4 and 5.
Blocks 101 .[.throgh.]. .Iadd.through .Iaddend.115 in FIG. 4 are 8-bit comparator circuits. The output of each such circuit is a logic 1 if and only if the value of 8-bit binary number applied to its lower input exceeds the value of the binary number applied to its upper input. Blocks 116 through 129 in FIG. 4, and blocks 150 through 156 in FIG. 5, are data selectors which are similar to block 71 in FIG. 3. If input a is a logic 0, then the binary bits at the output of a data selector are respectively equal to the bits applied to input 0, whereas if input a is a logic 1, then the output bits are equivalent to those applied to input 1. The data inputs and outputs of Selectors 116 through 129 contain eight bits; Selectors 150 through 153 contain one bit, Selectors 154 and 155 contain 2 bits, and Selector 156 contains three bits. All blocks contained in FIGS. 4 and 5 are well-known logic circuits.
Operation of the circuit is as follows. The outputs of the sixteen implementations of FIG. 1 (for the 16 MF-tone combinations being sought) are applied to the sixteen inputs of FIG. 4 labelled 1n Px |0 in through 1n Px |15 in. Comparator 101 compares 1n Px |0 with 1n Px |1, and its output is applied to Selector 116 which therefore "selects" the larger of these quantities and displays it at its output. Comparators 102 through 108, in conjunction with selectors 117 through 123, repeat this process on the numbers 1n Px |2 through 1n Px |15, in pairs of two, each selector selecting the larger of the two numbers. The .[.reslting.]. .Iadd.resulting .Iaddend.eight numbers are then compared in pairs of two, in the same manner, by Comparators 109 through 112, and the larger number of each pair is selected by the appropriate Selector in the group 124 through 127. The resulting four numbers are compared, and the larger of each pair selected, by Comparators 113 and 114, and by Selectors 128 and 129. Finally, the resulting two numbers are compared by Comparator 115, and its output determines which is larger.
The information about the relative magnitudes of 1n Px |0 through 1n Px |15 is contained in the outputs of Comparators 101 through 115. Each such output is applied to the circuit of FIG. 5, which converts these outputs to the binary representation of β. Its operation is as follows. If the maximum value of 1n Px |.sub.β occurs for β ≧ 8, then it will be on one of the lower eight inputs of FIG. 4, the number applied to the lower input of Comparator 115 will exceed that applied to the upper input, and its output will be a binary 1. Conversely, if the maximum occurs for β < 8, then the output of Comparator 115 will be a binary 0. Therefore, this bit constitutes the high-order bit of the desired number, β. The bit is designated b41 in FIGS. 4 and 5. By similar reasoning, it may be shown that the second-highest bit of β is equal to b31 if β < 8, or b32 if β ≧ 8. The appropriate bit (b31 or b32) is therefore selected by Selector 156 according to the state of b41. The third-highest bit of β is equal to b21 if β < 4, b22 if 4 ≦ β < 8, b23 if 8 ≦ β < 12, or b24 if β ≧ 12. Therefore, the appropriate one of these bits is selected, by Selectors 154 or 155, and 156, according to the states of b31 or b32, and b41. Finally, the lowest-order bit of β is equal to one of the bits b11 through b18, and is selected, as above, according to the states of bit b21 or b.sub. 22 or b23 or b24, bit b31 or b32, and bit b41. The binary number resulting from these 4 bits constitutes the desired value of β which yields the highest value of 1n Px| β. This completes the detection process.
The case illustrated here assumes that all tone combinations are symmetrical, i.e., that the average usage of all combinations are equal. It is possible, however, that some combinations are used more frequently than others. Then the well-known Bayes rule implies that the likelihood of error is reduced if the heavily-used combinations are weighted more heavily before comparison.
This requires that each probability, Px |.sub.β be multiplied by a constant, designated P.sub.β , and then the products compared to determine the maximum. Each constant P.sub.β is equal to the relative occurrence of the tone combination β. For example, if β=2 occurs twice as often as β=3, then O2 would be twice as large as P3. It is a known fact that this tends to reduce the average error.
The required constant P.sub.β is multiplied by Px |.sub.β simply by adding its logarithm to Q, since 1n(Px| β · P.sub.β)=q+1nP.sub.β.
Thus, the weighting factor 1n P.sub.β is included simply by hard-wiring a different constant (the old constant increased by 1n P.sub.β) to the lower input of Adder (11), and the operation of the circuit is unchanged. This constant may also be selected to satisfy other decision rules (such as the Neymann-Pearson rule, which is also well-known).
The component blocks contained in the figures, except where stated otherwise, are well-known circuits and are available in monolithic form. In some cases, multiple blocks may be combined into a single package; in other cases, two or more packages may be required to implement a single block. In all cases, the division of the blocks is functional and the functions are described in various literature.
The following list of standard logic circuits has been found satisfactory in implementing the invention although they should not be interpreted as design limiting or optimum but only as illustrative:
______________________________________BLOCK STANDARD PART DESIGNATION______________________________________ 14, 15, 16, 17 SN 74198 18 SN 74198 19 SN 74187 (2) 20, 21, 22, 23 SN 74187 24 SN 74163 26 SN 74154 27 SN 7408 28 SN 7404 51 SN 74136 52 SN 7483 53 SN 74187 54 SN 7408 70 SN 74181 71 SN 7415772, 73, 74, 75, 76, 77 SN 740880, 81, 82, 83, 84, 85, 86 SN 74157 88, 89 SN 7483 92 SN 7404101, 102, 108, 109, 112, SN 7485 (2)113, 114, 115 SN 7485 (2) 116, 117 SN 74157 (2)123, 124, 127, 128, 129 SN 74157 (2)150, 151, 152, 153, 154 SN 7485155, 156 SN 7485______________________________________
whereas the preferred embodiment of the invention has been shown and described herein, it should be realized that there may be many modifications, substitutions and alterations thereto without departing from the teachings of the invention.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US3710028 *||Nov 10, 1970||Jan 9, 1973||Gte Automatic Electric Lab Inc||Detector for digitally transmitted multifrequency tones as utilized for signaling in a pulse code modulated telephone system|
|US3803390 *||Apr 19, 1972||Apr 9, 1974||Hasler Ag||Method and apparatus for the digital detection of predetermined frequencies|
|US3824471 *||Dec 1, 1972||Jul 16, 1974||Gte Automatic Electric Lab Inc||Pcm tone receiver using floating-point digital spectrum analysis|
|1||Modestino & Davisson "Adaptive Detection of Weak Signals in Statistically Undefined Noise Backgrounds."|
|2||Symposium on Computer Processing in Communications Polytechnic Institute of Brooklyn, Apr. 8-10, 1969, pp. 629-651.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US4991169 *||Aug 2, 1988||Feb 5, 1991||International Business Machines Corporation||Real-time digital signal processing relative to multiple digital communication channels|
|US5337141 *||Jun 29, 1983||Aug 9, 1994||Honeywell Inc.||Method and apparatus for distortion free measurements|
|WO1981002353A1 *||Jan 8, 1981||Aug 20, 1981||Motorola Inc||Digital pseudo continuous tone detector|
|U.S. Classification||708/311, 370/526|
|International Classification||H04Q1/457, G06F17/18, G06F17/15, G06F7/57|
|Cooperative Classification||G06F7/483, G06F7/4991, H04Q1/4575|
|European Classification||G06F7/483, H04Q1/457B|
|Feb 28, 1989||AS||Assignment|
Owner name: AG COMMUNICATION SYSTEMS CORPORATION, 2500 W. UTOP
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:GTE COMMUNICATION SYSTEMS CORPORATION;REEL/FRAME:005060/0501
Effective date: 19881228