欢迎来到工作报告网!

基于FPGA的嵌入式电子调音仪的设计

自我鉴定 时间:2022-02-15 10:05:30

摘要:提出了基于ARM和FPGA架构的乐器调音仪的设计思路。在说明该仪器的基本结构和原理的基础上,介绍了ARM和FPGA接口模式和通信方式,重点阐述了音频信号采集和处理及相关调音算法。

关键词:调音仪;ARM;FPGA;嵌入式

中图分类号:TP368文献标识码:A文章编号:1009-3044(2011)23-5744-02

Design of Embedded Electronic Tuner Based on FPGA

WANG Yu-jie, YAO Zhu-ting, LIU Yong-feng

(School of Mechanical Engineering and Automation, North University of China, Taiyuan 030051, China)

Abstract: A musical instrument tuner"s design based on ARM & FPGA is presented in this paper. The structure and operating principles of the tuner are outlined. The algorithms for tone signal processing and tuning and the communication mode between ARM and FPGA are introduced in this paper.

Key words: tuner; ARM; FPGA; embed

传统的乐器调音工作主要依靠灵敏的听觉和娴熟的技巧,很难摆脱环境和心理因素的干扰。如果能够利用现代嵌入式技术,在语音识别原理的基础上,针对乐音特性,研制一套价格低廉,便于携带和操作的乐器调音仪,就能协助完成高效精准的调音工作。

目前,采用 FPGA(Field Programmable Gate Array)来设计电子电路正成为设计的趋势,这主要因为采用 FPGA 设计电子电路不仅开发时间短,资金投入少,先进的FPGA已能够完成以前仅能在DSP上实现的一些算法,而且从2000年开始, FPGA的处理速度提高了约16倍,每秒已能完成5000亿次乘累加(MAC)操作[1];ARM(Advanced RISC Machines)微处理器有着丰富的指令集,编程灵活,有着丰富的接口,在控制能力方面有着突出的优势。鉴于二者优势,本设计采用ARM和FPGA相结合的架构,实现高效高准确度的调音功能。

1 调音仪的结构及其工作原理

调音仪的原理框图如图1所示。其工作原理是将从数字麦克风采集到的乐音信号,经由FPGA的数据缓存单元转化为适合ARM处理的数字信号格式;在FPGA中实现音频信号处理算法和相关调音算法;由ARM实现与FPGA的通信、数据存储和结果显示。

2 器件选择

2.1 信号采集单元

本设计采用了数字麦克风来采集音频信号。数字麦克风内部集成了前置增益和ADC转换芯片,实现了数字信号的直接输出。与模拟麦克风相比,数字麦克风具有更好的信噪比以及更好的抗RF和EMI干扰的能力。由于数字麦克风的ADC芯片普遍使用∑-△编码格式,采用1比特变换技术,使得其抗非线性误差和纠错能力有明显的提高[2]。

2.2 ARM主控制单元

主控制单元采用三星的S3C2410A嵌入式微处理器,其基于ARM9内核,具有3路通用异步串行通信、4路脉宽调制定时器、8路10位模数转换器;具有丰富的I/O口并支持IIC-BUS接口以及液晶显示器及触摸屏控制接口;拥有相互独立的指令和数据存储单元以及NAND 闪存等。其庞大的外围设备大大方便了外围设备的扩展[3]。ARM处理器通过底层驱动来实现对其他模块的控制,JTAG接口用来在线编程,网口下载嵌入式Linux系统镜像,TFT液晶屏显示图形界面,USB鼠标和I/O口键盘操作图形界面,FLASH存储系统代码,SDRAM存放执行的数据。

2.3 FPGA信号处理模块

该模块采用了Altera公司StratixⅡ系列的EP2S15器件,它采用1.2V,90-nm全铜层SRAM工艺和具有最大化性能的最新逻辑结构,器件密度可达到15600等效逻辑元(LE),能提供419 Kb片内RAM,12个DSP区块和48个(18 b×18 b)乘法器,可以实现高性能滤波器和其他DSP功能,支持各种高速外接存储器接口,支持各种I/O标准,具有丰富的外部资源以及支持多种高性能标准[4]。

3 FPGA与ARM间的通信

连接FPGA与ARM的外部总线,将系统存储器地址中的一段定义为FPGA的地址进行访问。将 ARM 处理器的数据线 DATA[0~15]、地址线ADDR[1~4]、读写信号nOE和nWE、片选信号nGCS4连接到 FPGA的I/O口。图2为FPGA与ARM的连接示意图。

nGCS4选择ARM存储空间的BANK4,4根地址线寻址范围是0x20000000-0x20000020, 每2个8位地址组成1个16位的寄存器(寄存器在 FPGA 中编程实现)。

音频信号通过外部存储接口由FPGA传给ARM。在FPGA一边,采用ping-pong缓冲结构完成数据传送,其数据流的转化传送过程见图3。

来自麦克风的1bit数据流通过抽样滤波器转化为16bit的数据流,当时钟的上升沿到来时,将数据流写入ping(或pong)缓冲,同时ARM读取pong(或ping)缓冲;当缓冲满时,ping-pong控制器交换ping-pong缓冲的R/W使能信号,并将“满”信号提升为高电平直到ARM开始接收数据;ARM开始接收数据时,先检测“满”信号,当“满”信号被检测到激活(高电平)时,ARM开始送出读地址和接收数据,同时,“满”信号变为低电平。

4 软件及算法

该仪器工作的软件流程图如图4所示。

4.1 采样频率、样本位数及样本大小

常人可感受的频率范围在20-20000Hz左右,音乐最常用的频率范围在27.5Hz-4186Hz(即一架普通钢琴的音域)之间,超出此范围的乐音,其音高已不能被人耳清晰判别,因而很少用到[5]。该设计中选用的数字麦克风的输出是4MHz采样频率下的1bit数据流。该数据流在FPGA中通过48kHz(根据采样定理和音乐常用频率范围,选用48kHz的采样频率可以认为是比较合适的)的抽样滤波器采样转化成16bit的数据流,以便后续数据处理;16bit的数据结构可以把音频信号的频率范围量化为65536个等级;样本容量为1024*32点,采样时间为0.68秒,而对于大多数乐器来说,0.68秒的持续发音还是比较容易实现的。

4.2 待测信号起始点的检测

待测信号发出后会经历一个非常短暂的起奏及衰减阶段,在这些阶段,诸如能量、相位等属性变化非常快,不便于处理。通过起始点检测我们在处理乐音信号时可以跳过起奏和衰减阶段,对系统的准确率和效率都有明显的改善。由于待测的音频信号仅仅是单音,也就是单频率声信号,能量集中,所以采用短时平均能量的方法就能够界定采样起始点以保证系统的高识别率。信号x(n) 在n时刻的短时平均能量定义如下[6]:

(1)

式中w(n)是窗函数,使用窗函数法滤波的原则是:频率特性的主瓣宽度应尽量窄,且尽可能将能量集中在主瓣内;窗函数频率特性的旁瓣ω趋于π的过程中,其能量迅速减小为零。哈明窗主瓣高(带宽大),旁瓣低(通带外的衰减大),可以满足滤波设计原则。当待测声信号的能量增大到一定值时,就可以认为输入信号为有用声信号,以此界定信号的起始点。

4.3 三电平中心削波法提取基音

在实际应用中,从自相关函数中提取基音周期最需要关心的就是函数峰值出现的时间,峰值大小则无需考虑,这样就可以采用三电平中心削波法[7]。其输入输出函数为:

(2)

通常,削波电平CL取该帧最大幅度的60%-70%。削波后信号的自相关函数在基音周期位置的峰值会更加尖锐,而且琴音信号都是单音信号,其周期比较稳定,该方法在本设计中可以得到非常好的效果。

声信号的低幅部分包含大量的共振峰信息,高幅度部分包含大量的基音信息,当基音的周期性和共振峰的周期性混叠在一起时,被检测出来的峰值就会偏离原来峰值的真实位置而出现误差,对声信号进行非线性处理,可以消减或抑制低幅部分使自相关函数性能得到改善。

4.4 信号分类处理

音乐最常用的频率范围在27.5Hz~4186Hz,就拿钢琴来说,相邻两音的基频有的相差2Hz左右,有的相差230Hz左右,统一的采样频率无法满足检测精度的要求,在设计中将高低频信号分类处理以提高系统的整体精度。方法是每N个点抽取1个,构成新序列y(n)=x(Nn),经过FFT后,实现了fs以N倍降频的转换。

5 判断与仿真

5.1 调音判断

根据GB/T10159-2008标准[8]中关于音准稳定性的要求,c1~b1(11个半音)之间的容许误差为10个音分,(下转第5753页)

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

推荐访问:调音 嵌入式 设计 电子 FPGA

热门文章