Patent Description:
In radio-frequency (RF) circuits, filters of different types are used in various applications. It is understood that when RF signals pass through filters, some amount of delay results. An RF signal may contain many frequencies. For example, a spread-spectrum RF signal, when passing through filters, will result in a group delay. A group delay may be a delay of the amplitude envelopes of the signal components of the different frequencies.

In practice, filters may have frequency dependent non-linear effects on the phases of the signal components of a spread-spectrum RF signal. These effects may cause the group delay to vary over frequency. Variations in group delay may distort the shape of the spread-spectrum signal passing through filters.

In Global Navigation Satellite System (GNSS) applications, a distance between a GNSS receiver and a GNSS satellite may be determined by a range measurement. The range measurement is based on a cross-correlation of a received spread-spectrum signal from the GNSS satellite with a replica signal generated by the GNSS receiver, the replica signal being identical to the spread spectrum signal, except for a time delay. If the received spread-spectrum signal is distorted by variations in group delay caused by filters, a cross-correlation function of these two signals may also be distorted. This distortion of the cross-correlation function shape may result in errors in the range measurement.

Prior efforts to compensate for variations in group delays attempted to implement filters having improved or reduced non-linear effects. This, however, increased requirements on the filter components. Other efforts involved adding circuitry prior to signal processors, or attempting to compensate for variations in group delays by introducing signal specific correction factors, the calculation of which is intensive and time consuming.

<NPL>) disclose a system identification method for estimating the envelope impulse response function of an RF front-end filter.

According to some embodiments of the present disclosure, there is provided a method for compensating group delay variations in a CDMA spread spectrum receiver, comprising: receiving an RF signal; generating an ideal replica signal; filtering the signal by one or more filters; obtaining an ideal auto-correlation function (ACF) of the ideal replica signal; distorting the ideal ACF to generate a distorted ACF by a filtering model of the one or more filters; aligning the ideal ACF and the distorted ACF; calculating a set of correction factors based on a ratio of the aligned ideal ACF and the distorted ACF; calculating a cross-correlation signal based on the filtered RF signal and the ideal replica signal; and obtaining a compensated correlation signal by applying the set of correction factors to the cross-correlation signal, wherein applying the set of correction factors to the cross-correlation signal comprises multiplying the set of correction factors with the cross-correlation signal.

According to some embodiments of the present disclosure, there is also provided a CDMA spread spectrum device for compensating group delay variations, comprising: a receiver configured to receive an RF signal; one or more filters configured to filter the RF signal; and at least one processor configured to: generate an ideal replica signal; obtain an ideal auto-correlation function (ACF) of the ideal replica signal; distort the ideal ACF to generate a distorted ACF by a filtering model of the one or more filters; align the ideal ACF and the distorted ACF; calculate a set of correction factors based on a ratio of the aligned ideal ACF and the distorted ACF; calculate a cross-correlation signal based on the filtered RF signal and the ideal replica signal; and obtain a compensated correlation signal by applying the set of correction factors to the cross-correlation signal, wherein applying the set of correction factors to the cross-correlation signal comprises multiplying the set of correction factors with the cross-correlation signal.

Instead, they are merely examples of systems, apparatuses, and methods consistent with aspects related to the present disclosure as recited in the appended claims.

<FIG> illustrates an exemplary application of a receiver device and method for compensating variations in group delay. In some embodiments, the receiver device and method for compensating variations in group delay may be implemented in a global navigation satellite system (GNSS) <NUM>. The GNSS <NUM> includes at least one GNSS satellite <NUM> and a GNSS receiver device <NUM>. GNSS receiver device <NUM> is a CDMA receiver device. In some embodiments, GNSS satellite <NUM> transmits an RF signal <NUM> for receipt by GNSS receiver <NUM>. RF signal <NUM> may be a spread spectrum signal. A spread spectrum signal is a signal having components in a plurality of different frequencies. <FIG> illustrates an exemplary configuration of GNSS receiver <NUM>. GNSS receiver <NUM> includes one or more components configured to receive and process RF signal <NUM>. As illustrated in <FIG>, GNSS receiver <NUM> includes, but is not limited to, an antenna <NUM>, a filter <NUM>, a mixer <NUM>, an oscillator <NUM>, an analogue-to-digital converter (ADC) <NUM>, and a signal processor <NUM> coupled as shown. Referring also to <FIG>, in some embodiments, RF signal <NUM> may contain information for measuring a distance between GNSS satellite <NUM> and GNSS receiver <NUM> such as, for example, a ranging code 104a. Ranging code 104a may be a predetermined digital signal, containing a series of <NUM> and <NUM>, repeated at a fixed time interval. GNSS receiver <NUM> may also generate a replica code 104b. Replica code 104b may be identical to ranging code 104a, repeated also at the same fixed time interval. In some embodiments, replica code 104b may be generated by signal processor <NUM>.

GNSS receiver <NUM> receives ranging code 104a from GNSS satellite <NUM>. RF signal <NUM> arrives at GNSS receiver <NUM> after a travel time at the speed of RF signal propagation. GNSS receiver <NUM> may determine the distance to GNSS satellite <NUM> by determining the travel time of RF signal <NUM>. In some embodiments, the travel time of RF signal <NUM> may be determined by deriving a timing offset between ranging code 104a and replica code 104b. For example, signal processor <NUM> may calculate a cross-correlation function between ranging code 104a and replica code 104b. Since ranging code 104a and replica code 104b are identical, the cross-correlation function is an auto-correlation function (ACF). Because receiver components such as filter <NUM> may introduce delays in addition to the travel time of RF signal <NUM>, signal processor <NUM> takes into account this additional delay time in order to derive an accurate measurement. In some embodiments, filter <NUM> may have non-linear frequency effects that introduce variations in group delay of RF signal <NUM>. For example, filter <NUM> may cause different amount of delay for different frequency components of RF signal <NUM>. The differences in the amounts of delay may be non-linear, hence, there is a need for signal processor <NUM> to compensate for such differences.

A person skilled in the art will now appreciate that <FIG> merely illustrate a non-limiting application of a receiver device and method for compensating variation in group delay. The embodiments of the present disclosure may be applicable in other suitable RF applications. Moreover, one or more circuit components of GNSS receiver <NUM>, such as antenna <NUM> or filter <NUM>, may represent a plurality of components. For example, filter <NUM> may represent a plurality of filters. Additionally, one or more circuit components of GNSS receiver <NUM> may be added, removed, or modified without departing from the inventive concept of the present disclosure.

<FIG> is a plot illustrating examples of an ideal ACF and a distorted ACF. The plot of <FIG> is generated by a simulation. In <FIG>, the horizontal axis represents a delay domain in units of code chips, and the vertical axis represents amplitude. Distortion in the simulation is for a typical model of a GNSS receiver, such as one depicted in <FIG>.

Curve <NUM> represents the ideal ACF. The ideal ACF is calculated by cross-correlating ranging code 104a with replica code 104b, without taking into account variations in group delay introduced by filter <NUM>. Curve <NUM> has a peak amplitude of <NUM>, a time corresponding to this peak representing the traveled time for the RF signal <NUM> to reach GNSS receiver <NUM> from GNSS satellite <NUM>. Curve <NUM> represents a distorted ACF that may be generated by convolution of the ideal ACF and an impulse function that models filter <NUM>. Curve <NUM> represents correlator tap corrections. Correlator tap corrections represent locations in the delay domain for which the ideal ACF and the distorted ACF are sampled. For example, in a spread-spectrum receiver, every correlator tap correction outputs a point on the distorted ACF.

A cross-correlation of a distorted filtered ranging code with a replica code at the output of a filter can be represented as m(k) in the following equations: <MAT> <MAT>.

In equations <NUM>(a) and <NUM>(b), k is a time step, c(k) represents the ranging code 104a, crep(k) represents the replica code 104b, h(k) represents an impulse response of filter <NUM>, and n(k) represents additive white noise. Because the ideal ACF, or cacf(k), is simply the convolution of c(k) and crep(k), equation <NUM>(b) can be simplified to: <MAT>.

As shown in equation <NUM>(c), m(k) represents distortion of the ideal ACF by the impulse function h(k) and the additive white noise. In other words, m(k) is the distorted ACF, where cacf(k) * h(k) represents the noiseless filter distortion, and n(k) * crep(k) * h(k) represents the noise term. The convolutions of equation <NUM>(c) result in: <MAT>.

Nh represents the length of the number of samples in the function h(k), and Nc represents the length of the ideal ACF. In some embodiments, the noise term in equation (<NUM>) can be ignored, which means that for every delay of interest, correction factors Tc(k) can be determined by: <MAT>.

Equation (<NUM>) demonstrates that the correction factors can be calculated by dividing the values of the ideal ACF by the values of the distorted ACF. Equation (<NUM>) also demonstrates that there is a need to align the ideal ACF and the distorted ACF in the delay domain before calculating the correction factors. In some embodiments, taking a group delay of the filter to align the ideal ACF and the distorted ACF may be insufficient, since the group delay of the filter may vary over frequency. Moreover, since variations in group delay cause a shape of the ideal ACF to be distorted, multiple reference points may be used for measurement alignment. For example, a delay measured from the maximum of the ideal ACF to the maximum of the distorted ACF may be used for alignment. Another alignment method may be performing a least squares fit of the ideal ACF to the distorted ACF, and take the fit position as the delay for alignment.

In some embodiments, it may be advantageous to use the ideal ACF to calculate the correction factors, as amplitude variations are also compensated by these correction factors, especially in the case of low pass filtering. In some embodiments, the ideal ACF may be first band-limited with linear phase filters before calculating the correction factors.

<FIG> is a plot illustrating examples of the effects of additive white noise on auto-correlation functions. The plot of <FIG> is generated by a simulation. In <FIG>, the horizontal axis represents the delay domain, and the vertical axis represents amplitude.

Curve <NUM> represents an ideal ACF, corresponding to curve <NUM> of <FIG>. Curve <NUM> represents a distorted ACF without effect of noise, corresponding to curve <NUM> in <FIG>. Curve <NUM> represents the distorted ACF affected by a first noise signal, having a SNR of <NUM> dB. Curve <NUM> represents the distorted ACF affected by a second noise signal, having a SNR of <NUM> dB. Curve <NUM> represents the first noise signal. Curve <NUM> represents the second noise signal. As seen in <FIG>, the first noise signal and the second noise signal both cause additional distortion to the ideal ACF in comparison with distortion only caused by filtering without noise.

In some embodiments, the noise term, e.g., in equation (<NUM>), is not ignored, and further compensation terms are needed to take into account the effect of noise. Because of the non-linear behavior of the magnitude of the distorted ACF, scaling the magnitude is not desirable, as signal and noise may need to be scaled by different factors. It is desirable that only the magnitude of the distorted ACF is scaled. Recall that the distorted ACF is represented in equation <NUM>(c) as: <MAT>.

In some embodiments, filter <NUM> is not expected to have an appreciable effect on the additive white Gaussian noise (AWGN) characteristics of the noise term. Hence the expectation value of the magnitude of m(k), or |m(k)|, is the Riciman mean Rm(v(k), σ) with parameters given by the following equation: <MAT>.

In equation (<NUM>), v(k) is the magnitude of the distorted ACF without noise. Thus, the magnitude of distortion caused by noise may be given as: <MAT>.

L½ represents Laguerre polynomials. Because the noise term (e.g. |mN(k)|) depends on the ratio of signal to noise (SNR), distortion of the ideal ACF may slightly change the SNR on the observed magnitude of the distorted ACF, in turn causing a change in the noise contribution to the magnitude of distorted ACF. In other words, if a scaling factor Ct is applied to correct for distorted ACF, the noise does not scale by the same amount as the signal, hence Rm(v(k), σ) · Ct ≠ Rm(v(k)Ct, σ). Therefore, in order to correct for distortion, an additional correction factor Cs is introduced such that Rm(v(k), σ) · Ct · Cs = Rm(v(k)Ct, σ). Cs may be given by equation (<NUM>): <MAT>.

In some embodiments, the scaling factor Ct corresponds to the correction factor Tc in equation (<NUM>).

<FIG> is a schematic diagram illustrating a non-limiting example of a receiver <NUM> for compensating variations in group delay. Receiver <NUM> includes a receiver chain <NUM>, a correction calculation module <NUM>, and a correction application module <NUM>. Receiver chain <NUM> includes one or more down conversion circuits <NUM>, one or more filters including low-pass (LP) filter <NUM> and high-pass (HP) filters <NUM>, an analog-to-digital converter (ADC) <NUM>, signal correlators <NUM>, SNR estimators <NUM>, and a filter monitor <NUM>.

Down conversion circuits <NUM> may include one or more components for receiving an RF signal <NUM>, which may contain ranging code 104a, and for converting RF signal <NUM> from the RF carrier frequency to a baseband frequency. A person skilled in the art will now appreciate that down conversion circuit <NUM> may include one or more conventionally known components such as antennas, mixers, oscillators, filters, and/or amplifiers. In some embodiments, down conversion circuits <NUM> may filter RF signal <NUM> during the down conversion process. In some embodiments, additional filters not illustrated in <FIG> may be provided to filter RF signal <NUM> prior to down conversion by down conversion circuit <NUM>.

LP filter <NUM> represents one or more filters adapted to allow signal components having a frequency below a cut-off frequency to pass, and to attenuate signal components having a frequency above the cut-off frequency. HP filter <NUM> represents one or more filters adapted to allow signal components having a frequency above a cut-off frequency to pass, and to attenuate signal components having a frequency below the cut-off frequency. LP filter <NUM> and HP filter <NUM> may have various parameters, some of which are known, while other parameters of LP filter <NUM> and HP filter <NUM> are dynamic. For example, some parameters of LP filter <NUM> and HP filter <NUM> may be temperature dependent such that these parameters may vary over time as the temperature of receiver chain <NUM> changes under continuous operation or under different conditions. Filter monitor <NUM> monitors these parameters of LP filter <NUM> and HP filter <NUM>, and updates monitored parameters at predetermined time intervals for a filter model <NUM> of correction calculation module <NUM>, as described below. The monitored parameters may include temperature, voltage, current, power, duty-ratio, operation time, and/or other parameters that may alter frequency response, phase response, group delay, and other aspects of LP filter <NUM> and HP filter <NUM>. Filter monitor <NUM> provides as an output a filter parameter <NUM> for filter model <NUM>.

In some embodiments, there may be provided additional filter elements, or circuit components having filtering characteristics not illustrated in <FIG>. For example, there may be provided an image rejection filter, a surface acoustic wave (SAW) filter, an amplifier and/or mixer having filtering functions which may also exhibit non-linear phase behaviors. Filter monitor <NUM> may additionally monitor parameters of the additional filter elements, or circuit components, and update the monitored parameters at predetermined time intervals as filter parameter <NUM>.

In some embodiments, one or more combinations of LP filter <NUM> and HP filter <NUM> may work together to filter RF signal <NUM>. ADC <NUM> converts the filtered RF signal <NUM> from an analog signal form to a digital signal form. In some embodiments, LP filter <NUM> and HP filter <NUM> may further filter the digitized RF signal <NUM>.

In some embodiments, one or more signal correlators <NUM> may cross-correlate the digitized RF signal <NUM> with a corresponding replica code. The corresponding replica code may be, for example, replica code 104b as illustrated in <FIG>. In some embodiments, receiver <NUM> may receive multiple RF signals each containing one or more ranging codes, and there may be provided multiple signal correlators <NUM>, such as signal correlators <NUM><NUM>, <NUM><NUM>,. , <NUM>N, such that each of the received RF signals is provided as an input to a corresponding signal correlator for cross-correlation with a corresponding replica code. In some embodiments, the one or more signal correlators <NUM> provide as outputs, measured distorted CCF <NUM>. In some embodiments, multiple signal correlators <NUM> provide multiple measured distorted CCF <NUM>, such as measured distorted CCF <NUM><NUM><NUM>, measured distorted CCF <NUM><NUM><NUM>,. , measured distorted CCF N <NUM>N, etc. In some embodiments, the replica codes may be stored on one or more computer-readable storage media, and may be retrieved by signal correlator <NUM> as needed. In some embodiments, RF signal <NUM> and replica codes need not be correlated at every point in time, and signal correlator <NUM> performs cross-correlation only at a number of sample points in time. These sample points may be referred to as taps. Hence, measured distorted CCF <NUM> at the output of signal correlator <NUM> may be a series of taps.

In some embodiments, one or more SNR estimators <NUM> estimate a signal-to-noise ratio (SNR) of measured distorted CCF <NUM>. Multiple SNR estimators <NUM> may be provided in the case of multiple measured distorted CCF <NUM>, such that each measured distorted CCF <NUM> has a corresponding SNR estimator <NUM>. In some embodiments, measured distorted CCF <NUM> is provided as input for SNR estimator <NUM>, and an SNR <NUM> is provided as an output of SNR estimator <NUM>. For example, measured distorted CCF <NUM><NUM><NUM>, measured distorted CCF <NUM><NUM><NUM>,. , measure distorted CCF N <NUM>N are provided to SNR estimators <NUM><NUM> <NUM><NUM>,. , <NUM>N that output SNR <NUM><NUM><NUM>, SNR <NUM><NUM><NUM>,. , SNR N <NUM>N.

Correction calculation module <NUM> includes one or more filter models <NUM>, one or more time alignment modules <NUM>, one or more correction factor calculation modules <NUM>, one or more SNR factor correction modules <NUM>, and one or more combinators <NUM>.

In some embodiments, there may be provided one or more ideal ACF signals <NUM>. Ideal ACF signal <NUM> may be provided as input to filter model <NUM>. In some embodiments, there may be multiple ideal ACF signals <NUM>, such as ideal ACF signal <NUM><NUM><NUM>, ideal ACF signal <NUM><NUM><NUM>,. ideal ACF signal N <NUM>N, which are calculated based on the replica code. The total number of ideal ACF signals <NUM>, ranging codes, and replica codes may be a design choice of receiver <NUM>, and may be dependent on the number of received RF signals. In some embodiments, one type of ideal ACF signal may be sufficient for a whole class of GNSS RF signals, such as GPS L1 C/A signals, Galileo E B/C signals, and/or other similar class of RF signals having similar spectral power distribution.

In some embodiments, since the ranging codes and the replica codes may be chosen any time prior to the calculations of correction factors, such as at the time of design, ideal ACF signal <NUM> may also be calculated at such time. Thus previously calculated ideal ACF signal <NUM> may be stored on one or more computer-readable storage media, and retrieved by correction calculation module <NUM> as needed. In some embodiments, ideal ACF signal <NUM> may correspond to cacf of equation (<NUM>).

In some embodiments, it may be desirable to limit a bandwidth of ideal ACF signal <NUM> in order to simplify calculations. For example, in order to sample a function or a signal with high fidelity, the sampling rate required may be prohibitively high for a function or a signal having a large bandwidth or a large frequency spread. In some embodiments, if the ranging code and the replica code are known to require a frequency spread higher than a threshold, the corresponding ideal ACF signal <NUM> may be band-limited by applying a linear-phase filter. In some embodiments, band limiting may be performed through mathematical operations, such as applying to the ideal ACF signal <NUM> an impulse function modeling a linear phase filter. In some embodiments, band-limited ideal ACF signal <NUM> may be calculated in advance, and stored in the one or more computer-readable media retrievable by correction calculation module <NUM>. In some other embodiments, band-limited ideal ACF signal <NUM> may be calculated by correction calculation module <NUM> as needed.

In some embodiments, one or more filter models <NUM> may be provided to generate a model of the various filters as well as one or more of the additional filter elements or circuit components described above for receiver <NUM>. The filters as well as one or more of the additional filter elements or circuit components may include LP filter <NUM>, HP filter <NUM>, an image rejection filter, a SAW filter, an amplifier and/or mixer having filtering functions which also exhibit non-linear phase behaviors. In some embodiments, there may be provided multiple filter models <NUM>, one for each ideal ACF signal <NUM>. Models generated by filter model <NUM> may be mathematical expressions that simulate the effect of the filters and filter like components on each ideal ACF signal <NUM>. The mathematical expressions may be, for example, transfer functions or impulse functions, which correspond to h(k) in equations <NUM>(a)-<NUM>(c). In some embodiments, the filters as well as one or more of the additional filter elements or circuit components may be known prior to correction factor calculation, and thus the model for filter model <NUM> may be calculated in advance, and stored on one or more computer-readable storage media, and may be retrieved by correction calculation module <NUM> as needed. In some embodiments, the model for filter model <NUM> may depend on operation conditions of receiver <NUM>, and thus may require updates. In some embodiments, the model may depend on filter parameter <NUM>, and may receive as input, filter parameter <NUM> from filter monitor <NUM>. In some embodiments, filter model <NUM> may provide as output, modelled distorted ACF <NUM>. In some embodiments, multiple filter models <NUM> may each provide as an output, modelled distorted ACF <NUM>, corresponding to an input ideal ACF signal <NUM>. For example, multiple filter models <NUM><NUM>, <NUM><NUM>,. , <NUM>N may produce modelled distorted ACF <NUM><NUM><NUM>, modelled distorted ACF <NUM><NUM><NUM>,. , modelled distorted ACF N <NUM>N, corresponding to ideal ACF signal <NUM><NUM><NUM>, ideal ACF signal <NUM><NUM><NUM>,. ideal ACF signal N <NUM>N, respectively, according to filter parameter <NUM>. In some embodiments, modelled distorted ACF <NUM> corresponds to cacf(k) * h(k) in equations <NUM>(c).

One or more time alignment modules <NUM> align a time between ideal ACF signal <NUM> and modelled distorted ACF <NUM>. Time alignment module <NUM> may receive as inputs, ideal ACF signal <NUM> and, from filter model <NUM>, modelled distorted ACF <NUM>. As previously described, modelled distorted ACF <NUM> may be delayed in time from ideal ACF signal <NUM>. This delay may be deliberately introduced by filter model <NUM> in order to simulate effects of the various filters as well as one or more of the additional filter elements or circuit components of receiver <NUM>. Time alignment module <NUM> may provide as outputs, ACF <NUM>a and ACFD <NUM>b. ACF <NUM>a represents a series of taps, or time samples, of ideal ACF <NUM>. ACFD <NUM>b represents a series of taps of modelled distorted ACF <NUM>. In some embodiments, multiple time alignment modules <NUM><NUM>, <NUM><NUM>,. , <NUM>N provide ACF <NUM><NUM>a1, ACF <NUM><NUM>a2. ACF N <NUM>aN, and ACFD <NUM><NUM>b1, ACFD <NUM><NUM>b2,. , ACFD N <NUM>bN, corresponding to ideal ACF signal <NUM><NUM><NUM>, ideal ACF signal <NUM><NUM><NUM>,. ideal ACF signal N <NUM>N and modelled distorted ACF <NUM><NUM><NUM>, modelled distorted ACF <NUM><NUM><NUM>,. , modelled distorted ACF N <NUM>N, respectively, as shown in <FIG>.

In some embodiments, time alignment module <NUM> aligns ideal ACF <NUM> signal and modelled distorted ACF <NUM> by calculating a time shift value by measuring a time shift between peaks of ideal ACF signal <NUM> and modelled distorted ACF <NUM>. For example, time alignment module <NUM>, from the taps of ideal ACF signal <NUM>, may obtain a peak value of ideal ACF <NUM> and its corresponding tap. Similarly, time alignment module <NUM>, from the taps of modelled distorted ACF <NUM>, may obtain a peak value of modelled distorted ACF <NUM> and its corresponding tap. Time alignment module <NUM> determines the time shift value from the difference in the taps of the peaks of ideal ACF signal <NUM> and modelled distorted ACF <NUM>. If, for example, the peak of modelled distorted ACF <NUM> is <NUM> taps shifted from the peak of the ideal ACF signal <NUM>, then the time shift value is <NUM> taps. Time alignment module <NUM> then aligns ideal ACF signal <NUM> and modelled distorted ACF <NUM> by time shifting modelled distorted ACF <NUM> by the time shift value, either in taps or in measured time. In some embodiments, the ACFD <NUM>b may be time shifted by the time shift value, and ACF <NUM>a and ACFD <NUM>b are aligned at the output of time alignment module <NUM>.

In some alternative embodiments, time alignment module <NUM> aligns ideal ACF signal <NUM> and modelled distorted ACF <NUM> by calculating a time shift value by minimizing a sum of squared errors, the errors being differences in amplitudes between ideal ACF signal <NUM> and modelled distorted ACF <NUM>. For example, at each tap, a difference between the amplitudes of ideal ACF signal <NUM> and modelled distorted ACF <NUM>, or error, may be found, and the errors for all taps are squared and summed to obtain a sum of squared errors. This process may be repeated, but with a different shift in tap in each iteration. The iteration that produces the least value, i.e., the minimum sum of squared errors, can be found in this process. The tap shift corresponding to this minimum sum of squared errors is the time shift value for aligning the ideal ACF signal <NUM> and modelled distorted ACF <NUM>.

As previously described, taps are sample points in the delay domain of the auto-correlation function or the cross-correlation function. A number of taps within a time period corresponds to a delay period. For example, <NUM> sampling frequency corresponds to a single tap having a <NUM> micro-second interval. Similarly, <NUM> sampling frequency corresponds to a single tap having a <NUM> nano-second interval, and so on. In some embodiments, a sampling frequency is related with received RF signal <NUM>. For example, the sampling frequency may be selected to be an integer multiple of a bandwidth or a frequency spread of RF signal <NUM>. In some embodiments, the sampling frequency could be <NUM> times or <NUM> times the bandwidth of RF signal <NUM>. For example, if RF signal <NUM> has a bandwidth of <NUM>, the sampling frequency could be <NUM> or <NUM>.

In yet some other alternative embodiments, time alignment module <NUM> aligns ideal ACF signal <NUM> and modelled distorted ACF <NUM> by calculating a time shift value by using an estimate of an overall group delay of receiver <NUM>. In some embodiments, the overall group delay may be an estimate with regard to the RF carrier frequency, and may be determined in advance. For example, components in receiver <NUM> may each cause some group delay. An estimate of the sum of these group delays may be obtained during testing or designing of receiver <NUM>, with respect to the RF carrier frequency.

One or more correction factor calculation modules <NUM> receive as inputs ACF <NUM>a and ACFD <NUM>b. Correction factor calculation module <NUM> provides as output, a correction factor <NUM>. In some embodiments, multiple correction factor calculation modules <NUM><NUM>, <NUM><NUM>,. , <NUM>N may receive as inputs ACF <NUM><NUM>a1, ACF <NUM><NUM>a2,. , ACF N <NUM>aN, and ACFD <NUM><NUM>b1, ACFD <NUM><NUM>b2,. , ACFD N <NUM>bN, respectively. Multiple correction factor calculation modules <NUM><NUM>, <NUM><NUM>,. , <NUM>N provide as outputs, correction factor <NUM><NUM><NUM>, correction factor <NUM><NUM><NUM>,. , correction factor N <NUM>N, respectively.

In some embodiments, correction factor <NUM> is calculated by dividing ACF <NUM>a by ACFD <NUM>b. This calculation corresponds to equation (<NUM>), where correction factor <NUM> corresponds to Tc(k), ACF 407a corresponds to the numerator, and ACFD <NUM>b corresponds to the denominator.

In some embodiments, there may be provided one or more SNR factor correction modules <NUM>. SNR factor correction module <NUM> receives as inputs, ACFD <NUM>b and SNR <NUM>. In some embodiments, multiple SNR factor correction modules <NUM><NUM>, <NUM><NUM>,. , <NUM>N each receive as input one of ACFD <NUM><NUM>b1, ACFD <NUM><NUM>b2,. , ACFD N <NUM>bN, and one of SNR <NUM><NUM><NUM>, SNR <NUM><NUM><NUM>,. , SNR N <NUM>N, respectively. In some embodiments, SNR <NUM> may be the same value for all measured distorted CCF <NUM>. In some embodiments, SNR <NUM><NUM><NUM>, SNR <NUM><NUM><NUM>,. , SNR N <NUM>N may respectively correspond to a SNR of measured distorted CCF <NUM><NUM><NUM>, measured distorted CCF <NUM><NUM><NUM>,. measured distorted CCF N <NUM>N.

In some embodiments, SNR factor correction module <NUM> provides as output, SNR factor <NUM>. In some embodiments, multiple SNR factor correction modules <NUM><NUM>, <NUM><NUM>,. , <NUM>N respectively provide as outputs, SNR factor <NUM><NUM><NUM>, SNR factor <NUM><NUM><NUM>,. , SNR factor N <NUM>N.

Combinator <NUM> receives as inputs correction factor <NUM> and SNR factor <NUM>. In some embodiments, multiple combinators <NUM><NUM>, <NUM><NUM>,. , <NUM>N respectively receive as inputs, one of correction factor <NUM><NUM><NUM>, correction factor <NUM><NUM><NUM>,. correction factor N <NUM>N, and one of SNR factor <NUM><NUM><NUM>, SNR factor <NUM><NUM><NUM>,. , SNR factor N <NUM>N. In some embodiments, combinator <NUM> provides as outputs to correction application module <NUM>, correction factor <NUM> and SNR factor <NUM>.

In some other embodiments, the effect of noise may be minor. Thus SNR and SNR factors may be ignored. For example, combinator <NUM> may only receive correction factor <NUM>, and only output correction factor <NUM> to correction application module <NUM>.

Correction application module <NUM> contains one or more correction modules <NUM>. In some embodiments, correction module <NUM> receives as inputs correction factor <NUM> and SNR factor <NUM> from combinator <NUM>. In some embodiments, multiple correction modules <NUM><NUM>, <NUM><NUM>,. , <NUM>N respectively receive as inputs one of correction factor <NUM><NUM><NUM>, correction factor <NUM><NUM><NUM>,. , correction factor N <NUM>N, and one of SNR factor <NUM><NUM><NUM>, SNR factor <NUM><NUM><NUM>,. , SNR factor N <NUM>N. In some other embodiments, correction module <NUM> does not receive SNR factors <NUM>.

Correction module <NUM> may also receive as input, measured distorted CCF <NUM>. In some embodiments, multiple correction modules <NUM><NUM>, <NUM><NUM>,. , <NUM>N respectively receive as inputs one of measured distorted CCF <NUM><NUM><NUM>, measured distorted CCF <NUM><NUM><NUM>,. measured distorted CCF N <NUM>N.

Correction module <NUM> applies correction factor <NUM> to measured distorted CCF <NUM> to produce a compensated CCF <NUM>. In some embodiments, correction module <NUM> applies correction factor <NUM> and SNR factor <NUM> to produce compensated CCF <NUM>. Correction module <NUM> applies the correction factor <NUM> to measured distorted CCF <NUM> by multiplication, so that compensated CCF <NUM> is the product of the multiplication. Similarly, in some embodiments, correction module <NUM> may apply correction factor <NUM> and SNR factor <NUM> to measured distorted CCF <NUM> by multiplying all three values, so that compensated CCF <NUM> is the product of the multiplication. In some embodiments, multiple correction modules <NUM><NUM>, <NUM><NUM>,. , <NUM>N respectively produce compensated CCF <NUM><NUM><NUM>, compensated CCF <NUM><NUM><NUM>,. , compensated CCF N <NUM>N. As previously described, taps are sample points in the delay domain, and measured distorted CCF <NUM> may be a series of taps at the output of signal correlator <NUM>. Correction module <NUM> may map the set of correlation factors to a set of correlator taps. For example, correction module <NUM> applies correction factor <NUM> to measured distorted CCF <NUM>, and compensated CCF <NUM> is outputted as a series of taps.

In some embodiments, it may not be necessary to calculate correction factor <NUM> and SNR factor <NUM> every time correction module <NUM> applies a correction. For example, once obtained, correction factor <NUM> and SNR factor <NUM> may be unchanged until occurrence of some conditions to justify updating correction factor <NUM> and SNR factor <NUM>. In some embodiments, correction module <NUM> may apply the correction factor <NUM> at a first frequency, and correction factor <NUM> is calculated and updated at a second frequency. In some embodiments, the first frequency is greater than the second frequency. For example, a time interval between updates of the values of correction factor <NUM> and SNR factor <NUM> is longer than the time interval between correction applications by correction module <NUM>. In some embodiments, the time interval between updates of the values of correction factor <NUM> may be on the order of several seconds, while the time interval between correction applications may be on the order of tens of milliseconds.

In some embodiments, correction calculation module <NUM> may update the values of correction factor <NUM> only when there is an update of filter model <NUM> by filter monitor <NUM>. For example, when the operating conditions of receiver <NUM> remain relatively consistent, outputs of filter model <NUM> may be unaffected, and thus correction factor <NUM> would be unchanged. Therefore, correction factor <NUM> may not need updates if there is no change in the operating conditions of receiver <NUM>. If the operating conditions of receiver <NUM> change such that outputs of filter model <NUM> are sufficiently affected, correction calculation module <NUM> may update the values of correction factor <NUM>.

A person skilled in the art will now appreciate that correction calculation module <NUM> and correction application module <NUM> may be embodied as one or more processors performing signal processing operations. The various modules and submodules of correction calculation module <NUM> and correction application module <NUM> may be embodied as subcomponents of the one or more processors, one or more computer storage media, or software modules (such as computer-readable program instructions) programmed to cause the one or more processors to perform their respective signal processing operations.

<FIG> is a flow chart illustrating an exemplary process performed by a receiver, such as receiver <NUM>, for compensating variations in group delay.

In step <NUM>, receiver <NUM> receives a ranging signal. The ranging signal may be a spread spectrum signal.

In step <NUM>, receiver <NUM> generates an ideal replica signal containing replica codes corresponding to the received ranging codes. In some embodiments, receiver <NUM> retrieves a previously generated ideal replica signal from computer storage media.

In step <NUM>, receiver <NUM> generates an ideal ACF based on the ideal replica signal. In some embodiments, receiver <NUM> retrieves a previously generated ideal ACF from computer storage media.

In step <NUM>, receiver <NUM> may optionally band limit the ideal ACF. In some embodiments, the ideal ACF may be band limited by applying a linear-phase filter.

In step <NUM>, receiver <NUM> distorts the ideal ACF to generate a distorted ACF. In some embodiments, the ideal ACF is distorted by applying a filter model to simulate effects of various filters in receiver <NUM>.

In step <NUM>, receiver <NUM> aligns the ideal ACF and the distorted ACF. In some embodiments, receiver <NUM> calculates a time shift value between the idea ACF and the distorted ACF, and then shifts the distorted ACF by the calculated time shift value.

In step <NUM>, receiver <NUM> calculates a set of correction factors based on a ratio of the aligned ideal ACF and the distorted ACF.

In step <NUM>, receiver <NUM> generates a correlation signal. In some embodiments, the correlation signal is generated by cross-correlating the received ranging signal and the ideal replica signal.

In step <NUM>, receiver <NUM> applies the correction factors to the correlation signal. The correction factors are applied by multiplying the correction factors and the correlation signal. The product of the multiplication is the compensated correlation signal, for which variation in group delays is compensated.

<FIG> is a flow chart illustrating an exemplary process performed by a receiver, such as receiver <NUM>, for compensating variations in group delay based on SNR. In some embodiments, process <NUM> may be performed in addition to process <NUM>.

In step <NUM>, receiver <NUM> derives an estimate of signal-to-noise ratio (SNR) of the correlation signal.

In step <NUM>, receiver <NUM> calculates a set of SNR factors based on the estimate of the SNR.

In step <NUM>, receiver <NUM> applies the SNR factors to the correlation signal. In some embodiments, the SNR factors are applied by multiplying the correction factors, the SNR factors, and the correlation signal. The product of the multiplication is the compensated correlation signal, for which variation in group delays is compensated. In some embodiments, the SNR factors are applied to the correlation signal at the same time as the correction factor is applied to the correlation signal in step <NUM> of process <NUM>.

The computer-readable storage media of the present disclosure may be a tangible device that can store instructions for use by an instruction execution device. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.

The computer-readable program instructions of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including an object-oriented programming language, and conventional procedural programming languages. The computer-readable program instructions may execute entirely on a computing device as a stand-alone software package, or partly on a first computing device and partly on a second computing device remote from the first computing device. In the latter scenario, the second, remote computing device may be connected to the first computing device through any type of network, including a local area network (LAN) or a wide area network (WAN).

The flowcharts and block diagrams in the figures illustrate examples of the architecture, functionality, and operation of possible implementations of systems, methods, and devices according to various embodiments. It should be noted that, in some alternative implementations, the functions noted in blocks may occur out of the order noted in the figures.

It is understood that the described embodiments are not mutually exclusive, and elements, components, materials, or steps described in connection with one example embodiment may be combined with, or eliminated from, other embodiments in suitable ways to accomplish desired design objectives.

Reference herein to "some embodiments" or "some exemplary embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment. The appearance of the phrases "one embodiment" "some embodiments," "another embodiment" or "alternative embodiment" in various places in the present disclosure do not all necessarily refer to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments.

It should be understood that the steps of the example methods set forth herein are not necessarily required to be performed in the order described, and the order of the steps of such methods should be understood to be merely an example. Likewise, additional steps may be included in such methods, and certain steps may be omitted or combined, in methods consistent with various embodiments.

As used in the present disclosure, the word "exemplary" is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word is intended to present concepts in a concrete fashion.

As used in the present disclosure, unless specifically stated otherwise, the term "or" encompasses all possible combinations, except where infeasible. For example, if it is stated that a database may include A or B, then, unless specifically stated otherwise or infeasible, the database may include A, or B, or A and B. As a second example, if it is stated that a database may include A, B, or C, then, unless specifically stated otherwise or infeasible, the database may include A, or B, or C, or A and B, or A and C, or B and C, or A and B and C.

Additionally, the articles "a" and "an" as used in the present disclosure and the appended claims should generally be construed to mean "one or more" unless specified otherwise or clear from context to be directed to a singular form.

Unless explicitly stated otherwise, each numerical value and range should be interpreted as being approximate as if the word "about" or "approximately" preceded the value of the value or range.

Although the elements in the following method claims, if any, are recited in a particular sequence, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular sequence.

It is appreciated that certain features of the present disclosure, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the specification, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the specification. Certain features described in the context of various embodiments are not essential features of those embodiments, unless noted as such.

It will be further understood that various modifications, alternatives and variations in the details, materials, and arrangements of the parts which have been described and illustrated in order to explain the nature of described embodiments may be made by those skilled in the art.

Claim 1:
A method (<NUM>) for compensating group delay variations in a CDMA spread spectrum receiver (<NUM>, <NUM>), comprising:
receiving an RF signal (<NUM>, <NUM>);
generating (<NUM>) an ideal replica signal;
filtering the RF signal (<NUM>, <NUM>) by one or more filters (<NUM>, <NUM>, <NUM>);
obtaining (<NUM>) an ideal auto-correlation function ACF (<NUM>) of the ideal replica signal;
distorting (<NUM>) the ideal ACF (<NUM>) to generate a distorted ACF (<NUM>) by a filtering model (<NUM>) of the one or more filters (<NUM>, <NUM>, <NUM>); and
aligning (<NUM>) the ideal ACF (<NUM>) and the distorted ACF (<NUM>);
characterized by calculating (<NUM>) a set of correction factors (<NUM>) based on a ratio of the aligned ideal ACF (<NUM>) and the distorted ACF (<NUM>);
calculating (<NUM>) a cross-correlation signal based on the filtered RF signal and the ideal replica signal; and
obtaining a compensated correlation signal by applying (<NUM>) the set of correction factors (<NUM>) to the cross-correlation signal, wherein applying the set of correction factors (<NUM>) to the cross-correlation signal comprises multiplying the set of correction factors (<NUM>) with the cross-correlation signal.