張曉朋
(平頂山學院 電氣信息工程學院,河南 平頂山 467000)
?
基于聲卡的新型虛擬鋼琴調音儀設計
張曉朋
(平頂山學院 電氣信息工程學院,河南 平頂山 467000)
針對目前鋼琴調音技術中存在設備復雜、成本高、不易推廣等缺點,提出了一種基于聲卡和LabVIEW工具的新型鋼琴調音儀的設計方案。設計中采用計算機聲卡進行琴音數據的采集,在PC機上,以LabVIEW工具為核心,開發(fā)系統操作界面及操作程序,接收聲卡采集的琴音數據,進行各種算法處理,并將相關數據和比較結果進行顯示,并給出合理的意見和提示,指導操作人員進行相關操作,完成鋼琴的調音工作。實驗結果表明,系統的軟硬件設計達到了預期的要求,可用于鋼琴調音,也為今后同類鋼琴調音儀的設計提出了一條新思路。
鋼琴調音;聲卡;LabVIEW;基頻檢測
由于鋼琴的琴弦具有金屬延展性,長期使用或周圍環(huán)境因素的影響,使鋼琴各個鍵經常會偏離應有的頻率,這就需要定期進行調音。傳統的鋼琴調音方法是用音叉或需要提供標準音,由經驗豐富的校音師通過聽力比較兩個音階的差別進行調校,但容易受生理、心理和客觀條件的影響,易出現較大誤差;隨著現代電子技術的發(fā)展,利用嵌入式技術輔助鋼琴調音逐漸成為新的趨勢,但這些方法一般都是基于ARM、DSP、單片機或者FPGA等技術,存在設備復雜、成本高、不易推廣等缺點[1]。
基于此,本文提出了一種基于計算機聲卡和LabVIEW工具的全新設計方法,結合虛擬儀器技術和數字信號處理的相關技術設計出了一款鋼琴調音儀。
本系統主要包含兩個模塊:數據采集模塊和上位PC機主控模塊。(1)數據采集模塊。以計算機聲卡為核心,采用麥克風來拾取琴音信號,完成聲音信號到電信號的轉換,然后送入聲卡進行數據采集[2];(2)上位PC機主控模塊。在PC機上,利用圖形化的編程軟件LabVIEW開發(fā)鋼琴調音儀的操作界面和相關程序模塊,接收聲卡采集的琴音數據,進行琴音數據的各種算法處理及圖形化顯示,指導操作者完成鋼琴調音工作[3]。系統的總體結構框圖如圖1所示。
圖1 系統的總體結構框圖
2.1 數據采集模塊的設計
采集模塊主要負責對琴音信號進行轉換和采集。該模塊主要由麥克風和計算機聲卡兩個部分組成。
系統選用麥克風作為聲音傳感器,用其將琴音信號變換成電信號。然后,由計算機聲卡對轉換之后的琴音信號進行采集。聲卡一般有這3個排在一起的3.5 mm的雙聲道插孔。其中Line In和MIC In為兩個信號輸入插孔,這兩種輸入的差別在于其信號的放大率不同。因一般的麥克風的信號較小,所以MIC In端的放大率會設計得較大,并會配合麥克風的特性來修正,所以系統中,麥克風拾取的琴音信號由MIC In輸入到聲卡[4]。
2.2 上位PC機主控模塊的設計
以PC機為硬件平臺,以LabVIEW為開發(fā)工具,負責控制聲卡完成琴音數據的采集,并對采集到的琴音數據進行提取、基頻頻率粗測、數字濾波、快速傅立葉變換和基頻測量,測量出其中包含的基頻頻率,同時把相關結果進行顯示[5]。
以LabVIEW虛擬儀器開發(fā)環(huán)境為開發(fā)工具,編制本鋼琴調音儀的操作界面和相關程序模塊,通過操作界面可以指導調律人員操作完成鋼琴的調音工作[6]。
系統軟件主要由以下幾部分組成:初始化模塊、數據采集模塊、數據分析與處理模塊和結果顯示模塊。軟件整體流程框圖如圖2所示。
圖2 軟件流程框圖
3.1 調音儀主界面和框圖程序設計
3.1.1 主界面設計
系統的主界面如圖3所示。系統啟動后,按以下步驟進行調音工作:
步驟1 通過聲卡相關參數設置模塊進行相關采集設備參數的設置,包括采集速率、采樣位數、每通道的采樣數據點數、采集設備ID號等[7];通過數據存儲路徑設置模塊進行數據存儲路徑的設置,將相關數據存入電子表格格式文件;
圖3 鋼琴調音儀的操作界面
步驟2 通過調音信息設置模塊輸入要調音的鋼琴按鍵的編號,并打開調音開關;
步驟3 讀取聲卡采集的數據,如果是有效的琴音數據,則與標準的琴音數據進行對比,并在調音結果顯示模塊顯示相關結果;若是無效的噪音,則不進行顯示;
步驟4 判斷電源開關的狀態(tài),若開關接通,則回到步驟2繼續(xù)調音工作;若開關斷開,則停止程序運行,結束調音工作。
3.1.2 程序框圖設計
鋼琴調音儀的主程序運行步驟如下:
步驟1 從聲卡讀取數據,并判斷數據是否是有效的琴音數據。判別方法:先對采集的琴音數據的絕對值進行求和,計算出平均值;然后,將平均值與參考值進行對比,若平均值大于參考值,則認為數據有效,否則認為數據無效[8]。同時,將讀取的數據以及比較結果傳送到下一個程序模塊。參考值通過多次實際測試得出;
步驟2 判斷調音開關是否打開以及由第一步檢測過的數據是否有效,若兩個條件均成立,則進入步驟3;若讀取的數據無效,或者調音開關沒有打開,直接進入步驟4;
步驟3 首先,根據操作界面輸入的琴鍵的鍵號計算產生標準的琴音頻率和基頻數據;然后,將讀取的琴音數據和標準的琴音數據進行對比,并給出比較結果;最后跳轉到步驟4;
步驟4 判斷電源開關的狀態(tài),若開關接通,則回到第一步繼續(xù)運行程序;若開關斷開,則結束程序運行。
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 數據采集模塊的設計
在實際中,電路帶來的噪聲是不可避免的,且在采集信號時周邊環(huán)境還會存在噪聲,所以在設計中采用了信號短時平均能量來確定采集到是有效的琴音數據,或是無效的噪音和干擾信號,從而保證了系統的高識別率[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位塊浮點,動態(tài)范圍大。由于在信號頻譜中,基頻的幅值是最大的,因此,可從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 結果顯示模塊的設計
最終結果的顯示由調音開關和有效琴音數據標志的狀態(tài)決定。若調音開關打開,且有效琴音數據標志為True,則調用數據分析及處理模塊對數據進行處理,最后顯示測得基頻頻率、標準基頻頻率、測量誤差和提示信息;若調音開關未打開,則不進行顯示;若調音開關打開,但有效琴音數據標志為False,則只顯示提示信息“無效數據”。
運行調音儀,打開操作界面,首先,進行聲卡相關參數的配置和數據存儲路徑的設置;接著,輸入要調音的鋼琴按鍵的編號,并打開調音開關;然后,采集鋼琴對應按鍵發(fā)出的琴音信號并進行分析與處理;最后,進行相關結果的顯示。
圖6所示是對鋼琴49號按鍵的發(fā)音頻譜進行實測的結果,測量誤差0.019 3%。表2是對部分按鍵的發(fā)音頻譜進行實測的結果。
圖6 440 Hz(49號鍵)測量結果
表2 對部分按鍵的發(fā)音頻譜進行實測的結果
由對以上各圖分析可知:由實驗測出的頻率值與理論值基本吻合,誤差較小,證明了用本系統進行鋼琴調音儀的結果是基本正確的,也說明了本文設計的鋼琴調音儀是符合要求的。
設計了一種新的以聲卡和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] 潘陽,魏梨君.一種基于頻率特征及動態(tài)窗長的鋼琴調音算法[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