APP下载

基于声卡的新型虚拟钢琴调音仪设计

2016-12-19张晓朋

电子科技 2016年11期
关键词:声卡调音琴音

张晓朋

(平顶山学院 电气信息工程学院,河南 平顶山 467000)



基于声卡的新型虚拟钢琴调音仪设计

张晓朋

(平顶山学院 电气信息工程学院,河南 平顶山 467000)

针对目前钢琴调音技术中存在设备复杂、成本高、不易推广等缺点,提出了一种基于声卡和LabVIEW工具的新型钢琴调音仪的设计方案。设计中采用计算机声卡进行琴音数据的采集,在PC机上,以LabVIEW工具为核心,开发系统操作界面及操作程序,接收声卡采集的琴音数据,进行各种算法处理,并将相关数据和比较结果进行显示,并给出合理的意见和提示,指导操作人员进行相关操作,完成钢琴的调音工作。实验结果表明,系统的软硬件设计达到了预期的要求,可用于钢琴调音,也为今后同类钢琴调音仪的设计提出了一条新思路。

钢琴调音;声卡;LabVIEW;基频检测

由于钢琴的琴弦具有金属延展性,长期使用或周围环境因素的影响,使钢琴各个键经常会偏离应有的频率,这就需要定期进行调音。传统的钢琴调音方法是用音叉或需要提供标准音,由经验丰富的校音师通过听力比较两个音阶的差别进行调校,但容易受生理、心理和客观条件的影响,易出现较大误差;随着现代电子技术的发展,利用嵌入式技术辅助钢琴调音逐渐成为新的趋势,但这些方法一般都是基于ARM、DSP、单片机或者FPGA等技术,存在设备复杂、成本高、不易推广等缺点[1]。

基于此,本文提出了一种基于计算机声卡和LabVIEW工具的全新设计方法,结合虚拟仪器技术和数字信号处理的相关技术设计出了一款钢琴调音仪。

1 系统的总体方案设计

本系统主要包含两个模块:数据采集模块和上位PC机主控模块。(1)数据采集模块。以计算机声卡为核心,采用麦克风来拾取琴音信号,完成声音信号到电信号的转换,然后送入声卡进行数据采集[2];(2)上位PC机主控模块。在PC机上,利用图形化的编程软件LabVIEW开发钢琴调音仪的操作界面和相关程序模块,接收声卡采集的琴音数据,进行琴音数据的各种算法处理及图形化显示,指导操作者完成钢琴调音工作[3]。系统的总体结构框图如图1所示。

图1 系统的总体结构框图

2 硬件设计

2.1 数据采集模块的设计

采集模块主要负责对琴音信号进行转换和采集。该模块主要由麦克风和计算机声卡两个部分组成。

系统选用麦克风作为声音传感器,用其将琴音信号变换成电信号。然后,由计算机声卡对转换之后的琴音信号进行采集。声卡一般有这3个排在一起的3.5 mm的双声道插孔。其中Line In和MIC In为两个信号输入插孔,这两种输入的差别在于其信号的放大率不同。因一般的麦克风的信号较小,所以MIC In端的放大率会设计得较大,并会配合麦克风的特性来修正,所以系统中,麦克风拾取的琴音信号由MIC In输入到声卡[4]。

2.2 上位PC机主控模块的设计

以PC机为硬件平台,以LabVIEW为开发工具,负责控制声卡完成琴音数据的采集,并对采集到的琴音数据进行提取、基频频率粗测、数字滤波、快速傅立叶变换和基频测量,测量出其中包含的基频频率,同时把相关结果进行显示[5]。

3 软件设计

以LabVIEW虚拟仪器开发环境为开发工具,编制本钢琴调音仪的操作界面和相关程序模块,通过操作界面可以指导调律人员操作完成钢琴的调音工作[6]。

系统软件主要由以下几部分组成:初始化模块、数据采集模块、数据分析与处理模块和结果显示模块。软件整体流程框图如图2所示。

图2 软件流程框图

3.1 调音仪主界面和框图程序设计

3.1.1 主界面设计

系统的主界面如图3所示。系统启动后,按以下步骤进行调音工作:

步骤1 通过声卡相关参数设置模块进行相关采集设备参数的设置,包括采集速率、采样位数、每通道的采样数据点数、采集设备ID号等[7];通过数据存储路径设置模块进行数据存储路径的设置,将相关数据存入电子表格格式文件;

图3 钢琴调音仪的操作界面

步骤2 通过调音信息设置模块输入要调音的钢琴按键的编号,并打开调音开关;

步骤3 读取声卡采集的数据,如果是有效的琴音数据,则与标准的琴音数据进行对比,并在调音结果显示模块显示相关结果;若是无效的噪音,则不进行显示;

步骤4 判断电源开关的状态,若开关接通,则回到步骤2继续调音工作;若开关断开,则停止程序运行,结束调音工作。

3.1.2 程序框图设计

钢琴调音仪的主程序运行步骤如下:

步骤1 从声卡读取数据,并判断数据是否是有效的琴音数据。判别方法:先对采集的琴音数据的绝对值进行求和,计算出平均值;然后,将平均值与参考值进行对比,若平均值大于参考值,则认为数据有效,否则认为数据无效[8]。同时,将读取的数据以及比较结果传送到下一个程序模块。参考值通过多次实际测试得出;

步骤2 判断调音开关是否打开以及由第一步检测过的数据是否有效,若两个条件均成立,则进入步骤3;若读取的数据无效,或者调音开关没有打开,直接进入步骤4;

步骤3 首先,根据操作界面输入的琴键的键号计算产生标准的琴音频率和基频数据;然后,将读取的琴音数据和标准的琴音数据进行对比,并给出比较结果;最后跳转到步骤4;

步骤4 判断电源开关的状态,若开关接通,则回到第一步继续运行程序;若开关断开,则结束程序运行。

3.2 初始化模块的设计

主要完成两个方面的工作:调音仪系统主界面和框图程序中相关控件的初始化;对声卡的采样频率、样本位数及采样点数进行配置,完成声卡的初始化。

3.2.1 相关控件的初始化

主界面和框图程序中相关控件的初始化主要完成相关控件的初值设置。

3.2.2 采样频率、样本位数及样本大小配置

钢琴音基频范围为 27.5~4 186.0 Hz,根据采样定理的要求和声卡提供的采样频率(8~96 kHz),默认选用44 100 Hz的采样频率可以认为是比较合适的;本设计中默认选用的样本位数是16位,即将音频信号的大小分为65 536个量化等级;样本的大小默认为32 768点,可为信号的再处理提供足够的样本点数;采样时间为0.743 s,而钢琴音足以提供0.743 s 的音频信号[9]。

3.3 数据采集模块的设计

在实际中,电路带来的噪声是不可避免的,且在采集信号时周边环境还会存在噪声,所以在设计中采用了信号短时平均能量来确定采集到是有效的琴音数据,或是无效的噪音和干扰信号,从而保证了系统的高识别率[10]。

数据采集的流程如图4所示。首先,采集一定数量的数据,对采集的数据取绝对值;接着,对取绝对值后的全部数据点求和;然后,求和结果除以数据点的个数得到平均值;最后,将平均值与参考值进行对比,若平均值大于参考值,则认为是有效的琴音数据,保存数据并令有效琴音数据标志为True,否则舍弃数据并令有效琴音数据标志为False。

3.4 数据分析与处理模块的设计

数据分析与处理模块主要包括4部分:FFT频率粗测、FIR数字滤波、FFT快速傅里叶变换、测量基频。首先,设计FFT 对琴音信号基频进行频率粗测;其次,将粗测频率作为数字滤波器截止频率设计的依据,计算出滤波系数后设计相应的滤波器,经过滤波后将得到琴音信号的基波分量;然后,对得到的基波分量进行FFT快速傅立叶变换,测量基波信号的频率。数据分析与处理模块的软件流程如图5所示。

图4 数据采集模块流程图

图5 数据分析与处理模块的软件流程图

3.4.1 FFT频率粗测

FFT采用基-2时间抽取算法。由于要分辨的频率在较低频段处间隔较小,为了较好地分辨出信号所处的频段,便于后级FIR模块能正确选择对应的分段滤波器,故FFT点数的选择至关重要[11]。综合考虑,在此采用32 768点,能分辨的频率间隔为 44 100/32 768=1.346 Hz,采样时间为32 768/4 410 0=743 ms。数据格式采用16位块浮点,动态范围大。由于在信号频谱中,基频的幅值是最大的,因此,可从FFT结果中测出基波频率,计算公式为

F=(sample_rate/32 768)×FFT_Max_Cout

(1)

其中,sample_rate 为采样率 44 100 Hz, FFT_Max_Count 为基频在频谱中的位置。通过往FFT中输入440 Hz方波,使用FFT实测,可从FFT粗测频的结果中得到 FFT_Max_Count = 327。由此得到信号粗测频率F=(44 100/32 768)×327=440.848 389 Hz,与实际440 Hz相近,符合设计要求。

3.4.2 FIR数字滤波器

采集模块采集到的琴音信号中除了含有基波信号外,还有大量的谐波分量,因此,首先必须对其进行滤波等处理,除去谐波分量[12]。要实现对琴音信号的精确滤波,须知波形的大概频率范围,依此来设置滤波器截止频率,然后计算出相应的滤波系数。

FFT 模块已经对基波信号频率进行了粗测,在此,以粗测所得频率值作为 FIR 滤波器截止频率设计的依据[13]。琴音信号对应的基频范围为:27.50~4 186.00 Hz,为更好地滤波,去除谐波分量的干扰,这里将琴音信号频域分为10个段,针对各段设计带通滤波器,当测量不同段信号中的频率时,就调用不同的滤波系数进入 FIR 模块形成相应滤波器,从而滤除其他的谐波分量,只留下基波。FFT 粗侧频率值与带通滤波器设置频带宽度如表1所示。

FIR滤波器设计关键是要计算出滤波器系数,在此利用LabVIEW的FIR滤波器设计工具设计,为得到较好的过渡频带和带内波动,综合考虑采用 60 阶加凯撒窗进行设计。得到滤波系数以后,在LabVIEW中设计FIR带通滤波器。

表1 粗测频率和滤波频率分段

3.4.3 FFT快速傅里叶变换

琴音信号经过FIR数字滤波以后,已去除了高频分量以及噪声等干扰信息,只剩下波形为正弦波的基波信号。因此,接下来可采用FFT快速傅里叶变换的方法,得到琴音信号中基波分量的频谱构成及FFT_Max_Count值。为了保证测量的准确性,程序设计中,重复调用FFT快速傅里叶变换20次,然后取平均值作为最终的输出[14]。

信号经过FFT快速傅里叶变换后,得到琴音信号中基波分量的频谱构成及FFT_Max_Count值与FFT粗测模块得到的结果是一致的,说明该模块达到了设计初衷。

3.4.4 测量基频

由于在信号频谱中,基频的幅值是最大的,因此可从FFT快速傅里叶变换的结果中测出基波频率,计算公式为

F=(sample_rate/32 768)×FFT_Max_Count

(2)

其中,sample_rate 为采样率 44 100 kHz, FFT_Max_Count 为基频在频谱中的位置[15]。最终得到的基波信号的频率440.084 838 9 Hz,这与输入的仿真信号频率440 Hz较为接近,从而说明本模块的设计符合要求。

3.5 结果显示模块的设计

最终结果的显示由调音开关和有效琴音数据标志的状态决定。若调音开关打开,且有效琴音数据标志为True,则调用数据分析及处理模块对数据进行处理,最后显示测得基频频率、标准基频频率、测量误差和提示信息;若调音开关未打开,则不进行显示;若调音开关打开,但有效琴音数据标志为False,则只显示提示信息“无效数据”。

4 实验结果与分析

运行调音仪,打开操作界面,首先,进行声卡相关参数的配置和数据存储路径的设置;接着,输入要调音的钢琴按键的编号,并打开调音开关;然后,采集钢琴对应按键发出的琴音信号并进行分析与处理;最后,进行相关结果的显示。

图6所示是对钢琴49号按键的发音频谱进行实测的结果,测量误差0.019 3%。表2是对部分按键的发音频谱进行实测的结果。

图6 440 Hz(49号键)测量结果

表2 对部分按键的发音频谱进行实测的结果

由对以上各图分析可知:由实验测出的频率值与理论值基本吻合,误差较小,证明了用本系统进行钢琴调音仪的结果是基本正确的,也说明了本文设计的钢琴调音仪是符合要求的。

5 结束语

设计了一种新的以声卡和LabVIEW工具为核心的钢琴调音仪。对于现有市场上存在的钢琴调音仪而言,提出了一种全新的方法来实现钢琴的调音工作,开拓了设计者的思路,减轻了调音师的工作负担,提高了钢琴调音的精度,避免了主观的影响以及其他不可测因素的干扰,为钢琴调音提供了客观、科学的依据,取得了良好的效果,也为同类钢琴调音仪的设计提出了一条新思路。

[1] 高明,孟建军,祁文哲,等.基于虚拟仪器的数据采集系统的设计与实现[J].铁路计算机应用,2009,18(2):1-3.

[2] 郝丽,赵伟.基于声卡的虚拟仪器教学[J].实验室研究与探索,2014,33(2):79-81.

[3] 苏江峰.钢琴调音软件的设计[D].西安:西安电子科技大学,2008.

[4] 周爱军,马海瑞.基于声卡的LabVIEW数据采集与分析系统设计[J].微计算机信息, 2005,21(15):108-110.

[5] 黄松岭,吴静.虚拟仪器设计基础教程[M].北京:清华大学出版社,2008.

[6] 胡奕明,黄志刚,肖雷蕾,等.基于LabVIEW的乐器数字调音系统[J].现代电子技术,2013,36(6):141-144.

[7] 潘阳.钢琴校音计算机软件的设计[D].合肥:安徽大学,2011.

[8] 潘阳,魏梨君.一种基于频率特征及动态窗长的钢琴调音算法[J].信息技术,2011(5):155-156.

[9] 唐晓倩.基于DSP的钢琴调音仪的研制[J].西安航空技术高等专科学校学报,2011,29(1):64-66.

[10] 谭祖印,梁维刚,欧启标,等.基于SOPC的钢琴调音系统设计与实现[J].广西物理,2013,34(1):26-30.

[11] 王广德,许德成,刘洪波,等.基于单片机的智能乐器校音器的设计[J].吉林师范大学学报:自然科学版,2014,35(1):95-98.

[12] 王,姚竹亭,顾秀江.基于ARM+DSP的钢琴调律器设计[J].电子测试,201(5):72-77.

[13] 刘允峰.基于Matlab和小波降噪的钢琴基频测量系统设计[J].现代电子技术,2011,34(5):95-96,99.

[14] 许凌云.基于声卡和LabVIEW的虚拟仪器研制[J].仪器仪表用户,2007,14(3):82-83.

[15] 陈晓磊.基音周期的提取[J].大众科技,2009(9):47-49.

A New Virtual Piano Tuning Meter Design Based on Sound Card

ZHANG Xiaopeng

(School of Electrical Information Engineering,Pingdingshan University,Pingdingshan 467000, China)

Design a new piano tuning based on sound card and LabVIEW tools. Using computer sound card to sound in the design of data collection, in the PC, LabVIEW tools as the core, the development of system operation interface and operating procedures, to receive sound data from the sound card, all kinds of algorithm processing, calculate the base frequency of sound, and calculates the sound frequency and standard of the sound frequency comparison and calculation, the relevant data and comparison results show that, and give reasonable advice and tips, so as to guide operating personnel related operations, then completes the piano tuning work. The results show that the system hardware and software design has reached the expected requirement, can be used in the piano music, also for the future design of similar piano tuning meter article puts forward a new way of thinking.

piano tuning; sound card; LabVIEW; fundamental frequency detection

2016- 01- 18

张晓朋(1978-),男,硕士,讲师。研究方向:电子,通信与自动控制。

10.16180/j.cnki.issn1007-7820.2016.11.025

TP391.42

A

1007-7820(2016)11-086-05

猜你喜欢

声卡调音琴音
僧心琴音
记白马寺(新韵)
畅玩主流AV前级/放大器 体验自动调音系统
夜品高陶九品赠侄
调音
浅析调音台的调音技巧
调音
提升笔记本电脑音质
聊天室背景放音乐 为啥我的本本就不行?
风雨二十五载PC声卡春秋录