3. 反射与折射:触摸物表面反射特性、光路折射补偿模型、多路径干扰抑制

光学触控里,反射和折射这两个物理现象,可以说是精准度的头号敌人。我刚开始做光学触控系统那会儿,总觉得算法能搞定一切,结果被现实狠狠教育了一回——明明手指按下去,坐标却飘了半个屏幕。后来才明白,不把光路里的反射和折射理清楚,算法再强也是白搭。

这一节,咱们就聊聊怎么对付这两个家伙。说白了,就是三件事:摸清触摸物的反射特性、建一个折射补偿模型、再把多路径干扰压下去。

3.1 触摸物表面反射特性

你想想看,手指、触控笔、甚至一张纸,它们的表面反射特性完全不一样。手指有皮肤纹理,会散射;触控笔是光滑的塑料,会镜面反射;纸张表面粗糙,又是另一种散射模式。

我在项目中遇到过最头疼的情况——用户戴着手套操作。手套的织物表面会把红外光打得乱七八糟,接收端收到的信号强度直接掉了一半。嗯,这里要注意,反射特性直接影响的是信号的信噪比。

核心参数:反射率、散射角分布、偏振保持度

我建议,在系统设计阶段,至少要考虑三种典型触摸物的反射模型:

  • 手指(皮肤):朗伯散射为主,反射率约 30%-50%,散射角大
  • 触控笔(塑料/橡胶):镜面反射+部分散射,反射率约 60%-80%,方向性强
  • 手套(织物):强散射,反射率约 20%-40%,信号衰减明显

怎么处理?我个人习惯在接收端做动态增益调整。根据反射信号的强度,自动调节放大倍数。这样,不管是手指还是手套,都能拿到差不多的信号幅度。

小技巧:可以在系统初始化时做一次反射特性校准。让用户用手指在屏幕上画一圈,系统自动记录反射特征,后续就按这个特征做匹配。

3.2 光路折射补偿模型

光从空气进入导光板或者玻璃盖板时,会发生折射。这个折射会让触摸点的实际位置和光学传感器看到的位置产生偏差。偏差有多大?我算过,在 45 度入射角下,折射偏移量可以达到 2-3 毫米。对于触控精度要求 1 毫米以内的系统,这个偏差必须补偿。

折射补偿的核心,就是建立一个数学模型,把光路的弯曲算回来。公式其实不复杂,就是斯涅尔定律的工程化应用:

// 折射补偿计算
// n1: 空气折射率 (≈1.0)
// n2: 导光板折射率 (≈1.49 亚克力 / ≈1.52 玻璃)
// θ1: 入射角 (传感器测量值)
// θ2: 折射角 (实际光路方向)

float compensate_refraction(float measured_angle, float n1, float n2) {
    float theta1 = measured_angle * PI / 180.0;
    float sin_theta2 = (n1 / n2) * sin(theta1);
    
    // 防止全反射
    if (sin_theta2 > 1.0) {
        return measured_angle; // 全反射,不补偿
    }
    
    float theta2 = asin(sin_theta2);
    return theta2 * 180.0 / PI;
}

我曾经在一个项目里,因为没做折射补偿,触摸点总是往屏幕边缘偏。后来加上这个模型,偏差从 2.5 毫米降到了 0.3 毫米以内。效果立竿见影。

注意:不同材质的导光板,折射率不一样。亚克力(PMMA)约 1.49,玻璃约 1.52,聚碳酸酯(PC)约 1.58。换材料一定要重新标定折射参数。

3.3 多路径干扰抑制

多路径干扰,说白了就是光走了好几条路才到接收端。直接路径是我们要的,反射路径是干扰。这些干扰光会让接收端误判触摸位置,产生所谓的“鬼点”。

我记得有一次,客户反馈屏幕左上角总是莫名其妙地触发。排查了半天,发现是屏幕边框的金属反光条把光反射到了不该去的地方。这就是典型的多路径干扰。

抑制多路径干扰,我常用的方法有四种:

方法 原理 效果 代价
时间门控 只接收特定时间窗口内的信号 优秀 需要高速计时电路
偏振滤波 利用偏振片滤除反射光 良好 增加光学损耗
空间滤波 用光阑限制接收角度 中等 安装精度要求高
算法抑制 通过信号特征识别干扰 灵活 增加计算量

我建议优先采用时间门控+算法抑制的组合。时间门控能干掉大部分反射路径,算法抑制再处理剩下的顽固干扰。两者配合,效果最好。

实战经验:算法抑制里,我常用的是“信号峰值比”判断。直接路径的信号峰值通常比反射路径高 3-5 倍。设定一个阈值,低于阈值的信号直接丢弃,能有效减少鬼点。

3.4 知识体系总览

下面这张图,把反射、折射、多路径干扰的关系和应对策略串起来了。你可以把它当作本章的思维导图:

反射与折射知识体系 反射与折射知识体系 光学触控精准度 反射特性 手指:朗伯散射 触控笔:镜面反射 手套:强散射 折射补偿 斯涅尔定律建模 材料折射率标定 实时角度补偿 多路径抑制 时间门控 偏振/空间滤波 算法抑制 目标:将触摸误差控制在 ±0.5mm 以内

这张图把三个核心问题串在了一起。反射特性决定了你怎么设计接收端,折射补偿决定了你的坐标准不准,多路径抑制决定了你的系统稳不稳。三者缺一不可。

一句话总结:反射是信号源的问题,折射是光路的问题,多路径是干扰的问题。分别搞定,精准度自然就上去了。