International Journal of Navigation and Observation

Volume 2008 (2008), Article ID 738183, 12 pages

http://dx.doi.org/10.1155/2008/738183

## Data and Pilot Combining for Composite GNSS Signal Acquisition

Dipartimento di Elettronica, Politecnico di Torino, Corso Duca degli Abruzzi, 10129 Torino, Italy

Received 1 August 2007; Revised 20 December 2007; Accepted 18 March 2008

Academic Editor: Olivier Julien

Copyright © 2008 Daniele Borio and Letizia Lo Presti. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

With the advent of new global navigation satellite systems (GNSS), such as the European Galileo, the Chinese Compass and the modernized GPS, the presence of new modulations allows the use of special techniques specifically tailored to acquire and track the new signals. Of particular interest are the new composite GNSS signals that will consist of two different components, the data and pilot channels. Two strategies for the joint acquisition of the data and pilot components are compared. The first technique, noncoherent combining, is from the literature and it is used as a comparison term, whereas the analysis of the second one, coherent combining with sign recovery, represents the innovative contribution of this paper. Although the analysis is developed with respect to the Galileo E1 Open Service (OS) modulation, the obtained results are general and can be applied to other GNSS signals.

#### 1. Introduction

With the advent of the new global navigation satellite system (GNSS), such as the European Galileo and the Chinese Compass, new signals and new modulations have been introduced in order to guarantee the coexistence and interoperability with existent systems, like the American GPS, and to fully exploit the technologies currently available.

An example of those new signals is the coherent adaptive subcarrier modulation (CASM) that will be used for the transmission of the Galileo signal on the E1 frequency. CASM combines three different signals in a constant amplitude modulation that allows the use of efficient class C amplifiers [1, 2].

The three signals combined in the CASM are denoted as the , , and channels. The first one is used for public-regulated service (PRS), whereas the latter two will provide the open service (OS). The and channels have two different roles: the first one, denoted data channel, will carry the navigation message whereas the second one, denoted pilot channel, will be used for determining the pseudoranges between the satellites and the receiver. The and signals will be transmitted at the same time, at the same frequency, and they will be separated only by different codes [3]. The A signal is not completely defined by the galileo interface control document [1] but will probably be separated in frequency as for the A signal emitted by Giove-A [4], the first experimental satellite of the Galileo constellation.

The presence of new modulations allows one to adopt special techniques specifically tailored to acquire and track new signals.

One solution, when acquiring composite GNSS signals such as the Galileo E1 OS modulation, consists in ignoring the data channel and processing only the pilot signal. In this way only half of the useful power is employed and the GNSS receiver could not be able to acquire and track signals that would be easily processed if all the useful power were used. Pilot and data channel combining allows recovering all the available power improving the acquisition performance and providing more reliable signal detection. For these reasons the design of signal combing techniques is critical for the efficient acquisition of the new GNSS signals.

In this paper, Galileo E1 OS signals are considered and in particular two acquisition strategies for the efficient combining of data and pilot channels are analyzed. In the first strategy, called noncoherent combining, the received signal is correlated separately with the pilot and data local replicas. The correlation outputs are then squared and summed. This strategy essentially exploits the principle of noncoherent integration [5–7] employed to extend the integration period over the bit duration. Its use for data and pilot combining is reported by [8], however its performance in terms of false alarm and detection probabilities has been only marginally investigated.

The second strategy consists in multiplying the
received signal by two new signals, obtained by summing and subtracting the
data and pilot local replicas, respectively. Then, the maximum of the two
correlations is adopted as decision variable. This strategy can be seen as an
extension of the *(b–c)* technique proposed by [9, 10] in which only the
correlation with the difference between data and pilot codes was considered.
This second strategy implements the Maximum Likelihood estimator for the code
delay, the Doppler frequency, and the relative phase between data and pilot
channels, and, to the best of our knowledge, has never been applied to the E1
OS signals. This strategy allows the coherent combining of data and pilot
channels and it will be denoted as coherent channel combining with sign
recovery. The proposed method is the adaptation of the acquisition strategy
proposed in [11] to
the Galileo E1 OS signal. In particular [11] considered the case of data and pilot components
transmitted with a degree phase difference. Moreover, [11] only proposed the method
without providing any analytical characterization of its performance.

Both strategies have been analyzed in terms of false alarm and detection probabilities and closed-form expressions for the probabilities of coherent channel combining with sign recovery have been derived. To the best of our knowledge these expressions have never been derived before and represent one of the innovative contributions of this paper. Moreover, these formulas are general and can be easily adapted to the case of other modulations, for example, for the GPS L5 case that has been analyzed only by simulations [11].

In the analysis the coherent integration time is limited to a single code period. In this way the acquisition block has not to deal with the problem of bit transitions that can occur every milliseconds. Moreover, an integration time of milliseconds should be sufficient to acquire GNSS signals in high to moderate conditions. The problem of bit transitions can be overcome by using noncoherent integrations. The integration time can be also increased by considering the pilot channel alone and exploiting the structure imposed by its secondary code [11]. These issues are however out of the scope of this paper.

Monte Carlo techniques have been used for supporting the theoretical analysis: simulations and analytical expressions agree well proving the effectiveness of the developed theory.

From the analysis it emerges that the coherent combining always outperforms noncoherent combining and thus it should be adopted for the joint acquisition of data and pilot channels.

This work is organized as follows: Section 2 introduces the CASM and provides a model for Galileo E1 OS signals. In Section 3 the noncoherent and coherent combining algorithms are described and the expressions for false alarm and detection probabilities are derived. In Section 4 the derived formulas are validated by Monte Carlo simulations. Finally, the conclusions are presented in Section 5.

#### 2. Signal and System Model

The signal at the input of a Galileo receiver, in one-path additive Gaussian noise environment, can be written asthat is the sum of useful signals, emitted by different satellites and with power , and of a noise term . Each signal , in the Galileo E1 band, is given by [1, 2]: where (i), and are the three useful signals emitted on the E1 frequencies and corresponding to the , , and channels, respectively, and is a restricted access signal for PRS whereas and are the data and pilot signals for OS;(ii), , and are the delay, the Doppler frequency, and the phase introduced by the transmission channel;(iii) MHz is the E1 central frequency., , and are real binary sequences that assume value in the set . These three signals are combined according to the CASM in order to obtain a constant envelope signal . This result is achieved by introducing the term proportional to the three useful signals in (2).

The input signal (1) is recovered by the receiver antenna, downconverted, and filtered by the receiver front end. A low-IF receiver is assumed. In mass-market receivers the bandwidth of the front-end filter is generally limited to a few MHz and thus the components depending on the PRS signal in (2) can be considered eliminated by the filtering process. This is due to the fact that a BOC(15,2.5) modulation [2, 4] is employed for the PRS signal. This modulation splits the PRS signal power far from the E1 central frequency where the power spectral densities (PSD) of the OS signals are concentrated. In this way, the received signal, before the analog-to-digital (AD) conversion, is given by where is the receiver intermediate frequency and is the downconverted and filtered noise component. In (3) the effect of the front-end filtering on the OS components is considered negligible.

Finally, (3) is sampled and AD is converted, obtaining, by neglecting the quantization impact, the following signal model:In the following, the notation will indicate a discrete-time sequence , obtained by sampling a continuous-time signal with a sampling frequency . For this reason (4) can be rewritten aswhere and . represents the total power of the th received signal since the termhas unitary power. The spectral characteristics of depend on the type of filtering along with the sampling and decimation strategy adopted in the front end. A convenient choice is to sample the IF signal with a sampling frequency , where is the one-sided front-end bandwidth. In this case, it is easily shown that the noise variance becomeswhere is the Power Spectral Density of the IF noise. The autocorrelation functionimplies that the discrete-time random process is a classical independent and identically distributed (iid) wide-sense stationary (WSS) random process, or a white sequence. is the Kronecker delta. From now on, this signal model is adopted and the system performance is expressed in terms of Carrier-to-Noise Ratio .

Both data and pilot signals in (5) can be represented as the product of three termswhere is a spreading code of length , is the subcarrier signal that in the Galileo OS signal is the BOC(1,1), and is the navigation message for the data signal and the secondary code in the pilot case. is constant over one code period. Hereinafter the product between the code and the subcarrier will be denoted asAs a result of code orthogonality, the different Galileo codes are analyzed separately by the receiver, and thus hereinafter the case of a single satellite is considered and the index is dropped. Thus the resulting signal is

#### 3. OS Signals Acquisition

In traditional GPS receivers the delay and the Doppler frequencies of received signals are estimated by using the correlation with local signal replicas opportunely delayed and modulated. In the acquisition stage, the code delay and Doppler frequency are estimated as the ones that make the correlation with the local replica pass a fixed threshold. In the Galileo E1 case however this strategy cannot be directly employed since two different signals are present. Moreover, due to the navigation message on the data channel and to the secondary code on the pilot channel, these two components can be either summed or subtracted.

In this Section, we analyze two possible strategies for signal acquisition for Galileo OS signals. The performance of the two algorithms is evaluated in terms of false alarm and detection probabilities that are the probabilities that the decision variable passes a fixed threshold under two different hypotheses:

(*H _{0}*)the signal is present and correctly aligned with the local replica;(

*H*)the signal is absent or not correctly aligned with local replica. The plot of the detection probability versus the false alarm probability is called receiver operating characteristic (ROC) and it completely defines the system performance [12]. The ROCs are usually employed for comparative analysis, as effective metric for characterizing an acquisition system [5, 6]. For these reasons they are adopted in this work and used as basis for the analysis of the two acquisition algorithms considered in the paper.

_{1}##### 3.1. Pilot and Data Noncoherent Combining

The conceptual scheme for the acquisition of Galileo E1 signals, with the noncoherent combination of data and pilot channels, is depicted in Figure 1. The received signal is multiplied by two orthogonal sinusoids at the frequency , leading to the in-phase () and quadrature () components. These signals are then split in two different branches where the correlations with the data and pilot codes are evaluated. The cross-correlations from the two branches are noncoherently combined leading to the decision variablewhereare the cross-correlations of the received signal with the data and pilot replicas delayed by and modulated by . In (13) denotes the number of samples used to integrate the received signal over one-code period. More specifically, is given by , where milliseconds is the duration of one code period, is the sampling frequency, and denotes the floor operator. Since the cross-correlations and have been obtained from the input signal , they also depends on , , and , the parameters that characterize . The dependence on these parameters has not been explicitly reported in (13) for the ease of notation.

The multiplication by the complex exponential in (13) is implemented in Figure 1 by the multiplication with the two orthogonal sinusoids.

In Appendix A it is shown that and are two complex Gaussian random variables that, due to the orthogonality properties of Galileo codes [3], are approximatively independent. Thus and are two random variables with degrees of freedom. From this consideration and (12), is a random variable with degrees of freedom.

In order the determine the ROC, the two following probabilities have to be evaluated:When the signal is not present or not correctly aligned it is possible to assume [5, 6] that both and are zero mean. Thus is a central random variable, whose distribution is completely characterized by the variance of and of . From (13) we haveEquation (15) directly derives from the noise model reported in Section 2. In this case it is assumed that the input noise is a white sequence. In a real GNSS receivers the front end can introduce some correlation among the different noise samples. This correlation causes a correlation loss [13] that would affect both noise and signal components. This effect could be included in the analysis but it would introduce no further insight and thus, for the sake of clarity, it is not considered in this context.

Since both and are complex random variables with iid real and imaginary parts, the variance (15) is equally divided between the two components and thus we can define is the variance of the real and of the imaginary parts of and . Given these premises and exploiting the fact that is a central random variable it is possible to derive the false alarm probability [14]When the signal is present and correctly aligned is a noncentral random variable with noncentrality parameterthat assumes the following expression [13, 15]: where (i) is the difference between the Doppler frequencies of the received signal and of the local replica;(ii) is the difference between the delays of the received signal and of the local replica, normalized with respect to the sampling interval;(iii) is the correlation between the incoming code, filtered by the frontend, and the code generated at the receiver. When the Doppler frequency and the delay of the local replica match the ones of the received signal, the loss can be assumed negligible and .

From these considerations it is possible to evaluate the detection probability [14, 16]where is the Generalized Marcum function of order 2 [16, 17], defined aswhere is the modified Bessel function of first kind and order [18].

##### 3.2. Pilot and Data Coherent Combining with Sign Recovery

By considering (11) and by collecting the navigation message of the data channel, it is possible to rewrite the received signal asExpressed in this form, (22) indicates that the navigation message is spread by the equivalent pseudorandom sequenceSince the navigation message and the secondary code are constant over one code period and since they can assume only two values, and , only two equivalent spreading sequences are possibleIn the coherent combining scheme, the received signal is correlated with both equivalent codes: the equivalent code that maximizes the cross-correlation is likely the correct one. Based on this principle the decision variable is given bywhereThis kind of algorithm is based on the Maximum Likelihood estimator for the code delay, Doppler frequency, and relative sign between data and pilot channels, since, as shown in Appendix B, the maximization of the correlation function, with respect to the delay , the frequency , and the ratio , corresponds to the maximization of the likelihood function evaluated for the received signal .

The acquisition scheme with coherent combining is reported in Figure 2: the received signal is correlated with the two equivalent codes and the decision variable is obtained by choosing the maximum of the two cross-correlations. It has to be noted that the variables and can be obtained by opportunely combining the cross-correlations with the data and the pilot codesIn this way the coherent combining algorithm can be implemented with a computational load similar to the one required by the noncoherent combining strategy.

From (28) and (27) it clearly emerges that and are linear combinations of and . Thus, since and are complex Gaussian random variables, and are also complex and Gaussian.

The ROC for the coherent combining strategy can be easily obtained by determining the false alarm and detection probability of the variables and . In fact it can be easily shown that the false alarm and the detection probabilities of the decision variable are given byThe last line in (29) has been obtained by exploiting the independence between and that derives from the independence of and . In fact we haveEquation (30) is zero since and are equally distributed and the difference of their mean cancels out. From (30) and are uncorrelated and, since they are both Gaussian random variables, independent. For these reasons and are also independent.

Since and are Gaussian random variables, and are distributed with two degrees of freedom. When the signal is absent, or the local replicas are not aligned with the received signal, then and are both central random variables [14] and the false alarm probability of isEquation (31) has been obtained by substituting the cumulative density function (cdf) of central random variables [14] into (29). It can be noted that the exponential in (31) depends on instead of as for (17). This is due to the fact that the equivalent code (24) has twice the power of the single pilot and data codes.

When the Galileo signal is present and correctly aligned with the local replica, and are no more central random variables, and the noncentrality parameters and have to be determined. and can be obtained by determining the mean of and under the hypothesis that the local equivalent code matches or not the navigation bit. In particular we haveand similarlyFrom these considerations it emerges that the decision variable , under the hypothesis of presence of signal and correct alignment, is given by the maximum between a central and a noncentral random variables with two degrees of freedom. The noncentrality parameter of the noncentral random variable is given byGiven these premises it is finally possible to express the detection probabilitywhere is the Marcum function of order .

#### 4. Simulation Analysis

In order to validate the theoretical analysis developed in the previous sections, the Galileo E1 OS has been simulated according to the parameters reported in [1] and acquired according to the two methods considered in this work. The simulation parameters are reported in Table 1. More in detail a GNSS signal has been simulated according to model (11). The spreading codes from [1] has been used to generate the Galileo E1 OS signals, and the acquisition systems depicted in Figures 1 and 2 have been implemented in order to evaluate the decision statistics (12) and (25). The false alarm and detection probabilities have been estimated by verifying if the decision variables, under both () and () hypotheses, passed or not the decision threshold obtained by inverting (20) and (31). trials have been used for the estimation process. Frequency and delay errors have not been simulated and, for the evaluation of the detection probability, the incoming signal has been considered perfectly aligned with local replica. These errors were not considered in the theoretical model and thus they have not been considered in the simulation scheme as well. The impact of frequency and delay residual errors has been extensively studied in [15] and can be easily included in the models developed in previous sections. This topic is however out of the scope of this paper.

The simulations results are reported in Figures 3, 4, and 5, where the cases of , and dB-Hz have been considered. These values have been chosen since they represent marginally strong and weak signal conditions. The probabilities evaluated by Monte Carlo simulations match the theoretical models developed in previous sections and the theoretical and simulated ROCs overlap in all the considered cases. Simulations effectively support the theoretical models proving the effectiveness of the analysis developed in Section 3.

It can be noted, from Figures 3, 4, and 5, that the coherent acquisition algorithm always outperforms the noncoherent combining strategy. Moreover, it can be observed that the two methods tend to have similar performance for low . This performance degradation of coherent combing with sign recovery is probably due to the fact that, for low , the estimation of the relative phase between data and pilot becomes unreliable preventing an effective combination of the two channels transmitted for the Galileo E1 OS.

#### 5. Conclusions

In this paper, two different acquisition strategies for the acquisition of the Galileo E1 OS signals have been considered and deeply analyzed. The first strategy, the noncoherent combining, is from the literature whereas the analysis of the second one, coherent combining with sign recovery, is new and represents the innovative contribution of this paper. An analytical model for the false alarm and detection probabilities of both algorithms has been derived and Monte Carlo simulations have been used for supporting the theoretical analysis. From the theoretical model and simulations it is shown that the coherent combining algorithm outperforms the noncoherent combing proving the effectiveness of the proposed method. Thus, provided that both algorithms require similar computational loads, the coherent combining acquisition algorithm results in preferable to noncoherent combining and should be adopted for the joint acquisition of the E1 OS data and pilot channels.

#### Appendices

#### A. Independence of the Random Variables at the Output of the Data and Pilot Correlators

In this appendix we show that the random variables, obtained by correlating the input Galileo signal with the local replicas of the data and pilot channels, are approximatively independent. The proof is based on the correlation properties of Galileo memory codes [3].

From (11) the signal at the input of the Galileo receiver is the sum of a useful term and of white Gaussian noise. This input sequence is correlated with local replicas of the data and pilot primary codes, opportunely delayed and modulated, and for each satellite, a pair of random variables is obtained:Since is the sum of a deterministic component and white Gaussian noise and since both and are linear transformations of , then their independence can be proven by consideringthat are obtained from the noise component of . Since the input noise is assumed to be zero mean and since the useful signal component determines the mean of the correlation function, it is possible to write and . Thus the independence of and implies the independence of and . By definingit is then possible to rewrite (A.2) asand the covariance between and becomesThe covariance (A.5) is almost zero for the quasi-orthogonality of the Galileo memory codes. In (A.5) the fact that and has been used. is the identity matrix.

From (A.5) and can be considered uncorrelated and thus, since they are Gaussian random variables, independent.

#### B. Maximum Likelihood Estimator

In this appendix, the Maximum Likelihood estimator for the delay , the Doppler frequency , and the relative phase between the Galileo E1 OS data and pilot channel is derived. Its connection with the coherent acquisition block with sign recovery is also shown.

In this context the signal presence is assumed and the signal parameters are treated as unknown constants. By considering (22) and by assuming a white Gaussian sequence, it is possible to derive the joint probability density function of the set :where (i)(ii) is the relative phase between the data and the pilot channels and can assume two values: and ,(iii) is the th component of the vector . The Likelihood function for the set is given byand its maximization is obtained by maximizing the argument of the exponential in (B.3). Thus the Maximum Likelihood estimator for is given byThe term does not depend on and thus can be dropped. Moreover,where the orthogonality between and and the fact that the summation in (B.5) acts as a lowpass filter have been exploited. Equation (B.5) shows that also the term is approximatively independent from the parameters and thus (B.4) becomesSince the navigation bit is supposed constant over one-code period it can be moved out the summation in (B.6). Equation (B.6) represents the expression for the maximum likelihood estimator for , however it can be applied only under the hypothesis of knowing the bit and the phase . In order to remove the dependence from those two parameters the cost function considered in (B.6) is usually modified according to the following methodology. Since all the terms in the last summation of (B.6) are real signals, it is possible to rewrite (B.6) as follows:that is, the real part of a complex scalar product. Equation (B.7) can be further expanded aswhere the terms in square brackets do not depend on the phase and on the sign . Since takes values in it has been expressed asThe summation in (B.8) is a complex number that can be expressed in terms of phase and amplitude asIn this way (B.8) can be rewritten asIf the phase and the sign are unknown, they can be estimated by maximizing (B.11) also with respect to these two parameters. Equation (B.11) is maximized with respect to and when the conditionis verified. By substituting (B.12) into (B.11), the joint estimator for the delay , the Doppler frequency , and the relative phase becomesthat is a form of quadrature or incoherent matched filter [19]. The estimator (B.13) is equivalent to the coherent acquisition block with sign recovery

#### Acknowledgment

The authors would like to thank Laura Camoriano for her support during the development of this work.

#### References

- “Galileo open service signal in space interface control document,” May 2006, European Space Agency/Galileo Joint Undertaking, Draft GAL OS SIS ICD/D.0.
- K. Borre, “The galileo signals with emphasis on L1 OS,” in
*Proceedings of the 12th International Power Electronics and Motion Control Conference (EPE-PEMC '06)*, p. 2025, Portoroz, Slovenia, August 2006. View at Publisher · View at Google Scholar - S. Wallner, J. Avila-Rodriguez, and G. W. Hein, “Galileo E1 OS and GPS L1C pseudo random codes requirements, generation,
optimization and comparison,” in
*Proceedings of the 1st CNES Workshop on Galileo Signals and Signal Processing*, Toulouse, France, October 2006. - “Giove-A open service signal in space interface control document,” March 2007, Galileo Project Office, First Issue ESA-DEUI-NGICD/02703.
- E. D. Kaplan and C. J. Hegarty, Eds.,
*Understanding GPS: Principles and Applications*, E. D. Kaplan and C. J. Hegarty, Eds., Artech House, Norwood, Mass, USA, 2nd edition, 2005. - P. Misra and P. Enge,
*Global Positioning System: Signals, Measurements and Performance*, Ganga-Jamuna Press, Lincoln, Mass, USA, 2001. - G. Lachapelle and M. Petovello, “Weak Signal Tracking and High-Sensitivity GPS for Indoors,” September 2005, Navtech GPS, vol. 3. View at Google Scholar
- J. W. Betz, “Systems, Signals and Receiver Signal Processing,” September 2006, Navtech GPS, vol. 3. View at Google Scholar
- P. G. Mattos, “Acquisition of the galileo OS L1b/c signal for the mass-market receiver,” in
*Proceedings of the 18th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS '05)*, p. 1143, Long Beach, Calif, USA, September 2005. - P. G. Mattos, “Galileo L1c—acquisition complexity: cross correlation benefits, sensitivity discussions on the choice of pure pilot, secondary code, or something different,” in
*Proceedings of IEEE/ION Position, Location, and Navigation Symposium (PLANS '06)*, p. 845, San Diego, Calif, USA, April 2006. View at Publisher · View at Google Scholar - C. Yang, C. Hegarty, and M. Tran, “Acquisition of the GPS L5 signal using coherent combining of I5 and Q5,” in
*Proceedings of the 17th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS '04)*, p. 2184, Long Beach, Calif, USA, September 2004. - R. N. McDonough and A. D. Whalen,
*Detection of Signals in Noise*, Academic Press, Boston, Mass, USA, 2nd edition, 1995. - A. J. V. Dierendonck, “GPS receivers,” in
*GPS Theory and Applications*, B. W. Parkinson and J. J. Spilker, Jr., Eds., vol. 1, American Institute of Aeronautics and Astronautics, Washington, DC, USA, 1st edition, 1996. View at Google Scholar - J. Proakis,
*Digital Communications*, McGraw-Hill, Boston, Mass, USA, 4th edition, 2000. - D. Borio, M. Fantino, L. Lo Presti, and L. Camoriano, “Acquisition analysis for galileo BOC modulated signals: theory and simulation,” in
*Proceedings of the European Navigation Conference (ENC '06)*, Manchester, UK, May 2006. - D. A. Shnidman, “The calculation of the probability of detection and the generalized Marcum Q-function,”
*IEEE Transactions on Information Theory*, vol. 35, no. 2, 389 pages, 1989. View at Publisher · View at Google Scholar - D. A. Marcum, “A statistical theory of target detection by pulsed radar,”
*IRE Transactions on Information Theory*, vol. 6, 59 pages, 1960. View at Google Scholar - M. Abramowitz and I. A. Stegun, Eds.,
*Handbook of Mathematical Functions: with Formulas, Graphs, and Mathematical Tables*, M. Abramowitz and I. A. Stegun, Eds., Dover, New York, NY, USA, 1965. - S. M. Kay,
*Fundamentals of Statistical Signal Processing, Volume 2: Detection Theory*, Prentice Hall Signal Processing Series, Prentice Hall, Upper Saddle River, NJ, USA, 1st edition, 1998.