Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    【FAQ】全志R329如何使用DMIC的高通滤波寄存器滤掉低频噪声?

    其它全志芯片讨论区
    r329 r328 faq 技术支持
    1
    1
    156
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 8 last edited by

      开发环境

      硬件:R328
      软件:Tina
      内核: Linux-4.9

      问题描述

      客户使用DMIC录音,想通过配置高通滤波寄存器,滤掉800hz的噪声
      与高通滤波相关的寄存器:
      HPF_EN_CTR: 0x38
      HPF_COEF_REG: 0x3c
      HPF_GAIN_REG: 0x40

      解决方案

      只需要更改HPF_COEF_REG中的值即可,假如效果没有达到预期,还请找出噪声来源,从源头上解决。

      0fb00923076b4479831efda9fdc9170b.jfif

      coef值与截止频率的关系是Fc=fs*(1-coef)/2π,其中fs是采样频率。

      coef的值是3.24格式,也就是有效位是27bit,3个整数位,24个小数位,默认值为0x00FFAA45,换算成10进制就是0.99869,当采样频率是48k时,默认设置的截止频率Fc=48k *(1-0.99869)/2π = 10Hz。

      下面演示如何通过配置HPF_COEF_REG寄存器滤掉100hz的正弦波。

      使用audiocodec播放100hz正弦波。

      7265e6a7c7704ec58ed51ee264f43505.jfif

      HPF_COEF_REG使用默认值,DMIC使用采样频率16k录音,保存文件为100hz_default.wav。

      ec38e94145c84940a8aaff687277b513.jfif

      截止频率为100Hz的话,经计算得出coef值为0.96075,因此HPF_COEF_REG修改为0x00f5f1db,DMIC使用采样频率16k录音,保存文件为100hz_setHPF.wav。

      c89499539f2c40138a153c2c6e77747c.jfif

      两者的音频波形如下,可见100hz_setHPF的波形中,录回正弦波的db值比100hz_default更小。

      16516f7172914f53a20b29dfe092e833.jfif

      因为驱动中并没有对该寄存器进行操作,所以目前只有硬改寄存器的方式进行配置,之后会考虑在dts中添加截止频率的配置项。

      1 Reply Last reply Reply Quote Share 0
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • 1 / 1
      • First post
        Last post

      Copyright © 2022 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策