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

下載本文檔

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

文檔簡(jiǎn)介

第6章應(yīng)用程序設(shè)計(jì)第6章應(yīng)用程序設(shè)計(jì)

6.1

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

IIR濾波器的DSP實(shí)現(xiàn)2023/3/292第6章應(yīng)用程序設(shè)計(jì)6.1FIR濾波器的DSP實(shí)現(xiàn)

數(shù)字濾波器是DSP的基本應(yīng)用,分為有限沖激響應(yīng)濾波器FIR和無(wú)限沖激響應(yīng)濾波器IIR。本節(jié)主要討論FIR濾波器的基本結(jié)構(gòu)、設(shè)計(jì)方法和DSP實(shí)現(xiàn)方法。2023/3/293第6章應(yīng)用程序設(shè)計(jì)6.1FIR濾波器的DSP實(shí)現(xiàn)6.1.1

FIR濾波器的基本結(jié)構(gòu)一個(gè)線性位移不變系統(tǒng)的輸出序列y(n)和輸入序列x(n)之間的關(guān)系,應(yīng)滿足常系數(shù)線性差分方程:(6.1.1)

x(n):輸入序列,y(n):輸出序列,ai、bi:濾波器系數(shù),N:濾波器的階數(shù)。2023/3/294第6章應(yīng)用程序設(shè)計(jì)6.1.1

FIR濾波器的基本結(jié)構(gòu)在式()中,若所有的ai均為0,則得FIR濾波器的差分方程:(6.1.2)

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

2023/3/295第6章應(yīng)用程序設(shè)計(jì)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-12023/3/296第6章應(yīng)用程序設(shè)計(jì)6.1.1

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

FIR濾波器的單位沖激響應(yīng)h(n)為有限長(zhǎng)序列。偶對(duì)稱(chēng)線性相位FIR濾波器的差分方程:

N——偶數(shù)

(6.1.4)

若h(n)為實(shí)數(shù),且滿足偶對(duì)稱(chēng)或奇對(duì)稱(chēng)的條件,則FIR濾波器具有線性相位特性。偶對(duì)稱(chēng):h(n)=h(N-1-n);奇對(duì)稱(chēng):h(n)=-h(N-1-n)。2023/3/297第6章應(yīng)用程序設(shè)計(jì)6.1.1

FIR濾波器的基本結(jié)構(gòu)在數(shù)字濾波器中,F(xiàn)IR濾波器具有如下幾個(gè)主要特點(diǎn):

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

FIR濾波器可以設(shè)計(jì)成具有線性相位特性。2023/3/298第6章應(yīng)用程序設(shè)計(jì)6.1FIR濾波器的DSP實(shí)現(xiàn)6.1.2

FIR濾波器的設(shè)計(jì)方法設(shè)計(jì)FIR濾波器的基本方法之一,是用有限項(xiàng)傅氏級(jí)數(shù)來(lái)逼近所要求的濾波器響應(yīng)。1.

用傅氏級(jí)數(shù)設(shè)計(jì)FIR濾波器

Hd()的傅氏級(jí)數(shù):

(6.1.5)

=f/fs為歸一化頻率,fs為采樣頻率,T=2f/fs=2。2023/3/299第6章應(yīng)用程序設(shè)計(jì)理想的傳遞函數(shù)Hd()有無(wú)限多個(gè)系數(shù)Cn,而實(shí)際的濾波器的系數(shù)只能有有限多個(gè)。因此,可以將式(6.1.7)中的無(wú)限項(xiàng)級(jí)數(shù)進(jìn)行截取,得到近似的傳遞函數(shù):1.

用傅氏級(jí)數(shù)設(shè)計(jì)FIR濾波器(6.1.8)

||<1,Q為有限的正整數(shù)。

(6.1.9)

令z=ej2,則有

2023/3/2910第6章應(yīng)用程序設(shè)計(jì)近似傳遞函數(shù)的沖激響應(yīng)是由一系列的系數(shù)來(lái)決定:C-Q、C-Q+1、…、C-1、C0、…、CQ-1、CQ。1.

用傅氏級(jí)數(shù)設(shè)計(jì)FIR濾波器(6.1.10)

為了解決這個(gè)問(wèn)題,可引入Q個(gè)采樣周期的延時(shí),得

當(dāng)n>0時(shí),對(duì)應(yīng)的Cnzn項(xiàng)代表的是一個(gè)非因果的濾波器,即輸出先于輸入,要得到n時(shí)刻的輸出響應(yīng)需用到n+1時(shí)刻的輸出響應(yīng)。

2023/3/2911第6章應(yīng)用程序設(shè)計(jì)令i=-(n-Q),作變量置換得1.

用傅氏級(jí)數(shù)設(shè)計(jì)FIR濾波器0

i2Q(6.1.11)

令bi=CQ-i,N-1=2Q,則H(z)的表達(dá)式為

0

i

N-1(6.1.12)

2023/3/2912第6章應(yīng)用程序設(shè)計(jì)1.

用傅氏級(jí)數(shù)設(shè)計(jì)FIR濾波器根據(jù)卷積公式得(6.1.13)

由上述公式可實(shí)現(xiàn)FIR濾波器,其響應(yīng)由N項(xiàng)構(gòu)成。2023/3/2913第6章應(yīng)用程序設(shè)計(jì)6.1.2

FIR濾波器的設(shè)計(jì)方法

FIR濾波器分為低通濾波、高通濾波、帶通濾波和帶阻濾波,其設(shè)計(jì)可根據(jù)給出的濾波特性,通過(guò)下式計(jì)算系數(shù)Cn來(lái)實(shí)現(xiàn)。2.

濾波器的設(shè)計(jì)n0

2023/3/2914第6章應(yīng)用程序設(shè)計(jì)設(shè)低通濾波器的截止頻率為fc,采樣頻率為fs,則系數(shù)表達(dá)式:2.

濾波器的設(shè)計(jì)()

(1)

低通濾波器的設(shè)計(jì)

2023/3/2915第6章應(yīng)用程序設(shè)計(jì)高通濾波器可以由一個(gè)幅度為1的響應(yīng)減去一個(gè)低通濾波的響應(yīng)來(lái)獲得,如圖所示。2.

濾波器的設(shè)計(jì)(n)響應(yīng)

(2)

高通濾波器的設(shè)計(jì)

11fc1f00f0ffc(n)函數(shù)的表達(dá)式:

低通濾波

高通濾波

(n)=

1n=00n

0高通濾波器的系數(shù):

2023/3/2916第6章應(yīng)用程序設(shè)計(jì)帶通濾波器可以由兩個(gè)截止頻率不同的低通濾波器獲得,如圖所示。2.

濾波器的設(shè)計(jì)低通濾波2

(3)

帶通濾波器的設(shè)計(jì)

11fc11f00f0ffc1低通濾波1

帶通濾波

帶通濾波器的系數(shù),等于兩個(gè)低通濾波器的系數(shù)之差:

fc2fc2

fc1和fc2為低通濾波器的截止頻率,fs為采樣頻率。

2023/3/2917第6章應(yīng)用程序設(shè)計(jì)帶阻濾波器可由(n)和帶通濾波器相減獲得,如圖所示。2.

濾波器的設(shè)計(jì)(n)響應(yīng)(4)

帶阻濾波器的設(shè)計(jì)

11fc11f00f0ffc1帶通濾波

帶阻濾波

帶阻濾波器的系數(shù):

fc2fc22023/3/2918第6章應(yīng)用程序設(shè)計(jì)6.1FIR濾波器的DSP實(shí)現(xiàn)6.1.3

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

MATLAB是一種功能強(qiáng)、效率高、便于進(jìn)行科學(xué)和工程計(jì)算的交互式軟件包。MATLAB中的工具箱(Toolbox)包含了許多實(shí)用程序。它提供了多種FIR濾波器設(shè)計(jì)方法。下面以標(biāo)準(zhǔn)頻率響應(yīng)設(shè)計(jì)法fir1和任意頻率響應(yīng)設(shè)計(jì)法fir2為例說(shuō)明其使用方法。2023/3/2919第6章應(yīng)用程序設(shè)計(jì)6.1.3

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

fir1函數(shù)

語(yǔ)法:

b=fir1(n,Wn)

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

b=fir1(n,Wn,Window)

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

n:濾波器的階數(shù);Wn:濾波器的截止頻率;ftype:用來(lái)決定濾波器的類(lèi)型,當(dāng)ftype=high時(shí),可設(shè)計(jì)高通濾波器;當(dāng)ftype=stop時(shí),可設(shè)計(jì)帶阻濾波器。Window:用來(lái)指定濾波器采用的窗函數(shù)類(lèi)型,其默認(rèn)值為漢明(Hamming)窗。2023/3/2920第6章應(yīng)用程序設(shè)計(jì)使用fir1函數(shù)可設(shè)計(jì)標(biāo)準(zhǔn)的低通、高通、帶通和帶阻濾波器。1.

fir1函數(shù)

(1)

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

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

Wn

1,Wn=1相當(dāng)于0.5fs。

格式:

b=fir1(n,Wn)

2023/3/2921第6章應(yīng)用程序設(shè)計(jì)使用fir1函數(shù)可設(shè)計(jì)標(biāo)準(zhǔn)的低通、高通、帶通和帶阻濾波器。1.

fir1函數(shù)

(2)

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

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

b=fir1(n,Wn,‘high’)2023/3/2922第6章應(yīng)用程序設(shè)計(jì)使用fir1函數(shù)可設(shè)計(jì)標(biāo)準(zhǔn)的低通、高通、帶通和帶阻濾波器。1.

fir1函數(shù)

(3)

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

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

格式:

b=fir1(n,[W1W2])2023/3/2923第6章應(yīng)用程序設(shè)計(jì)使用fir1函數(shù)可設(shè)計(jì)標(biāo)準(zhǔn)的低通、高通、帶通和帶阻濾波器。1.

fir1函數(shù)

(4)

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

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

格式:

b=fir1(n,[W1W2],‘stop’)2023/3/2924第6章應(yīng)用程序設(shè)計(jì)1.

fir1函數(shù)

(5)

采用其他窗口函數(shù)設(shè)計(jì)FIR濾波器使用Window參數(shù),可以用其他窗口函數(shù)設(shè)計(jì)出各種加窗濾波器。Window參數(shù)可采用的窗口函數(shù)有:Boxcar,Hanning,Bartlett,Blackman,Kasier和chebwin等,其默認(rèn)時(shí)為Hamming窗。例如,采用Bartlett窗設(shè)計(jì)帶阻濾波器,其格式:

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

2023/3/2925第6章應(yīng)用程序設(shè)計(jì)1.

fir1函數(shù)

注意:用fir1函數(shù)設(shè)計(jì)高通和帶阻濾波器時(shí),所使用的階數(shù)n應(yīng)為偶數(shù),當(dāng)輸入的階數(shù)n為奇數(shù)時(shí),fir1函數(shù)會(huì)自動(dòng)將階數(shù)增加1形成偶數(shù)?!纠坎捎肏amming窗設(shè)計(jì)一個(gè)48階FIR帶通濾波器,通帶為0.35<w<0.65。

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

b=fir1(48,[0.350.65

]);

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

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

Window=chebwin(35,30);

b=fir1(34,0.48,‘high’,Window);2023/3/2926第6章應(yīng)用程序設(shè)計(jì)6.1.3

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

fir2函數(shù)

語(yǔ)法:

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)

2023/3/2927第6章應(yīng)用程序設(shè)計(jì)2.

fir2函數(shù)

說(shuō)明:參數(shù)n為濾波器的階數(shù);參數(shù)f為頻率點(diǎn)矢量,且f[0,1],f=1對(duì)應(yīng)于0.5fs。矢量f按升序排列,且第一個(gè)元素必須為0,最后一個(gè)必須為1,并可以包含重復(fù)的頻率點(diǎn);參數(shù)m為幅度點(diǎn)矢量,在矢量m中包含了與f相對(duì)應(yīng)的期望得到的濾波器幅度;參數(shù)Window用來(lái)指定所使用的窗函數(shù)類(lèi)型,其默認(rèn)值為漢明(Hamming)窗;參數(shù)npt用來(lái)指定fir2函數(shù)對(duì)頻率響應(yīng)進(jìn)行內(nèi)插的點(diǎn)數(shù);參數(shù)lap用來(lái)指定fir2函數(shù)在重復(fù)頻率點(diǎn)附近插入的區(qū)域大小。

2023/3/2928第6章應(yīng)用程序設(shè)計(jì)2.

fir2函數(shù)

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

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

f=[00.60.61];m=[1100];b=fir2(30,f,m);在使用MATLAB設(shè)計(jì)FIR濾波器時(shí),還可以使用freqz()和plot()函數(shù)。freqz()函數(shù):可求出傳遞函數(shù)的幅頻響應(yīng)和相頻響應(yīng);plot()函數(shù):可繪出濾波器的幅頻響應(yīng)和相頻響應(yīng)曲線。

2023/3/2929第6章應(yīng)用程序設(shè)計(jì)2.

fir2函數(shù)

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

freqz(b,1,512)得濾波器的特性如圖。

2023/3/2930第6章應(yīng)用程序設(shè)計(jì)2.

fir2函數(shù)

例6.1.1帶通濾波器的特性2023/3/2931第6章應(yīng)用程序設(shè)計(jì)2.

fir2函數(shù)

例6.1.2高通濾波器的特性2023/3/2932第6章應(yīng)用程序設(shè)計(jì)2.

fir2函數(shù)

例6.1.3低通濾波器的特性2023/3/2933第6章應(yīng)用程序設(shè)計(jì)6.1FIR濾波器的DSP實(shí)現(xiàn)6.1.4

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

FIR濾波器的輸出表達(dá)式:

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

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

()

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

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

2023/3/2934第6章應(yīng)用程序設(shè)計(jì)6.1.4

FIR濾波器的DSP實(shí)現(xiàn)1.

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

常用的方法:

線性緩沖區(qū)法

循環(huán)緩沖區(qū)法。(1)

線性緩沖區(qū)法又稱(chēng)延遲線法。

特點(diǎn):

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

②從最老樣本開(kāi)始取數(shù),每取一個(gè)數(shù)后,樣本向下移位;③讀完最后一個(gè)樣本后,輸入最新樣本并存入緩沖區(qū)的頂部。2023/3/2935第6章應(yīng)用程序設(shè)計(jì)1.

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

(1)

線性緩沖區(qū)法

緩沖區(qū):數(shù)據(jù)存儲(chǔ)器

頂部為低地址單元,存放最新樣本;緩沖區(qū)頂部最新樣本

底部為高地址單元,存放最老樣本;緩沖區(qū)底部最老樣本

指針ARx指向緩沖區(qū)底部。

←ARx2023/3/2936第6章應(yīng)用程序設(shè)計(jì)(1)

線性緩沖區(qū)法最新樣本數(shù)據(jù)存儲(chǔ)器最老樣本ARx→求y(n)的過(guò)程:算法:x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)x(n-7)取數(shù)、移位和運(yùn)算:①以ARx為指針,按x(n-7)……x(n)的順序取數(shù),每取一次數(shù)后,數(shù)據(jù)向下移一位,并完成一次乘法累加運(yùn)算;②當(dāng)經(jīng)過(guò)8次取數(shù)、移位和運(yùn)算后,得y(n);③求得y(n)后,輸入新樣本x(n+1),存入緩沖區(qū)頂部單元;④修改指針ARx,指向緩沖區(qū)的底部。2023/3/2937第6章應(yīng)用程序設(shè)計(jì)(1)

線性緩沖區(qū)法最新樣本數(shù)據(jù)存儲(chǔ)器最老樣本ARx→求y(n)的過(guò)程:算法:x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)x(n-7)ARx→x(n-7)↑ARx→x(n-6)y(n)=y7=b7x(n-7)+0x(n-6)↑ARx→x(n-5)y(n)=y6=b6x(n-6)+y7x(n-5)↑ARx→x(n-4)y(n)=y5=b5x(n-5)+y6x(n-4)↑ARx→x(n-3)y(n)=y4=b4x(n-4)+y5x(n-3)↑ARx→x(n-2)y(n)=y3=b3x(n-3)+y4x(n-2)↑ARx→x(n-1)y(n)=y2=b2x(n-2)+y3x(n-1)↑ARx→x(n)y(n)=y1=b1x(n-1)+y2x(n)y(n)=b0x(n)+y1←PORTRx(n+1)ARx→結(jié)果:①y(n)2023/3/2938第6章應(yīng)用程序設(shè)計(jì)(1)

線性緩沖區(qū)法求y(n+1)的過(guò)程:算法:數(shù)據(jù)存儲(chǔ)器ARx→x(n+1)x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)結(jié)果:①y(n)取數(shù)順序:

x(n-6)……x(n+1)x(n-5)x(n-4)x(n-3)x(n-2)x(n-1)x(n)x(n+1)最新樣本:

x(n+2)

x(n+2)②y(n+1)③y(n+2)④y(n+3)⑤y(n+4)⑥y(n+5)⑦y(n+6)⑧

y(n+7)數(shù)據(jù)存儲(chǔ)器x(n+8)x(n+7)x(n+6)x(n+5)x(n+4)x(n+3)x(n+2)x(n+1)ARx→2023/3/2939第6章應(yīng)用程序設(shè)計(jì)(1)

線性緩沖區(qū)法

Z-1的運(yùn)算是通過(guò)執(zhí)行存儲(chǔ)器延時(shí)指令來(lái)實(shí)現(xiàn)的。即將數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)向較高地址單元移位來(lái)進(jìn)行延時(shí)。

其指令:DELAYSmem;(Smem)

Smem+1DELAY*AR3-

;AR3指向源地址

將延時(shí)指令與其他指令結(jié)合使用,可在同樣的機(jī)器周期內(nèi)完成這些操作。例如:

LD+DELAY→LTDMAC+DELAY→MACD

2023/3/2940第6章應(yīng)用程序設(shè)計(jì)(1)

線性緩沖區(qū)法注意:用線性緩沖區(qū)實(shí)現(xiàn)z-1運(yùn)算時(shí),緩沖區(qū)的數(shù)據(jù)需要移動(dòng),這樣在一個(gè)機(jī)器周期內(nèi)需要一次讀和一次寫(xiě)操作。因此,線性緩沖區(qū)只能定位在DARAM中。

優(yōu)點(diǎn):

在存儲(chǔ)器中新老數(shù)據(jù)的位置直觀明了。

2023/3/2941第6章應(yīng)用程序設(shè)計(jì)1.

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

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

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

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

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

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

2023/3/2942第6章應(yīng)用程序設(shè)計(jì)(2)循環(huán)緩沖區(qū)法緩沖區(qū):數(shù)據(jù)存儲(chǔ)器頂層為低地址單元,存放最新樣本;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→算

法:計(jì)算過(guò)程:①以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次乘法累加計(jì)算;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)+y62023/3/2943第6章應(yīng)用程序設(shè)計(jì)(2)循環(huán)緩沖區(qū)法數(shù)據(jù)存儲(chǔ)器x(n)x(n-7)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)算

法:計(jì)算過(guò)程:②每取1次數(shù)后,完成1次乘法累加計(jì)算;③求得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ù)存儲(chǔ)器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ù)存儲(chǔ)器x(n)x(n+1)x(n-1)x(n-2)x(n-3)x(n-4)x(n+3)x(n+2)ARx→2023/3/2944第6章應(yīng)用程序設(shè)計(jì)(2)循環(huán)緩沖區(qū)法循環(huán)緩沖區(qū)的優(yōu)點(diǎn):

①緩沖區(qū)數(shù)據(jù)不需要移動(dòng);

②可以使用SARAM存儲(chǔ)器。

實(shí)現(xiàn)N個(gè)循環(huán)緩沖區(qū)單元首尾相鄰,可用BK寄存器按模間接尋址來(lái)實(shí)現(xiàn)。常用指令:…*ARx+%;增量、按模修正ARxaddr=ARx,ARx=circ(ARx+1)…*ARx-%;減量、按模修正ARxaddr=ARx,ARx=circ(ARx-1)…*ARx+0%;增AR0、按模修正ARxaddr=ARx,ARx=circ(ARx+AR0)…*ARx-0%;減AR0、按模修正ARxaddr=ARx,ARx=circ(ARx-AR0)…*+ARx(1K)%;加(1K)、按模修正ARxaddr=circ(ARx+1K),ARx=circ(ARx+1K)2023/3/2945第6章應(yīng)用程序設(shè)計(jì)(2)循環(huán)緩沖區(qū)法

circ是根據(jù)BK寄存器中的緩沖區(qū)長(zhǎng)度,對(duì)(ARx+1)、(ARx-1)、(ARx+AR0)、(ARx-AR0)和(ARx+1k)的值進(jìn)行取模,使指針ARx指向緩沖區(qū),實(shí)現(xiàn)循環(huán)緩沖區(qū)首尾相鄰。例如:(BK)=N=8,(AR1)=0060h,用*AR1+%間接尋址。第一次尋址后,AR1指向0061h單元;第二次尋址后,AR1指向0062h單元;…………第八次尋址后,AR1指向0068h單元;將BK按8取模,AR1回到0060h單元。2023/3/2946第6章應(yīng)用程序設(shè)計(jì)(2)循環(huán)緩沖區(qū)法循環(huán)尋址的算法:

if0≤index+step<BKindex=index+stepelseifindex+step≥BKindex=index+step-BKelseifindex+step<0index=index+step+BK

index:存放在輔助寄存器中的地址指針;step:步長(zhǎng),可正可負(fù),|step|≤BK。2023/3/2947第6章應(yīng)用程序設(shè)計(jì)(2)循環(huán)緩沖區(qū)法①

用BK規(guī)定循環(huán)緩沖區(qū)的長(zhǎng)度N;②

緩沖區(qū)起始地址的k個(gè)最低有效位必須為0,且滿足2k>N。要求:例如:N=31,k的最小值為5,則緩沖區(qū)的起始地址:XXXXXXXXXXX00000B

若N=32,k的最小值為6,緩沖區(qū)的起始地址:XXXXXXXXXX000000B2023/3/2948第6章應(yīng)用程序設(shè)計(jì)6.1.4

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

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

’C54x提供的乘法-累加指令MAC和循環(huán)尋址方式,可使FIR數(shù)字濾波器在單周期內(nèi)完成每個(gè)樣值的乘法-累加計(jì)算。而每個(gè)樣值的乘法-累加計(jì)算,可采用RPTZ和MAC指令結(jié)合循環(huán)尋址方式來(lái)實(shí)現(xiàn)。2023/3/2949第6章應(yīng)用程序設(shè)計(jì)2.

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

用線性緩沖區(qū)實(shí)現(xiàn)FIR濾波器

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

y(n)=b0x(n)+b1x(n-1)+…+b5x(n-5)+b6x(n-6)數(shù)據(jù)存儲(chǔ)器暫存y(n)x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)程序存儲(chǔ)器b6b5b4b3b2b1b0xb雙操作數(shù)尋址指令:MACD*AR2-,b,A功能:A=A+(AR2)×(pmad),AR2-1→AR2,(AR2)→(AR2+1)AAR1→x(n-6)b6x(n-6)b6×x(n-6)+Ab6×x(n-6)+AAR1→x(n-5)2023/3/2950第6章應(yīng)用程序設(shè)計(jì)(1)

用線性緩沖區(qū)實(shí)現(xiàn)FIR濾波器

程序清單:

.title“FIR1.ASM”.mmregs.defstartx.usect“x”,8PA0.set0PA1.set1.dataCOEF:.word1*32768/10.word2*32768/10.word-4*32768/10.word3*32768/10.word-4*32768/10.word2*32768/10.word1*32768/10

;自定義數(shù)據(jù)空間x數(shù)據(jù)存儲(chǔ)器暫存y(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)

定義系數(shù)bi程序存儲(chǔ)器

COEFb6

;定義b6=0.1

;定義b5=0.2

;定義b4=-0.4

;定義b3=0.3

;定義b2=-0.4

;定義b1=0.2

;定義b0=0.1b5b4b3b2b1b0x(n)2023/3/2951第6章應(yīng)用程序設(shè)計(jì)(1)

用線性緩沖區(qū)實(shí)現(xiàn)FIR濾波器

x數(shù)據(jù)存儲(chǔ)器暫存y(n)x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)程序存儲(chǔ)器

COEFb6b5b4b3b2b1b0程序清單:.textstart:SSBXFRCTSTM#x+7,AR2STM#6,AR0LD#x+1,DPPORTRPA1,@x+1FIR1:RPTZA,#6MACD*AR2-,COEF,ASTHA,*AR2PORTW*AR2+,PA0BDFIR1PORTRPA1,*AR2+0.endA;設(shè)置小數(shù)乘法

;設(shè)置AR2

AR2→;設(shè)置復(fù)位值A(chǔ)R0=6

;設(shè)置緩沖區(qū)首地址

→;輸入x(n)

x(n);A清0,設(shè)置迭代次數(shù)

0000000000;7次乘法累加和移位

b6×x(n-6)AR2→x(n-5)A+b5×x(n-5)AR2→x(n-4)A+b4×x(n-4)AR2→x(n-3)A+b3×x(n-3)AR2→x(n-2)A+b2×x(n-2)AR2→x(n-1)A+b1×x(n-1)x(n)A+b0×x(n)AR2→AR2→y(n-1);暫存y(n)y(n);輸出y(n),修改AR2

AR2→;循環(huán);輸入最新數(shù)據(jù),修改AR2=AR2+AR0

x(n+1)AR2→2023/3/2952第6章應(yīng)用程序設(shè)計(jì)2.

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

用循環(huán)緩沖區(qū)實(shí)現(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)DARAMb0b1b2b3b4b5b6yb0xn2023/3/2953第6章應(yīng)用程序設(shè)計(jì)(2)

用循環(huán)緩沖區(qū)實(shí)現(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寄存器符號(hào)名

;定義模塊

;給y保留1個(gè)空間

y;給xn段保留7個(gè)空間

xn;給b0段保留7個(gè)空間

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.72023/3/2954第6章應(yīng)用程序設(shè)計(jì).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ū)長(zhǎng)度

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

;設(shè)置頁(yè)指針

;輸入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→;存儲(chǔ)y(n)y(n);輸出y(n);循環(huán);輸入最新x(n+1),修正AR2x(n+1)AR2→2023/3/2955第6章應(yīng)用程序設(shè)計(jì)鏈接命令文件:

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)文件

;生成FIR2的輸出文件

;生成FIR2的存儲(chǔ)器映像文件

;定義源程序的入口地址

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

;第0頁(yè):程序存儲(chǔ)器

;EPROM的起始地址:E000h

長(zhǎng)度:4K

;VECS的起始地址:FF80h

長(zhǎng)度:0080h

;第1頁(yè):數(shù)據(jù)存儲(chǔ)器

;SPRAM的起始地址:0060h

長(zhǎng)度:0020h

;DARAM的起始地址:0080h

長(zhǎng)度:1380h

存儲(chǔ)空間ROMRAMEPROM…………EPROM…0E0004k0EFFFVECS……VECS0FF8080h0FFEFSPRAM………SPRAM006020h007FDARAM………DARAM……00801380h13EF2023/3/2956第6章應(yīng)用程序設(shè)計(jì)鏈接命令文件:

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

;bss段定義在暫存器

;從xn起8個(gè)單元定義在DARAM;從b0起8個(gè)單元定義在DARAM;vections定義在VECS區(qū)2023/3/2957第6章應(yīng)用程序設(shè)計(jì)2.

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

系數(shù)對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)

系數(shù)對(duì)稱(chēng)FIR濾波器具有線性相位的特性,在數(shù)字信號(hào)處理中應(yīng)用十分廣泛,常用于相位失真要求較高的場(chǎng)合。

設(shè)濾波器N=8,若系數(shù)bn=bN-1-n,則為對(duì)稱(chēng)FIR濾波器。其輸出方程:

y(n)=b0x(n)+b1x(n-1)+b2x(n-2)+b3x(n-3)+b3x(n-4)+b2x(n-5)+b1x(n-6)+b0x(n-7)

=b0[x(n)+x(n-7)]+b1[

x(n-1)+x(n-6)]+b2[

x(n-2)+x(n-5)]+b3[

x(n-3)+x(n-4)]需要:4次乘法7次加法2023/3/2958第6章應(yīng)用程序設(shè)計(jì)(3)

系數(shù)對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)

對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)方法:

①在RAM中開(kāi)辟兩個(gè)N/2長(zhǎng)度的循環(huán)緩沖區(qū)New和Old

,分別存放N/2個(gè)新數(shù)據(jù)和老數(shù)據(jù);

NewOldx(n)x(n-3)x(n-2)x(n-1)x(n-4)x(n-5)x(n-6)x(n-7)②設(shè)置循環(huán)緩沖區(qū)指針:AR1指向New區(qū)中的最新數(shù)據(jù),

AR2指向Old區(qū)中的最老數(shù)據(jù);

AR1→AR2→③在程序存儲(chǔ)器中設(shè)置系數(shù)表;

系數(shù)表b0b1b2b3COEF④進(jìn)行(AR1)+(AR2)AH加法運(yùn)算,并修改數(shù)據(jù)指針,AR1+1AR1,AR2-1AR2;

AHx(n)x(n)x(n-7)x(n-7)x(n)+x(n-7)x(n)+x(n-7)AR1→AR2→2023/3/2959第6章應(yīng)用程序設(shè)計(jì)(3)

系數(shù)對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)

對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)方法:

系數(shù)表b0b1b2b3COEFNewx(n)x(n-3)x(n-2)x(n-1)x(n)AR1→Oldx(n-4)x(n-5)x(n-6)x(n-7)x(n-7)AR2→x(n)+x(n-7)AH⑤累加器B清0,完成塊操作,重復(fù)執(zhí)行4次;0000000000B乘法—累加:(AH)bi+BB;PAR→b0x(n)+x(n-7)0000000000b0[x(n)+x(n-7)]+0b0[x(n)+x(n-7)]修改系數(shù)指針:PAR+1PAR;

PAR→加法運(yùn)算:(AR1)+(AR2)AH;x(n-3)x(n-6)x(n-3)+x(n-6)x(n-3)+x(n-6)修改數(shù)據(jù)指針:AR1+1AR1,

AR2-1AR2;

AR1→AR2→b1x(n-3)+x(n-6)b0[x(n)+x(n-7)]b1[x(n-3)+x(n-6)]+Bb1[x(n-3)+x(n-6)]+BPAR→x(n-2)x(n-5)x(n-2)+x(n-5)x(n-2)+x(n-5)AR1→AR2→b2x(n-2)+x(n-5)b1[x(n-3)+x(n-6)]+Bb2[x(n-2)+x(n-5)]+Bb2[x(n-2)+x(n-5)]+BPAR→x(n-1)x(n-4)x(n-1)+x(n-4)x(n-1)+x(n-4)AR1→AR2→b3x(n-1)+x(n-4)b2[x(n-2)+x(n-5)]+Bb3[x(n-1)+x(n-4)]+Bb3[x(n-1)+x(n-4)]+BPAR→x(n)+x(n-7)x(n)+x(n-7)AR1→AR2→⑥保存和輸出結(jié)果;2023/3/2960第6章應(yīng)用程序設(shè)計(jì)(3)

系數(shù)對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)

對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)方法:

x(n)+x(n-7)AHBa3[x(n-1)+x(n-4)]+BAR2→Oldx(n-7)x(n-6)x(n-5)x(n-4)PAR→系數(shù)表b0b1b2b3Newx(n)x(n-3)x(n-2)x(n-1)AR1→⑦修正數(shù)據(jù)指針,

AR1指向New區(qū)的最老數(shù)據(jù);

AR2指向Old區(qū)的最老數(shù)據(jù)。AR2→⑧用New區(qū)的最老數(shù)據(jù)替代Old區(qū)的最老數(shù)據(jù),輸入新數(shù)據(jù)替代New區(qū)的最老數(shù)據(jù);x(n-3)x(n+1)⑨重復(fù)執(zhí)行④~⑧。

2023/3/2961第6章應(yīng)用程序設(shè)計(jì)(3)

系數(shù)對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)

系數(shù)對(duì)稱(chēng)FIR濾波器指令:

格式:FIRSXmem,Ymem,Pmad

功能:PmadPAR;

當(dāng)(RC)0,則B+AH(Pmem)B,

((Xmem)+(Ymem))16A,

PAR+1PAR,RC-1RC其中,Pmem是通過(guò)PAR尋址。2023/3/2962第6章應(yīng)用程序設(shè)計(jì)(3)

系數(shù)對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)

程序清單:

.title“FIR3.ASM”.mmregs.defstart.bssy,1x_new:.usect“DATA1”,4x_old:.usect“DATA2”,4size.set4PA0.set0PA1.set1.dataCOEF:.word1*32768/10.word2*32768/10.word3*32768/10

.word4*32768/10

;定義MMR寄存器符號(hào)名

;定義模塊

;給y保留1個(gè)空間

;給DATA1段保留4個(gè)空間

;給DATA2段保留4個(gè)空間

;給符號(hào)size賦值

;給輸出口地址PA0賦值

;給輸入口地址PA1賦值

;在ROM中定義數(shù)據(jù)段

;定義數(shù)據(jù)0.1

;定義數(shù)據(jù)0.2

;定義數(shù)據(jù)0.3

;定義數(shù)據(jù)0.4

y(n)數(shù)據(jù)存儲(chǔ)器…x(n)x(n-3)x(n-2)x(n-1)…x(n-4)x(n-5)x(n-6)x(n-7)…ySPRAMx_newDATA1x_oldDATA2程序存儲(chǔ)器b0b1b2b3COEF系數(shù)表2023/3/2963第6章應(yīng)用程序設(shè)計(jì)(3)

系數(shù)對(duì)稱(chēng)FIR濾波器的實(shí)現(xiàn)

程序清單:.textstart:LD#x_new,DPSSBXFRCTSTM#x_new,AR1STM#x_old+(size-1),AR2STM#size,BKSTM#-1,AR0PORTRPA1,#x_new

;設(shè)置頁(yè)指針

;設(shè)置小數(shù)乘法

;AR1指向x_new單元

;AR2指向x_old+3單元

;設(shè)置循環(huán)緩沖區(qū)長(zhǎng)度

;設(shè)置雙操作數(shù)增量AR0=-1

;輸入數(shù)據(jù)x(n)2023/3/2964第6章應(yīng)用程序設(shè)計(jì)程序清單:FIR3:ADD*AR1+%,*AR2+0%,ARPTZB,#(size-1)FIRS*AR1+%,*AR2+0%,COEFSTHB,@yPORTW@y,PA0MAR*+AR1(2)%MAR*AR2+%MVDD*AR1,*AR2+0%BDFIR3PORTRPA1,*AR1.end

;完成AH=x(n)+x(n-7)

;B清0,設(shè)置重復(fù)次數(shù)

;乘法累加、加法操作

B

=

AH×bi

+

B

AH=(AR1)+(AR2)

;保存y(n)結(jié)果

;輸出結(jié)果

;修正AR1,指向New區(qū)最老數(shù)據(jù)

;修正AR2,指向Old區(qū)最老數(shù)據(jù)

;New區(qū)向Old區(qū)傳送數(shù)據(jù)

;循環(huán)

;輸入最新數(shù)據(jù)至New區(qū)2023/3/2965第6章應(yīng)用程序設(shè)計(jì)6.1FIR濾波器的DSP實(shí)現(xiàn)6.1.5

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

ws=0.4。

2023/3/2966第6章應(yīng)用程序設(shè)計(jì)6.1.5

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

f=[00.350.41];

m=[1100];

b=fir2(39,f,m)

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

freqz(b,512,1000)

2023/3/2967第6章應(yīng)用程序設(shè)計(jì)濾波器的頻率特性:1.由給定的設(shè)計(jì)參數(shù)確定濾波器的系數(shù)2023/3/2968第6章應(yīng)用程序設(shè)計(jì)采用循環(huán)緩沖區(qū)實(shí)現(xiàn)FIR濾波器的源程序如下:

2.匯編源程序

.title“FIR.ASM”.mmregs.bssy,1K_FIR_BFFR.set40PA0.set0PA1.set1FIR_COFF_TABLE.usect“FIR_COFF”,40;定義數(shù)據(jù)存儲(chǔ)空間D_DATA_BUFFER.usect“FIR_BFR”,40;定義數(shù)據(jù)存儲(chǔ)空間.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;b38b392023/3/2969第6章應(yīng)用程序設(shè)計(jì)

.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),AR52023/3/2970第6章應(yīng)用程序設(shè)計(jì)STM#-1,AR0;設(shè)置雙操作數(shù)減量

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

PORTRPA1,@D_DATA_BUFFER;輸入x(n)FIR_TASK:STM#K_FIR_BFFR,BKRPTZA,#K_FIR_BFFR-1;重復(fù)操作

MAC*AR4+0%,*AR5+0%,A;雙操作數(shù)乘法-累加

STHA,@y;暫存y(n)PORTW@y,PA0;輸出y(n)BDFIR_TASK;循環(huán)PORTRPA1,*AR4+0%;輸入最新樣本,并修正AR3.end2023/3/2971第6章應(yīng)用程序設(shè)計(jì)

在’C5402DSP硬件系統(tǒng)中,用戶可使用的存儲(chǔ)器資源:3.匯編源程序的鏈接命令文件

程序存儲(chǔ)空間:片內(nèi)0080H~3FFFH,片外48000H~4FFFFH;數(shù)據(jù)存儲(chǔ)空間:片內(nèi)0080H~3FFFH,片外4000H~7FFFH。2023/3/2972第6章應(yīng)用程序設(shè)計(jì)FIR濾波器源程序的鏈接命令文件如下:

/*SOLUTIONFILEFORFIR.CMD*/vectors.objfir.obj-ofir.out-mfir.map-efir_initMEMORY{PAGE0:EPROM:org=0E000Hlen=1000HVECS:org=0FF80Hlen=0080HPAGE1:SPRAM:org=0060Hlen=0020HDARAM:org=0080Hlen=1380H}2023/3/2973第6章應(yīng)用程序設(shè)計(jì)FIR濾波器源程序的鏈接命令文件如下:

SECTIONS{.text:>EPROMPAGE0.vectors:>VECSPAGE0.data:>EPRAMPAGE0.bss:>SPRAMPAGE1FIR_BFR:align(128){}>DARAMPAGE1FIR_COFF:align(128){}>DARAMPAGE1}2023/3/2974第6章應(yīng)用程序設(shè)計(jì)6.2IIR濾波器的DSP實(shí)現(xiàn)

IIR濾波器與FIR濾波器相比,具有相位特性差的缺點(diǎn),但它的結(jié)構(gòu)簡(jiǎn)單、運(yùn)算量小,具有經(jīng)濟(jì)、高效的特點(diǎn),并且可以用較少的階數(shù)獲得很高的選擇性。因此,也得到了較為廣泛的應(yīng)用。

6.2.1

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

IIR濾波器差分方程的一般表達(dá)式:(6.2.1)

在零初始條件下,對(duì)式(6.2.1)進(jìn)行z變換,得到傳遞函數(shù):

具有N個(gè)零點(diǎn)zi和N個(gè)極點(diǎn)pi。若有極點(diǎn)位于單位圓外將導(dǎo)致系統(tǒng)不穩(wěn)定。

2023/3/2975第6章應(yīng)用程序設(shè)計(jì)對(duì)于IIR濾波器,系統(tǒng)穩(wěn)定的條件如下:若|pi|<1,當(dāng)n→時(shí),h(n)→0,系統(tǒng)穩(wěn)定;若|pi|>1,當(dāng)n→時(shí),h(n)→,系統(tǒng)不穩(wěn)定。

6.2.1

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

IIR濾波器具有多種形式,主要有:

直接型(也稱(chēng)直接Ⅰ型

標(biāo)準(zhǔn)型(也稱(chēng)直接Ⅱ型)

變換型

級(jí)聯(lián)型

并聯(lián)型2023/3/2976第6章應(yīng)用程序設(shè)計(jì)6.2.1

IIR濾波器的基本結(jié)構(gòu)二階IIR濾波器,又稱(chēng)為二階基本節(jié),分為直接型、標(biāo)準(zhǔn)型和變換型。1.二階IIR濾波器

對(duì)于一個(gè)二階IIR濾波器,其輸出:

y(n)=b0x(n)+b1x(n-1)+b2x(n-2)-a1y(n-1)-a2y(n-2)

(6.2.6)

2023/3/2977第6章應(yīng)用程序設(shè)計(jì)(1)直接型(直接Ⅰ型)1.二階IIR濾波器

根據(jù)式(6.2.6),可以得到直接型二階IIR濾波器的結(jié)構(gòu)圖。4個(gè)延遲單元(z-1)b0b1b2z-1-a1-a2x(n)y(n)+++z-1z-1z-1+2023/3/2978第6章應(yīng)用程序設(shè)計(jì)(1)直接型(直接Ⅰ型)直接型二階IIR濾波器還可用下圖的結(jié)構(gòu)實(shí)現(xiàn)。+b0b1b2-a1-a2x(n)y(n)w(n)+++z-1z-1z-1z-12023/3/2979第6章應(yīng)用程序設(shè)計(jì)(1)直接型(直接Ⅰ型)前向通道:+z-1z-1b0b1b2z-1z-1-a1-a2x(n)y(n)w(n)+++反饋通道:輸出方程:2023/3/2980第6章應(yīng)用程序設(shè)計(jì)(2)

標(biāo)準(zhǔn)型(直接Ⅱ型)1.二階IIR濾波器

這種結(jié)構(gòu)所使用的延遲單元最少(只有2個(gè)),因此得到了廣泛地應(yīng)用,故稱(chēng)之為標(biāo)準(zhǔn)型IIR濾波器。z-1z-1b0b1b2-a1-a2x(n)y(n)w(n)++++2023/3/2981第6章應(yīng)用程序設(shè)計(jì)(3)

變換型1.二階IIR濾波器

這種結(jié)構(gòu)與標(biāo)準(zhǔn)型相比,延遲單元的數(shù)目和乘法的次數(shù)不變,但只需要三次累加。z-1b0b1b2-a1-a2x(n)y(n)z-1+++2023/3/2982第6章應(yīng)用程序設(shè)計(jì)6.2.1

IIR濾波器的基本結(jié)構(gòu)一個(gè)高階IIR濾波器,可以由多個(gè)二階基本節(jié)級(jí)聯(lián)組成。其傳遞函數(shù)可以表示為:2.級(jí)聯(lián)型IIR濾波器

H(z)=CH1(z)H2(z)…Hk(z)(6.2.10)

Hi(z)為一階或二節(jié)階的傳遞函數(shù)。級(jí)聯(lián)型濾波器的結(jié)構(gòu):

x(n)y(n)···Hk(z)H2(z)H1(z)2023/3/2983第6章應(yīng)用程序設(shè)計(jì)2.級(jí)聯(lián)型IIR濾波器由三個(gè)標(biāo)準(zhǔn)二階節(jié)級(jí)聯(lián)構(gòu)成的六階IIR濾波器:+Z-1+++++Z-1Z-1Z-1Z-1Z-1x(n)b0b1b2a2a1d0d1d2c2c1f0f1f2e1e2y(n)由三個(gè)二階節(jié)級(jí)聯(lián)的六階IIR濾波器2023/3/2984第6章應(yīng)用程序設(shè)計(jì)6.2.1

IIR濾波器的基本結(jié)構(gòu)高階IIR濾波器可以由多個(gè)二階基本節(jié)并聯(lián)組成。其傳遞函數(shù):3.并聯(lián)型IIR濾波器

H(z)=C+H1(z)+H2(z)+…+Hk(z)2023/3/2985第6章應(yīng)用程序設(shè)計(jì)3.并聯(lián)型IIR濾波器并聯(lián)型濾波器的結(jié)構(gòu):

x(n)y(n)H1(z)H2(z)Hk(z)C...++2023/3/2986第6章應(yīng)用程序設(shè)計(jì)6.2IIR濾波器的DSP實(shí)現(xiàn)

IIR濾波器的設(shè)計(jì)可利用模擬濾波器原型來(lái)實(shí)現(xiàn)。6.2.2

IIR濾波器的設(shè)計(jì)①

根據(jù)模擬設(shè)計(jì)理論設(shè)計(jì)出滿足要求的傳遞函數(shù)H(s);②

將H(s)變換成數(shù)字濾波器的傳遞函數(shù)H(z)。設(shè)計(jì)方法:2023/3/2987第6章應(yīng)用程序設(shè)計(jì)1.

模擬濾波器的原型6.2.2

IIR濾波器的設(shè)計(jì)①

巴特沃思濾波器,其幅度響應(yīng)在通帶內(nèi)具有最平特性;②

切比雪夫?yàn)V波器,在通帶內(nèi)具有等波紋特性,且階數(shù)小于巴特沃思濾波器;③

橢圓濾波器,在通帶和阻帶內(nèi)具有等波紋特性,且階數(shù)最小。設(shè)計(jì)IIR濾波器的基礎(chǔ)是設(shè)計(jì)模擬濾波器的原型,這些原型濾波器主要有:2023/3/29

溫馨提示

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

評(píng)論

0/150

提交評(píng)論