При первом прочтении вашего вопроса я предположил, что вы имеете в виду расстояние до точки доступа. Написав кучу об этом, я понял, что вы можете иметь в виду что-то еще. Если это то, что вы имеете в виду, продолжайте читать ...
Учитывая вашу конфигурацию:
- один фиксированный приемник (ваш телефон не нужно фиксировать, но он эффективно фиксируется, если вы ищете мгновенные измерения)
- одна фиксированная базовая станция (точка доступа)
- всенаправленная антенна на приемнике
- Протокол 802.11 b / g
Этого нельзя сделать. Даже если вы работали на уровне PHY , эту проблему решить невозможно. Чтобы сделать его немного более выполнимым, вам необходимо триангулировать положение вашего приемника относительно двух (но предпочтительно более) базовых станций. Даже затем это все еще трудная проблема. РЧ волны распространяются со скоростью света, поэтому использование ретрансляционных методов для измерения задержки распространения сигнала в обоих направлениях не даст хорошей точности (приемники должны работать очень быстро, и тогда возникают проблемы многолучевое распространение ... ). Опять же, все это предполагает, что вы в основном строите свое собственное радиочастотное оборудование, что, очевидно, вы не собираетесь делать для iPhone.
Лучше всего отслеживать местоположение базовой станции, чтобы записать уровень сигнала WiFi при изменении положения телефона. С помощью «изменения позиции» вам, по сути, придется проходить по области. С некоторой хорошей эвристикой и надежностью, чтобы справляться с ухудшением сигнала, не связанного с расстоянием, вы можете достичь приличной точности (вероятно, порядка 10 метров).