14809


iOSアプリ開発で、iBeaconから取得できるRSSI(電波強度)を使って端末の位置(距離)を特定する計算方法が知りたいです。

[![](https://i.stack.imgur.com/9zF8i.png)](https://i.stack.imgur.com/9zF8i.png)

*A,B,CがiBeacon位置
[code]

    - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
    {
        if (beacons.count > 0) {
            for (CLBeacon *beacon in beacons) {
                NSInteger rssi = bracon.rssi;
    
                // 距離計算
    
            }
    
        } else {
            NSLog(@"周囲にbeacon端末はありません。");
        }
    }
    
[/code]


CC BY-SA 3.0
2015-08-24T12:10:28.783
14803
2015-08-26T08:21:29.850
2015-08-26T08:21:29.850
4369
4369
question
ios objective-c iphone ibeacon
iBeaconから取得できるRSSIで端末の位置を計算する方法


理論的にはRSSIはデシベル単位の受信電力ですので、AとBの受信電力の比は`10 ^ ((RSSI(b) - RSSI(a)) /
10)`で求められます。そして受信電力は(一番単純なモデルでは)距離の二乗に反比例するので、先ほどの式の逆数の平方根をとれば距離の比が求められます。距離の比が判明すれば軌跡はアポロニウスの円になりますので、円と円の交点が推算位置になります。

…理屈の上では上記のとおりですが実際の伝播を計算で再現するのは難しいです。精度を求めるのであればビーコンを設置してからRSSIの値をマッピングしたほうがよいです。


CC BY-SA 3.0
2015-08-24T14:06:21.323
14809
2015-08-24T14:06:21.323
5750
14803
answer