Carrier frequency offset (CFO) compensation for wireless channel sounding or other ranging
By maintaining a record of per-frequency CFO values through multiple ranging subevents, devices can effectively compensate for CFO, enhancing the accuracy of distance determination in wireless ranging processes.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- GOOGLE LLC
- Filing Date
- 2024-10-25
- Publication Date
- 2026-04-30
AI Technical Summary
Existing ranging processes using wireless signaling between devices suffer from carrier frequency offset (CFO) issues due to unsynchronized local oscillators, leading to decreased signal-to-noise ratio and inaccurate distance determination.
Devices engage in a preliminary synchronization process on a small set of randomly selected test frequencies, maintaining a record of per-frequency CFO values over multiple ranging subevents, and use this record to statistically determine a representative CFO value for improved compensation.
This approach enhances CFO compensation by providing a more accurate and representative CFO value, improving the precision of distance determination and reducing signal interference.
Smart Images

Figure US2024052985_30042026_PF_FP_ABST
Abstract
Description
Carrier Frequency Offset (CFO) Compensationfor Wireless Channel Sounding or Other RangingBACKGROUND
[0001] An electronic device, such as a phone, tablet, gaming device, wearable device and / or other device, may be equipped with ranging technology that enables the device to determine how far away from the device another device is located, and perhaps where the other device is positioned (e.g., an orientation of the distance). This ranging technology may help facilitate various useful features.
[0002] For example, the ranging may help facilitate determining which one or more devices are nearby, to facilitate proximity -based sharing of photos or other content with select nearby devices. For instance, a user’s device may engage in ranging to identify each other device that is within a predefined threshold close distance to the user’s device and may then present on a display, for the user to see, the identity of each identified nearby device, to allow the user to decide which nearby device(s) to share content with.
[0003] As another example, the ranging may help facilitate person-to-person meetups, such as helping to guide users toward each other. For instance, a first user’s device may apply ranging to determine how far away a second user’s device is located and to determine an angle at which the second user’s device is located in relation to an orientation of the first user’s device. Based on the results of that ranging, the first user’s device may then present on a display, for the first user to see, a graphical depiction of distance and direction to the second user’s device, and the first user may then conveniently use that graphical depiction as a basis to move closer to the second user.
[0004] As still another example, the ranging may help facilitate unlocking of a secure system. For instance, a user’s device may include a digital key that enables unlocking of a secure system such as a car or a house and that is configured to unlock the secure system only if and when the user’ s device is close enough to the secure system, such as when the user’ s device is positioned within a predefined threshold short distance from the secure system. In that case, the user’s device may apply ranging to determine how close the user’s device is to the secure system and, responsive to determining from that ranging that the user’s device is close enough to the secure system, may then allow use of the digital key to unlock the secure system.
[0005] Other examples are possible as well.SUMMARY
[0006] Some ranging processes may make use of wireless signaling transmitted between the devices at particular carrier frequencies. Without limitation, an example of such a ranging process may involve the devices hopping through a predefined series of frequencies, exchanging constant-tone transmissions with each other at each frequency, measuring one or more properties of those transmissions, and using those measurements as a basis to compute distance between the devices. To facilitate this or other such ranging processes, each of the devices may be equipped with a respective local oscillator that the device can programmatically set to each of various desired frequencies.
[0007] A ranging process that involves the devices engaging in wireless signaling with each other at particular frequencies may assume tight frequency synchronization between the devices. Unfortunately, however, the local oscillators of the devices may not be sufficiently synchronized with each other. In particular, there may be some carrier frequency offset (CFO) defining a difference in frequency, i.e., a carrier mismatch, between the local oscillators of the two devices. And unfortunately, this CFO is likely to decrease signal -to-noise ratio (SNR) and to adversely impact the ranging process and the ultimate distance determination and / or may cause other issues.
[0008] One way to address this CFO problem is to have the devices engage in a synchronization process with each other before they engage in substantive ranging communication with each other. For instance, in an arrangement where the devices will hop through a sequence of frequencies and engage in signaling with each other on those frequencies to facilitate computing their distance, the devices may first engage in a preliminary synchronization process with each other on a small set of frequencies, such as two or three randomly selected test frequencies (e.g., center frequencies of randomly selected test channels).
[0009] An example of this synchronization process as between first and second devices may involve the first device using its local oscillator to generate a constant tone as a sync signal of a given test frequency and transmitting that signal to the second device, and the second device receiving that transmitted sync signal, determining a CFO of the received sync signal from the intended test frequency, and then setting itself to use that determined CFO as a compensation value to bias its subsequent ranging signaling with the first device. Further, carrying out this process on, say, two or three test frequencies, the receiving device mayaverage the determined CFO values, or possibly select one of the determined CFO values as a representative CFO value, to use for the subsequent ranging signaling.
[0010] The devices may usefully engage in this preliminary synchronization process with each other on just a small set of test frequencies so that the synchronization process would happen quickly enough to not create an unreasonable delay before the devices start their substantive ranging signaling with each other.
[0011] Unfortunately, however, this creates yet another technical problem. In particular, if the devices engage in this synchronization process on just a small set of test frequencies, the associated CFO determination may be specific to that small set of test frequencies. Yet it turns out that CFO may not be flat across all frequencies but may vary from frequency to frequency based on various factors. Therefore, limiting the synchronization process to be based on just a quick evaluation conducted on a small set of test frequencies may yield a CFO determination that is not sufficiently representative of actual CFO that the devices may actually experience during their ranging signaling with each other.
[0012] The present disclosure provides useful technical mechanisms to help address this issue.
[0013] In one respect, the disclosure addresses a scenario where the devices at issue will repeatedly engage in synchronization and ranging with each other. In particular, an example scenario may involve a series of “ranging subevents”, with each subevent including (i) the devices first engaging in the synchronization process with each other on a small set of randomly selected test frequencies and (ii) the devices then engaging in ranging signaling with each other possibly on multiple frequencies, such as hopping through a series of frequencies for instance.
[0014] In this example scenario, at least one of the devices will maintain a record of per-frequency CFO values determined through multiple ranging subevents, particularly through multiple instances of the synchronization process each conducted in a respective one of the multiple ranging subevents. Namely, for each of multiple ranging subevents, when the devices engage in the synchronization process on a small set of test frequencies randomly selected for that ranging subevent, one of the devices could record for each test frequency of that set a thereby-determined respective CFO value. As a result, the device could thus build a record of per-frequency CFO values over time based on multiple instances of the synchronization process each conducted on respective small sets of test frequencies randomly selected for a respective ranging subevent. The device may thereby build a record of per-frequency CFO values for many frequencies, not limited to the small set of test frequencies used in the synchronization process of just a single ranging subevent.
[0015] Having thereby built this record over time (and perhaps continuing to do so), the device may then make good use of this record to improve its CFO compensation. For example, the device may statistically roll up the CFO values across all frequencies in the record to produce a representative CFO value, such as a median CFO value, and the device may use that representative CFO value to compensate in its ranging signaling with the other device moving forward. As another example, if the device has thereby built a record of per-frequency CFO values for some or all of the frequencies through which the devices may then hop for their ranging signaling, the device may even apply potentially different CFO compensation separately per frequency, applying for each frequency the CFO value that the device has recorded respectively for that frequency. Other arrangements may be possible as well.
[0016] Alternatively or additionally, the device could build such a record of per-frequency CFO values based on evaluation of the ranging signaling that the devices exchange with each other, also possibly over the course of multiple ranging subevents. For instance, over the course of one or more ranging subevents, as the device receives from the other device ranging signals that are intended to be on particular frequencies, the device may not only use those ranging signals to facilitate the computation of distance, but may also evaluate those ranging signals to determine per-frequency CFO values. The device may thus establish its record of per-frequency CFO values based on the device’s evaluation of CFO as to these ranging signals over time. And the device may similarly use this record of per-frequency CFO values to facilitate improved CFO compensation as noted above.
[0017] Further alternatively or additionally, the device could build such a record of per-frequency CFO values based on its evaluation of phase change over time for samefrequency transmissions from the other device. This may be practical, for instance, where, for each of various frequencies throughout the ranging process, the other device would transmit a constant tone of that frequency across sequential timeslots, possibly as a security measure. For each frequency on which the device receives from the other device a transmission on a given frequency across two such timeslots, the device may measure phase of the received transmission respectively in each timeslot, and the device may determine a delta between those phases and may then translate that delta to a CFO value for that frequency, which the device may include in its record of per-frequency CFO values. The device may then similarly use this record of per-frequency CFO values to facilitate improved CFO compensation as noted above.
[0018] These, as well as other aspects, advantages, and alternatives, will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying drawings. Further, it should be understood that the disclosure provided here and elsewhere in this document is provided by way of example only and that numerous variations and other examples may be possible as well.BRIEF DESCRIPTION OF THE DRAWINGS
[0019] Figure 1 is a simplified diagram illustrating example use of synchronization signaling over time as a basis to engage in CFO compensation.
[0020] Figure 2 is a timing diagram illustrating signaling in example Bluetooth Channel Sounding.
[0021] Figure 3 is an illustration of an example running table of per-BLE-channel CFO values.
[0022] Figure 4 is a simplified diagram illustrating example use of ranging signaling over time as a basis to engage in CFO compensation.
[0023] Figure 5 is a flow chart depicting an example method.
[0024] Figure 6 is a simplified block diagram of an example device.DETAILED DESCRIPTION
[0025] This description will discuss example ranging using Bluetooth technology. It should be understood, however, that the arrangements and processes described could take various other forms. For instance, the disclosed principles could extend to apply with respect to other wireless technologies and / or other forms of ranging. Further, disclosed elements and operations could be re-ordered, distributed, replicated, combined, omitted, added, or otherwise modified. Still further, elements described as functional entities could be implemented as discrete or distributed components or in conjunction with other components / modules, and in any suitable combination and location. In addition, various operations described as being carried out by one or more components or other entities could be implemented by and / or on behalf of those entities, through hardware, firmware, and / or software, such as by one or more processing units executing program instructions stored in memory, among other possibilities.Overview
[0026] Figure l is a simplified diagram illustrating by way of example how a first device could use its signaling with a second device over time as a basis to engage in CFOcompensation when engaging in ranging signaling with the second device. In this example, the first and second devices may be engaged in an ongoing ranging process, with first device repeatedly determining its distance from the second device for purposes of tracking movement and proximity. In this process, as shown in Figure 1, signaling between the first and second devices over time may define a series of ranging subevents each including synchronization signaling followed by ping-pong ranging signaling.
[0027] The synchronization signaling in each ranging subevent may include the second device transmitting to the first device a synchronization signal respectively on the center frequency of each of a few randomly selected synchronization channels, and the ping-pong ranging signaling in each ranging subevent may then include back and forth signaling between the devices on many channels defined by a channel map.
[0028] As shown, the first device may determine, respectively for each randomly selected synchronization channel, a CFO value for that channel. Thus, as the first device and second device engage in their synchronization signaling in each ranging subevent, the first device may record its determined CFO respectively for each randomly selected synchronization channel used in that ranging subevent. The first device may then use one or more such CFO values as determined in one ranging subevent as a basis for CFO compensation that the first device applies in a subsequent ranging subevent.
[0029] For instance, with the arrangement shown, in a first ranging subevent, the randomly selected synchronization channels are labeled Cl, C2, and C3, and in a second ranging subevent, the randomly selected synchronization channels are labeled C4, C5, and C6. Thus, over the course of those first and second ranging subevents, the first device may build up data that indicates the first device’s determined CFO respectively for each of channels Cl, C2, C3, C4, C5, and C6.
[0030] In turn, in a subsequent, Nth, ranging subevent, the first device may then make use of the CFO that the first device determined in one or more earlier subevents such as in the first and second subevents for instance. For instance, in a third ranging subevent, the first and second devices may engage in the synchronization process on channels C7, C8, and C9, the first device may usefully compute an average of the CFO that the first device determined respectively for channels Cl, C2, C3, C4, C5, C6, C7, C8, and C9, and the first device may usefully apply that average CFO to compensate in the ping-pong ranging signaling in the Nth subevent. Compensating for CFO in a given ranging subevent based on CFO determined over time in one or more earlier ranging subevents may thereby improve the ranging process, byavoiding having the CFO compensation be based merely on CFO determined on the few channels of the synchronization process in the current ranging subevent.Bluetooth Channel Sounding
[0031] One type of ranging technology that is of particular interest makes use of the Bluetooth radio found in many devices today, specifically the Bluetooth Low Energy (BLE) protocol, an example of which is defined by the Bluetooth Core Specification v. 6.0, adopted by the Bluetooth Special Interest Group (BT SIG) in August 2024. Namely, based on BLE signaling between a first device and a second device, the first device may determine (i.e., estimate) a distance between the first device and the second device, which may facilitate various distance-based services such as those noted above.
[0032] BLE signaling can support highly accurate determination of distance between the first device and second device, using a procedure known as Bluetooth Channel Sounding (BCS) also referred to as High Accuracy Distance Measurement (HADM).
[0033] BCS itself makes use of a procedure called Multi-Carrier Phase Difference (MCPD), which involves measuring the phase shift respectively of each of multiple predefined Bluetooth tones transmitted between “initiator” and “reflector” devices (e.g., the first and second devices) and determining the distance between the devices based on a difference between those phase shifts.
[0034] For instance, sequentially as to each of multiple Bluetooth channels (i.e., predefined Bluetooth frequency channels) in an agreed hopping sequence, (i) the initiator may generate and transmit to the reflector a constant tone signal at the center frequency of the channel, (ii) the reflector may responsively generate and transmit to the initiator a constant tone signal also at the center frequency of the channel, and (iii) the initiator may determine a phase shift (or phase rotation) of the channel based on a mathematical combination of the initiator’s receive phase of the reflector-transmitted constant tone signal and the reflector’s receive phase of the initiator-transmitted constant tone signal. Using a mathematical relationship between distance and difference in phase shifts computed at various frequencies, the initiator may then compute the distance between it and the reflector with a high degree of accuracy based on a comparison of its determined phase shifts at various Bluetooth channels.
[0035] To facilitate BCS, the devices may first engage in a discovery process to learn that they are in close enough proximity to each other, and the devices may then establish and maintain a BLE connection with each other through which they can configure the ranging process and share information related to the ranging process.
[0036] For instance, the reflector may advertise its presence by repeatedly broadcasting a BLE advertisement message on certain predefined BLE channels, and the initiator may scan those channels and thereby determine based on the received strength of the advertisement message (e.g., received signal strength indicator (RSSI)) that the reflector is close enough to facilitate ranging. Upon determining that the reflector is close enough to facilitate ranging, the initiator and reflector may then exchange directed advertisement messaging with each other to establish a BLE connection.
[0037] With this BLE connection established, the initiator and reflector may then engage in the BCS process, using their BLE connection as a basis to configure the BCS process and perhaps to share measurements and possible results of the BCS process.
[0038] In terms of configuring the BCS process, the initiator and reflector may first agree with each other on a Long Term Key (LTK) that they will use as a basis to secure their associated communications with each other. For instance, the initiator may generate this LTK and may transmit the LTK to the reflector through their established BLE connection. The initiator and reflector may then each use that same LTK as a basis to facilitate encryption and decryption of their communications with each other related to the BCS process. For instance, they may each generate an encryption key based on the LTK and other data, so that one of them may then use the generated encryption key to encrypt data destined to the other, and the other may use the same encryption key as a basis to decrypt and uncover the encrypted data. Alternatively, asymmetric encryption and / or other procedures could be used.
[0039] Further, the initiator and reflector may work with each other to agree on various operational parameters of the BCS process. Among other possible examples, for instance, the initiator and reflector may agree on a pseudo-random hopping sequence of the BLE channels that they will use for the BCS process. To do so in an example implementation, the initiator and reflector may agree on a seed value that they will each feed into a common algorithm to establish an agreed pseudo-random hopping sequence of the available BLE channels. For instance, the initiator may generate the seed value, encrypt the seed value with a key based on the LTK, and transmit the encrypted seed value through the established BLE connection to the reflector. The reflector may then receive the encrypted seed value and decrypt the encrypted seed value with a key based on the LTK to uncover the seed value. The initiator and reflector may thus both apply the same seed value as each other and the same algorithm as each other, to generate the same pseudo-random hopping sequence of BLE channels as each other, which they may then use accordingly in the BCS process.
[0040] As noted above, the BCS process may involve generating and transmitting constant tone signals between the devices at various BLE channels and using the difference in phase shift of those signals on those various channels as a basis to determine distance. The specifics of this process may vary from implementation to implementation.
[0041] Without limitation, in one example implementation, the devices may conduct this process across the entire set of available BLE channels. For instance, this may include 37 available BLE channels spaced apart by 2 MHz or 72 available BLE channels spaced apart by 1 MHz. Further, the devices may divide those channels into groups and conduct the BCS process separately per group to compute a respective distance determination per group, and the initiator may combine (e.g., average) those distance determinations to establish a statistically representative distance determination. Each instance of performing the BCS process as to a group of channels may be a separate ranging subevent.
[0042] As to each group of BLE channels (i.e., in each ranging subevent), the initiator may cycle through the channels, engaging in ping-pong signaling with the reflector and computing an associated phase shifts. For instance, successively on each BLE channel of the group, (i) the initiator may use its local oscillator to generate a constant tone signal at the center frequency of the channel and may transmit that constant tone signal in a ping message to the reflector, (ii) the reflector may report to the initiator the reflector’s receive phase of that ping signal, (iii) the reflector may further use its own local oscillator to generate a constant tone signal at the same center frequency and may transmit that constant tone signal in a “pong” message to the initiator, (iv) the initiator may determine the initiator’s receive phase of that pong message, and (v) the initiator may compute a phase shift of the BLE channel based on the reflector’s receive phase of the ping signal and the initiator’s receive phase of the pong signal.
[0043] As noted above, in the BCS process, the reflector could report to the initiator the reflector’s receive phase per BLE channel (i.e., the phase at which the reflector receives the initiator’s constant tone signal), to enable the initiator to compute the phase offset of that channel. The reflector can do so in various ways.
[0044] In an example implementation, for instance, after the devices complete their ping-pong messaging on the BLE channels of a given group, the reflector could then transmit to the initiator a message that specifies the reflector’s receive phase respectively for each of the initiator’s transmitted ping messages. Further, as to each group of BLE channels, the initiator could keep track of its own receive phase respectively for each of the reflector’s transmitted pong messages. Thus, once the initiator receives the reflector’s reported phase information forthe various BLE channels of the group, the initiator could proceed with the analysis noted above to compute distance between the initiator and the reflector.
[0045] Alternatively, the reflector may include within each pong message that it sends to the initiator an indication of the reflector’s receive phase for the associated ping message that the reflector received from the initiator. Other examples may be possible as well.
[0046] This BCS ping-pong messaging process assumes tight synchronization of frequency and timing between the initiator and the reflector. Unfortunately, however, the local oscillators and clocks of the initiator and reflector may not be sufficiently synchronized with each other. Therefore, in line with the discussion above, it may be best for the devices to engage in a synchronization process (e.g., a calibration process) with each other before they engage in their ping-pong signaling exchange and the associated distance determination. In particular, it may be best for the devices to engage in this synchronization process as an initial step respectively for each group of BLE channels on which they will engage in ranging, i.e., as part of each respective ranging subevent.
[0047] This synchronization process may involve the devices engaging in an exchange of sync signaling with each other on a small set of one or more randomly selected sync channels. Each such sync channel may be a particular one of the BLE channels that is randomly selected for use as the sync channel (possibly one of the BLE channels that the devices will also use as part of their pseudo-random hopping sequence for ranging in the BCS process), among other possibilities. For instance, for each ranging subevent, one of the devices may randomly select one to three such sync channels and may inform the other device of the selected sync channels and the sequence in which they will be used.
[0048] On each such sync channel, one device may use its local oscillator to generate a constant tone signal as a sync signal on the center frequency of the sync channel and may transmit that sync signal to the other device. The other device as recipient device may then receive this transmitted sync signal but may determine that the frequency of the signal as received is offset from what it perceives, based on its own local oscillator, to be the center frequency of the sync channel. The recipient device may therefore determine a fractional frequency offset as a CFO value defining a difference between received frequency of the sync signal and expected frequency of the sync signal, and the recipient device may then set itself to apply that determined CFO to bias its subsequent ping-pong signal exchanges with the first device.
[0049] Further, each such sync signal may also carry a bit pattern that the recipient device could use as a basis to calculate a clock / timing offset for use to compensate timing between the two devices as well. In addition, this process could be repeated with sync signaling in the other direction between the devices as well and / or the devices may engage in further signaling with each other to share the results of the synchronization process.
[0050] In some implementations, for security and / or other reasons, the devices may alternatively spread their sync signaling over multiple sync channels, e.g., multiple particular BLE channels designated as sync channels. For instance, the devices may engage in signaling on one sync channel to establish the fractional frequency offset, and the devices may engage in signaling on another sync channel to synchronize their timing, among other possibilities.
[0051] Accordingly, in an example implementation of the BCS process, for each group of BLE channels, the devices may first engage in this synchronization process to establish CFO respectively on each a small set of sync channels, the devices may then engage in the core BCS ping-ping exchange on their established pseudo-random sequence of BLE channels, and the reflector may then report its phase information per channel to the initiator. The synchronization signaling step and the core ping-pong exchange step could involve measuring round trip time (RTT) of signaling between the devices, and a Mode-3, which may allow Mode-1 and Mode-2 to be combined in a single step.) And as noted above, the initiator may then roll up the distance determinations made for the various groups of BLE channels, to establish an overall representative distance measure.
[0052] Figure 2 is a timing diagram illustrating how this process may operate in an example implementation, across an example set of BLE channels, as an example ranging subevent in a sequence of ranging subevents.
[0053] As shown in this figure, on three example BLE channels as sync channels, the devices may first engage in the Mode-0 synchronization process. For simplicity, the figure illustrates these three sync channels as being CH 0, CH 1, and CH 2. In more likely practice, these sync channels would be randomly selected from among the available BLE channels, with a new random selection of sync channels occurring respectively for each ranging subevent. A useful approach may be to randomly select the sync channels from among the set of BLE channels that will be used in the BCS process, i.e., from the BLE channels of the pseudorandom hopping sequence. Further, the small set of sync channels used for this purpose may be a number of channels other than three, but it will likely be no more than three to help avoid excess delay.
[0054] In the example synchronization process shown, on each sync channel, the initiator transmits a sync signal to the reflector that the reflector may use as a basis to establish CFO and timing offset, and the reflector transmits a sync signal to the initiator that the initiator may likewise use as a basis to establish CFO and timing offset. In practice, this synchronization process may alternatively be just one-way, such as from the reflector to the initiator, to allow the initiator to determine CFO per sync channel.
[0055] Given CFO thereby estimated respectively on each of these sync channels, the initiator may establish an overall representative CFO, such as an average of CFO over those three channels, or may select the CFO from the channel that had the highest receive sync-signal receive signal strength and that may therefore be most reliable. The initiator may then apply that representative CFO as a bias to compensate for the frequency offset between the initiator and reflector when they engage in their ping-pong exchange in this ranging subevent.
[0056] And as shown next, sequentially on each of multiple BLE channels established as a pseudo-random hopping sequence as noted above, the devices may then engage in the Mode-2 core BCS ping-pong exchange, with the initiator transmitting to the reflector a ping message including an initiator-generated constant tone signal, and the reflector responding by transmitting to the initiator a pong message including a reflector-generated constant tone signal. For simplicity, the figure shows this ping-pong ranging signaling occurring on ten BLE channels. In practice, the actual number of BLE channels used as a basis to compute distance could vary from that shown.
[0057] This figure does not expressly illustrate the Mode-3 reporting of receivephase information from the reflector to the initiator. As noted above, that step could occur after the Mode-2 core BCS ping-pong exchanges on the channels of the sequence or perhaps on the fly within the pong messages transmitted by the reflector.
[0058] Based on their ping-pong signaling exchange on the various BLE channels, the initiator may thereby determine with relatively high accuracy as noted above a distance between it and the reflector. The initiator may then use that determined distance as a basis to facilitate applications such as those noted above, among other possibilities. Further or alternatively, the initiator may report this determined distance to the reflector, and the reflector may use the determined / reported distance as a basis to facilitate such applications. For instance, the initiator may report its BCS-determined distance through the devices’ established BLE connection. The reflector may then use the determined distance likewise to determine whetherthe initiator is close enough to the reflector to justify action, such as unlocking a secure system, among other possibilities.
[0059] Note that some of the processing described in this document as being carried out by the initiator could be carried out alternatively by the reflector. Without limitation, for instance, based on the ping-ping constant-tone signal transmissions between the initiator and reflector, and based on measured and reported phase information, the reflector rather than the initiator may compute the distance between the devices. The reflector may then report that distance to the initiator for use, and / or the reflector may itself use the distance as a basis to facilitate a service. Other examples may be possible as well.Building and Using a Record Over Time of Per-Channel CFO
[0060] As noted above, the present disclosure provides an improved mechanism for CFO compensation. Namely, the disclosure provides for having a device build a record of per-frequency CFO values determined through multiple instances of the synchronization process over time, such as over the course of multiple ranging subevents, and using that record as a basis for CFO compensation.
[0061] As noted above, for instance, each ranging subevent may involve a respective synchronization process on a small set of test frequencies. With BCS, these test frequencies may be center frequencies of BLE channels, with the BLE channels being randomly selected as sync channels from available BLE channels, e.g., from the entire set of BLE channels that could be used for BCS ping-pong signaling, or from just the set of BLE channels that make up the devices’ pseudo-random hopping sequence for the subevent, among other possibilities. Alternatively, the BLE channels used in the sync process could be intentionally selected, possibly with a different group of BLE channels designated as sync channels respectively in each sequential subevent, and perhaps as mutually exclusive as possible to help diversify the CFO determination process over time.
[0062] In an example implementation, each time the initiator and reflector engage in the synchronization process with each other, e.g., over the course of multiple ranging subevents for a given instance of distance tracking or for other purposes, the initiator may record each per- per-BLE-channel CFO value determined in the synchronization process. For instance, the initiator may maintain a per-BLE-channel CFO table (e.g., table data structure) in which the initiator maps each of various BLE channels to a respectively determined CFO value. Each time the initiator and reflector go through a respective ranging subevent including thesynchronization process followed by ranging signaling, the initiator may then update the table based on the synchronization process of that ranging subevent.
[0063] For instance, if in one ranging subevent the devices engage in the synchronization process on channels CH 0, CH 1, and CH 2, the initiator may record in the table the CFO values that the initiator determined respectively for those BLE channels. Then if in the next ranging subevent the devices engage in the synchronization process on channels CH 3, CH 4, and CH5, the initiator may add to the table the CFO values that the initiator determined respectively for each of those BLE channels as well. This process may then continue over the course of even more ranging subevents, with the initiator updating the table accordingly based on the synchronization process respectively in each of multiple ranging sub events.
[0064] Figure 3 is a simplified example of a running table that the initiator may keep to map BLE channels to CFO values. As shown in the example of Figure 2, the table may list the various available BLE channels and may specify for each BLE channel a CFO value determined (i.e., estimated) for that BLE channel. Over the course of multiple ranging subevents, with possibly random selection of BLE sync channels in Mode-0 of each ranging subevent, the initiator may be able to fill in much or all of this running table. Further, as shown, the initiator may also maintain a running statistical representation of the various determined CFO values, such as a median or rolling average of the CFO values, among other possibilities.
[0065] To the extent the sets of one or more BLE channels that the initiator and reflector use for the synchronization processes in successive ranging subevents are mutually exclusive across the ranging subevents, the initiator may add to its record a new CFO value for each BLE channel used in the synchronization process of each ranging subevent. Further, if any BLE channels are reused in the synchronization processes across ranging subevents, the initiator may update its record of per-BLE-channel CFO values based on a combination of multiple CFO values determined per BLE channel. For instance, if the initiator and reflector use a given BLE channel in the synchronization processes of two or more ranging subevents, thereby establishing two or more CFO values (possibly different or possibly the same) for that BLE channel, the initiator may average or otherwise statistically roll up those CFO values to establish a new representative CFO value for that BLE channel and may update its record to indicate that new CFO value for the BLE channel. The initiator may make this a weighted average or weighted median, applying a higher weight for a more recently determined CFO value than for a less recently determined CFO value, and / or applying weights proportional toreceive signal strength of sync signals that formed the basis for determining the CFO values, among other possibilities.
[0066] The initiator may also retain per-BLE-channel CFO values in its record for just a predefined threshold period of time, to help ensure continued relevance of the CFO values. For instance, the initiator may monitor how long each CFO value respectively has been included in its record of per-BLE-channel CFO values, such as how long it has been since the CFO value was determined) and may automatically remove from its record any determined CFO value based on the initiator determining that the CFO value has been included in the record for at least the predefined threshold period of time.
[0067] In line with the discussion above, the initiator may make use of this record of per-BLE-channel CFO values as a basis to improve its CFO compensation.
[0068] For example, the initiator may statistically roll up the CFO values across all BLE channels in the record to produce a representative CFO value, such as an average or median CFO value as noted above for instance, and the initiator may use that representative CFO value to compensate in its ranging signaling with the reflector moving forward.
[0069] As to a given ranging subevent, the initiator may adjust its local oscillator by the representative CFO value and then engage in its ranging ping-pong signaling with the reflector using the adjusted local oscillator. The adjustment here may be a linear shift in frequency or may take other forms. For instance, if the representative CFO value indicates that the initiator’s observed frequency is offset from the reflector’s frequency by - Hz, the initiator may adjust its local oscillator by + / Hz in an effort to cancel out that offset. This adjustment may apply for sync signal transmission from the initiator to the reflector and / or for the initiator’s measuring of phase offset of sync signal reception from the reflector.
[0070] Alternatively, if the initiator has thereby built a record of per-BLE-channel CFO values for some or all of the frequencies through which the initiator and reflector may then hop for their ranging ping-pong signaling with each other, the initiator may apply potentially different CFO compensation separately per BLE channel. For instance, in a given ranging subevent, for each Mode-2 ping-pong exchange on a given BLE channel, the initiator may refer to its record of per-BLE-channel CFO values to find a CFO value that the initiator determined for that given BLE channel, possibly based on one or more synchronization processes in one or more past ranging subevents, and the initiator may adjust its local oscillator based on that CFO value. Thus, potentially for each BLE channel of the hopping sequence, theinitiator may apply a different respective CFO compensation, not limited to being based on just the CFO values determined in the synchronization process of the present ranging subevent.
[0071] The initiator can also enhance this process by dividing BLE channels into groups over multiple ranging subevents, so as to increase the number of synchronization processes over time and to thereby increase the number of BLE sync channels that the initiator could evaluate per unit time.
[0072] For instance, if the synchronization process per ranging subevent is limited to use of at most three BLE sync channels, and if the ranging ping-pong signaling per ranging subevent would occur on a hopping sequence of twenty BLE channels, then the initiator may establish three CFO values in the synchronization process associated with that ranging ping-pong signaling over twenty BLE channels. But if the initiator and reflector would instead divide those twenty BLE channels into two groups of ten BLE channels each, and engage in ranging ping-pong signaling on each group of ten BLE channels in a separate respective ranging subevent, then the initiator could establish six CFO values over the course of those ranging subevents, with ranging ping-pong signaling occurring on the twenty BLE channels divided among the ranging subevents.
[0073] The initiator may achieve this or a similar effect by configuring the BLE-channel hopping sequence per ranging subevent to be a smaller number of BLE channels than the initiator may otherwise configure. For instance, when working with the reflector to configure their ranging, the initiator may establish a BLE-channel hopping sequence of a length configured to help maximize how many CFO values the initiator will determine per unit time. This may thereby help the initiator build its record of per-BLE-channel CFO values more quickly than otherwise.Using Ping-Pong Ranging Signaling as Basis to Build aRecord Over Time of Per-Channel CFO
[0074] Further in line with the discussion above, the initiator could build its record of per-frequency CFO values based at least in part on the initiator’s ping-pong ranging signaling with the reflector, also possibly over the course of multiple ranging subevents.
[0075] For instance, over the course of one or more ranging subevents, as the initiator receives from the reflector ranging signals that are intended to be on particular frequencies, the initiator may not only use those ranging signals to facilitate computation of distance or the like as noted above, but may also evaluate those ranging signals to determine per-frequency CFO values. The initiator may thus establish its record of per-frequency values based on the initiator’s evaluation of CFO as to these ranging signals over time. And theinitiator may similarly use this record of per-frequency CFO values to facilitate improved CFO compensation as noted above.
[0076] With BCS, for instance, when the initiator and reflector engage in ranging ping-pong signaling with each other across a particular hopping sequence of BLE channels, the initiator may measure CFO on each of one or more of those BLE channels, based on a comparison of the intended frequency of transmission from the reflector to the initiator with the initiator’s observation of the received frequency of the transmission. The initiator may then establish or update its record (e.g., table) of per-BLE-channel CFO values based on each such measured CFO value.
[0077] The initiator may carry out this process as to a proper subset of the BLE channels in the hopping sequence or possibly as to all of BLE channels in the hopping sequence. For instance, as to some of the BLE channels in the hopping sequence, the initiator may apply no CFO compensation and may measure CFO. And as to other of the BLE channels in the hopping sequence, the initiator may apply CFO compensation based on the initiator’s record of per-BLE-channel CFO values. Other arrangements are possible as well.
[0078] The initiator’s record of per-BLE-channel CFO values may be based on a combination of (i) synchronization processes conducted over the course of multiple ranging subevents and / or (ii) ranging ping-pong signaling conducted over the course of one or more ranging subevents as well.
[0079] For instance, for each of one or more BLE channels in the initiator’s record, the record may map the BLE channel to a CFO value that the initiator determined based on one or more synchronization processes carried out between the initiator and the reflector. As noted above, for example, for use of the record in a given ranging subevent, this may be a CFO value that the initiator determined through the synchronization process in a preceding ranging subevent. Further, for each of one or more of the BLE channels in the initiator’s record, the record may map the BLE channel to a CFO value that the initiator determined based on its ranging ping-pong signaling between the initiator and the reflector and possibly further based on its synchronization signaling with the reflector. For example, the record may map a given BLE channel to a CFO value that the initiator determined for that channel from its ranging ping-pong signaling with the reflector in a preceding ranging subevent. And / or the record may map a given BLE channel to a CFO value that is an average or other rolled up combination of at least (i) a CFO value that the initiator determined for the channel based on one or morepreceding synchronization processes and (ii) a CFO value that the initiator determined based on one or more preceding instances of ranging ping-pong signaling with the reflector.
[0080] The initiator may apply principles like those discussed above, such as but not limited to retaining any such CFO values for up to a threshold time period, giving higher weight to more recently determined CFO values and / or CFO values determined from stronger signals, and using the record of per-BLE-channel CFO values to help compensate for CFO in the initiator’s ranging ping-pong signaling with the reflector.
[0081] Figure 4 is a simplified diagram illustrating how this process could work in an example implementation, as a variation on the arrangement of Figure 1. As shown in Figure 3, each ranging subevent includes synchronization signaling and then ping-pong ranging signaling. Based on an evaluation of the ranging signaling that the first device receives on respective channels in each of the first and second ranging subevents, the first device may determine and record per-channel CFO values. In turn, in the Nth ranging subevent, the first device may then make use of those earlier determined CFO values, such as by applying compensation based on an average of those CFO values, among other possibilities.Using Phase-Difference of Same-Channel Signal Over Timeas Basis to Build a Record Over Time of Per-Channel CFO
[0082] In addition, in line with the discussion above, the initiator may also evaluate phase change over time as a basis to compute per-frequency CFO values to include in its record of per-frequency CFO values. For example, if the initiator receives from the reflector multiple transmissions over time purportedly on the same frequency as each other, the initiator could compare the receive phases of those transmissions as a basis to determine CFO as to that frequency, and the initiator could update its record accordingly.
[0083] With BCS, this may be especially practical where, for each of various BLE channels that the initiator and reflector would use in their ranging ping-pong signaling with each other, the reflector would include an extra or extended constant-tone transmission to the initiator, i.e., transmitting a ranging signal to the initiator on the BLE channel and then providing a supplemental transmission to the initiator on the same BLE channel. Possibly for each ranging subevent or otherwise, the initiator and reflector may be configured with a secret pattern of these supplemental transmissions over time, for use to confirm security of their interaction, e.g., for the initiator to confirm that signals are coming from the reflector rather than from a rogue third party. Further, BCS may provide that no antenna switching would occur between these transmissions.
[0084] In an example implementation of BCS, these sequential transmissions may occur in timeslots of defined duration. In particular, the reflector’s ranging signal transmission may span that duration of a first timeslot, and the reflector’s supplemental transmission on the same BLE channel may span that duration of an immediately following “tone extension” slot.
[0085] In this arrangement by way of example, each time the initiator receives from the reflector a constant-tone ranging signal on a given BLE channel (i.e., center frequency of that channel) followed by a supplemental constant-tone transmission on the same BLE channel, the initiator may use one of those transmissions as a basis for ranging, e.g., for distance determination, and the initiator may use a difference between receive phases of those transmissions as a basis to compute CFO for that BLE channel.
[0086] CFO may give rise to phase rotation over time. Consequently, the magnitude of difference between receive phases of these two reflector transmissions may relate to the magnitude of CFO. In particular, if the duration of each timeslot is T, the CFO is Af, and the difference between receive phases of the reflector’s transmissions is Ao, the relationship between the phase difference and CFO may be Ao = (27t)(Af)(T). Therefore, the initiator may compute CFO as Af = Ao / (2TI)(T).
[0087] Accordingly, each time the initiator receives from the reflector a constanttone ranging signal on a given BLE channel followed by a supplemental constant-tone transmission on the same BLE channel, e.g., without an antenna change, the initiator may determine a difference between receive phases of those transmissions and may apply this relationship to compute CFO for that BLE channel. The initiator may then update its record of per-BLE-channel CFO values to account for this newly determined CFO value.
[0088] The initiator’s record of per-BLE-channel CFO values may be based on a combination of (i) synchronization processes conducted over the course of multiple ranging subevents, (ii) ranging ping-pong signaling conducted over the course of one or more ranging subevents, and / or (iii) this sort of evaluation of phase difference of same-frequency transmissions during Mode-2 signaling, among other possibilities.
[0089] Note that this mechanism for determining CFO may allow the initiator to determine CFO through post-processing by a host processor or the like, based on received phase data, without any change to the processing logic involved with the ranging process.
[0090] Further, the initiator may similarly apply principles like those discussed above, such as but not limited to retaining any such CFO values for up to a threshold time period, giving higher weight to more recently determined CFO values and / or CFO valuesdetermined from stronger signals, and using the record of per-BLE-channel CFO values to help compensate for CFO in the initiator’s ranging ping-pong signaling with the reflector.Example Method
[0091] Figure 5 is a flow chart illustrating an example method that could be carried out in line with the present disclosure to help improve CFO compensation in wireless ranging, such as but not limited to BCS.
[0092] As shown in Figure 5, at block 500, the method includes a first device engaging in wireless ranging with a second device, where the wireless ranging defines a plurality of ranging subevents each including a synchronization process followed by ranging ping-pong signaling. Further, at block 502, the method includes the first device determining CFO as part of the synchronization process conducted in a first instance of the ranging subevents. Further, at block 504, the method includes the first device applying CFO compensation as to the ranging ping-pong signaling in a second instance of the ranging subevents, where the second instance of the ranging subevents occurs after the first instance of the ranging subevents, and where the CFO compensation is based at least on the CFO determined as part of the synchronization process conducted in the first instance of the ranging sub events.
[0093] In line with the discussion above, the wireless ranging in this method could include Bluetooth Channel Sounding. Further, the synchronization process in each instance of the ranging subevents could include a Mode-0 process, and the ranging ping-pong signaling in each instance of the ranging subevents could include a Mode-2 process.
[0094] Further, as discussed above for instance, the method could involve maintaining in the first device a record, over multiple instances of the ranging subevents, of per-frequency CFO values, including the CFO determined as part of the synchronization process conducted in the first instance of the ranging subevents, and the act of applying the CFO compensation based at least on the CFO determined as part of the synchronization process conducted in the first instance of the ranging subevents comprises referring to the established record of per-frequency CFO values. For example, this could involve maintaining a table that correlates each of various frequencies with a respectively determined CFO value.
[0095] As additionally discussed above for instance, the act of applying the CFO compensation could involve computing a representative CFO value based on per-frequency CFO values in the record, and offsetting frequencies of the ranging-ping-pong signaling by the computed representative CFO value. Further, the ranging ping-pong signaling in the secondinstance of the ranging subevents could occur on a hopping sequence of frequencies, and the act of applying the CFO compensation could involve, for each of one or more frequencies in the hopping sequence, (i) referring to the record to determine a respective CFO value and (ii) offsetting the ranging ping-pong signaling on the frequency by the determined respective CFO value. Still further, as noted above, the act of applying the CFO compensation could involve adjusting a local oscillator in the first device.
[0096] In addition, as discussed above for instance, the method could include the first device determining further CFO based on the ranging ping-pong signaling conducted in the first instance of the ranging subevents. And in that case, the CFO compensation as to the ranging ping-pong signaling in the second instance of the ranging subevents could additionally be based on the further CFO determined as part of the ranging ping-pong signaling conducted in the first instance of the ranging subevents.
[0097] Moreover, as discussed above for instance, the method could include the first device determining further CFO based on phase difference of same-frequency transmissions received in the first instance of the ranging subevents. For example, this could be based on phase difference between a ranging-signal transmission on a given frequency and a tone extension signal on the same frequency, among other possibilities. And in that case, the CFO compensation as to the ranging ping-pong signaling in the second instance of the ranging subevents could additionally be based on the further CFO determined based on the phase difference of the same-frequency transmissions received in the first instance of the ranging sub events.
[0098] In alternative implementations, an example method could involve building and maintaining a record of per-frequency CFO values over time based on ranging ping-pong signaling, including possibly based on same-frequency transmissions received during the ranging ping-pong signaling, without separate synchronization processing, and then applying CFO compensation later based on the record of per-frequency CFO values.
[0099] Further, in alternative implementations, rather than maintaining a record of per-frequency CFO values overtime, a device may simply maintain a rolling average, median, or other statistically rolled-up representative CFO value over time, for use to facilitate CFO compensation in subsequent ranging ping-pong signaling. Other variations may be possible as well.Example Device Configuration
[0100] Figure 6 is a simplified block diagram of an example device, showing some of the components that the device may include. This device may be a first device in a wireless ranging process. For instance, the device may be an initiator or reflector in the wireless ranging process.
[0101] As shown, the device may include a wireless communication interface 600, a host processor 602, and non-transitory data storage 606. These components could be integrated together and / or communicatively linked together in various ways. For instance, the components could be linked together through a system bus, network, or other connection mechanism 606 and / or could be integrated together in various ways.
[0102] The wireless communication interface 500, which could be provided on a dedicated chipset among other possibilities, could include components that enable the device to engage in wireless communication through an antenna structure 508 of the device. To facilitate this, the wireless communication interface 600 could include a baseband processor 610 and non-transitory data storage 612.
[0103] The baseband processor 610 could include one or more general purpose processing units (e.g., microprocessors) and / or one or more specialized processing units (e.g., digital signal processors (DSPs), graphics processing units (GPUs), neural processing units (NPUs), etc.) And the non-transitory data storage 612 could comprise one or more volatile and / or non-volatile storage components (e.g., optical, magnetic, or flash storage, RAM, ROM, EPROM, EEPROM, cache memory, and / or other computer-readable media, etc.), possibly integrated in whole or in part with the baseband processor 610.
[0104] The non-transitory data storage 612 of the wireless communication interface 600 could hold program instructions 616 that may be executable by the baseband processor 610 to carry out various operations described herein.
[0105] Further, the wireless communication interface 600 could include a radio frequency front end (RFFE) 616 including amplifiers and possibly other circuitry, to interface between the baseband processor 610 and the antenna structure 608. As further shown, the RFFE 616 could include a local oscillator 618, which may be dynamically controllable by the baseband processor 610, e.g., to tune to various frequencies and also to compensate for CFO, among other possibilities.
[0106] The host processor 602 of the example device could likewise comprise one or more general purpose processors and / or one or more special-purpose processors. And thenon-transitory data storage 606 could likewise comprise one or more volatile and / or nonvolatile storage components, possibly integrated in whole or in part with the processor 602. Further, the non-transitory data storage 606 may store program instructions 620 that may be executable by the host processor 602 to carry out various operations described herein. With this arrangement, some operations of the device could be carried out by the wireless communication interface 600, while other operations of the device could be carried out by the host processor 602.
[0107] In addition, the present disclosure also contemplates non-transitory data storage (e.g., one or more non-transitory computer-readable medium components (e.g., optical, magnetic, or flash storage, RAM, ROM, EPROM, EEPROM, cache memory, and / or other computer-readable media, etc.)) holding program instructions executable by at least one processor of a device to cause the device to carry out various operations described herein.
[0108] Further, the present disclosure also contemplates a computer program comprising a set of program instructions executable by at least one processor of a device to carry out (e.g., to cause the device to carry out) various operations described herein, such as to perform the various operations of the example methods and variations discussed above. In an example implementation, the computer program could further be stored in non-transitory data storage such as that noted above, among other possibilities.
[0109] Example embodiments have been described above. Those skilled in the art will understand, however, that changes and modifications may be made to these embodiments without departing from the true scope and spirit of the invention.
Claims
CLAIMSWhat is claimed is:
1. A method for channel-frequency-offset (CFO) compensation comprising: engaging, by a first device, in wireless ranging with a second device, wherein the wireless ranging defines a plurality of ranging subevents each including (i) a synchronization process followed by (ii) ranging ping-pong signaling, the method comprising:determining, by the first device, CFO as part of the synchronization process conducted in a first instance of the ranging subevents; andapplying, by the first device, CFO compensation as to the ranging ping-pong signaling in a second instance of the ranging subevents, wherein the second instance of the ranging subevents occurs after the first instance of the ranging subevents, and wherein the CFO compensation is based at least on the CFO determined as part of the synchronization process conducted in the first instance of the ranging subevents.
2. The method of claim 1, wherein the wireless ranging comprises Bluetooth Channel Sounding.
3. The method of claim 1, wherein the synchronization process in each instance of the ranging subevents comprises a Mode-0 process, and wherein the ranging ping-pong signaling in each instance of the ranging subevents comprises a Mode-2 process.
4. The method of claim 1, further comprising maintaining, in the first device, a record, over multiple instances of the ranging subevents, of per-frequency CFO values, including the CFO determined as part of the synchronization process conducted in the first instance of the ranging subevents, wherein applying the CFO compensation based at least on the CFO determined as part of the synchronization process conducted in the first instance of the ranging subevents comprises referring to the established record of per-frequency CFO values.
5. The method of claim 4, wherein maintaining the record comprises maintaining a table that correlates each of various frequencies with a respectively determined CFO value.
6. The method of claim 4, wherein applying the CFO compensation comprises computing a representative CFO value based on per-frequency CFO values in the record, and offsetting frequencies of the ranging-ping-pong signaling by the computed representative CFO value.
7. The method of claim 4, wherein the ranging ping-pong signaling in the second instance of the ranging subevents occurs on a hopping sequence of frequencies, and wherein applying the CFO compensation comprises, for each of one or more frequencies in the hopping sequence, (i) referring to the record to determine a respective CFO value and (ii) offsetting the ranging ping-pong signaling on the frequency by the determined respective CFO value.
8. The method of claim 1, wherein applying the CFO compensation comprises adjusting a local oscillator in the first device.
9. The method of claim 1, further comprising:determining, by the first device, further CFO as part of the ranging ping-pong signaling conducted in the first instance of the ranging subevents,wherein the CFO compensation as to the ranging ping-pong signaling in the second instance of the ranging subevents is additionally based on the further CFO determined as part of the ranging ping-pong signaling conducted in the first instance of the ranging subevents.
10. The method of claim 1, further comprising:determining, by the first device, further CFO based on phase difference of samefrequency transmissions received in the first instance of the ranging subevents,wherein the CFO compensation as to the ranging ping-pong signaling in the second instance of the ranging subevents is additionally based on the further CFO determined based on the phase difference of the same-frequency transmissions received in the first instance of the ranging subevents.
11. A first device comprising:a wireless communication interface;at least one processor;at least one non-transitory data storage; andprogram instructions stored in the at least one non-transitory data storage and executable by the at least one processor to cause the first device to carry out operations for channel-frequency-offset (CFO) compensation, the operations including:engaging in wireless ranging with a second device, wherein the wireless ranging defines a plurality of ranging subevents each including (i) a synchronization process followed by (ii) ranging ping-pong signaling, the operations including:determining CFO as part of the synchronization process conducted in a first instance of the ranging subevents, andapplying CFO compensation as to the ranging ping-pong signaling in a second instance of the ranging sub events, wherein the second instance of the ranging sub events occurs after the first instance of the ranging subevents, and wherein the CFO compensation is based at least on the CFO determined as part of the synchronization process conducted in the first instance of the ranging subevents.
12. The first device of claim 11, wherein the at least one processor is part of the wireless communication interface.
13. The first device of claim 11, wherein the synchronization process in each instance of the ranging subevents comprises a Mode-0 process, and wherein the ranging ping-pong signaling in each instance of the ranging subevents comprises a Mode-2 process.
14. The first device of claim 11, wherein the operations additionally include maintaining in the first device a record, over multiple instances of the ranging subevents, of per-frequency CFO values, including the CFO determined as part of the synchronization process conducted in the first instance of the ranging subevents, wherein applying the CFO compensation based at least on the CFO determined as part of the synchronization process conducted in the first instance of the ranging subevents comprises referring to the established record of per-frequency CFO values.
15. The first device of claim 14, wherein maintaining the record comprises maintaining a table that correlates each of various frequencies with a respectively determined CFO value.
16. The first device of claim 14, wherein applying the CFO compensation comprises computing a representative CFO value based on per-frequency CFO values in the record, and offsetting frequencies of the ranging-ping-pong signaling by the computed representative CFO value.
17. The first device of claim 14, wherein the ranging ping-pong signaling in the second instance of the ranging subevents occurs on a hopping sequence of frequencies, and wherein applying the CFO compensation comprises, for each of one or more frequencies in the hopping sequence, (i) referring to the record to determine a respective CFO value and (ii) offsetting the ranging ping-pong signaling on the frequency by the determined respective CFO value.
18. The first device of claim 11, wherein the operations additionally include: determining further CFO as part of the ranging ping-pong signaling conducted in the first instance of the ranging subevents,wherein the CFO compensation as to the ranging ping-pong signaling in the second instance of the ranging subevents is additionally based on the further CFO determined as part of the ranging ping-pong signaling conducted in the first instance of the ranging subevents.
19. The first device of claim 11, wherein the operations additionally include: determining further CFO based on phase difference of same-frequency transmissions received in the first instance of the ranging subevents,wherein the CFO compensation as to the ranging ping-pong signaling in the second instance of the ranging subevents is additionally based on the further CFO determined based on the phase difference of the same-frequency transmissions received in the first instance of the ranging subevents.
20. At least one non-transitory computer-readable medium having stored thereon program instructions executable by at least one processor of a first device to cause the first device to carry out operations for channel-frequency-offset (CFO) compensation, the operations comprising:engaging in wireless ranging with a second device, wherein the wireless ranging defines a plurality of ranging subevents each including (i) a synchronization process followed by (ii) ranging ping-pong signaling, the operations comprising:determining CFO as part of the synchronization process conducted in a first instance of the ranging subevents; andapplying CFO compensation as to the ranging ping-pong signaling in a second instance of the ranging subevents, wherein the second instance of the ranging subevents occurs after the first instance of the ranging subevents, and wherein the CFO compensation is based at least on the CFO determined as part of the synchronization process conducted in the first instance of the ranging subevents.
21. A computer program comprising program instructions executable by a processor of the first device to perform a method according to any of claims 1-10.
Citation Information
Patent Citations
Bluetooth smart offset compensation
US20070010201A1