李俊萩 張晴暉 呂丹桔 秦明明
摘要:電子信息工程專業(yè)的綜合實訓其教學目的是使學生對所學多門主干課程進行一個系統(tǒng)復習,繼而為本科畢業(yè)設(shè)計奠定堅實的基礎(chǔ)。本次實訓項目為設(shè)計一個語音控制的虛擬信號發(fā)生器,綜合了多學科知識,涉及電子電路設(shè)計類、程序設(shè)計類、信號處理類等課程。實訓項目由教師指導學生分模塊、分步驟進行,先硬件、后軟件,讓學生熟悉系統(tǒng)設(shè)計的過程及步驟。實踐證明,通過綜合實訓的鍛煉,學生的實際動手能力、綜合應(yīng)用能力、項目開發(fā)能力等方面都得到一定程度的提高。
關(guān)鍵詞:綜合實訓;單片機;LabWindows/CVI;電子線路設(shè)計;語音信號處理
中圖分類號:G642.41 ? ? 文獻標志碼:A ? ? 文章編號:1674-9324(2016)07-0117-03
電子信息工程專業(yè)的綜合實訓在整個本科教學中起到一個承上啟下的作用。教學內(nèi)容是將學生所學的多門主干課程融合在一起,設(shè)計一個語音控制的虛擬信號發(fā)生器。該題目融合了單片機基礎(chǔ)、C語言程序設(shè)計、數(shù)字電路、電子線路設(shè)計、語音信號處理等多門課程的知識,對學生所學知識進行了一個系統(tǒng)的復習,這是“承上”的作用。經(jīng)過為期三周的實訓,學生的實際動手能力、綜合應(yīng)用能力、項目設(shè)計能力都能得到很好的鍛煉,為大四即將進行的本科畢業(yè)設(shè)計起到一個鋪墊,這是“啟下”的作用。綜合實訓由多名教師合作,分模塊、分步驟地指導學生完成。第一階段進行系統(tǒng)設(shè)計,向?qū)W生講解整個項目的框架;第二階段是單片機系統(tǒng)仿真,基于Proteus和Keil軟件仿真實現(xiàn)信號發(fā)生器的基本功能;第三階段是硬件電路的焊接及調(diào)試;第四階段是上層應(yīng)用軟件設(shè)計,基于LabWindows/CVI軟件設(shè)計一個虛擬信號發(fā)生器控制面板,通過串口實現(xiàn)對下層硬件系統(tǒng)的控制;第五階段是語音信號處理,基于Matlab軟件對語音信號進行檢測,實現(xiàn)由語音控制信號發(fā)生的功能。
一、綜合實訓項目總體框架
綜合實訓項目的總體框圖如圖1所示。上層軟件包括語音信號處理部分和虛擬信號軟面板部分。下層硬件電路包括單片機、D/A轉(zhuǎn)換電路、按鍵、LED、串口電路。為了鍛煉學生的項目開發(fā)經(jīng)驗,本次綜合實訓遵循項目開發(fā)的過程,先整體后局部。按照自底向上,先硬件后軟件的步驟,由教師指導學生一步步完成。
二、單片機及外圍電路設(shè)計
本次實訓項目是語音控制的虛擬信號發(fā)生器,其基本功能是產(chǎn)生四種常規(guī)波形(方波、鋸齒波、三角波、正弦波)。波形的產(chǎn)生由單片機控制D/A轉(zhuǎn)換電路實現(xiàn),波形選擇可以由按鍵控制,也可以由PC機通過串口發(fā)送命令控制。硬件設(shè)計階段主要完成的實踐內(nèi)容有,基于Proteus軟件進行系統(tǒng)仿真,基于Protel軟件繪制電路原理圖及PCB板,最后進行實物焊接。
1.Proteus仿真。基于Proteus進行仿真時,按以下模塊分步驟進行,首先仿真D/A轉(zhuǎn)換部分,然后仿真按鍵和LED部分,再接下來仿真串口部分。各部分仿真完成后,再進行總體仿真。如此分模塊地進行有利于學生查找和定位問題。第1步:D/A轉(zhuǎn)換模塊的仿真。本次實訓的D/A轉(zhuǎn)換芯片選擇TLC5615,這是一塊串行的10位DAC芯片,只需要3根總線便可以完成10位數(shù)據(jù)的串行輸入。對于項目經(jīng)驗很少的本科生來說,選擇引腳較少的芯片有利于提高實物焊接的成功率。第2步:按鍵和顯示模塊的仿真。本次實訓的按鍵和顯示部分僅做了最簡單的設(shè)計,選用獨立式按鍵和一個七段數(shù)碼管,其目的是簡化硬件電路,盡可能保證絕大多數(shù)同學能將實物焊接并調(diào)試出來,提高他們的學習興趣。四個獨立式按鍵分別用于選“方波”、“鋸齒波”、“三角波”、“正弦波”等四種波形,四種波形的序號1、2、3、4顯示在數(shù)碼管上。第3步:系統(tǒng)總體仿真。圖2所示為簡易波形發(fā)生器的總體仿真電路圖。
2.硬件電路的焊接?;赑roteus完成系統(tǒng)仿真之后,接下來進行硬件電路的焊接。很多同學在焊接電路時,由于經(jīng)驗不足,急于求成,總是將全部電路焊接完成后,再進行測試。然而往往由于焊接技術(shù)不嫻熟,常出現(xiàn)虛焊、錯焊等問題,導致看不到運行效果,而眾多的焊接線路又使得學生無從下手去查找和定位問題,最終散失信心。為了提高同學焊接電路的成功率,在硬件電路焊接時,教師也是分步驟進行指導,每焊接完一部分電路就進行測試,在保證前一部分電路焊接正確的前提下,再進入后一部分電路的焊接。實踐證明,有了這樣的過程控制,僅有極少部分學生的電路最終未調(diào)試出結(jié)果。第1步:認識電子元件的實物。第2步:焊接單片機最小系統(tǒng),并測試最小系統(tǒng)能否正常工作。第3步:焊接TLC5615芯片,并將D/A轉(zhuǎn)換的仿真程序下載到單片機里,觀察能否產(chǎn)生波形。第4步:焊接按鍵及數(shù)碼管,并將對應(yīng)的仿真程序下載到單片機里,觀察按鍵和數(shù)碼管的工作情況。第5步:使用串口調(diào)試助手向STC89C51單片機發(fā)送控制命令,觀察單片機能否根據(jù)控制命令產(chǎn)生相應(yīng)的波形,并在數(shù)碼管上顯示波形序號。
三、上層控制軟件設(shè)計
完成了硬件電路的設(shè)計和制作,接下來是軟件部分的設(shè)計。軟件分為虛擬信號發(fā)生器的軟面板以及語音信號處理兩個部分。虛擬信號發(fā)生器軟面板采用虛擬儀器專用開發(fā)平臺LabWindows/CVI設(shè)計完成,編程語言是C語言,對于電子信息工程專業(yè)的學生來說,該軟件較容易上手并掌握。
1.分步驟學習LabWindows/CVI軟件。本次實訓學生是初次接觸LabWindows/CVI開發(fā)平臺,為了讓學生能夠在短時間內(nèi)完成虛擬信號發(fā)生器上層控制軟件的設(shè)計,我們?nèi)匀话凑辗帜K、分步驟的方法對學生進行指導。第1步:創(chuàng)建一個簡單面板。通過該步驟,讓學生了解基于LabWindows/CVI進行程序設(shè)計的工程創(chuàng)建過程,整個工程由面板文件、源文件、頭文件等組成。第2步:設(shè)計一個簡易信號發(fā)生器。通過該步驟,讓學生初步了解CVI里專用庫函數(shù)的查找及調(diào)用方法。第3步:設(shè)計一個配置串口的小程序。通過該步驟,讓學生了解串口的編程方法。第4步:設(shè)計一個文件讀寫的小程序。通過該步驟,建立語音識別模塊與虛擬信號發(fā)生器控制面板之間聯(lián)系的通道。
2.虛擬信號發(fā)生器控制面板設(shè)計。完成以上幾個獨立的功能模塊后,學生對CVI軟件的編程方法有了一定了解,接下來是將各模塊整合為虛擬信號發(fā)生器上層控制軟件,如圖3所示。
該軟件的基本功能有以下兩點:一是可以通過手動控制產(chǎn)生方波、鋸齒波、三角波、正弦波四種波形,每選定一種波形,就在波形顯示區(qū)顯示該信號,同時向單片機系統(tǒng)發(fā)送控制命令。二是可以通過語音控制產(chǎn)生四種波形,語音識別正確后,將波形序號存儲在一個文本文件中,由上層控制軟件讀取該文本文件,根據(jù)序號值便可知道語音識別的結(jié)果,然后再控制單片機系統(tǒng)產(chǎn)生相應(yīng)的波形信號。
圖3所示的軟件界面左側(cè)為串口參數(shù)配置部分。信號產(chǎn)生模式分為“手動控制”和“語音控制”兩種,選擇“手動控制”時,根據(jù)下方的滑動條選擇波形類別。選擇“語音控制”時,將讀取語音信號處理后生成的文本文件,根據(jù)文件中存放的波形序號值選擇波形類別。信號顯示區(qū)下方有三個按鈕,“產(chǎn)生信號”按鈕的功能是在“信號顯示”區(qū)顯示波形信號,同時向單片機系統(tǒng)發(fā)送控制命令產(chǎn)生實際波形?!按跍y試”按鈕的功能是測試串口工作是否正常?!巴顺鱿到y(tǒng)”按鈕的功能是關(guān)閉面板。
四、語音信號處理
語音信號處理部分基于Matlab平臺,采用上位機PC機錄制用戶語音命令,通過提取語音命令的美爾倒譜系數(shù)(Mel MFCC)為特征,采用動態(tài)時間規(guī)整算法(Dynamic Time Warping,DTW)進行識別,將識別結(jié)果存入文檔后,通過Labwindows讀取識別結(jié)果,依據(jù)識別結(jié)果產(chǎn)生相應(yīng)的虛擬波形,同時把識別結(jié)果送至單片機產(chǎn)生實際波形。
1.語音控制識別系統(tǒng)。語音識別系統(tǒng)框圖如圖4所示,這一部分的程序設(shè)計主要分為兩個階段:訓練階段和識別階段。第1步:訓練階段。分別錄制方波、鋸齒波、三角波、正弦波四個語音命令的wav文件,分別進行切音框分幀,應(yīng)用高階差分(HOD)進行端點檢測,提取有效語音命令,以幀為單位提取13維的MFCC特征,將這四個語音命令的MFCC特征進行存儲建模。第2步:識別階段。用戶任意說出其中的一個波形名稱,錄制為wav波形文件,經(jīng)分幀,HOD端點檢測,提取13維MFCC特征,將此待識別信息與訓練階段的四個參考模型應(yīng)用DTW進行計算,將DTW運算中距離最小者判定為識別的語音命令。
2.關(guān)鍵技術(shù)。①MFCC特征,本文采用的MFCC特征提取過程如圖5所示,以11.4K采樣率錄制的語音命令,先經(jīng)過預處理,進行高頻補償,512點/幀進行切音框,逐幀加漢明窗后進行FFT變換,在頻域通過20個三角濾波器組,實現(xiàn)頻率壓縮后,通過離散余弦變換返回時域,提取該倒譜的前13個系統(tǒng)作為MFCC特征。②DTW算法,本文采用的DTW算法原理,采用首尾固定,以0-45-90的路徑進行,r表示參考模板的MFCC矩陣,t表示待識別語音命令的MFCC矩陣,其距離計算公式為:
D(i,j)=||t(i),r(j)||+minD(i,j-1)D(i-1,j-1)D(i-1,j)
本次綜合實訓歷時90個學時,以設(shè)計并實現(xiàn)一個語音控制的虛擬信號發(fā)生器為模型,其特點在于每一階段的工作教師都按照分步驟、分模塊的方法指導學生逐步完成。讓學生在硬件設(shè)計、軟件設(shè)計、調(diào)試和定位錯誤等方面都得到一定程度的鍛煉和提高??梢哉f,綜合實訓在學生的本科教學階段起到了一個承上啟下的作用,既讓學生系統(tǒng)復習了多門電子信息類主干課程的相關(guān)知識,又為大四即將進行的畢業(yè)設(shè)計打下堅實的基礎(chǔ)。通過該項目的實施能夠鍛煉學生綜合應(yīng)用多學科知識解決問題的能力。
參考文獻:
[1]李江全.Labwindows/CVI數(shù)據(jù)采集與串口通信典型應(yīng)用實例[M].電子工業(yè)出版社,2014.
[2]王建新,隋美麗.LabWindows/CVI虛擬儀器測試技術(shù)及工程應(yīng)用[M].化學工業(yè)出版社,2014.
[3]陳輝,陳梅,杜靜,等.基于AT89C51單片機波形發(fā)生器的Proteus設(shè)計[J].自動化與儀器儀表,2012,(3):51-53.
[4]宋躍,余熾業(yè),胡勝.省級精品單片機課程教學改革探索[J].實驗室研究與探索,2012,(4):124-126.