#define ANC_COEFF_NUM (488 + 100)
#define ANC_COEFF_SIZE (ANC_COEFF_NUM << 2)
typedef enum {
ANC_OFF = 1, /关闭模式/
ANC_ON, /降噪模式/
ANC_TRANSPARENCY, /通透模式/
ANC_TRAIN, /训练模式/
} ANC_mode_t;
typedef enum {
TRANS_LPF_1K = 1, //LPF 1K
TRANS_LPF_2K, //LPF 2K
TRANS_LPF_3K, //LPF 3K
TRANS_LPF_4K //LPF 4K
} ANC_trans_hpf; //通透模式低通滤波器组
#define ANC_MANA_UART 0
#define ANC_AUTO_UART 1
#define ANC_AUTO_BT_SPP 2
typedef struct {
u8 start;//ANC状态
u8 mode; //ANC模式
u8 dac_gain_l;//dac左声道增益
u8 dac_gain_r;//dac右声道增益
u8 ref_mic_gain;//参考mic
u8 err_mic_gain;//误差mic
u8 train_way; //训练方式
u8 trans_hpf_en; //通透模式高通使能
u8 trans_lpf_en; //通透模式低通使能
u8 fz_fir_en; //FZ补偿滤波器使能
s16 fz_gain; //FZ补偿增益
int train_err;//训练结果 0:成功 other:失败
int anc_gain;//ANC增益
s32 *fz_coeff;//FZ补偿滤波器表
s32 *coeff;//降噪模式滤波器表
s16 *ffwz_nch_coeff;//通透模式滤波器表
anc_train_para_t train_para;
void (*train_callback)(u8, u8);
} audio_anc_t;