Skip to main content
Elsevier - PMC COVID-19 Collection logoLink to Elsevier - PMC COVID-19 Collection
. 2023 Feb 9;35(3):59–73. doi: 10.1016/j.jksuci.2023.01.019

A self-learning mean optimization filter to improve bluetooth 5.1 AoA indoor positioning accuracy for ship environments

Qianfeng Lin a, Jooyoung Son b,, Hyeongseol Shin c
PMCID: PMC9908436  PMID: 37520023

Abstract

As COVID-19 is still spreading globally, the narrow ship space makes COVID-19 easier for the virus to infect ship passengers. Tracking close contacts remains an effective way to reduce the risk of virus transmission. Therefore, indoor positioning technology should be developed for ship environments. Today, almost all smart devices are equipped with Bluetooth. The Angle of Arrival (AoA) using Bluetooth 5.1 indoor positioning technology is well suited for ship environments. But the narrow ship space and steel walls make the multipath effect more pronounced in ship environments. This also means that more noises are included in the signal. In the Uniform Rectangular Array (URA) type receiving antenna array, elevation and azimuth angles are two important parameters for the AoA indoor positioning technology. Elevation and azimuth angles are unstable because of the influence of noise. In this paper, a Self-Learning Mean Optimization Filter (SLMOF) is proposed. The goal of SLMOF is to find the optimal elevation and azimuth angles as a way to improve the Bluetooth 5.1 AoA indoor positioning accuracy. The experimental results show that the Root Mean Square Error (RMSE) of SLMOF is 0.44 m, which improves the accuracy by 72% compared to Kalman Filter (KF). This method can be applied to find the optimal average in every dataset.

Keywords: Angle of arrival, Bluetooth, Indoor positioning, Ship environments

Nomenclature

AoA

Angle of Arrival

URA

Uniform Rectangular Array

SLMOF

Self-Learning Mean Optimization Filter

KF

Kalman Filter

BLE

Bluetooth Low Energy

RSSI

Received Signal Strength Indicator

GA

Genetic Algorithm

LO

Local Oscillator

I

In-Phase

Q

Quadrature

IQ

In-Phase and Quadrature

CTE

Constant Tone Extension

PD

Phase Difference

ULA

Uniform Linear Array

MUSIC

Multiple Signal Classification

MOF

Mean Optimization Filter

IQR

Interquartile Range

ADTK

Anomaly Detection Toolkit

RMSE

Root Mean Square Error

DoA

Direction of Arrival

1. Introduction

COVID-19 is still spreading globally. Tracking close contacts remains an effective method to reduce the risk of virus transmission (Lin and Son, 2021). The virus can spread more easily between ship passengers in the narrow spaces of the ship. Therefore, this calls for an indoor positioning technology that is suitable for ship environments. Bluetooth is a widely used wireless communication technology in the world. Today, almost all devices are equipped with Bluetooth. More importantly, Bluetooth Low Energy (BLE) technology is now used in many low-power devices. Smart wristbands are low-power devices. Therefore, the smart wristband is a kind of BLE tag. It can easily be carried by ship passengers. Especially for ship passengers such as children who do not have smartphones, smart wristbands can be used to track them. Not only that, but this BLE tag can also be very convenient for tracking close contacts. The results of improved indoor positioning accuracy help to accurately trace close contacts. This requires the maximum indoor positioning error to be about 2 m. Due to the low power consumption of BLE, the BLE tag can work continuously for a long time without charging. Therefore, Bluetooth-based indoor positioning technology is more suitable for application in ship environments. The traditional Bluetooth indoor positioning technology uses Received Signal Strength Indicator (RSSI). Due to the instability of RSSI, the indoor positioning accuracy of this method is difficult to meet the demand. Thus, the Bluetooth 5.1 AoA indoor positioning technology is proposed (For more details, see §3). But the obtained data by the AoA method is still affected by the multipath.

In this paper, the type of receiving antenna belongs to URA is assumed first. In the AoA method, only the receiver is required to be equipped with multiple antennas. The transmitter only needs a single antenna. BLE tag is a low-cost and low-power device. Therefore, BLE tag can be widely used in ship environments. Elevation and azimuth angles are two key parameters of the AoA indoor positioning algorithm. Affected by the multipath effect, elevation and azimuth data sets usually contain a lot of noise. The narrow ship space and steel material-based walls will make more noise appear in the elevation and azimuth datasets. Therefore, how to find the optimal elevation and azimuth becomes the problem studied in this paper. In order to solve this problem, a Self-Learning Mean Optimization Filter (SLMOF) is proposed.

The multipath affects the accuracy of Bluetooth indoor positioning. Multipath is caused by wireless signal reflections. As we know, the indoor environment of the ship belongs to a metal indoor environment with a small space. This is because the interior environment of ships is constructed with steel walls. Not only that, but the height of the ship deck is generally lower than in general environments. This also results in an increased probability of the reflected path being received by the receiver. Therefore, the difference between the ship environment and the general environment reveals the following:

  • The probability of receiving reflected paths by the receiver in ship environments is more than in general environments.

  • The similarity of reflected paths and direct paths in ship environments is more than in general environments.

These reflected paths become outliers, resulting in reducing the accuracy of indoor positioning. This also means that outliers in the ship environment are very different from the general environment. Outliers in the ship environment of the following key characteristics:

  • Outliers occur more frequently.

  • Outliers appear in a pattern in the obtained data from ship environments.

Outliers appear to fluctuate up and down around the true value. The true value is hidden in this range of volatility. Then two kinds of boundaries are needed to identify outliers. One is the UP boundary, and the other is the LOW boundary. Therefore, by constantly adjusting two boundaries, the probability of detecting outliers can be increased. Both of these boundaries need to be initialized first. These two boundaries should be controlled by parameters. The box plot is a great way to initialize both boundaries. By adjusting the parameters of the box plot, these two kinds of boundaries can be adjusted arbitrarily. In this paper, the box plot has a total of four parameters. Then these parameters should be able to be adjusted automatically. Nonetheless, we still need to consider cases where some outliers cannot be identified by these two boundaries.

The true value cannot be found under the influence of outliers. Usually, the average value is often substituted as the true value. Under the influence of outliers, the difference between the average value and the true value increases significantly. Therefore, reducing the difference from the true value by optimizing the average value is an effective method. This then requires the design of parameters to describe the fluctuation of outliers up and down around the true value. These two parameters are, R and L. R and L are random errors. R and L describes the difference between the average and the true value. Hence, SLMOF needs to learn these six parameters from training data to find the optimal average.

These six parameters form a very large number of combinations. The goal is to find the optimal parameter combinations. This requires SLMOF to continuously adjust each parameter to optimize the average. The method of generating random combinations and determining the optimal combination by the Genetic Algorithm (GA) is appropriate. Therefore, the GA method is used in SLMOF. SLMOF requires training data to learn these six parameters. This is the reason why SLMOF has an offline stage. The dynamic changes in the ship environment can lead to different features of outliers. This leads to the fact that the six fixed parameters learned may not match the actual situation. Therefore, SLMOF needs to adjust the six parameters appropriately according to the actual situation. This is the reason why SLMOF has an online stage. Details of SLMOF can be found in §4.2.

Designing SLMOF, we make the following main contributions.

  • We propose a novel parameter self-learning estimation approach to detect outliers, which makes the accuracy degradation caused by multipath in ship environments.

  • We present an optimal average self-learning solution to overcome agnostic by dynamic ship environments. Specifically, two parameters (R and L) are generated to optimize the average automatically.

  • SLMOF is applied and evaluated with elevation and azimuth angles dataset obtained from ISP1907-AoA-DK produced by Insight SiP company. Experiments on a real world similar ship environment show significant accuracy improvement.

In the following paper, we discuss previous works in §2. Then, we describe the design details and solutions in §3. In §4, we present the results of the initial evaluation of our prototype. Finally, we give our conclusions in §5.

2. Previous works

Various wireless communication protocols have been studied by academia and industry since the beginning of wireless communication (WiFi, RFID, Bluetooth) (Ayyalasomayajula et al., 2020). Recent years have seen tremendous progress in the field of WiFi-based localization (Gupta et al., 2021). However, necessary to have high power for WiFi communication. Battery powered devices must have low power communication in order to work in ship environments. In this case, WiFi-based localization is not the optimal method for ship environments.

Wireless backscatter communication with WiFi, passive RFID, active RFID, and Bluetooth have been proposed to mitigate the high power challenge. The low power and distance communication protocol provided by passive RFIDs can be used in the low power localization domain (Shangguan et al., 2015). Factory inventory management is cheap when passive RFIDs are used in large scale factories. Several innovations have been made in RFID localization using phase measurements. Although RFIDs generate little power, they have been known to be unreliable and low range due to their zero power nature. In addition, low power backscatter radios have emerged recently as another popular communication paradigm for backscattering ambient signals which can be decoded using existing infrastructure like WiFi, providing Internet access without any new infrastructure needs. Backscatter radios offer low power and short range. The low range of backscatter radios is not suitable for ship environments. Therefore, the low range feature of RFIDs and backscatter radios limits the available localization range of ship passengers in ship environments.

The method of choice for indoor environments is BLE tags (Ding et al., 2021, Chen et al., 2017, Ristanovic et al., 2010). Despite their low power consumption and long range, they are highly resistant to frequency selective fading and provide a sufficient indoor range. The usage of BLE tags on factory floors and in homes is increasing, so they are becoming very popular for tracking operations (HajiAkhondi-Meybodi et al., 2021, Mohaghegh et al., 2021, Hajiakhondi-Meybodi et al., 2020, Hajiakhondi-Meybodi et al., 2020, Alexandrov and Monov, 2017, Yen et al., 2021, Huang et al., 2020, Ye et al., 2022). So the Bluetooth 5.1 AoA indoor positioning technology has been proposed. Toasa et al. (2021) evaluates a novel Bluetooth 5.1 AoA approach for indoor vehicle tracking via simulation. Pau et al. (2021) presents an in-depth overview of the Bluetooth 5.1 direction finding standard’s potential. Hajiakhondi-Meybodi et al. (2020) thinks the Bluetooth 5.1 AoA is an efficient indoor localization method due to its potential in determining the location. It can be seen that the Bluetooth 5.1 AoA indoor positioning technology has a wide range of ship environments. But the reflected paths of Bluetooth make inaccurate localization results of the AoA. According to obtained data from the AoA Locator, we find that there are many outliers in the elevation and azimuth angles dataset (More details can be found in §4.1). To solve this problem, SLMOF is proposed in this paper.

3. Bluetooth 5.1 AoA theory

Bluetooth direction finding is based on the principle of the AoA. The signal arrives at the antenna generating an angle. The Phase Difference (PD) is an important parameter used to calculate the AoA. The AoA makes it possible to calculate the location coordinates of the transmitter. Fig. 1 shows what the AoA is.

Fig. 1.

Fig. 1

AoA method (Semiconductor, 2022).

Fig. 2 illustrates the method of measuring the AoA. Assume that there are four receiver antennas. In the event that the incoming signal is incident at an oblique angle, it creates a PD (φ), as the wavefront propagates at the speed of light (c), and it takes longer for it to reach the further antenna. In 2.4 GHz, the wavelength is around 0.125 m. The PD can be translated to a distance between the wavefront and the farther antenna. L is the distance between the wavefront and the further antenna. L can be calculated by Eq. 1 (Semiconductor, 2022).

L=φλ2π (1)

Fig. 2.

Fig. 2

Measuring AoA (Semiconductor, 2022).

The wavefront is assumed to be planar if the receiver is sufficiently far from the transmitter (at least 3–4 wavelengths). Trigonometric functions can be easily used to determine the angle of incidence from this distance (L). The d is the distance between antennas. θ is Angle of Arrival (AoA). θ can be calculated by Eq. 2 (Semiconductor, 2022).

θ=arccosLd (2)

Bluetooth direction finding measures the phase of incoming signals using IQ sampling. IQ sampling is an in-phase and quadrature sampling technique. IQ sampling is a method in which the receiver mixes the incoming signal with the Local Oscillator (LO) at a 0 degree offset and a 90 degree offset. As a result, two orthogonal functions are gotten. As shown in Fig. 3 , two orthogonal functions are referred to as the In-Phase (I) and Quadrature (Q) components. I and Q components are plotted on the axes of the amplitude and phase of the vector made up of the components I and Q (Semiconductor, 2022).

Fig. 3.

Fig. 3

The example of IQ comment (Semiconductor, 2022).

From these, the amplitude and phase of the main signal can be calculated. In order to be able to further calculate the phase, the main signal needs to be decomposed into I and Q components. The relationship between phase and IQ is illustrated in Fig. 3. Then, IQ can be transformed into a phase by Eq. 3 (Semiconductor, 2022).

ϕ=arctanQI (3)

In order to further calculate the PD, it is necessary to switch the antenna to obtain different IQ data. Fig. 4 shows the data structure of the Constant Tone Extension (CTE). The CTE enables the transmitter to add additional information to the data packet, which makes a specified part of the data packet have a fixed and constant frequency. Therefore, the receiver can sample the IQ components of the waveform and calculate the phase based on information obtained from the waveform. This can be done for more than one antenna, enabling the receiver to calculate the PD from which angle the transmitted signal originated. During the reference period, the receiver shall take an IQ sample every microsecond (there will be 8 reference IQ samples) and an IQ sample every sample slot (1 to 37 IQ samples with 2 μs slots, and 2 to 74 IQ samples with 1 μs slots, meaning 9 to 82 samples in total) (Semiconductor, 2022). Phase deviation is calculated within the reference period because phase shift occurs during the transmission of the signal.

Fig. 4.

Fig. 4

CTE structure and IQ data (Semiconductor, 2022, Labs, 2022a).

Assume that ϕ1 is the phase of receive antenna 1 and ϕ2 is the phase of receive antenna 2. Both ϕ1 and ϕ2 are corrected by phase deviation. Then the PD(φ) can be calculated by Eq. 4 (Semiconductor, 2022).

φ=ϕ2-ϕ1 (4)

There are several types of antenna arrays used for direction finding. Uniform Linear Array (ULA), Uniform Rectangular Array (URA), and Uniform Circular Array (UCA) are the most common ones discussed here. A linear array consists of all the antennas arranged in a single line, while rectangular and circular arrays consist of antennas arranged in two dimensions (on a plane). With a one-dimensional antenna array, only an azimuth angle can be determined (Semiconductor, 2022). As shown in Fig. 5 , two-dimensional arrays can provide reliable azimuth and elevation angles in 3D half-space. Fig. 5 shows an example of BLE tag location calculation with elevation and azimuth.

Fig. 5.

Fig. 5

Tag location calculation with elevation and azimuth (Semiconductor, 2022).

This means that with elevation and azimuth angles, the two-dimensional coordinates of the BLE tag can be known. The relationship between elevation and azimuth and the two-dimensional coordinates can be represented by Eq. 5 and Eq. 6.

x=h×tane×π180×cosa×π180 (5)
y=h×tane×π180×sina×π180 (6)

where x and y are the BLE tag coordinates. The h is the height of AoA Locator relative to the BLE tag plane. The e is the elevation angle. The a is the azimuth angle.

The PD is the key parameter to calculate elevation and azimuth. However, in the real environment, the signal usually contains a lot of noise and phase shift, which causes the PD to become inaccurate. Therefore, it is necessary to obtain the phase deviation in the reference period to correct the PD, but it is still impossible to completely remove the effect of noise on the PD. The name of this algorithm is Multiple Signal Classification (MUSIC). The MUSIC algorithm is used to estimate the Direction of Arrival (DoA) of the signal in the presence of white noise (Labs, 2022b). Nevertheless, during the experiments, we find that the solved elevation and azimuth angles still contain a lot of noise. This causes the computed localization results to become inaccurate. To solve this problem, we proposes SLMOF.

4. Filter design

4.1. Problem description

As mentioned above, the user location can be calculated by elevation and azimuth. Assuming that the user holds the BLE tag, the user location does not change. Then, elevation and azimuth should also remain the same. As shown in Fig. 6 , the x-axis represents the time and the y-axis represents the angle value. However, the elevation and azimuth obtained during the experiment usually contain noise. There are many reasons for these noises. One of the main reasons is the signal reflection. It is also known as multipath effect. The signal is reflected several times and finally reaches the receiving antenna. This increases the interference with the original signal. The final result obtained is shown in Fig. 8. Some noise increases or decreases the value of elevation and azimuth. This results in the final obtained elevation and azimuth becoming unstable. This also means that many outliers are included in the elevation and azimuth values. This situation can become more serious in ship environments. Because the space of ships is narrow. And the surrounding construction structure is made of steel material. Therefore, it becomes a research problem to identify the outliers from the elevation and azimuth data sets.

Fig. 6.

Fig. 6

The example of elevation and azimuth angles at a certain user location.

Fig. 8.

Fig. 8

The Example of anomalies for ME and MA at a certain user location.

ME represents the original elevation angle. MA represents the original azimuth angle. Fig. 7 shows the localization errors of KF and ME-MA at a certain user location. The localization error is the Euclidean distance between the estimated user location and the true user location. KF refers to the localization errors calculated with KE and KA. ME-MA refers to the localization errors calculated with ME and MA. The x-axis represents the index of data, and the y-axis represents localization errors. As can be seen from Fig. 7, the localization results of ME-MA are unsatisfactory. The highest error exceeds 3.5 m and the results are unstable. The maximum error of KF is less than 2 m. However, the localization results are also unstable. This shows that it is possible to improve the localization accuracy by filtering ME and MA.

Fig. 7.

Fig. 7

Errors of KF and ME-MA at a certain user location.

From Fig. 8 , we can see that many outliers appear in ME and MA. The x-axis represents the index of data obtained from the data set. The y-axis represents the angle value. KE represents the elevation angle after Kalman Filter, KA represents the azimuth angle after Kalman Filter, and the red circles represent are the anomalies. Although KF can filter some of the noise in the elevation and azimuth datasets, KE and KA still suffer from noise. However, the results for KE and KA are not stable. KE floats more than 15 degrees up and down. KA floats more than 25 degrees up and down. This floating makes many errors. And in all user locations, KE and KA have this kind of floating. This causes the localization results to become inaccurate. Therefore, how to find the optimal elevation and azimuth angle in ME and MA becomes key research problem in this paper.

In fact, ME and MA belong to time series data. In this paper, we use a method specifically designed to find outliers in time series data for testing, which is named the Generalized Extreme Studentized Deviate (GESD) test (Rosner, 1983). However, in cases of outliers appear in patterns, GESD cannot identify outliers. Fig. 9 and Fig. 10 show the results of outlier identification using the GESD method for the ME and MA datasets at a certain user location. The x-axis represents the index of data and the y-axis represents the angle value. The points marked in red in Fig. 9 and Fig. 10 are the outliers identified by the GESD method. GESD is able to correctly identify all low value outliers, regardless of ME or MA. However, high-value outliers such as 89 in ME and 359 in MA are not correctly identified. In addition, when these outliers appear in a pattern, GESD considers them as normal values. This results in ineffective outlier recognition. This is the problem of GESD. Therefore, how identifying outliers when they appear in ME and MA at regular time intervals becomes another research problem.

Fig. 9.

Fig. 9

Identification of anomalies in ME by GESD.

Fig. 10.

Fig. 10

Identifying the anomalies of MA by GESD.

As mentioned above, there are two problems. The first problem is how to identify outliers when they appear in a certain pattern in the data set. The second problem is how to find the optimal average in a period of data set where the value varies. Therefore, SLMOF is proposed in this paper.

4.2. Self-learning mean optimization filter

The Mean Optimization Filter (MOF) (Lin et al., 2022) is a part of SLMOF. The box plot is used by MOF. The box plot is a method of visually illustrating the locality, spread, and skewness of numerical data through their quartiles in descriptive statistics. The box plot method can be applied to outlier detection also. Dovoedo and Chakraborti (2015) uses a box plot approach to apply to outlier detection. The dataset needs to be sorted in ascending order. One quarter of the ordered data set is represented by the first quartile value (Q1). Three quarters of the data set is represented by the third quartile value (Q3). An Interquartile Range (IQR) can be determined by Q1 from the third quartile value Q3. The IQR is shown in Eq. 7 (Lin et al., 2022).

IQR=Q3-Q1 (7)

In this paper, the outliers in the dataset are identified by calculating the UP and LOW boundary. The UP and LOW boundaries are shown in Eq. 8 and Eq. 9, respectively (Lin et al., 2022).

UP=Q3+C1×IQR (8)
LOW=Q1-C2×IQR (9)

In this paper, it is considered that any data value greater than the UP or less than the LOW boundary in the dataset is identified as an outlier. Therefore, by controlling Q1, Q3, C1, and C2 target parameters, UP and LOW can be controlled to identify different outliers in the data set. Even if outliers appear in the data set with a certain pattern, such outliers can be identified by adjusting UP and LOW (Lin et al., 2022).

The next step is to find the optimal elevation and azimuth in the data set. Because the elevation and azimuth datasets are affected by noise, their values change in a certain interval. Therefore, finding the optimal elevation and azimuth under the influence of noise becomes the research goal of this paper. Then, in order to achieve the research goal, the interval needs to be found first. As shown in Eq. 10, A is the unduplicated angle dataset after filtering out the outliers (Lin et al., 2022).

A=A1,A2,A3.,An (10)

where An represents the nth angle. Interval is the difference between two angles in A. Two different angles can form each interval in order to find the optimal average, all possible intervals in A need to be generated, as shown in Eq. 11 (Lin et al., 2022).

I=A1,A2,A1,A3,A2,A3,An-1,An (11)

where I is the set of all possible intervals of A. To determine the shortest interval, the interval length between each interval needs to be calculated. As shown in Eq. 12 (Lin et al., 2022).

V=A1-A2,|A1-A3,A2-A3,An-1-An (12)

where V is the set of interval lengths for each interval. |Ar-As| is denoted as the interval length between Ar and As. In V, the interval length of the intervals is sorted in ascending order. Through the continuous narrowing of the shortest interval range, the optimal average can be determined. First, the average of A is called the optimal average (Average). The optimal average is updated continuously as the shortest interval in the next steps. To determine the shortest interval, this paper considers the decision basis of distinguishing the data points to the left and right of the optimal average as one of them. As shown in Eq. 13 and Eq. 14 (Lin et al., 2022).

Pright=Ak|Ak>Average (13)
Pleft=Al|Al<Average (14)

where Pright is the set of angles greater than Average, and Pleft is the set of angles less than Average. To find the optimal average more accurately, this paper uses the standard deviation between Ai and Average as one of the decision bases to find it. C is the criterion to divide A into two sets in order to find a subset in which more optimal average may exist. C is shown in Eq. 15 (Lin et al., 2022).

C=1Aq-Average2N+ε (15)

where C is the inverse of the standard deviation. N is the size of [ A1,A2,A3…….., Aq ]. Aq is the qth angle. is a random error (R and L). The larger C means that An is closer to Average. Then the interval closer to Average will be updated as the shortest interval (Lin et al., 2022).

Therefore, the optimal average can be found in the dataset by the above method. Since the above parameters need to be set in advance, this makes it difficult to obtain the optimal elevation and azimuth in different ship environments.

This paper illustrates how the proposed method works through an example in Fig. 11 and Fig. 12 . As shown in Fig. 11, we assume that A is a set of A1,A2 , and A3 and takes values from 0 to 360 degrees. Average is calculated from A. I is a set of ( A1,A2 ), ( A1,A3 ), and ( A2,A3 ), denoted as the example by Interval 1, Interval 2, and Interval 3, respectively. To find the shortest interval, the interval length of each interval needs to be calculated. The Interval length 1, Interval length 2, and Interval length 3 form V. In the next step, I is sorted by V in ascending order. Starting from the first interval in V, this paper determines whether the current interval contains an Average, if so, the current interval is the shortest interval; if not, start to determine the next interval (Lin et al., 2022).

Fig. 11.

Fig. 11

The example of determining the shortest interval (Lin et al., 2022).

Fig. 12.

Fig. 12

The example of determining the optimal average (Lin et al., 2022).

Fig. 12 illustrates how to determine the optimal average. This paper assumes that Interval 1( A1,A2 ) is the shortest interval. In the next step, the data points to the left and right of the Average need to be identified. In the Fig. 12, Pright is A2,A3, and Pleft is A1. In the case of considering random errors R and L. Calculate the Cright and Cleft corresponding to Pright and Pleft respectively by Eq. 13 and Eq. 14. In Fig. 12, Cright is larger than Cleft. Therefore, the left interval of the shortest interval becomes the current Average(M), and the right interval is A2. The optimal average is updated to the average of M and A2. The cycle is repeated until there is no change in the optimal average (Lin et al., 2022).

The definition of parameter notation in Algorithms 1, 2 and 3 is provided in Table 1 . The MOF algorithm is shown in Algorithm 1. Step 2, anomalies in H are identified by the box plot, and a new data set is obtained as A. Step 3, the average of A is calculated as the optimal average. Step 4, generate all possible intervals of A as I. Step 5, calculate the set of interval length of each interval in I as V. Step 6, sort V in ascending order according to the magnitude of interval length. Step 7, check whether the interval contains the optimal average according to the order of V. Steps 8 to 9, if the current interval contains the optimal average, it is the shortest interval. Step 13, calculate Pright and Pleft according to the optimal average. Step 14, calculate Cright and Cleft corresponding to Pright, Pleft, R, and L respectively. Steps 15 to 16, if Cright is greater than Cleft, the left interval of the shortest interval is the current optimal average. Steps 17 to 18, If Cright is less than Cleft, the right interval of the shortest interval is the current the optimal average. Step 20, the optimal average is equal to the average of the new shortest interval. Steps 21 to 22, if the optimal average is not changed, return the optimal average. Steps 23 to 24, if the optimal average is changed, go back to step 13 (Lin et al., 2022).

Algorithm 1

MOF

Input A set of angles H, the first quartile value Q1, the third quartile value Q3, the adjustment factor for the UP boundary C1, the adjustment factor for the LOW boundary C2, random error R, random error L.
Output The optimal average
 1: Begin
 2:Use the box plot method to identify the outliers in H, and a new data set is obtained as A.
 3: The optimal average = Average(A)
 4: Calculate all possible intervals of A as I.
 5: Determine the number of interval length between each interval in I as V.
 6: Sort V in ascending order based on the number of interval length.
 7: for the current interval in Vdo
 8:  if the current interval contains the optimal average then
 9:   The shortest interval = The current interval
10:   Break
11:  end if
12: end for
13: Pright and Pleft are calculated.
14: Calculate the Cright and Cleft corresponding to Pright,Pleft,R, and L respectively.
15: ifCrightCleftthen
16:  The left interval of the shortest interval = The optimal average
17: else
18:  The right interval of the shortest interval = The optimal average
19: end if
20: The optimal average = The average of the new shortest interval
21: if the optimal average is not changed then
22:  Return the optimal average.
23: else
24:  Go back to step 13.
25: end if
26: End

Table 1.

Definition of parameters notation in Algorithm 1, Algorithm 2, and Algorithm 3.

Parameter Definition
ME The original elevation angle
MA The original azimuth angle
H The set of angles
Q1 The first quartile value
Q3 The third quartile value
C1 The adjustment factor for the UP boundary
C2 The adjustment factor for the LOW boundary
R Random error
L Random error
A The unduplicated angle dataset after filtering out the outliers
I The set of all possible intervals of A
V The set of interval lengths for each interval
Pright The set of angles greater than the Average (optimal average)
Pleft The set of angles less than the Average (optimal average)
Cright The inverse of the Pright standard deviation
Cleft The inverse of the Pleft standard deviation
cost The cost of the offline stage of SLMOF is Costoffline
The cost of the online stage of SLMOF is Costonline
k The number of terminating iterations in the offline stage
t Population size
c Crossover probability
g Mutation probability
z The number of terminating iterations in the online stage

But the fixed parameter of MOF can not always achieve good results in the dynamic ship environment. To tune the parameters of the MOF, the GA is used by SLMOF. The GA is an optimization algorithm. It has been successfully used in many fields [18]. It can be used to find the optimal target parameters in the case of changing data sets. In order to find the optimal elevation and azimuth. SLMOF needs to incorporate the GA to adapt to find the optimal combination of target parameters in different ship environments. The parameters of the GA need to be set in advance. They are population size t, the number of terminating iterations k in the offline stage, the number of terminating iterations z in the online stage, crossover probability c, mutation probability g, cost function in the offline stage and cost function in the online stage. Therefore, SLMOF is mainly divided into two stages. One is the offline stage and the other is the online stage.

4.3. Offline stage

The next part of the offline stage is described. First, some user locations are randomly chosen. And the elevation and azimuth datasets are collected at these user locations. At this point, under the condition of having real user locations as labels. It is possible to find an optimal set of target parameters that make the localization error reach the minimum value. There are six target parameters in total for the proposed method in this paper. Four of the target parameters are Q1, Q3, C1 and C2 from the box plot method, and the standard deviation of data values and random errors on the left and right sides of the average are considered in the SLMOF. Thus, there are random error parameters for the left and right sides, which are R and L, respectively.

Then, different combinations of these target parameters can compute different localization results. The cost function in the offline stage is the Euclidean distance between the estimated user location and the true user location. The goal of the GA is to find the optimal set of target parameter combinations that minimize the cost. The cost function of the offline stage can be calculated by Eq. 16.

Costoffline=x-xtrue2+y-ytrue2 (16)

where x is the estimated x-coordinate. The xtrue is the true x-coordinate. The y is the estimated y-coordinate. The ytrue is the true y-coordinate.

4.4. Online stage

This section describes the online stage of SLMOF. Fig. 13 shows the workflow of the online stage of SLMOF. The input is a set of optimal target parameter combinations found from the offline stage. First, the box plot determines UP and LOW based on the optimal parameters Q1, Q3, C1 and C2 from the offline stage. By UP and LOW, the outliers are removed from the data set. Immediately after, SLMOF is able to obtain R and L from the optimal combination of target parameters in the offline stage. Unlike the offline stage, the cost function in the online stage is the standard deviation of the dataset A. Then the GA tries different combinations of target parameters that make the cost reach the minimum value. The cost function of the online stage can be computed by Eq. 17.

Costonline=Std(A) (17)

where costonline represents the standard deviation of data set A.

Fig. 13.

Fig. 13

The example of SLMOF online stage workflow.

The optimal target parameter combination previously found in the dataset needs to be referred to before finding the optimal average for the next dataset. As shown in Fig. 13, SLMOF performs a Weighted operation on the previously found optimal target parameter combinations sequence. The Weighted operation can be expressed by Eq. 18.

di,j=m=1i-1dm,j×dm,jm=1i-1dm,j (18)
Dn=di,1,di,2,di,3,di,4,di,5,di,6di,j (19)

where di,j refers to the jth target parameter at the ith times after Weighted operation. The dm,j refers to the jth target parameter at the mth times. dn refers to the combination of the Weighted target parameters. SLMOF follows the above process to find the optimal averages in different datasets. Taking the scenario in this paper as an example, SLMOF is able to find the optimal elevation and azimuth in different ship environments.

Algorithm 2 describes the proposed SLMOF algorithm in the offline stage. Step 3, the range of value of six target parameters is initialized. In order to find the optimal target combination, the cost function in the offline stage needs to be defined in advance. Step 4, set the cost function for the offline stage. Step 5, initialize the GA parameters. Step 6, the GA is used to generate random combinations of target parameters. Step 7, get Q1, Q3, C1, C2, R, and L from the new target parameter combination. The next step is to obtain the optimal average value from MOF. Step 8, input a combination of ME, MA, and target parameter combination to MOF. Step 9, get the optimal average from MOF output. The next GA calculates the cost function of the offline stage using the optimal average. Step 10, calculate and store the cost of the offline stage. Step 11, save the current combination of target parameters. Steps 13 to 14, if the number of offline termination iterations r is equal to k, return the corresponding (Q1,Q3,C1,C2,R,L) and the optimal average with the lowest cost. Steps 15 to 16, if the number of offline termination iterations r is not equal to k, go back to step 6.

Algorithm 2

SLMOF (offline stage)

Input Original elevation angles ME, original azimuth angles MA, the first quartile value Q1, the third quartile value Q3, the adjustment factor for the UP boundary C1, the adjustment factor for the LOW boundary C2, random error R, random error L.
Output The optimal average
 1: Begin
 2: r=1
 3: Initialize the range of values of six target parameters (Q1,Q3,C1,C2,R,L).
 4: Set the cost function for the offline stage.
 5: Set the number of offline termination iterations to k. The population size t, crossover probability c, and mutation probability g are determined.
 6: A random combination of target parameters is generated using the GA in the range of values of the six target parameters taken.
 7: Get Q1,Q3,C1,C2,R, and L from the new target parameter combination.
 8: Input ME,MA,Q1,Q3,C1,C2,R, and L into the MOF.
 9: Get the optimal average from MOF output.
10: Calculate and store the cost of the offline stage.
11: Save the current combination of target parameters.
12: r=r+1
13: ifr=kthen
14:  Return the corresponding (Q1,Q3,C1,C2,R,L) and the optimal average with the lowest cost.
15: else
16:  Go back to step 6.
17: end if
18: End

Algorithm 3 introduces the proposed SLMOF algorithm in the online stage. Step 3, get Q1, Q3, C1, C2, R, and L from the offline stage output. Because the cost function of the online stage is different from that of the offline stage. Therefore, the cost function needs to be changed. Step 4, set the cost function for the online stage. During the online stage, the GA parameters need to be reinitialized. Step 5, set the number of online termination iterations to z. Step 6, initialize the GA parameters. In order to obtain the optimal average, it is necessary to Weighted the existing combination of target parameters. Step 7, a new combination of target parameters is generated using the GA in the range of values of (Q1,Q3,C1,C2,R,L).

Step 8, the Weighted operation is performed on the existing target parameter combination sequence. Step 9, get Q1, Q3, C1, C2, R, and L from step 8. Step 10, input ME, MA, and target parameter combination to MOF. Step 11, get the optimal average from MOF output. The next GA calculates the cost function of the online stage using the optimal average. Step 12, calculate and store the cost of the online stage. Step 13, save the current combination of target parameters. Steps 15 to 16, if the number of online termination iterations is equal to z, return the corresponding (Q1,Q3,C1,C2,R,L) and the optimal average with the lowest cost. Steps 17 to 18, if the number of online termination iterations is not equal to z, go back to step 7.

Algorithm 3

SLMOF (online stage)

Input Original elevation angles ME, original azimuth angles MA, the first quartile value Q1, the third quartile value Q3, the adjustment factor for the UP boundary C1, the adjustment factor for the LOW boundary C2, random error R, random error L.
Output The optimal average
 1: Begin
 2: s=1
 3: (Q1,Q3,C1,C2,R,L) = SLMOF (offline stage)
 4: Set the cost function for the online stage.
 5: Set the number of online termination iterations to z.
 6: The population size t, crossover probability c and mutation probability g are determined.
 7: A new combination of target parameters is generated using the GA in the range of values of (Q1,Q3,C1,C2,R,L).
 8: Perform the Weighted operation on the existing target parameter combination sequence.
 9: Get Q1,Q3,C1,C2,R, and L from step 8.
10: Input ME,MA,Q1,Q3,C1,C2,R, and L into the MOF.
11: Get the optimal average from MOF output.
12: Calculate and store the cost of online stage.
13: Save the current combination of target parameters.
14: s=s+1
15: ifs=zthen
16:  Return the corresponding (Q1,Q3,C1,C2,R,L) and the optimal average with the lowest cost.
17: else
18:  Go back to step 7.
19: end if
20: End

5. Performance evaluation

5.1. Experiment environment

HANNARA is a Korea Maritime and Ocean University student training ship. Fig. 14 depicts the layout of HANNARA ship’s main deck. The purpose of showing a floor plan of HANNARA ship’s main deck is that the ship environment is similar to that of a cruise ship, and there are enough persons on board as well. From Fig. 14, the ship space is narrow, and the multipath effect can be more intense in the ship indoor environment. Compared with the indoor environment on land, the spatial distribution structure of the ship’s interior can make the received data contain more noise (Lin et al., 2022).

Fig. 14.

Fig. 14

The floor plan of main deck in HANNARA ship (Lin et al., 2022).

In order to avoid the risk of COVID-19 infection to students on HANNARA, a classroom with a similar structure to one of the cabins on HANANRA is found as an experimental environment in the university. A classroom of 7.6 m in length and 7.85 m in width is chosen for testing. We simulate an environment similar to the interior of a ship in a classroom. In the classroom, metal parts of desks and chairs make reflected paths of the Bluetooth signal. Desks and chairs with metal parts surround our chosen user locations. The resulting Bluetooth signal reflections are sufficiently close to those produced in ship environments. The final result shows the advanced result of SLMOF in the classroom environment. But the accuracy of SLMOF may become inaccurate in actual ship environments because of the serious multipath conditions. We are planning to implement the experiment in actual ship environments in short future.

5.2. Experiment design

The AoA Locator and BLE tag are from the AoA demo program (ISP1907-AoA-DK) produced by Insight SiP. The AoA Locator uses Nordic Semiconductor’s nRF52833 chip. Fig. 15 and Fig. 16 show the AoA Locator and tag used in this paper, respectively. The AoA Locator has 12 antennas. The antenna array type of this AoA Locator belongs to URA. The Bluetooth signal transmitted by BLE tag can be received from all directions by AoA Locator. It is able to calculate BLE tag location by using only one AoA Locator (h is known). This paper uses a USB cable to transfer data from the AoA Locator to a python 3.8 program on the computer to do user locations calculations. In this paper, h is set to 1.5 m (Lin et al., 2022).

Fig. 15.

Fig. 15

The AoA Locator of AoA demo program (Lin et al., 2022).

Fig. 16.

Fig. 16

BLE tag of AoA demo program.

The following is the experimental environment for this paper: CPU is AMD Ryzen 7 5700G (3.8 GHz), RAM is 32 GB, OS is Windows 11 21H2, Visual Studio Code version is 1.61.2, Python version is 3.8. The name and version of the packet used for the GESD method is Anomaly Detection Toolkit (ADTK) 0.6.2 (Odnura, 2022). In this paper, we use a python program to obtain the ME and MA datasets from the AoA Locator and process the data. For preparing training data (offline stage), the number of ME and MA is 75 collected on user locations 1, 2, 3, 4, 5, 6, and 7 in 10 s. For preparing test data (online stage), the number of ME and MA is 7 collected on user locations 8, 9, 10, 11, and 12 in 1 s. There are some parameters of the GA that need to be set in advance. Empirically, the population size t is set to 50, the number of offline stage termination iterations k is set to 150, the number of online termination iterations z is set to 15, the crossover probability c is set to 0.5, and the mutation probability g is set to 0.1. Each of the six target parameters takes values in the range 0 to 1.

To test the Bluetooth 5.1 AoA indoor positioning accuracy, 12 user locations are randomly chosen. Fig. 17 shows the location of the AoA Locator and 12 user locations (BLE Tag). The red dots represent the locations of the AoA Locator. 12 user locations represent different scenarios. The distance of some scenarios is less than 2 m. That is similar to scenarios of close contacts and COVID-19 patients.

Fig. 17.

Fig. 17

User locations map.

5.3. Experiment result

In this paper, we compare the filtering results of four different filters for ME and MA. They are SLMOF, MOF, GESD, and KF shown in Fig. 18 and Fig. 19 , respectively. GESD refers to the results obtained by combining the process of finding the optimal average in MOF after identifying the outliers with the GESD method. SLMOF refers to the results of the offline stage.

Fig. 18.

Fig. 18

Errors of different filters on MA at user location 1.

Fig. 19.

Fig. 19

Errors of different filters on ME at user location 1.

In the case of the same dataset, it is possible to show differences in the results of different methods. Fig. 18 and Fig. 19 show the difference in the results of different methods at a certain user location. Fig. 18 shows the filtering results of different filters for MA. The x-axis is the index of data and the y-axis is the angle error. The angle error refers to the difference between the estimated result and the true azimuth angle. Since the angle range of azimuth is 0 360 degree. The error of some MA is too large to be shown. In order to facilitate the display, the results with large errors in MA are eliminated in Fig. 18. It can be seen from the Fig. 18 that MA shows unstable. KF can filter the noise of MA to some extent, but the filtered results are still not stable enough. Therefore, a stable azimuth filtering result cannot be provided. As shown in Fig. 18, GESD, MOF and SLMOF gradually find a stable azimuth. The filtering results of GESD and MOF are similar. The angle error of GESD estimation result is 15 degree. The angle error of MOF estimation result is 12 degree. The filtering result of SLMOF is the optimal one. SLMOF finds the optimal azimuth in MA. The angle error of the SLMOF estimation result is 1 degree. Since the GA is chosen randomly within the range of values of the target parameters. The results obtained by SLMOF for the first time are often less than ideal in the Fig. 18. In the subsequent random selection, the GA finds exactly an optimal set of target parameter combinations, which minimizes the cost. And in the subsequent random combinations of target parameters, none of them could reach the minimum value of cost.

Fig. 19 shows the filtering results of ME for different filters. The KF provides the similar filtering effect also. The drawing order of the layers is determined by the data loading order. The data loading order in Fig. 19 is SLMOF, MOF, GESD, KF, and ME. Therefore, layers of MOF are preferentially drawn before GESD. Because the filtering results of GESD and MOF are almost the same. GESD’s layers overlay MOF’s layers. The angle error of their estimated results is 0.1 degree. Nevertheless, SLMOF also provides satisfactory results, with an angle error of 1.7 degree in the SLMOF estimates. SLMOF is able to provide a stable and accurate estimation result for both elevation and azimuth. To reduce the number of parameters. SLMOF uses the same 6 parameters for ME and MA. Then there is the fact that SLMOF cannot achieve optimal results in both MA and ME. Therefore, in the scenario of user location 1, SLMOF is more inclined to optimize the average of MA to improve the localization results. According to the results in Fig. 20 and Fig. 21 , SLMOF achieves the best effect on user location 1.

Fig. 20.

Fig. 20

Errors of using SLMOF (Offline Stage), MOF, GESD, KF, and ME-MA to different user locations.

Fig. 21.

Fig. 21

Errors of using SLMOF (Online Stage), MOF, GESD, KF, and ME-MA to different user locations.

The localization errors obtained by applying different filters at 12 user locations are shown in Fig. 20 and Fig. 21. The user locations 1, 2, 3, 4, 5, 6, and 7 belong to the localization errors of the offline stage of SLMOF as shown in Fig. 20. It can be seen in Fig. 20 that SLMOF performs the optimal results at these user locations. It is noteworthy that user location 2 has the largest error. This is due to the fact that the number of outliers in the ME collected at user location 2 is higher than the normal values. Nevertheless, SLMOF greatly reduces the localization errors for user location 2. This illustrates that SLMOF is able to find the optimal set of elevation and azimuth to maximize the improvement of indoor localization accuracy.

The user locations 8, 9, 10, 11, and 12 belong to the SLMOF online stage localization results as shown in Fig. 21. User location 8 belongs to the first estimated user location in the online stage of SLMOF. Therefore, SLMOF does not have enough valid data to find the optimal average. As the data set increases, SLMOF shows the optimal results on the user location 9, 10, 11, and 12.

The localization error is defined by the Euclidean distance between the estimated user location and the true user location. ME-MA represents the localization error calculated using ME and MA. The Root Mean Square Error (RMSE) of ME-MA is 2.13 m. The RMSE of KF is 1.59 m. The RMSE of ESD is 1.04 m. The RMSE of MOF is 0.96 m. Finally, SLMOF has localization errors with its RMSE of 0.44 m. The percentage error improvement of SLMOF for ME-MA, KF, ESD, and MOF are 80%, 72%, 58%, and 54%, respectively.

6. Conclusion

Today, almost all smart devices are equipped with Bluetooth. The Bluetooth 5.1 AoA indoor positioning technology can be more easily applied in ship environments. However, the narrow ship space and steel-based walls can make the multipath effect more severe. This makes the signal received by the receiver contain a lot of noise. Elevation and azimuth angles are the key parameters to achieve the Bluetooth 5.1 AoA indoor positioning. However, it is found in the experiment that the elevation and azimuth received from the AoA Locator contain a lot of noise. This leads to a serious degradation of the localization accuracy. Therefore, SLMOF is proposed in this paper. SLMOF can find the closest true values of elevation and azimuth in different ship environments. Indoor positioning localization results of different filters are compared in this paper. The RMSE of ME-MA is 2.13 m. The RMSE of KF is 1.59 m. The RMSE of ESD is 1.04 m. The RMSE of MOF is 0.96 m. SLMOF has localization errors with its RMSE of 0.44 m. In the end, SLMOF achieves the optimal results. The percentage improvement of SLMOF on ME-MA, KF, ESD and MOF is 80%, 72%, 58% and 54% respectively.

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Acknowledgement

This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (grant number: 2021R1I1A3056125).

Footnotes

Peer review under responsibility of King Saud University.

References

  1. Alexandrov A., Monov V. Annual Meeting of the Bulgarian Section of SIAM. Springer; 2017. Method for indoor localization of mobile devices based on aoa and kalman filtering; pp. 1–12. [Google Scholar]
  2. Ayyalasomayajula, R., Arun, A., Wu, C., Shaikh, A., Rajagopalan, S., Hu, Y., Ganesaraman, S., Rossbach, C.J., Seetharaman, A., Witchel, E., et al. 2020. {LocAP}: Autonomous millimeter accurate mapping of {WiFi} infrastructure. In: 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20), pp. 1115–1129.
  3. Chen, D., Shin, K.G., Jiang, Y., Kim, K.-H., 2017. Locating and tracking ble beacons with smartphones. In: Proceedings of the 13th International Conference on emerging Networking EXperiments and Technologies, pp. 263–275.
  4. Ding Y., Liu L., Yang Y., Liu Y., Zhang D., He T. From conception to retirement: a lifetime story of a 3-year-old wireless beacon system in the wild. IEEE/ACM Trans. Networking. 2021;30(1):47–61. [Google Scholar]
  5. Dovoedo Y., Chakraborti S. Boxplot-based outlier detection for the location-scale family. Commun. Stat.-Simulat. Comput. 2015;44(6):1492–1513. [Google Scholar]
  6. Gupta, A., Girerd, C., Dunna, M., Zhang, Q., Subbaraman, R., Morimoto, T., Bharadia, D., 2021. {WiForce}: Wireless sensing and localization of contact forces on a space continuum. In: 18th USENIX Symposium on Networked Systems Design and Implementation (NSDI 21), pp. 827–844.
  7. Hajiakhondi-Meybodi Z., Salimibeni M., Plataniotis K.N., Mohammadi A. 2020 IEEE 23rd International Conference on Information Fusion (FUSION) IEEE; 2020. Bluetooth low energy-based angle of arrival estimation via switch antenna array for indoor localization; pp. 1–6. [Google Scholar]
  8. Hajiakhondi-Meybodi Z., Salimibeni M., Plataniotis K.N., Mohammadi A. 2020 IEEE 23rd International Conference on Information Fusion (FUSION) IEEE; 2020. Bluetooth low energy-based angle of arrival estimation via switch antenna array for indoor localization; pp. 1–6. [Google Scholar]
  9. Hajiakhondi-Meybodi Z., Salimibeni M., Mohammadi A., Plataniotis K.N. 2020 IEEE International Conference on Systems, Man, and Cybernetics (SMC) IEEE; 2020. Bluetooth low energy-based angle of arrival estimation in presence of rayleigh fading; pp. 3395–3400. [Google Scholar]
  10. HajiAkhondi-Meybodi Z., Salimibeni M., Mohammadi A., Plataniotis K.N. ICASSP 2021–2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) IEEE; 2021. Bluetooth low energy and cnn-based angle of arrival localization in presence of rayleigh fading; pp. 7913–7917. [Google Scholar]
  11. Huang C., Zhuang Y., Liu H., Li J., Wang W. A performance evaluation framework for direction finding using ble aoa/aod receivers. IEEE Internet Things J. 2020;8(5):3331–3345. [Google Scholar]
  12. Labs, S., 2002a. An1297: Custom direction-finding solutions using the silicon labs bluetooth stack, https://www.silabs.com/documents/public/application-notes/an1297-custom-direction-finding-solutions-silicon-labs-bluetooth.pdf.
  13. Labs, S., 2020b. Ug103.18: Bluetooth direction finding fundamentals, https://www.silabs.com/documents/public/user-guides/ug103-18-bluetooth-direction-finding-fundamentals.pdf.
  14. Lin Q., Son J. Sustainable ship management post covid-19 with in-ship positioning services. Sustainability. 2021;14(1):369. [Google Scholar]
  15. Lin, Q., Son, J., Shin, H., 2022. A mean optimization filter to improve bluetooth aoa indoor positioning accuracy for ship environments. In: 2022 12th International Conference on Indoor Positioning and Indoor Navigation (IPIN), IEEE, pp. 1–16.
  16. Mohaghegh P., Boegli A., Perriard Y. 2021 24th International Conference on Electrical Machines and Systems (ICEMS) IEEE; 2021. Bluetooth low energy direction finding principle; pp. 830–834. [Google Scholar]
  17. Odnura, 2022. Anomaly detection toolkit (adtk), https://github.com/odnura/adtk/tree/73bfb30ba457dd540e8aea82782431254da480ce.
  18. Pau G., Arena F., Gebremariam Y.E., You I. Bluetooth 5.1: An analysis of direction finding capability for high-precision location services. Sensors. 2021;21(11):3589. doi: 10.3390/s21113589. [DOI] [PMC free article] [PubMed] [Google Scholar]
  19. Ristanovic, N., Tran, D.-K., Le Boudec, J.-Y., 2010. Tracking of mobile devices through bluetooth contacts. In: Proceedings of the ACM CoNEXT Student Workshop, pp. 1–2.
  20. Rosner B. Percentage points for a generalized esd many-outlier procedure. Technometrics. 1983;25(2):165–172. [Google Scholar]
  21. Semiconductor, N., 2022. nwp036 - direction finding, https://infocenter.nordicsemi.com/index.jsp?topic=%2Fnwp_036%2FWP%2Fnwp_036%2Fintro.html.
  22. Shangguan, L., Yang, Z., Liu, A.X., Zhou, Z., Liu, Y., 2015. Relative localization of {RFID} tags using {Spatial-Temporal} phase profiling. In: 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI 15), pp. 251–263.
  23. Toasa F.A., Tello-Oquendo L., Peńafiel-Ojeda C.R., Cuzco G. 2021 IEEE 18th Annual Consumer Communications & Networking Conference (CCNC) IEEE; 2021. Experimental demonstration for indoor localization based on aoa of bluetooth 5.1 using software defined radio; pp. 1–4. [Google Scholar]
  24. Ye H., Yang B., Long Z., Dai C. A method of indoor positioning by signal fitting and pdda algorithm using ble aoa device. IEEE Sens. J. 2022;22(8):7877–7887. [Google Scholar]
  25. Yen, H.-Y., Tsai, Z.-T., Chen, Y.-C., Shen, L.-H., Chiu, C.-J., Feng, K.-T., 2021. I/q density-based angle of arrival estimation for bluetooth indoor positioning systems. In: 2021 IEEE 93rd Vehicular Technology Conference (VTC2021-Spring), IEEE, pp. 1–5.

Articles from Journal of King Saud University. Computer and Information Sciences are provided here courtesy of Elsevier

RESOURCES