文/肖鐵
數(shù)字信號處理廣泛應(yīng)用在通信、語音、圖像、自動(dòng)控制、雷達(dá)、軍事、航空航天等眾多領(lǐng)域,其中數(shù)字濾波器是很重要的部分。數(shù)字濾波器種類很多其中FIR濾波器由于沖激響應(yīng)只延續(xù)一定時(shí)間且可采用遞歸的方式實(shí)現(xiàn)或非遞歸的方式實(shí)現(xiàn),無輸出到輸入反饋,易獲得嚴(yán)格的線性相位特性,避免了被處理信號產(chǎn)生相位失真和強(qiáng)信號淹沒弱信號等優(yōu)點(diǎn),特別適合信號強(qiáng)弱相差懸殊的場合。本FIR數(shù)字濾波器設(shè)計(jì)采用了TI公司的TMS320C54x系列的TMS320C5416 DSP,應(yīng)用DSP集成開發(fā)環(huán)境CCS調(diào)試匯編程序來實(shí)現(xiàn)了FIR數(shù)字濾波。
TI公司的TMS320C54x系列的TMS320C5416 DSP芯片架構(gòu)為改進(jìn)型哈佛結(jié)構(gòu),有三個(gè)并行的總線:寫數(shù)據(jù)總線、程序讀寫總線、讀數(shù)據(jù)總線。各總線都有不同的存儲器空間,數(shù)據(jù)存儲器和程序存儲器是兩個(gè)獨(dú)立的存儲空間,且允許數(shù)據(jù)在這兩個(gè)儲器之間進(jìn)行傳輸,取指令和取操作數(shù)并行提高運(yùn)算速度。硬件乘法器一個(gè)指令周期內(nèi)就可完成一次加法和一次乘法運(yùn)算,大大提高了數(shù)字濾波系統(tǒng)的速度。TMS320C5416 DSP為四級流水線指令操作方式,指令和操作數(shù)來自不存儲器,同時(shí)有四條指令的不同階段流水作業(yè)多條指令的并行執(zhí)行,縮短了指令的執(zhí)行時(shí)間吞吐量更快。芯片中硬件循環(huán)控制電路提供了重復(fù)指令,實(shí)現(xiàn)了零開銷的循環(huán)控制。其硬件主要由中央處理單元、內(nèi)部存儲器、總線結(jié)構(gòu)和片內(nèi)外設(shè)等幾個(gè)部分組成。
DSP的運(yùn)算核心,包括算術(shù)邏輯單元(ALU) 、CPU狀態(tài)和控制寄存器、乘法/加法單元、累加器、比較選擇存儲單元(CSSU)及定標(biāo)移位器等多個(gè)單元。算術(shù)邏揖單元由一個(gè)四十位的算術(shù)邏輯單元和兩個(gè)四十位的累加器來執(zhí)行二進(jìn)制補(bǔ)碼算術(shù)運(yùn)算及布爾運(yùn)算。CPU狀態(tài)和控制寄存器在不同狀態(tài)下都包含ST0、ST1和PMST存儲器設(shè)置狀態(tài)和控制信息且都是存儲器映像,在調(diào)用子程序或中斷服務(wù)子程序時(shí)保存并在返回時(shí)恢復(fù)。乘法器/加法器單元除可進(jìn)行高效的卷積、相關(guān)和濾波等操作外,與ALU一起在單個(gè)指令周期內(nèi)執(zhí)行乘法/累加計(jì)算且對ALU的操作是并行的。累加器A/B存儲來自ALU或乘法/加法單元的輸出,同時(shí)任一累加器也是另一個(gè)累加器的暫存器。比較選擇存儲單元(CSSU)對累加器的低位字和高位字進(jìn)行比較,并保持轉(zhuǎn)換記錄狀態(tài),將最大的數(shù)傳輸至數(shù)據(jù)存儲器保存;選擇合適硬件CSSU還可提高維特比娜蝶形運(yùn)算速度。定標(biāo)移位器對輸入的數(shù)據(jù)進(jìn)行0到31位的左移和0到16位的右移,對處理器執(zhí)行的數(shù)字定標(biāo)、位提取、擴(kuò)展算術(shù)運(yùn)算和防溢出等進(jìn)行操作。
TMS320C5416 DSP內(nèi)部存儲器具有較大的程序存儲空間容量為192K*16bit,分為三個(gè)存儲段:64K*16bit程序存儲、64K*16bit白行數(shù)據(jù)存儲、64K*16bit的I/O存儲。程序存儲含待執(zhí)行的指令和執(zhí)行中需要使用的數(shù)據(jù)表格,數(shù)據(jù)存儲含程序指令所用到的數(shù)據(jù),F(xiàn)O存儲用來接外圍芯片,給外圍芯片分配地址后就可訪問外設(shè)。當(dāng)內(nèi)部存儲器不夠用時(shí)I/O空間亦可作為DSP的外部數(shù)據(jù)存儲器。
TMS320C5416 DSP有八條16位的總線:四條程序/數(shù)據(jù)總線、四條地址總線。程序總線PB傳輸程序存儲器的指令代碼和立即數(shù);CB、DB和EB三條數(shù)據(jù)總線與不同單元連接,CB和DB傳輸程序存儲器數(shù)據(jù),EB傳輸待寫入存儲器數(shù)據(jù);PAB、CAB、DAB、EAB四條地址總線傳輸指令執(zhí)行所需要的地址數(shù)據(jù)。
精度高,可以達(dá)到1/100000級,16位數(shù)字系統(tǒng);性能穩(wěn)定,受環(huán)境影響小可靠性高器件無老化現(xiàn)象;編程方便,修改和升級靈活方便;重復(fù)性好,便于調(diào)試測試及大規(guī)模生產(chǎn);接口兼容好,與其它數(shù)字系統(tǒng)或設(shè)備都相互兼容;集成方便,適合大規(guī)模集成。
圖1
圖2:量化后的FIR濾波器的幅頻特性曲線
圖3:量化后的FIR濾波器的相頻特性曲線
圖4:FIR數(shù)字濾波器的直接型結(jié)構(gòu)
(1)根據(jù)設(shè)計(jì)要求,確定處理精度、速度、實(shí)時(shí)性等性能指標(biāo);
(2)按照設(shè)計(jì)要求進(jìn)行高級語言算法模擬,驗(yàn)證算法可行性,得獲最優(yōu)處理辦法;
(3)系統(tǒng)設(shè)計(jì)主要是硬件設(shè)計(jì)和軟件設(shè)計(jì),硬件設(shè)計(jì)包括DSP芯片選擇,相應(yīng)外圍電路設(shè)計(jì)等,軟件設(shè)計(jì)主要是指對選用的DSP芯片編寫相應(yīng)的程序,可以使用匯編語言也可采用C語言,實(shí)際開發(fā)中常常是兩種語言結(jié)合編寫的,本設(shè)計(jì)是采用匯編語言編寫、設(shè)計(jì)軟件程序的。
由TI公司在1999年推出的具有開放、強(qiáng)大集成開發(fā)環(huán)境的DSP系統(tǒng)開發(fā)工具—CCS,包括代碼生成工具、CCS集成開發(fā)環(huán)境、DSP/BIOS和API函數(shù)以及RTDX組成。
(1)系數(shù)量化。為了能在MATLAB上模擬的算法能夠適用于DSP,須對系數(shù)進(jìn)行量化處理即浮點(diǎn)數(shù)到定點(diǎn)數(shù)的轉(zhuǎn)換,量化處理后保存的文件名為fircofflp ,系數(shù)如圖1。
(2)量化誤差又稱為量化噪聲,實(shí)際模擬值落入兩個(gè)量化層次之間時(shí)就會產(chǎn)生量化誤差,采用正確的量化方式控制產(chǎn)生的誤差可在接收范圍內(nèi)。如圖2、圖3分別得出了量化后FIR濾波器的幅頻和相頻特性曲線,其誤差控制在設(shè)計(jì)允許的范圍內(nèi),系數(shù)的濾波器設(shè)計(jì)是可行的。
(3)FIR數(shù)字濾波器的實(shí)現(xiàn)結(jié)構(gòu),本設(shè)計(jì)采用了直接型結(jié)構(gòu),結(jié)構(gòu)框圖如圖4。
(4)FIR濾波器的DSP實(shí)現(xiàn)。將可執(zhí)行文件下載至DSP芯片中,運(yùn)行得輸入/輸出信號頻譜圖如圖5,輸入信號頻譜圖(左)中有f1、f2、f3三個(gè)信號頻率,輸出信號頻譜圖中濾除了高頻f2、f3只余f1信號,達(dá)到了低通濾波的目的。
同樣如圖6輸入信號時(shí)域圖(左)顯示,三個(gè)不同頻率正弦信號疊加通過濾波后,從輸出信號時(shí)域圖6顯示就僅剩余了頻率為f1的正弦信號。
通過MATLAB軟件對所設(shè)計(jì)的FIR數(shù)字濾波器進(jìn)行仿真結(jié)果,本設(shè)系統(tǒng)達(dá)到了設(shè)計(jì)要求。FIR濾波器沒有反饋回路工作穩(wěn)定,設(shè)計(jì)方式線性保證了精確的線性相位,硬件容易實(shí)現(xiàn)等諸多優(yōu)點(diǎn),希望在以后的研究中與大家共同探討,更加深入。
圖5:輸入/輸出信號的頻譜圖
圖6:輸入/輸出信號的時(shí)域圖