目录
- [1. 问题背景:为什么手机蓝牙要做分档](#1. 问题背景:为什么手机蓝牙要做分档)
- [2. 先讲物理:RSSI 与距离为什么不是线性关系](#2. 先讲物理:RSSI 与距离为什么不是线性关系)
- [3. 分档的真正目标:不是分类手机,而是压缩硬件差异](#3. 分档的真正目标:不是分类手机,而是压缩硬件差异)
- [4. 分档数据值的科学来源:从原始采样到稳态特征](#4. 分档数据值的科学来源:从原始采样到稳态特征)
- [5. 第一步:为什么要做高密度数据采集](#5. 第一步:为什么要做高密度数据采集)
- [6. 第二步:MAD 离群点剔除为什么成立](#6. 第二步:MAD 离群点剔除为什么成立)
- [7. 第三步:EWMA 稳态特征为什么合理](#7. 第三步:EWMA 稳态特征为什么合理)
- [8. 第四步:K-Means++ 为什么能用于分档](#8. 第四步:K-Means++ 为什么能用于分档)
- [9. 分档边界不是直接等于聚类中心:还要做工程修正](#9. 分档边界不是直接等于聚类中心:还要做工程修正)
- [10. 一版更合理的四档分档区间建议](#10. 一版更合理的四档分档区间建议)
- [11. 为什么这组区间比原方案更合理](#11. 为什么这组区间比原方案更合理)
- [12. 实际落地时的完整操作流程](#12. 实际落地时的完整操作流程)
- [13. 常见误区与反例](#13. 常见误区与反例)
- [14. 结论](#14. 结论)
- 参考文献
1. 问题背景:为什么手机蓝牙要做分档
在蓝牙定位、靠近解锁、迎宾感应、无钥匙进入、座舱联动等汽车电子场景里,系统经常使用手机上报的 RSSI(Received Signal Strength Indicator,接收信号强度指示)作为距离判断依据。
看起来这件事很简单:
- RSSI 强,说明手机离车更近;
- RSSI 弱,说明手机离车更远。
但真正上线以后,问题马上出现:
- 同一位置,不同手机测出来的 RSSI 不一样;
- 同一台手机,不同时间测出来的 RSSI 会抖动;
- 同样都是 "-70 dBm",不同天线、不同机型、不同持握姿态下,实际距离可能并不相同。
于是系统会遇到一个核心矛盾:
- 如果每个机型单独标定,精度可以提高,但成本极高;
- 如果所有机型共用一套阈值,成本低,但体验容易失控。
所谓"手机蓝牙分档策略",本质上就是在这两者之间寻找一个折中方案:
- 不追求"每台手机一套参数";
- 也不接受"所有手机完全共用一套阈值";
- 而是把手机按蓝牙链路能力和稳态 RSSI 特征划分成少数几档。
这样做之后,系统复杂度从"每机型独立适配"降为"每档统一适配"。
这就是为什么它在工程上非常有价值。
2. 先讲物理:RSSI 与距离为什么不是线性关系
很多工程讨论一开始就直接谈阈值,这是不够严谨的。
分档策略的第一层科学基础,不是聚类算法,而是无线传播本身。
在室内或半开放空间中,RSSI 与距离通常使用对数路径损耗模型描述:
R S S I ( d ) = A − 10 n log 10 ( d ) + X σ RSSI(d) = A - 10n \log_{10}(d) + X_{\sigma} RSSI(d)=A−10nlog10(d)+Xσ
其中:
- d d d:收发端之间的距离;
- A A A:参考距离(通常取 1 m)处的平均 RSSI;
- n n n:路径损耗指数,反映环境对信号衰减的快慢;
- X σ X_{\sigma} Xσ:阴影衰落项,通常建模为零均值随机变量。
2.1 这个公式为什么是对数形式
原因不在于"大家都这么写",而在于自由空间传播和经验修正共同决定了它的结构。
自由空间中,理想接收功率满足 Friis 传输关系。若忽略常数项,只保留与距离有关的部分,可以写成:
P r ∝ 1 d 2 P_r \propto \frac{1}{d^2} Pr∝d21
两边取对数,得到:
10 log 10 P r = C − 20 log 10 ( d ) 10 \log_{10} P_r = C - 20 \log_{10}(d) 10log10Pr=C−20log10(d)
这说明在理想自由空间里,接收功率与 log 10 ( d ) \log_{10}(d) log10(d) 呈线性关系。
真实环境并不是自由空间,反射、遮挡、人体吸收、车体金属结构都会改变衰减速率,于是把固定的 2 推广为环境参数 n n n,得到:
R S S I ( d ) = A − 10 n log 10 ( d ) + X σ RSSI(d) = A - 10n \log_{10}(d) + X_{\sigma} RSSI(d)=A−10nlog10(d)+Xσ
这就是对数路径损耗模型的来源。
2.2 它对分档有什么直接启发
把上式对距离求导:
d R S S I d d = − 10 n ln 10 ⋅ 1 d \frac{d\ RSSI}{d d} = - \frac{10n}{\ln 10} \cdot \frac{1}{d} ddd RSSI=−ln1010n⋅d1
这个导数非常关键,它告诉我们:
- 当 d d d 很小时, 1 d \frac{1}{d} d1 很大,曲线很陡;
- 当 d d d 很大时, 1 d \frac{1}{d} d1 很小,曲线变缓。
换句话说:
- 近距离强信号区:RSSI 的小变化,往往对应真实距离的显著变化,必须细分;
- 远距离弱信号区:RSSI 波动主要受噪声支配,再怎么细分也未必稳定,反而应该适当合并。
这正是"强信号区细分、弱信号区归并"的物理依据。
如果不先理解这一点,后面的所有分档都容易退化成经验调参。
3. 分档的真正目标:不是分类手机,而是压缩硬件差异
"分档"这两个字很容易让人误解,以为是在对手机品牌、型号做行政式分类。
实际上,分档的对象不是"品牌标签",而是手机在蓝牙接收链路上的统计表现。
更准确地说,我们关注的是同一标准测试条件下,手机的稳态信号特征是否相近。
这些差异主要来自:
- 蓝牙芯片接收灵敏度;
- 天线增益与布局;
- 机身材料和屏蔽效应;
- 系统底层对 RSSI 的滤波与量化策略;
- 发射功率控制与扫描策略。
因此,分档策略要解决的不是"手机被分到哪一类更好看",而是:
如何把手机之间对定位最有害的那部分差异,压缩进少量可管理的阈值档位里。
从数学上看,这相当于把原本每台手机一个参数集的问题:
Θ 1 , Θ 2 , ⋯ , Θ N \Theta_1,\Theta_2,\cdots,\Theta_N Θ1,Θ2,⋯,ΘN
压缩成:
Γ 1 , Γ 2 , ⋯ , Γ K , K ≪ N \Gamma_1,\Gamma_2,\cdots,\Gamma_K,\qquad K \ll N Γ1,Γ2,⋯,ΓK,K≪N
这里:
- Θ i \Theta_i Θi 表示第 i i i 台手机的完整参数集;
- Γ k \Gamma_k Γk 表示第 k k k 个档位对应的一组标准化参数。
如果原来每个机型都要单独标定,复杂度近似是 O ( N ) O(N) O(N);
如果只需要维护少量档位,复杂度近似变成 O ( K ) O(K) O(K)。
当 K K K 远小于 N N N 时,工程收益就非常明显。
4. 分档数据值的科学来源:从原始采样到稳态特征
这一节是全文的重点。
很多方案的问题不在于"用了什么算法",而在于根本没有回答清楚:
一个分档阈值,究竟是从什么数据、通过什么处理、依据什么准则得到的?
一套合格的分档值,不应该直接来自瞬时 RSSI,而应该来自"净化后的稳态特征值"。
完整链路应当是:
原始采样 → 异常剔除 → 时间平滑 → 特征提取 → 聚类分档 → 工程修正 原始采样 \rightarrow 异常剔除 \rightarrow 时间平滑 \rightarrow 特征提取 \rightarrow 聚类分档 \rightarrow 工程修正 原始采样→异常剔除→时间平滑→特征提取→聚类分档→工程修正
这条链路中每一步都不能随意省略:
- 如果没有高密度采样,样本不够,统计量不稳定;
- 如果不做离群点剔除,突发坏点会直接污染均值和分档边界;
- 如果不做稳态提取,手机抖动、瞬时扫描抖动会让特征值不可靠;
- 如果不做聚类,只靠人工阈值,很容易带入主观偏差;
- 如果聚类结果不再做工程修正,阈值可能数学上好看、工程上难用。
接下来我们把这五步逐一拆开。
5. 第一步:为什么要做高密度数据采集
5.1 为什么瞬时 RSSI 不能直接用于定档
单个 RSSI 观测值并不稳定,常常受到以下因素影响:
- 扫描时刻不同;
- 天线瞬态方向不同;
- 多径叠加相位变化;
- 系统内部量化和滤波。
因此,某一时刻的 RSSI 更像是"真实水平 + 随机扰动"的叠加:
r t = s + ε t r_t = s + \varepsilon_t rt=s+εt
其中:
- r t r_t rt 为第 t t t 个时刻的原始 RSSI;
- s s s 为我们真正关心的稳态水平;
- ε t \varepsilon_t εt 为噪声项。
如果只拿一个 r t r_t rt 去分档,等价于把噪声直接当成手机能力本身,这是不合理的。
5.2 为什么建议高频采样 10 到 20 秒
高频采样的作用不是"看起来更专业",而是为了让稳健统计量真正可用。
假设采样频率为 f s f_s fs,采样时长为 T T T,则样本数为:
N = f s ⋅ T N = f_s \cdot T N=fs⋅T
例如:
- f s = 50 f_s = 50 fs=50 Hz;
- T = 10 T = 10 T=10 s;
则有:
N = 500 N = 500 N=500
500 个样本足以支持:
- 中位数估计;
- MAD 离群检测;
- EWMA 稳态提取;
- 后续跨手机聚类。
如果样本数太少,例如只有 20 到 30 个点,那么:
- MAD 会不稳定;
- EWMA 容易受初值影响;
- 聚类中心会更依赖偶然波动。
所以"高密度采样"并不是流程装饰,而是后续全部算法成立的前提。
6. 第二步:MAD 离群点剔除为什么成立
6.1 为什么不能直接用均值和标准差剔除异常点
最常见但也最容易出错的方法,是先求均值 μ \mu μ 和标准差 σ \sigma σ,再删掉满足
∣ x i − μ ∣ > 3 σ |x_i - \mu| > 3\sigma ∣xi−μ∣>3σ
的点。
这个方法的问题在于:
均值和标准差本身就会被离群点污染。
举个直观例子:
- 正常 RSSI 绝对值集中在 72 到 76;
- 某次突发干扰出现一个 92;
这个 92 会把均值往上拉,把标准差也拉大,结果反而让异常点不那么"异常"。
6.2 MAD 的思想到底是什么
MAD 是 Median Absolute Deviation,中位数绝对偏差。
它的核心思想是:
- 先用中位数代替均值,避免中心位置被极端点拖偏;
- 再看每个样本偏离中位数的绝对距离;
- 再对这些绝对距离求中位数,得到稳健尺度估计。
设原始样本为:
x 1 , x 2 , ⋯ , x N x_1,x_2,\cdots,x_N x1,x2,⋯,xN
第 1 步,求中位数:
m = median ( x 1 , x 2 , ⋯ , x N ) m = \operatorname{median}(x_1,x_2,\cdots,x_N) m=median(x1,x2,⋯,xN)
第 2 步,计算绝对偏差:
d i = ∣ x i − m ∣ d_i = |x_i - m| di=∣xi−m∣
第 3 步,再对偏差取中位数:
M A D = median ( d 1 , d 2 , ⋯ , d N ) MAD = \operatorname{median}(d_1,d_2,\cdots,d_N) MAD=median(d1,d2,⋯,dN)
这就是 MAD 的完整来源。
6.3 为什么 MAD 可以用来近似标准差
在高斯分布假设下,有一个经典结果:
σ ≈ 1.4826 × M A D \sigma \approx 1.4826 \times MAD σ≈1.4826×MAD
这个系数不是拍脑袋来的,而是由正态分布中位数绝对偏差与标准差之间的比例关系推出来的。
因此我们可以定义一个稳健 z-score:
z i ( r o b u s t ) = x i − m 1.4826 × M A D z_i^{(robust)} = \frac{x_i - m}{1.4826 \times MAD} zi(robust)=1.4826×MADxi−m
当:
∣ z i ( r o b u s t ) ∣ > τ |z_i^{(robust)}| > \tau ∣zi(robust)∣>τ
时,就认为该点是离群点。
工程上常用 τ = 2.5 \tau=2.5 τ=2.5 到 3.5 3.5 3.5。
6.4 为什么它特别适合 RSSI
因为 RSSI 的坏点通常不是"整体漂移",而是少量突发尖峰:
- 某一帧受到瞬时反射干扰;
- 扫描丢包后下一帧量化异常;
- 瞬时遮挡导致信号骤降。
MAD 对"少量极端点"不敏感,这正好符合 RSSI 场景。
所以在分档流程里,MAD 不是可有可无,而是"先把脏数据拿掉"的关键清洗步骤。
7. 第三步:EWMA 稳态特征为什么合理
7.1 为什么离群点剔除后还不能直接取平均值
即便已经做了离群点剔除,序列仍然有高频抖动。
如果直接取简单平均:
x ˉ = 1 N ∑ i = 1 N x i \bar x = \frac{1}{N}\sum_{i=1}^{N}x_i xˉ=N1i=1∑Nxi
它存在两个问题:
- 对最近状态不敏感;
- 如果采样窗口中前半段和后半段存在缓慢漂移,平均值会把两个状态混在一起。
而我们真正想要的,不是"全程平均水平",而是当前位置下的稳态代表值。
7.2 EWMA 的基本思想是什么
EWMA 是 Exponentially Weighted Moving Average,指数加权移动平均。
它的思想可以概括成一句话:
离当前越近的观测,对当前稳态判断越重要。
因此它不是对所有历史样本一视同仁,而是"厚今薄古"。
其递推形式为:
s t = α x t + ( 1 − α ) s t − 1 , 0 < α < 1 s_t = \alpha x_t + (1-\alpha)s_{t-1},\qquad 0<\alpha<1 st=αxt+(1−α)st−1,0<α<1
其中:
- x t x_t xt:当前时刻观测;
- s t s_t st:当前稳态估计;
- α \alpha α:平滑系数。
7.3 这个公式为什么这么写
这不是随便构造的线性组合,而是一个非常自然的递推估计结构。
我们要求新的稳态估计 s t s_t st 满足两件事:
- 保留历史估计信息;
- 吸收当前新观测。
最简单的线性递推就是:
s t = a x t + b s t − 1 s_t = a x_t + b s_{t-1} st=axt+bst−1
又因为我们希望它是加权平均,系数和应为 1,于是:
a + b = 1 a+b=1 a+b=1
令 a = α a=\alpha a=α,则 b = 1 − α b=1-\alpha b=1−α,便得到:
s t = α x t + ( 1 − α ) s t − 1 s_t = \alpha x_t + (1-\alpha)s_{t-1} st=αxt+(1−α)st−1
这一步并不复杂,但非常重要:
EWMA 的本质是"当前观测"和"上一时刻稳态估计"的凸组合。
7.4 把它展开以后就能看出"指数加权"
继续递推展开:
s t = α x t + ( 1 − α ) s t − 1 s_t = \alpha x_t + (1-\alpha)s_{t-1} st=αxt+(1−α)st−1
将 s t − 1 s_{t-1} st−1 再展开:
s t − 1 = α x t − 1 + ( 1 − α ) s t − 2 s_{t-1} = \alpha x_{t-1} + (1-\alpha)s_{t-2} st−1=αxt−1+(1−α)st−2
代回去:
s t = α x t + α ( 1 − α ) x t − 1 + ( 1 − α ) 2 s t − 2 s_t = \alpha x_t + \alpha(1-\alpha)x_{t-1} + (1-\alpha)^2 s_{t-2} st=αxt+α(1−α)xt−1+(1−α)2st−2
继续展开到起点,可以得到:
s t = α x t + α ( 1 − α ) x t − 1 + α ( 1 − α ) 2 x t − 2 + ⋯ s_t = \alpha x_t + \alpha(1-\alpha)x_{t-1} + \alpha(1-\alpha)^2x_{t-2} + \cdots st=αxt+α(1−α)xt−1+α(1−α)2xt−2+⋯
这说明:
- 最新样本权重是 α \alpha α;
- 上一帧权重是 α ( 1 − α ) \alpha(1-\alpha) α(1−α);
- 再往前一帧权重是 α ( 1 − α ) 2 \alpha(1-\alpha)^2 α(1−α)2。
权重呈指数衰减,所以叫"指数加权"。
7.5 为什么它适合分档稳态值提取
在手机蓝牙分档里,我们希望得到一个"抗抖动,但仍反映当前状态"的特征值。
EWMA 恰好满足这个需求:
- 比简单平均更重视近期数据;
- 比瞬时值更平滑;
- 计算复杂度低,适合量产测试和在线系统。
工程上,若采样频率较高、噪声较强,可取:
α ∈ 0.15 , 0.30 \alpha \in 0.15,0.30 α∈0.15,0.30
这并不是绝对标准,而是常见的工程可用范围。
α \alpha α 越小,越平滑; α \alpha α 越大,越灵敏。
8. 第四步:K-Means++ 为什么能用于分档
8.1 为什么清洗和平滑之后还需要聚类
到这一步,我们手里已经不再是原始 RSSI,而是每台手机在某个测试条件下的稳态特征值。
问题变成:
如何把这些稳态特征值自动划分成若干个相近的组?
这就是一个典型的无监督聚类问题。
如果完全人工划分阈值,问题在于:
- 工程经验会掺杂主观判断;
- 一旦机型数量增多,人工边界很难保持一致;
- 阈值更新无法随着数据集自动演化。
所以需要让数据自己说话。
8.2 K-Means 的目标函数到底是什么
设共有 N N N 个样本,每个样本记为 x i x_i xi,要分成 K K K 类。
K-Means 要最小化类内平方和:
J = ∑ k = 1 K ∑ x i ∈ C k ∥ x i − μ k ∥ 2 J = \sum_{k=1}^{K}\sum_{x_i \in C_k} \|x_i-\mu_k\|^2 J=k=1∑Kxi∈Ck∑∥xi−μk∥2
其中:
- C k C_k Ck 是第 k k k 个簇;
- μ k \mu_k μk 是第 k k k 个簇的中心。
这个目标函数的含义非常直接:
- 同一簇里的点尽量彼此接近;
- 不同簇之间自然拉开。
如果用在手机分档上,意味着:
- 同一档的手机,其稳态 RSSI 特征尽量相似;
- 不同档之间的统计表现尽量可区分。
8.3 为什么不是直接用 K-Means,而是 K-Means++
传统 K-Means 最大的问题是初始中心随机。
初值不同,最后结果可能差很多。
K-Means++ 的改进点在于:
它用更聪明的方式选初始中心。
具体思想是:
- 先随机选一个中心;
- 后面的中心优先从"离现有中心更远"的样本里选;
- 离得越远,被选中的概率越大。
其概率形式为:
P ( x i 被选为新中心 ) ∝ D ( x i ) 2 P(x_i\ 被选为新中心) \propto D(x_i)^2 P(xi 被选为新中心)∝D(xi)2
其中 D ( x i ) D(x_i) D(xi) 表示样本 x i x_i xi 到最近已选中心的距离。
这样做的好处是:
- 初始中心更分散;
- 更不容易掉进差的局部最优;
- 聚类结果更稳定。
8.4 为什么它适合"分档阈值"而不是"最终阈值本身"
这里必须强调一个常被忽略的细节:
K-Means++ 给出的首先是簇中心和簇划分,不是最终工程阈值。
也就是说,它告诉我们:
- 数据自然地可以分成几组;
- 每组的中心在哪里;
- 组与组之间的大致分界在哪里。
但真正用于上线的阈值,还必须结合:
- 安全裕量;
- 跨位置一致性;
- 多天线差异;
- 误判代价。
所以流程应该是:
稳态特征值 → 聚类中心 → 候选边界 → 工程修正边界 稳态特征值 \rightarrow 聚类中心 \rightarrow 候选边界 \rightarrow 工程修正边界 稳态特征值→聚类中心→候选边界→工程修正边界
而不是:
稳态特征值 → 聚类中心 → 直接上线 稳态特征值 \rightarrow 聚类中心 \rightarrow 直接上线 稳态特征值→聚类中心→直接上线
9. 分档边界不是直接等于聚类中心:还要做工程修正
这一节非常关键。
如果只会说"我们用了 K-Means++,所以阈值科学",那是不够严谨的。
9.1 为什么聚类结果不能直接上线
因为聚类是在样本空间里追求类内紧凑,而实际系统上线还要考虑:
- 边界稳定性:边界附近的点是否容易跳档;
- 业务代价:某类误判是否比另一类更严重;
- 多通道差异:主控、左前、左后天线的安装位置和遮挡特性不同;
- 统计漂移:季节、温度、手机系统版本可能带来整体偏移。
所以聚类边界只是"数据驱动的第一版候选边界"。
9.2 更合理的做法:边界 = 聚类结果 + 安全余量 + 通道修正
设聚类后相邻两簇中心分别为 μ k \mu_k μk 和 μ k + 1 \mu_{k+1} μk+1,最简单的候选边界是它们中点:
b k ( 0 ) = μ k + μ k + 1 2 b_k^{(0)} = \frac{\mu_k + \mu_{k+1}}{2} bk(0)=2μk+μk+1
但实际使用时通常还要增加修正项:
b k = b k ( 0 ) + Δ k ( s a f e ) + Δ k ( c h a n n e l ) b_k = b_k^{(0)} + \Delta_k^{(safe)} + \Delta_k^{(channel)} bk=bk(0)+Δk(safe)+Δk(channel)
其中:
- Δ k ( s a f e ) \Delta_k^{(safe)} Δk(safe):安全余量,用于降低边界抖动;
- Δ k ( c h a n n e l ) \Delta_k^{(channel)} Δk(channel):通道修正,用于补偿不同天线通道的系统性偏差。
这就是为什么"真正合理的分档值"必须同时具有:
- 理论基础;
- 数据基础;
- 工程修正。
三者缺一不可。
10. 一版更合理的四档分档区间建议
下面给出一版更适合工程起步使用 的四档区间。
注意:这些区间应理解为推荐初始值,最终仍需基于你的自有采样数据做再标定。
为了避免符号混乱,本文统一使用 RSSI 绝对值:
s = ∣ R S S I ∣ s = |RSSI| s=∣RSSI∣
于是:
- s s s 越小,表示信号越强;
- s s s 越大,表示信号越弱。
10.1 推荐四档区间
(相同硬件分布,同一个点位的测试结果,通过前文所述步骤得出的最终数值)
| 档位 | 主控信号区间 s m s_m sm | 左前信号区间 s l f s_{lf} slf | 左后信号区间 s l r s_{lr} slr | 工程含义 |
|---|---|---|---|---|
| 1 档 | 0,72 | 0,68 | 0,70 | 强信号区,近距离且链路稳定 |
| 2 档 | (72,78] | (68,73] | (70,75] | 次强信号区,仍具较好判别力 |
| 3 档 | (78,85] | (73,80] | (75,82] | 中等偏弱信号区,受环境影响开始增强 |
| 4 档 | (85,99] | (80,99] | (82,99] | 弱信号区,环境噪声主导,应统一归并 |
11. 脱离算法,依赖经验审核为什么这组区间更合理
11.1 从物理曲线斜率看
近距离区间中,RSSI 对距离的敏感性高,因此应采用较窄区间。
这就是为什么:
- 1 档和 2 档被切得更细;
- 4 档则被刻意拉宽。
如果反过来,在弱信号区还大量细分,那么系统会过度响应噪声,而不是响应真实距离。
11.2 从统计稳定性看
靠近边界的样本最容易跳档。
若区间交叠太多或边界太密,就会导致:
- 相邻两次采样在 2 档和 3 档之间来回抖动;
- 不同天线通道给出互相矛盾的档位;
- 标定解释困难,开发人员不清楚到底哪条规则生效。
现在这套区间做成连续、单调、弱重叠甚至无重叠的形式,更利于软件实现和问题追踪。
11.3 从工程管理角度看
分档的目的不是追求数值上的极致精细,而是为了在成本、精度、可维护性之间找到平衡。
因此,一套合理阈值至少应满足:
- 各档含义清晰;
- 边界单调一致;
- 不同通道的偏移可解释;
- 量产和售后阶段都能复现。
12. 实际落地时的完整操作流程
如果要真正把这一策略落到项目中,建议按下面顺序实施。
12.1 数据采集阶段
对每台候选手机,在固定场景、固定姿态、固定距离条件下采集数据:
- 采样频率不低于 50 Hz;
- 单点采样时长不少于 10 s;
- 每台手机至少重复 3 到 5 轮;
- 主控、左前、左后三路通道分别记录。
12.2 数据清洗阶段
对每段采样序列:
- 计算中位数 m m m;
- 计算 M A D MAD MAD;
- 删除满足 ∣ z i ( r o b u s t ) ∣ > τ |z_i^{(robust)}|>\tau ∣zi(robust)∣>τ 的点。
12.3 稳态特征提取阶段
对清洗后的序列做 EWMA,输出末段或稳态区间均值作为代表值。
不要直接拿单帧值做手机画像。
12.4 聚类与候选边界阶段
将所有手机的稳态特征值输入 K-Means++,得到:
- 各档聚类中心;
- 相邻簇之间的候选边界;
- 每档样本数量分布。
12.5 工程修正阶段
结合以下信息微调边界:
- 误判代价;
- 多天线通道偏移;
- 特定品牌的系统性偏差;
- 实车路测结果。
最终输出标准分档表,并锁定版本号。
13. 常见误区与反例
误区 1:直接拿瞬时 RSSI 设阈值
这样做的问题是,阈值实际上在跟着噪声跑。
没有稳态提取,分档值就没有统计意义。
误区 2:均值加标准差就够了
如果数据里有离群点,均值和标准差本身都会被污染。
因此在 RSSI 这类易出现尖峰干扰的场景里,MAD 往往更稳健。
误区 3:聚类结果就是最终标准
聚类只能说明"数据自然分组大概在哪里",但它不会替你考虑安全裕量、误判代价和通道差异。
所以聚类只是科学定档的一部分,不是全部。
误区 4:弱信号区应该切得更细
这恰恰违背了对数路径损耗曲线的物理特征。
弱信号区受噪声影响更大,越细分越容易失稳。
误区 5:只要区间看起来均匀就合理
分档不是把数轴平均切段,而是依据物理传播规律、统计分布和工程目标共同确定的。
"好看"不等于"可用"。
14. 结论
手机蓝牙分档策略的科学性,不在于最后那张表格有多漂亮,而在于它背后的推导链条是否闭环。
一套真正站得住的分档方案,至少应该满足以下逻辑:
- 从对数路径损耗模型出发,说明为什么强信号区应细分、弱信号区应归并;
- 从稳健统计出发,说明为什么必须先做 MAD 离群剔除;
- 从时间序列平滑出发,说明为什么 EWMA 能提取更可信的稳态值;
- 从无监督学习出发,说明为什么 K-Means++ 能给出客观候选边界;
- 最后再通过工程修正,把数学分界变成可上线的标准阈值。
因此,分档阈值绝不是"主观经验数值",而是:
物理规律 + 统计清洗 + 稳态估计 + 聚类分析 + 工程修正 物理规律 + 统计清洗 + 稳态估计 + 聚类分析 + 工程修正 物理规律+统计清洗+稳态估计+聚类分析+工程修正
共同作用的结果。
参考文献
1 T. S. Rappaport. Wireless Communications: Principles and Practice . 2nd Edition. Prentice Hall, 2002.
2 A. Goldsmith. Wireless Communications . Cambridge University Press, 2005.
3 P. J. Rousseeuw, C. Croux. Alternatives to the Median Absolute Deviation. Journal of the American Statistical Association , 1993.
4 R. G. Brown. Smoothing, Forecasting and Prediction of Discrete Time Series . Prentice-Hall, 1963.
5 D. Arthur, S. Vassilvitskii. k-means++: The Advantages of Careful Seeding. Proceedings of SODA , 2007.
6 S. M. Kay. Fundamentals of Statistical Signal Processing, Volume I: Estimation Theory. Prentice Hall, 1993.