手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2

这篇具有很好参考价值的文章主要介绍了手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者的话

ADAU1788是ADAU1787的阉割版,他们同内核,都有SigmaDSP和FastDSP,模拟到模拟的延时都是5us,只不过1788只有2进2出,1787却有4进2出。这个系列我就来说一说这颗ADAU1788的硬件和软件都应该怎么做设计。

OP我是把ADI所有型号的DSP全部都做过,对就是所有型号。所以后面每个型号我都计划写一个专题来讲。

硬件准备

ADUA1788开发板一块:

产品简介:https://item.taobao.com/item.htm?id=611967214868&spm=a1z10.5-c.w4002-5192690539.11.4dc8751aeC9yWu

USBi仿真器一个:

产品链接:https://item.taobao.com/item.htm?id=38242936768&spm=a1z10.5-c.w4002-5192690539.11.451e2dbdcpXpJX

软件准备

SigmaStudio4.6

硬件链接示意图

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料
ADAU1788 的进阶例程 3:通用一阶滤波器(General 1st-Order)

一阶低通和高通滤波器。若要在高通、低通和平坦之间切换,请单击蓝色频率响应图标。该操作可实时完成,无需重新编译项目。在文本字段中输入目标值,设定滤波器的截止频率和总增益(有时称为缩放增益)。也可单击箭头以逐一增大这些参数的值。若要快速增大参数值,请单击并按住不放,然后略微拖动。

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料
通过点击蓝色的按钮,可以看到曲线的明显变化,音效各位自己去听听,练听力,有明显差别:

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料
手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料
**ADAU1788 的进阶例程 4:通用一阶滤波器,参数/查找/压摆率 ( General (1st-Order Lookup)
**

这个滤波器提供一组可选高通或低通一阶滤波器响应,选择响应时可平滑(压摆率)过渡。该模块允许您定义一组滤波器响应(低通或高通),可通过终端系统中的外部控制输入进行选择。可选响应或曲线的数量是可变的,就如控制着滤波器响应变化速率的压摆率或步进一样。

滤波器响应显示在“滤波器控制”(Filter Control)窗口中(见下文)。请注意,响应曲线线性分布于
低、高截止频率值之间。该模块的算法将一组滤波器系数存储在 DSP 中的一个表中。若要选择某个曲线,请使用“索引查找表”(Index Lookup Table)、 “计数器”(Counter)模块或“直流输入”(DC Input)模块,并连接至红色引脚。通过 GPIO 模块,您可以用一个旋钮、旋转编码器或按钮控制所选响应。

若要打开“滤波器控制窗口”:

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料
1)在“曲线数”(# Curves)字段中输入所需曲线的数目。
2)在“增益”(Gain)字段中输入所需滤波器增益(-/+ dB)。
3)在“频率”(Frequency)字段中输入这些曲线的所需频率范围(低频和高频目标频率)

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料
ADAU1788 的进阶例程 5:通用二阶滤波器General (2nd-Order)

很常用的一个滤波器模块,通过这个滤波器模块,你可以使用多种二阶(双二阶)滤波器算法:

可用滤波器类型有:

1)参数型(Parametric)
2)支架型(Shelving)
3)通用高通型(General High-Pass)
4)通用低通型(General Low-Pass)
5)通用带通型(General Band-Pass)
6)通用带阻型(General Band-Stop)
7)巴特沃兹低通/高通型(Butterworth Low-Pass / High-Pass)
8)贝塞尔低通/高通型(Bessel Low-Pass / High-Pass)
9)信号音控制型(Tone Control)
10)IIR 系数型(直接系数输入) (IRR Coefficient) (direct coefficient entry)
11)一阶低通/高通型(1st-Order Low-Pass / High-Pass)
12)全通型(All-pass)
13)峰化型(Peaking)
14)陷波型(Notch)
15)切比雪夫低通/高通型(Chebyshev Low-Pass / High-Pass)

若要打开滤波器控制窗口,请单击图标按钮,从下拉组合列表中选择所需滤波器类型。参数控制将发生变化,以反映当前所选滤波器类型,模块图标按钮中的图像也会相应变化。

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料
至于每个滤波器的算法,在 SigmaStudio 的 Help 里全部都有,我就不再这里重复了,如下图:
手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料
ADAU1788 的进阶例程 6:Pinking 滤波器

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料

这类滤波器的经典用途是将白噪声(为每赫兹的等效能量)转换为粉红噪声(为每比例或常数百分比(如对数)频带的等效能量)。 若捆绑(集成)得当,此类能量将在任何对数比例图中显示为平坦。 Pinking 单元接受任何输入信号,并输出线性下降为 3dB/倍频程的信号。

ADAU1788 的进阶例程 7:跟踪滤波器(Tracking Filter)

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料

“跟踪滤波器”(Tracking Filter)可用于对滤波进行动态转移。这种特定的跟踪滤波器采用一种“峰化滤波器”(PeakingFilter)算法。在多种应用中,应为峰化滤波器设定可移动中心频率,而非固定中心频率。例如,可用低频振荡器(LFO)驱动跟踪滤波器,以产生定相音频效应。跟踪滤波器允许通过外部输入来确定中心频率。

输入引脚:

跟踪滤波器模块有两个输入和一个输出。第一输入是您希望进行过滤的实际音频输入。第二输入引脚为滤波器中心频率的值。可以看出,该引脚为橙色,表明这是一个控制引脚而非音频引脚。在此,您可以连接低频振荡器或直流输入模块,用以为跟踪滤波器指定所需固定或可移动中心频率。

算法说明:

“跟踪滤波器”是“SigmaStudio 滤波器”库中的一种特有滤波器。这是系数由 DSP 处理器动态计算的少数几种滤波器之一。计算方程嵌入模块的算法代码之中,然后生成系数,视具体输入中心频率而定。

跟踪滤波器算法可接受的输入中心频率为一个 5.23 数据格式的值,计算公式为:Hz/(fs/2)。例如,如果工作频率为 fs = 44100 Hz,且 fc = 500 Hz,则发送值为: 0.0226757 = 500 /(44100/2)。

“跟踪滤波器”以一种“IIR 峰化滤波器”(IIR Peaking Filter)的系数生成过程为基础。以下方程说明了 DSP 由控件求得 5 个双二阶系数的方法。跟踪滤波器的控件包括“总增益”(overall_gain)(即滤波器总增益的 dB 值)、 “增强”(boost)(即峰化滤波器的减弱或增强 dB 值)和“Q”(决定减弱或增强频率的宽度)。 “峰化滤波器”的中心频率 fc 由第二输入引脚提供。

gainLinear = 10ˆ(overall_gain/20)
w = 2pifc/Fs
alpha = sin(w)/(2Q)
A = 10ˆ(boost/40)
a0 = 1 + alpha/A
a1 = -2 * cos(w)
a2 = 1 - alpha/A
b0 = (1 + alpha
A) * gainLinear
b1 = -(2 * cos(w)) * gainLinear
b2 = (1 - alpha*A) * gainLinear

用途:

跟踪滤波器可用于多种场合。当峰化滤波器需采用可变中心频率时,则应使用跟踪滤波器。固定中心频率应用应使用通用二阶滤波器。若要为这种算法所需可变中心频率提供支持,则需开销大量 MIPS/存储器。然而,此处使用跟踪滤波器的第一个例子采用了固定中心频率,这只是为了便于说明中心频率的格式。

此例中,一个直流输入模块与跟踪滤波器的第二引脚相连。该模块内的值对应为 500Hz。因此,从第一引脚输入的音频信号将在 500Hz 下被增强 5dB, 其“Q”值为 1.71; 同时将对整个频率范围用-3dB 的总增益调整。

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料

ADAU1788 的进阶例程 8:State-Variable 滤波器-高通低通带通滤波-HP 输出

该原理图使用的是“状态变量”(State-Variable)模块,包括低通、高通和带通三个滤波器的频率响应。

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料

本着能听到声音的原则,目的在于告诉用户高通低通带通滤波模块在哪里,学会用这个模块后,用户就可以自由发挥了。

ADAU1788 的进阶例程 9:State-Variable 滤波器-高通低通带通滤波-LP 输出

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料

ADAU1788 的进阶例程 10:State-Variable 滤波器-高通低通带通滤波-BP 输出

手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2,ADI DSP资料下载,音频DSP开发,ADI DSP技术中心,ADI DSP,ADI DSP中文资料

输出 0 和输出 1 又是伪模块,为了满足软件的逻辑要求!文章来源地址https://www.toymoban.com/news/detail-798931.html

到了这里,关于手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你使用ADI的音频DSP:ADAU1788的滤波器专题1

    作者的话 ADAU1788是ADAU1787的阉割版,他们同内核,都有SigmaDSP和FastDSP,模拟到模拟的延时都是5us,只不过1788只有2进2出,1787却有4进2出。这个系列我就来说一说这颗ADAU1788的硬件和软件都应该怎么做设计。 OP我是把ADI所有型号的DSP全部都做过,对就是所有型号。所以后面每个型

    2024年01月19日
    浏览(46)
  • 手把手教你使用ADI的音频降噪DSP:ADAU1772的更多例程讲解

    作者的话 ADAU1772是ADI公司的一颗音频DSP,主要用来做降噪耳机,我们就用这一篇文章来说一说,ADAU1772怎么去做开发。 纯新手入门,简单讲讲。 硬件准备 ADAU1772开发板:一块 产品链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.11.7ff82f8a2o93Z9id=576376577952 USBi仿真器:一个

    2024年01月16日
    浏览(45)
  • 手把手教你如何使用SimiliarWeb

    在之前的“手把手教你如何使用Google Trends”文章中我们讲到从事跨境电商的卖家第一步遇到的问题是“客户在哪里?”该如何推广我的产品?因此若想自己的店铺做大做好,则需要工具来帮助分析市场行情,根据市场行情调整自己的业务状况。小编在上篇中已经讲解了三个特

    2024年02月09日
    浏览(61)
  • 手把手教你如何使用Docker

    我们在公司开发中,会有开发环境,测试环境,上线环境, 比如我们开发人员开发好了一个项目,在开发环境中运行正常,但测试人员拉到测试环境就跑不起来【jdk版本等】,或者上线的时候运行不起来,这时候就要为每个机器配置一个环境,那运维人员不得累死?【哈哈,

    2024年02月10日
    浏览(66)
  • 怎么用AI绘画?手把手教你使用

    与传统的绘画方式不同,AI绘画软件采用了人工智能算法和计算机视觉技术,使艺术作品的创作变得更加智能化和自动化。这样,即使一个看不懂颜料,也毫无绘画经验的业余者也能创作出可圈可点的艺术品了。AI绘画软件因此被越来越多的创作者和爱好者所使用。那你们知道

    2024年02月15日
    浏览(62)
  • 手把手教你使用gtest写单元测试

    开源框架:gtest,它主要用于写单元测试,检查真自己的程序是否符合预期行为。这不是QA(测试工程师)才学的,也是每个优秀后端开发codoer的必备技能。 本期博文内容及使用的demo,参考: Googletest Basic Guide[1] Googletest Samples [2] 构建依赖环境 按照惯例,先介绍下怎么基于

    2024年02月16日
    浏览(47)
  • 手把手教你使用gdb调试器

    所谓调试,指的是对编好的程序用各种手段进进行查错和排非错的过程。进行这种查错处理时,下面将讲解如何使用gdb进行程序的调试。  gdb 简介 gdb是一个功能强大的调试工具,可以用来调试C程序或C++程序。在使用这个工具进行程序调试时,主要涉及下面四个方面的操作。

    2024年02月16日
    浏览(46)
  • 【码农教程】手把手教你Mockito的使用

    1)Mockito:简单轻量级的做mocking测试的框架; 2)mock对象:在调试期间用来作为真实对象的替代品; 3)mock测试:在测试过程中,对那些不容易构建的对象用一个虚拟对象来代替测试的方法就叫mock测试; 4)stub:打桩,就是为mock对象的方法指定返回值(可抛出异常); 5)

    2024年02月05日
    浏览(56)
  • 单元测试利器——手把手教你使用Mockito

    作者:京东零售 秦浩然 从你成为开发人员的那一天起,写单元测试终究是你逃不开的宿命!那开发人员为什么不喜欢写单元测试呢?究其原因,无外乎是依赖。依赖其他的服务、依赖运行的环境、等等,各种依赖都成为了我们写单元测试的绊脚石。那现在有个单元测试利器

    2024年02月08日
    浏览(64)
  • 手把手教你 iconfont 导入使用及相关配置

    iconfont是阿里旗下的一套图标库,UI设计师设计号图标后,会将图标上传到iconfont的项目库中。前端开发人员需要下载项目图标,并在项目中使用。 iconfont相对于传统的直接导入图标进入页面,有以下几点优势: 体积更小,页面加载速度更快 解决图片像素点会随页面变化而模

    2024年02月07日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包