DIY一个数字主动ANC降噪蓝牙耳机午睡眼镜
本帖最后由 shouyinji 于 2023-1-9 02:30 编辑好几年没在本论坛上发帖了。刚2023新年不久,发个贴记录下我去年上半年的一个项目数字主动降噪蓝牙耳机睡眠眼镜,算是对2022上半年的一个项目总结吧
这个项目的设计目标是设计一款头戴式设备用用于改善办公室工作者或者其他体力劳动者的午休体验。现在电控玻璃和主动降噪技术在我们的日常生活中非常普遍,华强北主动降噪耳机都烂大街了良莠不齐。当然我倒是没见到过有什么DIY的主动降噪耳机,或许大家对于这个不是很感兴趣。用电致变色和主动降噪技术,结合手机APP提供一个模拟晚上睡眠的体验。
ANC耳机结构渲染
言归正传,既然是要提高午休质量,那么主动降噪技术就能起到很好的一个隔音的作用。
在设计这玩意的时候主要思考两个问题
A. 哪种电控光阀技术(在LCD、PDLC和ECD中)是最适合该产品的技术?
B. 哪种主动降噪的方法是这个项目的最佳解决方案?我们自己到底搞不搞得定实现它?
主动降噪。现在用于噪音消除的技术可以分为两种类型,即模拟信号处理和数字处理。在数字信号处理(DSP)降噪中,算法也可分为三类,即自适应降噪、自动增益控制(AGC)降噪和固定参数降噪。噪声消除可以在耳机上以前馈、反馈和混合结构实现。混合式(FF+FB)数字自适应降噪的性能最好。
在电控变色镜片和主动降噪的独立研究中,我主要从以下渠道获取信息
A. 网上研究:从网上资源,如半导体制造商的网页和其他关于电气工程的博客。
B. 在线学术数据库。皇家化学(对于电致变色设备),IEEE Xplore(对于主动噪音消除技术和算法)和谷歌学术。
C. 文献资料。来自AMS和ADI的噪声消除应用说明和转向指南。
D. 维基。关于FxLMS噪声消除算法的维基百科,Analog Devices和其他来源。
三种不同的降噪方式,一般很便宜的耳机才用单馈FB。只用FF的耳机没办法实现耳道内降噪,说话声音自己听到很大,不太友好,一般很少用。
关于主动降噪
主动降噪的基本原理
主动降噪的工作原理一般是创造一个具有相同振幅和180度倒相的声波,让它实现对原始噪声的破坏性干扰。这些产生的声波被认为是反噪声。根据信号流,主动降噪可分为前馈、反馈和混合降噪。混合式降噪在这三种降噪方式中具有最好的降噪性能,因为它同时具有前馈式和反馈式降噪的优点。说起来是很简单,不过因为耳机的声学模型复杂,尤其是高频段想要实现相位的匹配很困难。
简化的信号处理流程,这里没显示出自适应的
目前广泛用于商业主动降噪耳机或汽车降噪产品的主动降噪处理单元的类型。一般来说,数字和模拟降噪系统都有各自的优势。对于数字降噪来说,它的特点是精度高,可以精确地接近声学要求,以消除噪音。然而,模拟降噪系统具有较低的延迟,使其能够在高频率下工作。
当时开始试验的时候用的泡沫板随便糊了一个耳机出来测试,麦克风位置也不固定,用的ADAU1452开发板配合Fxlms,结果当然是不能用的。
选择一个降噪解决方案的芯片组来启动
为了开始这个项目,我必须选择一个芯片组来开始做主动降噪测试。下表显示了我正在考虑使用的解决方案。由于我以前有使用Analog Devices SigmaDSP的经验,我首先选择了ADAU1452。但是,在使用SigmaStudio中内置的mFxLMS算法模块测试ADAu1452的降噪效果时,我没有得到任何降噪结果。相反,由于算法不收敛,降噪变成了噪音放大器,最终正反馈导致耳机内出现令人不快的嚎叫声。
在有色玻璃的测试中,限于所需的制造设备、成本和安全性,只有LCD有色玻璃技术被实施和测试。它在可见光谱中显示出良好的光学调制,能够很好地保持外部环境的颜色。然而,它的光学调制特性在不同角度的入射光中并不保持。这就造成了一种现象,即在深黑的工作状态下,用户不能清楚地看到正前方的物体,但可以观察到来自侧面的光线。
外壳不用说了,就是3D打印,然后组装。外壳的机械部分不全部是我弄的。和耳机无关的部分是另外组员设计的再结合耳机的部分。
初版的耳机反馈麦克风位置,内向的,但是位置不固定,每个耳机都要调,很麻烦,音质还一般般
前馈麦克风的位置,外侧接近耳罩的位置
完成的耳机原型
装一波
BGA焊盘做的一般般
在主动降噪的测试中,测试结果表明,ADAU1787的FastDSP内核中实现的IIR双四路滤波器显示出相对较好的降噪效果。蓝牙用的是BP1064,这个芯片很强大,可以跑到320MHz的主频32位置。蓝牙支持AAC编码。BLE用于和手机APP的通信
给PCB贴片,因为这个PCB有BGA还很密集,就用了加热板的方式加热刷锡膏贴片。
最难搞的WLCSP封装,间距0.35的,不过成功率还蛮高,可能因为体积比较小吧。对比上面的0402和下面的0603原件
经典的MPU6050和抄了Battery babysitter 的电源管理电路
最后组装测试一下下
有四个BGA的板,六层,树脂塞孔
DDR走线按照等长差分,阻抗没有很严格控制只是大概一下。然后板子回来了也调试了挺久的,放一下log,当时SD卡检测除了一些问题,因为SDIO经过一个MUX,也排查了时钟,电源之类的问题后来才发现是上拉电阻。镜像用的是香蕉派的bpi-m2-zero的armbian。当时想着把CV和语音识别加上去后来发现时间不够了
放了一会B站视频用作DDR的压力测试看看有没有死机,分辨率1280x720,用H3是这个芯片资料多,Linux主线支持也很好
测试的板子,typec输出HDMI
HDMI通过一个MUX来切换是HDMI模式还是调试模式,可以把IIC,串行调试口,log口等引出版外
最终组装上去测试
受限于我可以接触到的测试和校准这些ANC设备的仪器和环境,以及没有ALC(自动泄漏补偿)算法,所实现的ANC并没有像大多数商业化的ANC耳机那样具有很好的稳定性和背景噪音抑制。
最后放一下这个设计的特性总结。组员设计的很好看。
装进耳机外壳里面
降噪的效果。需要慢慢调节滤波器的参数获得降噪的效果,稳定性和音质之间的平衡。有时候调试FB的降噪听回声咬一下下巴听一下耳机内部的震荡声音判断需要动哪个频率。FF的降噪就放外部的噪声测试调节到最优化的降噪。FB就放音乐调试尽量把音乐低频的分量抵消掉。
板上芯片的描述,仿造ifixit做的
这个设计集合了BGA,WLCSP,DSP 音频处理,工程量还蛮大的。不过自己真的能够实现出数字主动降噪的那一刻确实是非常激动。现在重新想一下也是不敢第二次在一个项目中尝试这么多新东西了说不定下次就不会成功了。最后能够把Linux跑起来了也确实是意料之外,时间花费很多。其实当初搞这个是想着既然这个板都有BGA了那么来多几个BGA也不一样正好试一试H3芯片。
欢迎拍砖。以后也可能部分开源出来一起玩玩
动手能力强,厉害了 楼主厉害,算是坛子里面DIY的天花板了! 六层板,厉害了,我现在也就画画两层板,还是简单电路 :):):)
玩玩还好,感觉如果做商业,体积还是太大 一个耳机用1G的主控1G的内存这也是大炮打蚊子吧 要是能生产产品,我就要一个 牛啊!这能力爆表! 应该就是做相关行业的吧,一般的DIYer很多芯片都拿不到DS 用了linux,如果在主线里找不到相关外设的驱动,调试外设驱动就痛苦了,我用过A33,因为使用了全新外设方案,10%的时间调通驱动,90%时间调稳定性,有时候会高估自己能力觉得我行我能弄好,现实piapia打脸,乖乖换拥有稳定驱动的外设.这个系统软件系统简单不了,是个大工程. 我连电路都看不懂{:3_50:} 天天爱玛丽 发表于 2023-3-5 22:06
用了linux,如果在主线里找不到相关外设的驱动,调试外设驱动就痛苦了,我用过A33,因为使用了全新外设方案,10% ...
一部分抄的香蕉派m2 zero的外设线路,自己懒得搞
最近想玩RK3588,安卓12的sdk压缩后都有60多个G,编译要至少32G内存大半个小时 shouyinji 发表于 2023-3-31 09:16
一部分抄的香蕉派m2 zero的外设线路,自己懒得搞
最近想玩RK3588,安卓12的sdk压缩后都有60多个G,编译 ...
3588跑安卓还是太吃力,玩纯linux也不错,能力强的话不是问题,我更喜欢纯linux,控制更方便 楼主专业人士,做好后把降噪的曲线图测一下,看看深度能不能有30db 这个是专业的
页:
[1]
2