iBeacon 범위 지정 프로세스 (CoreLocation에서 제공됨)는 iBeacon에서 iPhone의 원활한 이동 거리를 제공하지 않고 너무 큰 변동 값을 제공합니다. 나 또한 가중 평균을 사용하려고했지만 원하는 결과를 얻지 못했습니다. 나는 신호로부터 잡음을 제거하기 위해 Kalman Filter의 사용법을 설명한 link을 보았습니다. 나는 또한 필터를 구현 한 swift framework을 발견했다. 내 질문은 칼만 필터 로직을 적용하여 iBeacon으로부터 원활한 거리를 얻는 방법이다. 나는 현재 아래의 코드를 사용하여 거리를 계산하고 있지만 칼만 필터를 적용하는 방법을 알지 못합니다.iOS Swift : RSSI로부터의 거리 계산
func calculateNewDistance(txCalibratedPower: Int, rssi: Int) -> Double{
if rssi == 0{
return -1
}
let ratio = Double(exactly:rssi)!/Double(txCalibratedPower)
if ratio < 1.0{
return pow(10.0, ratio)
}else{
let accuracy = 0.89976 * pow(ratio, 7.7095) + 0.111
return accuracy
}
}
여기 txCalibratedPower 레인 징 때 didRangeBeacons 각 콜백 [비콘] 오브젝트의 배열을 포함하고, 각 요소는 RSSI 파라미터 beacon.rssi을 갖는다 -74