Description
The Positioning Calculation Function (PCF) is a critical component of the 3GPP Location Services (LCS) architecture, responsible for the computational aspect of determining a mobile device's location. It acts as the 'engine' of the positioning system. The PCF receives raw measurement data and requests from the Gateway Mobile Location Center (GMLC) or other Location Management Functions (LMF in 5GC). Its primary task is to select an appropriate positioning method, retrieve the necessary measurements, perform the location calculation, and return an estimated position (latitude, longitude, altitude) with an associated accuracy and confidence level.
The PCF supports multiple standardized positioning methods, each with its own calculation algorithm. For Observed Time Difference of Arrival (OTDOA), the PCF receives measurements from the UE of observed time differences between reference signals from neighboring cells. It uses a database of known cell transmitter locations and timing relationships to solve hyperbolic equations for the UE's position. For Uplink Time Difference of Arrival (UTDOA), the PCF processes time-of-arrival measurements of the UE's uplink signal taken by multiple Location Measurement Units (LMUs) in the network. For Assisted GNSS (A-GNSS), the PCF may assist by providing satellite ephemeris and almanac data to the UE and then calculating a position based on pseudo-range measurements sent by the UE. For Enhanced Cell ID (E-CID), the PCF combines the serving cell identity with additional measurements like Round Trip Time (RTT), Angle of Arrival (AoA), or received signal levels to refine the location estimate.
Architecturally, the PCF interfaces with several network elements. It communicates with the Radio Access Network (RAN) via the Serving Mobile Location Center (SMLC) in UMTS/GSM or the LMF in 5GC to obtain network-based measurements or to instruct the RAN/UE to perform measurements. It may also access external data sources, such as GNSS reference networks for A-GNSS assistance data or geographic information systems. The PCF's role is purely computational and logical; it does not directly interact with the UE or perform radio measurements itself. Its output is delivered to the requesting entity (e.g., GMLC), which then formats and provides the location to the final LCS client, which could be an emergency service, a commercial application, or a network operator's own service.
Purpose & Motivation
The PCF was developed to provide a standardized, network-based capability for determining the location of mobile devices, driven primarily by regulatory requirements for emergency caller location (e.g., E911 in the US, E112 in Europe) and the growing commercial demand for Location-Based Services (LBS). Early mobile networks had very crude location capabilities, often limited to identifying the serving cell, which could cover a radius of several kilometers, making it useless for emergencies or precise services.
The creation of a dedicated calculation function separated the complex, mathematical task of location computation from the management and client-handling functions (GMLC). This modular architecture allowed for the independent evolution and optimization of positioning technologies. The PCF enabled the introduction of more accurate methods like OTDOA and A-GNSS, which required sophisticated signal processing and calculation algorithms that were not feasible to implement in a distributed manner across other network nodes.
By centralizing the calculation logic, the PCF provides a consistent interface for location requests regardless of the underlying positioning method used. This abstraction allows the network to select the best available method (e.g., A-GNSS outdoors, OTDOA indoors) based on capability, accuracy requirements, and UE/network conditions, without the requesting client needing to understand the technical details. The PCF's evolution reflects the continuous push for higher accuracy, lower latency, and support for new use cases, from emergency services to IoT asset tracking and vehicular positioning in 5G.
Key Features
- Centralized network function for computing UE geographical location
- Supports multiple positioning methods: OTDOA, UTDOA, A-GNSS, E-CID
- Processes raw measurement data from UE and/or network (LMUs, RAN)
- Interfaces with SMLC/LMF for measurement coordination and retrieval
- Delivers position estimates with accuracy and confidence metrics
- Enables dynamic selection of positioning method based on request and capabilities
Evolution Across Releases
The Positioning Calculation Function (PCF) was introduced as part of the standardized Location Services (LCS) architecture for UMTS. Its initial role was to perform location calculations primarily for Cell-ID-based methods and the early stages of OTDOA. It established the fundamental interface with the Serving Mobile Location Center (SMLC) to obtain measurement data and provide calculated position estimates.
Defining Specifications
| Specification | Title |
|---|---|
| TS 03.071 | 3GPP TR 03.071 |
| TS 23.171 | 3GPP TS 23.171 |
| TS 23.207 | 3GPP TS 23.207 |
| TS 23.228 | 3GPP TS 23.228 |
| TS 23.271 | 3GPP TS 23.271 |
| TS 23.380 | 3GPP TS 23.380 |
| TS 23.501 | 3GPP TS 23.501 |
| TS 23.558 | 3GPP TS 23.558 |
| TS 23.700 | 3GPP TS 23.700 |
| TS 23.745 | 3GPP TS 23.745 |
| TS 23.758 | 3GPP TS 23.758 |
| TS 23.764 | 3GPP TS 23.764 |
| TS 23.795 | 3GPP TS 23.795 |
| TS 24.229 | 3GPP TS 24.229 |
| TS 24.502 | 3GPP TS 24.502 |
| TS 24.526 | 3GPP TS 24.526 |
| TS 24.548 | 3GPP TS 24.548 |
| TS 24.549 | 3GPP TS 24.549 |
| TS 25.305 | 3GPP TS 25.305 |
| TS 26.501 | 3GPP TS 26.501 |
| TS 26.502 | 3GPP TS 26.502 |
| TS 26.510 | 3GPP TS 26.510 |
| TS 26.512 | 3GPP TS 26.512 |
| TS 26.517 | 3GPP TS 26.517 |
| TS 26.802 | 3GPP TS 26.802 |
| TS 26.803 | 3GPP TS 26.803 |
| TS 26.804 | 3GPP TS 26.804 |
| TS 26.806 | 3GPP TS 26.806 |
| TS 26.891 | 3GPP TS 26.891 |
| TS 26.919 | 3GPP TS 26.919 |
| TS 26.928 | 3GPP TS 26.928 |
| TS 26.942 | 3GPP TS 26.942 |
| TS 26.998 | 3GPP TS 26.998 |
| TS 27.060 | 3GPP TS 27.060 |
| TS 28.540 | 3GPP TS 28.540 |
| TS 28.802 | 3GPP TS 28.802 |
| TS 28.840 | 3GPP TS 28.840 |
| TS 29.165 | 3GPP TS 29.165 |
| TS 29.214 | 3GPP TS 29.214 |
| TS 29.276 | 3GPP TS 29.276 |
| TS 29.504 | 3GPP TS 29.504 |
| TS 29.507 | 3GPP TS 29.507 |
| TS 29.508 | 3GPP TS 29.508 |
| TS 29.512 | 3GPP TS 29.512 |
| TS 29.513 | 3GPP TS 29.513 |
| TS 29.514 | 3GPP TS 29.514 |
| TS 29.518 | 3GPP TS 29.518 |
| TS 29.519 | 3GPP TS 29.519 |
| TS 29.520 | 3GPP TS 29.520 |
| TS 29.521 | 3GPP TS 29.521 |
| TS 29.522 | 3GPP TS 29.522 |
| TS 29.523 | 3GPP TS 29.523 |
| TS 29.524 | 3GPP TS 29.524 |
| TS 29.525 | 3GPP TS 29.525 |
| TS 29.534 | 3GPP TS 29.534 |
| TS 29.543 | 3GPP TS 29.543 |
| TS 29.552 | 3GPP TS 29.552 |
| TS 29.554 | 3GPP TS 29.554 |
| TS 29.558 | 3GPP TS 29.558 |
| TS 29.574 | 3GPP TS 29.574 |
| TS 29.576 | 3GPP TS 29.576 |
| TS 29.594 | 3GPP TS 29.594 |
| TS 29.866 | 3GPP TS 29.866 |
| TS 29.890 | 3GPP TS 29.890 |
| TS 32.240 | 3GPP TR 32.240 |
| TS 32.255 | 3GPP TR 32.255 |
| TS 32.260 | 3GPP TR 32.260 |
| TS 32.290 | 3GPP TR 32.290 |
| TS 32.899 | 3GPP TR 32.899 |
| TS 33.127 | 3GPP TR 33.127 |
| TS 33.528 | 3GPP TR 33.528 |
| TS 33.739 | 3GPP TR 33.739 |
| TS 33.794 | 3GPP TR 33.794 |
| TS 33.836 | 3GPP TR 33.836 |
| TS 33.847 | 3GPP TR 33.847 |
| TS 43.059 | 3GPP TR 43.059 |