基于DES5402PP的IIR濾波器設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在許多實(shí)際應(yīng)用DSP系統(tǒng)中,輸入信號(hào)既可以是語(yǔ)音信號(hào)、調(diào)制的電話信號(hào)、編碼的數(shù)字信號(hào)、壓縮后的圖像信號(hào),也可以是各種傳感器輸出的模擬信號(hào),這就需要DSP通過(guò)A/D和D/A轉(zhuǎn)換完成數(shù)字信號(hào)和模擬信號(hào)之間的轉(zhuǎn)換,從而能使DSP處理模擬信號(hào)和將數(shù)字信號(hào)轉(zhuǎn)換成易于人機(jī)交互的聲、光、電等信號(hào)。DES5402PP是一個(gè)采用TI公司的TMS320C5402為核心處理器的實(shí)驗(yàn)開(kāi)發(fā)板,它提供的TLC320AC01能很好的完成這一功能。
1 IIR濾波器的MATLAB設(shè)計(jì)
盡管IIR濾波器的算法比FIR濾波器要復(fù)雜,且不是因果穩(wěn)定的,但I(xiàn)IR濾波器也具有多種優(yōu)越性,它可充分利用模擬濾波器的設(shè)計(jì)成果,工作量相對(duì)較??;在相同的設(shè)計(jì)指標(biāo)下,可以用較低的階數(shù)獲得較好的性能;所用的存儲(chǔ)單元少,因此對(duì)于硬件來(lái)說(shuō),在相同時(shí)鐘速率和存儲(chǔ)空間下可以提供更好的帶外衰減特性[1]。
設(shè)低通IIR切比雪夫?yàn)V波器的采樣點(diǎn)為256個(gè),采樣頻率為600Hz,輸入為兩個(gè)頻率分別為100Hz和300Hz的正弦信號(hào)的合成信號(hào)。設(shè)定截止頻率為200Hz,可以預(yù)料,將保留100Hz的信號(hào),300Hz的信號(hào)基本被濾掉。
根據(jù)系統(tǒng)的設(shè)計(jì)流程,先在MATLAB中求得IIR濾波器的系數(shù)。主要分為三個(gè)步驟:產(chǎn)生本系統(tǒng)的測(cè)試信號(hào);調(diào)用MATLAB中的濾波器函數(shù),求出濾波器的系數(shù);調(diào)用filter函數(shù)進(jìn)行濾波,輸出濾波后的信號(hào)。驗(yàn)證濾波器的性能后,將濾波器的系數(shù)通過(guò)程序?qū)懗?inc的文件,通過(guò).include語(yǔ)句將其寫(xiě)入DSP匯編程序中。
2 C5402的緩沖串口(BSP)工作方式
TMS320C5402是TI公司生產(chǎn)的16位定點(diǎn)、速度為100MIPS、RAM為16×16位、ROM為4K×16位、可編程、低功耗和高性能的DSP。它提供的各種類型的串口都可以在全雙工方式下通信,其串口信號(hào)與許多符合工業(yè)標(biāo)準(zhǔn)的串行設(shè)備兼容,可以直接連接。當(dāng)串口復(fù)位時(shí),可通過(guò)DSP來(lái)關(guān)閉或打開(kāi)串口工作時(shí)鐘,并允許串口運(yùn)行在低功耗模式下[2]。
緩沖串口在BSP在標(biāo)準(zhǔn)串口的基礎(chǔ)上增加一個(gè)自動(dòng)緩沖單元ABU,是一種增強(qiáng)型標(biāo)準(zhǔn)串口。允許8、10、12、16、20、24或32位的數(shù)據(jù)傳輸。由于ABU是一個(gè)附加邏輯電路,它允許串口單元直接將數(shù)據(jù)讀寫(xiě)到C5402的內(nèi)部獨(dú)立存儲(chǔ)器,不需要CPU參與,從而使BSP傳輸速度更快。表1給出了BSP發(fā)送和接收數(shù)據(jù)初始化的操作步驟。
表1 BSP的發(fā)送和接收初始化步驟
3 AC01的特點(diǎn)[3][4]
TLC320AC01也是TI公司生產(chǎn)的一款集成有A/D和D/A的芯片,通過(guò)串口與DSP或其他設(shè)備通信。AC01的最高采樣頻率為25kHz,其數(shù)據(jù)精度為16位,采用單一5V電源供電。C5402與AC01連接后,可以只使用一個(gè)緩沖通道串口來(lái)同時(shí)實(shí)現(xiàn)數(shù)據(jù)的采集和輸出,從而節(jié)省了DSP的硬件開(kāi)銷。因此,DSP與AC01的連接使用在信號(hào)處理中得到了廣泛的應(yīng)用。
實(shí)驗(yàn)系統(tǒng)DES5402PP使用AC01作為模擬信號(hào)接口,有兩個(gè)AC01,分別工作于“主”、“從”模式。利用“主AC01”產(chǎn)生合成的輸入信號(hào),“從AC01”將該信號(hào)轉(zhuǎn)換成濾波的數(shù)據(jù)信號(hào)并輸入到DSP芯片。其中,DSP還可以通過(guò)讀寫(xiě)AC01的寄存器,控制AC01的采樣頻率、增益、低通、高通濾波器的截止頻率等參數(shù)。AC01的九個(gè)控制寄存器如表2。
表2 TLC320AC01的數(shù)據(jù)存儲(chǔ)器功能
在AC01正常工作前,必須對(duì)它進(jìn)行正確的初始化。初始化的操作主要工作是配置AC01的以上各個(gè)數(shù)據(jù)存儲(chǔ)器。采樣頻率Fs=MCLK/2AB,其中,MCLK為DSP的工作頻率,A,B分別為A,B寄存器的內(nèi)容。由于實(shí)驗(yàn)設(shè)置采樣頻率為600Hz,因此設(shè)A,B寄存器的內(nèi)容分別為5和4。即:
4 C5402和AC01的連接方式
4.1 C5402和AC01的硬件連接
在主/從模式下,DSP可以不通過(guò)其他器件而直接與兩個(gè)AC01相連。其硬件連接如圖1所示:
圖1 主/從TLC320AC01和TMS320C5402的連接
4.2 C5402和AC01的軟件連接
先在C5402的數(shù)據(jù)存儲(chǔ)空間寫(xiě)入256個(gè)數(shù)據(jù)(即三個(gè)正弦信號(hào)混合而成的測(cè)試信號(hào)的離散表示),然后通過(guò)緩沖串口將數(shù)據(jù)發(fā)送到“主AC01”,利用“主AC01”的D/A通道產(chǎn)生一個(gè)模擬信號(hào)作為IIR濾波器的輸入信號(hào)。由于實(shí)驗(yàn)中DES5402PP的信號(hào)輸出通道與輸入通道相連,即“主AC01”的輸出作為“從AC01”的輸入,“從AC01”的DOUT端口與DSP芯片的DR端相連。另外,在串口通訊中,因?yàn)閿?shù)據(jù)時(shí)鐘和幀同步信號(hào)都由AC01產(chǎn)生,所以C5402將使用外部時(shí)鐘和幀同步信號(hào)。在使用串口前,需要對(duì)它進(jìn)行初始化,包括串口收發(fā)中斷設(shè)置和串口寄存器的初始化,主要代碼如下:
同時(shí),要修改中斷向量表以便正確響應(yīng)串口的接收和發(fā)送中斷請(qǐng)求,其中發(fā)送中斷產(chǎn)生測(cè)試信號(hào)和完成對(duì)AC01的初始化。實(shí)際上對(duì)信號(hào)濾波的實(shí)現(xiàn),就是指從A/D讀到一個(gè)數(shù)據(jù)后調(diào)用濾波程序,然后輸出數(shù)據(jù)到D/A。
5 實(shí)驗(yàn)過(guò)程與結(jié)果分析
實(shí)驗(yàn)程序主要包括以下幾個(gè)步驟:
(1),對(duì)DSP的寄存器、緩沖串口以及定時(shí)器初始化,確保能提供AC01正確的時(shí)鐘信號(hào)。完成該步驟后,檢測(cè)DSP的CLKR和FSR引腳可以看到連續(xù)輸出的信號(hào)。
(2),同過(guò)DSP的緩沖串口對(duì)AC01進(jìn)行初始化,正確設(shè)置AC01的采樣率控制寄存器(表2中的R1),設(shè)置其采樣頻率。完成該步驟后,檢測(cè)AC01的DOUT引腳可以發(fā)現(xiàn)有連續(xù)輸出的信號(hào)。
(3),設(shè)置DSP的中斷,從緩沖串口讀取數(shù)據(jù)。這一步可以通過(guò)CCS環(huán)境查看讀取的數(shù)據(jù)是否正確。如果正確,將采樣數(shù)據(jù)送到濾波程序中,進(jìn)行濾波處理,得到結(jié)果后,直接送到AC01的D/A單元輸出。否則,返回步驟(1)。
濾波前后的波形如圖2和圖3所示??梢钥吹?,比起濾波前的(a)圖,(b)圖的時(shí)域和頻域波形得到明顯改善,300Hz的信號(hào)基本被濾除。
(a)濾波前的信號(hào)波形&nBSP; (b)濾波后的信號(hào)波形
圖2 濾波前后信號(hào)的時(shí)域波形
(a)濾波前的信號(hào)頻率 (b)濾波后的信號(hào)頻率
圖3 濾波前后信號(hào)的頻域波形
在圖2(b)中,可以看到,只剩下一種頻率的正弦信號(hào)。從頻域來(lái)看,在圖3(b)中,高頻部分已經(jīng)基本削弱,同時(shí)低頻也有少量損失,只要將濾波器的階數(shù)高一些或者截止頻率稍微定低一些,便能更大程度的保留低頻信號(hào)、消除高頻信號(hào)。
6 結(jié)語(yǔ)
在信號(hào)與信息的過(guò)濾、檢測(cè)和預(yù)測(cè)等處理中,都要使用濾波器,數(shù)字濾波器是數(shù)字信號(hào)處理中使用最廣泛的一種方法。IIR數(shù)字濾波器的設(shè)計(jì)過(guò)程中,可以借助模擬濾波器的設(shè)計(jì)成果或直接采用典型的濾波器類型,減少工作量。而在信號(hào)的輸入輸出過(guò)程中,往往需要A/D和D/A轉(zhuǎn)換,TLC320AC01模擬接口電路便可方便的實(shí)現(xiàn)這一轉(zhuǎn)換。此外,DSP芯片本身具有并行的硬件乘法器、流水線結(jié)構(gòu)以及快速片內(nèi)RAM等資源,容易實(shí)現(xiàn)濾波運(yùn)算,且程序可移植性好,不同性能的濾波器只需要修改濾波器的參數(shù)即可。
本文作者創(chuàng)新點(diǎn):在DES5402PP開(kāi)發(fā)板的基礎(chǔ)上,通過(guò)輸入一組兩個(gè)不同頻率的正弦混合信號(hào),設(shè)計(jì)并實(shí)現(xiàn)了IIR濾波器。同時(shí)介紹串口和TLC320AC01的工作方式,給出了與DSP的連接方法,并通過(guò)程序?qū)崿F(xiàn)。不論處理的是模擬信號(hào)還是數(shù)字信號(hào),系統(tǒng)都可以通過(guò)TLC320AC01在信號(hào)形式上進(jìn)行匹配轉(zhuǎn)換,完成對(duì)信號(hào)的濾波處理。由于TLC320AC01最高采樣頻率為25kHz(高于語(yǔ)音采樣頻率8kHz),因此該系統(tǒng)也可用于音頻信號(hào)濾波