基于DSPC54x的數(shù)字濾波器設(shè)計(jì)
摘要:本文主要介紹基于DSP的數(shù)字濾波器的設(shè)計(jì),使用CCS5000Simulator實(shí)現(xiàn)FTSK數(shù)據(jù)輸入,使用FIR濾波器對(duì)FTSK調(diào)制信號(hào)進(jìn)行處理,輸出需要的波形與頻譜。文中采用線性緩沖區(qū)和帶移位雙操作尋址的方法實(shí)現(xiàn)FIR濾波器。
前言
一個(gè)實(shí)際的應(yīng)用系統(tǒng)中,總存在各種干擾。使用DSP進(jìn)行數(shù)字信號(hào)處理時(shí),可以從噪聲中提取信號(hào),即對(duì)一個(gè)具有噪聲和信號(hào)的混合源進(jìn)行采樣,然后經(jīng)過(guò)一個(gè)數(shù)字濾波器,濾除噪聲,提取有用信號(hào);數(shù)字濾波器是DSP最基本的應(yīng)用領(lǐng)域,也是熟悉DSP應(yīng)用的重要環(huán)節(jié)。在系統(tǒng)設(shè)計(jì)中,濾波器的好壞將直接影響系統(tǒng)的性能。
數(shù)字濾波器的基本理論和設(shè)計(jì)
對(duì)于數(shù)字濾波器的系統(tǒng)函數(shù)可以表示為:
可以直接寫成表示輸出與輸入的關(guān)系,即常系數(shù)線性差分方程:以下是IIR濾波器的表達(dá)式
當(dāng)全部,即系統(tǒng)函數(shù)和單位抽樣響應(yīng),則系統(tǒng)是FIR。
其濾波結(jié)構(gòu)圖如圖一所示——橫向?yàn)V波結(jié)構(gòu)
圖一橫向?yàn)V波器結(jié)構(gòu)圖
FIR濾波算法實(shí)際上是一種乘法累加運(yùn)算。它不斷輸入樣本,經(jīng)延時(shí),作乘法累加,再輸出濾波結(jié)果y(n)。在這里使用FIR濾波器,它有以下幾個(gè)特點(diǎn):
(1)系統(tǒng)的單位沖激響應(yīng)h(n)在有限個(gè)n值處不為零;
(2)系統(tǒng)函數(shù)H(z)在|z|>0處收斂,在|z|>0處只有零點(diǎn),有限z平面只有零點(diǎn),而全部極點(diǎn)都在z=0處;
(3)結(jié)構(gòu)主要是非遞歸結(jié)構(gòu),沒有輸出到輸入的反饋。
這本次設(shè)計(jì)中FTSK輸入數(shù)據(jù)中包含頻率為800HZ,1200HZ,1600HZ,2021HZ,中心頻率為1600HZ,提取該頻率的信號(hào)。利用Matlab設(shè)計(jì)一個(gè)帶通濾波器。具體參數(shù)為:采樣頻率為22050HZ,通帶寬度為250HZ,則Fpass1=1475HZ,F(xiàn)pass2=1725HZ,衰減1db,過(guò)渡帶為200HZ則Fstop1=1275HZ,F(xiàn)stop2=1925HZ,阻帶衰減為30db。運(yùn)行Matlab獲得126階的帶通濾波器,并提取系數(shù)。
用線性緩沖區(qū)和帶移位雙操作數(shù)尋址方法實(shí)現(xiàn)FIR濾波器
在這里介紹用線性緩沖區(qū)法實(shí)現(xiàn),其特點(diǎn)是:
(1)對(duì)于N級(jí)的FIR濾波器,在數(shù)據(jù)存儲(chǔ)區(qū)中開辟一個(gè)稱之為滑窗的N個(gè)單元的緩沖區(qū),存放最新的N個(gè)輸入樣本。
(2)從最老的樣本開始,每讀一個(gè)樣本后,將此樣本向下移位。讀完最后一個(gè)樣本后,輸入最新樣本至緩沖區(qū)的頂部。
在這里N=126,y(n)=
在數(shù)據(jù)存儲(chǔ)區(qū)中存放系數(shù),并設(shè)置線性緩沖區(qū)存放輸入數(shù)據(jù)。
具體實(shí)現(xiàn)程序如下:
.title“simfir126.asm”
..global_firinit;兩個(gè)匯編程序,可作為C語(yǔ)言的調(diào)用,一個(gè)是初始化濾波器
.global_asmfir;另一個(gè)是濾波器執(zhí)行程序
.mmregs
X.usect“data1”,127
.bssdata1,1
SIZE.set127
.data
COEF;從matlab中獲得的濾波器系數(shù)
;濾波器初始化
_firinit:
SSBXFRCT
STM#X+(SIZE-1),AR2
STM#(SIZE-2),AR0
RET
;濾波器執(zhí)行:
_asmfir:
STLA,*AR2+0
RPTZA,#(SIZE-2)
MACD*AR2-,COEF,A
STHA,*AR2
LD*AR2+,A
NOP
NOP
RETD
NOP
NOP
.END
Simulator仿真結(jié)果分析與硬件調(diào)試
仿真在系統(tǒng)調(diào)試中起著重要作用,TI公司也提供了軟件仿真器(Simulator)來(lái)調(diào)試程序。其中提供的探測(cè)點(diǎn)(ProbePoint)功能非常強(qiáng)大,它是一個(gè)開發(fā)算法的工具,將計(jì)算機(jī)文件數(shù)據(jù)傳送到目標(biāo)板的buffer提供DSP軟件應(yīng)用,同時(shí)可以將計(jì)算結(jié)果輸出到計(jì)算機(jī)文件中供分析,也可以通過(guò)CCS提供的圖形窗口觀察輸入輸出數(shù)據(jù)情況。
在本次設(shè)計(jì)中利用CCS提供的斷點(diǎn)和探測(cè)點(diǎn),指定FTSK數(shù)據(jù)文件的輸入點(diǎn),進(jìn)行相關(guān)設(shè)定,同時(shí)利用CCS提供的圖形窗口觀察輸入和輸出的波形與頻譜。運(yùn)行程序,分別得到輸入波形和頻譜圖(圖二),輸出波形和頻譜圖(圖三)下面分別對(duì)這兩個(gè)圖形進(jìn)行分析。
輸入波形和頻譜圖
圖二輸入信號(hào)的波形和頻譜圖
由圖二輸入信號(hào)的波形圖可以看出,輸入是