基于DSP芯片TMS320C6713实现吉他识音器的应用方案设计

刘宗法,康硕,任 发表于 2020-09-24 19:57:28 收藏 已收藏
赞(0) •  评论(0
400万+工程师在用
400万+工程师在用

基于DSP芯片TMS320C6713实现吉他识音器的应用方案设计

刘宗法,康硕,任 发表于 2020-09-24 19:57:28

引言

指弹吉他是一种吉他加花的演奏方式,是音乐界极为新兴的项目,这种弹奏方法与古典吉他的不同之处在于可广泛使用多种拍击、调弦法,不受手法限制,一把吉他可弹奏出任何美妙音乐,因此更注重弹奏音效,在很多场合需要音效器的辅助。目前国内市场的音效器多为日韩等国外国家垄断,价格昂贵[1],因而为满足市场需求,设计出一款具有较好效果的指弹吉他音效器,采用数字音频信号处理技术提升指弹吉他的音效,以达到预期的商业推广目的。

1 系统结构

系统的输入信号通过吉他识音器获取[2],为增强产品普及性,采用免开孔的拾音器,输出为150mV的单声道模拟音频信号,经高速模数转换成数字信号,分帧存入到缓冲区RAM中,其后的高速数字信号处理在TI的DSP芯片TMS320C6713上进行,相关算法在内部存储区中进行运算处理,数字信号经处理后再经高速高精度数模转换成声音信号,经功放后输出。为了实现数字信号的快速运算,使用了TMS320C6713特有的增强型直接存储器访问(Enhanced Direct Memory Access, EDMA)[3]联合RAM的方式进行流水线[4]处理,即各模块同时工作,部分音频信号进行模数转换,部分转换后的信号在TMS320C6713中进行处理,部分处理后的信号进行数模转换,从而保证音效的实时快速处理。

2 硬件结构设计

音效器硬件选用TMS320C6713芯片,模数转换芯片选择PCM1804,数模转换芯片选择PCM1730。

2.1 电源设计

以9V直流电压作为电源模块的输入,经7805三端稳压集成电路后输出的5V电流对TPS767D318芯片供电,分别输出3.3V和1.8V对TMS320C6713和PCM1804、PCM1730供电。为器件安全考虑,设置输出的最大电流为1A,并具有过热保护的功能同时为避免模拟5V电路和模块中的数字电路的相互干扰,引入隔离磁珠[5]用以模数隔离。

基于DSP芯片TMS320C6713实现吉他识音器的应用方案设计

2.2 核心电路

本项目的音效器选择TMS320C6713芯片的主要原因在于,这是一款高速浮点DSP芯片,最大时钟频率达到225MHz兆赫兹,外部存储器接口为32位,能访问最高达512M字节的外部存储空间,完成与同/异步存储器的无缝对接,有两个多通道缓冲串行端口,各端口可与265个通道进行全双工通信,支持多种帧格式,与串行接口兼容。并且支持流水线工作方式,可在同一时刻实现多达8个不同指令在内部不同部位交迭地处理执行,流水线运行按取指、译码、执行三级步骤运行,各级包含几个节拍,可实现指令周期内的有序运算,性能稳定, TMS320C6713芯片的EDMA可在无CPU参与的环境下控制芯片存储空间的数据迁移,并可实现DSP芯片与外部EPROM芯片的高速数据传输,适合音效器设计的需要。

本系统采用的PCM1804转换器[7],可选多种系统时钟频率和采样频率,模块有主模式和从模式两种接口模式,主模式状态下提供与DSP之间的串行音频数据通信,从模式状态下只接收数据。PCM1804与TMS320C6713芯片的I2C接口通过I2S音频传输协议进行音频传输。由于PCM1804具有24位112dB动态范围,在音频处理过程中将会产生比模数转换电路更宽的动态范围,因此数模转换电路使用24位的PCM1730,其动态范围是117dB,可保证系统最终的噪声门限和处理精度不下降。PCM1730自带系统时钟检测电路,可自动检测到SCKI输入的系统时钟频率。系统核心电路如图2所示,图2显示了PCM1804在主模式下与TMS320C6713芯片和数模转换芯片PCM1730的连接关系图,输入的音频数据经模数转换和数字信号处理后经模数转换还原成模拟音频信号输出。

3 典型算法分析

DSP编程主要用于对吉他音频数字信号进行处理,可使用C语言或者汇编语言编程,鉴于C语言的易移植性、灵活性和在复杂系统中的便捷优势[1],本系统使用C语言进行混合编程,主要以延时算法和混响算法为例简要说明音效器的实现原理。

3.1 延时算法

对音频信号的处理,延时[4]是最基本的输出效果,其它音效如合唱效果、弗兰格效果和回声效果等都离不开延时的基础性作用,延时产生的原声滞后音可有效调整音色。基本的延时包括不带反馈的和带反馈的两种,其中不带反馈的延时对输入音频信号进行延时一次,从而实现回声效果,而带反馈的延时能进行反复延时和重复播放,两者原理如图3所示。

由图3可知,延时实际上是音频数据延迟一个时段后再输出,是通过在系统内存中定义的环形缓冲区实现,该缓冲区由读/写利用的地址指针确定,每次对数据延时的过程是指针从先前的指定时段前的数据和当前数据做加成,并更新指针指向下一位置。由于内存缓冲区的地址是线性的,为实现环形缓冲区的结构,充分利用了TMS320C6713具备零消耗循环控制的专门部件,不必每次指针指向地址到缓冲区上界时自动跳到下界,而是在上界时将计数器减1直到缓冲区的下界,在硬件上完成循环跳转和计数器的衰减,从而减小系统的开销以提升系统运行效率。

此外延迟时间由系统采样频率和延迟线单元数共同决定,初始采样频率是96kHz,TMS320C6713芯片可支持512MB的最大寻址,因此本系统的延迟时间使用模数寻址方式快速实现。

3.2 混响算法

实现混响功能的基本单元是全通滤波器[3],但经测试发现级联或单个的全通滤波器回声是周期性的且密度较低,从而形成较大的声摆效应,对音效器的效果造成较坏的影响。其解决方法是使用嵌套的全通滤波器,如图4所示,即在一个全通滤波器的延时单元中插入另一个延时滤波器。在图4中为并不是延时单元而是全通滤波器,其Z变换为:

(1)

(1)式中X、Y分别是嵌套滤波器的输入和输出, H(z)的模为:

(2)

由(2)式可知,若G(z)为全通滤波器,则H(z)也为全通滤波器。这样嵌套较大的优点是提高吉他混响音效的时域响应效果,其原理是由于嵌套全通滤波器中内部滤波器产生的回声经过外部滤波器的反馈环路,从而重新用作输入信号。因此,该系统生成的回声个数比常规全通滤波器的回声个数相比要多,而且嵌套全通滤波器的回声相互间隔不是固定的,这也与常规全通滤波器不同。同时无论如何嵌套,由于使用的是全通滤波器,系统的稳定性得到保证,避免了采用梳状滤波器等条件下的振荡和不稳定性。

4 系统测试

为验证吉他音效器的指标是否达到设计需求,采用音频测试软件RMAA(Right Mark Audio Analyzer)[8],该软件下载于俄罗斯硬件资讯网站,可用于对本文的音效器进行电声性能测试,主要项目包括频率响应、本底噪声、动态范围和互调失真等四项,其测试结果为:

(1)频率响应反映了音效器的音响系统对吉他输出的不同频率信号的还原特性,测试发现吉他音效器的频率响应曲线过渡平滑,各频率点没有明显衰减,近似为一条直线,在20Hz-2kHz的频率响应不超过0.3dB,在2kHz-20kHz的频率响应不超过0.1dB,满足系统频率响应不超过0.4dB的指标要求。

(2)本底噪声主要反映吉他音效器的抗干扰性能,测试结果为音效器的左、右声道的本底噪声分别是-95.3dB和-92.1dB,在没有音频信号输出时音箱不会出现交流声,达到系统设计时设定的本底噪声指标要求。

(3)动态范围是声卡输出最高音量和最低音量的相对比较值,吉他音效器的测试结果为83.3dB,达到设计要求。

(4)互调失真主要反映系统的非线性失真程度,音效器的互调失真测试结果为0.012,满足系统指标要求。

综上所述,使用RMAA测试本文的吉他音效器的指标均满足系统设计要求,且吉他音效结果经听音师试听,得到了充分的肯定。

5 结论

以TMS320C6713芯片为核心,结合模数转换芯片PCM1804、数模转换芯片PCM1730所进行系统硬件电路的设计,实现增强音效器对音频信号的实时快速处理,通过环形缓冲区实现了系统高效率的延时功能,并使用嵌套的全通滤波器实现混响音效,使用RMAA对音效器进行测试的结果表明音效器主要指标达到了系统设计需求,具备较好的性能和应用价值。

责任编辑:gt

打开APP阅读更多精彩内容

收藏

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉

相关话题

评论(0)

加载更多评论

分享到

QQ空间 QQ好友 微博
取消