- freely available
Sensors 2012, 12(7), 9666-9686; doi:10.3390/s120709666
Published: 17 July 2012
Abstract: COMPASS is an indigenously developed Chinese global navigation satellite system and will share many features in common with GPS (Global Positioning System). Since the ultra-tight GPS/INS (Inertial Navigation System) integration shows its advantage over independent GPS receivers in many scenarios, the federated ultra-tight COMPASS/INS integration has been investigated in this paper, particularly, by proposing a simplified prefilter model. Compared with a traditional prefilter model, the state space of this simplified system contains only carrier phase, carrier frequency and carrier frequency rate tracking errors. A two-quadrant arctangent discriminator output is used as a measurement. Since the code tracking error related parameters were excluded from the state space of traditional prefilter models, the code/carrier divergence would destroy the carrier tracking process, and therefore an adaptive Kalman filter algorithm tuning process noise covariance matrix based on state correction sequence was incorporated to compensate for the divergence. The federated ultra-tight COMPASS/INS integration was implemented with a hardware COMPASS intermediate frequency (IF), and INS's accelerometers and gyroscopes signal sampling system. Field and simulation test results showed almost similar tracking and navigation performances for both the traditional prefilter model and the proposed system; however, the latter largely decreased the computational load.
The global COMPASS or Beidou II is a second generation Chinese satellite navigation system being developed from its first generation predecessor, Beidou I, which was a regionally-based system [1,2]. By the end of 25 February 2012 eleven COMPASS satellites have been launched successfully. Currently, COMPASS is providing reliable position services to the south and southeast coastland of China and south Asian areas .
Like a GPS receiver, the COMPASS receiver also faces the paradoxical situation in optimising the carrier-tracking loop bandwidth to guarantee anti-jamming capability and dynamics adaptation simultaneously, i.e., anti-jamming capability needs a narrow bandwidth while dynamics adaptation needs a wider one [4,5]. Ultra-tight GPS/INS integration was actually proposed to solve this problem [6–11]. The basic concept behind the ultra-tight integration approach is that, the dynamics of the GPS receiver measured by an INS can be integrated with the GPS tracking loop, which results in ‘dynamic-free’ GPS signals  that enters the tracking loop, so that GPS receiver's anti-jamming capability and dynamic adaptation can be guaranteed simultaneously. In this paper, the discussion is based on COMPASS B3 frequency signal which share many features in common with the GPS L1 frequency signal [1,2], and therefore the previous discussions on ultra-tight GPS/INS integration are applicable to COMPASS/INS system with minor modifications.
Generally, the ultra-tight GPS/INS integrated navigation systems can be classified as central architecture [6,8] and federated architecture [9,10]. In central architecture, carrier and code tracking and INS corrections are performed simultaneously in a single integrated Kalman filter, as shown in Figure 1 . The kernel of its implementation lies in establishing the mathematical relationship between I/Q measurements and INS error states (position, velocity, attitude, gyroscope and accelerator bias errors), which is nonlinear. In addition, if six measurements are contained in each channel, for N channels a 6 × N dimension measurement information need to be processed. For this reason, the central architecture is difficult to implement in real-time applications, and therefore the discussion primarily focuses on the federated architecture in this paper.
In federated architecture, the large integrated Kalman filter is decomposed into two filters operating at different rates , as shown in Figure 2 . The code and carrier tracking loops are completed in a baseband signal pre-processing filter (prefilter for short) in each channel, and the integrated navigation filter (master filter) is used to process the output of the prefilters and restrict the INS errors. Different prefilter models and their impact on GPS signal tracking have been discussed in [14,15]. Generally, the normalized signal amplitude, carrier phase tracking error, carrier frequency tracking error, carrier frequency rate tracking error and code phase tracking error are included in the state space of prefilter, and the code and carrier discriminator outputs are used as measurements to ensure a linear Kalman filter implementation for the prefilter.
A common characteristic of traditional prefilter models is that the signal amplitude is independent of other state variables and discriminator outputs, such that the observability of normalized signal amplitude would be a substantial problem in actual implementation . It is well known that carrier tracking has more stringent requirements than the code tracking [4,5], besides, the code Doppler frequency is proportional to the carrier frequency, and the code phase can be controlled by shifting the code rate . Therefore, the carrier tracking is emphasized during the prefilter implementation.
This paper has proposed a simplified prefilter model and a corresponding adaptive Kalman filter algorithm to replace the traditional one. The state space of this simplified prefilter model consists of only carrier phase tracking error, carrier frequency tracking error and carrier frequency rate tracking error, and the two-quadrant arctangent discriminator output is used as a measurement. Since the code tracking error component has been excluded from the state space, if the code/carrier divergence was ignored it will destroy the carrier tracking process [11,18]. An adaptive Kalman filter algorithm was therefore used to compensate for the code/carrier divergence where the process noise covariance was tuned online based on state correction sequence . The performance of federated ultra-tight COMPASS/INS integration with this simplified adaptive prefilter (S-AKF for short) has been compared with the traditional filter (T-KF for short). Two sets of data, collected in a field environment and with a complex GNSS/INS signal hardware simulator respectively, were used to assess the performance. Test results showed a more or less identical tracking and navigation performance of S-AKF with that of T-KF; however, S-AKF largely reduced the computational load.
The remainder of this paper is organized as follows: Section 2 introduces a commonly used prefilter and integrated navigation filter models in federated GPS/INS architecture, Section 3 introduces the simplified prefilter model and corresponding adaptive Kalman filter algorithm, in addition, the COMPASS/INS integrated navigation filter model is also proposed. Section 4 evaluates the performance of S-AKF and T-KF through simulation and field experiments. The paper finishes with conclusions and an outline of future work in Section 5.
2. Traditional Filter Model in Federated GPS/INS Integration
Before introducing the simplified adaptive prefilter model of ultra-tight COMPASS/INS integration, a brief introduction is given on traditional prefilter and integrated navigation model of federated GPS/INS integration. Expanding Figure 2 for a single channel, the architecture of federated ultra-tight GPS/INS integration is shown in the Figure 3 [7,11]. Prefilter and integrated navigation filter are two kernel components of this architecture.
2.2. Traditional Prefilter Model
In federated ultra-tight GPS/INS integration, the prefilters are responsible for implementing code and carrier tracking, and also providing measurement information and corresponding measurement noise matrices for the integrated navigation filter [9–11]. For specific appliactions different prefilter models have been investigated [14,15]. A most commonly used prefilter model will be introduced here, the performance of which will be compared with that of a simplified prefilter model with an adaptive Kalman filter. The system model for the prefilter is written as follows :
The outputs of normalized early-minus-late envelope code discriminator and two-quadrant arctangent carrier discriminator are used as measurements, and the measurement equation is written as follows [14,15]:
As shown in Equation (3), the code phase error δτ is proportional to the carrier frequency error δf, and in order to decrease the state space dimension the “carrier aided code tracking process” can be implemented “outside” the prefilter. In addition, as shown in Equation (4), if the normalized discriminators were used the measurements would contain no information of estimated signal amplitude, and the observability of which would be a substantial problem . In some cases, the baseband I/Q information were used as measurements directly [14,15] including the signal amplitude; however, a non-linear filter algorithm is required to implement code and carrier tracking [7,14,15]. Considering the above analysis, the code phase error and signal amplitude will be excluded from the state space of prefilter in the following discussion.
3. The Simplified Prefilter Model with Application to Federated Ultra-Tight COMPASS/INS Integration Implementation
A simplified prefilter model for the federated ultra-tight COMPASS/INS integration is investigated for the reduction in the calculation load, and the corresponding integrated navigation filter model is also analyzed.
3.1. Simplified Prefilter Model with Adaptive Kalman Filter
For the jth (j = 1, 2, …, N) channel, the system model of the simplified pre-filter is defined as follows (discrete form):
The measurement is the output of two-quadrant arctangent carrier discriminator, and the corresponding measurement model is:
Since the navigation solution accuracy is insufficient for carrier phase tracking , the carrier phase is modified by channel filter directly, as shown in Figure 3. The carrier NCO control information is provided as follows:
In Equation (7), the carrier Doppler frequency is obtained from corrected INS information and COMPASS ephemeris as follows:
Since the code tracking related parameter has been excluded from the state space of this simplified prefilter model, the code tracking is controlled by the carrier tracking process. The code NCO control information is provided as:
Equation (8) shows that the carrier Doppler frequency is obtained from INS information directly and Equation (9) shows that code phase is controlled by code frequency and propagated forward sequentially. As the code frequency is obtained from carrier frequency Doppler, the feedback from traditional prefilter to code NCO computation is omitted as shown in Figure 3 with a dashed arrow.
Comparing Equations (3) and (5), it can be observed that the code/carrier divergence has been excluded from process noises in the simplified prefilter model resulting in degradation in the carrier tracking process [11,18]. Therefore, an adaptive Kalman filter was incorporated to compensate for the code/carrier divergence. Multi-model-based and innovation-based adaptive estimations are most commonly used adaptive Kalman filtering algorithms . Since the simplified prefilter model is already determined an innovation-based adaptive estimation was adopted here. In innovation-based adaptive estimation, the process and measurement noise covariance matrices are adapted using innovation sequences; however, since the code/carrier divergence is a process noise the adaptation emphasis is on in this manuscript. The initial value of is calculated as follows:
The state correction sequence is used to adapt the process noise covariance matrix which is computed as follows :
While a standard Kalman filter, shown in Equation (13), is used to estimate the states of a traditional prefilter model, an adaptive Kalman filter is used for the simplified prefilter model:
Associated matrix multiplication operations in above Kalman filter algorithms are implemented to compare the computational complexities of both filter models. Table 1 shows the number of multiplication operations in detail.
4. Test Description
Federated COMPASS/INS integration with S-AKF and T-KF were implemented in software. Two sets of data were used to compare the performance of S-AKF and T-KF. First, data were collected using a hardware complex GNSS/INS signal simulator to assess the performance in high dynamic case. Second, field data were collected with a COMPASS B3 frequency antenna and an INS to assess the tracking performance of the above two methods.
The comparison of the performance of S-AKF and T-KF is made in both the tracking domain and navigation domain. In tracking domain, Phase Lock Indicator (PLI) and Doppler frequency tracking error are used to evaluate the carrier phase tracking ability. In navigation domain, the position and velocity errors in Earth Centered Earth Fixed (ECEF) frame were compared.
4.1. Simulation Test Results
For the simulation tests, a complex GNSS/INS signal hardware simulator was used to generate the COMPASS radio frequency(RF) signal and INS's accelerometers and gyroscopes data (INS data for short). A hardware sampling system was constructed to sample and store the digitized COMPASS IF signal and INS data. Data collection process for the simulation case is shown in Figure 5.
The data collection system consists of complex GNSS/INS signal hardware simulator, COMPASS B3 RF module, FCFR-PCIe9801 data sampling card , RCK-I-ET224-MC electronic disk  and FS725 rubidium clock . The function of each component is as follows:
GNSS/INS hardware simulator provides synchronized COMPASS B3 frequency RF signal and INS data; the vehicle scenario and signal strength can be configured by users for their corresponding applications.
COMPASS B3 RF module is responsible for down-converting B3 RF signal into IF signal and providing driving clock for FCFR-PCIe9801 data sampling card. A reference sampling clock from Rubidium Oscillator is used for the data sampling card.
FCFR-PCIe9801 data sampling card completes the data sampling process of IF signal and transfers the sampled data to electronic disk in real time.
RCK-I-ET224-MC electronic disk is responsible for storing sampled IF data from sampling card.
FS725 rubidium clock provides reference clock for radio frequency module.
The ultra-tight COMPASS/INS integration algorithm was implemented in MATLAB, and the parameters defined in baseband signal processing part are listed in Table 2.
In Table 2, h0 and h−2 are quantitative description of oscillator biases of COMPASS B3 RF module and FS725 rubidium clock. With the complex GNSS/INS signal hardware simulator, a reference trajectory with known dynamics was generated with 10 mg accelerometer bias errors and 200 deg/h gyroscope bias errors. The reference position and velocity in ECEF frame are shown in Figure 6(a), where “star” represents the initial position while ‘square’ represents the end. The COMPASS signal strength was kept at −130 dBm (C/N0 ≈ 35 dB − Hz). The satellites 01, 02, 03, 04, 07 and 08 were visible during the simulation test, and the sky plot of the satellites is shown in Figure 6(b).
4.1.1. Tracking Domain Analysis
Phase lock indicator (PLI) and Doppler frequency tracking errors were used to evaluate the tracking performance. The PLI is calculated as described by :
Simplifying Equation (12) yields:
As shown in Equation (13), the value of PLI lies between +1 and −1 and a value of positive one indicates perfect phase lock.
The variations of PLI and Doppler frequency tracking errors for SV04 and SV05 are shown in Figure 7(a,b), respectively. From these figures, the PLI values of S-AKF and T-KF are closer to +1, which indicated that both S-AKF and T-KF are in a near perfect tracking status in this case. The root mean square (RMS) of the tracking Doppler frequency errors are summarized in Table 3 where the S-AKF and T-KF showed an almost similar Doppler frequency tracking errors.
4.2. Field Test Results
A field test was conducted to collect real COMPASS B3 frequency IF data and INS data. A COMPASS B3 frequency antenna and an INS were used to replace the complex GNSS/INS signal hardware simulator in simulation case. The corresponding data collection process in the field is shown in the Figure 9. The INS used in this case had 5 mg accelerometer bias errors and 150 deg/h gyroscope bias errors.
The antenna was located on the roof of an office building to guarantee a strong COMPASS signal (C/N0 ≈ 45 dB − Hz), and the INS was collocated with the antenna. A high precision GPS receiver was used to provide the truth reference of the antenna which are −2,207,210.269, 5,171,488.332 and 3,000,859.525 m in the ECEF frame. The satellites 01, 03, 04, 05, 06, 08, 09 and 10 were visible during the field test, and the sky plot of the satellites is shown in Figure 10.
4.2.1. Tracking Domain Analysis
The variations of PLI and Doppler frequency tracking errors for SV01 and SV03 are shown in Figure 11(a,b) respectively. From these figures it can be observed that the PLI values of S-AKF and T-KF are closer to +1 which indicate that both S-AKF and T-KF were in a near perfect tracking status.
The RMS of the tracking Doppler frequency errors are summarized in Table 5. The S-AKF and T-KF showed almost similar Doppler frequency tracking errors.
5. Conclusions and Future Work
This paper investigated a simplified prefilter model for the ultratight COMPASS/INS integrated system. When compared to a traditional 5-dimension state prefilter model, the normalized signal amplitude and code tracking error were excluded, and only carrier phase, carrier frequency and carrier frequency rate tracking errors were included in the state space. However, as the code is not considered and there is a possibility of code/carrier divergence resulting in degradation in the carrier tracking process, an adaptive Kalman filter has been used to compensate for the divergence. Based on the COMPASS B3 frequency signal a federated COMPASS/INS integration system was implemented in software. A hardware sampling system was constructed to collect COMPASS IF data and INS data. Simulation and field tests showed an almost similar tracking and navigation performances of federated COMPASS/INS integration with traditional prefilter model and the proposed models. However, scalar measurement prefilter model with a 3-dimension state, even with an inclusion of an adaptive Kalman filter, has been observed to have significant reduction in the calculation load when compared to a traditional 5-dimension state and 2-dimension measurement prefilter model.
As with the GPS case, the ultra-tight COMPASS/INS integration shows an advantage over independent COMPASS receivers, particularly in low signal-to-noise and high dynamics environment. Only a static field test and a high dynamic simulation test were conducted for this analysis, and the future work will focus on further quantifying the benefits of ultra-tight COMPASS/INS integrations. The same simulation or field test will be conducted as the COMPASS, which is still a ‘local navigation’ satellite system, evolves into a global navigation satellite system in the future. Finally, although the COMPASS IF data and INS data collection was implemented in hardware, and the ultra-tight integration part was implemented in software, the future work will focus on the hardware implementation for the entire system.
This work was supported by the National Natural Science Foundation of China (Grant No. 61104201) and Program for New Century Excellent Talents (Grant No. NCET-07-0225).
- Gao, G.X.X.; Chen, A.; Lo, S.; Lorenzo, D.D.; Walter, T.; Enge, P. Compass-M1 broadcast codes in E2, E5b, and E6 frequency bands. IEEE J. Sel. Top. Signal Process. 2009, 3, 599–612. [Google Scholar]
- Gao, G.X.X.; Chen, A.; Lo, S.; Lorenzo, D.D.; Walter, T.; Enge, P. Compass-M1 broadcast codes and their application to acquisition and tracking. Proceedings of the Institute of Navigation (ION NTM 2008), San Diego, CA, USA, 28– 30 January 2008; pp. 133–141.
- Chinese COMPASS Satellite Navigation System Starts Pilot Running from this Day Onwards. Available online: http://news.sina.com.cn (accessed on 18 May 2012).
- Parkinson, B.; Spilker, J. Global Positioning System: Theory and Applications; The American Institute of Aeronautics and Astronautics (AIAA): Washington: DC, USA, 1996. [Google Scholar]
- Kaplan, E.D. Understanding GPS: Principles and Applications, 2nd ed.; Artech House: Norwood, MA, USA, 2005. [Google Scholar]
- Babu, R.; Wang, J.L. Ultra-tight GPS/INS/PL integration: A system concept and performance analysis. GPS Solut. 2009, 13, 75–82. [Google Scholar]
- Sivananthan, A.; Weitzen, J. Improving optimality of deeply coupled integration of GPS and INS. Proceedings of the Institute of Navigation (ION NTM 2009), Anaheim, CA, USA, 26– 28 January 2009; pp. 426–429.
- Bernal, D.; Closas, P.; Rubio, J.A.F. Particle filtering algorithm for ultra-tight GNSS/INS integration. Proceedings of the Institute of Navigation (ION GNSS 2008), Savannah, GA, USA, 16– 19 September 2008; pp. 2137–2144.
- Groves, P.D.; Christopher, J.M.; Alex, A.M. Demonstration of non-coherent deep INS/GPS integration for optimized signal-to-noise performance. Proceedings of the Institute of Navigation (ION GNSS 2007), Fort Worth, TX, USA, 25– 28 September 2007; pp. 2627–2638.
- Lashley, M.; Bevly, D.M. A comparison of the performance of a non-coherent deeply integrated navigation algorithm and a tightly coupled navigation algorithm. Proceedings of the Institute of Navigation (ION GNSS 2008), Savannah, GA, USA, 16– 19 September 2008; pp. 2123–2129.
- Ernest, J.O. Analysis of an ultra-tightly coupled GPS/INS system in jamming. Proceedings of IEEE /ION, Position, Location, and Navigation Symposium, Sac Diego, CA, USA, 25– 27 April 2006; pp. 44–53.
- Babu, R. Mitigating the correlations in INS aided tracking loop measurements: A Kalman filter based approach. Proceedings of the institute of Navigation (ION GNSS 2004), Long Beach, CA, USA, 21– 24 September 2004; pp. 1566–1574.
- Luo, Y.; Babu, R.; Wu, W.Q.; He, X.F. Double-filter model with modified kalman filter for baseband signal pre-processing with application to ultra-tight GPS/INS integration. GPS Solut. 2012. [Google Scholar] [CrossRef]
- Petovello, M.; Lachapelle, G. Comparison of vector-based software receiver implementation with application to ultra-tight GPS/INS integration. Proceedings of the Institute of Navigation (ION GNSS 2006), Fort Worth, TX, USA, 26– 29 September 2006; pp. 1790–1799.
- Won, J.H.; Dotterbock, D.; Eissfeller, B. Performance comparison of different forms of Kalman filter approaches for a vector-based GNSS signal tracking loop. Navigation 2010, 57, 185–199. [Google Scholar]
- Meskin, D.G.; Bar-Itzhack, I.Y. Observability analysis of piece-wise constant systems-part I: Theory. IEEE Trans. Aerosp. Electron. Syst. 1992, 28, 1056–1067. [Google Scholar]
- Borre, K.; Akos, D.M.; Bertelsen, N.; Rinder, P.; Jensen, S.H. A Software-Defined GPS and GALILEO Receiver: A Single-Frequency Approach; Birkhauser Boston: New York, NY, USA, 2007. [Google Scholar]
- O'Driscoll, C.; Petovello, M.G.; Lachapelle, G. Choosing the coherent integration time for Kalman filter-based carrier-phase tracking of GNSS signals. GPS Solut. 2011, 15, 345–356. [Google Scholar]
- Mohamed, A.H.; Schwarz, K.P. Adaptive Kalman filtering for INS/GPS. J. Geod. 1999, 73, 193–203. [Google Scholar]
- Groves, P.D. Principle of GNSS, Inertial, and Multisensor Integrated Navigation Systems; Artech House: Norwood, MA, USA, 2008. [Google Scholar]
- So, H.; Lee, T.; Jeon, S.; Kim, C.; Kee, C.; Kim, T.; Lee, S. Implementation of a vector-based tracking loop receiver in a pseudolite navigation system. Sensors 2010, 10, 6324–6346. [Google Scholar]
- Winkel, J.O. Modeling and Simulating GNSS Signal Structures and Receivers. Ph.D. Thesis, University FAF Munich, Neubiberg, Germany, 2003. [Google Scholar]
- Crane, R.N. A simplified method for deep coupling of GPS and inertial data. Proceedings of the Institute of Navigation (ION NTM 2007), San Diego, CA, USA, 22– 24 January 2007; pp. 311–319.
- User Manual. Available online: http://www.fcctec.com (accessed on 18 May 2012).
- User Manual. Available online: http://www.aquilatech.co.nz/productDetail.asp?idProduct%3DRCK-I-ET224-MC (accessed on 18 May 2012).
- User Manual. Available online: http://www.thinksrs.com/downloads/PDFs/Manuals/FS725m.pdf (accessed on 18 May 2012).
|Table 1. Computational Complexities of Kalman filter implementation.|
|Operation||Simplified prefilter model with adaptive Kalman filter||Traditional prefilter model|
|State dimension n = 3|
Measurement dimension l = 1
|State dimension n = 5|
Measurement dimension l = 2
|PHT(R + HPHT)−1||2(n2l + nl2) + 1 = 25|
|ΦX||n2 = 9||n2 = 25|
|ΦPΦT||2n3 =54||2n3 = 250|
|K(Z − HX)||1+nl=4||l3 + nl = 18|
|(I − KH)P||n3 + n2l=36||n3 + n2l =175|
|n2N = 9N||0|
|Total number of multiplications||128 + 9N||503|
|Table 2. Parameters defined in software-defined COMPASS Receiver.|
|Coherent integration time||1 ms|
|Prefilter update period||1 ms|
|Correlator spacing||0.5 chip|
|Adaptive window length (N)||5|
|h0||1.82 × 10−21 (s2/Hz)|
|h−2||1.51 × 10−20 (1/Hz)|
|Table 3. RMS Doppler frequency errors of tracked SVs with different prefilter models.|
|Prefilter model for federated ultra-tight COMPASS/INS integration||RMS Doppler frequency estimation error per PRN (Hz)|
|SV = 04||SV = 05|
|Simplified prefilter model with adaptive Kalman filter||3.773||3.094|
|Traditional prefilter model||3.687||2.974|
|Table 4. Statistics of position and velocity errors in ECEF frame with different prefilter models.|
|Prefilter model for federated ultra-tight COMPASS/INS integration||Simplified prefilter model with adaptive Kalman filter||Traditional prefilter model|
|Mean Position Error(m)||−13.436||−5.886||−30.279||−14.064||−6.036||−30.936|
|Std Position Error(m)||4.372||3.612||4.973||4.153||3.687||5.378|
|Mean Velocity Error(m/s)||−0.623||−0.267||−1.501||−0.639||−0.274||−1.406|
|Std Velocity Error(m/s)||0.199||0.207||0.237||0.188||0.197||0.244|
|Table 5. RMS Doppler frequency errors of tracked SVs with different prefilter models.|
|Prefilter model for federated ultra-tight COMPASS/INS integration||RMS Doppler frequency estimation error per PRN (Hz)|
|SV = 01||SV = 03|
|Simplified prefilter model with adaptive Kalman filter||0.663||0.744|
|Traditional prefilter model||0.613||0.778|
|Table 6. Statistics of position and velocity errors in ECEF frame with different prefilter models.|
|Prefilter model for federated ultra-tight COMPASS/INS integration||Simplified prefilter model with adaptive Kalman filter||Traditional prefilter model|
|Mean Position Error(m)||−9.231||−4.952||−18.953||−9.543||−5.011||−19.256|
|Std Position Error(m)||1.591||2.748||3.316||1.697||3.031||3.443|
|Mean Velocity Error(m/s)||−0.151||−0.069||−0.299||−0.164||−0.074||−0.312|
|Std Velocity Error(m/s)||0.030||0.047||0.052||0.028||0.049||0.055|
© 2012 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).