.. _频谱分析算法: 频谱分析算法 ========================================= AD16N从V1.4.0版本开始 支持频谱分析算法 该频谱分析算法使用link接口,可在解码、扩音等应用中串联该功能。该功能算法仅对输出的音频样点进行运算获取指定频点幅度,不会修改原本输出的音频样点,不会改变音频输出效果。 ^^^^^^^^^^^^^^^^^^^^ 涉及文件 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 源文件: | apps\\app\\bsp\\common\\sound_effect_list\\spectral_anal.c 头文件: | apps\\include_lib\\audio_eq\\hw_eq.h | apps\\include_lib\\sound_effect_list\\follow.h | apps\\include_lib\\sound_effect_list\\spectral_anal.h 库文件: | apps\\include_lib\\liba\\uc03\\mbox_flash\\audio_eq_lib.a ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 使用流程 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 该频谱分析算法使用link接口,可在解码、扩音等应用中串联该功能。该功能算法仅对输出的音频样点进行运算获取指定频点幅度,不会修改原本输出的音频样点,不会改变音频输出效果。 在解码链路中使用频谱分析算法 ----------------------------------- 频谱分析link函数在硬件SRC的link后调用,示例如下: .. image:: link_spect_anal.png :alt: "将频谱分析算法链接到解码链路" :align: center .. centered:: 将频谱分析算法链接到解码链路 在扩音链路中使用频谱分析算法 ----------------------------------- 频谱分析link函数在硬件SRC的link后调用,示例如下: .. image:: link_spect_anal_2speaker.png :alt: "将频谱分析算法链接到扩音链路" :align: center .. centered:: 将频谱分析算法链接到扩音链路 硬件EQ复用说明 ----------------------------------- 频谱分析算法用到了硬件EQ模块,与EQ音效同时使用时,需要开启多路EQ; .. image:: eq_config.png :alt: "硬件EQ配置" :align: center .. centered:: 硬件EQ配置 获取频点幅度 ----------------------------------- 频谱分析算法每次run完后,会将数据存放在运算buff中,SDK可通过函数getFollowdB_api()定期去获取运算出来的结果 .. image:: get_follow_db.png :alt: "获取频点幅度接口说明" :align: center .. centered:: 获取频点幅度接口说明 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 相关函数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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: 存放当前音效算法的控制句柄指针的指针; void getFollowdB_api(void) ---------------------------------------------------------------------- 该函数为获取频点幅度接口。 频谱分析算法每次run完后,会将数据存放在运算buff中,SDK可通过函数getFollowdB_api()定期去获取运算出来的结果 .. image:: get_follow_db.png :alt: "获取频点幅度接口说明" :align: center .. centered:: 获取频点幅度接口说明