KALMAN FILTER BASED PHASE-LOCKED LOOP WITH RE-ENCODING BASED PHASE DETECTOR

20260106782 ยท 2026-04-16

    Inventors

    Cpc classification

    International classification

    Abstract

    A wireless communications device includes a receiver having a phase detector configured to extract frequency offset and provide a corresponding error signal generated based on a baseband version of a received radio frequency signal and an expected transmitted data signal. The receiver has a phase-locked loop configured to generate an error correction signal based on a phase of the error signal and a predicted instantaneous phase of the error signal. The receiver has a correction circuit configured to provide a corrected baseband version of the received radio frequency signal based on the baseband version of the received radio frequency signal and the error correction signal. The receiver may have a re-encoding-based processing circuit configured to provide the expected transmitted data signal based on a preliminarily decoded symbol.

    Claims

    1. A method for tracking frequency and phase offset in a receiver, the method comprising: generating an error correction signal based on a baseband version of a received radio frequency signal, a reference signal, and a predicted instantaneous phase signal; and providing a corrected baseband version of the received radio frequency signal based on the baseband version of the received radio frequency signal and the error correction signal.

    2. The method as recited in claim 1 further comprising: generating the reference signal, wherein in a training mode of operation of the receiver, the reference signal is generated based on predetermined samples, and wherein in a tracking mode of operation of the receiver, the reference signal is generated using a decoded symbol based on the corrected baseband version of the received radio frequency signal.

    3. The method as recited in claim 1 further comprising: processing the corrected baseband version of the received radio frequency signal using a modified Viterbi decoder; and generating the reference signal based on a preliminarily decoded symbol provided by the modified Viterbi decoder.

    4. The method as recited in claim 3 further comprising: providing the preliminarily decoded symbol by the modified Viterbi decoder at time index k based on a soft-decision symbol of the corrected baseband version of the received radio frequency signal at the time index k, wherein the modified Viterbi decoder has a plurality of states, each of the plurality of states has a corresponding accumulated path metric, and the preliminarily decoded symbol corresponds to a state of the plurality of states having a minimum accumulated path metric at the time index k.

    5. The method as recited in claim 3 wherein processing the corrected baseband version of the received radio frequency signal comprises: demapping the corrected baseband version of the received radio frequency signal to generate a soft-decision signal; decoding the soft-decision signal using the modified Viterbi decoder to generate the preliminarily decoded symbol; and mapping the preliminarily decoded symbol using a predetermined modulation scheme to generate the reference signal.

    6. The method as recited in claim 1 wherein generating the error correction signal comprises: generating an error signal based on the baseband version of the received radio frequency signal and the reference signal; generating a phase difference signal based on the phase of the error signal and a prior value of the predicted instantaneous phase signal; combining a proportional version of the phase difference signal with an integrated version of the phase difference signal to generate a predicted frequency signal; and integrating the predicted frequency signal to generate the predicted instantaneous phase signal.

    7. The method as recited in claim 6 wherein the proportional version of the phase difference signal and the integrated version of the phase difference signal are further combined with a signal indicative of frequency drift of the received radio frequency signal to generate the predicted frequency signal.

    8. The method as recited in claim 1 wherein the predicted instantaneous phase signal is based on a phase offset tracking signal, a frequency offset tracking signal, and a frequency drift tracking signal.

    9. The method as recited in claim 1 further comprising: generating the reference signal based on a feedback signal corresponding to a decoded symbol based on the corrected baseband version of the received radio frequency signal; and pausing an update of the error correction signal in response to a control signal indicative of a reliability of the feedback signal.

    10. A wireless communications device comprising: a receiver comprising: a phase-locked loop configured to generate an error correction signal based on a phase of an error signal and a predicted instantaneous phase of the error signal, the error signal being generated based on a baseband version of a received radio frequency signal and an expected transmitted data signal; and a correction circuit configured to provide a corrected baseband version of the received radio frequency signal based on the baseband version of the received radio frequency signal and the error correction signal.

    11. The wireless communications device as recited in claim 10 wherein the receiver further comprises: a phase detector configured to provide the error signal generated based on the baseband version of the received radio frequency signal and the expected transmitted data signal; and a re-encoding-based processing circuit configured to provide the expected transmitted data signal based on a preliminarily decoded symbol, wherein the re-encoding-based processing circuit comprises: a convolutional encoder configured to generate an encoded symbol based on the preliminarily decoded symbol; and a mapping circuit configured to map the encoded symbol to the expected transmitted data signal using a predetermined modulation scheme.

    12. The wireless communications device as recited in claim 10 wherein the receiver further comprises: a re-encoding-based processing circuit configured to provide the expected transmitted data signal based on a preliminarily decoded symbol; and a modified Viterbi decoder configured to provide the preliminarily decoded symbol at time index k based on a soft-decision symbol of the corrected baseband version of the received radio frequency signal at the time index k, wherein the modified Viterbi decoder has a plurality of states, each of the plurality of states has a corresponding accumulated path metric, and the preliminarily decoded symbol corresponds to a state of the plurality of states having a minimum accumulated path metric at the time index k.

    13. The wireless communications device as recited in claim 10 wherein the phase-locked loop comprises: a phase difference circuit configured to generate a phase error signal based on a phase of the error signal and the predicted instantaneous phase of the error signal; a proportional integral time-invariant controller responsive to the phase error signal; and an integrator configured to generate the predicted instantaneous phase of the error signal based on an output of the proportional integral time-invariant controller.

    14. The wireless communications device as recited in claim 13 wherein the proportional integral time-invariant controller is further responsive to a signal indicative of frequency drift of the received radio frequency signal.

    15. The wireless communications device as recited in claim 10 wherein the error correction signal is further based on a phase offset tracking signal, a frequency offset tracking signal, and a frequency drift tracking signal.

    16. The wireless communications device as recited in claim 10 further comprising: a circuit configured to pause an update of the phase-locked loop in response to a control signal indicative of a reliability of a feedback signal used to generate the expected transmitted data signal.

    17. A method for recovering data transmitted using a radio frequency signal, the method comprising: generating an estimate of frequency and phase offset of a received radio frequency signal; correcting the received radio frequency signal using the estimate of frequency and phase offset to generate a corrected baseband version of the received radio frequency signal; and pausing an update of the estimate of frequency and phase offset in response to a control signal indicative of a reliability of a feedback signal used to generate the estimate of the frequency and phase offset.

    18. The method as recited in claim 17 wherein the estimate of frequency and phase offset is generated by a Kalman filter based phase-locked loop, the method further comprising: training the Kalman filter based phase-locked loop using predetermined symbols of a Bluetooth Low Energy packet of the received radio frequency signal in a first mode of operating a receiver, wherein the Bluetooth Low Energy packet is transmitted using quadrature amplitude modulation or phase-shift keying modulation.

    19. The method as recited in claim 17 wherein the estimate of the frequency and phase offset is based on a reference signal, the method further comprising: processing the corrected baseband version of the received radio frequency signal using a modified Viterbi decoder; generating the reference signal based on a preliminarily decoded symbol provided by the modified Viterbi decoder; and providing the preliminarily decoded symbol by the modified Viterbi decoder at time index k based on a soft-decision symbol of the corrected baseband version of the received radio frequency signal at the time index k, wherein the modified Viterbi decoder has a plurality of states, each of the plurality of states has a corresponding accumulated path metric, and the preliminarily decoded symbol corresponds to a state of the plurality of states having a minimum accumulated path metric at the time index k.

    20. The method as recited in claim 19 wherein the estimate of frequency and phase offset is further based on a signal indicative of frequency drift of the received radio frequency signal.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0007] The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.

    [0008] FIG. 1 illustrates a functional block diagram of an exemplary wireless communications system.

    [0009] FIG. 2 illustrates a functional block diagram of the exemplary wireless communications transmitter of FIG. 1.

    [0010] FIG. 3 illustrates a functional block diagram of the exemplary wireless communications receiver of FIG. 1.

    [0011] FIG. 4 illustrates a functional block diagram of a protocol stack executing on the exemplary wireless communications device of FIG. 1.

    [0012] FIG. 5 illustrates a functional block diagram of a demodulator including a Kalman filter based phase-locked loop for receiving phase-shift keying or quadrature amplitude modulated signals consistent with at least one embodiment of the invention.

    [0013] FIGS. 6A and 6B illustrate functional block diagrams of a Kalman filter based phase-locked loop for receiving phase-shift keying or quadrature amplitude modulated signals using a slice-based phase detector consistent with embodiments of the invention.

    [0014] FIG. 7 illustrates a waveform of predicted frequency as a function of sample index at the output of the proportional integral controller of FIGS. 6A and 6B consistent with at least one embodiment of the invention.

    [0015] FIG. 8 illustrates a waveform of predicted instantaneous phase as a function of sample index of FIGS. 6A and 6B consistent with at least one embodiment of the invention.

    [0016] FIG. 9 illustrates a quadrature phase-shift keying constellation of data in a received signal before filtering by a Kalman filter based phase-locked loop consistent with at least one embodiment of the invention.

    [0017] FIG. 10 illustrates a quadrature phase-shift keying constellation of data in the received signal after filtering by a Kalman filter based phase-locked loop consistent with at least one embodiment of the invention.

    [0018] FIG. 11 illustrates a functional block diagram of a demodulator including a Kalman filter based phase-locked loop for phase-shift keying or quadrature amplitude modulated signals using a Kalman filter based phase-locked loop with a re-encoding-based phase detector consistent with at least one embodiment of the invention.

    [0019] FIG. 12 illustrates a functional block diagram of a Kalman filter based phase-locked loop with a re-encoding-based phase detector consistent with at least one embodiment of the invention.

    [0020] FIGS. 13A and 13B illustrate a functional block diagram of a Kalman filter based phase-locked loop with a re-encoding-based phase detector coupled to a modified Viterbi decoder consistent with various embodiments of the invention

    [0021] FIG. 14 illustrates a trellis diagram for an exemplary Viterbi decoder or an exemplary modified Viterbi decoder consistent with at least one embodiment of the invention.

    [0022] FIG. 15 illustrates exemplary timing diagrams for an exemplary modified Viterbi decoder having a traceback length of four and a modified Viterbi decoder having a preliminary traceback length of zero consistent with at least one embodiment of the invention.

    [0023] FIGS. 16 and 17 illustrate a third-order Kalman filter based phase-locked loop for receiving phase-shift keying or quadrature amplitude modulated signals consistent with at least one embodiment of the invention.

    [0024] FIG. 18 illustrates a functional block diagram of a demodulator including a Kalman filter based phase-locked loop and implementing a technique for reducing phase detector error consistent with at least one embodiment of the invention.

    [0025] The use of the same reference symbols in different drawings indicates similar or identical items.

    DETAILED DESCRIPTION

    [0026] Referring to FIG. 1, in at least one embodiment, wireless communications system 100 includes wireless communications device 102 and wireless communications device 116, which are devices compliant with the Bluetooth Low Energy (BLE) communications protocol or BLE High Data Throughput (BLE HDT) communications protocol designed for low power and low latency applications. Wireless communications device 102 includes transmitter 104, receiver 106, control & data processing circuitry 108, and memory 110. Wireless communications device 116 includes transmitter 118, receiver 120, control & data processing circuitry 126, and memory 124. Although wireless communications device 102 and wireless communications device 116 are illustrated as each including only one transmitter, one receiver, and two antennas, in other embodiments of wireless communications system 100, wireless communications device 102 or wireless communications device 116 includes multiple transmitters, multiple receivers, additional antennas, or a single antenna with internal circuitry selection or radio frequency switches. Wireless communications system 100 can communicate information using a predetermined wireless communications protocol, e.g., data using BLE communications protocol or BLE HDT communications protocol. However, in other embodiments, wireless communications system 100 can transmit and receive data compliant with other wireless communications protocols.

    [0027] FIG. 2 illustrates an exemplary embodiment of transmitter 104 that may be included in a physical radio of wireless communications device 102 or wireless communications device 116 of FIG. 1. Control & data processing circuitry 108 of FIG. 2 may perform a variety of functions (e.g., logic, arithmetic, etc.). For example, data processing circuitry 108 executes a program, routine, or algorithm (whether in software, firmware, hardware, or a combination thereof) that performs desired control or data processing tasks consistent with a physical layer of a communications protocol and provides data to modulator 228. Modulator 228 applies a predetermined modulation scheme (e.g., phase-shift keying (PSK) or quadrature amplitude modulation (QAM)) to data for transmission and provides modulated data to transmit baseband circuit 232, which in an embodiment includes a digital-to-analog converter and analog programmable gain filters. Transmit baseband circuit 232 provides the baseband (or intermediate frequency (IF)) signal to frequency mixer 234, which performs frequency translation or shifting of the baseband signal using a reference or local oscillator (LO) signal provided by local oscillator 236. In at least one operational mode of transmitter 104, frequency mixer 234 translates the baseband signal centered at DC to a 2.4 GHz frequency band. Pre-driver 238 amplifies the signal generated by frequency mixer 234 to a level sufficient for power amplifier 240. Power amplifier 240 further amplifies the signal to provide a higher power signal sufficient to drive passive network 242 and antenna 202. Passive network 242 provides impedance matching, filtering, and electrostatic discharge protection.

    [0028] FIG. 3 illustrates an exemplary embodiment of receiver 106 that may be included in a radio of the wireless communications devices described above. Antenna 202 provides a radio frequency (RF) signal to passive network 204, which provides impedance matching, filtering, and electrostatic discharge protection. Passive network 204 is coupled to low-noise amplifier 206, which amplifies the RF signal without substantial degradation to the signal-to-noise ratio and provides the amplified RF signal to frequency mixer 208. Frequency mixer 208 performs frequency translation or shifting of the RF signal using a reference or local oscillator signal provided by local oscillator 210. For example, in at least one operational mode of receiver 106, frequency mixer 208 translates the RF signal from a 2.4 GHz frequency band to baseband frequencies centered at DC (i.e., zero-intermediate frequency (ZIF) in a ZIF mode of operation). In another operational mode, receiver 106 is configured as a low-intermediate frequency (LIF) receiver (i.e., in a LIF mode of operation) and frequency mixer 208 translates the RF signal to a low-intermediate frequency (e.g., 100-200 kHz) to reduce or eliminate DC offset and 1/f noise problems of ZIF receivers.

    [0029] Frequency mixer 208 provides the translated output signal as a set of two signals, an in-phase (I) signal and a quadrature (Q) signal. The I and Q signals are analog time-domain signals. In at least one embodiment of receiver 106, the analog programmable gain amplifier and filters 212 provide amplified and filtered versions of the I and Q signals to analog-to-digital converter (ADC) 214, which converts those versions of the I and Q signals to digital I and Q signals (i.e., I and Q samples). Exemplary embodiments of ADC 214 use a variety of signal conversion techniques (e.g., delta-sigma (i.e., sigma-delta) analog-to-digital conversion). ADC 214 provides the digital I and Q signals to signal processing circuitry 218. In general, signal processing circuitry 218 performs digital signal processing (e.g., frequency translation (e.g., using digital mixer 216), filtering (e.g., using digital filters 220), demodulation, or signal correction) of the digital I and Q signals. In at least one embodiment, signal processing circuitry 218 includes demodulator 224, which recovers or extracts information from digital I and Q signals (e.g., data signals, that were modulated using phase-shift keying or quadrature amplitude modulation by modulator 228 of transmitter 104 of FIG. 2 and provided to antenna 202 as RF signals).

    [0030] Referring back to FIG. 3, control & data processing circuitry 108 may perform a variety of functions (e.g., logic, arithmetic, etc.). For example, control & data processing circuitry 108 may use the demodulated data in a program, routine, or algorithm (whether in software, firmware, hardware, or a combination thereof) to perform desired control or data processing tasks. In at least one embodiment, control & data processing circuitry 108, which includes memory 110, controls other circuitry, sub-system, or systems (not shown). In an embodiment, control & data processing circuitry 108 implements a data link layer that includes a state machine, defines state transitions, defines packet formats, performs scheduling, performs radio control, and provides link-layer decryption consistent with at least one wireless communications protocol. Transmitter 104 of FIG. 2 and receiver 106 of FIG. 3 are illustrative only and may vary with the communications protocol implemented by wireless communications system 100 of FIG. 1.

    [0031] Referring to FIGS. 1 and 4, in an embodiment, wireless communications device 102 includes separate integrated circuits for implementing functions of control & data processing circuitry 108, e.g., controller 302 and host 304. In some embodiments, wireless communications device 102 incorporates functionality of controller 302 and host 304 in a single integrated circuit device. Controller 302 and host 304 execute instructions to implement portions of a wireless communications network protocol stack. For example, controller 302 implements physical layer 306, which includes software that interacts with the RF transceiver (e.g., including the transmitter and receiver described above). Link layer 314 interfaces directly to physical layer 306 to handle transmission and reception of associated signals. In at least one embodiment, link layer 314 of controller 302 communicates with host 304 via host interface 316. Host 304 implements upper layers of the communications protocol stack (e.g., network layer 318, transport layer 320, and application layer 322). In other embodiments, the layers of the software protocol stack have different distributions between controller 302 and host 304 or are completely implemented using controller 302.

    [0032] Referring to FIGS. 3 and 5, in at least one embodiment, digital mixer 502 frequency shifts a digital intermediate frequency signal to baseband (e.g., ZIF) using a reference signal. Under ideal conditions, the baseband signal provided by mixer 502 is perfectly centered around DC. However, mismatch between the remote oscillator of the transmitting wireless communications device and the local oscillator of the receiving wireless communications device causes a frequency or phase offset in the baseband signal. Matched filter 504 increases the signal-to-noise ratio of the received signal but introduces a delay. During a first phase of receiver processing (e.g., during a short training sequence of a preamble sequence, i.e., n<n.sub.STS), coarse timing detection and frequency estimation 514 generates a coarse frequency correction custom-character to reduce the frequency offset. During a second phase of receiver processing (e.g., during a long training sequence of preamble sequence, i.e., n.sub.STS<nn.sub.LTS), fine timing detection and frequency and phase estimation 516 generates fine frequency error correction custom-character and initial phase estimate {tilde over ()} to further reduce the frequency or phase offset. The fine timing detection and frequency and phase estimation 516 also generates and supplies a channel estimate (h) to equalizer 507, which in an embodiment includes a linear minimum mean squared error (LMMSE) equalizer.

    [0033] In an embodiment, mixer 502 digitally mixes the received signal with a reference signal (e.g., a tone having a programmable frequency) generated by signal generator 512. Prior to detecting the short training sequence (i.e., nn.sub.STS), signal generator 512 is programmed to generate an intermediate frequency tone having frequency f.sub.if, which is used to down convert the received signal to baseband or DC using mixer 502. After detecting the short training sequence, but before detecting the long training sequence (i.e., n.sub.STS<nn.sub.LTS), signal generator 512 is programmed to a coarsely corrected value having frequency f.sub.if+custom-character to further down-convert the received signal and compensate for frequency offset. After detecting the long training sequence (i.e., n>n.sub.LTS), signal generator 512 is programmed to a finely corrected value having frequency f.sub.if+custom-character+custom-character. Signal generator 512 adjusts the reference signal by initial phase estimate {tilde over ()}, coarse frequency correction custom-character, or fine frequency correction custom-character, and thus, mixer 502 applies error correction to the received signal. Downsampler 506 generates received signal y[k], which is a version of the received signal that is downsampled from a sample space to a symbol space, and supplies received signal y[k] to the equalizer 507. Kalman filter based phase-locked loop 508, described in detail below, applies initial phase estimate {tilde over ()} to the received signal and corrects any residual phase error in corrected received signal y.sub.c[k], which is a phase-corrected version of received signal y[k]. Demapper/decoding/check circuit 510 recovers transmitted data from corrected received signal y.sub.c[k] using demapping, decoding, and error correction techniques.

    [0034] Referring to FIG. 6A, in at least one embodiment, Kalman filter based phase-locked loop 508 includes phase detector 620 and Kalman filter 622. In at least one embodiment, phase detector 620 multiplies received signal y[k] by a complex conjugate of a reference signal, i.e., an expected received signal, to extract frequency offset and generate error signal err[k]. In at least one embodiment, phase detector 620 includes select circuit 616, which selectively provides a predetermined signal, e.g., a signal based on the Access Address field of a BLE packet, as expected signal x.sub.p[k] to multiplier 602 according to sample index k. For example, if kn.sub.AAEND, then select circuit 616 provides a corresponding output of storage 608, e.g., samples of the predetermined Access Address (in Cartesian coordinates, i.e., real and imaginary values corresponding to the in-phase and quadrature values) as expected signal x.sub.p[k]. If k>n.sub.AAEND, then select circuit 616 provides the output of decision circuit 606 as expected signal x.sub.p[k].

    [0035] In at least one embodiment, decision circuit 606 generates expected signal x.sub.p[k], which is used as a reference signal, by comparing a corrected version of the received signal to predetermined modulated values and provides the nearest predetermined modulated value (in Cartesian coordinates, i.e., real and imaginary values corresponding to the in-phase and quadrature values) as expected signal x.sub.p[k]. In general, decision circuit 606 performs a slicing operation that maps the corrected version of the received signal, which includes noise, to the closest noise-free constellation point of the applicable modulation scheme (e.g., the constellation point of the applicable modulation scheme having the minimum Euclidian distance to the corrected received signal y.sub.c[k]).

    [0036] In at least one embodiment, CORDIC 604 converts error signal err[k] from Cartesian coordinates to polar coordinates using a COordinate Rotation DIgital Computer (CORDIC), which may be dedicated to a phase measurement implementation or shared with other operations of the receiver. In general, a CORDIC implements known techniques to perform calculations, including trigonometric functions (e.g., an arctangent function) and complex multiplies, without using a multiplier. The only operations the CORDIC uses are addition, subtraction, bit-shift, and table-lookup operations to implement the arctangent function. In other embodiments, a digital signal processor executing firmware or an arctangent circuit is used to convert error signal err[k] from Cartesian coordinates to polar coordinates.

    [0037] CORDIC 604 provides phase y.sub.k, as the input to Kalman filter 622. Kalman filter 622 determines residual phase error signal r.sub.k by computing the difference between phase y.sub.k and predicted instantaneous phase x.sub.k|k1. Phase difference circuit 624 provides residual phase error signal r.sub.k to a proportional integral time-invariant controller including a proportional path (represented by gain circuit 626) and an integral path (represented by gain circuit 628, accumulator 630, and register 614). Summing circuit 632 combines the outputs of the proportional path and the integral path and provides a predicted frequency signal to an integrator represented by accumulator 634 and register 612. The integrator provides the predicted instantaneous phase signal, {right arrow over (x(k|k1))}, to phase difference circuit 624 and to CORDIC 610, which converts the predicted instantaneous phase signal from polar coordinates to Cartesian coordinates for use as an error correction signal to be combined with received signal y[k] by correction circuit 618 to generate corrected received signal y.sub.c[k].

    [0038] In an embodiment, Kalman filter based phase-locked loop 508 can be modeled by defining a state

    [00001] x k .fwdarw. = [ x k x k ] ,

    where x.sub.k is instantaneous phase and {dot over (x)}.sub.k is frequency. The state transition model is

    [00002] x k + 1 .fwdarw. = F .fwdarw. x k .fwdarw. + W k .fwdarw. = [ 1 1 0 1 ] [ x k x k ] + [ w k w k ] .

    The observation model is

    [00003] y k = H .fwdarw. x k .fwdarw. + v k = [ 1 0 ] [ x k x k ] + v k = x k + v k .

    The prediction model is

    [00004] x ( k .Math. k - 1 ) .fwdarw. = [ x ( k .Math. k - 1 ) x ( k .Math. k - 1 ) . ] ; x ( k + 1 .Math. k ) .fwdarw. = F .fwdarw. x ( k .Math. k - 1 ) .fwdarw. + F .fwdarw. K k .fwdarw. r k ,

    where {right arrow over (F)} is the state transition matrix, {right arrow over (H)} is the observation matrix, v.sub.k is the phase variance, {right arrow over (K.sub.k)} is the loop gain vector,

    [00005] [ k k ] ,

    r.sub.k is the error that drives or controls the prediction, and r.sub.k=y.sub.k+{right arrow over (HX.sub.(k|k1))}. Register 612 is initialized with initial phase estimate 0, which is provided by fine timing detection and frequency and phase estimation 516.

    [0039] For an exemplary received signal y[k]=e.sup.j(.sup.m.sup.+2f.sup.os.sup.k+.sup.u.sup.) where .sub.m is the modulated phase for phase-shift keying, f.sub.OS is the frequency offset between the remote oscillator of the transmitter and the local oscillator of the receiver, and .sub.u is a random phase offset, the following table illustrates exemplary values in FIG. 6A, where the first two symbols (k=1 and k=2) correspond to predetermined Access Address values and the following three symbols (k=3, 4, 5) correspond to data symbols.

    TABLE-US-00001 y[k] xp[n] err[n] y.sub.k x.sub.k|k1 y.sub.c[k] [00006] e j 4 + 2 10 3 ( 1 ) + 5 [00007] e j 4 [00008] e j ( 2 10 3 ( 1 ) + 5 ) [00009] 2 10 3 ( 1 ) + 5 [00010] 2 10 3 ( 1 ) + 5 + 100 NA (AA) [00011] e j 3 4 + 2 10 3 ( 2 ) + 5 [00012] e j 3 4 [00013] e j ( 2 10 3 ( 2 ) + 5 ) [00014] 2 10 3 ( 2 ) + 5 [00015] 2 10 3 ( 2 ) + 5 + 1 0 0 - 1 5 0 NA (AA) [00016] e - j 4 + 2 10 3 ( 3 ) + 5 [00017] e - j 4 [00018] e j ( 2 10 3 ( 3 ) + 5 ) [00019] 2 10 3 ( 3 ) + 5 [00020] 2 10 3 ( 3 ) + 5 - 1 5 0 [00021] e - j 4 - 150 [00022] e - j 4 + 2 10 3 ( 4 ) + 5 [00023] e - j 4 [00024] e j ( 2 1 0 3 ( 4 ) + 5 ) [00025] 2 1 0 3 ( 4 ) + 5 [00026] 2 1 0 3 ( 4 ) + 5 - 1 2 0 [00027] e - j 4 - 120 [00028] e - j 3 4 + 2 1 0 3 ( 5 ) + 5 [00029] e - j 3 4 [00030] e j ( 2 1 0 3 ( 5 ) + 5 ) [00031] 2 1 0 3 ( 5 ) + 5 [00032] 2 1 0 3 ( 5 ) + 5 - 9 0 [00033] e - j 3 4 - 9 0

    [0040] Referring to FIG. 6B, in other embodiments of Kalman filter based phase-locked loop 508, the conversions between Cartesian coordinates and polar coordinates are performed outside of the loop, thereby decreasing computational complexity of Kalman filter based phase-locked loop 508. Decision circuit 607 and storage 609 provide outputs (e.g., a binary quantization of a demodulated signal and predetermined Access Address symbols, respectively) in polar coordinates. CORDIC 604 and CORDIC 610 perform the conversions between Cartesian coordinates and polar coordinates outside of the loop and phase detector 621 uses adder 603 to generate error signal err[k] based on the reference signal provided by decision circuit 607 or storage circuit 609 and the loop performs addition using adder 619 to determine the phase error and perform correction, respectively, instead of performing complex multiplications, as required by the embodiment of FIG. 6A. Referring to FIG. 6B, CORDIC 604 converts received signal y[k] from Cartesian coordinates to polar coordinates and CORDIC 610 converts the corrected signal from polar coordinates to Cartesian coordinates to generate corrected received signal y.sub.c[k].

    [0041] FIG. 7 illustrates an example of the predicted frequency signal at the output of summing circuit 632 of FIGS. 6A and 6B, where Kalman filter based phase-locked loop 508 maintains the predicted frequency of the residual signal at a negligible value after training of Kalman filter based phase-locked loop 508 to converge the predicted frequency of the residual signal to a negligible value as sample time increases. FIG. 8 illustrates an example of the predicted instantaneous phase signal x.sub.k|k1 at the output of the integrator represented by accumulator 634 and register 612 of FIGS. 6A and 6B where the predicted instantaneous phase signal has linear behavior as a function of sample time. FIG. 9 illustrates an example of received signal y[k] prior to Kalman filter based phase-locked loop 508 of FIGS. 5, 6A, and 6B. FIG. 10 illustrates an example of corrected received samples y.sub.c[k] output by Kalman filter based phase-locked loop 508 of FIGS. 5, 6A, and 6B where Kalman filter based phase-locked loop 508 reduces or eliminates rotation of the constellation caused by frequency and phase offset in the received signal. Thus, Kalman filter based phase-locked loop 508, which is a phase-locked loop having variable gain consistent with Kalman filter theory and has faster convergence than a conventional phase-locked loop with fixed gain, improves performance of a receiver in a wireless communications system (e.g., improves signal-to-noise ratio of the received signal and thus facilitates communications at increased information rates) in applications having data transmitted in bursts or packets, e.g., BLE.

    [0042] In other embodiments of a Kalman filter based phase-locked loop, performance is further improved by using a re-encoding-based decision circuit that can provide an improved reference signal in the tracking mode of operation instead of decision circuit 606. In at least one embodiment, a transmitter of the wireless communications system encodes data using a convolutional error-correcting code and a corresponding receiver of the wireless communications system uses soft-decision decoding techniques to recover the data. In an embodiment, transmitter 104 of FIG. 2 encodes data for transmission using a conventional forward error correction encoder implementing a non-systematic, non-recursive rate 12 code with constraint length K=4. In an exemplary embodiment, the initial state of the convolutional forward error correcting encoder is set to all zeros. Generator polynomials of the convolutional forward error correcting encoder are:

    [00034] G 0 ( x ) = 1 + x + x 2 + x 3 ; and G 1 ( x ) = 1 + x 2 + x 3.

    The bit produced by generator polynomial G0 (a0) is transmitted before transmitting the bit produced by generator polynomial G1 (a1). An input sequence of three consecutive zeros always brings the convolutional forward error correcting encoder back to its original state. This sequence is known as the termination sequence. A pattern mapper maps P bits output from the convolutional forward error correcting encoder into a symbol, where the value of P depends on the coding scheme in use. However, other encoding and mapping schemes may be used. Accordingly, receiver 106 of FIG. 3 includes a soft-decision decoder in demodulator 224 and uses reliability information for estimating transmitted symbols based on the received radio frequency signal.

    [0043] Referring to FIGS. 11 and 12, in an embodiment of demodulator 224, demapper/decoding/check circuit 510 includes log-likelihood ratio (LLR) soft-decision demapper and a conventional decoder that implements conventional maximum likelihood decoding and Viterbi decoding techniques. In an embodiment, demapper/decoding/check circuit 510 provides the demapped and decoded received symbols output by the Viterbi decoder to Kalman filter based phase-locked loop 508 for use in generating expected signal x.sub.p[k], which is used by the phase detector as a reference signal for generating phase y.sub.k. In the tracking mode of operation, phase detector 1119 extracts the frequency offset using decision circuit 1121. In an embodiment, demapper/decoding/check circuit 510 includes log-likelihood ratio (LLR) soft-decision demapper 1129, which demaps constellation points of a phase-shift keying or quadrature amplitude modulated signal according to a conventional technique. For example, LLR soft-decision demapper 1129 generates soft-decision outputs from corrected received signal y.sub.c[k]. In an embodiment, each corrected received symbol y.sub.c[k] includes an in-phase and quadrature component and LLR soft-decision demapper 1129 generates a corresponding soft decision output. In various embodiments, the soft decision outputs are [LLR.sub.0[k], LLR.sub.1[k]] for QPSK, [LLR.sub.0[k], LLR.sub.1[k], LLR.sub.2[k]] for 8-PSK, or [LLR.sub.0[k], LLR.sub.1[k], LLR.sub.2[k], LLR.sub.3[k]] for 16 QAM and are real values indicating a reliability of the decision.

    [0044] In an embodiment, demapper/decoding/check circuit 510 includes Viterbi decoder 1131, which implements a conventional Viterbi algorithm for decoding the soft-decision signal vi[k] where the bitstream has been encoded using a convolutional code or trellis code. Viterbi decoder 1131 uses branch metrics (e.g., log-likelihood measure of the probability of a corresponding state transition of a state diagram) and path metrics (e.g., sum of the branch metrics of the branches that a path traverses) to find the most likely received data symbols (e.g., by identifying a minimum distance path through a trellis diagram corresponding to conventional maximum likelihood decoding and Viterbi decoding techniques). In an embodiment, the metrics are computed based on a Euclidian distance between received symbols and expected symbols. Viterbi decoder 1131 provides Viterbi decoded signal vo[k] to decision circuit 1121. Encoder 1125 re-encodes Viterbi decoded signal vo[k] and mapper/CORDIC circuit 1123 maps the re-encoded signal to phase-shift keying or quadrature amplitude modulation symbols and converts those modulated symbols to polar coordinates to generate expected signal x.sub.p[k]. In other embodiments of Kalman filter based phase-locked loop 508 where the CORDIC is within the loop (e.g., using a topology consistent with FIG. 6A), mapper/CORDIC circuit 1123 is configured to forgo the CORDIC operation that converts the modulated symbols to polar coordinates. Viterbi decoder 1131 introduces a substantial delay before providing a sample of Viterbi decoded signal vo[k] corresponding to a sample of received signal y[k].

    [0045] The traceback length (TL) (i.e., traceback depth or traceback value) of the Viterbi decoder is related to the delay of the Viterbi decoder. In general, the traceback length of a Viterbi decoder is an integer indicating the number of trellis branches used to construct each traceback path. In an embodiment of a conventional Viterbi decoder, TL is an integer that is five times the constraint length of the error correcting code. An exemplary forward error correction code has constraint length K=4 and a typical traceback length of a corresponding Viterbi decoder is 20, although greater traceback lengths (e.g., 30 or 40) may be used. A conventional Viterbi decoder selects the path with the lowest cumulative path metric at time t.sub.i. If two paths are equal, the Viterbi decoder selects a path arbitrarily. The conventional Viterbi decoder accumulates branch metrics from state to state to generate the path metrics and outputs symbols corresponding to a decision on the minimum path after the full traceback length TL. Accordingly, a symbol of Viterbi decoded signal vo[k] corresponding to a symbol of received signal y[k] is not available until at least TL symbol periods (e.g., 20 symbol periods) later. To accommodate that latency, the complexity of Kalman filter phase-locked loop 508 increases substantially to account for predicting TL symbols ahead.

    [0046] Referring to FIGS. 13A-13D, 14, and 15 a technique for simplifying a Kalman filter based phase-locked loop for use with a re-encoding-based phase detector includes using a modified Viterbi decoder that provides a preliminarily decoded symbol as an output based on at least one soft-decision signal vi[k] of a corrected received signal that is corrected based on the error between a reference signal and a baseband version of a received radio frequency signal. The preliminarily decoded signal voi[k] is further based on a decision for the minimum path metric for a preliminary set of decoder states (i.e., a set of decoder states corresponding to less than a full traceback length TL). The path metrics have a preliminary traceback length (PTL), where PTL is an integer, and 0<PTL<TL. An embodiment of a modified Viterbi decoder accumulates branch metrics from state to state over the traceback length TL to generate path metrics but unlike a conventional Viterbi decoder, the modified Viterbi decoder outputs preliminarily decoded signal voi[k] corresponding to a decision for a minimum path in the same symbol time as received signal y[k]. For example, if PTL=0, then the modified Viterbi decoder outputs a decision on a minimum path in the same symbol time as a corresponding symbol of the received signal y[k]. If PTL=1, then the modified Viterbi decoder outputs symbols corresponding to a decision on a minimum path after a latency of one symbol time from a corresponding symbol of the received signal y[k].

    [0047] In an embodiment, Viterbi decoder 1131 operates consistent with the following pseudocode for a conventional Viterbi decoder:

    TABLE-US-00002 1 for each state s.sub.k: 2 compute branch metrics of m branches: 3 [00035] B ( m ) = .Math. n = 1 N .Math. "\[LeftBracketingBar]" LLR k n - x k n m .Math. "\[RightBracketingBar]" 2 ; 4 find B.sub.min = min(B(m)) 5 compute path metrics (accumulated metrics) to state s.sub.k: 6 [00036] P ( s k ) = P ( s k - 1 s ) + B min 7 store .sub.k(s.sub.k), P(s.sub.k); 8 end; 9 10 if(k TL) 11 if(k! = L) 12 [00037] find s k min = min s k P ( s k ) 13 [00038] traceback the path that reaches to s k min find u ^ k - TL ( s k - TL TB ) ; 14 [00039] assign output : vo [ k ] = u ^ k - TL ( s k - TL T B ) ; 15 else 16 [00040] assign output : v o [ k : k + T L ] = u ^ k - TL ( s k - TL T B ) , u ^ k - TL + 1 ( s k - TL + 1 T B ) , .Math. , u ^ k ( s k min ) ] ; 17 end; 18 end;

    [0048] In an embodiment, modified Viterbi decoder 1133 operates consistent with the following pseudocode for a modified Viterbi decoder that provides a decoded preliminary output signal:

    TABLE-US-00003 1 for each state s.sub.k 2 compute branch metrics of m branches: 3 [00041] B ( m ) = .Math. n = 1 N .Math. "\[LeftBracketingBar]" LLR k n - x kn m .Math. "\[RightBracketingBar]" 2 ; 4 find B.sub.min = min(B(m)) 5 compute path metrics (accumulated metrics) to state s.sub.k: 6 [00042] P ( s k ) = P ( s k - 1 s ) + B min 7 store .sub.k(s.sub.k), P(s.sub.k); 8 end; 9 10 [00043] find s k min = min s k P ( s k ) 11 [00044] assign preliminary output voi [ k ] = k ( s k min ) ; 12 13 if(k TL) 14 if(k! = L) 15 16 [00045] traceback the path that converges to s k min find u ^ k - TL ( s k - T L T B ) ; 17 [00046] assign output : vo [ k ] = k - T L ( s k - TL TB ) ; 18 else 19 [00047] assign output : vo [ k : k + T L ] = [ k - TL ( s k - TL TB ) , k - TL + 1 ( s k - TL + 1 T B ) , .Math. , k ( s k min ) ] ; 20 end; 21 end;
    Viterbi decoder 1131 and modified Viterbi decoder 1133 each receive soft-decision signal vi[k] as inputs. For each time index k, vi[k] corresponds to vi.sub.kn, which includes N soft bits per decode bit, which are indexed by n (e.g., N=2 and n[1,2] for decoding a 12 rate convolutional code). Viterbi decoder 1131 and modified Viterbi decoder 1133 each output decoded bits as Viterbi decoded signal vo[k]. However, modified Viterbi decoder 1133 also outputs preliminarily decoded signal voi[k], which is re-encoded by decision circuit 1121. In exemplary embodiments, parameters used by Viterbi decoder 1131 and modified Viterbi decoder 1133 each include states s.sub.k having different likelihoods, where a total number of states of the decoder is S, where s.sub.0s.sub.ks.sub.S-1, and each state has two branches in trellis diagram corresponding to conventional maximum likelihood decoding and Viterbi decoding techniques. For decoding an exemplary convolutional code with a constraint length of 3, S=2.sup.31=4. Viterbi decoder 1131 and modified Viterbi decoder 1133 each use parameter

    [00048] x kn m ,

    which corresponds to expected soft bits at the n.sup.th position for branch m of the trellis diagram. Additional parameters include

    [00049] s k - 1 s ,

    which is a state at time index k1 that transits to the current state s.sub.k with lowest branch metric, .sub.k (s.sub.k), which is the decoded bit for state s.sub.k,

    [00050] s k min

    which is the state that has the minimum path metric (e.g., accumulated path metrics) at time index k, packet length L, and

    [00051] u ^ k - TL ( s k - TL TB ) ,

    which are the decoded bits associated with the state at time index kTL on the traceback path. Modified Viterbi decoder 1133 also generates preliminary decoded bits voi[k], which are based on the decoded bit corresponding to the state having the minimum path metric at index k

    [00052] ( i . e . , u ^ k ( s k min ) ) .

    Modified Viterbi decoder 1133 and the associated pseudocode can be adapted for different preliminary traceback lengths and encoding schemes.

    [0049] In the illustrated embodiments, modified Viterbi decoder 1133 generates a conventional Viterbi decoder output vo[k] corresponding to y.sub.c[k] after TL symbol times and generates a preliminarily decoded symbol voi[k] corresponding to y.sub.c[k] after PTL symbol times (e.g., in the same symbol time where PTL=0). However, in other embodiments, PTL is greater than zero but is less than TL and the latency of a reference signal generated by decision circuit 1121 and the complexity of the corresponding Kalman filter based phase-locked loop increases with increases to PTL to account for predicting for PTL samples ahead. In an embodiment, a modified Viterbi decoder provides both conventional Viterbi decoder output signal vo[k] and preliminarily decoded signal voi[k] in parallel to reuse circuitry and to reduce circuit area and power consumption. In other embodiments, modified Viterbi decoder 1133 is separate from Viterbi decoder 1131, which is a conventional Viterbi decoder. In those embodiments, modified Viterbi decoder 1133 generates only preliminarily decoded symbol voi[k] or generates both preliminarily decoded signal voi[k] and a redundant version of Viterbi decoder output signal vo[k], which is discarded or used for diagnostic purposes. Use of preliminarily decoded signal voi[k] in embodiments of FIGS. 13A and 13B introduces some loss as compared to the ideal re-encoding-based approach of FIG. 12. However, in at least some embodiments, the performance of the simplified decision reference signal computation of FIGS. 13A and 13B, which use preliminarily decoded symbols, approximates the ideal re-encoding-based reference signal computation of FIG. 12, and improves receiver performance of a Kalman filter based phase-locked loop as compared to its performance using the slicer-based reference signal of FIGS. 6A and 6B.

    [0050] While the receiver trains using predetermined received symbols (e.g., sixteen predetermined Access Address symbols), Kalman filter based phase-locked loop 508 uses the predetermined received symbols as the reference signal and ignores the corresponding outputs of decision circuit 1121, which are the least reliable outputs of decision circuit 1121. Shortly after the receiver completes training based on the predetermined received symbols, Kalman filter based phase-locked loop 508 starts to use preliminarily decoded symbols to generate the reference signal and will have a negligible or slight performance improvement as compared to the performance when using a slicer-based reference signal. However, as Kalman filter based phase-locked loop 508 continues to use preliminarily decoded symbols to generate the reference signal, path metrics of the Viterbi algorithm accumulate, the reliability of preliminarily decoded symbols approaches the reliability of conventional Viterbi decoder outputs, and the performance of the receiver using preliminarily decoded symbols to generate the reference signal approaches the performance of the receiver using the output of a conventional Viterbi decoder to generate the reference signal.

    [0051] FIGS. 14 and 15 illustrate an exemplary trellis diagram for Viterbi decoding of data convolutionally encoded using non-recursive rate 12 code with constraint length K=4. For illustration purposes, TL=4. If any two paths in the trellis merge to a single state, the Viterbi decoder or modified Viterbi decoder eliminates one of them in the search for an optimum path. In the exemplary embodiment, the Viterbi decoder selects the path at time t.sub.i with the minimum Euclidian distance between an expected decision value and a received decision value. However, in other embodiments (e.g., where the Viterbi decoder receives outputs of a hard decision), the Viterbi decoder selects the path using different path metrics, e.g., selects the lowest cumulative path metric at time t.sub.i. If two paths are equal, the Viterbi decoder selects a path arbitrarily. At each time t.sub.i, there are 2.sup.K-1 states in the trellis, where K is the constraint length. The tree structure of the trellis diagram repeats after K branchings. The state of a rate of 1/p convolutional encoder that generated the transmitted signal is defined as the contents of the rightmost K1 stages and there are p coded bits for each input group of k message bits. In a typical convolutional coder, k=1.

    [0052] From time 0t15, the receiver trains on the predetermined received sequence of symbols (e.g., sixteen predetermined Access Address symbols), but the preliminarily decoded signal voi[k] is ignored by phase detector of the Kalman filter based phase-locked loop. At time t=16, the receiver has completed training based on the predetermined received sequence of symbols and receives the first unknown symbol. In state so, the Viterbi decoder or modified Viterbi decoder computes branch metrics and accumulated path metrics based on soft-decision signal vi[k]. Viterbi decoder output symbols vo[16], vo[17], vo[18], and vo[19] are determined by computing the minimum path metric generated by accumulating branch metrics for each state transition from the initial state of s0. In this example, the path having a minimum path metric is bolded and is the sum of bm.sub.a1, bm.sub.b2, bm.sub.e3, and bm.sub.d4. Solid lines indicate a state transition in response to a received bit of vi[k]=0 and dashed lines indicate a state transition in response to a received bit of vi[k]1. A symbol time t=20, where t corresponds to a symbol time, the Viterbi decoder identifies that minimum path, which identifies decoded outputs vo[16]=0, vo[17]=1, vo[18]=0, and vo[19]=1.

    [0053] Modified Viterbi decoder provides preliminarily decoded symbol voi[0] for PTL=0 based on the minimum path metric determined by comparing branch metrics bm.sub.a1 and bm.sub.b1 for a decoder having an initial state of s0 at time t=16 and transitioning to a next state at time t=17. Preliminarily decoded symbol voi[16] is available at symbol time t=16 since the processing delay is negligible as compared to symbol delay. The next preliminarily decoded symbol voi[17] corresponds to the minimum path metric at symbol time t=17. The modified Viterbi decoder continues to accumulate path metrics until reaching TL but provides a preliminarily decoded symbol corresponding to a preliminary decision based on a state transition for each symbol time. If a modified Viterbi decoder has PTL=1, then modified Viterbi decoder output voi[16] would be available at time t=17 and based on path metrics from the initial state to a final state (state at t=17) and the associated branch metrics. The preliminarily decoded symbols are used by a simplified decision circuit 1121 of FIGS. 13A and 13B to approximate the ideal re-encoding-based reference signal of the phase detector in the Kalman filter based phase-locked loop and improves receiver performance as compared to the slicer-based reference signal of FIGS. 6A and 6B.

    [0054] Although some embodiments of a communications system include a transmitter and receiver that satisfy frequency drift requirements and any effects of frequency drift are negligible, in other embodiments, frequency drift is substantial and degrades performance of the communications system. Accordingly, at least one embodiment of a communications system implements a technique for tracking frequency drift, thereby reducing or eliminating the effects of frequency drift on performance of the communications system.

    [0055] Referring to FIGS. 16 and 17, in at least one embodiment, in addition to tracking disturbances from phase and frequency offset, Kalman filter-based phase-locked loop 508 also tracks frequency drift. In an embodiment, Kalman filter-based phase-locked loop 508 includes Kalman filter 1622, which has a third-order structure. A state space model of the phase (x.sub.k), frequency (x.sub.k), and frequency drift ({umlaut over (x)}.sub.k) for Kalman filter 1622 is as follows:

    [00053] X k + 1 = [ x k + 1 x k + 1 x .Math. k + 1 ] = FX k + W k = [ 1 1 1 0 1 1 0 0 1 ] [ x k x k x .Math. k ] + [ w k w k w .Math. k ] .

    The predictor form of the third-order Kalman filter illustrated in FIG. 16 is:

    [00054] X ( k + 1 | k ) = FX ( k | k - 1 ) + FK k r k , where K k = [ k k k ] ; r k = y k - HX ( k | k - 1 ) ; H = [ 1 , 0 , 0 ] .

    Phase offset tracking signal on node 1628, frequency offset tracking signal on node 1624, and frequency drift tracking signal on node 1626, which is generated by a path represented by a gain circuit, an accumulator, and register 1616, and combined with the integral path by accumulator 1618, are illustrated in FIG. 17. Kalman filter 1622 may be used in any of the embodiments of Kalman filter based phase-locked loop 508 described above.

    [0056] Referring to FIG. 18, in at least one embodiment, frequency or phase offset compensation circuit 1800 includes phase detector 1119 and Kalman filter 1822 configured as a Kalman-filter-based PLL that recursively predicts an instantaneous phase signal that is used as a frequency or phase error compensation signal [k]. In at least one embodiment, CORDIC 1804 converts received signal y[k] from Cartesian coordinates to polar coordinates (e.g., magnitude component y.sub.m[k] and phase component y.sub.p[k] of the received signal) and CORDIC 1810 rotates the received signal in polar coordinates according to the value of frequency or phase error compensation signal [k] to generate corrected received signal y.sub.c[k].

    [0057] In an embodiment, phase component y.sub.p[k] of the received signal is a combination of transmitted phase information .sub.T[k] and phase error .sub.T and frequency acquisition and tracking can be modeled as a dynamic system, as described above with respect to FIGS. 16 and 17. By computing the difference between the phase component of the received signal y.sub.p[k] and the expected value of the phase component x.sub.expp[k], phase y.sub.k is generated and provided as an input to Kalman filter 1822.

    [0058] Kalman filter 1822 determines residual phase error signal r.sub.k by computing the difference between phase y.sub.k and predicted instantaneous phase x.sub.k|k1, as described above. The integrator provides the predicted instantaneous phase signal, {right arrow over (x.sub.(k|k1))}, as phase error compensation signal [k] used by CORDIC 1810. CORDIC 1810 rotates received signal y[k](i.e., y.sub.m[k]+y.sub.p[k]) by an amount indicated by phase error compensation signal [k] and provides frequency or phase offset compensated signal y.sub.c[k] in Cartesian coordinates, which are then demapped (e.g., from PSK or QAM) by LLR demapper 1812. In an embodiment, modified Viterbi decoder 1814 provides preliminary output signal voi[k] for use in generating feedback reference signal [k], which is selectively provided as expected signal x.sub.expp[k] and used by phase detector 1119 as a reference signal for generating error signal y.sub.k.

    [0059] In an embodiment, modified Viterbi decoder 1814 operates consistent with the following pseudocode for an embodiment of a modified Viterbi decoder providing a re-encoded preliminary output signal:

    TABLE-US-00004 1 for each state s.sub.k 2 compute branch metrics of m branches: 3 [00055] B ( m ) = .Math. n = 1 N .Math. "\[LeftBracketingBar]" LLR kn - x k n m .Math. "\[RightBracketingBar]" 2 ; 4 [00056] find B min = min B ( m ) B ( m ) , m min = min m B ( m ) 5 store expected/re-encoded bits: 6 [00057] X ( s k ) = [ x k 1 m min , .Math. , x k N m min ] > 0 ; 7 compute path metrics (accumulated metrics) to state s.sub.k: 8 [00058] P ( s k ) = P ( s k - 1 s ) + B min 9 store .sub.k(s.sub.k), P(s.sub.k); 10 end; 11 12 [00059] find s k min = min s k P ( s k ) 13 14 [00060] assign preliminary output : v o i [ k ] = X ( s k min ) ; 15 16 [00061] if ( k TL ) 17 if(k! = L) 18 19 [00062] traceback the path that converges to s k min find u ^ k - TL ( s k - TL TB ) ; 20 [00063] assign output : v o [ k ] = k - T L ( s k - TL TB ) ; 21 else 22 [00064] assign output : vo [ k : k + T L ] = [ k - TL ( s k - TL TB ) , k - TL + 1 ( s k - TL + 1 TB ) , .Math. , u ^ k ( s k min ) ] ; 23 end; 24 end;

    [0060] In the tracking mode of operation, phase detector 1119 extracts the frequency or phase offset using feedback reference signal [k]. In an embodiment, preliminary output signal voi[k] is a re-encoded signal that is remapped according to an applicable modulation scheme by mapper and CORDIC 1824 to generate feedback reference signal [k]. In other embodiments, preliminary output signal voi[k] is a decoded signal and a reference generator re-encodes and re-maps that preliminary output signal according to an applicable encoding and modulation scheme to generate feedback reference signal [k].

    [0061] In an embodiment, phase detector 1119 combines received signal y.sub.p[k] with a reference signal, i.e., expected signal x.sub.expp[k] to extract any frequency or phase offset or frequency drift and generate error signal y.sub.k. In at least one embodiment, phase detector 1119 includes select circuit 616, which provides a predetermined signal or feedback reference signal [k] as expected signal x.sub.expp[k]. The difference between the phase of expected signal x.sub.expp[k] and the phase of the received signal is used to calculate error signal y.sub.k, which is input to Kalman filter 1822.

    [0062] In at least one embodiment of a Kalman filter-based phase-locked loop, preliminary output signal voi[k], which is used as a feedback signal to generate expected signal x.sub.expp[k], may introduce decision error into expected signal x.sub.expp[k]. That decision error degrades performance of Kalman filter based phase-locked loop 508, may cause the loop to diverge, and degrade the performance of the receiver. Accordingly, in at least one embodiment of a frequency or phase offset compensation circuit, a reliability check circuit estimates the reliability of the feedback signal. If the reliability estimate falls below a predetermined threshold level, then the reliability check circuit pauses an update of the frequency or phase offset compensation circuit.

    [0063] For example, frequency or phase offset compensation circuit 1800 includes reliability check circuit 1816, which determines the reliability of the feedback signal based on metrics (e.g., path metrics of a Viterbi decoder or modified Viterbi decoder) received from a decoder (e.g., a Viterbi decoder or modified Viterbi decoder). In an embodiment, reliability check circuit 1816 determines whether to update Kalman filter 1822, and thus, predicted instantaneous phase x.sub.k|k1 and phase error compensation signal [k], to reduce the effects of decision error. In an embodiment of reliability check circuit 1816 determines the reliability of preliminarily decoded signal voi[k] at one or more stage of modified Viterbi decoder 1814 and updates control signal PAUSE based thereon. In an embodiment, reliability check circuit 1816 determines the reliability of preliminarily decoded signal voi[k] at every stage of modified Viterbi decoder 1814 and updates control signal PAUSE based thereon.

    [0064] In an embodiment, reliability check circuit 1816 receives path metrics Pmax, which are the path metrics for the two paths having the largest path metrics for the one or more stages of modified Viterbi decoder 1814. If the difference between those two path metrics for at least one of the one or more stages is greater than a predetermined threshold value, then reliability check circuit 1816 asserts control signal PAUSE, which pauses an update of Kalman filter 1822 and phase error compensation signal [k]. The update may be paused using any suitable control circuitry. In at least one embodiment, Kalman filter based phase-locked loop 1800 includes select circuit 1826, which zeros out the value of r.sub.k to pause the update. However, other suitable control circuitry may be used to pause the update of predicted instantaneous phase x.sub.k|k1 and phase error compensation signal [k] in response to a control signal. Although illustrated as using reliability metrics to pause update of a phase correction by a Kalman filter based phase-locked loop, persons of ordinary skill would recognize that the use of reliability metrics to pause the update of a frequency or phase correction can be applied to receivers using other frequency or phase offset compensation techniques.

    [0065] Thus, techniques for improving the performance of a receiver in a wireless communications system by reducing effects of frequency or phase offset in a demodulator are disclosed. A phase-locked loop having variable gain consistent with Kalman filter theory and having faster convergence than a conventional phase-locked loop with fixed gain, improves performance of a receiver in a wireless communications system (e.g., reduces frequency or phase offset or frequency drift in the receiver, improves signal-to-noise ratio of the received signal and thus facilitates communications at increased information rates) in applications having data transmitted in bursts or packets (e.g., BLE). The Kalman filter based phased-locked loop may use a phase detector that generates a slicer-based reference signal or a re-encoding based reference signal. Use of a modified Viterbi decoder circuit to generate the reference signal approximates results obtained by re-encoding a signal decoded using a conventional Viterbi decoder to generate the reference signal of the Kalman filter based phased-locked loop and improves receiver performance as compared to a Kalman filter based phase-locked loop that uses a slicer-based reference signal.

    [0066] The description of the invention set forth herein is illustrative and is not intended to limit the scope of the invention as set forth in the following claims. For example, while the invention has been described in an embodiment in which phase-shift keying is used, one of skill in the art will appreciate that the teachings herein can be utilized with other modulation schemes. In another example, while the invention has been described in embodiments in which an Access Address field of a BLE packet is used, any predetermined symbols of a communications packet (e.g., training symbols) may be used.

    [0067] The terms first, second, third, and so forth, as used in the claims, unless otherwise clear by context, are to distinguish between different items in the claims and does not otherwise indicate or imply any order in time, location, or quality. For example, a first received signal, a second received signal, does not indicate or imply that the first received signal occurs in time before the second received signal. Variations and modifications of the embodiments disclosed herein may be made based on the description set forth herein, without departing from the scope of the invention as set forth in the following claims.