首页>>技术资讯>>I2S音频转触觉的DSP算法拆解

I2S音频转触觉的DSP算法拆解

阅读量:76

分享:
2026-10-22 09:28:23

把I2S立体声PCM转成适合宽频触觉执行器的驱动波形,关键不是“把音频原样推给马达”,而是从人耳可听的20Hz到20kHz信号里,提取出人体触觉真正能感知的20Hz到500Hz包络信息,再把它安全、稳定地映射到执行器输出。如果直接拿音频驱动触觉马达,高频成分不仅无法被皮肤有效感知,还会带来发热、噪声和额外功耗。

处理链路从I2S PCM开始

I2S输入通常是16bit或24bit、44.1kHz或48kHz采样的线性PCM立体声。左右声道应分别处理,最终输出双通道触觉波形。完整链路可以按顺序理解为:去直流、抗混叠低通、触觉带通滤波、全波整流、包络跟踪、动态压缩与限幅、增益映射与整形,最后输出到功放。

连续音频转触觉适合背景音乐、环境声、爆炸和撞击等持续音效;事件触觉则来自Vector Haptics API下发的脉冲或撞击波形,在DSP内部与连续触觉输出混音叠加。

先去直流,再限制触觉带宽

第一步是去除直流偏移。通常使用一阶或二阶IIR高通滤波器,截止频率设在10Hz到20Hz附近。它的作用是移除信号中的直流分量和极低频漂移。如果直流分量直接进入触觉马达,会造成静态偏置,长期运行可能引起发热甚至执行器损伤。

接下来是触觉带通滤波。人体触觉对低频幅度变化更敏感,宽频执行器如Titan VH通常可覆盖到300Hz到500Hz,而窄带LRA往往只在80Hz到150Hz附近有明显响应。因此带通滤波需要切掉20Hz以下的亚声成分,也要切掉300Hz到500Hz以上对触觉无效的高频成分。

滤波器选型上,二阶IIR巴特沃斯或贝塞尔带通都比较常见。若更关注音触同步,贝塞尔滤波器更合适,因为它的群延迟更线性,有助于减少音频播放与触觉输出之间的时序错位。FIR滤波器在相位线性上更有优势,但资源开销更高,通常更适合算力充裕的高端平台;嵌入式DSP场景下,IIR更实用。

包络提取是触觉质感的关键

音频信号本身是交流振荡,但触觉感知更多来自振幅变化。比如爆炸声、撞击声往往表现为高频载波叠加幅度变化,人体真正感受到的是“强弱起伏”,而不是载波本身的快速振荡。

包络提取通常先做全波整流,将信号取绝对值,使正负半周都变为正极性,从而把幅度信息转为单极性信号。随后通过低通包络跟踪器提取缓慢变化的包络。

工程上更推荐使用双时间常数包络跟踪器。当整流后的信号大于当前包络值时,使用较快的attack系数,让包络迅速跟上突发声音;当整流后的信号小于当前包络值时,使用较慢的release系数,让触觉衰减更自然。attack一般可设在1ms到5ms,release可设在20ms到100ms。触觉的release通常比音频包络更长,因为皮肤对振动衰减的感知需要更充足的时间。如果只用单一时间常数低通,撞击类音效容易出现发硬、衰减过快或质感单薄的问题。

动态压缩防止马达饱和

音频动态范围很大,从低语到爆炸声幅度差异明显,但触觉执行器的位移、加速度和驱动电压都有硬上限。因此需要动态范围压缩。

当输入电平低于阈值时,信号基本保持原增益;超过阈值后,按设定压缩比降低增益增长。触觉场景通常不需要过高的压缩比,2:1到3:1更常见。压缩比过高会让触觉变得扁平,失去轻重层次。配合软拐点和增益平滑滤波,可以避免增益快速跳变带来不自然的振动感。

压缩的目的不只是防止削波,也包含提升弱音效的可感知度,同时避免强音效让马达进入饱和或产生机械冲击。

映射到执行器并保留质感

包络提取完成后,有两种常见输出方式。一种是振幅调制,用包络乘以带通后的原始音频信号,保留一定频率细节,适合宽频触觉执行器,能呈现撞击、轰鸣、摩擦等更丰富的质感。另一种是直接使用包络作为驱动波形,输出更偏低频轮廓,实现简单,但质感相对单一。

随后应进行非线性映射。人体触觉感知并非线性,同样电压增量在弱振动区间更容易被察觉,在强振动区间感知变化会变弱。可以通过查找表将线性幅值映射到更接近感知均匀度的曲线。最后再做硬件限幅,将输出钳位在功放安全范围内。

双通道与事件触觉混音

左右声道各自完成滤波、整流、包络跟踪和压缩后,得到两路连续触觉波形。事件触觉波形由Vector Haptics API下发,在DSP内部与连续触觉叠加。两路可以独立设置增益和相位,从而实现座椅、方向盘或座舱不同位置的立体触觉效果。

工程实现中的几个要点

音触同步需要特别关注。IIR滤波器会引入相位延迟,如果触觉相对音频滞后超过十几毫秒,用户可能明显感到不同步。贝塞尔滤波器、全链路延迟预算和统一时钟参考都很重要。

马达非线性也需要补偿。触觉执行器的加速度并不严格正比于驱动电压,低频大振幅时容易出现位移饱和或频响起伏。若不做预失真或增益补偿,输出质感会随频率和幅度变化而失真。

低音量场景下,包络提取可能放大音频底噪,产生持续微弱振动。可以加入噪声门,低于设定阈值时关闭输出。左右通道若存在增益或滤波器参数差异,也会导致立体触觉不平衡,需要在量产阶段通过校准查找表修正。

两种典型落地方式

一种是模组内置DSP实现。I2S直接进入Titan VH或类似触觉模组,滤波、包络、压缩和混音都在模组内完成,主控只需下发事件API,MCU负载低,延迟也更可控。

另一种是车载或座舱中的软件实现。SHARC-FX等音频DSP接收媒体音频或麦克风信号,运行上述算法后,再输出处理后的触觉波形给功放或触觉模组。这种方式参数可动态调整,算法可迭代,更适合需要自定义HMI体验的高端座舱。


搜   索

为你推荐

  • STEVAL-SPIN3201

    品牌:ST(意法半导体)

    STEVAL-SPIN3201

    封装/规格:开发板我要选购

  • TD521D485 管装

    品牌:MORNSUN(金升阳)

    TD521D485

    封装/规格:插件我要选购

  • DS1747WP-120IND+ 管装

    品牌:MAXIM(美信)

    DS1747WP-120IND+

    封装/规格:贴片我要选购

  • NUCLEO-F446RE

    品牌:ST(意法半导体)

    NUCLEO-F446RE

    封装/规格:开发板我要选购

  • FNA41560B2 管装

    品牌:ON(安森美)

    FNA41560B2

    封装/规格:SPMAA-C26我要选购