基于PIC单片机的琴类乐器校音系统

2012-08-10 03:39夏霏杰赵检蒙夏志富朱仁祥
通信技术 2012年4期
关键词:琴音音频运算

夏霏杰,赵检蒙,张 杰,夏志富,朱仁祥

(宁波工程学院 电子与信息工程学院,浙江 宁波 315016)

0 引言

琴类乐器各个弦或键发出不同模式、不同音高(或音调)的乐音,这些琴弦、键发的音符合一定的音律,如“纯律”、“十二平均律”等。然而,这些琴类乐器各个弦或键经常会偏离应有的位置,以致演奏不出应有的音乐效果,这就需要定期对这些乐器进行校准。通常,调音师通过耳朵来判断每个弦音是否有偏差,再按一定的音律调各个弦或键。这种传统的琴音分析及调试手段是利用耳的听觉来完成的,人为影响因素大,不够精确且效率低下。特别是,对于一些初学者,其对音准的判别还没有达到能够调音的水平。这就需要设计专门的工具来完成调音。

1 系统结构

被测信号即琴音信号由麦克风采集,经过模拟音频信号处理模块对信号进行放大和整合后送入PIC单片机,对PIC进行一系列初始化设置后由PIC内置的A/D转换器进行模数转换,并对转换完的数字信号进行FFT分析。最后在图形液晶模块上显示结果。系统结构框图如图1所示。

图1 系统总体框

2 电路设计

在模拟音频信号模块中,音频信号首先通过麦克风采集进来。由于麦克风信号输出比较小,必须采用前置放大器进行放大[1]。考虑到噪声的问题,这里用 OP07低噪声放大器对信号进行放大。OP07芯片是一种低噪声,非斩泼稳零的上级行运算放大器集成电路[2]。电路如图2所示。

图2 前置放大电路

本系统采用的单片机型号为PIC18F452。该单片机是带有10 位A/D的高性能增强型闪存单片机[3]。

PIC18F452的 A/D转换电路的输入范围为0~VREF,为单极性输入形式。由于采样的信号为音频信号,即交流信号。因此需要把双极性输入电压经过提升电路转换成单极性[4],然后与 PIC18F452单片机相连,如图3所示。

图3 电压提升电路

3 软件分析

3.1 A/D设置

A/D 的设置首先要考虑的是抽样频率。根据抽样频率等于或大于信号最高频率的奈奎斯特频率,则信号在频域中无混叠现象[5]。由于小提琴的弦音频率范围大约在1~2 kHz,本系统将系统的A/D采用频率设为10 kHz。还有一些其他的相关设置,例如:①对模拟引脚/基准电压/数字I/O进行配置;②选择 A/D输入通道;③选择 A/D转换时钟;④对A/D转换完成标志位清0; ⑤对A/D转换中断使能位置1。

3.2 FFT算法分析

FFT算法的基本原理是把长序列的DFT逐次分解为较短序列的DFT[6]。本系统采用基2、DIT-FFT(按时间抽取)的方法进行数据分析。其算法流程图如图4所示。

图4 FFT算法流程

FFT计算公式[7]:

FFT是离散傅里叶变换的快速算法,在单片机实现中,采用蝶形运算算法实现 FFT[8],蝶形运算单元如图5所示。图中左为输入。中间的黑色实心点表示加、减运算。右上支路为相加后的输出,右下支路为相减后的输出。箭头表示要进行相乘运算。

图5 蝶形运算流

3.3 FFT核心代码

变址计算部分代码如下:

注意:①up,down,produc均为自定义的结构体,表示复数,这里不给出具体定义;②mul,add,sub三个函数分别计算复数的相乘,相加和相减,并保存在第3个参数中。

4 结语

对于FFT信号的分析,较为广泛的方法是应用DSP进行数据处理。本系统采用较低成本的PIC单片机进行数据分析处理[9-12],并且 PIC内置了高性能的AD,也省去了AD部分的电路设计。整个系统变得小巧、轻便。该系统的实际运用中得到了良好的效果,可以达到琴音校准的目的。但是,该系统对信号的采集做的并不是非常精确,如果要进一步提高精确度可以采用成本较高的12位的AD转换器进行模数转换,或者建立了一种模式识别神经网络模型,在数字信号处理器中实现。

[1] 张晓明. 基于 DSP的琴音分析系统[D]. 郑州: 郑州大学,2006.

[2] 石飞飞,马辰.基于 OP07和 LTC1543温度采集模块的设计[J].电子设计工程,2010,18(12):57-59.

[3] 郭其一. PIC18F系列单片机原理与应用[M].北京:中国电力出版社,2010.

[4] 刘和平. PIC18Fxxx单片机程序设计及应用[M]. 北京:北京航空航天大学出版社, 2005.

[7] 陆慧娟.用 FFT测量音频信号失真度的误差研究[J].科技通报,1998,14(04):270-275.

[6] 黄正谨,徐坚.CPLD系统设计技术入门与应用[M].北京:电子工业出版社,2002.

[7] 余成波,陶红艳,杨菁,等. 数字信号处理及 MATLAB实现[M]. 北京:北京大学出版社, 2008.

[8] 伍文平,李永红,张明,等. 基于单片机的 FFT算法分析与实现[J]. 科学技术与工程,2009,9(16):4803-4805.

[9] 张莉,张卫. OFDM信号的频谱分析及应用PCC对系统的改进[J].通信技术,2003(12):35-36,39.

[10] 李媛媛,徐岩,王靖岳.对MATLAB实现数字信号的QPSK的频谱分析[J].通信技术,2008,41(12):41-42,81.

[11] 高阳,黄征,徐彻,等.基于高阶频谱分析的音频篡改鉴定[J].信息安全与通信保密,2008(02):94-96.

[12] 刘慧慧,胡爱群.基于功率谱纹理分析的指纹密钥算法[J].信息安全与通信保密,2009(12):70-71,74.

猜你喜欢
琴音音频运算
重视运算与推理,解决数列求和题
僧心琴音
记白马寺(新韵)
有趣的运算
必须了解的音频基础知识 家庭影院入门攻略:音频认证与推荐标准篇
基于Daubechies(dbN)的飞行器音频特征提取
夜品高陶九品赠侄
音频分析仪中低失真音频信号的发生方法
“整式的乘法与因式分解”知识归纳
Pro Tools音频剪辑及修正