夏霏杰,趙檢蒙,張 杰,夏志富,朱仁祥
(寧波工程學院 電子與信息工程學院,浙江 寧波 315016)
琴類樂器各個弦或鍵發出不同模式、不同音高(或音調)的樂音,這些琴弦、鍵發的音符合一定的音律,如“純律”、“十二平均律”等。然而,這些琴類樂器各個弦或鍵經常會偏離應有的位置,以致演奏不出應有的音樂效果,這就需要定期對這些樂器進行校準。通常,調音師通過耳朵來判斷每個弦音是否有偏差,再按一定的音律調各個弦或鍵。這種傳統的琴音分析及調試手段是利用耳的聽覺來完成的,人為影響因素大,不夠精確且效率低下。特別是,對于一些初學者,其對音準的判別還沒有達到能夠調音的水平。這就需要設計專門的工具來完成調音。
被測信號即琴音信號由麥克風采集,經過模擬音頻信號處理模塊對信號進行放大和整合后送入PIC單片機,對PIC進行一系列初始化設置后由PIC內置的A/D轉換器進行模數轉換,并對轉換完的數字信號進行FFT分析。最后在圖形液晶模塊上顯示結果。系統結構框圖如圖1所示。

圖1 系統總體框
在模擬音頻信號模塊中,音頻信號首先通過麥克風采集進來。由于麥克風信號輸出比較小,必須采用前置放大器進行放大[1]。考慮到噪聲的問題,這里用 OP07低噪聲放大器對信號進行放大。OP07芯片是一種低噪聲,非斬潑穩零的上級行運算放大器集成電路[2]。電路如圖2所示。

圖2 前置放大電路
本系統采用的單片機型號為PIC18F452。該單片機是帶有10 位A/D的高性能增強型閃存單片機[3]。
PIC18F452的 A/D轉換電路的輸入范圍為0~VREF,為單極性輸入形式。由于采樣的信號為音頻信號,即交流信號。因此需要把雙極性輸入電壓經過提升電路轉換成單極性[4],然后與 PIC18F452單片機相連,如圖3所示。

圖3 電壓提升電路
A/D 的設置首先要考慮的是抽樣頻率。根據抽樣頻率等于或大于信號最高頻率的奈奎斯特頻率,則信號在頻域中無混疊現象[5]。由于小提琴的弦音頻率范圍大約在1~2 kHz,本系統將系統的A/D采用頻率設為10 kHz。還有一些其他的相關設置,例如:①對模擬引腳/基準電壓/數字I/O進行配置;②選擇 A/D輸入通道;③選擇 A/D轉換時鐘;④對A/D轉換完成標志位清0; ⑤對A/D轉換中斷使能位置1。
FFT算法的基本原理是把長序列的DFT逐次分解為較短序列的DFT[6]。本系統采用基2、DIT-FFT(按時間抽取)的方法進行數據分析。其算法流程圖如圖4所示。

圖4 FFT算法流程
FFT計算公式[7]:

FFT是離散傅里葉變換的快速算法,在單片機實現中,采用蝶形運算算法實現 FFT[8],蝶形運算單元如圖5所示。圖中左為輸入。中間的黑色實心點表示加、減運算。右上支路為相加后的輸出,右下支路為相減后的輸出。箭頭表示要進行相乘運算。

圖5 蝶形運算流
變址計算部分代碼如下:


注意:①up,down,produc均為自定義的結構體,表示復數,這里不給出具體定義;②mul,add,sub三個函數分別計算復數的相乘,相加和相減,并保存在第3個參數中。
對于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.