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 与其他模块的连接关系图如下所示。
ANC 与其它模块连接示意图
结构图
ANC 的内部结构如下图所示。
ANC 结构图
单个 biquad group 的内部结构如下图所示。
ANC biquad group 结构图
API 介绍
Defines
-
WQ_ANC_TOTAL_BIQUID_GROUP_NUM
-
WQ_ANC_ONE_BIQ_GRP_COEFF_NUM
-
WQ_ANC_COEFF_SWITCH_MIN_CNT
-
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
Functions
-
WQ_RET wq_anc_drc_detect_min_ratio(WQ_ANC_DRC_ID id)
from the current moment on, enable drc min ratio detection
- 参数:
id -- anc drc id.
- 返回:
WQ_RET_OK - success, other - failed
-
WQ_RET wq_anc_drc_get_min_ratio(WQ_ANC_DRC_ID id, uint32_t *ratio)
get drc min ratio
- 参数:
id -- anc drc id.
ratio -- anc drc min ratio value pointer.
- 返回:
WQ_RET_OK - success, other - failed
-
WQ_RET wq_anc_out_drc_detect_min_ratio(WQ_ANC_OUT_DRC_ID id)
from the current moment on, enable out drc min ratio detection
- 参数:
id -- anc out drc id.
- 返回:
WQ_RET_OK - success, other - failed
-
WQ_RET wq_anc_out_drc_get_min_ratio(WQ_ANC_OUT_DRC_ID id, uint32_t *ratio)
get out drc min ratio
- 参数:
id -- anc out drc id.
ratio -- anc out drc min ratio value pointer.
- 返回:
WQ_RET_OK - success, other - failed
-
void wq_anc_out_drc_global_config(const wq_anc_drc_global_config_t *cfg)
This function is to set out drc global parameter, see wq_anc_drc_global_config_t.
- 参数:
cfg -- config parameter, see wq_anc_drc_global_config_t
-
void wq_anc_biquad_switch_time_set(WQ_ANC_BIQUAD_ID biquad_id, uint16_t switch_time_ms)
This function is to set anc biquad switch coeff time.
- 参数:
biquad_id -- biquad id
switch_time_ms -- switch time unit is ms
-
struct wq_anc_drc_config
-
struct wq_anc_drc_global_config
-
struct wq_anc_biquad
Public Members
-
WQ_ANC_BIQUAD_IN_MODULE biquad_src[WQ_ANC_BIQUAD_IN_SRC_ID_MAX]
-
WQ_ANC_BIQUAD_IN_MODULE biquad_src[WQ_ANC_BIQUAD_IN_SRC_ID_MAX]
-
struct wq_anc_config