Receiver Processor For Adaptive Windowing And High-Resolution TOA Determination In A Multiple Receiver Target Location System

Abstract
A disclosed example apparatus receives a tag transmission signal from a tag at a receiver, wherein the tag transmission signal comprises a series of pulses; determines a coarse estimate of a time-of-arrival (TOA) of the tag transmission signal based on a detection of a pulse of the series of pulses in an adjustable coarse timing window, wherein the coarse estimate is based on a plurality of coarse timing windows; determines a fine estimate of the TOA based on a detection of the pulse in at least one of a parallel set of fine timing windows; and determines a sub-window resolution of the TOA based on at least one detection transition between consecutive fine receiver windows of at least one of a plurality of pulses and a weighted average of the TOA for each pulse of the series of pulses.
Description
FIELD

Embodiments discussed herein are related to radio frequency locating and, more particularly, to systems, methods, apparatuses, computer readable media and other means for target location by high-resolution time-of-arrival (TOA) determination in a multiple receiver target location system.


BACKGROUND

A number of deficiencies and problems associated with UWB Real Time Locating Systems particularly related to interference are identified herein. Through applied effort, ingenuity, and innovation, exemplary solutions too many of these identified problems are embodied by the present invention, which is described in detail below.


BRIEF SUMMARY OF THE INVENTION

Systems, methods, apparatuses, and computer readable media are disclosed for providing interference rejection in Ultra-Wideband Real Time Locating Systems. A brief summary is provided in the following.


In some examples, a method, apparatus, and computer program product (CPP) for determining target location in a multiple receiver target location system is disclosed herein, comprising: determining a coarse estimate of a time-of-arrival (TOA) from at least two of a plurality of receivers based on a detection of a pulse in an adjustable coarse timing window, determining a fine estimate of the TOA from the at least two of the plurality of receivers based on a detection of the pulse in at least one of a set of fine timing windows, and determining a sub-window resolution of the TOA from the at least two of the plurality of receivers based on at least one detection transition between consecutive fine receiver windows of at least one of a plurality of pulses.


In some examples, the method apparatus, and CPP further comprises: determining a first coarse timing window based on the detection of a pulse for at least two of the plurality of receivers, determining a plurality of coarse timing windows based on the detection of a plurality of pulses and a coarse timing window function for at least two of the plurality of receivers, and determining a parallel set of fine timing windows based on at least one of the plurality of coarse timing windows.


In some examples, determining the plurality of coarse timing windows may comprise an iterative, adaptive feedback loop. The feedback loop is driven by a detection pattern.


In some examples, determining the parallel set of fine timing windows further comprises the determining of a set of fine timing windows synchronous to a receiver clock. The set of fine timing windows synchronous to the receiver clock are disjoint. The determining the sub-window resolution of the TOA comprises an averaging. The determining the coarse estimate, the fine estimate, and the sub-window resolution of the TOA comprises a plurality of parallel detectors. The plurality of parallel detectors comprises distinct detection levels.


In some examples, TOA is an earliest detection of the detection of the pulse from the plurality of parallel detectors. The TOA is associated with a tag unique identifier. The tag unique identifier is decoded at each of the plurality of receivers from a data packet transmitted by the target. The tag unique identifier decoding comprises one of an asynchronous and synchronous sampling. The synchronous sampling comprises the receiver clock. The asynchronous sampling comprises a target transmit clock recovery. The target transmit clock recovery comprises a tracking of the plurality of pulses. Further, the tracking of the plurality of pulses comprises a phase-locked loop (PLL).





BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Having thus described the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:



FIG. 1 shows a timing diagram for an RTLS tag transmission (TX) in an example high-resolution TOA determination system, in accordance with example embodiments of the present invention;



FIG. 2 shows a timing diagram for an adjustable timing window function, in accordance with example embodiments of the present invention;



FIG. 3 shows a timing diagram for a receiver (RX) fine timing window function, in accordance with example embodiments of the present invention;



FIG. 4 shows a timing diagram for a receiver (RX) sub-window resolution function 400, in accordance with example embodiments of the present invention;



FIG. 5 illustrates an exemplary environment using a radio frequency locating system for providing performance analytics in accordance with some embodiments of the present invention;



FIG. 6 illustrates an exemplary receiver in a RTLS system comprising a RTLS receiver that may be configured in accordance with some embodiments of the present invention;



FIG. 7 illustrates an example TOA and recovery circuit function from the exemplary receiver in the RTLS system of FIG. 6, in accordance with some embodiments of the present invention; and



FIGS. 8a and 8b are flowcharts illustrating example methods for determining a time of arrival with sub-window resolution.





DETAILED DESCRIPTION OF THE INVENTION

Example embodiments of the present invention now may be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the inventions are shown. Indeed, these inventions may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.


Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.


As such, example embodiments described herein comprise methods for an active RTLS tag target location system that provides for <Ins TOA accuracy and resolution and significantly reduces the channel effects of multipath interference, even in low SNR applications. To accomplish these objectives, the example embodiments provide for an iterative and adaptive windowing function in one or more of the receivers of the receiver grid that captures multiple reflections of multiple transmissions from one or more of the associated target RTLS tags.


Example High-Resolution Toa Determination in a Multiple Receiver Target Location System

Example embodiments described herein comprise methods, apparatus and computer program products for receiver adaptive windowing and for high-resolution TOA determination in a multiple receiver target location system. A target may be a person, animal, object, or the like, to which an RTLS location tag has been mounted for tracking a location associated with target. In some examples, high-resolution TOA determination is achieved even in an instance in which a communication channel suffers from multipath interference and the range requirements provide for a relatively low SNR. In further examples described herein, both issues of multipath interference and low SNR are addressed by an iterative, adaptive windowing function in each of the receivers included in the receiver grid. In further examples, resolution for the TOA determination is improved by increasing the resolution for the detection windows at one or more receivers in the receiver grid for one or more of the series of timing pulses from one or more of the transmitters associated with the target RTLS tags. Resolution for each series of timing pulses from each respective transmitter associated with an RTLS tag is effectively increased, in some examples, by using the aforementioned windows to detect a timestamp for a plurality of bits to generate or otherwise determine a high resolution timestamp.


The systems, tags, receivers and methods for operating the same described herein are configured to establish a timestamp for a received tag transmission signal. The tag transmission signal may be refer to herein as “blink data” or “a blink data pulse” as it is transmitted at selected intervals comprising a blink (e.g., 72 pulses at a blink rate of 1 Mb/s). Blink data may also comprise one or more data packets. Such tag data packets may include any data from the modular location tag that is intended for transmission such as, for example in the depicted embodiment, a tag unique identification number (tag UID), other identification information, a sequential burst count, stored tag data, or other desired information for object or personnel identification, inventory control, etc. In some embodiments, the timestamp may be generated based on a particular timing bit in a transmission. While such a method may generate a timestamp, it is, in some examples, vulnerable to noise (e.g., noise that varies among receivers). In order to mitigate potential noise (or other interference), the systems, tags, receivers and methods for operating the same described herein are configured to dynamically adjust a window so as to more accurately generate a timestamp for a packet. The window, in some examples, may be established using a preamble of the data packet (e.g., the first 16-32 bits comprising a series of 1's or pulses) and then may be applied to synchronization pattern or code (e.g., 16-32 bits in a known pattern of 1's and 0's following the preamble) to generate a timestamp. As such, by establishing a window (e.g. a 30 nanosecond (nsec) window), a receiver may be configured to generate a timestamp (e.g., a timestamp with a 1 nsec resolution) for a given pulse.


In examples where an adjustable time window is used, such as a 30 ns window, and by establishing such a window during the preamble phase, it is possible to walk up a received pattern to find the front or leading edge of the pulse. In some examples, upon detection of a first pulse, a window, which in some cases may be asymmetric, may be established for the next pulse so as to enable the window to be re-centered. The window width may be adjusted (e.g., narrowed) as more pulses are detected without synchronous earlier echoes until the original first arrival is determined.


Alternatively or additionally, in order to mitigate random noise effects on time stamp generation, a plurality of received pulses (e.g., pulses in the synch pattern) may be used to determine a timestamp. Thus, in cases where a window is established as described herein, the window may be used to identify or otherwise determine multiple pulses (e.g., eight) within a synch pattern so as to generate time measurements (e.g., at a 1 nsec resolution) and to combine those time measurements by taking on average of the measurements, a rounded average of the time measurements or the like, to determine a high resolution timestamp for the packet.


Example Target Location System


FIG. 1 shows a timing diagram 100 for an RTLS tag transmission (TX) in a high-resolution TOA determination system, in accordance with example embodiments of the present invention. The timing diagram 100 comprises a TX clock 101, a preamble 110, and a data packet 120, which as presented in FIG. 1, includes the preamble 110 as a subset of the data packet 120. The preamble 110 is comprised of a transmit (TX) series of pulses 111T, wherein the TX series of pulses 111T are equally spaced in time, in accordance with a period associated with the TX clock 101. In some examples, the period associated with the TX clock is approximately 1 μsec, whereby the TX clock 101 operates at a frequency of 1 MHz.


Each individual TX pulse 111T′ in the TX series of pulses 111T is identical. In some examples, the TX pulse 111T′ comprises a 6 GHz carrier wave modulated by a 2.0 nsec pulse, or rectangle function (rect). In some examples, the TX pulse 111T′ is additionally shaped at a receiver by a transmit and receive antenna and any electronics associated with an amplification or pre-amplification of the TX pulse 111T′, in conjunction with the high-resolution TOA determination system. In some examples, the TX pulse 111T′ shape at the receiver, denoted RX pulse 111R′, may be consistent with a function ˜t e−t/τ. The TX series of pulses 111T is used to provide for an iterative windowing function, an adjustable timing window 200, described in FIG. 2.


The data packet 120 comprises at least the following data words: the aforementioned preamble 110, a sync code 112, a header 120A, a transmit identification (TX ID) 120B, and a CRC word 120C. The sync code 112 represents a known sequence of 1's and 0's. In other examples, the 1's and 0's may be distributed in other ways. In some examples, the sync code 112 may be 16 bits long. The sync code 112 consists primarily of 1's, which represent the TX pulses 111T′-rather than 0's, which represent ‘blanks,’ or no pulse. The sync code 112 is used to provide for a registration code 350 in response to each of the TX pulses 111T′ associated with the sync code 112, whereby the registration code 350 provides for a record of a detection of the sync code 112 in a receiver (RX) fine timing window function 300, described in FIG. 3.


The data packet 120 is transmitted by the RTLS tag transmitter, in some examples, continually and periodically. In some examples, the transmission of the data packet 120 is initiated immediately at the end of the 1 μsec period associated with a final transmit bit, in this example the CRC 120C least significant bit. In some examples, a waiting period between successive transmissions is established.


In some embodiments, the data packet 120 is 112 bits long, wherein the bit distribution may be as follows: the preamble 110 (e.g., 32 bits), the sync code 112 (e.g., 16 bits), the header 120A (e.g., 16 bits), the TX ID 120B (e.g., 32 bits), and the CRC 120C (e.g., 16 bits). In this example, a transmission time associated with the data packet 120 and the aforementioned 1 MHz data rate is 112 μsec. In other examples, the data packet 120 may consist of a plurality of data long words 120B′, immediately following the TX ID 120B and preceding the CRC 120C, resulting in a longer data packet 120. In some embodiments, the plurality of data long words 120B′ are each 32 bits long.


In some embodiments, the plurality of data long words 120B′ may include one or more of a temperature, an acceleration, and an attitude of rotational displacement. In some embodiments, the plurality of data long words 120B′ may include a ‘Query’ command to the receiver, wherein the RTLS tag transmitter, in this example, is equipped with a 125 KHz receiver and associated firmware to decode a response.



FIG. 2 shows a timing diagram for an adjustable timing window function 200, in accordance with example embodiments of the present invention. FIG. 2 comprises the TX clock 101 and the TX series of pulses 111T associated with preamble 120, as presented in for the RTLS tag transmission (TX) 100, shown in FIG. 1, and an RX clock 201 and an RX clock timing diagram 202. A received (RX) pulse train 211R is comprised of a series of the RX pulses 111R′, corresponding to the TX series of pulses 111T, and is synchronized to the RX clock 201, which is resident at an example receiver in the receiver grid. An RX pulse signature 212, representing an earliest pulse 215 and a series of echoes 216A-B and possible noise pulses 217, as shown in FIG. 2, is associated with the RX clock timing diagram 202, and is also associated with the corresponding TX pulse 111T′.


The adjustable timing window function 200, presented in FIG. 2, is comprised of a series of detection windows 220, comprising wide detection windows 221-230 and narrow detection windows 231-233, and an associated set of functions to adaptively position the series of wide and narrow detection windows 221-233 to center the RX pulse 111R′ in the corresponding window. In some embodiments, as in the present example shown in FIG. 2, there are ten wide detection windows 221-230. In some embodiments, as in the present example shown in FIG. 2, there are three narrow detection windows 231-233. For notation convenience, the last window in the series of fine and narrow detection windows 221-233 is called a final detector window 233.


In an example embodiment, as shown in FIG. 2, a first detection window 221 may be centered at 480 nsec, for example, with a width of 150 nsec. The center of the first detector window is a function of a first registered detection, wherein the present example registers a first registered detection at a second echo 216B of the RX pulse 111R′. The width of the first detection window 221 may be a function of an expected distance from the RTLS tag transmitter to the receiver.


The first detection window 221 may be adaptively updated by a second detection window 222 as provided by evidence of a second registered detection, wherein the present example registers a second registered detection at a first echo 216A of the RX pulse 111R′. In the example embodiment, the second detection window 222 may be centered at 460 nsec with a width of 150 nsec. Similarly, the second detection window 222 may be adaptively updated by a third detection window 223 as provided by evidence of a third registered detection, wherein the present example registers a third registered detection at an earliest pulse 215 of the RX pulse 111R′. In the example embodiment, the third detection window 223 may be centered at 415 nsec with a width of 150 nsec.


The series of wide detection windows 221-230 continue to be adaptively updated by the registered detections of RX pulses 111R′ that comprise the RX pulse train 211R corresponding to the TX series of pulses 111T in the preamble 110. In some examples, a final wide detector window 230 may be declared after a detection of ten RX pulses 111R′. At which point a final wide detector window 230 is determined, the registered detections for the series of wide detection windows 221-230 ends, and the series of narrow detection windows 231-233 implemented.


A first narrow detection window 231 is centered at the center of the final wide detection window 230, as shown in FIG. 2. The width of the first narrow detection window 231 is 30 nsec, in some examples. Note that, as FIG. 2 demonstrates, a timing shift may result with the registered detection of the RX pulse 111R′ associated with the first narrow detection window 231. The placement of the first narrow detection window 231, centered at 425 nsec, graphically represents such a shift, as the earliest pulse 215 associated with the RX pulse 111R′ appears to be registered along the RX clock timing diagram 202 closer to 415 nsec.


Each of the series of narrow detection windows 231-233 are comprised of three 10 nsec, disjoint timing windows 231A-C, 232A-C, and 233A-C. Detections for the RX pulses 111R′ that comprise the RX pulse train 211R are registered in parallel in each of the three disjoint timing windows 231A-C, for example, to determine to which of the three disjoint timing windows 231A-C the detection should be assigned. The purpose of the series of narrow detection windows 231-233 is to ensure that the final detection associated with the final RX pulse 111R′ in the RX pulse train 211R is registered in a final center disjoint timing window 233B associated with the final detector window 233. A slide narrow window function 235 to slide the series of narrow detection windows 231-233 left and right in 10 nsec increments, for example, is provided as a method to achieve the aforementioned requirement, and as such the final detection associated with the final RX pulse 111R′ in the RX pulse train 211R is registered in the center of the final detector window 233.


The adjustable timing window function 200, shown in FIG. 2, may be implemented as a first feedback loop, wherein a pulse detector resides in the forward feed and the slide window function 235 may comprise the feedback. The pulse detector may determine whether or not a pulse detection is registered in the currently prescribed disjoint timing windows 231A-C, for example, for any of the series of narrow detection windows 231-233. As a function of the detections registered in the currently prescribed disjoint timing windows 231A-C, for example, a feedback function may determine which direction a shift is to be made, and in some examples, what is the magnitude of the prescribed shift, if different from a default shift value of 10 nsec, for example.


As previously stated, the default shift magnitude is equal to the shift magnitude presented in the example given in FIG. 2, that of 10 nsec, for example. A minimum shift magnitude may also be given (e.g., 10 nsec). Larger shift magnitudes may be incorporated, dependent on the detection algorithm. As one example, a detection algorithm that may determine multiple echoes 216A-B as registered in a relatively wide detector window may include logic to ‘skip’ left over several reflections at once to expedite the capture of the earliest pulse 215, the line-of-sight channel. In this example, a registration of multiple echoes 216A-B in the relatively wide detector window may be determined by the relative amplitude of the registered detections.


The situation described in the present example, where multiple echoes 216A-B—or reflections—may be registered in the same detector window is particular in reflective environments, environments surrounded by conductors. By contrast, it is unlikely that both the earliest pulse 215, the line-of-sight channel, and an echo 216A-B—or reflection—might arrive within the limits of the same wide detector window 221-230, as the time difference between the earliest pulse 215, the line-of-sight channel, and the echo 216A-B, the reflection, may be on the order of tens of feet, or greater than 150 nsec difference in TOA, the width of the wide detector window 221-230 in this example.


Further, the detectors themselves may comprise several functions that may affect an improved detection resolution. For example, the detectors may be assigned a detection level or a threshold level that may determine whether the magnitude of the earliest pulse 215, one or more of the echoes 216A-B, or a noise pulse 217 is in fact a signal, or just a low-level background noise interference. Alternatively or additionally, for example, a signal-to-noise (SNR) level may be monitored dynamically, and the detection threshold level adjusted accordingly. In a further advancement, a relative strength of the signal may be monitored dynamically, whereby the strength of the signal, in conjunction with a TOA determination associated with the signal, may comprise two inputs to an automatic gain control (AGC) for either a pre-amplification or an amplification of the signal.



FIG. 3 shows a timing diagram for a receiver (RX) fine timing window function 300, in accordance with example embodiments of the present invention. FIG. 3 comprises the final detector window 233 and the three 10 nsec disjoint timing windows 233A-C associated with the final detector window 233, and a parallel set of fine detector windows 340A-E. The final detector window 233 and the fine detector windows 340A-E are synchronized with the RX clock timing diagram 202, as shown in FIG. 2. The leading edge of a first fine detector window 340A is synchronous with the leading edge of the final center disjoint timing window 233B associated with the final detector window 233. The RX fine timing window function 300 comprises registering a series of detections in the parallel set of fine detector windows 340A-E, each associated with the final center disjoint timing window 233B. The series of detections in the parallel set of fine detector windows 340A-E provides for a detection record of the sync code 112, the sequence of 1's and 0's TX pulses 111T′ transmitted by the RTLS tag transmitter.


The registering the series of detections in the parallel set of fine detector windows 340, each associated with the final center disjoint timing window 233B, comprises a generation of the registration code 350 which codifies the detections of the RX pluses 111R′ associated with the sync code 112 TX pulses 111T′. The registration code 350 codifies the detections with respect to each of the fine detector windows 340A-E, as shown in the example given in FIG. 3. As demonstrated for the present example, each successive fine detector window 340A-E overlaps the previous fine detector window 340A-E by 1 nsec, and each of the fine detector windows 340A-E in the parallel set of fine detector windows 340A-E is 5 nsec wide with a period of 10 nsec, as determined by the RX clock 201, running at a frequency of 100 MHz.


As represented by the registration code 350 for the present example, a detection of the RX pulse 111R′ associated with the corresponding sync code 112 TX pulse 111T′ is registered in each of the fine detector windows 340A-E. As such, it is inferred, in the present example, that the TOA for the RX pulse 111R′ is 414 nsec after the leading edge of the RX clock 201.



FIG. 4 shows a timing diagram for a receiver (RX) sub-window resolution function 400, in accordance with example embodiments of the present invention. FIG. 4 comprises the final center disjoint timing window 233B and the parallel set of fine detector windows 340A-E. To reiterate, the fine detector windows 340A-E are synchronized with the RX clock timing diagram 202, as shown in FIG. 2. That is, the leading edge of a first fine detector window 340A is synchronous with the leading edge of the final center disjoint timing window 233B and with the leading edge of the RX clock 201. The series of detections in the parallel set of fine detector windows 340A-E provides for a detection record of each of the RX pulses 111R′ associated with the TX pulses 111T′ that comprise the sync code 112, the detections recorded in the registration codes 350.



FIG. 4 presents a collection of RX pulses 111R′ associated with the sync code 112, wherein the collection of pulses are identified as RX pulses 1-8. The associated registration codes 350, one registration code for each pulse, which codifies the detections of the collection RX pluses 111R′, RX pulses 1-8, is also shown. In the example presented in FIG. 4, the TX clock 101 may be running at a slightly higher frequency than the RX clock 201. As such, each successive RX pulse 111R′, RX pulses 1-8, effectively ‘slips’ to the left with respect to the RX clock 201, as shown in the RX sub-window resolution functional drawing 400. Or alternatively, the leading edge of the center disjoint timing window 233B and the leading edge of the first fine detector window 340A, and the RX clock 201 itself, effectively shift to the right with respect to the successive pulses 1-8.


The results from the registration codes 350 clearly demonstrate a detection of an RX pulse 6, associated with a fourth sync code 112 TX pulse 111T′, as the first RX pulse to change detection registration; that is, to be detected or undetected in a new window, namely the fine detector window 340E. As such, the TOA is determined for the RX pulse 6 nearest to the leading edge of the fine detector window 340E. The RX pulse 6 is designated with a TOA estimate to be 4 nsec greater than the leading edge of the final center disjoint timing window 233B, which is registered at 410 nsec. Consequently, the RX pulse 6 is designated with a TOA estimate to be 414 nsec with respect to the RX clock 201.


More generally, a TOA averaging function may be used to further the sub-window resolution function 400. The TOA averaging function may effectively take differences in the TOAs of successive RX pulses 1-8, for example, whereby the TOA, as demonstrated previously, is a function of the leading edge registration of the final center disjoint window 233B and an associated registration code 350. The TOA differences, like the TOAs themselves, will register a transition as successive RX pulses 1-8 exhibit a change in detection registration, just as was the case demonstrated previously.


By assigning registration codes 350 that account for transitions between the fine detector windows 233A-C, a TOA numerical average may be constructed to assign a TOA with sub-window resolution. In the present example, a TOA average may be constructed whereby RX pulses 1-5 are assigned a weight equal to 4 nsec greater than the leading edge of the final center disjoint timing window 233B, and RX pulses 6-8 are assigned a weight equal to 3 nsec greater than the leading edge of the final center disjoint timing window 233B. As such, a TOA average is calculated as: 410 nsec+(⅝×14 nsec)+(⅜×13 nsec)=414⅝ nsec.


The change in the relative position of the RX pulses 1-8 with respect to the RX clock 201, as shown in FIG. 4, is in some examples directly attributable to the asynchronous TX 101 and RX clocks 201. That is, the TX clock 101 frequency and the RX clock 201 frequency are not equal. The frequency difference between the TX clock 101 and the RX clock 201 may be due to a clock drift of at least one or both of the TX clock 101 and the RX clock 201. In another embodiment, the TX clock 101 and the RX clock 201 may be purposefully detuned in order to take advantage of the sub-window resolution function 400 presented in FIG. 4. In the latter case, it may be possible, given very stable detuned TX 101 and RX clocks 201 that an error bound, the sub-window accuracy achieved by the sub-window resolution function 400, is itself stable and predictable.


Example Real Time Locating System


FIG. 5 illustrates an exemplary locating system 500 useful for calculating a location by an accumulation of location data or time of arrivals (TOAs) at a central processor/hub 11, whereby the TOAs represent a relative time of flight (TOF) from RTLS tags 12a-f as recorded at each receiver 13a-l (e.g., UWB reader, etc.). A timing reference clock is used, in some examples, such that at least a subset of the receivers 13a-l may be synchronized in frequency, whereby the relative TOA data associated with each of the RTLS tags 12a-f may be registered by a counter associated with at least a subset of the receivers 13a-l. In some examples, a reference tag 14a-b, preferably a UWB transmitter, positioned at known coordinates, is used to determine a phase offset between the counters associated with at least a subset of the of the receivers 13a-l. The RTLS tags 12a-f and the reference tags 14a-b reside in an active RTLS field 18. The systems described herein may be referred to as either “multilateration” or “geolocation” systems, terms that refer to the process of locating a signal source by solving an error minimization function of a location estimate determined by the difference in time of arrival (DTOA) between TOA signals received at multiple receivers 13a-l.


In some examples, the system comprising at least the tags 12a-f and the receivers 13a-l is configured to provide two dimensional and/or three dimensional precision localization (e.g., subfoot resolutions), even in the presence of multipath interference, due in part to the use of short nanosecond duration pulses whose TOF can be accurately determined using detection circuitry, such as in the receivers 13a-l, which can trigger on the leading edge of a received waveform. In some examples, this short pulse characteristic allows necessary data to be conveyed by the system at a higher peak power, but lower average power levels, than a wireless system configured for high data rate communications, yet still operate within local regulatory requirements.


In some examples, to provide a preferred performance level while complying with the overlap of regulatory restrictions (e.g. FCC and ETSI regulations), the tags 12a-f may operate with an instantaneous −3 dB bandwidth of approximately 400 MHz and an average transmission below 187 pulses in a 1 msec interval, provided that the packet rate is sufficiently low. In such examples, the predicted maximum range of the system, operating with a center frequency of 6.55 GHz, is roughly 200 meters in instances in which a 12 dbi directional antenna is used at the receiver, but the projected range will depend, in other examples, upon receiver antenna gain. Alternatively or additionally, the range of the system allows for one or more tags 12a-f to be detected with one or more receivers positioned throughout a football stadium used in a professional football context. Such a configuration advantageously satisfies constraints applied by regulatory bodies related to peak and average power densities (e.g., effective isotropic radiated power density (“EIRP”)), while still optimizing system performance related to range and interference. In further examples, tag transmissions with a −3 dB bandwidth of approximately 400 MHz yields, in some examples, an instantaneous pulse width of roughly 2 nanoseconds that enables a location resolution to better than 30 centimeters.


Referring again to FIG. 5, the object to be located has an attached tag 12a-f, preferably a tag having a UWB transmitter, that transmits a burst (e.g., multiple pulses at a 1 Mb/s burst rate, such as 112 bits of On-Off keying (OOK) at a rate of 1 Mb/s), and optionally, a burst comprising an information packet utilizing OOK that may include, but is not limited to, ID information, a sequential burst count or other desired information for object or personnel identification, inventory control, etc. In some examples, the sequential burst count (e.g., a packet sequence number) from each tag 12a-f may be advantageously provided in order to permit, at a Central Processor/Hub 11, correlation of TOA measurement data from various receivers 13a-l.


In some examples, the tag 12a-f may employ UWB waveforms (e.g., low data rate waveforms) to achieve extremely fine resolution because of their extremely short pulse (i.e., sub-nanosecond to nanosecond, such as a 2 nsec (Insec up and Insec down)) durations. As such, the information packet may be of a short length (e.g. 112 bits of OOK at a rate of 1 Mb/sec, in some example embodiments), that advantageously enables a higher packet rate. If each information packet is unique, a higher packet rate results in a higher data rate; if each information packet is transmitted repeatedly, the higher packet rate results in a higher packet repetition rate. In some examples, higher packet repetition rate (e.g., 12 Hz) and/or higher data rates (e.g., 1 Mb/sec, 2 Mb/sec or the like) for each tag may result in larger datasets for filtering to achieve a more accurate location estimate. Alternatively or additionally, in some examples, the shorter length of the information packets, in conjunction with other packet rate, data rates and other system requirements, may also result in a longer battery life (e.g., 7 years battery life at a transmission rate of 1 Hz with a 300 mAh cell, in some present embodiments).


Tag signals may be received at a receiver directly from RTLS tags, or may be received after being reflected en route. Reflected signals travel a longer path from the RTLS tag to the receiver than would a direct signal, and are thus received later than the corresponding direct signal. This delay is known as an echo delay or multipath delay. If reflected signals are sufficiently strong enough to be detected by the receiver, they can corrupt a data transmission through inter-symbol interference. In some examples, the tag 102 may employ UWB waveforms to achieve extremely fine resolution because of their extremely short pulse (e.g., 2 nsec) durations. Furthermore, signals may comprise short information packets (e.g., 112 bits of OOK) at a somewhat high burst data rate (1 Mb/sec, in some example embodiments), that advantageously enable packet durations to be brief (e.g. 112 microsec) while allowing inter-pulse times (e.g., 998 nsec) sufficiently longer than expected echo delays, avoiding data corruption.


Reflected signals can be expected to become weaker as delay increases due to more reflections and the longer distances traveled. Thus, beyond some value of inter-pulse time (e.g., 998 nsec), corresponding to some path length difference (e.g., 299.4 m.), there will be no advantage to further increases in inter-pulse time (and, hence lowering of burst data rate) for any given level of transmit power. In this manner, minimization of packet duration allows the battery life of a tag to be maximized, since its digital circuitry need only be active for a brief time. It will be understood that different environments can have different expected echo delays, so that different burst data rates and, hence, packet durations, may be appropriate in different situations depending on the environment.


Minimization of the packet duration also allows a tag to transmit more packets in a given time period, although in practice, regulatory average EIRP limits may often provide an overriding constraint. However, brief packet duration also reduces the likelihood of packets from multiple tags overlapping in time, causing a data collision. Thus, minimal packet duration allows multiple tags to transmit a higher aggregate number of packets per second, allowing for the largest number of tags to be tracked, or a given number of tags to be tracked at the highest rate.


In one non-limiting example, a data packet length of 112 bits (e.g., OOK encoded), transmitted at a data rate of 1 Mb/sec (1 MHz), may be implemented with a transmit tag repetition rate of 1 transmission per second (1 TX/sec). Such an implementation may accommodate a battery life of up to seven years, wherein the battery itself may be, for example, a compact, 3-volt coin cell of the series no. BR2335 (Rayovac), with a battery charge rating of 300 mAhr. An alternate implementation may be a generic compact, 3-volt coin cell, series no. CR2032, with a battery charge rating of 220 mAhr, whereby the latter generic coin cell, as can be appreciated, may provide for a shorter battery life.


Alternatively or additionally, some applications may require higher transmit tag repetition rates to track a dynamic environment. In some examples, the transmit tag repetition rate may be 12 transmissions per second (12 TX/sec). In such applications, it can be further appreciated that the battery life may be shorter.


The high burst data transmission rate (e.g., 1 MHz), coupled with the short data packet length (e.g., 112 bits) and the relatively low repetition rates (e.g., 1 TX/sec), provide for two distinct advantages in some examples: (1) a greater number of tags may transmit independently from the field of tags with a lower collision probability, and/or (2) each independent tag transmit power may be increased, with proper consideration given to a battery life constraint, such that a total energy for a single data packet is less that a regulated average power for a given time interval (e.g., a 1 msec time interval for an FCC regulated transmission).


Alternatively or additionally, additional sensor telemetry data may be transmitted from the tag 12a-f to provide the receivers 13a-l with information about the environment and/or operating conditions of the tag. For example, the tag may transmit a temperature to the receivers 13a-l. Such information may be valuable, for example, in a system involving perishable goods or other refrigerant requirements. In this example embodiment, the temperature may be transmitted by the tag at a lower repetition rate than that of the rest of the data packet. For example, the temperature may be transmitted from the tag to the receivers at a rate of one time per minute (e.g., 1 TX/min.), or in some examples, once every 720 times the data packet is transmitted, whereby the data packet in this example is transmitted at an example rate of 12 TX/sec.


Alternatively or additionally, the tag 12a-f may be programmed to intermittently transmit data to the receivers 13a-l in response to a signal from a magnetic command transmitter (not shown). The magnetic command transmitter may be a portable device, functioning to transmit a 125 kHz signal, in some example embodiments, with a range of approximately 15 feet or less, to one or more of the tags 12a-f. In some examples, the tags 12a-f may be equipped with at least a receiver tuned to the magnetic command transmitter transmit frequency (e.g., 125 kHz) and functional antenna to facilitate reception and decoding of the signal transmitted by the magnetic command transmitter.


In some examples, one or more other tags, such as a reference tag 14a-b, may be positioned within and/or about a monitored region. In some examples, the reference tag 14a-b may be configured to transmit a signal that is used to measure the relative phase (e.g., the count of free-running counters) of non-resettable counters within the receivers 13a-l.


One or more (e.g., preferably four or more) receivers 13a-l are also positioned at predetermined coordinates within and/or around the monitored region. In some examples, the receivers 13a-l may be connected in a “daisy chain” 19 fashion to advantageously allow for a large number of receivers 13a-l to be interconnected over a significant monitored region in order to reduce and simplify cabling, provide power, and/or the like. Each of the receivers 13a-l includes a receiver for receiving transmissions, such as UWB transmissions, and preferably, a packet decoding circuit that extracts a time of arrival (TOA) timing pulse train, transmitter ID, packet number, and/or other information that may have been encoded in the tag transmission signal (e.g., material description, personnel information, etc.) and is configured to sense signals transmitted by the tags 12a-f and one or more reference tags 14a-b.


Each receiver 13a-l includes a time measuring circuit that measures times of arrival (TOA) of tag bursts, with respect to its internal counter. The time measuring circuit is phase-locked (e.g., phase differences do not change and therefore respective frequencies are identical) with a common digital reference clock signal distributed via cable connection from a Central Processor/Hub 11 having a central timing reference clock generator. The reference clock signal establishes a common timing reference for the receivers 13a-l. Thus, multiple time measuring circuits of the respective receivers 13a-l are synchronized in frequency, but not necessarily in phase. While there typically may be a phase offset between any given pair of receivers in the receivers 13a-l, the phase offset is readily determined through use of a reference tag 14a-b. Alternatively or additionally, each receiver may be synchronized wirelessly via virtual synchronization without a dedicated physical timing channel.


In some example embodiments, the receivers 13a-l are configured to determine various attributes of the received signal. Since measurements are determined at each receiver 13a-l, in a digital format, rather than analog in some examples, signals are transmittable to the Central Processor/Hub 11. Advantageously, because packet data and measurement results can be transferred at high speeds to a receiver memory, the receivers 13a-l can receive and process tag (and corresponding object) locating signals on a nearly continuous basis. As such, in some examples, the receiver memory allows for a high burst rate of tag events (i.e., information packets) to be captured.


Data cables or wireless transmissions may convey measurement data from the receivers 13a-l to the Central Processor/Hub 11 (e.g., the data cables may enable a transfer speed of 2 Mbps). In some examples, measurement data is transferred to the Central Processor/Hub at regular polling intervals.


As such, the Central Processor/Hub 11 determines or otherwise computes tag location (i.e., object location) by processing TOA measurements relative to multiple data packets detected by the receivers 13a-l. In some example embodiments, the Central Processor/Hub 11 may be configured to resolve the coordinates of a tag using nonlinear optimization techniques.


In some examples, TOA measurements from multiple receivers 13a-l are processed by the Central Processor/Hub 11 to determine a location of the transmit tag 12a-f by a differential time-of-arrival (DTOA) analysis of the multiple TOAs. The DTOA analysis includes a determination of tag transmit time t0, whereby a time-of-flight (TOF), measured as the time elapsed from the estimated tag transmit time toto the respective TOA, represents graphically the radii of spheres centered at respective receivers 13a-l. The distance between the surfaces of the respective spheres to the estimated location coordinates (x0, y0, z0) of the transmit tag 12a-f represents the measurement error for each respective TOA, and the minimization of the sum of the squares of the TOA measurement errors from each receiver participating in the DTOA location estimate provides for the location coordinates (x0, y0, z0) of the transmit tag and of that tag's transmit time to.


In some examples, the system described herein may be referred to as an “over-specified” or “over-determined” system. As such, the Central Processor/Hub 11 may calculate one or more valid (i.e., most correct) locations based on a set of measurements and/or one or more incorrect (i.e., less correct) locations. For example, a location may be calculated that is impossible due the laws of physics or may be an outlier when compared to other calculated locations. As such one or more algorithms or heuristics may be applied to minimize such error.


The starting point for the minimization may be obtained by first doing an area search on a coarse grid of x, y and z over an area defined by the user and followed by a localized steepest descent search. The starting location for this algorithm is fixed, in some examples, at the mean position of all active receivers. No initial area search is needed, and optimization proceeds through the use of a Davidon-Fletcher-Powell (DFP) quasi-Newton algorithm in some examples. In other examples, a steepest descent algorithm may be used.


One such algorithm for error minimization, which may be referred to as a time error minimization algorithm, may be described in Equation 1:









ɛ
=




j
=
1

N




[



[



(

x
-

x
j


)

2

+


(

y
-

y
j


)

2

+


(

z
-

z
j


)

2


]


1
2


-

c


(


t
j

-

t
0


)



]

2






(
1
)







Where N is the number of receivers, c is the speed of light, (xj, yj, zj) are the coordinates of the jth receiver, tj is the arrival time at the jth receiver, and t0 is the tag transmit time. The variable t0 represents the time of transmission. Since t0 is not initially known, the arrival times, tj, as well as t0, are related to a common time base, which in some examples, is derived from the arrival times. As a result, differences between the various arrival times have significance for determining location as well as to.


The optimization algorithm to minimize the error E in Equation 1 may be the Davidon-Fletcher-Powell (DFP) quasi-Newton algorithm, for example. In some examples, the optimization algorithm to minimize the error E in Equation 1 may be a steepest descent algorithm. In each case, the algorithms may be seeded with an initial location estimate (x, y, z) that represents the two-dimensional (2D) or three-dimensional (3D) mean of the positions of the receivers 13a-l that participate in the tag location determination.


In some examples, the RTLS system comprises a receiver grid, whereby each of the receivers 13a-l in the receiver grid keeps a receiver clock that is synchronized, with an initially unknown phase offset, to the other receiver clocks. The phase offset between any receivers may be determined by use of a reference tag that is positioned at a known coordinate position (xT, yT, zT). The phase offset serves to resolve the constant offset between counters within the various receivers 13a-l, as described below.


In further example embodiments, a number N of receivers 13a-l {Rj:j=1, . . . , N} are positioned at known coordinates (xRj, yRj, zRj), which are respectively located at distances dRj from a reference tag 14a-b, such as given in Equation 2:






d
R

j
√{square root over ((xRj−xT)2+(yRj−yT)2+(zRj−zT)2)}  (2)


Each receiver Rj utilizes, for example, a synchronous clock signal derived from a common frequency time base, such as clock generator. Because the receivers are not synchronously reset, an unknown, but constant offset Oj exists for each receiver's internal free running counter. The value of the constant offset Oj is measured in terms of the number of fine resolution count increments (e.g., a number of nanoseconds for a one nanosecond resolution system).


The reference tag is used, in some examples, to calibrate the radio frequency locating system as follows: The reference tag emits a signal burst at an unknown time τR. Upon receiving the signal burst from the reference tag, a count NRj as measured at receiver Rj is given in Equation 3 by:






N
R

j
=βτR+Oj+βdRj/c  (3)


Where c is the speed of light and β is the number of fine resolution count increments per unit time (e.g., one per nanosecond). Similarly, each object tag Ti of each object to be located transmits a signal at an unknown time τi to produce a count Nij, as given in Equation 4:






N
i

j
=βτi+Oj+βdij/c  (4)


At receiver Rj where dij is the distance between the object tag Ti and the receiver 13a-l Rj. Note that τi is unknown, but has the same constant value for all receivers. Based on the equalities expressed above for receivers Rj and Rk and given the reference tag 14a-b information, phase offsets expressed as differential count values are determined as given in Equations 5a-b:












N

R
j


-

N

R
k



=


(


O
j

-

O
k


)

+

β
(



d

R
j


c

-


d

R
k


c


)









Or
,





(

5

a

)







(


O
j

-

O
k


)

=



(


N

R
j


-

N

R
k



)

-

β
(



d

R
j


c

-


d

R
k


c


)


=

Δ

j
k







(

5

b

)







Where jk is constant as long as dRj−dRk remains constant, (which means the receivers and reference tag are fixed and there is no multipath situation) and β is the same for each receiver. Note that Δjk is a known quantity, since NRj, NRk, β, dRj/c, and dRk/c are known. That is, the phase offsets between receivers Rj and Rk may be readily determined based on the reference tag 14a-b transmissions. Thus, again from the above equations, for a tag 12a-f (Ti) transmission arriving at receivers Rj and Rk, one may deduce the following Equations 6a-b:












N

i
j


-

N

i
k



=



(


O
j

-

O
k


)

+

β
(



d

i
j


c

-


d

i
k


c


)


=


Δ

j
k


+

β
(



d

i
j


c

-


d

i
k


c


)










Or
,





(

6

a

)








d

i
j


-

d

i
k



=


(

c
/
β

)



[


N

i
j


-

N

i
k


-

Δ

j
k



]






(

6

b

)







Each arrival time, tj, can be referenced to a particular receiver (receiver “1”) as given in Equation 7:










t
j

=


1
β



(


N
j

-

Δ

j





1



)






(
7
)







The minimization, described in Equation 1, may then be performed over variables (x, y, z, t0) to reach a solution (x′, y′, z′, t0′).


Example Receiver Architecture


FIG. 6 illustrates an exemplary receiver 13a-l in a UWB receiver system 600 comprising a UWB receiver that may be configured in accordance with some embodiments of the present invention. In an example embodiment, data packets 120 are transmitted to the receivers 13a-l and intercepted by UWB antenna 21. A UWB receiver 22 is provided at each receiver 13a-1. The UWB receiver can, for example, be designed in accordance with the system described in commonly-owned U.S. Pat. No. 5,901,172, which is incorporated by reference herein in its entirety.


UWB receiver 22, provided for at receivers 13a-l, allows for an analog signal stream that is digitized, then processed by a UWB TOA and data recovery circuits 24. The analog stream is digitized by up to three or more parallel, concurrent, independent analog-to-digital converters (ADCs) functioning with three distinct threshold levels, resulting in up to three or more digital data streams 23A-C that are sent to the UWB TOA and data recovery circuits 24. In some embodiments, the threshold levels applied to the analog signal stream in the UWB receiver 22 are a function of a signal-to-noise ratio (SNR) present in the communication channel. In some embodiments, the threshold levels are set dynamically as a function of one or more of an antenna preamp gain and an estimated RTLS tag range.


The UWB TOA and data recovery circuits 24 perform as many as three or more parallel, concurrent, identical signal processing functions on the three or more digital data streams 23A-C. The three or more UWB TOA and data recovery circuits 24 may be configured to receive data packets 120 that correspond to RTLS tags 12a-f. The UWB TOA and data recovery circuits 24 may provide for a packet framing and extraction function as part of the data recovery circuit, whereby an RTLS tag 12a-f identification may be extracted. The RTLS identification may be extracted by the TX identification field 120B of the data packet 120, as described previously. In some embodiments, the UWB TOA and data recovery circuits 24 are implemented by field programmable gate arrays (FPGAs). The TOA and extracted data packet is sent by TOA line 25 to an arbitrate/buffer function 26.


The arbitrate/buffer function 26 effectively selects the TOA line 25 data provided by the UWB TOA and data recovery circuits 24. The arbitrate/buffer function 26 selects the TOA line 25 that converges to the earliest TOA from the up to three or more TOA and data recovery circuits 24 driven by the digital data stream 23A-C. The arbitrate/buffer function 26 provides for a series of serial messages, or tag message 27, to send to a tag queue function 28, whereby each of the tag messages 27 is identified by an RTLS tag 12a-f and an associated TOA.


The tag queue function 28 provides for a formatting and ordering of the collection of RTLS tag identifiers and TOAs, effectively a first-in first-out (FIFO) memory buffer awaiting a transmission to the central processor/hub 11. Upon a tag queue function 28 trigger, a tag data packet 29 is sent to a formatting and data coding/decoding function 30 that, in turn, repackages the tag data packet 29 and transmits a synchronous tag data packet 30B to the central processor/hub 11.


The synchronous tag data packet 30B transmitted by the formatting and data coding/decoding function 30 to the central processor/hub 11 is synchronized by a 10 MHz receiver clock 40, received from the previous receiver clock in the “daisy chain” 19, and transmitted to the next receiver clock in the “daisy chain” 19 following a synchronous frequency up/down convert. The receiver clock 40 drives a phase-locked loop (PLL) 41, whereby a frequency divider in a feedback loop in conjunction with a voltage-controlled oscillator (VCO) provides for a 100 MHz receiver clock 42-43 that is synchronized in phase to the 10 MHz receiver clock 40. The 100 MHz receiver clock 42 is provided to synchronize all logic blocks in the UWB receiver 13a-l and to provide for a TOA coarse time 45, sent by line 46 to the TOA and data recovery circuits 24 to be used in the TOA determination. The 100 MHz receiver clock 43 provides for the parallel set of fine detector windows 340, a basis of a set of receiver timing windows used to capture and register pulses transmitted by RTLS tags 12a-f in the TOA determination, as described previously with respect to FIG. 3.


A second function of the formatting and data coding/decoding function 30 is a buffering, reformatting, and repeating of a central processor data 30A-B received and transmitted between the receiver 13a-l and the central processor/hub 11 via the “daisy chain” 19 receiver network. The central processor data 30A-B received and transmitted from and to the formatting and data coding/decoding function 30 may provide for a series of commands that are decoded at a command decoder 44 to trigger receiver functions. A non-exhaustive list of such functions may include the following: an auto/manual control function 20, a series of telemetry functions 60, and the arbitrate/buffer function 26 to prune a data queue and to manage, delete, and reorder the data queue. The auto/manual control function 20 may be commanded—from manual mode- to report sensor information such as temperature and other telemetry data recorded in the telemetry function 60, and may be commanded to manually adjust one or more of an antenna preamp gain and the previously described threshold levels at the UWB receiver 22.


A power supply 50 may be configured to power the receiver 13a-l by way of an AC-DC convertor, whereby the AC power may be provided as an input from the central processor/hub 11, shown in FIG. 5. The power supply 50 may be accompanied, in some embodiments, by a power delay circuit 51 to allow for an orderly ‘power up’ of sequential receivers 13a-l, thus avoiding a power surge and over-current event in the central processor data 30A-B transmission lines.


An advantage, in some examples, to the present embodiment of the UWB receiver system 600 is that packet data and measurement results can be transferred at high speeds to TOA measurement buffers, the arbitrate/buffer function 26, such that the receivers 13a-l can receive and process tag 12a-f (and corresponding object) locating signals on a nearly continuous basis. That is, multiple UWB data packets 120 can be processed in close succession, thereby allowing the use of hundreds to thousands of tag transmitters.


In some embodiments, data stored in TOA measurement buffers, the arbitrate/buffer function 26, is sent to a central processor/hub 11, shown in FIG. 5, over the central processor data transmission lines 30A-B in response to a specific request from the central processor/hub 11.


In some embodiments, the collection of the central processor data 30A-B transmission lines, connecting a “daisy chain” 19 network of receivers, is comprised of two bi-directional data links. In some embodiments, these data links may be RS422 differential serial links. A network interface may receive command signals from a central processor/hub 11 on one link, for example, to instruct a transfer of the TOA measurement buffer, the arbitrate/buffer function 26, to the central processor/hub 11. Additional commands may include those to adjust UWB receiver 22 operating characteristics such as gain and detection thresholds. The bi-directional data links may also provide for a buffer for data signals linked between “daisy chain” 19 receivers, buffering sequential transmissions between the present and next receiver 13a-l in a communications chain.


The synchronous frequency up/down convert performed on the 10 MHz receiver clock 40 provides for a driver for the receiver clock 40 transmitted to the next receiver in the “daisy chain” 19. An advantage of this approach, in some examples, is that the 10 MHz receiver clock 40 transmitted to the next receiver—as with the original 10 MHz receiver clock 40—may be made low enough in frequency so that it can be transmitted over low-cost cables (e.g., twisted pair wires). Since timing jitter of the local timing reference signal degrades as the PLL multiplier coefficient is increased, there is a necessary trade-off between frequency and jitter of the local timing reference signal and the frequency of the timing reference clock.


Utilizing a common 10 MHz receiver clock 40 for timing reference, a plurality of local timing reference signals (one in each receiver) can be precisely matched in frequency. Using this approach, additional receivers can be connected without concern for clock loading. Buffer delay is also not an issue since the timing reference clock is used for frequency only, and not phase reference.


In some embodiments, the 10 MHz receiver clock 40 may comprise differential signals. The use of differential clock signals is advantageous since they avoid clock duty cycle distortion which can occur with the transmission of relatively high-speed clocks (e.g., >10 MHz) on long cables (e.g., >100 feet).



FIG. 7 illustrates an exemplary embodiment of the UWB TOA and data recovery circuits 700, presented in the UWB receiver system 600 as TOA and data recovery circuits 24, shown in FIG. 6, in accordance with some embodiments of the present invention. In an example embodiment, the UWB TOA data and recovery circuits 700 comprise a windowing/gating function 71, a TOA function 72, a window control clock and data recovery (PLL) function 73, a TOA averaging function 74, a data sync and extract function (1 MHz-2 MHz) 75-76, and a tag data recovery and processing function 77. The UWB TOA and data recovery circuits 700 process the digital data stream 23, shown in FIG. 6, to provide an unpacked data packet and the TOA associated with the RTLS tag to the arbitrate/buffer function 26.


The windowing/gating function 71 and the window control clock and data recovery (PLL) function 73 work as a feedback loop to recover the TX clock 101 and provide for the adjustable timing window function 200, as presented in FIG. 2, by tracking the RX pulses 111R′ that comprise the RX pulse train 211R corresponding to the TX pulses 111T′ in the series of TX pulses 111 in the preamble 110. The TOA function 72 works in conjunction with the 100 MHz receiver clocks 42-43. The RX clock 42 (201) provides for the TOA coarse time 46. The parallel set of fine detector windows 43 (340) provides for a TOA fine time associated with the RX fine timing window function 300, shown in FIG. 3, recording detections by a registration code 350 for the RX pulses 111R′ that correspond to the sync code 112 TX pulses 111T′. The description for the adjustable timing window function 200 and the RX fine timing window function 300 are given previously with the presentation of FIGS. 2-3, respectively.


The TOA fine time—the registration code 350, the disjoint timing windows 231A-C, as determined by the adjustable timing window function 200, and the coarse time 46 are sent to the TOA averaging function 74, along with a latch TOA control signal indicating the end of a TOA determination. The TOA averaging function 74 is activated by a calculate TOA trigger 78, whereby the sub-window resolution function 400, as previously described with regard to FIG. 4, is initiated to determine the TOA with sub-window accuracy; that is, with resolution less than 1 nsec. The averaged TOA 80 is then sent to the tag data recovery and processing function 77.


The data sync and extract functions (1 MHz-2 MHz) 75-76 are triggered upon phase lock of the PLL associated with the window control clock and data recovery (PLL) function 73. Phase lock of the PLL is determined by the previously described feedback loop comprising the windowing/gating function 71 and the window control clock and data recovery (PLL) function 73, whereby the feedback loop effectively recovers the TX clock 101 by tracking the RX pulses 111R′ corresponding to the preamble 110.


Upon phase lock, whereby the preamble 110 is synchronized to a recovered TX clock, the data packet 120, beginning with the remainder of the preamble 110, is extracted and unpacked by the data sync and extract function 75 (76) at a sampling rate of 1 Mhz (2 MHz), and sent to the tag data recovery and processing function 77. In another embodiment, the data sync and extract functions 75-76 are both set to sample the data packet 120 with a sampling rate of 2 MHz, but the two functions may differ by a data format. In one example, the data extracted by function 75 may follow a non-IOS format, where the data extracted by function 76 may follow an IOS format.


The tag data recovery and processing function 77 serves as a data processor for the data extracted by the data sync and extract functions 75-76 and as a communications control function, and also provides for data exchange associated with the arbitrate/buffer function 26, shown in FIG. 6. The data tag recovery and processing function 77 sends the TOA and data packet 120 information from the TOA averaging function 74 and the data sync and extract functions 75, 76, respectively, on TOA line 25 to the arbitrate/buffer function 26, which selects the earliest TOA from the three TOA functions running concurrently in the UWB TOA and data recovery circuits 700, and combines the TOA with the data packet 120 data into a tag message 27 to send to the tag data queue 28. At this point, the tag message 27 comprises at least the average TOA 80 and TX ID 120B extracted from the data packet 120 associated with the given tag transmission. The tag data queue 28, as described previously with respect to FIG. 6, effectively functions as a FIFO buffer for data transmission to the central processor/hub 11.


The tag data recovery and processing function 77 also serves as a controller for the timing of a triggering of the TOA averaging function 74 and a locking/unlocking 79 of the PLL in the window control clock and data recovery (PLL) function 73. The TOA averaging function 74 is initiated by the calculate TOA trigger 78 set by the tag data memory and processing controller 77, whereby the TOA trigger 78 is a function of a sync code 112 detection and a waiting interval associated with the data sync and extract function 75-76. The locking/unlocking 79 of the PLL is a function of a PLL lock indication initiated at the window control clock and data recovery (PLL) function 73, as described previously. And the locking/unlocking 79 of the PLL is reset to unlock the PLL upon detection in the sync and data extract functions 75-76 that the end of the data packet 120 has been reached, that the sampling of the data packet for the given tag transmission is complete.


The TOA averaging function 74 is elucidated by the sub-window resolution function 400, as described with regard to FIGS. 4, 8a, and 8b, and is initiated by the calculate TOA trigger 78. The TOA averaging function 74 may, in some examples, register a transition as successive RX pulses exhibit a change in detection registration, as demonstrated in FIG. 4. In another example, a TOA numerical average may be constructed to assign a TOA with sub-window resolution. A TOA numerical average may be constructed, according to FIG. 4, whereby RX pulses 1-5, for example, are assigned a weight equal to 4 nsec greater than the leading edge of the final center disjoint timing window 233B, and RX pulses 6-8 are assigned a weight equal to 3 nsec greater than the leading edge of the final center disjoint timing window 233B. As such, a TOA average is calculated as: 410 nsec+(⅝×14 nsec)+(⅜×13 nsec)=414⅝ nsec.



FIG. 8a illustrates an example method for determining a time of arrival with sub-window resolution that includes receiving blink data from a tag at a receiver, wherein the blink data comprises a series of pulses (block 802); determining a coarse estimate of a time-of-arrival (TOA) of blink data from at least two of a plurality of receivers based on a detection of a pulse that is part the series of pulses in an adjustable coarse timing window (block 804), wherein the coarse estimate is based on a plurality of coarse timing windows; determining a fine estimate of the TOA from the at least two of the plurality of receivers based on a detection of the pulse in at least one of a parallel set of fine timing windows (block 806); and determining a sub-window resolution of the TOA from the at least two of the plurality of receivers based on the at least one detection transition between consecutive fine receiver windows of at least one of a plurality of pulses (block 808), wherein the sub-window resolution is based on a weighted average of the series of pulses, wherein each pulse is weighted based on a distance from the at least one detection transition between consecutive fine receiver windows. FIG. 8b illustrates an additional example method for determining a time of arrival with sub-window resolution that includes determining a first coarse timing window based on the detection of a pulse for at least two of the plurality of receivers (block 850); determining the plurality of coarse timing windows based on the detection of a plurality of pulses and a coarse timing window function for at least two of the plurality of receivers (block 852); and determining the parallel set of fine timing windows based on at least one of the plurality of coarse timing windows (block 854).


Exemplary embodiments of the present invention have been described herein. The invention is not limited to these examples. These examples are presented herein for purposes of illustration, and not limitation. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) may be apparent to persons skilled in the relevant art(s) based in the teachings contained herein. Such alternatives fall within the scope and spirit of the invention.


All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference.

Claims
  • 1. An apparatus for determining target location in a multiple receiver target location system comprising at least one processor and at least one memory including computer program code, the at least one memory and computer program code configured to, with the processor, cause the apparatus to at least: receive a tag transmission signal from a tag at a receiver, wherein the tag transmission signal comprises a series of pulses;determine a coarse estimate of a time-of-arrival (TOA) of the tag transmission signal based on a detection of a pulse of the series of pulses in an adjustable coarse timing window, wherein the coarse estimate is based on a plurality of coarse timing windows;determine a fine estimate of the TOA based on a detection of the pulse in at least one of a parallel set of fine timing windows; anddetermine a sub-window resolution of the TOA based on at least one detection transition between consecutive fine receiver windows of at least one of a plurality of pulses and a weighted average of the TOA for each pulse of the series of pulses.
  • 2. The apparatus of claim 1, wherein that least one memory and computer program code are further configured to cause the apparatus to determine the plurality of coarse timing windows via an iterative, adaptive feedback loop.
  • 3. The apparatus of claim 2, wherein the adaptive feedback loop is driven by a detection pattern.
  • 4. The apparatus of claim 1, wherein that least one memory and computer program code are further configured to cause the apparatus to determine the parallel set of fine timing windows by determining a set of fine timing windows synchronous to a receiver clock.
  • 5. The apparatus of claim 4, wherein the set of fine timing windows synchronous to the receiver clock are disjoint.
  • 6. The apparatus of claim 1, wherein determining the coarse estimate, the fine estimate, and the sub-window resolution of the TOA comprises a plurality of parallel detectors.
  • 7. The apparatus of claim 6, wherein the plurality of parallel detectors comprises distinct detection levels.
  • 8. The apparatus of claim 7, wherein the distinct detection levels provide for determining whether the magnitude of the pulse is a signal or background noise interference.
  • 9. The apparatus of claim 7, wherein the distinct detection levels are adjusted based on dynamically monitoring a signal-to-noise ratio.
  • 10. The apparatus of claim 1, wherein the TOA is associated with a tag unique identifier, and the tag unique identifier is decoded at each of a plurality of receivers from a data packet transmitted by the target.
  • 11. The apparatus of claim 10, wherein the tag unique identifier decoding comprises one of an asynchronous sampling and a synchronous sampling, the synchronous sampling is based on a receiver clock, and the asynchronous sampling comprises a target transmit clock recovery.
  • 12. The apparatus of claim 11, wherein the target transmit clock recovery comprises a tracking of the plurality of pulses, and the tracking of the plurality of pulses is based on a phase-locked loop (PLL) indication.
  • 13. A system comprising: at least one location tag configured to transmit blink data;a plurality of receivers configured to receive the blink data; anda processing hub configured to: determine a coarse estimate of a time-of-arrival (TOA) of a tag transmission signal based on a detection of a pulse in an adjustable coarse timing window, wherein the coarse estimate is based on a plurality of coarse timing windows, the tag transmission signal received from a tag at one of the receivers;determine a fine estimate of the TOA based on a detection of the pulse in at least one of a parallel set of fine timing windows; anddetermine a sub-window resolution of the TOA based on at least one detection transition between consecutive fine receiver windows of at least one of a plurality of pulses and a weighted average of the TOA for each pulse of the series of pulses.
  • 14. The system of claim 13, wherein the processing hub is further configured to determine the plurality of coarse timing windows via an iterative, adaptive feedback loop.
  • 15. The system of claim 14, wherein the adaptive feedback loop is driven by a detection pattern.
  • 16. The system of claim 13, wherein the processing hub is further configured to determine the parallel set of fine timing windows by determining a set of fine timing windows synchronous to a receiver clock.
  • 17. The system of claim 16, wherein the set of fine timing windows synchronous to the receiver clock are disjoint.
  • 18. The system of claim 13, wherein determining the coarse estimate, the fine estimate, and the sub-window resolution of the TOA comprises a plurality of parallel detectors.
  • 19. The system of claim 18, wherein the plurality of parallel detectors comprises distinct detection levels.
  • 20. The system of claim 19, wherein the distinct detection levels provide for determining whether the magnitude of the pulse is a signal or background noise interference.
  • 21. The system of claim 19, wherein the distinct detection levels are adjusted based on dynamically monitoring a signal-to-noise ratio.
  • 22. The system of claim 13, wherein the TOA is associated with a tag unique identifier, and the tag unique identifier is decoded at each of a plurality of receivers from a data packet transmitted by the target.
  • 23. The system of claim 22, wherein the tag unique identifier decoding comprises one of an asynchronous sampling and a synchronous sampling, the synchronous sampling is based on a receiver clock, and the asynchronous sampling comprises a target transmit clock recovery.
  • 24. The system of claim 23, wherein the target transmit clock recovery comprises a tracking of the plurality of pulses, and the tracking of the plurality of pulses is based on a phase-locked loop (PLL) indication.
Priority Claims (1)
Number Date Country Kind
PCT/IB15/54103 May 2015 IB international
CROSS-REFERENCE TO RELATED APPLICATION

This patent arises from a continuation of U.S. application Ser. No. 14/729,669, filed Jun. 3, 2015, which claims the benefit of U.S. Prov. App. No. 62/008,234, filed Jun. 5, 2014, and International App. No. PCT/IB2015/054103, filed May 29, 2015, each of which is incorporated herein by reference.

Provisional Applications (1)
Number Date Country
62008234 Jun 2014 US
Continuations (1)
Number Date Country
Parent 14729669 Jun 2015 US
Child 15803713 US