目录
- 1. 问题背景:为什么手机蓝牙要做分档
- 2. 先讲物理:RSSI 与距离为什么不是线性关系
- 3. 分档的真正目标:不是分类手机,而是压缩硬件差异
- 4. 分档数据值的科学来源:从原始采样到稳态特征
- 5. 第一步:为什么要做高密度数据采集
- 6. 第二步:MAD 离群点剔除为什么成立
- 7. 第三步:EWMA 稳态特征为什么合理
- 8. 第四步:K-Means++ 为什么能用于分档
- 9. 分档边界不是直接等于聚类中心:还要做工程修正
- 10. 一版更合理的四档分档区间建议
- 11. 为什么这组区间比原方案更合理
- 12. 实际落地时的完整操作流程
- 13. 常见误区与反例
- 14. 结论
- 参考文献
1. 问题背景:为什么手机蓝牙要做分档
在蓝牙定位、靠近解锁、迎宾感应、无钥匙进入、座舱联动等汽车电子场景里,系统经常使用手机上报的 RSSI(Received Signal Strength Indicator,接收信号强度指示)作为距离判断依据。
看起来这件事很简单:
- RSSI 强,说明手机离车更近;
- RSSI 弱,说明手机离车更远。
但真正上线以后,问题马上出现:
于是系统会遇到一个核心矛盾:
- 如果每个机型单独标定,精度可以提高,但成本极高;
- 如果所有机型共用一套阈值,成本低,但体验容易失控。
所谓“手机蓝牙分档策略”,本质上就是在这两者之间寻找一个折中方案:
- 不追求“每台手机一套参数”;
- 也不接受“所有手机完全共用一套阈值”;
- 而是把手机按蓝牙链路能力和稳态 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 推荐四档区间
| 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] | 弱信号区,环境噪声主导,应统一归并 |
10.2 为什么我把区间改成这样
和原方案相比,这组区间做了三类修正:
区间不再大面积交叠 原始方案里 2 档和 3 档存在明显重叠,容易导致规则解释不清。 现在各档主要采用首尾衔接的连续区间,更利于实现和验证。
强信号区更紧,弱信号区更宽 这符合对数路径损耗曲线“近陡远缓”的物理特性。
三路通道保留合理偏置,但不再偏差过大 左前、左后相对主控略偏弱是合理的,因为安装位置、遮挡路径、车体结构常不同; 但偏差不能大到破坏同一套解释逻辑,所以我把各通道偏置控制在更容易理解的范围内。
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.







