文獻標識碼: A
文章編號: 0258-7998(2014)09-0024-03
隨著現(xiàn)代網(wǎng)絡(luò)的飛速發(fā)展,聲紋因其采集方便,成本低,易于在網(wǎng)絡(luò)中進行傳輸,而作為一種應(yīng)用在互聯(lián)網(wǎng)和電話網(wǎng)中的認證技術(shù)變得越來越重要[1]。由于聲音采集的環(huán)境復(fù)雜,背景噪聲經(jīng)常是非平穩(wěn)的,諸如在辦公室、街道和工廠等,正確區(qū)分語音和噪聲是系統(tǒng)正常工作的保證。因此音頻信號的預(yù)處理成了整個設(shè)計的關(guān)鍵部分[2]。
為完成音頻信號的預(yù)處理,有些人在MATLAB中編寫代碼完成濾波器設(shè)計,但是它不能在硬件上實現(xiàn)SOPC設(shè)計;有些人采用Verilog 語言直接在FPGA中實現(xiàn),但是它需要對Verilog語言十分熟悉[3]。本文提出一種利用DSP builder技術(shù)設(shè)計濾波器,既不需要對Verilog語言十分熟悉,還可以借助Simulink平臺完成基于線性相位結(jié)構(gòu)和DA算法的音頻濾波器結(jié)構(gòu)設(shè)計,最后通過Signal Compiler轉(zhuǎn)換為HDL語言,實現(xiàn)由算法級到RTL級的轉(zhuǎn)換[4-8]。
1 系統(tǒng)功能結(jié)構(gòu)設(shè)計
1.1 系統(tǒng)流程
本系統(tǒng)設(shè)計包括濾波器參數(shù)設(shè)計、濾波器結(jié)構(gòu)設(shè)計、MATLAB理論計算、ModelSim時序仿真和板級驗證等流程,如圖1所示。
1.2 濾波器參數(shù)設(shè)計
本文中的濾波器采用線性相位結(jié)構(gòu)和DA算法[9-12],它的系數(shù)是對稱的,即h(n)=±h(N-n-1)。系數(shù)使用SystemVue軟件獲取,并在MATLAB中進行量化。
1.2.1 SystemVue設(shè)計濾波器參數(shù)
打開SystemVue軟件,在空白處右鍵選擇linear sys filters,選擇菜單欄中的filters,選擇漢明窗,截止頻率使用歸一化頻率設(shè)置為0.45,如圖2所示,最后得到如圖3所示濾波器的時域圖。
1.2.2 濾波器系數(shù)
SystemVue設(shè)計出的12階系數(shù),如表1所示。
1.3 濾波器結(jié)構(gòu)設(shè)計
打開MATLAB2009b,在Command窗口輸入Simulink,新建一個model文件,打開Altera DSP Builder庫,選擇組件,包括延時模塊、Parallel Adder Subtractor、Bus Splitter、Data type conversion、Look-up table、Product等,完成一個12階的線性相位結(jié)構(gòu)和DA算法的濾波器模塊設(shè)計,如圖4所示。
它是由3個4階濾波器子系統(tǒng)組成的,一個4階濾波器子系統(tǒng)的內(nèi)部結(jié)構(gòu)如圖5所示。
圖5 4階線性相位濾波器
2 Verilog HDL語言生成
在Simulink中添加Signal Compiler組件,點擊圖標進行設(shè)置,就可以完成HDL代碼的生成,設(shè)置如圖6所示。
3 仿真與驗證
3.1 下載
首先在Quartus II中點擊編譯按鈕,之后出現(xiàn)詳細的存儲資源分配情況,可看到存儲資源類型、存儲器位寬和深度以及存儲量大小,還有初始化文件映射等,如圖7所示。
3.2 仿真
在Simulink中添加Source為一個幅值為10的方波信號,Sink為信號顯示器,仿真結(jié)果如圖8所示。
在Quartus II中進行ModelSim仿真,結(jié)果轉(zhuǎn)化為十進制,如圖9所示。
為驗證音頻濾波器設(shè)計的準確性,在MATLAB軟件中編寫濾波器的卷積公式,計算得出的理論結(jié)果和Simulink仿真的結(jié)果進行比較,由表2可看出兩者的數(shù)值很接近,可看出本文設(shè)計是準確的。
本文在DE2開發(fā)板上完成了音頻信號的采集和預(yù)處理,在Simulink中完成線性相位結(jié)構(gòu)和DA算法的濾波器的模塊設(shè)計,由Signal Compiler轉(zhuǎn)換為HDL代碼燒寫到板子中,節(jié)省了大量的編程時間,減少了設(shè)計音頻濾波器的復(fù)雜度。把Simulink仿真值和MATLAB理論計算值進行對比,結(jié)果很接近,可驗證設(shè)計的準確性。本文使用的SOPC設(shè)計,大大縮短設(shè)計周期,這將為后續(xù)的用于互聯(lián)網(wǎng)和電話網(wǎng)的聲紋特征提取系統(tǒng)的設(shè)計提供便利。
參考文獻
[1] 陳擁權(quán),張羽,胡翀豪,等.聲紋識別技術(shù)及其應(yīng)用前景分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2013(11):24-25.
[2] 李琳琳,秦敏.音頻異步采樣率轉(zhuǎn)換IP的設(shè)計及聯(lián)合仿真[J].電子技術(shù)應(yīng)用,2013,39(6):121-123.
[3] 蔣小燕.MATLAB/FPGA/Dsp builder在《數(shù)字信號處理》課程教學(xué)中的應(yīng)用[J].軟件導(dǎo)刊,2013,20(4):197-199.
[4] 鄭爭兵.基于DSPBuilder的FIR數(shù)字濾波器設(shè)計與仿真[J].陜西理工學(xué)院學(xué)報(自然科學(xué)版),2013(2):34-38.
[5] 單文軍,周雪純,李文華.基于FPGA的FIR數(shù)字濾波器設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2013,36(14):123-126.
[6] 陳勇,南玲巧,任鶴翔,等.基于SOPC的網(wǎng)絡(luò)入侵檢測中模式匹配系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2011,37(11):13-16.
[7] 杜友杰,王紫婷.基于DSP Builder的數(shù)字濾波器設(shè)計與實現(xiàn)[J].電子測試,2012(8):43-46.
[8] GHAMKHARI S F,GHAZNAVI G M B.A new low-power architecture design for distributed arithmetic unit in FIR filter implementation[J].Circuits,Systems,and Signal Processing,2014,33(4):1245-1259.
[9] Wei Ling,Yang Rijie,Cui Xutao.Design of FIR filter based on distributed arithmetic and its FPGA implementation[J].Chinese Journal of Scientific Instrument,2008,29(10):2100-2104.
[10] 李俊,劉淮霞,朱丹,等.基于FPGA技術(shù)的FIR數(shù)字濾波器的設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2012(2):104-105.
[11] 單文軍,周雪純,李文華.基于FPGA的FIR數(shù)字濾波器設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2013,36(14):123-126.
[12] 夏瀑.基于分布式算法的 FIR 濾波器設(shè)計及FPGA實現(xiàn)[D].大連:大連海事大學(xué),2008.