基于DSP Builder的回波抵消器設(shè)計與實現(xiàn)
2 FPGA硬件設(shè)計
設(shè)計選用FPGA是Altera公司Cyclone系列的EPlCl2Q240C8。FPGA中I/O端口可自由定義,電路設(shè)計方便、編程靈活、不易受外部干擾。系統(tǒng)編譯環(huán)境采用QuartusⅡ,頂層設(shè)計為圖形化方式。芯片模塊劃分為分頻模塊、D/A轉(zhuǎn)換模塊和回波抵消器模塊。分頻模塊采用VHDL語言編程實現(xiàn),D/A轉(zhuǎn)換模塊采用硬件電路實現(xiàn),同波抵消器模塊用DSPBuilder軟件進行設(shè)計。
2.1 分頻模塊設(shè)計
分頻模塊是將外部時鐘進行分頻設(shè)定,得到系統(tǒng)內(nèi)部DA模塊和回波抵消器模塊所需要的時鐘。分頻模塊的外部時鐘輸入頻率為50 MHz,8分頻后產(chǎn)生的時鐘頻率約為6 MHz。
2.2 回波抵消器模塊設(shè)計
該部分采用層次化的設(shè)計方法。利用DSP Builder模塊構(gòu)建自適應(yīng)算法部分,根據(jù)LMS算法迭代公式(4)和濾波器的估計輸出式(2),建立加權(quán)分量模型。如圖2(a)所示。
在圖2(a)中,第i個延時單元的輸入信號為x(n),延時后的輸出信號為x(n-1),同時輸入信號x(n)產(chǎn)生一個乘積y’(n)=ω(n)x(n),由于是濾波器的估計輸出是一系列權(quán)值分量與輸入矢量的各分量乘積之和。因此,除第一級外,后續(xù)單元必須加上前一級的加權(quán)單元的輸出。封裝后,則可以根據(jù)濾波器階數(shù)的不同而相應(yīng)調(diào)整,以實現(xiàn)多級級聯(lián)。尤其是在構(gòu)造階數(shù)可變和階數(shù)較大的濾波器時更能顯出其靈活性。然后將封裝后的加權(quán)分量單元依照階數(shù)級聯(lián),并再次封裝即構(gòu)成抵消器模塊??蛇\用于頂層模型中。
在頂層系統(tǒng)模型中連接各子模塊,如圖2(b)所示,圖中兩個信號源sin2,sin1采用正弦信號發(fā)生器實現(xiàn),利用正弦查找表產(chǎn)生正弦波數(shù)據(jù),函數(shù)調(diào)用格式為lOsin([0:2π/2∧4:2π])和5sin[0:2π/2∧6:2π],其輸入地址分別為4位和6位,輸出為16位。Dixiaoqi模塊由圖2(a)級聯(lián)封裝得到,模塊Parallel to serial為并行/串行轉(zhuǎn)換器。
設(shè)計中,因語音信號頻率可以看作約為3.4 kHz,所以信號采樣頻率設(shè)為8 kHz,假設(shè)回波延遲2.5 ms(小于回波對聽覺產(chǎn)生干擾的范圍20 ms),考慮收斂速度和實現(xiàn)情況,步長采用0.1,計算得出濾波器階數(shù)20。
2.3 D/A轉(zhuǎn)換模塊設(shè)計
利用Texas Instruments公司的D/A芯片TLC5620,并輔助使用4輸入與門SN74HC08M和運算放大器LM358AM,構(gòu)建數(shù)模轉(zhuǎn)換器。TLC5620是8位電壓輸出的數(shù)模轉(zhuǎn)換器,需5V外接電壓,有4個輸出端口可以選擇。利用擴展插槽與FPGA連接,信號接119腳,時鐘由所編程序在FPGA內(nèi)實現(xiàn),通過73腳與TLC5620連接,控制信號通過63腳連接TLC5620。
3 DSP Builder仿真和FPGA驗證
通過Simulink仿真得到波形,如圖3(a)所示,圖中第一行為返回A聽筒的誤差e信號波形,第二行為輸入話筒的所有信號,即B信號與回波信號之和。由變化的波形可以看出,隨著自適應(yīng)濾波器的“學(xué)習(xí)”過程,回波逐漸被抵消。
利用ModelSim針對生成的RTL級VHDL代碼進行功能仿真,設(shè)置信號為模擬形式,如圖3(b)所示,圖中為減去回波后的誤差信號,與Simu-link仿真結(jié)果一致。
使用ModelSim完成RTL級功能仿真,其仿真結(jié)果并不能精確反映電路的全部硬件特性,進行門級的時序仿真仍然十分重要。在Quartus Ⅱ下編譯后進行時序仿真,其仿真波形,如圖3(c)所示。
評論