Claims
- 1. A method comprising:receiving a first signal; receiving a second signal whose varying magnitude is similar to that of the first signal but is shifted in time; sampling the first and second signals to generate a discrete mathematical function; maintaining the discrete mathematical function at multiple sample points; and defining sets of overlapping ranges based on the sample points, at least one of the ranges being used to interpolate a point on the discrete mathematical function indicating a time difference between the first and second signals.
- 2. A method as in claim 1 further comprising:identifying between which pair of multiple sample points of the discrete mathematical function a zero-crossing falls; and interpolating a position of the zero-crossing within a range defined by the pair of sample points.
- 3. A method as in claim 1, wherein a magnitude of the first signal is proportional to an intensity of reflections in a first monitored region and a magnitude of the second signal is proportional to an intensity of reflections in a second monitored region.
- 4. A method as in claim 3, wherein a zero-crossing of the mathematical function on an axis is used to determine vessel speed based on reflections in the first and second monitored regions.
- 5. A method as in claim 1 further comprising:generating corresponding first and second running average thresholds based on the first and second signals; and comparing each of the first and second signals to their respective running average threshold to generate the discrete mathematical function.
- 6. A method as in claim 5, wherein the step of comparing includes generating a single bit result indicating whether an intensity of a corresponding first or second signal is greater or less than a respective running average threshold.
- 7. A method as in claim 6, wherein the discrete mathematical function is maintained at logarithmically spaced sample points.
- 8. A method as in claim 1, wherein the discrete mathematical function is generated based on sample data collected at logarithmically spaced sample times.
- 9. A method as in claim 1, wherein the discrete mathematical function is generated based on intensity of reflections in a selected layer at a predetermined depth in a first and second monitored regions.
- 10. A method as in claim 9, wherein the discrete mathematical function is generated based on reflections at multiple layers of the first and second monitored regions.
- 11. A method as in claim 1, wherein the mathematical function includes non-linearities as a result of variances between the first and second signals.
- 12. A method as in claim 1, wherein the discrete mathematical function is based on an auto-correlation function of the first signal, an auto-correlation function of the second signal and a cross-correlation function between the first and second signals.
- 13. A method as in claim 1 further comprising:calculating a zero-crossing in a first range of the multiple overlapping ranges defined by sample points; based on an updated mathematical function, detecting that a position of a zero-crossing on the discrete mathematical function falls outside the first range; identifying a second range that is at least partly overlapping with the first range in which the zero-crossing falls; and calculating a new zero-crossing in the second range of the discrete mathematical function.
- 14. A method as in claim 1 further comprising:interpolating a zero-crossing in a first range of the multiple overlapping ranges defined by sample points of the discrete mathematical function; detecting that a position of the zero-crossing drifts near an end of the first range but still falls within the first range; identifying a second range that is at least partly overlapping with the first range in which the zero-crossing also falls; and utilizing the second range to interpolate a zero-crossing of the discrete mathematical function.
- 15. A method as in claim 14, wherein the second range is selected so that the zero-crossing is approximately in a middle region of the second range.
- 16. A method as in claim 1 further comprising:interpolating a zero-crossing in a first range of the multiple overlapping ranges defined by sample points of the discrete mathematical function; detecting that a position of the zero-crossing drifts near an end of the first range but still falls within the first range; identifying a second range of the discrete mathematical function that is at least partly overlapping with first range in which the zero-crossing also falls; and utilizing the first range to interpolate a zero-crossing of the discrete mathematical function even though the second range could be used to calculate the time difference between signals.
- 17. A method as in claim 3, wherein ultrasonic sensors are used to generate pings and monitor reflections in the first and second regions.
- 18. A method as in claim 1 further comprising:comparing the first and second signals to corresponding threshold signals to generate the discrete mathematical function.
- 19. A method as in claim 18 further comprising:storing compare results between each of the first and second signals and corresponding thresholds; and utilizing the compare results to generate the discrete mathematical function.
- 20. A method as in claim 3, wherein the mathematical function is used to determine a relative speed of fluid with respect to a sensor based on reflections in the first and second monitored regions.
- 21. A method comprising:based on samples taken during a first time interval, generating a difference function at discrete sample points to correlate two echo signals; analyzing the difference function in a first range defined by a first pair of sample points of the difference function to interpolate a time difference between the two echo signals; based on samples taken in a second time interval, generating an updated difference function at discrete sample points to correlate the two echo signals; and determining whether a time difference between the two echo signals can be interpolated based on the first range of the updated difference function and, if not, selecting a second pair of sample points of the difference function whose range at least partly overlaps with the first pair of sample points to interpolate a time difference between the two echo signals.
- 22. A method as in claim 21 further comprising:parsing the difference function into multiple overlapping ranges based on the sample points of the difference function.
- 23. A method as in claim 21, wherein the two echo signals are reflections from pings generated by corresponding ultrasonic transducer devices.
- 24. A method as in claim 21, wherein the difference function generated from samples in the second time interval is at least partly derived from sample data collected in the first time interval.
- 25. A method as in claim 21, wherein the difference function is used to determine a relative speed of fluid with respect to corresponding sensors monitoring reflections in first and second regions.
- 26. A method as in claim 21 further comprising:based on the updated difference function, determining whether a time difference between the two echo signals can be interpolated based on the first range and, if so, calculating a time difference in the first range.
- 27. A method as in claim 26 further comprising:calculating a vessel speed based on the time difference identified in the first range.
- 28. A method as in claim 21 further comprising:identifying that a time difference between signals can be interpolated based on a first range or an at least partially overlapping second range of the difference function; calculating the time difference based on the first range; later in time, identifying that a time difference can be interpolated based on a first range or an at least partially overlapping third range; calculating the time difference based on the first range even though the third range could be used to interpolate the time difference between signals.
- 29. A method as in claim 27, wherein the displayed vessel speed is a weighted average of previously calculated vessel speeds.
- 30. An apparatus comprising:a first receiver circuit to receive a first signal; a second receiver circuit to receive a second signal whose time-varying magnitude approximates that of the first signal but is shifted in time; a sampling circuit that samples the first and second signals to generate a discrete mathematical function; and a processing circuit to maintain the discrete mathematical function at selected sample points that define overlapping ranges, at least one of the overlapping ranges being used to interpolate a point on the discrete mathematical function indicating a time difference between the first and second signals.
- 31. A method of correlating at least two signals, the method comprising:generating a mathematical function at discrete sample points based on the at least two signals, a time difference signals relating to speed; identifying that a time difference between the two signals can be interpolated based on a first range or a second range of the mathematical function, the second range being at least partially overlapping with the first range; and calculating the time difference between the two signals based on the first range.
- 32. A method as in claim 31, wherein the mathematical function is continuously updated based on samplings of the at least two signals.
- 33. A method as in claim 32 further comprising:generating an updated mathematical function based on new sample data of the two signals; identifying that a time difference between the two signals can be interpolated based on a first range or a third range of the updated mathematical function, the third range being at least partially overlapping with the first range but non-inclusive of the second range; and calculating the time difference based on the first range of the updated mathematical function even though the third range could be used to interpolate the time difference between signals.
- 34. A method as in claim 33, wherein the second range and third range of the mathematical function are contiguous with each other.
- 35. A method as in claim 32 further comprising:generating an updated mathematical function based on new sampling data of the at least two signals; identifying that a time difference between the two signals can not be interpolated based on the first range but can be interpolated based on the third range of the updated mathematical function, the third range being at least partially overlapping with the first range; and interpolating the time difference based on the third range of the updated mathematical function.
RELATED APPLICATION
This application is a Continuation-in-part of U.S. application Ser. No. 10/166,581 filed Jun. 7, 2002 entitled “Correlation Speed Sensor,” which itself is a continuation of U.S. application Ser. No. 09/540,844 filed Mar. 31, 2000, now U.S. Pat. No. 6,426,918, issued Jul. 30, 2002 claiming the benefit of U.S. Provisional Application Serial No. 60/149,491 filed Aug. 18, 1999 entitled “Correlation Speed Sensor,” the entire teachings of all of which are incorporated herein by reference. This application also claims the benefit of U.S. Provisional Application serial No. 60/358,288 filed on Feb. 20, 2002, the entire teachings of which are also incorporated herein by reference.
US Referenced Citations (24)
Foreign Referenced Citations (1)
Number |
Date |
Country |
WO 0113129 |
Feb 2001 |
WO |
Non-Patent Literature Citations (2)
Entry |
XP-002243637, Numerical Recipes in C: The Art of Scientific Computing, Cambridge University Press, Ch. 3 pp. 105-108, Ch. 9 pp. 347-362 (1988-1992). |
XP-002243638, “Appendix 1 Real Zeros of A Function”, pp. 963-966. |
Provisional Applications (2)
|
Number |
Date |
Country |
|
60/149491 |
Aug 1999 |
US |
|
60/358288 |
Feb 2002 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09/540844 |
Mar 2000 |
US |
Child |
10/166581 |
|
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10/166581 |
Jun 2002 |
US |
Child |
10/225477 |
|
US |