Measuring angle of incidence in an ultrawideband communication system
RE048832 · 2021-11-23
Assignee
Inventors
Cpc classification
G01S3/46
PHYSICS
G01S1/32
PHYSICS
G01S3/48
PHYSICS
International classification
G01S3/46
PHYSICS
Abstract
In an ultra-wideband (“UWB”) receiver, a received UWB signal is periodically digitized as a series of ternary samples. During a carrier acquisition mode of operation, the samples are continuously correlated with a predetermined preamble sequence to develop a correlation value. When the value exceeds a predetermined threshold, indicating that the preamble sequence is being received, estimates of the channel impulse response (“CIR”) are developed. When a start-of-frame delimiter (“SFD”) is detected, the best CIR estimate is provided to a channel matched filter (“CMF”). During a data recovery mode of operation, the CMF filters channel-injected noise from the sample stream. Both carrier phase errors and data timing errors are continuously detected and corrected during both the carrier acquisition and data recovery modes of operation. The phase of the carrier can be determined by accumulating the correlator output before it is rotated by the carrier correction. By comparing the carrier phases of two receivers separated by a known distance, d, the angle of incidence, θ, of the signal can be determined.
Claims
1. In a radio frequency (“RF”) system comprising an RF transmitter, a first RF receiver having a first antenna, and a second RF receiver having a second antenna, the first and second antennas being separated by a predetermined distance, d, a method comprising the steps of: [1] in the first .[.and second receivers.]. .Iadd.receiver.Iaddend., using .[.respective.]. .Iadd.a .Iaddend.first .[.and second.]. clock tracking .[.loops.]. .Iadd.loop .Iaddend.to synchronize the carrier phase of .[.said.]. .Iadd.the first .Iaddend.receiver to the transmitter .Iadd.and in the second receiver, using a second clock tracking loop to synchronize the carrier phase of the second receiver to the transmitter.Iaddend.; [2] in the transmitter, transmitting an ultra-wideband (“UWB”) signal having a predetermined carrier wavelength, λ; [3] in the first receiver: [3.1] receiving the transmitted UWB signal; [3.2] developing a first phase value as a function of the complex baseband impulse response of said received UWB signal; and [3.3] correcting the first phase value by subtracting the phase of the first clock tracking loop; [4] in the second receiver: [4.1] receiving the transmitted UWB signal; [4.2] developing a second phase value as a function of the complex baseband impulse response of said received UWB signal; and [4.3] correcting the second phase value by subtracting the phase of the second clock tracking loop; [5] developing a phase difference value, α, as a .[.function of.]. .Iadd.difference between .Iaddend.the corrected first and second phase values; and [6] developing an angle of arrival, θ, of the transmitted UWB signal relative to the first receiver as a function of d, λ and α.
2. The method of claim 1 wherein, if d is at least λ/2, step [6] is further characterized as: [6] developing a plurality of angles of arrival, θ, of the transmitted UWB signal relative to the first receiver according to the following:
3. The method of claim 1 wherein, if d is at least λ/2, step [6] is further characterized as: [6] developing a plurality of angles of arrival, θ, of the transmitted signal relative to the first receiver according to the following:
.[.4. A non-transitory computer readable medium including executable instructions which, when executed in a processing system, cause the processing system to perform all of the steps of a method according to any one of claims 1, 2 and 3..].
Description
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
(1) Our invention may be more fully understood by a description of certain preferred embodiments in conjunction with the attached drawings in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23) In the drawings, similar elements will be similarly numbered whenever possible. However, this practice is simply for convenience of reference and to avoid unnecessary proliferation of numbers, and is not intended to imply or suggest that our invention requires identity in either function or structure in the several embodiments.
DETAILED DESCRIPTION OF THE INVENTION
(24) Shown in
(25) In the context of our invention, our trit can be distinguished from a conventional sign+magnitude implementation such as that described in Amoroso83, cited above. Consider the strategy for A/D conversion shown in
In contrast to a conventional sign+magnitude implementation, our trit-based ADC 20 can be readily adapted to operate either at a higher sample rate (improved performance but with more power) or at an equivalent sample rate (substantially equivalent performance but with less complexity, thereby reducing both circuit size and power consumption).
(26) Additional details relating to the construction and operation of our UWB receiver 10′ can be found in the Related References. As explained in the Related References, receiver 10′ initially operates in an acquisition mode, during which the components are configured to detect an incoming UWB signal transmitted by a remote UWB transmitter (not shown), and to achieve synchronism with that transmission, a process referred to as acquisition. Having achieved acquisition, receiver 10′ transitions into a data mode, during which the components are configured to recover data contained within each transmitted packet, a process referred to as demodulation or data recovery.
(27) Shown in
(28) Once a preamble has been identified, the carrier recovery logic is activated to correct carrier error in the received data. Logic 46 computes an instantaneous phase error estimate of the received UWB signal by performing an inverse tangent operation on the in-phase, i.e., real, and quadrature, i.e., imaginary, components of the signal phasor. A carrier loop filter 48 uses this estimate to compute a correction angle to be applied to the current input to the accumulator 26. This correction angle is developed as a carrier recovery phase signal (7-bits unsigned) wherein the output range is 0.0 to almost 2.0, and where the value 2.0 is equivalent to one revolution. A look-up-table (“LUT”) 50 converts the correction angle to a corresponding pair of cosine (5-bits, including a sign bit) and sine (5-bits, including a sign bit) values. Using these sine and cosine values, a rotator 52 rotates the correlated samples by implementing a complex multiplication for each sample, followed by rounding to return the output real and imaginary samples to 7-bit signed values. The rotated correlated samples are then resampled by resample 54 for use by the accumulator 26.
(29) There is a finite probability that a detected preamble is not valid. Accordingly, our accumulator 26 spends some time assessing the quality of the incoming signal. If the quality is found to be poor, the preamble is rejected and accumulator 26 resumes searching for a preamble. If the quality is found to be sufficiently high, the next task is to search for a start-of-frame-delimiter (“SFD”) by comparing the incoming correlator samples against the accumulated CIR estimate. This is performed for each symbol, and the result quantised to a 2-bit signed value. This 2-bit signed value should be +1 throughout the preamble, but then, once the SFD pattern is received, it should follow the pattern of the SFD. For example, for a short SFD, this would be [0, +1, 0, −1, +1, 0, 0, −1]. A corresponding search pattern is used to find this sequence on the 2-bit quantised values. This allows the SFD pattern to be identified, and the time to transition to data mode determined.
(30) Shown in
(31) As shown in
(32) As shown in
(33) The instantaneous phase error estimate phasor is then converted to a corresponding angle by logic block 62. As shown in
(34) The structure of carrier loop filter 48 can be seen in greater detail in
(35) When receiver 10′ transitions from acquisition to data mode, the rate of update of the carrier recovery loop 48 will change (from the preamble symbol interval to the data symbol interval); this requires that the integral term in the carrier loop filter 48b be scaled to compensate for this change as follows:
(36) TABLE-US-00001 TABLE 1 Carrier Loop Filter Scaling Table Preamble Data Scale Symbol Symbol Factor 992 1024 33/32 1016 10124 129/128 992 8192 8 * (33/32) 1016 8192 8 * (129/128)
(37) In data mode, we have determined that the application of the phase rotation in a single “lump” at the end of each symbol has a negative impact on the performance of the receiver. For the 6.8 Mb/s case, the phase is applied at the end of a group of 8 symbols, so the symbols towards the end of this group suffer from increased phase error as compared to those at the start. Similarly for the 850 kb/s case, the symbols representing a logic_1 will have a higher phase error than those representing a logic_0. Worst of all is the 110 kb/s case, which will suffer from a phase error increase throughout a symbol and, depending on the hop position of the symbol, will have an effectively random phase error to start with if the carrier offset is high enough. To compensate for this, our preferred embodiment will smooth the phase rotation during the data demodulation phase.
(38) As shown in
(39) In our preferred embodiment, we implement a register-based field programmable gear shifting mechanism. Ten gears may be configured; one is reserved for demodulation mode, allowing nine acquisition gears. Each gear is assigned: a count at which it is activated; a K.sub.p value; and a K.sub.i value. Writing a value of logic_0 as the count for a gear other than the first gear terminates the gear shifting table; whilst still switching to the demodulation gear when the acquisition phase is over. Note that two sets of demodulation coefficients must be specified, one for the 110 Kbps data rate case, and one for the 850K and 6.81 Mbps cases. The default values for each of the available programmable registers are given in the following table:
(40) TABLE-US-00002 TABLE 2 Carrier Recovery Loop Gear Shifting Table Register Count K.sub.i K.sub.p CR0 0 0x8: 3 * 2.sup.−6 0x7: 2.sup.−3 CR1 12 0x7: 3 * 2.sup.−7 0x7: 2.sup.−3 CR2 20 0x6: 3 * 2.sup.−8 0x6: 2.sup.−4 CR3 32 0x6: 3 * 2.sup.−8 0x6: 2.sup.−4 CR4 40 0x5: 3 * 2.sup.−9 0x5: 2.sup.−5 CR5 64 0x4: 3 * 2.sup.−10 0x5: 2.sup.−5 CR6 128 0x3: 3 * 2.sup.−11 0x4: 2.sup.−6 CR7 192 0x2: 3 * 2.sup.−12 0x4: 2.sup.−6 CR8 256 0x1: 3 * 2.sup.−13 0x3: 2.sup.−7 CR9 1023 0x0: 3 * 2.sup.−14 0x3: 2.sup.−7
The K factors are coded as follows:
(41) TABLE-US-00003 Minimum Maximum Decode Count 1 1023 Sample count on which to apply gearing values Ki 0x0 0xA 0x0 = 2.sup.−11 × (2.sup.−2 + 2.sup.−3) 0x1 = 2.sup.−10 × (2.sup.−2 + 2.sup.−3) 0x2 = 2.sup.−9 × (2.sup.−2 + 2.sup.−3) 0x3 = 2.sup.−8 × (2.sup.−2 + 2.sup.−3) 0x4 = 2.sup.−7 × (2.sup.−2 + 2.sup.−3) 0x5 = 2.sup.−6 × (2.sup.−2 + 2.sup.−3) 0x6 = 2.sup.−5 × (2.sup.−2 + 2.sup.−3) 0x7 = 2.sup.−4 × (2.sup.−2 + 2.sup.−3) 0x8 = 2.sup.−3 × (2.sup.−2 + 2.sup.−3) 0x9 = 2.sup.−2 × (2.sup.−2 + 2.sup.−3) 0xA = 2.sup.−1 × (2.sup.−2 + 2.sup.−3) 0xB-0xF - invalid Kp 0x0 0x7 0x0 = 00 0x1 = 2.sup.−9 0x2 = 2.sup.−8 0x3 = 2.sup.−7 0x4 = 2.sup.−6 0x5 = 2.sup.−5 0x6 = 2.sup.−4 0x7 = 2.sup.−3
(42) Under very noisy conditions, the carrier recovery loop may fail to lock correctly. This will result in a preamble rejection in the accumulator 26 (if this mode is enabled), effectively giving the carrier recovery loop another shot. The timing recovery loop can still fail to lock, however, and it does not get another chance since by the time this has an effect the preamble will likely be confirmed.
(43) Preferably, LUT 50 updates the SIN (5-bits signed) and COS (5-bits signed) values under the control of accumulator 26 during acquisition mode and by despreader 40 during data mode. This is in order to prevent phase changes being applied at times when the data is important to the algorithm in question, so it must be applied outside of the impulse response during acquisition, and outside of a burst position during demodulation.
(44) Rotator 52 takes the SIN and COS values from LUT 50 and applies them to the incoming data vectors. This rotation is applied to the correlator 24 outputs during acquisition, and to the CMF 36 outputs during data demodulation. As shown in
(45) Our timing estimation is based on an early-late gating algorithm. As illustrated in
(46) As shown in
(47) As the timing of the incoming signal changes, the position of this correlation peak in the output of the CMF 36 will move. In general, this movement will be gradual relative to one preamble symbol duration and therefore can be tracked. The accumulator 26 provides a timing flag to indicate when the correlation peak is expected at the output of the CMF 36. This flag is based on the latency of the accumulator 26 and CMF 36 relative to the estimated impulse response location. Initially, this will be very accurate as the timing phase error will be negligible, but, as the phase error accumulates, the peak will move, thus providing the desired timing information. The correlation peak is ideally the on-time sample, with the early and late samples being the one immediately preceding and following the on-time sample respectively. These three samples are passed to a phase detector 66 (see,
(48) During demodulation, the despreader 40 provides dedicated early and late outputs in addition to the normal on-time output used as part of the demodulation process. These outputs are provided for both possible burst positions (depending on if the data is a logic_0 or a logic_1); thus, an early instantaneous decision is needed in order to identify which of the two sets of early/on-time/late samples to use in computing the instantaneous timing phase error estimate. Once this decision is made, the computation is performed and the error passed to the the timing loop filter 64.
(49) The phase error estimation is based on the previously described early/on-time/late samples. A difference computation is performed by computational block 68. The difference between the early and late values is computed and checked against the on-time (on-time should be greater). If the on-time value is negative or zero (after conditioning), then the data is unreliable and the phase estimate zeroed. The difference is divided by twice the peak and the result checked to be less than 0.75 (otherwise it is considered unreliable) and passed out as the instantaneous timing error estimate in the format S[−1:−4]. This instantaneous timing error estimate is then passed on to the timing loop filter 64.
(50) As shown in
(51) TABLE-US-00004 TABLE 3 Timing Estimation Loop Gear Shifting Table Number of samples K.sub.p K.sub.i 0-5 0 0 5-28 31/(2.sup.−7) 0 28-80 31/(2.sup.−7) 20/(2.sup.−11) 80-120 15/(2.sup.−7) 5/(2.sup.−11) 120 onwards 11/(2.sup.−7) 1/(2.sup.−11)
(52) Timing loop filter accumulator 64c accumulates the lower noise estimate of the timing phase error to track the timing phase error and adjust the sampling phase error between 0 and +15.875 samples. Timing loop filter 64 also develops phase increment (“Inc”) and phase_decrement (“Dec”) signals that are used to adjust the timing in units of 16 samples because they either drop or add a clock cycle delay in the accumulator 26 (during acquisition) or despreader 40 (during demodulation). Therefore, if an adjustment of −2.5 samples is required, then phase_inc is used to introduce an offset of −16 samples, while the phase error driving resampler 40 will apply a correction of +13.5 samples, giving the overall required phase adjustment of −2.5 samples. Similarly, for example, an adjustment of +19.125 samples may be achieved by applying a +16 sample adjustment with the phase_dec signal, followed by an additional +3.125 sample correction in the resampler 54. By way of illustration, a suitable embodiment of resample 54 is illustrated in
(53) The carrier recovery loop needs to lock quickly in order to successfully receive the signal, whereas the timing recovery loop can take longer. As a result, if the carrier recovery loop fails to lock soon after the preamble is found, then the preamble will be rejected, allowing the carrier recovery loop another chance to lock. The timing recovery loop, however, does not get a second chance, so, to improve the chances of lock, the timing recovery loop can be seeded with an estimate based on the carrier loop integrator. Preferably, seeding is enabled via the use of a control signal: if the state of this signal is, e.g., logic_0, then timing seeding does not take place and the gearing table (see, below) must be set up to allow for this (initially wide bandwidth to allow acquisition, then narrowing as the lock improves); but, if the state of this signal is, e.g., logic_1, then timing seeding is enabled and the loop is assumed close to lock from the outset, and a more aggressive gearing table can be used. In our preferred embodiment, seeding is enabled by default.
(54) We have determined that the value of the loop integrator in the carrier recovery loop can be used to seed the loop integrator in the timing recovery loop, thereby giving the timing recovery loop a jump start and enhancing the chances of it locking. The formula we prefer to use to compute the seed value is:
I.sub.tim=(Scale)(I.sub.car)
(55) where: I.sub.tim=timing loop integrator; I.sub.car=carrier loop integrator;
(56)
Since F.sub.s and F.sub.c are related this is simpler in practice:
(57) TABLE-US-00005 Fc (MHz) Channel Scale Factor 3494.4 1 1/7 3993.6 2, 4 1/8 4492.8 3 1/9 6489.6 5, 7 1/13
As shown in
(58) In our preferred embodiment, we implement a register-based field programmable gear shifting mechanism. Ten gears may be configured; one is reserved for demodulation mode, allowing nine acquisition gears. Each gear is assigned: a count at which it is activated; a K.sub.p value; and a K.sub.i value. Writing a value of logic_0 as the count for a gear other than the first gear terminates the gear shifting table; whilst still switching to the demodulation gear when the acquisition phase is over. Note that two sets of demodulation coefficients must be specified, one for the 110 Kbps data rate case, and one for the 850K and 6.81 Mbps cases. The default values for each of the available programmable registers are given in the following table:
(59) TABLE-US-00006 TABLE 4 Timing Estimator Default Programmable Gear Shifting Register Values Default Register Value Count [9:0] K.sub.i [14:10] K.sub.p [19:15] TR0 0XF8000 0 0 31 TR1 0x8141E 30 5 16 TR2 0X58428 40 1 11 TR3 0X00000 0 0 0 TR3 0X00000 0 0 0 TR5 0X00000 0 0 0 TR6 0X00000 0 0 0 TR7 0X00000 0 0 0 TR8 0X00000 0 0 0 TR9 0X5A161 N/A ⅛ (110 Kbps) 11 where: Value comprises a 20-bit variable expressed in hexadecimal format; Count comprises bits [9:0] of the Value; Ki comprises bits [14:10] of the Value; and Kp comprises bits [19:15] of the Value.
The K factors are coded as follows:
(60) TABLE-US-00007 TABLE 5 Gear Shifting Register Value Decode Minimum Maximum Decode Count 1 1023 Sample count on which to apply gearing values Ki 0x00 0x1F 0x00 = 00 0x01 = 1 × 2.sup.−7 0x1F = 31 × 2.sup.−7 Kp 0x00 0x1F 0x00 = 00 0x01 = 1 × 2.sup.−7 0x1F = 31 × 2.sup.−7
Computing Angle of Incidence:
(61) In a practical coherent receiver, it is necessary to track the carrier of the transmitter. For example, in the system of
(62) We propose two ways to solve the ambiguity in solutions that occurs at an antenna separation of more than ½ a wavelength. First, we measure the time of arrival of the packet at each antenna. The angle of incidence that is most consistent with the measured time of arrival differences is the one chosen. Take the example shown in
(63) Even if the two receivers 70a and 70b are fed from the same clock, it may happen that the delay of this clock to one receiver is different to the delay to the other receiver. In this case there will be a fixed phase difference between the carriers. However, this phase difference can be calibrated, e.g., by measuring a at a known angle of arrival and subtracted from a, before applying the formula of Eq. 6.
(64) Rather than supplying the two different PLLs, 76a and 76b, with the common crystal 72, there are other ways to synchronize the receivers 70, e.g, the two receivers 70a and 70b could be synchronized by supplying both with a clock from a single PLL, e.g., the PLL 76a.
(65) Although we have described our invention in the context of particular embodiments, one of ordinary skill in this art will readily realize that many modifications may be made in such embodiments to adapt either to specific implementations. By way of example, it will take but little effort to adapt our invention for use with a different ADC scheme when it can be anticipated that the target application will not be subject to significant levels of in-channel CW interference. Further, the several elements described above may be implemented using any of the various known semiconductor manufacturing methodologies, and, in general, be adapted so as to be operable under either hardware or software control or some combination thereof, as is known in this art. Alternatively, the several methods of our invention as disclosed herein in the context of special purpose receiver apparatus may be embodied in computer readable code on a suitable computer readable medium such that when a general or special purpose computer processor executes the computer readable code, the processor executes the respective method.
(66) Thus it is apparent that we have provided an improved method and apparatus for use in the receiver of a UWB communication system to determine angle of incidence. In particular, we submit that such a method and apparatus should provide performance generally comparable to the best prior art techniques but more efficiently than known implementations of such prior art techniques.