BACKGROUND OF THE INVENTION 
     The present invention generally relates to the field of transmission path delay measurements, and more particularly, to a system of determining the time difference of arrival of a frequency shift keyed (FSK) signal at two separate receivers. 
     Time-difference-of-arrival (TDOA) measurements find applications in one of two areas. In the first type of application, if the propagation velocity of an FSK signal is known, then inferences can be made regarding the signal source location, assuming known receive site locations. In particular, a single TDOA measurement between two receive sites indicates that the source is on a specific hyperbolic spheroid. TDOA measurements between multiple receive sites allows estimation of source location in three dimensions. In the second type of application, if both source and receive site locations are known, then TDOA measurements can indicate the propagation velocity of the FSK signal. The propagation velocity, in turn, can be used to infer characteristics of the propagation medium. 
     The common method of measuring TDOA is as follows. At each of two receive sites (1 and 2), the received signal is digitized with an analog-to-digital converter (A/D) synchronized with the other site. A set of sequential samples (a frame) is transmitted from site 1 to site 2. At site 2, corresponding frames are compared, via a cross-correlation technique, to estimate the relative delay between the two frames of data, referred to as an estimate of the TDOA. This method of estimating TDOA requires that an entire frame of data be transmitted from one receive site to another. Delay estimation accuracy increases with longer data frames. So the amount of data to be transmitted may be quite large relative to available communications resources. 
     A need therefore exists for a system and method for determining TDOA values which does not require transmission of an entire frame of data from one receiver site to another. 
     SUMMARY OF THE INVENTION 
     The present invention provides a system for determining the time difference of arrival (TDOA) of a frequency shift keyed signal (FSK) at two separate receiver sites. This invention addresses the inter-site communications bandwidth problem. Using a particular signal type (FSK), the invention provides a system and method for determining a TDOA which requires that only a limited set of data be transmitted from one receiver site to another. This data consists of the measured frequency shift times. Frequency shift times are computed at receive sites 1 and 2. The set of frequency shift times computed at site 1 is transmitted to site 2. At site 2, the corresponding frequency shift times are compared. Their average difference between corresponding frequency shift times is the estimated TDOA between sites 1 and 2. 
     More specifically, the system includes a first receiver located at a first site for generating a first series of signal samples in response to detecting an FSK signal from a FSK signal source. A second receiver located at a second site generates a second series of signal samples in response to detecting the FSK signal. A first computer estimates first frequency shift times of the FSK signal in response to receiving the first series of signal samples and a time reference signal, and generates a first output signal representing the first frequency shift times. A second computer estimates second frequency shift times of the FSK signal using the second series of signal samples and time reference signal, and determines the TDOA between the FSK signal at the first and second receivers using the first output signal, containing the first frequency shift times, and the second frequency shift times. 
     An important advantage of the invention is that the TDOA of a signal may be determined with only minimal inter-site communications requirements. The invention obviates the need for transmitting a replica of the first series of signal samples to the second computer. The techniques implemented by the invention may be applied to both radio frequency and acoustic FSK signals. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 presents an overview of a TDOA measurement system embodying various features of the present invention. 
     FIG. 2 shows an example of a frequency shift keyed signal. 
     FIG. 3 shows the major components of the remote sites of FIG. 1. 
     FIG. 4 is a flow chart of the operation of the computer at the first remote site. 
     FIG. 5 is a graph exemplifying the relation between the phase and sample number. 
     FIG. 6 is a graph exemplifying the relation between the unwrapped phase and sample number. 
     FIG. 7 is a graph exemplifying groups of phase samples between frequency shifts. 
     FIG. 8 is a graph showing at least-squares fit applied to a group of phase samples. 
     FIG. 9 shows the intersections of adjacent line segments. 
     FIG. 10 is a flow chart of the operation of the computer at the second remote site. 
     Throughout the several views, like elements are referenced using like designations. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring to FIG. 1, there is shown a time difference of arrival (TDOA) measurement system 10 embodying various features of the present invention for determining the TDOA of a frequency shift keyed (FSK) signal at two remote (separate) receiving stations, or sites 14 and 16. An FSK signal is a frequency modulated signal in which portions of the signal are transmitted at one of two predetermined frequencies. For example, in FIG. 2, there is shown an example of a frequency shift keyed signal 18 having an amplitude A which is comprised of signal sections 20 at frequency F 1  and signal sections 22 at frequency F 2 . FSK signal 18 transitions between frequencies F 1  and F 2  at times t 1  and t 2 , respectively. 
     Data from FSK signal 18 is sampled and processed at remote sites 14 and 16. Estimated values for the arrival time of FSK signal 18 detected at remote site 14 are encoded in signal 19 which is provided to remote site 16. FSK signal 18 as detected locally at site 16 is sampled and processed, whereupon site 16 then determines an estimate of the average time-difference-of-arrival (TDOA) of FSK signal 18 between remote sites 14 and 16. FSK signal 18 is generated by FSK signal source 12. Site 16 generates an output signal 17 representing the value of the TDOA. 
     Referring to FIG. 3, remote site 14 includes a digital receiver 26a, computer 28a, time reference source 30a, and communications terminal 32a. Time reference source 30a generates time reference clock signals 36a to synchronize the operation of digital receiver 26a and computer 28a and provides computer 28a with a precision time reference. Receiver 26a detects and transforms FSK signal 18 to an intermediate frequency (IF) signal. Next, receiver 26a frequency translates the IF signal to in phase (I 26a ) and quadrature signals (Q 26a ), both centered at 0 Hz (baseband) but offset from each other by 90 degrees in phase. Signals I 26a  and Q 26a  are sampled at a known rate for a predetermined period by an A/D converter (not shown) in receiver 26a which is synchronized by time reference signal 36a. In response to sampling the signals I 26a  and Q 26a , receiver 26a generates a sequence of N signal samples I 26a  (n) and Q 26a  (n), where n is an index represented by a positive integer value, and N is a positive integer. Receiver 26a adds signal samples I 26a  (n) and Q 26a  (n) to form complex numbers Z 26a  (n), where Z 26a  (n)=I 26a  (n)+j·Q 26a  (n). Signal samples I 26a  (n) and Q 26a  (n) together represent samples of FSK signal 18. Receiver 26a provides output signal Z 26a  (n) which represents complex numbers whose real parts are the sampled I 26a  (n) signals and whose imaginary parts are the correspondingly sampled Q 26b  (n) signals. 
     As shown in FIG. 3, remote site 16 is similar to remote site 14 and includes a digital receiver 26b, computer 28b, time reference source 30b, and communications terminal 32b. Receiver 26b detects FSK signal 18, and then transforms the detected FSK signal 18 in to an intermediate frequency (IF) signal. Next, receiver 26b frequency translates the IF signal to in-phase (I 26b ) and quadrature signals (Q 26b ), both centered at 0 Hz (baseband) but offset from each other by 90 degrees in phase. Signal I 26b  and Q 26b  are sampled at a known rate for a predetermined period by receiver 26b by an A/D converter (not shown) which is synchronized by precision time reference clock signals 36b provided by time reference source 30b. In response to sampling the signals I 26b  and Q 26b , receiver 26b generates a sequence of signal samples I 26b  (n) and Q 26b  (n). Receiver 26b adds signal samples I 26b  (n) and Q 26b  (n) to form complex numbers Z 26b  (n), where Z 26b  (n)=I 26b  (n)+j·Q 26b  (n). Receiver 26b provides output signal Z 26b  (n) which represents complex numbers whose real parts are the sampled I 26b  signals and whose imaginary parts are the corresponding sampled Q 26b  signals. Signal samples I 26b  (n) and Q 26b  (n) together represent samples of FSK signal 18. 
     Computer 28a inputs and processes complex samples Z 26a  (n) received from digital receiver 26a to estimate the frequency shift times of FSK signal 18 as detected at remote site 14. Computer 28a provides signal 19 to communications terminal 32a, where signal 19 represents the estimated frequency shift times of FSK signal 18 as detected at remote site 14. Communications terminal 32a transmits signal 19 to communications terminal 32b at remote site 16. Communications terminal 32b receives signal 19 from communications terminal 32a and throughputs signal 19 to computer 28b. Computer 28b inputs and processes complex samples Z 26b  (n) received from digital receiver 26b to estimate the frequency shift times of FSK signal 18 as detected at remote site 16. The estimated frequency shift times at remote sites 14 and 16 are processed by computer 28b to estimate the TDOA value of FSK signal 18 between remote sites 14 and 16. 
     The operation of computer 28a is described with reference to the flow chart of FIG. 4. At step 40a, computer 28a inputs an N number of consecutive complex samples Z 26a  (n), which are received from digital receiver 26a, where n=1,2, . . . N. At step 42a, computer 28a transforms consecutive complex samples Z 26a  (n) into a sequence of phase samples, p 1  (n)=1,2, . . . N, where p 1  (n)=arc --  tangent (I 26a  (n), Q 26a  (n), shown in FIG. 5. The phase samples p 1  (n) are &#34;unwrapped,&#34; or transformed into unwrapped phase samples P 1  (n) at step 44a as shown in FIG. 6. Unwrapping phase samples p 1  (n) removes the phase discontinuities of p 1  (n) at +/-π. Thus for a FSK signal, unwrapped phase increases or decreases linearly between frequency shifts. Proceeding to step 50a, computer 28a groups consecutive unwrapped phase samples P 1  (n) between frequency shifts. 
     FIG. 7 illustrates exemplar groups 46, 48, and 50 of unwrapped phase samples, where group 48 may consist of [P 1  (35), P 1  (36), P 1  (37), and P 1  (38)]. At step 52a, computer 28a performs a first order (straight line) least-squares-shift for each group of unwrapped phase samples P 1  (n), as shown in FIG. 8. The least squares-fit produces coefficients, a 1i  and b 1i , of a linear equation, or function F 1i  (n), where F 1i  (n)=a 1i  n+b 1i , a 1i  represents the slope of F 1i  (n), b 1i  represents the y-intercept of F 1i  (n), n represents the sample number, and i is an index corresponding to a particular group of unwrapped phase samples. F 1i  (n) is used to define a line segment which best fits a particular group of unwrapped phase samples. At step 54a, computer 28a computes the intersections of adjacent line segments, 1 1  (1), 1 1  (2), . . . 1 1  (M), shown in FIG. 9, where M is a positive integer. These intersections are estimates of frequency shift times in non-integer (interpolated) sample units, which are stored as t 1  (k), where t 1  (k)={t 1  (1), t 1  (2), t 1  (3), . . . t 1  (K)}, k is a positive integer index, K is positive integer, and K=(M-1). In FIG. 9, intersections 60 and 61 are shown by way of example. However, it is to be understood that there may any suitable number of intersections having values stored as t 1  (k). The values for t 1  (k) then are encoded in signal 19. Since the data samples Z 26a  (n) are sampled at a known rate, the frequency shift times (intersections) in sample units are linearly related to frequency shift times (intersections) in time. 
     The operation of computer 32b is described with reference to the flow chart of FIG. 10. At step 40b, computer 28b inputs an N number of consecutive complex samples Z 26b  (n) which comprise a frame of data and which are received from digital receiver 26b, where n=1,2, . . . N. At step 42b, computer 28b transforms consecutive complex samples Z 26b  (n) into a sequence of phase samples, p 2  (n), where: p 2  (n)=arc --  tangent (I 26b  (n), Q 26b  (n)). The phase samples p 2  (n) are &#34;unwrapped&#34; to transform phase samples, p 2  (n) into unwrapped phase samples P 2  (n) at step 44b to remove the phase discontinuities in p 2  (n) at +/-π. Proceeding to step 50b, computer 28b groups consecutive unwrapped phase samples P 2  (n) between frequency shifts. At step 52b, computer 28b performs a first order, least-squares-shift for each group of unwrapped phase samples P 2  (n). The least squares-fit produces coefficients, a 2i  and b 2i , which define a linear equation, or function F 2i  (n), where F 2i  (n)=a 2i  n+b 2i , a 2i  represents the slope of F 2i  (n), b 2i  represents the y-intercept of F 2i  (n), n is the sample number, and i is a positive integer index corresponding to a particular group of unwrapped phase samples. F 2i  (n) is used to define the line segment which best fits a particular group of unwrapped phase samples. At step 54b, computer 28b computes the intersection of an M number of adjacent line segments, where M has been defined above. The points at these intersections are estimates of a K number of frequency shift times of FSK signal 18 as detected at remote site 16, which are stored as t 2  (k), where t 2  (k)={t 2  (1), t 2  (2), t 2  (2), . . . t 2  (K)}, and k and K have been defined above. The intersections of F 2i  (n) for all i may be readily transformed into time because the rate at which data Z 26b  is sampled is known. At step 56b, computer 28b inputs the frequency shift time data (signal 19), t 1  (k), from communications terminal 32a, and uses the frequency shift time data t 1  (k) from computer 28a and frequency shift time data t 2  (k) determined at step 54b to estimate the time difference of arrival, TDOA, between corresponding frequency shifts of t 1  (k) and t 2  (k), where: 
     
         TDOA={[t.sub.2 (1)-t.sub.1 (1)]+[t.sub.2 (2)-t.sub.1 (2)]+[t.sub.2 (3)-t.sub.1 (3)]+ . . . +[t.sub.2 (K)-t.sub.1 (K)]}/(K). 
    
     Software routines used to direct the operations of computers 28a and 28b were implemented, by way of example, in MATLAB® and are provided by way of example in APPENDIX 1 below. However, it is to be understood that other suitable software programs may also be used 
     Obviously, many modifications and variations of the present invention are possible in light of the above teachings. For example, the invention has been described with regard to determining the TDOA for an FSK signal at two locations. However the techniques of the invention may be extended to determining time differences of arrival for other types of communications signals that contain discrete measurable events such as amplitude shift keyed (ASK) signals, phase shift keyed (PSK) signals, and other well known types of digital communications signals. All of these types of signals transition between at least two different measurable states. The invention uses the transition times between the measurable states of the signals that are received at the remote locations to determine the TDOA of the communications signal at the two locations. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described. 
     APPENDIX 1 
     MATLAB® Code for Computing Frequency Shift Times 
     The following is MATLAB source code. There are 3 routines: 
     
         ______________________________________freq.sub.-- shift.sub.-- time     Returns vector of frequency shift times given a frame     of complex FSK signal samples. freq.sub.-- shift.sub.-- time     calls     the next 2 routines.peak      Returns vector of indices of peaks in the input vector.lms.sub.-- fit     Returns two element vector of slope and y-intercept of     the best least-mean-square fit to the input vector.______________________________________ 
    
     All other function calls are standard MATLAB functions. 
     
         __________________________________________________________________________function shift.sub.-- time.sub.-- vec = freq.sub.-- shift.sub.-- time(z,sample.sub.-- rate)% Returns vector of frequency shift times.% Input vector, z, is a frame of complex samples of FSK signal.N = length(z);         % Number of elements in z.p = angle(z); % Get phase vector.p = unwrap(p);         % Unwrap phase.p = p ./ (2*pi);         % Convert from rads to cycles.slope = ( p(N) - p(1))/(N-1);         % Remove gross slope.T = 1:N;p = p - slope .* T;first.sub.-- diff.sub.-- vec = p(2:N) - p(1:N-1);            % First difference vector.step =[ -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 ];c = conv( first.sub.-- diff.sub.-- vec, step );         % c is convolution of first.sub.-- diff.sub.-- vec with         step.threshold = .5 * max(abs(c));         % P is vector of indices of peaks inP = peak(c, threshold, 10, 1000);            % convulation vector c. (See listing of peak)% FIT LEAST-MEAN SQUARE FIT TO EACH SEGMENTn.sub.-- peak = length(P)            % Number of peaks in peak vectorAvec = ones(n.sub.-- peak-1, 2);            % Allocate coefficient vector, Avec.for it = 1:n.sub.-- peak - 1            % Loop over peaksi1 = P(it)   +3; % Delete first 3 samples in segment.i2 = P(it+1) -3; % Delete last 3 samples in segmenttx = i1:i2;      % Vector of sample numbers in segment.ty = p(i1:i2);   % Vector of phase values in segment.A = lms.sub.-- fit(tx, ty );            % lms.sub.-- fit returns vector A =            % [slope, y-intercept]. (See listing of lms.sub.-- fit)Avec(it,:) = A;  % Store LMS coefficients in Avec.end%FIND INTERSECTIONS OF ADJACENT LINE SEGMENTSIvec = length(Avec) -1;            % Allocate vector of intersection times.for it = 1:length(Avec) -1            % Loop over intersectionsb1 = Avec(it,2);    b2 = Avec(it+1,2);a1 = Avec(it,1);    a2 = Avec(it+1,1);Ivec(it) = ( a2-a1 )/( b1 - b2 );            % Ivec is vector of intersection times.endshift.sub.-- time.sub.-- vec = Ivec ./ sample.sub.-- rate            % Convert shift times in samples to            % shift times in absolute time.returnfunction Index.sub.-- vec = peak(X, threshold, n.sub.-- squash, n.sub.--max)% X IS INPUT VECTOR.% FINDS A MAXIMUM of n.sub.-- max peaks% ABOVE +threshold OR BELOW -threshold in X.% STARTS WITH LARGEST PEAK AND PROCESSES n.sub.-- max PEAKS.% n.sub.-- squash POINTS BEFORE &amp; AFTER LAST PEAK ARE ZEROED.% Index.sub.-- vec IS VECTOR OF INDICES OF PEAKS IN X.Index.sub.-- vec = zeros(1,n.sub.-- max);N = length(X);X = abs(X);n.sub.-- peaks = 0;for it=1:n.sub.-- max[peak,index] = max(X);if peak &gt; thresholdIndex.sub.-- vec(it) = index;im = index - n.sub.-- squash; if im &lt; 1, im = 1; endip = index + n.sub.-- squash; if ip &gt; N, ip = N; endX(im:ip) = zeros(1, ip-im+1 );elsebreakendn.sub.-- peaks = n.sub.-- peaks + 1;endIndex.sub.-- vec = soft(Index.sub.-- vec(1:n.sub.-- peaks));returnfunction A = lms.sub.-- fit( X,Y )% LMS FIT. RETURNS COEFFICIENTS OF LINEAR LMS FIT TO X,Y.% Reff: McCalla p244 ,% f(X) = A(1) + A(2)*xN = length (Y);C = ones(2,2);C(1,1) = N;C(1,2) = sum( X );C(2,1) = C(1,2);C(2,2) = sum( X * X );B  = ones(2,1);B(1) = sum( Y );B(2) = sum (X.* Y );A = ( inv(C)) * B;   % since CA = BA = A&#39;;return__________________________________________________________________________
A system determines the time difference of arrival of a frequency shift kd signal (FSK) source at two separate receiver sites. The system includes a first receiver located at a first site for generating a first series of signal samples in response to detecting an FSK signal from a FSK signal source. A second receiver located at a second site generates a second series of signal samples in response to detecting the FSK signal. A first computer estimates first frequency shift times of the FSK signal in response to receiving the first series of signal samples and a time reference signal, and generates a first output signal representing the first frequency shift times. A second computer estimates second frequency shift times of the FSK signal using the second series of signal samples and time reference signal, and determines the path difference between the FSK signal source and each of the first and second receivers using the first output signal containing the first frequency shift times, and the second frequency shift times. The invention obviates the need for providing a replica of the first signal samples to the second computer.