数字音频总线A2B开发,有手就行(二十三)ADAU1701做的功放板的音效(26个例程)(第三部分)

文章介绍了在音频处理中,均衡器(EQ)的作用和原理,特别是在SigmaDSP如ADAU1701中的应用。通过设置中心频率、增益和Q值等参数,可以调整音频信号的不同频率段,实现噪音消除、音色修饰和音质提升。文中还提到了不同类型的滤波器,如峰化滤波器,并提供了调整EQ的步骤示例。

作者的话

A2B作为ADI的汽车音频总线,正在被用户广泛使用,而绝大多数用户都是自己去摸索,非常浪费时间。OP做过几个A2B的项目,想说这么一个比较简单的东西,竟然没有一个人来好好讲解一下,实在是不应该,于是我就弄了一整套的A2B开发套件,我希望用这个A2B的套件搭一个完整的DEMO系统,能够让0基础的用户能够迅速上手此类应用开发。

关于A2B理论上的东西不会出现在此文档中,我只写应用,第一步做什么,第二步做什么,怎么操作,怎么配置,来实现A2B的功能,用最简单最直观的方式,让兄弟们点点鼠标就能开发。

视频教程

数字音频总线A2B开发详解一(A2B开发套件的初始状态说明)

硬件说明

想要搭一个最基本的A2B DEMO,我们需要下面的几个硬件:

产品链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.15.386c1970L8BukJ&id=695380156392

在这里插入图片描述

  1. AD2428WD-EVB开发板 1块
  2. AD2428WB-EVB开发板 1块
  3. AD2428WC-EVB开发板 1块
  4. A2B-STM32核心板 1块
  5. USBI仿真器 1个
  6. STLINK下载器 1个
  7. 5V2A的电源 1个
  8. A2B双绞线(2米)2条
  9. 3.5mm音频线1到2条
  10. Mini USB线1到2条
  11. 耳机或音响等模拟音源播放设备一个
  12. 手机或电脑等模拟音源输入设备一个

在这里插入图片描述

进入正题

九. A2B-ADAU1701音效开发:1段EQ

SigmaStudio提供了非常多的滤波器,也就是所谓的EQ,那么先简单说一说EQ吧。

在这里插入图片描述
一大堆的滤波器。

首先这个最常用的音效处理,各种滤波器。(本人是电子工程师,并不是声学工程师,水平有限,对音效的理解更偏重于 DSP 电子设计应用这部分,文字中有错误或不准确 的地方,请原谅、指正,共同学习,谢谢)

Equealizer,EQ,中文翻译为均衡。我的理解,在音效系统里,我们需要对原始的音频信号 进行许多方面的加工处理,才能使播放的声音变得优美、悦耳、动听,满足人们对声乐的高 品质需要。EQ 就是其中的一种用来对频响曲线进行调整的工具。换句话说,EQ 能对不同频率的声音信号进行不同的提升或衰减。因为它能补偿由于各种原因造成的信号中欠缺的频率部分,也能抑制信号中过多的频率成分,从而达到高品质声音效果。

例如,EQ 可以抑制频率为 60~250Hz 的低频交流声,也能抑制频率为 6~12KHz 的高频噪声。由于乐器发出的声音大多是复合音,即他们是由基波和谐波复合而成的,所以改变了各频段能量分布的相对大小,就相当于改变了基波与谐波之间的相对关系,从而导致人耳对声音频谱结果的听觉感受发声了改变,我们俗称音色的改变。因此,利用 EQ 还可以进行音调调节和音色加工。

EQ 的种类有很多,我们的 SigmaDSP 就提供了非常多的 EQ 算法模块供大家使用,这些 EQ 的最基本工作原理应该都是相通的。它们都是将音频信号的全频带(20Hz~20KHz)或全频 带的主要部分,按一定的规律分成几个甚至几十个频点(也称之为频段),再分别进行提升或者衰减,从而获得所希望的频响校正曲线。

我们常说的 31 段 EQ,多少段 EQ,SigmaDSP 最多能实现多少段 EQ 是什么意思?频段数越多,则频段分得越细致,补偿修正功能越高。打个比方,15 段 EQ,中心频率我设置个常用的,在 25Hz,40Hz,63Hz,100Hz,160Hz,250Hz,400Hz,630Hz,1.6KHz,2.5KHz,4KHz, 6.3KHz,10KHz,16KHz。31 段 EQ,中心频率我设个常用的,在 20Hz,25Hz,31.5Hz,40Hz, 50Hz,63Hz,80Hz,100Hz,125Hz,160Hz,200Hz,250Hz,316Hz,400Hz,500Hz,630Hz, 800Hz,1KHz,1.25KHz,1.6KHz,2KHz,2.5KHz,3.15KHz,4KHz,5KHz,6.3KHz,8KHz,10KHz,12.5KHz,16KHz,20KHz。根据需要,我们可以在 20Hz~20KHz 的整个音频范围内,调节更多的频点特性,根据需要,精准的提升与衰减增益,消除噪声,修饰音色,提高音质,校正房间声学特性,还能模拟一些特殊的声音效果!

均衡的技术指标有很多,我在这里也简单的说一说,其实有挺多声学教材里讲的更细致:

  1. 中心频率
    中心频率就是指均衡中各谐振回路的谐振频率,即提升或者衰减频段的峰点或谷点所对应的频率。

  2. 频带宽度
    各段频带宽度是指的以中心频率为中心,-3dB 点所对应的频带宽度,它与品质因子 Q 值有关,Q 值越大频带越窄,Q 值越小频带越宽。

  3. 最大提升/衰减量
    均衡器在中心频率点所对应的音频信号,能够提升或者衰减的最大能力,用 dB 分贝来表示。

  4. 频率响应
    频率响应也成频率特性,通常是表示不同频率对某一参考电平的相对信号电平特征曲线图。 在给定的频率范围内,若所有频率信号均有平均的电平,则称之为平坦的频响曲线。频响也可表示为电平偏差不超过某一分贝数值的皮率范围。 均衡器的频率响应指在音频频率范围内各个频率点不提升也不衰减时的频率响应,此时的频率响应曲线越平坦越好!

  5. 频率中心点误差
    频率中心点误差是指各频率点实际中心频率与设定的频率的相对偏移,通常用百分数表示。

  6. 总谐波失真
    信号通过均衡器后,新增加的所有谐波成分的方均根值占基波信号的百分比。

  7. 信噪比
    音频信号电平与通过均衡器后产生的各种噪声电平的比值,用 dB 来表示,用于衡量均衡器的噪声性能,信噪比越大,说明均衡器噪声影响就越小。

  8. 最大输入电平
    均衡器输入回路所能接受的信号最大电平。

还有其他的参数,如最大输出电平,输入阻抗,输出阻抗等等,这里就不再细说了,属于音频基础知识,可以百度或者找本教材读读看。

以上,简单介绍了一下 EQ,在 SigmaDSP 里,实现 EQ 是一件非常容易的事情,不过想要调好 EQ 就是一个细致的活,我们一起慢慢看,慢慢学。

我们以 SigmaDSP 中,最常用的 ADAU1701 为例来说一说,其他的 SigmaDSP 型号均可参照。

在这里插入图片描述

通过该模块可使用两种通用二阶滤波器:峰化及支架型均衡器(EQ)。用于驱动该模块的算法与其他二阶滤波器相同,只有采用一种替代型布局和参数控制,可能更适用于您的应用。这个模块可以控制频率、增益和滤波器类型。

模块怎么用在 SigmaDSP 的音频框架里,这个我们前面的例子都有详细的说明,那么如何来调他
呢。

1.单击蓝色图标,选择所需滤波器:峰化(Peak)或高/低架(Shelving)

在这里插入图片描述
2. 输入所需参数。默认为 Peaking,那我们就先用 Peaking

Peaking 滤波器

增强或减弱指定中心频率。

  1. 增益(Gain):该字段设定滤波器的总增益(缩放增益)。在右上部的“增益”(Gain)字段中编辑所
    需值(+/-15),也可单击箭头。

在这里插入图片描述

  1. 增强/减弱电平(Boost / cut level):通过滑块控制响应滤波部分的电平。

在这里插入图片描述

  1. 频率(Frequency):在左下字段中输入所需峰值或谷值中心频率。

在这里插入图片描述

  1. Q:设定所需 Q 值,在字段中直接输入;单击其箭头;或使用同心旋钮,其中外旋钮控制整
    数值,内旋钮控制小数值。 “Q”值控制着滤波器的窄度,为中心频率与任一侧半功率点(-3dB)
    之比。“Q”值越高,通带与阻带之间的过渡越快。

在这里插入图片描述

  1. 下面我们来实际做个例子,看一看这个 EQ 具体调起来的效果如何。

负增益和低“Q”值

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

保存1701的程序,然后从A2B中加载新的xml,下载工程,听一下EQ的效果吧。

十. A2B-ADAU1701音效开发:31段EQ

十一. A2B-ADAU1701音效开发:4通道输出分别做6段EQ

十二. A2B-ADAU1701音效开发:PEQ

十三. A2B-ADAU1701音效开发:延时

十四. A2B-ADAU1701音效开发:相位

十五. A2B-ADAU1701音效开发:信号发生器-正弦波、方波等各种波形输出

十六. A2B-ADAU1701音效开发:音量调节

十七. A2B-ADAU1701音效开发:立体声Surround和3D Audio

十八. A2B-ADAU1701音效开发:5.1声道效果器测试

十九. A2B-ADAU1701音效开发:FIR滤波器

二十. A2B-ADAU1701音效开发:移频

二十一. A2B-ADAU1701音效开发:动态低音增强

二十二. A2B-ADAU1701音效开发:GPIO控制

二十三. A2B-ADAU1701音效开发:电位器控制音量

二十四. A2B-ADAU1701音效开发:按键控制音量+和-

二十五. A2B-ADAU1701音效开发:按键控制音量+和-和静音

二十六. A2B-ADAU1701音效开发:按键选择效果器的特效

二十七. A2B-ADAU1701音效开发:电位器选择音效曲线

Zedboard板基于SOC的Adau1761测试项目 郑郁正(百度) 项目模板来自:Lab4 1、 在vivado下执TCL脚本可以生成SOC模型。 2、 直接创建SDK项目。 3、 将Line In输入的音频处理后送Line Out。 4、 通过SW0可以选择是否滤波处理音频,还是直通。 主要问题是提供的TCL脚本与vivado2015.2不兼容,按网上“ vivado + zedboard之audio驱动”的步骤运TCL失败。其二是adau1761.h adau1761.c、iic.h、iic.c没用(实际上模板中也没有)。其三是testapp.c中的xfir_hw.h不存在(实际上不滤波处理时可以删除)。 说明一下如何修改TCL脚本。 1、 解压labsoure.rar后将 ..\labsource\sources\lab4 拷贝到 d:\ 下。 2、 启动vivado后点主菜单中的window中的Tcl Console打开Tcl Console命令窗口。 3、 在Tcl Console窗口下面的命令框中输入cd d:/lab4 4、 用windows的“记事本”打开该目录中的audio_project_create.tcl 文档(用其它文本编辑器打开也可以)。 5、 首先将第2create_project audio C:/xup/hls/labs/lab4/audio -part xc7z020clg484-1路径改为create_project audio d:/lab4/audio -part xc7z020clg484-1 6、 第15set_property ip_repo_paths C:/xup/hls/sources/lab4 [current_fileset]路径改为set_property ip_repo_paths d:/lab4 [current_fileset] 7、 将audio_project_create.tcl 的每一拷贝入 Tcl Console 命令框中执。 8、 执第7“create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.3 processing_system7_0”产生错误: ERROR: [BD 5-216] VLNV <xilinx.com:ip:processing_system7:5.3> is not supported for this version of the tools.The latest version is:5.5 ERROR: [Common 17-39] 'create_bd_cell' failed due to earlier errors. 9、 在右上Diagram窗口右击鼠标选“Add IP…”,选择倒数第2个IPcore:“ZYNQ7 Processing System”,将出现在Tcl Console窗口中的“create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.5 processing_system7_0”拷贝代替第7。实际上是vivado版本兼容问题,将5.3改为了5.5。 10、 注消2526。因为 执25 delete_bd_objs [get_bd_nets processing_system7_0_fclk_clk1] 产生警告: WARNING: [BD 5-234] No nets matched 'get_bd_nets processing_system7_0_fclk_clk1' 执26 connect_bd_net -net [get_bd_nets processing_system7_0_fclk_clk0] [get_bd_pins proc_sys_reset/slowest_sync_clk] [get_bd_pins processing_system7_0/FCLK_CLK0] 产生错误: WARNING: [BD 5-235] No pins matched 'get_bd_pins proc_sys_reset/slowest_sync_clk' WARNING: [BD 41-395] Exec TCL: all ports/pins are already connected to '/processing_system7_0_FCLK_CLK0' ERROR: [BD 5-4] Error: running connect_bd_net. ERROR: [Common 17-39] 'connect_bd_net' failed due to earlier errors.” 11、 注销59。因为执第59 connect_bd_net [get_bd_pins processing_system7_0/FCLK_RESET0_N] [get_bd_pins proc_sys_reset/ext_reset_in] 产生错识 WARNING: [BD 5-235] No pins matched 'get_bd_pins proc_sys_reset/ext_reset_in' ERROR: [BD 41-701] connect_bd_net requires at least two pins/ports, or one pin/port and a net ERROR: [BD 5-4] Error: running connect_bd_net. ERROR: [Common 17-39] 'connect_bd_net' failed due to earlier errors. 12、 回到vivado主菜单file中close project,不保存任何内容。关闭vivado,删除d:/lab4/audio目录。 重新启动vivado后点主菜单中的Tools中的Run Tcl Script…,选中d:/lab4/audio_project_create.tcl,即可自动完成硬件SOC系统的创建,工项目位于d:/lab4/audio中。 1. 在右上窗口Diagram中右击鼠标选“Validate Design”验证。 2. 进入主菜单File选“Save Block Design”保存创建的系统结构图。 3. 点击左上窗口Design的左下选项Sources,显示项目顶层结构,右击其中的顶层“system(system.bd)(6)”选“Create HDL Wrapper”OK 4. 点击左上窗口Sources中“Constraints”右边的“+”展开,右击constrs_1  Add Sources  Next  点中间的“+”,添加管脚文件d:/lab4/zed_audio_constraints.xdc。(由于新版本的vivado区分大小写字母,所以必须将该文件中的IIC、GPIO换成小写字母iic、gpio) 5. 进入主菜单Flow选Generate BitStream。运中都点OK。 6. 进入主菜单File选Export  Export Hardware…  将“Include Bitstream”左加的框打勾  OK 7. 进入主菜单File选Launch SDK。 在SDK中 1、 进入主菜单File选New  Application Project,在Project Name输入框中输入一个项目命zyzAudio,然后Next进到下一级选空白项目模板Empty Project。 2、 点开左边项目管理窗口中的zyzAudio,右击src后import,选General中的File System,找到d:/lab4目录,将audio.h和testapp.c选中加入项目中。 3、 注销testapp.c包含的头文件 #include “xfir_hw.h 4、 修改滤波器函数filter_or_bypass_input(),注销if(sw_check & 01){…}语句全体,将其后的两条输出语句 Xil_Out32(I2S_DATA_TX_L_REG, u32DataL); Xil_Out32(I2S_DATA_TX_R_REG, u32DataR); 改为 if(sw_check & 01){ Xil_Out32(I2S_DATA_TX_L_REG, u32DataL); Xil_Out32(I2S_DATA_TX_R_REG, u32DataR); }else{ static u32 zyzTest=0; zyzTest += 0x0800; Xil_Out32(I2S_DATA_TX_L_REG, zyzTest<<8); Xil_Out32(I2S_DATA_TX_R_REG, zyzTest<<8); } 5、 进入主菜单Xilinx Tools选Program FPGA,将BitStream.bit下载到板上。 6、 进入主菜单Run选Run Configuration…,然后用GDB运序。 7、 运时,拨动板上的SW0,耳机插入Line Out即可听到声音。如果有音频从Line In输入,也可以听到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ADI_OP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值