應(yīng)用程序設(shè)計_第1頁
應(yīng)用程序設(shè)計_第2頁
應(yīng)用程序設(shè)計_第3頁
應(yīng)用程序設(shè)計_第4頁
應(yīng)用程序設(shè)計_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一頁,共三十九頁,2022年,8月28日6.1FIR濾波器的DSP實現(xiàn)

在數(shù)字信號處理中,濾波占有極其重要的地位。數(shù)字濾波是語音處理、圖像處理、模式識別、頻譜分析等應(yīng)用中的基本處理算法。用DSP芯片實現(xiàn)數(shù)字濾波除了具有穩(wěn)定性好、精確度高、不受環(huán)境影響等優(yōu)點外,還具有靈活性好等特點。

數(shù)字濾波器是DSP的基本應(yīng)用,分為有限沖激響應(yīng)濾波器FIR和無限沖激響應(yīng)濾波器IIR。

本節(jié)主要討論FIR濾波器的基本結(jié)構(gòu)、設(shè)計方法和DSP實現(xiàn)方法。

第6章應(yīng)用程序設(shè)計第二頁,共三十九頁,2022年,8月28日6.1FIR濾波器的DSP實現(xiàn)6.1.1

FIR濾波器的基本結(jié)構(gòu)

數(shù)字濾波是將輸入的信號序列,按規(guī)定的算法進行處理,從而得到所期望的輸出序列。

一個線性時不變系統(tǒng)的輸出序列y(n)和輸入序列x(n)之間的關(guān)系,應(yīng)滿足常系數(shù)線性差分方程:(6.1.1)

x(n):輸入序列,y(n):輸出序列,ai、bi:濾波器系數(shù),N:濾波器的階數(shù)。

第6章應(yīng)用程序設(shè)計第三頁,共三十九頁,2022年,8月28日6.1.1

FIR濾波器的基本結(jié)構(gòu)

在式()中,若所有的ai均為0,則得FIR濾波器的差分方程:

(6.1.2)

對式()進行z變換,可得FIR濾波器的傳遞函數(shù):

(6.1.3)

第6章應(yīng)用程序設(shè)計第四頁,共三十九頁,2022年,8月28日6.1.1

FIR濾波器的基本結(jié)構(gòu)

FIR濾波器的結(jié)構(gòu):

z-1z-1+x(n)y(n)x(n-1)x(n-N+1)b0b1bN-2bN-1z-1第6章應(yīng)用程序設(shè)計第五頁,共三十九頁,2022年,8月28日6.1.1

FIR濾波器的基本結(jié)構(gòu)

在數(shù)字濾波器中,F(xiàn)IR濾波器具有如下幾個主要特點:

FIR濾波器無反饋回路,是一種無條件穩(wěn)定系統(tǒng);②

FIR濾波器可以設(shè)計成具有線性相位特性。第6章應(yīng)用程序設(shè)計第六頁,共三十九頁,2022年,8月28日6.1FIR濾波器的DSP實現(xiàn)6.1.3

FIR濾波器的MATLAB設(shè)計

MATLAB是一種功能強、效率高、便于進行科學(xué)和工程計算的交互式軟件包,它集數(shù)值分析、矩陣運算、信號處理和圖形顯示于一體,為用戶提供了方便、友好的界面環(huán)境。

MATLAB中的工具箱(Toolbox)包含了許多實用程序。它提供了多種FIR濾波器設(shè)計方法。

下面以標(biāo)準頻率響應(yīng)設(shè)計法fir1和任意頻率響應(yīng)設(shè)計法fir2為例說明其使用方法。第6章應(yīng)用程序設(shè)計第七頁,共三十九頁,2022年,8月28日6.1.3

FIR濾波器的MATLAB設(shè)計用來設(shè)計標(biāo)準頻率響應(yīng)的基于窗函數(shù)的FIR濾波器,可實現(xiàn)加窗線性相位FIR數(shù)字濾波器的設(shè)計。

1.

fir1函數(shù)

語法:

b=fir1(n,Wn)

b=fir1(n,Wn,‘ftype’)

b=fir1(n,Wn,Window)

b=fir1(n,Wn,‘ftype’,Window)

n:濾波器的階數(shù);Wn:濾波器的截止頻率;

ftype:用來決定濾波器的類型,

當(dāng)ftype=high時,可設(shè)計高通濾波器;當(dāng)ftype=stop時,可設(shè)計帶阻濾波器。

Window:用來指定濾波器采用的窗函數(shù)類型,

其默認值為漢明(Hamming)窗。

第6章應(yīng)用程序設(shè)計第八頁,共三十九頁,2022年,8月28日使用fir1函數(shù)可設(shè)計標(biāo)準的低通、高通、帶通和帶阻濾波器。1.

fir1函數(shù)

(1)

采用漢明窗設(shè)計低通FIR濾波器

使用b=fir1(n,Wn)可得到低通濾波。0

Wn

1,

格式:

b=fir1(n,Wn)

第6章應(yīng)用程序設(shè)計第九頁,共三十九頁,2022年,8月28日使用fir1函數(shù)可設(shè)計標(biāo)準的低通、高通、帶通和帶阻濾波器。1.

fir1函數(shù)

(2)

采用漢明窗設(shè)計高通FIR濾波器

在b=fir1(n,Wn,‘ftype’)中,當(dāng)ftype=high時,可設(shè)計高通濾波器。

格式:

b=fir1(n,Wn,‘high’)第6章應(yīng)用程序設(shè)計第十頁,共三十九頁,2022年,8月28日使用fir1函數(shù)可設(shè)計標(biāo)準的低通、高通、帶通和帶阻濾波器。1.

fir1函數(shù)

(3)

采用漢明窗設(shè)計帶通FIR濾波器

在b=fir1(n,Wn)中,當(dāng)Wn=[W1W2]時,可得到帶通濾波器,其通帶為W1<w<W2,W1和W2分別為通帶的下限頻率和上限頻率。

格式:

b=fir1(n,[W1W2])第6章應(yīng)用程序設(shè)計第十一頁,共三十九頁,2022年,8月28日使用fir1函數(shù)可設(shè)計標(biāo)準的低通、高通、帶通和帶阻濾波器。1.

fir1函數(shù)

(4)

采用漢明窗設(shè)計帶阻FIR濾波器

在b=fir1(n,Wn,‘ftype’)中,當(dāng)ftype=stop,Wn=[W1W2]時,fir1函數(shù)可得到帶阻濾波器。

格式:

b=fir1(n,[W1W2],‘stop’)第6章應(yīng)用程序設(shè)計第十二頁,共三十九頁,2022年,8月28日1.

fir1函數(shù)

(5)

采用其他窗口函數(shù)設(shè)計FIR濾波器使用Window參數(shù),可以用其他窗口函數(shù)設(shè)計出各種加窗濾波器。

Window參數(shù)可采用的窗口函數(shù)有:

Boxcar,Hanning,Bartlett,Blackman,Kasier和chebwin等,其默認時為Hamming窗。

例如,采用Bartlett窗設(shè)計帶阻濾波器,其格式:

b=fir1(n,[W1W2],‘stop’,Bartlett(n+1))

第6章應(yīng)用程序設(shè)計第十三頁,共三十九頁,2022年,8月28日1.

fir1函數(shù)

注意:用fir1函數(shù)設(shè)計高通和帶阻濾波器時,所使用的階數(shù)n應(yīng)為偶數(shù),當(dāng)輸入的階數(shù)n為奇數(shù)時,fir1函數(shù)會自動將階數(shù)增加1形成偶數(shù)。【例】

采用Hamming窗設(shè)計一個48階FIR帶通濾波器,通帶為0.35<w<0.65。

解:采用fir1函數(shù)的程序格式:

b=fir1(48,[0.350.65

]);

【例6.1.2】設(shè)計一個FIR高通濾波器,使用具有30dB波紋的Chebyshev窗,其階數(shù)為34,截止頻率為0.48。

解:采用fir1函數(shù)設(shè)計高通濾波器的程序格式為

Window=chebwin(35,30);

b=fir1(34,0.48,‘high’,Window);第6章應(yīng)用程序設(shè)計第十四頁,共三十九頁,2022年,8月28日6.1.3

FIR濾波器的MATLAB設(shè)計用來設(shè)計有任意頻率響應(yīng)的各種加窗FIR濾波器。2.

fir2函數(shù)

語法:

b=fir2(n,f,m)

b=fir2(n,f,m,Window)

b=fir2(n,f,m,npt)

b=fir2(n,f,m,npt,Window)

b=fir2(n,f,m,npt,lap)

b=fir2(n,f,m,nptt,lap,Window)

第6章應(yīng)用程序設(shè)計第十五頁,共三十九頁,2022年,8月28日2.

fir2函數(shù)

【例6.1.3】設(shè)計一個30階的低通FIR濾波器,其截止頻率為0.6。

解:采用fir2函數(shù)的程序格式:

f=[00.60.61];

m=[1100];

b=fir2(30,f,m);

在使用MATLAB設(shè)計FIR濾波器時,還可以使用freqz()和plot()函數(shù)。

freqz()函數(shù):可求出傳遞函數(shù)的幅頻響應(yīng)和相頻響應(yīng);

plot()函數(shù):可繪出濾波器的幅頻響應(yīng)和相頻響應(yīng)曲線。

第6章應(yīng)用程序設(shè)計第十六頁,共三十九頁,2022年,8月28日2.

fir2函數(shù)

~例6.1.3中,若希望得到濾波器的特性,可使用freqz()函數(shù),其格式:

freqz(b,1,512)

得濾波器的特性如圖。

第6章應(yīng)用程序設(shè)計第十七頁,共三十九頁,2022年,8月28日2.

fir2函數(shù)

例6.1.1帶通濾波器的特性第6章應(yīng)用程序設(shè)計第十八頁,共三十九頁,2022年,8月28日2.

fir2函數(shù)

例6.1.2高通濾波器的特性第6章應(yīng)用程序設(shè)計第十九頁,共三十九頁,2022年,8月28日2.

fir2函數(shù)

例6.1.3低通濾波器的特性第6章應(yīng)用程序設(shè)計第二十頁,共三十九頁,2022年,8月28日6.1FIR濾波器的DSP實現(xiàn)6.1.4

FIR濾波器的DSP實現(xiàn)

FIR濾波器的輸出表達式:

y(n)=b0x(n)+b1x(n-1)+…

+bn-1x(n-N+1)

()

bi為濾波器系數(shù),x(n)為濾波器在n時刻的輸入,y(n)為n時刻的輸出。

基本算法:采用乘法累加運算。即不斷地輸入樣本x(n),經(jīng)過z-1延時后,再進行乘法-累加,最后輸出濾波結(jié)果y(n)。

第6章應(yīng)用程序設(shè)計第二十一頁,共三十九頁,2022年,8月28日1.

z-1算法的實現(xiàn)

(2)循環(huán)緩沖區(qū)法特點:

①在數(shù)據(jù)存儲器中開辟一個N個單元的緩沖區(qū)(滑窗),用來存放最新的N個輸入樣本;

②從最新樣本開始取數(shù);

③讀完最老樣本后,輸入最新樣本來代替最老樣本,而其他數(shù)據(jù)位置不變;

④用BK寄存器對緩沖區(qū)進行間接尋址,使緩沖區(qū)地址首尾相鄰。

第6章應(yīng)用程序設(shè)計第二十二頁,共三十九頁,2022年,8月28日(2)循環(huán)緩沖區(qū)法緩沖區(qū):

數(shù)據(jù)存儲器

頂層為低地址單元,存放最新樣本;x(n)

底層為高地址單元,存放最老樣本;x(n-7)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)

ARx指向最新樣本單元。

ARx→算

法:計算過程:

①以ARx為指針,按順序取數(shù),并修改指針;

x(n)ARx→x(n-1)ARx→x(n-2)ARx→x(n-3)ARx→x(n-4)ARx→x(n-5)ARx→x(n-6)ARx→x(n-7)ARx→②每取1次數(shù)后,完成1次乘法累加計算;y(n)=y0=b0x(n)+0y(n)=y1=b1x(n-1)+y0y(n)=y2=b2x(n-2)+y1y(n)=y3=b3x(n-3)+y2y(n)=y4=b4x(n-4)+y3y(n)=y5=b5x(n-5)+y4y(n)=y6=b5x(n-6)+y5y(n)=y7=b5x(n-7)+y6第6章應(yīng)用程序設(shè)計第二十三頁,共三十九頁,2022年,8月28日(2)循環(huán)緩沖區(qū)法數(shù)據(jù)存儲器x(n)x(n-7)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)算

法:

計算過程:

②每取1次數(shù)后,完成1次乘法累加計算;③求得y(n)后,輸入新樣本替代最老樣本;

x(n+1)x(n+1)④修改指針ARx,指向最新樣本單元。

ARx→①求y(n):

取數(shù)順序:x(n)……x(n-7)

最新樣本:x(n+1)

ARx:指向x(n+1)單元

②求y(n+1):

取數(shù)順序:x(n+1)……x(n-6)

最新樣本:x(n+2)

ARx:指向x(n+2)單元

數(shù)據(jù)存儲器x(n)x(n+1)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n+2)ARx→③求y(n+2):

取數(shù)順序:x(n+2)……x(n-5)

最新樣本:x(n+3)

ARx:指向x(n+3)單元

數(shù)據(jù)存儲器x(n)x(n+1)x(n-1)x(n-2)x(n-3)x(n-4)x(n+3)x(n+2)ARx→第6章應(yīng)用程序設(shè)計第二十四頁,共三十九頁,2022年,8月28日6.1.4

FIR濾波器的DSP實現(xiàn)2.

FIR濾波器的實現(xiàn)

’C54x提供的乘法-累加指令MAC和循環(huán)尋址方式,可使FIR數(shù)字濾波器在單周期內(nèi)完成每個樣值的乘法-累加計算。而每個樣值的乘法-累加計算,可采用RPTZ和MAC指令結(jié)合循環(huán)尋址方式來實現(xiàn)。

為了實現(xiàn)對應(yīng)項乘積運算,輸入的樣值x(n)和濾波系數(shù)bi必須合理的存放,并正確初始化存儲塊和塊指針。樣值x(n)和濾波系數(shù)bi的存放可用線性緩沖區(qū)或循環(huán)緩沖區(qū)實現(xiàn)。

第6章應(yīng)用程序設(shè)計第二十五頁,共三十九頁,2022年,8月28日2.

FIR濾波器的實現(xiàn)

用循環(huán)緩沖區(qū)實現(xiàn)FIR濾波器

設(shè)N=7,F(xiàn)IR濾波器的算法:

y(n)=b0x(n)+b1x(n-1)+…+b5x(n-5)+b6x(n-6)DARAMy(n)x(n)x(n-1)x(n-2)x(n-3)x(n-4)…x(n-5)x(n-6)DARAMb0b1b2b3b4b5b6yb0xn第6章應(yīng)用程序設(shè)計第二十六頁,共三十九頁,2022年,8月28日

用循環(huán)緩沖區(qū)實現(xiàn)FIR濾波器

程序清單:

.title“FIR2.ASM”.mmregs.defstart.bssy,1xn.usect“xn”,7b0.usect“b0”,7PA0.set0PA1.set1.datatable:.word1*32768/10.word2*32768/10.word3*32768/10.word4*32768/10.word5*32768/10.word6*32768/10.word7*32768/10DARAMy(n-1)x(n)x(n-1)x(n-2)x(n-3)x(n-4)…b0b1b2b3b4…x(n-5)x(n-6)b5b6;源文件標(biāo)題

;定義MMR寄存器符號名

;定義模塊

;給y保留1個空間

y;給xn段保留7個空間

xn;給b0段保留7個空間

b0;PA0賦值為0

;PA1賦值為1

;從ROM的table定義數(shù)據(jù);定義0.1;定義0.2;定義0.3;定義0.4;定義0.5;定義0.6;定義0.7ROMtable0.10.20.30.40.50.60.7第6章應(yīng)用程序設(shè)計第二十七頁,共三十九頁,2022年,8月28日.textstart:SSBXFRCTSTM#b0,AR1RPT#6MVPDtable,*AR1+STM#xn+6,AR2STM#b0+6,AR3STM#7,BKSTM#-1,AR0LD#xn,DPPORTRPA1,@xnFIR2:RPTZA,#6MAC*AR2+0%,*AR3+0%,ASTHA,@yPORTW@y,PA0BDFIR2PORTRPA1,*AR2+0%.endDARAMy(n-1)x(n)x(n-1)x(n-2)x(n-3)x(n-4)…b0b1b2b3b4…x(n-5)x(n-6)b5b6yxnb0…A;設(shè)置小數(shù)乘法

;AR1指向b0

AR1→;設(shè)置傳輸次數(shù)

ROMtable0.10.20.30.40.50.60.7;系數(shù)傳輸至數(shù)據(jù)區(qū)

0.10.1AR1→0.20.2AR1→0.30.3AR1→0.40.4AR1→0.50.5AR1→0.60.6AR1→0.70.7AR1→;AR2指向x(n-6)單元

AR2→;AR3指向b6單元

AR3→;設(shè)置緩沖區(qū)長度

;設(shè)置雙操作數(shù)增量

;設(shè)置頁指針

;輸入x(n)

x(n);A清0,設(shè)置迭代次數(shù)0000000000;雙操作數(shù)乘法累加x(n-6)0.70.7x(n-6)+0AR2→AR3→x(n-5)0.60.6x(n-5)+AAR2→AR3→x(n-4)0.50.5x(n-4)+AAR2→AR3→x(n-3)0.40.4x(n-3)+AAR2→AR3→x(n-2)0.30.3x(n-2)+AAR2→AR3→x(n-1)0.20.2x(n-1)+AAR2→AR3→x(n)0.10.1x(n)+AAR2→AR3→;存儲y(n)y(n);輸出y(n);循環(huán);輸入最新x(n+1),修正AR2x(n+1)AR2→第6章應(yīng)用程序設(shè)計第二十八頁,共三十九頁,2022年,8月28日鏈接命令文件:

FIR2.objvectors.obj-oFIR2.out-mFIR2.map-estartMEMORY{PAGE0:EPROM:org=0E000h,len=1000hVECS:org=0FF80h,len=0080hPAGE1:SPRAM:org=0060h,len=0020hDARAM:org=0080h,len=1380h}

;選定的目標(biāo)文件

;生成FIR4的輸出文件

;生成FIR4的存儲器映像文件

;定義源程序的入口地址

;定義目標(biāo)存儲器空間

;第0頁:程序存儲器

;EPROM的起始地址:E000h

長度:4K

;VECS的起始地址:FF80h

長度:0080h

;第1頁:數(shù)據(jù)存儲器

;SPRAM的起始地址:0060h

長度:0020h

;DARAM的起始地址:0080h

長度:1380h

存儲空間ROMRAMEPROM…………EPROM…0E0004k0EFFFVECS……VECS0FF8080h0FFEFSPRAM………SPRAM006020h007FDARAM………DARAM……00801380h13EF第6章應(yīng)用程序設(shè)計第二十九頁,共三十九頁,2022年,8月28日鏈接命令文件:

SECTIONS{.text:>EPROMPAGE0.data:>EPROMPAGE0.bss:>SPRAMPAGE1xn:align(8){}>DARAMPAGE1b0:align(8){}>DARAMPAGE1.vections:VECSPAGE0};在存儲器中定義輸出段的位置;text段定位在程序存儲器即源程序位于程序存儲器;系數(shù)區(qū)定義在程序存儲器

;bss段定義在暫存器

;從xn起8個單元定義在DARAM;從b0起8個單元定義在DARAM;vections定義在VECS區(qū)第6章應(yīng)用程序設(shè)計第三十頁,共三十九頁,2022年,8月28日6.1FIR濾波器的DSP實現(xiàn)6.1.5

FIR濾波器的設(shè)計實例設(shè)計一個FIR低通濾波器,其設(shè)計參數(shù):濾波器階數(shù):N=40;截止頻率:wp=0.35,

ws=0.4。

第6章應(yīng)用程序設(shè)計第三十一頁,共三十九頁,2022年,8月28日6.1.5

FIR濾波器的設(shè)計實例

根據(jù)給定的設(shè)計參數(shù),濾波器系數(shù)可由MATLAB中的fir2函數(shù)產(chǎn)生,函數(shù)調(diào)用格式:

1.由給定的設(shè)計參數(shù)確定濾波器的系數(shù)

f=[00.350.41];

m=[1100];

b=fir2(39,f,m)

利用freqz函數(shù)可繪制濾波器的幅頻、相頻特性,其格式:

freqz(b,512,1000)

第6章應(yīng)用程序設(shè)計第三十二頁,共三十九頁,2022年,8月28日濾波器的頻率特性:

1.由給定的設(shè)計參數(shù)確定濾波器的系數(shù)第6章應(yīng)用程序設(shè)計第三十三頁,共三十九頁,2022年,8月28日

采用循環(huán)緩沖區(qū)實現(xiàn)FIR濾波器的源程序如下:

2.匯編源程序

.title“FIR.ASM”.mmregs.bssy,1K_FIR_BFFR.set40PA0.set0PA1.set1FIR_COFF_TABLE.usect“FIR_COFF”,40;定義數(shù)據(jù)存儲空間D_DATA_BUFFER.usect“FIR_BFR”,40;定義數(shù)據(jù)存儲空間.dataCOFF_FIR_START:.word-7*32768/10000,3*32768/10000

;b0,b1

.word14*32768/10000,10*32768/10000;b2,b3……….word3*32768/10000,-7*32768/10000;b38b39第6章應(yīng)用程序設(shè)計第三十四頁,共三十九頁,2022年,8月28日

.text.defFIR_INIT.defFIR_TASKFIR_INIT:SSBXFRCT;設(shè)置小數(shù)乘法

STM#FIR_COFF,AR5;AR1指向b0單元

RPT#K_FIR_BFFR-1;設(shè)置傳輸次數(shù)

MVPD#COFF_FIR_START,*AR5+;系數(shù)bi傳輸至數(shù)據(jù)區(qū)

STM#D_DATA_BUFFER,AR4;D_DATA_BUFFER緩沖區(qū)清0

RPTZA,#K_FIR_BFFR-1STLA,*AR4+STM#(D_DATA_BUFFER+K_FIR_BFFR-1),AR4STM#(FIR_COFF_TABLE+K_FIR_BFFR-1),AR5第6章應(yīng)用程序設(shè)計第三十五頁,共三十九頁,2022年,8月28日STM#-1,AR0;設(shè)置雙操作數(shù)減量

LD#D_DATA_BUFFER,DP;設(shè)置頁指針

PORTRPA1,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論