版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第6章
應(yīng)用程序設(shè)計內(nèi)容提要
數(shù)字信號處理主要面向密集型的運算,包括乘法-累加、數(shù)字濾波和快速傅里葉變換等?!疌54x具備了高速完成上述運算的能力,并具有體積小、功耗低、功能強、軟硬件資源豐富等優(yōu)點,現(xiàn)已在通信等許多領(lǐng)域得到了廣泛應(yīng)用。
本章結(jié)合數(shù)字信號處理和通信中最常見、最具有代表性的應(yīng)用,介紹通用數(shù)字信號處理算法的DSP實現(xiàn)方法,主要包括:
有限沖激響應(yīng)(FIR)數(shù)字濾波器
無限沖激響應(yīng)(IIR)數(shù)字濾波器快速傅里葉變換(FFT)
正弦信號發(fā)生器。在簡要介紹上述內(nèi)容的基本原理、結(jié)構(gòu)和算法之后,重點介紹設(shè)計方法和DSP實現(xiàn)的方法。
2022/10/111DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計
6.1
FIR濾波器的DSP實現(xiàn)
6.2
IIR濾波器的DSP實現(xiàn)6.3快速傅里葉變換(FFT)的DSP實現(xiàn)6.4正弦波信號發(fā)生器2022/10/112DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計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)方法。
2022/10/113DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1FIR濾波器的DSP實現(xiàn)
6.1.1
FIR濾波器的基本結(jié)構(gòu)
數(shù)字濾波是將輸入的信號序列,按規(guī)定的算法進(jìn)行處理,從而得到所期望的輸出序列。
一個線性位移不變系統(tǒng)的輸出序列y(n)和輸入序列x(n)之間的關(guān)系,應(yīng)滿足常系數(shù)線性差分方程:(6.1.1)
x(n):輸入序列,y(n):
輸出序列,ai、bi:濾波器系數(shù),N:濾波器的階數(shù)。
2022/10/114DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1.1
FIR濾波器的基本結(jié)構(gòu)
在式(6.1.1)中,若所有的ai均為0,則得FIR濾波器的差分方程:
(6.1.2)
對式(6.1.2)進(jìn)行z變換,可得FIR濾波器的傳遞函數(shù):
(6.1.3)
2022/10/115DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計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-12022/10/116DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1.1
FIR濾波器的基本結(jié)構(gòu)
FIR濾波器的單位沖激響應(yīng)h(n)為有限長序列。
偶對稱線性相位FIR濾波器的差分方程:
N——偶數(shù)
(6.1.4)
若h(n)為實數(shù),且滿足偶對稱或奇對稱的條件,則FIR濾波器具有線性相位特性。
偶對稱:h(n)=h(N-1-n);
奇對稱:h(n)=-h(N-1-n)。2022/10/117DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1.1
FIR濾波器的基本結(jié)構(gòu)
在數(shù)字濾波器中,F(xiàn)IR濾波器具有如下幾個主要特點:
①
FIR濾波器無反饋回路,是一種無條件穩(wěn)定系統(tǒng);②
FIR濾波器可以設(shè)計成具有線性相位特性。2022/10/118DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1FIR濾波器的DSP實現(xiàn)
6.1.2
FIR濾波器的設(shè)計方法設(shè)計FIR濾波器的基本方法之一,是用有限項傅氏級數(shù)來逼近所要求的濾波器響應(yīng)。1.
用傅氏級數(shù)設(shè)計FIR濾波器
Hd()的傅氏級數(shù):
(6.1.5)
=f/fs為歸一化頻率,fs為采樣頻率,T=2f/fs
=2。2022/10/119DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1.2
FIR濾波器的設(shè)計方法系數(shù)Cn的選擇可在最小均方誤差的條件下,使傳遞函數(shù)H(z)逼近Hd()來決定。1.
用傅氏級數(shù)設(shè)計FIR濾波器
(6.1.6)
且C-n=Cn。
設(shè)Hd()為偶函數(shù),則
n
0(6.1.7)
2022/10/1110DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計理想的傳遞函數(shù)Hd()有無限多個系數(shù)Cn,而實際的濾波器的系數(shù)只能有有限多個。因此,可以將式(6.1.7)中的無限項級數(shù)進(jìn)行截取,得到近似的傳遞函數(shù):1.
用傅氏級數(shù)設(shè)計FIR濾波器
(6.1.8)
||<1,Q為有限的正整數(shù)。
(6.1.9)
令z=ej2,則有
2022/10/1111DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計近似傳遞函數(shù)的沖激響應(yīng)是由一系列的系數(shù)來決定:C-Q、C-Q+1、…、C-1、C0、…、CQ-1、CQ。1.
用傅氏級數(shù)設(shè)計FIR濾波器
(6.1.10)
為了解決這個問題,可引入Q個采樣周期的延時,得
當(dāng)n>0時,對應(yīng)的Cnzn項代表的是一個非因果的濾波器,即輸出先于輸入,要得到n時刻的輸出響應(yīng)需用到n+1時刻的輸出響應(yīng)。
2022/10/1112DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計令i=-(n-Q),作變量置換得1.
用傅氏級數(shù)設(shè)計FIR濾波器
0
i
2Q(6.1.11)
令bi=CQ-i,N-1=2Q,則H(z)的表達(dá)式為
0
i
N-1(6.1.12)
當(dāng)N-1=2Q時,b0=CQ、b1=CQ-1、b2=CQ-2、…、
bQ=C0、bQ+1=C1、…、
b2Q-1=C-Q+1、b2Q=C-Q。
當(dāng)N=2Q+1時,系數(shù)bi是關(guān)于bQ對稱的,即bi=CQ-i且Cn=C-n
2022/10/1113DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計例如,當(dāng)Q=5時,濾波器的11個系數(shù)如下:1.
用傅氏級數(shù)設(shè)計FIR濾波器
b0=b10=C5
b1=b9=C4
b2=b8=C3
b3=b7=C2
b4=b6=C1
b5=C0
根據(jù)卷積公式得
(6.1.13)
由上述公式可實現(xiàn)FIR濾波器,其響應(yīng)由N項構(gòu)成。
2022/10/1114DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1.2
FIR濾波器的設(shè)計方法
FIR濾波器分為低通濾波、高通濾波、帶通濾波和帶阻濾波,其設(shè)計可根據(jù)給出的濾波特性,通過下式計算系數(shù)Cn來實現(xiàn)。2.
濾波器的設(shè)計
n
0
2022/10/1115DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計
設(shè)低通濾波器的截止頻率為fc,采樣頻率為fs,則系數(shù)表達(dá)式:
2.
濾波器的設(shè)計
(6.1.14)
(1)
低通濾波器的設(shè)計
2022/10/1116DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計
高通濾波器可以由一個幅度為1的響應(yīng)減去一個低通濾波的響應(yīng)來獲得,如圖所示。
2.
濾波器的設(shè)計
(n)響應(yīng)
(2)
高通濾波器的設(shè)計
11fc1f00f0ffc(n)函數(shù)的表達(dá)式:
低通濾波
高通濾波
(n)=
1n=00
n
0高通濾波器的系數(shù):
2022/10/1117DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計帶通濾波器可以由兩個截止頻率不同的低通濾波器獲得,如圖所示。
2.
濾波器的設(shè)計
低通濾波2
(3)
帶通濾波器的設(shè)計
11fc11f00f0ffc1低通濾波1
帶通濾波
帶通濾波器的系數(shù),等于兩個低通濾波器的系數(shù)之差:
fc2fc2
fc1和fc2為低通濾波器的截止頻率,fs為采樣頻率。
2022/10/1118DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計帶阻濾波器可由(n)和帶通濾波器相減獲得,如圖所示。
2.
濾波器的設(shè)計
(n)響應(yīng)(4)
帶阻濾波器的設(shè)計
11fc11f00f0ffc1帶通濾波
帶阻濾波
帶阻濾波器的系數(shù):
fc2fc22022/10/1119DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1FIR濾波器的DSP實現(xiàn)
6.1.3
FIR濾波器的MATLAB設(shè)計
MATLAB是一種功能強、效率高、便于進(jìn)行科學(xué)和工程計算的交互式軟件包,它集數(shù)值分析、矩陣運算、信號處理和圖形顯示于一體,為用戶提供了方便、友好的界面環(huán)境。MATLAB中的工具箱(Toolbox)包含了許多實用程序。它提供了多種FIR濾波器設(shè)計方法。
下面以標(biāo)準(zhǔn)頻率響應(yīng)設(shè)計法fir1和任意頻率響應(yīng)設(shè)計法fir2為例說明其使用方法。2022/10/1120DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1.3
FIR濾波器的MATLAB設(shè)計用來設(shè)計標(biāo)準(zhǔn)頻率響應(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ù)類型,
其默認(rèn)值為漢明(Hamming)窗。
2022/10/1121DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計使用fir1函數(shù)可設(shè)計標(biāo)準(zhǔn)的低通、高通、帶通和帶阻濾波器。1.
fir1函數(shù)
(1)
采用漢明窗設(shè)計低通FIR濾波器
使用b=fir1(n,Wn)可得到低通濾波。0
Wn
1,Wn=1相當(dāng)于0.5fs。
格式:
b=fir1(n,Wn)
2022/10/1122DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計使用fir1函數(shù)可設(shè)計標(biāo)準(zhǔn)的低通、高通、帶通和帶阻濾波器。1.
fir1函數(shù)
(2)
采用漢明窗設(shè)計高通FIR濾波器
在b=fir1(n,Wn,‘ftype’)中,當(dāng)ftype=high時,可設(shè)計高通濾波器。
格式:
b=fir1(n,Wn,‘high’)2022/10/1123DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計使用fir1函數(shù)可設(shè)計標(biāo)準(zhǔn)的低通、高通、帶通和帶阻濾波器。1.
fir1函數(shù)
(3)
采用漢明窗設(shè)計帶通FIR濾波器
在b=fir1(n,Wn)中,當(dāng)Wn=[W1W2]時,可得到帶通濾波器,其通帶為W1<w<W2,W1和W2分別為通帶的下限頻率和上限頻率。
格式:
b=fir1(n,[W1W2])2022/10/1124DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計使用fir1函數(shù)可設(shè)計標(biāo)準(zhǔn)的低通、高通、帶通和帶阻濾波器。1.
fir1函數(shù)
(4)
采用漢明窗設(shè)計帶阻FIR濾波器
在b=fir1(n,Wn,‘ftype’)中,當(dāng)ftype=stop,Wn=[W1W2]時,fir1函數(shù)可得到帶阻濾波器。
格式:
b=fir1(n,[W1W2],‘stop’)2022/10/1125DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計1.
fir1函數(shù)
(5)
采用其他窗口函數(shù)設(shè)計FIR濾波器使用Window參數(shù),可以用其他窗口函數(shù)設(shè)計出各種加窗濾波器。Window參數(shù)可采用的窗口函數(shù)有:
Boxcar,Hanning,Bartlett,Blackman,Kasier和chebwin等,其默認(rèn)時為Hamming窗。
例如,采用Bartlett窗設(shè)計帶阻濾波器,其格式:
b=fir1(n,[W1W2],‘stop’,Bartlett(n+1))
2022/10/1126DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計1.
fir1函數(shù)
注意:用fir1函數(shù)設(shè)計高通和帶阻濾波器時,所使用的階數(shù)n應(yīng)為偶數(shù),當(dāng)輸入的階數(shù)n為奇數(shù)時,fir1函數(shù)會自動將階數(shù)增加1形成偶數(shù)?!纠?.1.1】
采用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);2022/10/1127DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計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)
2022/10/1128DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計2.
fir2函數(shù)
說明:
參數(shù)n為濾波器的階數(shù);
參數(shù)f為頻率點矢量,且f[0,1],f=1對應(yīng)于0.5fs。矢量f按升序排列,且第一個元素必須為0,最后一個必須為1,并可以包含重復(fù)的頻率點;
參數(shù)m為幅度點矢量,在矢量m中包含了與f相對應(yīng)的期望得到的濾波器幅度;
參數(shù)Window用來指定所使用的窗函數(shù)類型,其默認(rèn)值為漢明(Hamming)窗;
參數(shù)npt用來指定fir2函數(shù)對頻率響應(yīng)進(jìn)行內(nèi)插的點數(shù);
參數(shù)lap用來指定fir2函數(shù)在重復(fù)頻率點附近插入的區(qū)域大小。
2022/10/1129DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計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)曲線。
2022/10/1130DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計2.
fir2函數(shù)
例如,在例6.1.1~例6.1.3中,若希望得到濾波器的特性,可使用freqz()函數(shù),其格式:
freqz(b,1,512)
得濾波器的特性如圖。
2022/10/1131DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計2.
fir2函數(shù)
例6.1.1帶通濾波器的特性2022/10/1132DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計2.
fir2函數(shù)
例6.1.2高通濾波器的特性2022/10/1133DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計2.
fir2函數(shù)
例6.1.3低通濾波器的特性2022/10/1134DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1FIR濾波器的DSP實現(xiàn)
6.1.4
FIR濾波器的DSP實現(xiàn)
FIR濾波器的輸出表達(dá)式:
y(n)=b0x(n)+b1x(n-1)+…
+bn-1x(n-N+1)
(6.1.18)
bi為濾波器系數(shù),x(n)為濾波器在n時刻的輸入,y(n)為n時刻的輸出。
基本算法:采用乘法累加運算。即不斷地輸入樣本x(n),經(jīng)過z-1延時后,再進(jìn)行乘法-累加,最后輸出濾波結(jié)果y(n)。
2022/10/1135DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1.4
FIR濾波器的DSP實現(xiàn)1.
z-1算法的實現(xiàn)
常用的方法:
線性緩沖區(qū)法
循環(huán)緩沖區(qū)法。
(1)
線性緩沖區(qū)法
又稱延遲線法。
特點:
①在數(shù)據(jù)存儲器中開辟一個N單元的緩沖區(qū)(滑窗),用來存放最新的N個輸入樣本;
②從最老樣本開始取數(shù),每取一個數(shù)后,樣本向下移位;
③讀完最后一個樣本后,輸入最新樣本并存入緩沖區(qū)的頂部。
2022/10/1136DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計1.
z-1算法的實現(xiàn)
(1)
線性緩沖區(qū)法
緩沖區(qū):數(shù)據(jù)存儲器
頂部為低地址單元,存放最新樣本;緩沖區(qū)頂部最新樣本
底部為高地址單元,存放最老樣本;緩沖區(qū)底部最老樣本
指針ARx指向緩沖區(qū)底部。
←ARx2022/10/1137DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(1)
線性緩沖區(qū)法最新樣本數(shù)據(jù)存儲器最老樣本ARx→求y(n)的過程:算法:x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)x(n-7)取數(shù)、移位和運算:①以ARx為指針,按x(n-7)……x(n)的順序取數(shù),每取一次數(shù)后,數(shù)據(jù)向下移一位,并完成一次乘法累加運算;
②當(dāng)經(jīng)過8次取數(shù)、移位和運算后,得y(n);
③求得y(n)后,輸入新樣本x(n+1),存入緩沖區(qū)頂部單元;④修改指針ARx,指向緩沖區(qū)的底部。
2022/10/1138DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(1)
線性緩沖區(qū)法最新樣本數(shù)據(jù)存儲器最老樣本ARx→求y(n)的過程:算法: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)2022/10/1139DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(1)
線性緩沖區(qū)法求y(n+1)的過程:算法:數(shù)據(jù)存儲器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ù)存儲器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→2022/10/1140DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(1)
線性緩沖區(qū)法
Z-1的運算是通過執(zhí)行存儲器延時指令來實現(xiàn)的。即將數(shù)據(jù)存儲器中的數(shù)據(jù)向較高地址單元移位來進(jìn)行延時。
其指令:
DELAYSmem
;(Smem)
Smem+1
DELAY*AR3-
;AR3指向源地址
將延時指令與其他指令結(jié)合使用,可在同樣的機器周期內(nèi)完成這些操作。例如:
LD+DELAY→
LTDMAC+DELAY→MACD
2022/10/1141DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(1)
線性緩沖區(qū)法注意:用線性緩沖區(qū)實現(xiàn)z-1運算時,緩沖區(qū)的數(shù)據(jù)需要移動,這樣在一個機器周期內(nèi)需要一次讀和一次寫操作。因此,線性緩沖區(qū)只能定位在DARAM中。
優(yōu)點:
在存儲器中新老數(shù)據(jù)的位置直觀明了。
2022/10/1142DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計1.
z-1算法的實現(xiàn)
(2)循環(huán)緩沖區(qū)法特點:
①在數(shù)據(jù)存儲器中開辟一個N個單元的緩沖區(qū)(滑窗),用來存放最新的N個輸入樣本;
②從最新樣本開始取數(shù);
③讀完最老樣本后,輸入最新樣本來代替最老樣本,而其他數(shù)據(jù)位置不變;
④用BK寄存器對緩沖區(qū)進(jìn)行間接尋址,使緩沖區(qū)地址首尾相鄰。
2022/10/1143DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(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)+y62022/10/1144DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(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→2022/10/1145DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(2)循環(huán)緩沖區(qū)法循環(huán)緩沖區(qū)的優(yōu)點:
①緩沖區(qū)數(shù)據(jù)不需要移動;
②可以使用SARAM存儲器。
實現(xiàn)N個循環(huán)緩沖區(qū)單元首尾相鄰,可用BK寄存器按模間接尋址來實現(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)2022/10/1146DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(2)循環(huán)緩沖區(qū)法
circ是根據(jù)BK寄存器中的緩沖區(qū)長度,對(ARx+1)、(ARx-1)、(ARx+AR0)、(ARx-AR0)和(ARx+1k)的值進(jìn)行取模,使指針ARx指向緩沖區(qū),實現(xiàn)循環(huán)緩沖區(qū)首尾相鄰。例如:(BK)=N=8,(AR1)=0060h,用*AR1+%間接尋址。
第一次尋址后,AR1指向0061h單元;第二次尋址后,AR1指向0062h單元;…………
第八次尋址后,AR1指向0068h單元;將BK按8取模,AR1回到0060h單元。2022/10/1147DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(2)循環(huán)緩沖區(qū)法循環(huán)尋址的算法:
if0≤index+step<BK
index=index+stepelseifindex+step≥BK
index=index+step-BKelseifindex+step<0
index=index+step+BK
index:存放在輔助寄存器中的地址指針;step:步長,可正可負(fù),|step|≤BK。2022/10/1148DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(2)循環(huán)緩沖區(qū)法
①
用BK規(guī)定循環(huán)緩沖區(qū)的長度N;
②
緩沖區(qū)起始地址的k個最低有效位必須為0,且滿足2k>N。要求:例如:N=31,k的最小值為5,則緩沖區(qū)的起始地址:XXXXXXXXXXX00000B
若N=32,k的最小值為6,緩沖區(qū)的起始地址:XXXXXXXXXX000000B2022/10/1149DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計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)。
2022/10/1150DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計2.
FIR濾波器的實現(xiàn)
(1)
用線性緩沖區(qū)實現(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ù)存儲器暫存y(n)x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)程序存儲器b6b5b4b3b2b1b0xb雙操作數(shù)尋址指令:MACD*AR1-,b,A功能:A=A+(AR1)×(b),AR1-1→AR1,(AR1)→(AR1+1)AAR1→x(n-6)b6x(n-6)b6×x(n-6)+Ab6×x(n-6)+AAR1→x(n-5)2022/10/1151DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(1)
用線性緩沖區(qū)實現(xiàn)FIR濾波器
程序清單:
.title“FIR1.ASM”
.mmregs
.defstartx.usect“x”,8
PA0.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ù)存儲器暫存y(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)
定義系數(shù)bi程序存儲器
COEFb6
;定義b6=0.1
;定義b5=0.2
;定義b4=-0.4
;定義b3=0.3
;定義b2=-0.4
;定義b1=0.2
;定義b0=0.1b5b4b3b2b1b0x(n)2022/10/1152DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(1)
用線性緩沖區(qū)實現(xiàn)FIR濾波器
x數(shù)據(jù)存儲器暫存y(n)x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)程序存儲器
COEFb6b5b4b3b2b1b0程序清單:
.textstart:SSBXFRCTSTM#x+7,AR2STM#6,AR0LD#x+1,DPPORTRPA1,@x+1FIR1:RPTZA,#6MACD*AR2-,COEF,ASTHA,*AR2PORTW*AR2+,PA0BDFIR1PORTRPA1,*AR2+0.end
A;設(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→2022/10/1153DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計2.
FIR濾波器的實現(xiàn)
(2)
用循環(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)DARAMb0b1b2b3b4b5b6yb0xn2022/10/1154DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(2)
用循環(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.72022/10/1155DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計
.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→2022/10/1156DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計鏈接命令文件:
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……00801380h13EF2022/10/1157DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計鏈接命令文件:
SECTIONS{.text:>EPROMPAGE0.data:>EPROMPAGE0.bss:>SPRAMPAGE1
xn:align(8){}>DARAMPAGE1b0:align(8){}>DARAMPAGE1.vections:VECSPAGE0};在存儲器中定義輸出段的位置;text段定位在程序存儲器即源程序位于程序存儲器;系數(shù)區(qū)定義在程序存儲器
;bss段定義在暫存器
;從xn起8個單元定義在DARAM;從b0起8個單元定義在DARAM;vections定義在VECS區(qū)2022/10/1158DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計2.
FIR濾波器的實現(xiàn)
(3)
系數(shù)對稱FIR濾波器的實現(xiàn)
系數(shù)對稱FIR濾波器具有線性相位的特性,在數(shù)字信號處理中應(yīng)用十分廣泛,常用于相位失真要求較高的場合。
設(shè)濾波器N=8,若系數(shù)bn=bN-1-n,則為對稱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次加法2022/10/1159DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(3)
系數(shù)對稱FIR濾波器的實現(xiàn)
對稱FIR濾波器的實現(xiàn)方法:
①在RAM中開辟兩個N/2長度的循環(huán)緩沖區(qū)New和Old
,分別存放N/2個新數(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→③在程序存儲器中設(shè)置系數(shù)表;
系數(shù)表b0b1b2b3COEF④進(jìn)行(AR1)+(AR2)AH加法運算,并修改數(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→2022/10/1160DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(3)
系數(shù)對稱FIR濾波器的實現(xiàn)
對稱FIR濾波器的實現(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→加法運算:(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é)果;2022/10/1161DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(3)
系數(shù)對稱FIR濾波器的實現(xiàn)
對稱FIR濾波器的實現(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í)行④~⑧。
2022/10/1162DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(3)
系數(shù)對稱FIR濾波器的實現(xiàn)
系數(shù)對稱FIR濾波器指令:
格式:
FIRSXmem,Ymem,Pmad
功能:
PmadPAR;
當(dāng)(RC)0,則B+AH(Pmem)B,
((Xmem)+(Ymem))16A,
PAR+1PAR,RC-1RC
其中,Pmem是通過PAR尋址。2022/10/1163DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(3)
系數(shù)對稱FIR濾波器的實現(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寄存器符號名
;定義模塊
;給y保留1個空間
;給DATA1段保留4個空間
;給DATA2段保留4個空間
;給符號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ù)存儲器…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程序存儲器b0b1b2b3COEF系數(shù)表2022/10/1164DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計(3)
系數(shù)對稱FIR濾波器的實現(xiàn)
程序清單:
.textstart:LD#x_new,DPSSBXFRCTSTM#x_new,AR1STM#x_old+(size-1),AR2STM#size,BKSTM#-1,AR0PORTRPA1,#x_new
;設(shè)置頁指針
;設(shè)置小數(shù)乘法
;AR1指向x_new單元
;AR2指向x_old+3單元
;設(shè)置循環(huán)緩沖區(qū)長度
;設(shè)置雙操作數(shù)增量AR0=-1
;輸入數(shù)據(jù)x(n)2022/10/1165DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計程序清單:FIR3:ADD*AR1+0%,*AR2+0%,ARPTZB,#(size-1)FIRS*AR1+0%,*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ū)2022/10/1166DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計6.1FIR濾波器的DSP實現(xiàn)
6.1.5
FIR濾波器的設(shè)計實例設(shè)計一個FIR低通濾波器,其設(shè)計參數(shù):濾波器階數(shù):N=40;截止頻率:wp=0.35,
ws=0.4。
2022/10/1167DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計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)
2022/10/1168DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計濾波器的頻率特性:1.由給定的設(shè)計參數(shù)確定濾波器的系數(shù)
2022/10/1169DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計
采用循環(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;b38b392022/10/1170DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計
.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),AR52022/10/1171DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計STM#-1,AR0
;設(shè)置雙操作數(shù)減量
LD#D_DATA_BUFFER,DP
;設(shè)置頁指針
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
.end2022/10/1172DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計
在’C5402DSP硬件系統(tǒng)中,用戶可使用的存儲器資源:3.匯編源程序的鏈接命令文件
程序存儲空間:片內(nèi)0080H~3FFFH,
片外48000H~4FFFFH;
數(shù)據(jù)存儲空間:片內(nèi)0080H~3FFFFH,
片外4000H~7FFFH。2022/10/1173DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計FIR濾波器源程序的鏈接命令文件如下:
/*SOLUTIONFILEFORFIR.CMD*/vectors.obj
fir.obj
-ofir.out
-mfir.map
-efir_initMEMORY{PAGE0:EPROM:org=0E000Hlen=1000HVECS:org=0FF80Hlen=0080HPAGE1:SPRAM:org=0060Hlen=0020HDARAM:org=0080Hlen=1380H}2022/10/1174DSP原理及應(yīng)用第6章應(yīng)用程序設(shè)計FIR濾波器源程序的鏈接命令文件如下:
SECTIONS{
.text:>EPROMPAGE0
.vectors:>VECSPAGE0
.data:>EPRAMPAGE0
.bss:>SPRAMPAGE1FIR_BFR:align(128){}>DARAM
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《繁星》教學(xué)教案
- 2025年和田地區(qū)融媒集團有限公司招聘備考題庫完整參考答案詳解
- 佛山市順德區(qū)教育局面向2026屆畢業(yè)生赴高校設(shè)點公開招聘教師(第二批)314人備考題庫及答案詳解一套
- 七校聯(lián)考重慶生物試卷及答案
- 《曹沖稱象(第一課時)》教案
- 采購信息系統(tǒng)臺賬
- 標(biāo)準(zhǔn)查新追蹤臺賬
- 邊境小康示范村防火預(yù)案
- 重慶化學(xué)會考試卷及答案
- 豪華酒店大堂巨型水晶吊燈安裝
- 2025年中國煙草總公司招聘筆試參考題庫含答案解析
- 【MOOC】體質(zhì)健康智慧教程-西南交通大學(xué) 中國大學(xué)慕課MOOC答案
- 家電入股合同范例
- 2023天津市五校高二上學(xué)期期中考試高二生物
- 咨詢推廣服務(wù)合同模板
- DL/T5315-2014水工混凝土建筑物修補加固技術(shù)規(guī)程(完整)
- 省綜合評標(biāo)專家培訓(xùn)-操作類試題
- 第12課+明朝的興亡【中職專用】《中國歷史》(高教版2023基礎(chǔ)模塊)
- 《結(jié)構(gòu)工程英語》課件
- 二年級上學(xué)期語文非紙筆考試試題
- 隧道工程施工噴射混凝土
評論
0/150
提交評論