1 Introduction

Nowadays, location based service (LBS) is playing an important role in our daily life. As a most popular outdoor positioning technology, though global navigation satellite system (GNSS) can achieve a satisfactory positioning accuracy, it is sensitive to building blocking, weather changing and other complicated circumstances of city, which lead to an unavailable for satellite signal. Especially in urban areas, satellite signal always cannot be received, which makes GNSS fail to provide the positioning service [1]. Hence, it is necessary to find another option to serve as the supplement for GNSS. With the popularity of cellular network, urban areas have been widely covered by cellular signal with good quality, such as long term evolution (LTE) signal, so that cellular network positioning system becomes possible.

For cellular network positioning, some methods are already introduced by 3GPP. A-GNSS (assisted global navigation satellite system) [2] can considerably overcome the error caused by the complex building structure shadow in city and weather changing. But its navigation performance is unsatisfactory in the sheltered environments such as underground, indoor. In these cases, the satellite signal is very weak or unavailable, and the user equipment (UE) cannot receive the positioning signal universally. Furthermore, even with auxiliary information, it has to take a long time to calculate the position and the result is inaccurate, especially for the fast-moving UEs. Another option is to implement the commonly used ranging techniques, including time of arrival (TOA), angle of arrival (AOA), observed time difference of arrival (OTDOA) [2,3,4]. Some hybrid techniques are also proposed for ranging, such as TOA/AOA and TOA/TDOA [5, 6]. TOA and AOA have their unique advantages in short-distance positioning, but in the long-distance situation, some tiny windages often leads to a big position error. The OTDOA position accuracy mainly depends on reference signal time difference (RSTD) measurement quality and geometry. When UE is moving fast, the serious Doppler effect will no doubt further degrade the performance. Therefore, the positioning performance in complex urban environment greatly hinges on the high requirement for UE hardware. Enhanced cell ID (E-CID) has the advantage of simple structure, convenient operation and maintenance, and no need of additional equipment. But the low position accuracy is its biggest weakness [7, 8]. These defects greatly invalidate the basic positioning technique to work in the cellular network positioning system [9].

As a prominent solution, fingerprint-based positioning method estimates UE location by matching the online reference signal receiving power (RSRP) with a database (radio map) built in offline. Typically, fingerprint-based method contains two stages, offline stage and online stage. In offline stage, radio map is built, which contains lots of reference points (RPs) with RSRP and associated known locations. In online stage, Euclidean distances in the signal space between the online RSRP and the reference point RSRP are calculated. Based on these calculated Euclidean distances, UE position can be estimated by the Nearest Neighbor (NN) algorithm or the k-Nearest Neighbor (k-NN) algorithm [10]. Since signal propagation time is not involved in the position estimation process, this method can be implemented more easily than the range-based method in cellular network system. In addition, because the measured data stored in the radio map completely retain the characteristics of the actual signal propagation environment, it has better adaptability to the complex outdoor environment. Therefore, fingerprint-based cellular network positioning system has aroused widespread interests in the world. However, to the best of our knowledge, the positioning methods for cellular network mainly use pilot signal precoding for AOA, TOA and channel condition estimation. Little literature considers the fingerprint-based positioning in cellular network system. Particularly, fingerprint method is well utilized in the WiFi positioning system. In WiFi based positioning system, received signal strength difference elimination has already been studied. But the fingerprint length changing with UE’s velocity is not analyzed, since WiFi does not provide the function to make more measurements when the signal from the serving AP becomes worse. So, we need to find a new effective method to solve the length changing of received signal strength vector in the cellular network communication system.

Radio map is always the key part of the positioning system. Traditional radio map building method is a manual process, which requires too much in offline and is not feasible for wide range outdoor application [11]. A proper way is to make use of the inherent cellular network communication protocol to achieve radio map self-building and self-updating by UEs [12]. In 3GPP R10, minimization of drive test (MDT) was proposed to report UE and channel information for network optimization in LTE system. Instead of driving test measurement by operators, MDT enables UE to perform the network measurement to reduce LTE network optimization cost. It requires UE to report information to eNode B in a best-effort way, such as cell global identification (CGI), RSRP of intra-frequency neighboring cell, UE location got by the LBS application running on the UE and so on. In other words, so long as any of these information is available, UE will send a MDT report with these information to the LTE system. In R11, MDT function is enhanced by enabling MDT directly to obtain the location from the built-in GNSS chip instead of LBS application [13, 14]. When the quantity of MDT reports with accurate location is sufficient, radio map can be finally built, and then fingerprint-based cellular network positioning can also be achieved [15]. Kaemarungsi et al. [16] and Kaemarungsi and Krishnamurthy [17] pointed out that the RSRP difference between two UEs can be more than 25 dB. [18] proposed to use the unsupervised learning algorithm to solve the problem, which failed to consider the influence of received signal instability. An UE automatic mapping was proposed in [19], where the AP choosing result had a great impact on the positioning accuracy.

However, there still remain many problems to be solved in the fingerprint-based cellular network positioning system. On one hand, UE diversity will lead to RSRP differences happening both in online and offline [20, 21]. This difference is usually caused by antenna gain, antenna position, shell material and so on. On the other hand, fingerprint length will change with UE motion state. If UE is moving, it is active to detect more neighbouring cells for hand over since the QoS of primary cell is getting worse, so that more cells will be detected and longer fingerprint is got. If UE is still, shorter RSRP will occur in the MDT report. Hence, the changing in fingerprint length will result in fingerprint misalignment and make the positioning system unpractical, which will inevitably affect the positioning performance.

Therefore, in this paper, we propose efficient methods to overcome the aforementioned problems in fingerprint-based cellular network positioning system. The main contributions of this paper are summarized as follows.

(1) We propose to employ the multi-dimensional scaling (MDS) algorithm to eliminate the RSRP difference. MDS is a statistical analysis method aiming to reconstruct the absolute coordinates of the object by the similarity or diversity between them [22, 23]. Based on MDS algorithm, we can eliminate RSRP difference to make radio map apply to different UE models.

(2) We propose a UE motion state classification algorithm by labeling RSRP with moving and still to resolve the fingerprint misalignment due to UE motion state changing. We introduce drive test (DT) and call quality test (CQT) to our proposed classification algorithm. In cellular network optimization, DT and CQT are the most two common methods to test the signal coverage quality in moving state and still state respectively [24, 25]. With the help of available DT data and CQT data as the prior information, we can obtain a motion state classifier based on Adaboost algorithm [26]. In this way, we category the radio map into moving radio map and still radio map in the offline stage. In the online stage, we also make classification on RSRP motion state to match with the corresponding radio map.

We implemented our proposed method in a typical urban area and evaluated its performance. The experiment results indicated the proposed methods can achieve better positioning performance in the LTE system. The remainder of this paper is organized as follows. In Sect. 2, we will introduce the fingerprint-based cellular network positioning system and the detailed exiting problems. The UE RSRP difference elimination algorithm and the UE motion state classification algorithm will be discussed in Sect. 3. Section 4 will provide the implementation and performance analysis. Finally, conclusion will be drawn in the last section.

2 Fingerprint-based cellular network positioning system

2.1 Fingerprint algorithm

Generally, we can obtain many information from the MDT report for fingerprint-based positioning, such as RSRP, CGI, and UE’s international mobile subscriber identity (IMSI). Assume that we can find m RPs’ fingerprints with the associated locations in MDT reports. These fingerprints come from n CGI, and their locations can be expressed as \(\mathbf{{L}} \in {\mathbb {R}^{m \times 2}}\) :

$$\begin{aligned} \begin{aligned} \mathbf{{L}} = {\left[ {\begin{array}{*{20}{c}} {({\alpha _1},{\beta _1})}&{({\alpha _2},{\beta _2})}&\ldots&{({\alpha _m},{\beta _m})} \end{array}} \right] ^\mathrm{{T}}} \end{aligned} \end{aligned}$$
(1)

where \({\left[ \cdot \right] ^\mathrm{{T}}}\) is matrix transposition operator, \(\left( {{\alpha _i},{\beta _i}} \right) \) is the location of the ith RP in longitude and latitude. When the cellular network signal propagates in free space, the transmission loss \({L_t}\) can be expressed as:

$$\begin{aligned} \begin{aligned} {L_t} = {L_p} - ({G_t} + {G_r})\,(\text {dB}) \end{aligned} \end{aligned}$$
(2)

where \({L_p}\) is the path loss, \({G_t}\) is the transmitting antenna gain, \({G_r}\) is the receiving antenna gain.

The RSRP recorded by a UE can be expressed as \({P_r}\):

$$\begin{aligned} \begin{aligned} {P_r} = {P_t} - {L_t}\,(\text {dBm}) \end{aligned} \end{aligned}$$
(3)

where \({P_t}\) is the transmitted power.

Let \({\mathbf{{P}}_r} \in {\mathbb {R}^{m \times n}}\) be the offline RSRP matrix for all the RPs:

$$\begin{aligned} \begin{aligned} {\mathbf{{P}}_r} = \left[ {\begin{array}{*{20}{c}} {{\bar{\mathbf{P}}}_r^1}\\ {{\bar{\mathbf{P}}}_r^2}\\ \vdots \\ {{\bar{\mathbf{P}}}_r^m} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{\bar{p}}_r^{11}}&{}\quad {{\bar{p}}_r^{12}}&{}\quad \dots &{}\quad {{\bar{p}}_r^{1n}}\\ {{\bar{p}}_r^{21}}&{}\quad {{\bar{p}}_r^{22}}&{}\quad \dots &{}\quad {{\bar{p}}_r^{2n}}\\ \vdots &{}\quad \vdots &{}\quad \ddots &{}\quad \vdots \\ {{\bar{p}}_r^{m1}}&{}\quad {{\bar{p}}_r^{m2}}&{} \quad \dots &{}\quad {{\bar{p}}_r^{mn}} \end{array}} \right] \end{aligned} \end{aligned}$$
(4)

where \({\bar{p}}_r^{ij}\) is the average of RSRP at the ith RP from the jth CGI, \({\bar{\mathbf{P}}}_r^i\) is the vector of \({\bar{p}}_r^{ij}\) from all the CGI. Then, radio map can be built as:

$$\begin{aligned} \begin{aligned} \mathrm{{RadioMap}} = \left[ {\begin{array}{*{20}{c}} \mathbf{{L}}&{{\mathbf{{P}}_r}} \end{array}} \right] . \end{aligned} \end{aligned}$$
(5)

In online stage, an received RSRP \({{\hat{\mathbf{P}}}_r} \in {\mathbb {R}^{1 \times n}}\) is provided by a UE for location estimation as:

$$\begin{aligned} \begin{aligned} {{\hat{\mathbf{P}}}_r}\mathrm{{ = }}\left[ {\begin{array}{*{20}{c}} {{\bar{p}}_r^1}&{{\bar{p}}_r^2}&\dots&{{\bar{p}}_r^n} \end{array}} \right] \end{aligned} \end{aligned}$$
(6)

where \({\bar{p}}_r^j\) is the RSRP received from the jth CGI. The UE’s location is then estimated by comparing the RSRP similarity between the online RSRP \({{\hat{\mathbf{P}}}_r}\) and the offline RSRP matrix \({\mathbf{{P}}_r}\) in radio map.

Generally, the most popular estimation algorithm is k-NN, whose position is based on the Euclidean distance in RSRP space as:

$$\begin{aligned} \begin{aligned} {d_i} = {\left\| {{\bar{\mathbf{P}}}_r^i - {{{\hat{\mathbf{P}}}}_r}} \right\| _2} \forall i = 1, \dots ,m \end{aligned} \end{aligned}$$
(7)

where \({\left\| \cdot \right\| ^2}\) is \(l_2\) norm operator, \({d_i}\) is the Euclidean distance. We can use the Euclidean distance to evaluate the matching similarity between the online RSRP and the RP. Smaller Euclidean distance usually implies more similar relation between online and offline. Then k-NN algorithm selects k RPs with the smallest Euclidean distance for the UE position estimation \(({\hat{\alpha }} ,{\hat{\beta }} )\) as:

$$\begin{aligned} \begin{aligned} ({\hat{\alpha }} ,{\hat{\beta }} ) = \frac{1}{k}\sum \limits _{i = 1}^k {({\alpha _i},{\beta _i})}. \end{aligned} \end{aligned}$$
(8)
Fig. 1
figure 1

Fingerprint length changing and misalignment due to UE different motion

2.2 Problems statement

MDT can greatly reduce the workload of radio map building, which makes the fingerprint-based cellular network positioning system possible. However, as stated above, there are still some problems to be solved. The inherent difference of RSRP for different UEs in each MDT report will seriously affect the positioning accuracy. Assuming the transmitting antenna and the receiving antenna are both omni-directional. We suppose the transmitting antenna gain \({G_t}\) is a constant value, and the UE receiving antenna gain \({G_r}\) is variable on account of the mobile diversity [27], complicated channel state and etc. Hence, the transmission loss \({L_t}\) can be written as:

$$\begin{aligned} \begin{aligned} {L_t} = {L_p} - ({G_t} + {G_0} + {\varDelta _r})\,(\text {dB}) \end{aligned} \end{aligned}$$
(9)

where \({G_0}\) is the standard receiving antenna gain. It can be considered as the average receiving antenna gain for all UEs. \(\varDelta _r = \left( {{G_r} - {G_0}} \right) \) is the antenna gain difference between the real receiving antenna. Unfortunately, \(\varDelta _r\) can not be easily modeled due to the lack of prior information. Hence, we need to find a way to solve this problem,which is the reason we proposed MDS algorithm in Sect. 3.1 in this paper.

The RSRP received by a UE can be expressed as:

$$\begin{aligned} \begin{aligned} {P_r} = {P_t} - {L_p} + {G_t} + {G_0} + {\varDelta _r}\,(\text {dBm}). \end{aligned} \end{aligned}$$
(10)

Theoretically, RSRP received by different UEs from the same CGI at the same location in the same time should be identical. But in practice, these RSRP are different as reasons aforementioned. Taking the UE i and the UE j for instance, their RSRP can be expressed respectively as:

$$\begin{aligned} \begin{aligned} \begin{array}{l} {P_{ri}} = {P_{ti}} - {L_{pi}} + {G_{ti}} + {G_0} + {\varDelta _{ri}}\,(\text {dBm})\\ {P_{rj}} = {P_{tj}} - {L_{pj}} + {G_{tj}} + {G_0} + {\varDelta _{rj}}\,(\text {dBm}). \end{array} \end{aligned} \end{aligned}$$
(11)

Since the two samplings of RSRP are measured with the same environment, we have \({P_{ti}} = {P_{tj}}\), \({G_{ti}} = {G_{tj}}\) and \({L_{pi}} = {L_{pj}}\). Thus, the difference of the two RSRP samplings is only related to the receiving antenna gain difference \({\varDelta _{ri}}\) and \({\varDelta _{rj}}\). Let the UE RSRP difference vector \({\varvec{\Omega }}={[\varDelta _{r1}\; \varDelta _{r2}\dots \varDelta _{rN}]}^\mathrm{{T}}\). If \({\varvec{\Omega }}\) is eliminated from RSRP in both offline and online, we can compare the RSRP similarity on the same benchmark, so as to improve the matching accuracy and further the positioning performance. We will provide the detailed solutions to estimate UE RSRP difference vector \({\varvec{\Omega }}\) in Sect. 3.1.

In current cellular network system, such as LTE system, UE makes more measurements of intra-frequency, inter-frequency and inter-radio access technology (e.g. GSM, UMTS) neighbouring cells if the primary cell is serving worse than the threshold [28]. This action is usually triggered by the Doppler effect, which makes more CGI be detected and longer fingerprint be obtained in MDT report. In contrast, when UE is in still state, its fingerprint length will be shorter, which we illustrate in Fig. 1.

We can see that in each MDT report interval \(\varDelta t\), the detected CGI number varies with UE motion state. We can also conclude from this figure, fingerprint misalignments almost take place in each MDT report. In each interval \(\varDelta t\), fingerprint and associated location are obtained in different time, but they are simultaneously reported to the system at the end of each interval \(\varDelta t\). This means if UE is moving, the information including fingerprint and location are actually not sampled at the same place, though they are reported in the same MDT report. So we propose a UE motion state classification method. Based on the classification result, we use two kinds of radio maps for position estimation, which we will discuss in Sect. 3.2.

In summary, we propose UE RSRP difference elimination and UE motion classification methods in fingerprint-based cellular network positioning system, which is illustrated in Fig. 2. The process of our proposed method is as follows. In offline stage, UE RSRP difference is calculated based on MDS algorithm. The mapping relation between IMSI and RSRP difference are obtained from MDT reports, and then we eliminate the RSRP difference. Next, for UE motion state classification, we train the Adaboost strong classifier with classification and regression tree (CART) weak classifier [29] using the available DT data and CQT data. Then, two kinds of radio maps for UE moving and still are constructed based on the motion classified MDT reports. In online stage, we eliminate the UE RSRP difference with the help of mapping relation result between IMSI and RSRP difference. We classify the online UE motion state by the Adaboost classifier built in offline stage, and further match the online RSRP with the specified radio map for UE position estimation.

Fig. 2
figure 2

Fingerprint-based cellular network positioning system

3 Proposed method

In order to eliminate the RSRP difference, we first build the RSRP difference squared proximity matrix between each two UEs in the offline stage. Then we calculate the RSRP difference \(\varDelta _r\) of each UE based on MDS algorithm. Finally, the UE RSRP difference is eliminated both in the offline stage and online stage.

3.1 UE RSRP difference elimination algorithm

As stated above, the difference of two RSRP samplings by two UEs is only related to their \({\varDelta _{r}}\). Assuming there are N UEs, where \({d_{ij}}\) is the RSRP Euclidean distance for UE i and UE j. Then we have:

$$\begin{aligned} \begin{aligned} {d_{ij}} = {\left\| {{\varDelta _{ri}} - {\varDelta _{rj}}} \right\| _2} = {\left\| {{P_{ri}} - {P_{rj}}} \right\| _2}. \end{aligned} \end{aligned}$$
(12)

If we calculate the Euclidean distance for all pairs of UEs, we can get the RSRP difference squared proximity matrix \(\mathbf{{D}}\in {\mathbb {R}^{N \times N}}\) as:

$$\begin{aligned} \begin{aligned} \mathbf{{D}} = \left[ {\begin{array}{*{20}{c}} {d_{11}^2}&{}\quad {d_{12}^2}&{}\quad \dots &{}\quad {d_{1N}^2}\\ {d_{21}^2}&{}\quad {d_{22}^2}&{}\quad \dots &{}\quad {d_{2N}^2}\\ \vdots &{}\quad \vdots &{}\quad \ddots &{}\quad \vdots \\ {d_{N1}^2}&{}\quad {d_{N2}^2}&{}\quad \dots &{}\quad {d_{NN}^2} \end{array}} \right] . \end{aligned} \end{aligned}$$
(13)

Generally, \(\mathbf{{D}}\) can be easily obtained when cellular network collects enough MDT reports and it is not a statistical variable but be obtained by (12) when cellular network collects enough data from MDT reports. But the UE RSRP difference set \({\varvec{\Omega }} ={\left[ \varDelta _{r1}\; \varDelta _{r2}\dots \varDelta _{rN} \right] }^\mathrm{{T}}\) cannot be known directly from the MDT reports, which should be carefully calculated.

Assuming \({\varvec{\Gamma }} = {[\varDelta _{r1}^2\;\;\varDelta _{r2}^2 \dots \varDelta _{rN}^2]^\mathrm{{T}}}\), we have:

$$\begin{aligned} \begin{aligned} \mathbf{{D}} = {\varvec{\Gamma 1}}_N^\mathrm{{T}} + {\mathbf{{1}}_N}{{\varvec{\Gamma }}^\mathrm{{T}}} - 2{\varvec{\Omega }}{{\varvec{\Omega }}^\mathrm{{T}}} \end{aligned} \end{aligned}$$
(14)

where \(\mathbf{{1}}_N=[1\;\;1\dots 1]^\mathrm{{T}}\). We apply double centering on the RSRP difference squared proximity matrix \(\mathbf{{D}}\). Let the centering matrix \(\mathbf{{J}}\) be:

$$\begin{aligned} \begin{aligned} \mathbf{{J}} = {\mathbf{{I}}_N} - \frac{1}{N}{\mathbf{{1}}_N}{} \mathbf{{1}}_N^\mathrm{{T}} \end{aligned} \end{aligned}$$
(15)

where \({\mathbf{{I}}_N}\) is an unit matrix of order N. The formula of double centering transformation on \(\mathbf{{D}}\) is:

$$\begin{aligned} \begin{aligned} \mathbf{{B}} = - \frac{1}{2} \mathbf{{JDJ}}^\mathrm{{T}}. \end{aligned} \end{aligned}$$
(16)

Substitute (14) and (15) into (16), we can rewrite the matrix \(\mathbf {B}\) into the form of inner product matrix as:

$$\begin{aligned} \begin{aligned} \mathbf{{B}}&= - \frac{1}{2}{} \mathbf{{JD}}{\mathbf{{J}}^\mathrm{{T}}} \\&= - \frac{1}{2}{} \mathbf{{J}}\Big ({\varvec{\Gamma 1}}_N^\mathrm{{T}} + {\mathbf{{1}}_N}{{\varvec{\Gamma }}^\mathrm{{T}}} - 2{\varvec{\Omega }}{{\varvec{\Omega }}^\mathrm{{T}}}\Big ){\mathbf{{J}}^\mathrm{{T}}}\\&= {\varvec{J\Omega }}{{\varvec{\Omega }}^\mathrm{{T}}}{\mathbf{{J}}^\mathrm{{T}}}\\&= \Big ( {{\varvec{\Omega }} - {\mathbf{{1}}_N}{\Big ( {\frac{1}{N}{{\varvec{\Omega }}^\mathrm{{T}}}{\mathbf{{1}}_N}} )^\mathrm{{T}}}} \Big ){\Bigg ( {{\varvec{\Omega }} - {\mathbf{{1}}_N}{ \Big ({\frac{1}{N}{{\varvec{\Omega }}^\mathrm{{T}}}{\mathbf{{1}}_N}} \Big )^\mathrm{{T}}}} \Big )^\mathrm{{T}}}. \end{aligned} \end{aligned}$$
(17)

Let \({\varDelta _c} = {{\varvec{\Omega }}^\mathrm{{T}}}{\mathbf{{1}}_N}/N=\frac{1}{N}\sum _{i=1}^{N}\varDelta _{ri} \). The inner product matrix \(\mathbf{{B}}\) can be rewritten as follows:

$$\begin{aligned} \begin{aligned} \mathbf{{B}} = \left( {{\varvec{\Omega }} - {\mathbf{{1}}_N}{\varDelta _c}} \right) {\left( {{\varvec{\Omega }} - {\mathbf{{1}}_N}{\varDelta _c}} \right) ^\mathrm{{T}}}. \end{aligned} \end{aligned}$$
(18)

If set \({{\hat{\varvec{\Omega }}}}={{\varvec{\Omega }}-{\mathbf{{1}}_N}{\varDelta _c}}\), we have:

$$\begin{aligned} \mathbf{{B}} = {\hat{\varvec{\Omega }}} {\hat{\varvec{\Omega }}}^\mathrm{{T}}. \end{aligned}$$
(19)

We make eigenvalue decomposition on \(\mathbf{{B}}\) and have:

$$\begin{aligned} \mathbf{{B}}= & {} {{\mathbf{V } {\varvec{\Lambda }}}}{\mathbf{{V}}^\mathrm{{T}}} \end{aligned}$$
(20)
$$\begin{aligned} {\varvec{\Lambda }}= & {} \mathrm{{diag}}\left\{ \lambda _1 \;\; \lambda _2\dots \lambda _k \right\} \end{aligned}$$
(21)
$$\begin{aligned} \mathbf{{V}} = {\left[ \mathbf{{v}}_1\;\;\mathbf{{v}}_2\dots \mathbf{{v}}_k \right] _{N \times k}} \end{aligned}$$
(22)

where \({\lambda _1} \ge {\lambda _2} \ge \cdots \ge {\lambda _k} > 0\) are the eigenvalues of \(\mathbf{{B}}\), \(\mathbf{{v}}_1,\mathbf{{v}}_2,\dots , \mathbf{{v}}_k\) are the corresponding eigenvectors. Since \({\lambda _1}\) is the maximum eigenvalue and \(\mathbf {v}_1\) is corresponding eigenvector, they play the most important part in matrix \(\mathbf {B}\). The eigenvalue \({\lambda _1}\) is the maximum and the corresponding eigenvector \(\mathbf{{v}}_2\) play the most important part in matrix \(\mathbf{{B}}\), which can be seen as the main component causes received signal difference, and other eigenvectors represent factors such as noises, signal fluctuation, shadow effect, etc. Then based on (19) and (20), we have the following result as:

$$\begin{aligned} \begin{aligned} {{\hat{\varvec{\Omega }}}} = \left[ {\hat{\varDelta }}_{r1} \;\; {{\hat{\varDelta }} }_{r2} \dots {{\hat{\varDelta }} }_{rN} \right] ^\mathrm{{T}} = \sqrt{{\lambda _1}} \mathbf {v}_1. \end{aligned} \end{aligned}$$
(23)

Actually, \({\hat{\varvec{\Omega }}}\) is a good solution to the UE RSRP difference set \(\varvec{\Omega }\). It is able to provide the same result as (12). Based on (18), the element \(b_{ij}\in \mathbf{{B}}\) can be expressed as:

$$\begin{aligned} \begin{aligned} b_{ij}&= \left( \varDelta _{ri} - \varDelta _c \right) \left( \varDelta _{rj} - \varDelta _c \right) \\&= \frac{1}{2} \left( d_{ic}^2 + d_{jc}^2 - d_{ij}^2 \right) \end{aligned} \end{aligned}$$
(24)

where \({d_{ic}} = \left\| {\varDelta _{ri}} - {\varDelta _c}\right\| _2 \), \({d_{jc}} = \left\| {\varDelta _{rj}} - {\varDelta _c}\right\| _2 \).

Based on (19), \(b_{ij}\in \mathbf {B}\) can also be got as:

$$\begin{aligned} \begin{aligned} b_{ij} = {{\hat{\varDelta }} _{ri}}{{\hat{\varDelta }} _{rj}}. \end{aligned} \end{aligned}$$
(25)

And based on (24) and (25), we have:

$$\begin{aligned} \begin{aligned} {{\hat{\varDelta }} _{ri}}{{\hat{\varDelta }} _{rj}} = \frac{1}{2}\left( {d_{ic}^2 + d_{jc}^2 - d_{ij}^2} \right) . \end{aligned} \end{aligned}$$
(26)

For any two UEs, the Euclidean distance between the elements in the vector \({{\hat{\varvec{\Omega }}}}\) can be expressed as:

$$\begin{aligned} \begin{aligned} \left\| {{{{\hat{\varDelta }} }_{ri}} - {{{\hat{\varDelta }} }_{rj}}} \right\| _2^2&= {\hat{\varDelta }} _{ri}^2 + {\hat{\varDelta }} _{rj}^2 - 2{{{\hat{\varDelta }} }_{ri}}{{{\hat{\varDelta }} }_{rj}}\\ \qquad \qquad \quad \ \ \,&= d_{ic}^2\mathrm{{ + }}d_{jc}^2 - \left( {d_{ic}^2 + d_{jc}^2 - d_{ij}^2} \right) \\ \qquad \qquad \quad \ \ \,&= d_{ij}^2, \end{aligned} \end{aligned}$$
(27)

where the above result is similar with (12). It means the Euclidean distance between any two elements in vector \({{\hat{\varvec{\Omega }}}}\) equals to the Euclidean distance between any two elements in vector \({\varvec{\Omega }}\). Up to now, RSRP difference of each UE has been calculated.

With the help of RSRP difference \({\hat{\varvec{\Omega }}}\), we can eliminate the RSRP difference on radio map in offline stage. The RSRP after difference elimination \({\hat{P}_r}\) is:

$$\begin{aligned} \begin{aligned} {\hat{P}_r}\mathrm{{ = }}{P_r} - {{\hat{\varDelta }} _r} = {P_t} - {L_p} + {G_t} + {G_0} \end{aligned} \end{aligned}$$
(28)

where \({\hat{P}_r}\) will be averaged and recorded as \({\bar{\mathbf{P}}}_r^i\) in radio map according to (4).

In the online stage, if a UE’s IMSI is already recorded in the offline stage, its RSRP difference can be known from \({\hat{\varvec{\Omega }}}\). And we can eliminate the RSRP difference directly based on (28). If the UE is a new one and never reports its MDT in offline, we have to assume its RSRP is accurate and do not make any RSRP difference elimination. Until it provides another MDT report to the network, we can make a completed \(\mathbf {D}\), and RSRP difference can be eliminated on it.

After the RSRP difference is eliminated in both offline stage and online stage, we can implement the k-NN algorithm to make UE position estimation based on (1)–(8).

3.2 UE motion state classification algorithm

As mentioned above, the UE motion state is reflected by the length of RSRP in measurement report. So the key idea of UE motion state classification is to analyze the RSRP length changing with time, and further classify the UE motion state. It can be modeled as a typical pattern recognition problem, which implements preprocessing, feature extraction and feature classification.

First, we preprocess the obtained MDT reports. UE motion state can be represented by a sequence of continuous MDT reports rather than a single MDT report. In the sequence of MDT reports, we can find RSRP may be not constant but changing greatly in the sequence. The phenomenon that RSRP greatly changes usually means UE is moving faraway or close to a base station. If RSRP changes little in the sequence, UE can be considered still. Figures 3 and 4 depict the RSRP changing when UE is in different state. Hence, we can utilize this phenomenon to classify the UE motion state.

Fig. 3
figure 3

RSRP changing in MDT when UE is moving

Fig. 4
figure 4

RSRP changing in MDT reports when UE is still

Since the complex communication channel will also cause RSRP changing, we propose to set a sliding time window for the MDT report sequence to avoid motion misjudgment. Suppose \(P^{(i)}\) is the ith MDT report, and \(\mathbf{{W}}^{(j)}\) is the jth time window with window size \(s_w\) and step length \(\varDelta T\). In each time window, we extract a feature vector \(\mathbf{{x}}^{(j)}\) for those MDT reports being inside the window. Then we send the feature vector \(\mathbf{{x}}^{(j)}\) to the Adaboost classifier for UE motion classification, and label moving state with +1, still state with − 1. The UE motion state \(M ( {{p^{\left( i \right) }}} )\) for the ith MDT report is finally determined as:

$$\begin{aligned} \begin{aligned} M\left( {{p^{\left( i \right) }}} \right) = \mathrm{{sign}}\left[ {\sum \limits _j {A\left( {{\mathbf{{x}}^{\left( j \right) }}} \right) \mathbf{{1}}\left\{ {{p^{\left( i \right) }} \in {\mathbf{{W}}^{\left( j \right) }}} \right\} } } \right] \end{aligned} \end{aligned}$$
(29)

where \(\mathbf{{1}} \left\{ \mathrm {true} \right\} =1\), \(\mathbf{{1}} \left\{ \mathrm {false} \right\} =0\). \(A(\cdot )\) is the Adaboost classifier for time window. Actually, on account of the step length \(\varDelta T\), each MDT report is made motion state classification in \(s_w/\varDelta T\) times based on Adaboost algorithm. The motion state is finally decided by the most frequent occurrences in these results.

Next, we obtain the feature vector \(\mathbf{{x}}^{(j)}\) by using the gray level co-occurrence matrix (GLCM) feature extraction method [30]. We select the CGI with the most frequent occurrence in the MDT reports in the \(\mathbf{{W}}^{(j)}\) time window. Then its RSRP vector \({\mathbf{{R}}_c}\)(\(\in {\mathbb {R}^{n \times 1}}\)) is extracted, where we suppose the CGI appears n time in this time window. Then we look for the minimum RSRP vaule \({r_{c\min }}\) and maximum RSRP value \({r_{c\max }}\) in the vector \({\mathbf{{R}}_c}\). The RSRP changing range can be expressed as \(m = {r_{c\max }} - {r_{c\min }} + 1\). For analysis convenience, we transform \({\mathbf{{R}}_c}\) into \({\mathbf{{R}}_c'}\) as:

$$\begin{aligned} \begin{aligned} {\mathbf{{R}}_c'}&= {\mathbf{{R}}_c} - \mathbf{{1}}_n \left( r_{c\min }-1 \right) \\&=\left[ r_{c1}'\;\;r_{c2}'\dots r_{cn}' \right] ^\mathrm{{T}}. \end{aligned} \end{aligned}$$
(30)

The elements in \({\mathbf{{R}}_c'}\) are all positive integers and the minimum value is 1. The RSRP changing pair \(\left( r_{ci}', {r_{ci\mathrm{{ + }}1}'}\right) \) can be constructed by an element \({r_{ci}'}\) and the next element \({r_{ci\mathrm{{ + }}1}'}\) in \({\mathbf{{R}}_c'}\). We can get \(n - 1\) RSRP changing pairs for \(i=1,\dots ,n-1\). Thus we can get \({m^2}\) kinds of RSRP changing pairs because of the span of RSRP m. The frequency of each RSRP changing pair is counted and then arranged into a square matrix \({\mathbf{{G}}_M} \in {\mathbb {R}^{m \times m}}\) named RSRP co-occurrence matrix. Figure 5 provides an example of the RSRP co-occurrence matrix construction.

Fig. 5
figure 5

Construction of RSRP co-occurrence matrix

In Fig. 5, the value of \({\mathbf{{G}}_M}\left( {1,2} \right) \) is 2, which indicates that the RSRP changing pair \(\left( {1,2} \right) \) occurs twice in the vector \({\mathbf{{R}}_c'}\). Also, the \({\mathbf{{G}}_M}\left( {3,4} \right) \) value is 1 indicating that the RSRP changing pair \(\left( {3,4} \right) \) only occurs once in the vector \({\mathbf{{R}}_c'}\). And then the normalized RSRP co-occurrence matrix \({\mathbf{{P}}_M} \in {\mathbb {R}^{m \times m}}\) is obtained by normalizing \({\mathbf{{G}}_M}\) with the sum frequency of all RSRP changing pairs \(n - 1\):

$$\begin{aligned} \begin{aligned} {\mathbf{{P}}_M} = \frac{1}{{n - 1}}{\mathbf{{G}}_M}. \end{aligned} \end{aligned}$$
(31)

The RSRP co-occurrence vector \(\mathbf{{x}}^{(j)} \in {\mathbb {R}^{(2m - 1) \times 1}}\) is constructed by summing the main diagonal direction elements of the RSRP co-occurrence matrix \({\mathbf{{P}}_M}\). Then we limit the length of \(\mathbf{{x}}^{(j)}\) to 11. If the length of \(\mathbf{{x}}^{(j)}\) is less than 11, the same number of 0 are added at both sides of the vector. And if the length of \(\mathbf{{x}}^{(j)}\) is more than 11, the same number of elements at the both sides will be cut off. Thus, a fixed length RSRP co-occurrence vector \(\mathbf{{x}}^{(j)} \in {\mathbb {R}^{11 \times 1}}\) is finally obtained, which is the RSRP feature vector. Until now, the refined data for next step is prepared.

Based on the RSRP feature vector \(\mathbf{{x}}^{(j)}\), we now design the Adaboost classifier \(A(\cdot )\) in (29). Adaboost classifier is widely applied in classification problems due to excellent anti-overfitting property and convenient practice, which is suitable for our classification problem. For the Adaboost algorithm, the key idea is to train different weak classifiers for the same training set, and then combine these weak classifiers to form a stronger classifier. The algorithm is realized by changing the weight of training samples based on the classification result in each iteration. And then the training set with the modified weight is given to the next iteration. Finally, the weak classifiers obtained from each iteration are combined as the final strong classifier. The weak classifier in Adaboost can be chosen arbitrarily, and in this paper we choose CART due to its high accuracy.

The specific Adaboost training steps are as follows. First, we initialize the weight of training sample \(\mathbf{{x}}^{(j)}\) from the available DT and CQT data. Generally, we can obtain more CQT data than the DT data, because CQT data can be more easily and directly obtained from the cellular network than DT data on account of the obtaining methods for them. This will lead to more CQT data being used to train the Adaboost classifier than the DT data. In other words, we have to use more training samples in still state in practice. Therefore, in order to ensure the classification performance for both still state and moving state, we set the training sample initial weight as \({D_1}(j) = 0.5/m(y^{(j)})\), where \(y^{\left( j \right) }\) is the known state as prior information, and \(m(y^{\left( j \right) })\) is the total training sample number of \(y^{\left( j \right) }\) state. Next, the weak classifiers are trained in iteration process. In an iteration t, after training a CART weak classifier \(h_t(\mathbf{{x}}^{(j)})\), the predictive state of each training sample is obtained. The prediction error \({\varepsilon _t}\) is defined as:

$$\begin{aligned} \begin{aligned} {\varepsilon _t} = \sum \limits _j {{D_t}(j)} \end{aligned} \end{aligned}$$
(32)

where j meets the condition \(\left| {\frac{{h_t} \left( \mathbf{{x}}^{(j)} \right) - {y^{\left( j \right) }}}{y^{\left( j \right) }}} \right| > \phi \), and \(\phi \) is a threshold. Then we calculate the weight of current weak classifier \({a_t}\) based on the prediction error \({\varepsilon _t}\) as:

$$\begin{aligned} \begin{aligned} {a_t} = \frac{1}{2}\ln \left( {\frac{{1 - {\varepsilon _t}}}{{{\varepsilon _t}}}} \right) . \end{aligned} \end{aligned}$$
(33)

According to the classifier weight \({a_t}\), the training samplings for the next iteration as:

$$\begin{aligned} \begin{aligned} {D_{t + 1}}(j) = \frac{{{D_t}(j)}}{{{Z_t}}} \times \left\{ \begin{array}{l} {e^{ - {a_t}}}\,\,\,h_t (\mathbf{{x}}^{(j)}) = {y^{(j)}}\\ {e^{{a_t}}}\quad h_t (\mathbf{{x}}^{(j)})\ne {y^{(j)}} \end{array} \right. \end{aligned} \end{aligned}$$
(34)

where \({Z_t}\) is taken to represent the normalization factor to satisfy \(\sum _{j} {{D_{t + 1}}(j)} = 1\). When the iteration upper limit T is reached, T weak classifiers \(h_t(\mathbf{{x}}^{(j)})\) are obtained. Then the strong classifier can be expressed as \(A(\mathbf{{x}}^{(j)})\)

$$\begin{aligned} \begin{aligned} A(\mathbf{{x}}^{(j)}) = \mathrm{{sign}}\left[ {\sum \limits _{t = 1}^T {{a_t} \cdot h_t(\mathbf{{x}}^{(j)})} } \right] . \end{aligned} \end{aligned}$$
(35)

So far, we get the Adaboost classifier \(A(\cdot )\) for time window. Then based on MDT reports, UE motion state can be classified according to (29). According to the motion classification on MDT reports, we can build moving radio map and still radio map respectively in offline stage. And also, in online stage, we can classify the online RSRP with moving state or still state, and then match it with the corresponding radio map for position estimation in the cellular network positioning system by (6)–(8) based on k-NN algorithm.

4 Implementation and performance analysis

4.1 Experiment environment

In order to testify our proposed method in the cellular network, we make an experiment in a real LTE system. The experiment area is a part of downtown area in Harbin, the capital of Heilongjiang Province, China, which is a typical urban area and deployed with 76 eNode B (210 cells) in the area of 2.91 km \(\times \) 2.47 km. The experiment data comes from the LTE system in two days, which totally have 268,861 data. For the first day, we have a data set \(S_1=\{ DT_1,\,CQT_1 \}\) for training, with 7722 data in \(DT_1\) and 181,597 data in \(CQT_1\). For the second day, we have a data set \(S_2=\{ DT_2,\,CQT_2 \}\) for testing, with 5507 data in \(DT_2\) and 74,035 data in \(CQT_2\). We use all the DT data and CQT data to simulate the MDT reports. The experiment map is illustrated in Fig. 6, where red points stand for still state and blue points stand for moving state.The MDT report includes some configuration parameters of base station and some physical layer parameters about communication quality, such as IMSI, CGI, PLMN, RSRP, PCI. etc. RSRP is the most important parameter of them. And latitude and longitude data are used as validation data for position accuracy.

Fig. 6
figure 6

Experiment area map

In order to make our proposed method more practical in the actual LTE positioning system, we take a griding process on the radio map. We use a point to represent a grid of area. All the data in this area are considered to be sampled at the same location. This kind of processing will bring two benefits. On one hand, we can reduce the redundant GPS bit. In practice, the actual GPS position in longitude and latitude usually have many bits after the decimal point. On account of 10 m positioning accuracy for civil GPS, there is no need to use all the bits after the decimal point in the GPS position. On the other hand, we can improve the positioning speed. If we do not make griding process, the RP number for a typical city will be so huge that the positioning server in LTE system will bear great computational burden when thousands of UE apply for positioning service.

4.2 Simulation of UE RSRP difference elimination algorithm

We set the gird with 5 m \(\times \) 5 m, and randomly select a grid in the experiment area for analysis. In this grid, we find there are 169 MDT reports from 16 UEs, and their RSRP distribution histogram is shown in Fig. 7. We can see that these 16 UEs report different RSRP ranging 13 dB from − 108 to − 95 dBm. Obviously, this kind of RSRP difference can not be acceptable.

Fig. 7
figure 7

RSRP distribution without difference elimination

Then we calculate the UE RSRP difference based on MDS algorithm and eliminate the RSRP difference as stated above. The distribution histogram of the RSRP after eliminating the UE RSRP difference is shown in Fig. 8.

Fig. 8
figure 8

RSRP distribution with difference elimination

After eliminating the UE RSRP difference, we can see that the RSRP distributes from the weakest − 103 dBm to the strongest − 100 dBm, which has achieved 10 dB concentrated, comparing with Fig. 7. The average RSRP changes for each UE are shown in Fig. 9. The red line is the RSRP without eliminating the UE RSRP difference, and black line is the one after elimination. The blue line and the brown line are the RSRP recorded in the radio map before and after eliminating the UE RSRP difference. The standard deviation of RSRP reduced from 4.38 to 0.70 dB after eliminating the UE RSRP difference. RSRP distribution becomes more concentrated to the RSRP average value, which is closer to the ideal situation.

Comparing with no UE RSPR differences elimination, the distribution of RSRP is centralized evidently. The reason is the process of UE received signal differences elimination also denoises the environment effect of measurement. The result after UE RSRP differences elimination are more conformed to the actual situation. Actually, the UE RSRP differences elimination can also be seen as denoising. Thus it is concluded the proposed method can effectively eliminate the UE RSRP difference. That is to say, the fingerprint length changing is eliminated effectively.

Fig. 9
figure 9

UE RSRP comparison before and after UE RSRP difference elimination

Fig. 10
figure 10

Positioning performance comparison between the original method and the proposed method only based on UE RSRP elimination

For positioning performance testing, we conduct two experiments. In both of the two experiments, we implement the k-NN algorithm based on (7) and (8). The first experiment adopts the original fingerprint-based positioning technology introduced in Sect. 2.1. In the second experiment, the proposed UE RSRP difference elimination method is introduced to the original method. Figure 10 provides the detailed positioning performance results. It is a feasible and ideal method which has high practical value and broad application prospects without additional equipment and previous deployment.

Figures 9 and 10 tell us that the MDS algorithm we proposed can eliminate the UEs RSRP difference ideally. And based on MDS algorithm, we can eliminate RSRP difference to make radio map apply to different UE models. Finally, we category the radio map into moving radio map and still radio map in the offline stage. In the online stage, we also make classification on RSRP motion state to match with the corresponding radio map. It is concluded that the proposed method can effectively eliminate the UE RSRP difference caused by a wide variety of mobiles. In the meanwhile, the positioning performance outperforms the original kNN method.

However, in practice, the UE RSRP difference between some UEs are not available. It is because a UE may never send MDT report to the LTE system, or it simultaneously appears along with other UEs in the same grid. When more UEs send MDT reports to the LTE system in different grids, the UE RSRP difference squared proximity matrix \(\mathbf {D}\) will become better. The relation between UE percentage of RSRP difference elimination and the positioning accuracy is shown in Fig. 11. We can see from this figure, when more UEs employ the RSRP difference elimination algorithm, better positioning performance will be got.

Fig. 11
figure 11

Positioning accuracy (30, 50, 70 and 90 m) improved with UE percentage of RSRP difference elimination increasing

4.3 Simulation of UE motion state classification algorithm

As stated above, we employ sliding window method to avoid motion misjudgment. In our proposed method, the window size \(s_w\) should be carefully selected. If \(s_w\) is too small, we can not make a good classification on the case between Figs. 3 and 4. If \(s_w\) is too large, UE motion state may change many times in the time window. We should both consider the RSRP changing caused by UE moving and communication channel.

Okumura–Hata model, which is modeled based on measured data, provides completed environment data parameters and the application is extensive. For RSRP calculation, Okumura–Hata model is usually used in LTE system to express the path loss:

$$\begin{aligned} \begin{aligned} {L_b}&= 69.55 + 26.16\lg f - 13.82\lg {h_b} \\&\quad +\, (44.9 - 6.55\lg {h_b})\lg d - \alpha ({h_m})\,(\mathrm{{dB}}) \end{aligned} \end{aligned}$$
(36)

where f is working frequency (MHz), \({h_b}\) is the effective eNode B antenna height, \({h_m}\) is the effective LTE UE antenna height, d is the distance between eNode B and UE, \(\alpha ({h_m})\) is the UE antenna height factor. The path loss difference \(\varDelta {L_b}\) for a UE in \({d_1}\) distance and \({d_2}\) distance can be expressed as:

$$\begin{aligned} \begin{aligned} \varDelta {L_b} = {L_{b2}} - {L_{b1}} = (44.9 - 6.55\lg {h_b})\lg \frac{{{d_2}}}{{{d_1}}}\,(\mathrm{{dB}}). \end{aligned} \end{aligned}$$
(37)

The triggering period of the periodic MDT can be defined as 1.28 s [31]. We set typical UE moving velocity in urban area as 30km/h according to 3GPP protocol [32]. The distance between the two MDT reports is about 10.67 m. Assuming the coverage radius of LTE cell is 300 m, the effective height of eNode B antenna is 30 m, then \(\min (\varDelta {L_b}) \approx 0.52\,(\mathrm{{dB}})\). By analyzing our experiment data, the RSRP value range is usually within 14 dB, which is similar with the value range shown in Fig. 7. A 10 dB guard interval is set to distinguish the RSRP difference. The minimum length of time window is \((14 + 10)/0.52 \times 1.28 \approx 60\,\mathrm{{s}}\). So we set the window size \(s_w=60\) s, step length \(\varDelta T=12\) s. Then, a total of 15,477 time windows can be obtained based on data set \(S_1\), including 14,304 time windows for \(CQT_1\) and 1173 time windows for \(DT_1\). Similarly, we have 7080 time windows based on data set \(S_2\), including 6264 time windows for \(CQT_2\) and 816 time windows for \(DT_2\). A RSRP co-occurrence vector \(\mathbf{{x}}\) is extracted from each time window. The CART depth is set to 5, and the iteration upper limit T for Adaboost is set to 100. Each sampling point will be given \(s_w/\varDelta T(=5)\) classification results by the classifier. The final classification result is determined by (29). The detection number, detection probability and false alarm probability of each state are shown in in Table 1.

Table 1 Classification results on UE motion state for \(S_2\)

We established still radio map and moving radio map in offline stage based on (29). In online stage, we first classify the UE motion state and then load the corresponding radio map for position estimation. The simulation result is shown in Fig. 12. From this figure, we can see the positioning accuracy is also improved by using the proposed algorithm, especially for UE in still state.

Fig. 12
figure 12

Positioning performance comparison between the original method and the proposed method only based on UE motion state classification

Finally, we make a simulation on the positioning performance by implementing both UE RSRP difference elimination and UE motion state classification simultaneously. The positioning result is shown in Fig. 13. We can conclude when the two proposed methods are both introduced, the positioning performance are further improved, which achieves almost 40 m (\({@}85 \% \) CDF) positioning accuracy. Specially, the UE RSRP difference elimination plays a more important role for the positioning performance improvement.

Fig. 13
figure 13

Positioning performance comparisons between the original method and the proposed two methods

When we test the positioning performance for different grids of 1 m \(\times \) 1 m, 10 m \(\times \) 10 m and 15 m \(\times \) 15 m, the comparison result is shown in Fig. 14. According to this figure, we can conclude that the smaller the grid we set, the higher positioning accuracy we can obtain. However, the grid can not be infinitely small due to the great computational burden.

Fig. 14
figure 14

Positioning performance comparison of different grid size

5 Conclusion

In this paper, we introduce our proposed method for RSRP difference elimination and motion state classification for fingerprint-based cellular network positioning system. Based on MDS algorithm, we use MDS algorithm to eliminate the UE RSRP difference to overcome the influence of mobile diversity. Based on the measured data, we achieve to concentrate the RSRP variation into a small range, which can effectively improve the positioning performance. In addition, we proposed a UE motion state classification method based on Adaboost method, which can category the radio map into moving radio map and still radio map. We also make classification on the online RSRP for further matching with the corresponding radio map, which can further improve the positioning performance. We implement our proposed two algorithms together in a real LTE system. The simulation results show that our proposed positioning method can achieve almost 40m (\({@}85 \% \) CDF) positioning accuracy. In the future work, we would make data cleaning to prevent the effect of outliers, which is not measurement error in most of situations. Furthermore, considering the fact that network optimization causes some base station parameters changing, radio map needs to be regularly updated, we can introduce crowdsourcing technique to dynamically update radio map practically.