ANC

概述

ANC(Active Noise Cancellation,主动降噪)通过电子线路将原噪声的相位倒过来,以产生与外界相对的声波,从而将噪音中和,达到降噪的目的。

功能特性

ANC 模块支持:

  • 支持 16 个 biquad group, 1 个 biquad group 包含 4 个 biquad filter,最小使用单位为 1 个 bqiuad group。

  • 支持不同 biquad group 按照用户指定方式级联。

  • 支持 biquad group 输出或者输出设置增益。

  • 支持 2 个输出, 单个输出支持最多 8 个输入源, 多个输入源经过相加后输出。

  • 支持 10 个 DRC, 均包含增益、limiter、noise gating 功能,其中 8 个通用 DRC 的位置可由用户指定, 2 个 DRC 只能作用于ANC输出。

  • 支持不同通用 DRC 按照用户指定方式级联。

  • 每个 biquad group 和 通用 DRC 最多支持 3 个 输入源, 多个输入源经过相加后作为新的输入。

  • 支持两组 biqaud filter 参数切换。

  • 典型输入采样率: 192 kHz、200 kHz、384 kHz、400 kHz、768 kHz 和 800 kHz 等多种配置。

ANC 与其他模块的连接关系图如下所示。

../../_images/ANC_mode_connection.png

ANC 与其它模块连接示意图

结构图

ANC 的内部结构如下图所示。

../../_images/ANC_architecture.png

ANC 结构图

单个 biquad group 的内部结构如下图所示。

../../_images/ANC_biquad_group_architecture.png

ANC biquad group 结构图

API 介绍

Defines

WQ_ANC_DRC_DEFAULT_LM_ATTACK_TIME_US
WQ_ANC_DRC_DEFAULT_LM_RELEASE_TIME_US
WQ_ANC_DRC_DEFAULT_GM_ATTACK_TIME_US
WQ_ANC_DRC_DEFAULT_GM_RELEASE_TIME_US
struct wq_anc_drc_config

Public Members

float make_up_db
float limiter_threshold_db
struct wq_anc_drc_global_config

Public Members

int32_t lm_attack_time

anc drc lm attack time us

int32_t lm_release_time

anc drc lm release time us

int32_t gm_attack_time

anc drc gm attack time us

int32_t gm_release_time

anc drc gm release time us

struct wq_anc_biquad

Public Members

WQ_ANC_BIQUAD_IN_MODULE biquad_src[WQ_ANC_BIQUAD_IN_SRC_ID_MAX]
struct wq_anc_drc

Public Members

WQ_ANC_DRC_IN_MODULE drc_src[WQ_ANC_DRC_IN_SRC_ID_MAX]
struct wq_anc_config

Public Members

WQ_ANC_SYNC_SRC src

anc select mic channel sync source.

uint16_t biquad_int_bitmap

the bit of the biquad that needs to generate an interrupt need to set 1, otherwise set 0

bool enable_irq

whether to enable switch coeff interruption