1. 频谱分析算法
AD16N从V1.4.0版本开始 支持频谱分析算法
该频谱分析算法使用link接口,可在解码、扩音等应用中串联该功能。该功能算法仅对输出的音频样点进行运算获取指定频点幅度,不会修改原本输出的音频样点,不会改变音频输出效果。
1.1. 涉及文件
- 源文件:
apps\app\bsp\common\sound_effect_list\spectral_anal.c- 头文件:
apps\include_lib\audio_eq\hw_eq.happs\include_lib\sound_effect_list\follow.happs\include_lib\sound_effect_list\spectral_anal.h- 库文件:
apps\include_lib\liba\uc03\mbox_flash\audio_eq_lib.a
1.2. 使用流程
该频谱分析算法使用link接口,可在解码、扩音等应用中串联该功能。该功能算法仅对输出的音频样点进行运算获取指定频点幅度,不会修改原本输出的音频样点,不会改变音频输出效果。
1.2.1. 在解码链路中使用频谱分析算法
频谱分析link函数在硬件SRC的link后调用,示例如下:
![]()
将频谱分析算法链接到解码链路
1.2.2. 在扩音链路中使用频谱分析算法
频谱分析link函数在硬件SRC的link后调用,示例如下:
![]()
将频谱分析算法链接到扩音链路
1.2.3. 硬件EQ复用说明
频谱分析算法用到了硬件EQ模块,与EQ音效同时使用时,需要开启多路EQ;
![]()
硬件EQ配置
1.2.4. 获取频点幅度
频谱分析算法每次run完后,会将数据存放在运算buff中,SDK可通过函数getFollowdB_api()定期去获取运算出来的结果
![]()
获取频点幅度接口说明
1.3. 相关函数
1.3.1. void *link_spectral_anal_sound(void *p_sound_out, void *p_dac_cbuf, void **pp_effect, u32 sr, u8 ch)
- 该函数为LINK频谱分析算法,实现算法的启动,并添加到音频链路上,其中参数: ::
void *p_sound_out: 当前算法前级的音频通道句柄;void *p_dac_cbuf: 输出到DAC的OBUF;void **pp_effect: 存放当前音效算法的控制句柄指针的指针;
1.3.2. void getFollowdB_api(void)
该函数为获取频点幅度接口。
频谱分析算法每次run完后,会将数据存放在运算buff中,SDK可通过函数getFollowdB_api()定期去获取运算出来的结果
![]()
获取频点幅度接口说明