專利名稱:用于對有限輸入數(shù)據(jù)進(jìn)行濾波的數(shù)字濾波器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在通用微型計(jì)算機(jī)中的具有有限數(shù)目的樣品輸入數(shù)據(jù)的數(shù)字濾波器。
近年來通用微型計(jì)算機(jī)的操作頻率一直在提高,目前正在推廣包括例如計(jì)算乘積和指令的多媒體指令的通用微型計(jì)算機(jī)。隨著這種發(fā)展,通用微型計(jì)算機(jī)和軟件現(xiàn)在正在實(shí)現(xiàn)濾波處理,這種處理當(dāng)初曾利用DSD(數(shù)字信號處理器)進(jìn)行處理。以前,在通用微型計(jì)算機(jī)中的數(shù)字濾波處理是通過一個(gè)環(huán)型FIR(有限脈沖響應(yīng))數(shù)字濾波器實(shí)現(xiàn)的。
圖1示出一個(gè)具有一個(gè)延遲數(shù)P的環(huán)型緩沖器式濾波器的主要部件的構(gòu)成圖。這個(gè)濾波器裝有P+1個(gè)緩沖器、輸入數(shù)據(jù)指針P1和延遲數(shù)據(jù)指針P2。輸入數(shù)據(jù)指針P1指示輸入數(shù)據(jù)存儲(chǔ)的位置。
延遲數(shù)據(jù)指針P2指定緩沖器的位置,對于和積計(jì)算來講,緩沖器用于存儲(chǔ)的數(shù)據(jù)需乘上分支系數(shù)。指針P2在和積計(jì)算開始時(shí)指定與輸入數(shù)據(jù)指針P1相同的緩沖器位置,并且指針P2從該初始位置開始進(jìn)行指定。
采樣的時(shí)序數(shù)據(jù)D1、D2、D3、D4、…Dp、Dp+1、Dp+2、Dp+3、Dp+4…按下述要求存儲(chǔ)在這個(gè)數(shù)字濾波器中首先將數(shù)據(jù)D1存儲(chǔ)在Y2側(cè)的濾波器末端的緩沖器中。將D2存儲(chǔ)在對著Y1側(cè)的濾波器的末端的緩沖器中。按順序?qū)?shù)據(jù)D3、D4、…Dp、Dp+1從Y1側(cè)的存儲(chǔ)數(shù)據(jù)D2的端部緩沖器開始朝Y2的方向?qū)懭?。于是,將?shù)據(jù)Dp+1存儲(chǔ)在靠近存儲(chǔ)數(shù)據(jù)D1的Y側(cè)的緩沖器中。按這種方式連續(xù)一個(gè)周期存儲(chǔ)數(shù)據(jù)位置。將下一個(gè)數(shù)據(jù)Dp+2重新寫在數(shù)據(jù)D1上,再將數(shù)據(jù)Dp+3、Dp+4…重新寫在數(shù)據(jù)D2、D3…上。圖1中的標(biāo)號(D1)、(D2)和(D3)表示在重寫前曾在每個(gè)位置上寫入的數(shù)據(jù)。
在上述數(shù)據(jù)存儲(chǔ)中,輸入數(shù)據(jù)指針P1指定數(shù)據(jù)的存儲(chǔ)位置。
換句話說,輸入數(shù)據(jù)指針P1首先指定在Y2側(cè)的濾波器端部的緩沖器,接著指示Y1側(cè)的端部緩沖器。輸入數(shù)據(jù)指針P1指定緩沖器的順序,依次在Y2方向上移位。在沿Y2方向指定端部緩沖器后,輸入數(shù)據(jù)指針P1接著指定在Y1側(cè)的端部緩沖器,隨后它再在Y2方向繼續(xù)進(jìn)行移位。在圖1中,輸入數(shù)據(jù)指針P1正在離開Y1端指定第二緩沖器。然后在先前存儲(chǔ)數(shù)據(jù)D3上重寫數(shù)據(jù)Dp+4。
在和積計(jì)算中,從輸入數(shù)據(jù)指針P1指定的數(shù)據(jù)開始,并按數(shù)據(jù)存儲(chǔ)順序相反的方向開始將數(shù)據(jù)與分支系數(shù)相乘。換句話說,延遲數(shù)據(jù)指針P2在和積計(jì)算開始時(shí)具有與輸入數(shù)據(jù)指針P1相同的值,然后延遲數(shù)據(jù)指針在Y1方向移位。當(dāng)延遲數(shù)據(jù)指針P2指定Y2側(cè)的端部緩沖器時(shí),延遲數(shù)據(jù)指針P2接著指定Y2側(cè)的端部緩沖器。在圖1中,延遲數(shù)據(jù)指針P2依次指定數(shù)據(jù)Dp+4、Dp+3、Dp+2、Dp+1、Dp…D4,直至下一個(gè)數(shù)據(jù)Dp+5重寫在數(shù)據(jù)D4上為止,借此計(jì)算乘積的和Dp+4+a1Dp+3+a2Dp+2+a3Dp+1+a4Dp+…+apD4在上述環(huán)形緩沖數(shù)字濾波器中,數(shù)據(jù)排列在一個(gè)由P+1個(gè)延遲元件(緩沖器)構(gòu)成的環(huán)上。在圖1所示的數(shù)據(jù)排列下,例如一開始寫入的數(shù)據(jù)D4和最后寫入的數(shù)據(jù)Op+4彼此相鄰排列。因此,如果兩端Y1和Y2相連接,則數(shù)據(jù)D1到Dp+4按照D4…Dp、Dp+1、Dp+2、Dp+3、Dp+4的順序排列成環(huán)形。這種環(huán)狀排列由少量的緩沖器就可以依次濾波大量的數(shù)據(jù)。但是,在這種環(huán)狀排列中,指針的控制是復(fù)雜的;指針移位時(shí),每次都需要校驗(yàn),以便確定指針是否已經(jīng)來到一個(gè)終端位置。
在上述現(xiàn)有技術(shù)的數(shù)字濾波器中,在通用計(jì)算機(jī)中進(jìn)行濾波處理時(shí)會(huì)遇到下述問題第一個(gè)問題是,因?yàn)槊看沃羔樢莆欢夹枰M(jìn)行環(huán)形緩沖器的結(jié)束試驗(yàn),所以在環(huán)形濾波器中的指針控制是復(fù)雜的。
第二個(gè)問題是在多媒體處理中需要實(shí)時(shí)特性,這意味著在多媒體處理中要求更高的速度。
本發(fā)明的目的在于提供一種用于通用微型計(jì)算機(jī)的數(shù)字濾波器,該濾波器具有有限數(shù)量的輸入數(shù)據(jù),該濾波器的優(yōu)點(diǎn)是濾波處理比較快和指針控制方便。
為了解決上述問題,本發(fā)明的數(shù)字濾波器是一種具有一個(gè)延遲數(shù)P的FIR數(shù)字濾波器,該濾波器執(zhí)行乘積的和計(jì)算。該濾波器包括一個(gè)延遲器件,一個(gè)第一指定裝置,第二指定裝置和一個(gè)乘積和的計(jì)算裝置。
延遲器件的P+N個(gè)延遲元件為一個(gè)直線陣列,其中,在濾波處理的初始調(diào)整時(shí)間將0存儲(chǔ)在從該直線陣列第一端開始計(jì)數(shù)的依次串行的P個(gè)延遲元件中,從第一端開始計(jì)數(shù)的第P+1個(gè)延遲元件按照朝向所述直線陣列的第二端的先后順序?qū)⑺龅妮斎氲牟蓸訑?shù)據(jù)存儲(chǔ)在其余的N個(gè)延遲元件中。為了簡單起見,下面將采樣數(shù)據(jù)稱為數(shù)據(jù)。
第一指定裝置指定一個(gè)根據(jù)輸入數(shù)據(jù)的順序存儲(chǔ)有待進(jìn)行各個(gè)和積計(jì)算的數(shù)據(jù)的延遲元件,該存儲(chǔ)的數(shù)據(jù)作為其第一項(xiàng)。
第二指定裝置依次從被第一指針裝置逐個(gè)指定的延遲元件朝向第一端開始指定P+1個(gè)延遲元件,P+1個(gè)元件中包括被第一指定裝置指定的延遲元件。
和積計(jì)算裝置包括P+1個(gè)乘積的和。此處的P+1個(gè)乘積是被第二指定裝置指定的存儲(chǔ)在延遲元件中的數(shù)據(jù),該P(yáng)+1個(gè)乘積是與預(yù)定分支系數(shù)相乘過的,乘積和的第一項(xiàng)存儲(chǔ)在被第一指定裝置和第二指定裝置指定的延遲元件中。
在上述數(shù)字濾波器中,第一指定裝置在第j個(gè)和積計(jì)算開始時(shí)指定從該延遲元件第一端開始計(jì)數(shù)的第P+1個(gè)延遲元件。
第二指定裝置控制第一指定裝置,以便當(dāng)每個(gè)和積計(jì)算完成時(shí),使延遲元件剛好朝向第二端移動(dòng)一個(gè)延遲元件。
當(dāng)該第一指定裝置的指定移位時(shí),第二指定裝置執(zhí)行該P(yáng)+1個(gè)延遲元件的下一個(gè)指定。
第二指定裝置按照各個(gè)設(shè)定為延遲時(shí)間的時(shí)間間隔重復(fù)控制第一指定裝置和重復(fù)控制P+1個(gè)延遲元件的指定,直至完成濾波處理。
下面說明本發(fā)明的數(shù)字濾波器的操作。
為了說明起見,將延遲元件的標(biāo)號定義為在延遲器件第一側(cè)端的末端的延遲元件為1。在與第一側(cè)端相對的第二側(cè)端的末端的延遲元件為P+N。在這兩個(gè)側(cè)端之間的標(biāo)號按順序定義。標(biāo)號為k(1≤k≤P+N)的延遲元件定義為“延遲元件k”。
對于本發(fā)明的數(shù)字濾波器的P+N個(gè)延遲元件來講,將0(初始設(shè)定值)存儲(chǔ)在延遲元件1到延遲元件P的P個(gè)延遲元件中。將輸入數(shù)據(jù)的序列存儲(chǔ)在從延遲元件P+1到延遲元件P+N的N個(gè)延遲元件中。按照該順序?qū)個(gè)數(shù)據(jù)D1、D2、…Dn存儲(chǔ)到從延遲元陣P+1到延遲元件P+N的延遲元件中。
根據(jù)上面設(shè)定的標(biāo)號,可以將本發(fā)明數(shù)字濾波器的操作說明如下。
本發(fā)明的和積計(jì)算是對直線排列的D+1個(gè)數(shù)據(jù)(定義為連續(xù)的整數(shù)標(biāo)號)的串行數(shù)據(jù)序列進(jìn)行的。所述直線排列與上述環(huán)形緩沖器數(shù)字濾波器中排列成環(huán)形的P+1個(gè)時(shí)間序列數(shù)據(jù)相反。
正如在現(xiàn)有技術(shù)中那樣,第j個(gè)和積計(jì)算的數(shù)字表示式可用下述方程表示
Xj=Dj+a1Dj-1+a2Dj-2…apDj-p(1)從方程(1)可以看出,第j個(gè)和積計(jì)算Xj的數(shù)據(jù)的第一項(xiàng)是Dj,該數(shù)據(jù)存儲(chǔ)在延伸元件p+j中。
第一指定裝置根據(jù)和積計(jì)算的數(shù)在第j個(gè)和積計(jì)算期間指定延遲元件p+j。由于每個(gè)和積計(jì)算數(shù)的增加,第一指定裝置的指定沿延遲元件標(biāo)號增加的方向(朝第二端)移位,按照p+j,p+j+1,p+j+2…p+N順序處理。
操作第二指定裝置,以便沿延遲元件標(biāo)號減少的方向(朝第一端)使指定移位,在第j個(gè)和積計(jì)算期間,從延遲元件p+j開始并依次處理到p+j,p+j-1,p+j-2,……j。
因?yàn)楸景l(fā)明的數(shù)字濾波器的第一指定裝置和第二指定裝置兩者均使延遲元件的指定都只在一個(gè)方向移位,所以使指定裝置的控制非常容易。
與其按照在公知的FIR的一個(gè)延遲器件中移動(dòng)數(shù)據(jù),還不如本發(fā)明使數(shù)字濾波器的數(shù)據(jù)位置固定,并只通過指定裝置使指定移位,從而使濾波器的處理速度提高。
根據(jù)本發(fā)明,在延遲序號p的FIR數(shù)字濾波器中,對有限數(shù)量N的輸入數(shù)據(jù)序列進(jìn)行和積計(jì)算的數(shù)據(jù)處理方法包括如下步驟通過將數(shù)量等于P+N的延遲元件排列在一個(gè)直線陣列上構(gòu)成一個(gè)延遲器件;依次從1到P+N標(biāo)記ID標(biāo)號,以便識別該直線陣列上的各個(gè)延遲元件;在為濾波的處理進(jìn)行的初始設(shè)置時(shí),將0依次存儲(chǔ)在ID序號1至P的P個(gè)延遲元件中,然后按輸入數(shù)據(jù)序列的順序?qū)個(gè)輸入數(shù)據(jù)依次存儲(chǔ)在從ID序號P+1的延遲元件到ID序號P+N的延遲元件的N個(gè)延遲元件中;指定ID序號P+j(1≤j≤N)的延遲元件作為把用于第j個(gè)和積計(jì)算的第一項(xiàng)的所述輸入數(shù)據(jù)的序列中的數(shù)據(jù)存儲(chǔ)起來的延遲元件;通過下述步驟完成第j個(gè)和積計(jì)算依次指定從ID序號P+j的所述延遲元件到ID序號1的所述延遲元件的P+1個(gè)延遲元件;把數(shù)據(jù)存儲(chǔ)在依次指定的延遲元件中,將存儲(chǔ)在ID序號P+j個(gè)延遲元件中的數(shù)據(jù)變成第j個(gè)和積計(jì)算的第一項(xiàng);依次把其它數(shù)據(jù)乘以預(yù)定分支系數(shù);把這些相乘的結(jié)果與所述的第j個(gè)和積計(jì)算的第一項(xiàng)累加在一起;以及在完成第N個(gè)和積計(jì)算后立即結(jié)束數(shù)字濾波處理。
通過參考附圖對下面的描述,可以使本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)更加清楚,這些附圖只是作為本發(fā)明的優(yōu)選實(shí)施例而舉出的。
圖1是說明現(xiàn)有技術(shù)中的濾波器結(jié)構(gòu)的主要部分的示意圖;圖2是用于說明本發(fā)明的數(shù)字濾波器的一個(gè)實(shí)施例的方框圖;圖3是詳細(xì)說明本發(fā)明的數(shù)字濾波器操作的解釋圖;圖4是用于說明本發(fā)明的數(shù)字濾波器操作的流程圖。
現(xiàn)在參見圖2,圖2是用于說明本發(fā)明數(shù)字濾波器的實(shí)施例的流程圖。
本實(shí)施例的數(shù)字濾波器裝有延遲器件1,乘法器2,累加器3,指定裝置PM1和指定裝置PM2。延遲器件1由一個(gè)總數(shù)為N+D的延遲元件直線陣列組成,其中N是需進(jìn)行濾波處理的數(shù)據(jù)Pj(1≤j≤N)的數(shù)量,而P是延遲數(shù)。
乘法器2由P個(gè)乘法器元件構(gòu)成,這些乘法器元件依次將P個(gè)延遲元件的輸出與分支系數(shù)a1,a2…ap相乘,然后提供這個(gè)結(jié)果作為輸出。
累加器3把存儲(chǔ)在由指定裝置PM1指定的延遲元件的數(shù)據(jù)(下面稱為被指定裝置PM1指定的數(shù)據(jù))和P個(gè)乘法器元件的輸出累加,然后提供該結(jié)果作為乘積的和。在下面的描述中,把包括由指定器件PM1指定的延遲元件的識別序號和延遲元件的識別序號的范圍稱為“和積的計(jì)算范圍k”,所述延遲元件存儲(chǔ)P個(gè)需要與分支系數(shù)ak相乘的數(shù)據(jù),也就是說用以進(jìn)行和積計(jì)算的緊跟在后面的P+1個(gè)延遲元件。
指定裝置PM1指定存儲(chǔ)延遲元件的位置,而延遲元件存儲(chǔ)和積計(jì)算的第一項(xiàng)數(shù)據(jù)。在本發(fā)明中,N個(gè)數(shù)據(jù)D1,Dj,…,DN-1,DN依次由從第一端Y1向第二端Y2計(jì)數(shù)的延遲器件1的第P+1個(gè)延遲元件開始存儲(chǔ)。在圖2所示的例子中,指定裝置PM1當(dāng)前指定從延遲器件1的第一端Y1開始算起的第p+j延遲元件,而數(shù)據(jù)Dj存儲(chǔ)在這個(gè)位置上,以便作為第j個(gè)和積計(jì)算的第一項(xiàng)。
在本發(fā)明中,N個(gè)數(shù)據(jù)采樣D1,…Dj,…,DN-1,DN依次被指定作為按照這個(gè)順序的和積計(jì)算的第一項(xiàng)。因此,指定裝置PM1沿圖2的虛線箭頭(在標(biāo)號PM1左側(cè)的箭頭)方向移位,以便指定存儲(chǔ)位置作為和積計(jì)算的第一項(xiàng)。
因?yàn)橹付ㄆ骷M1指定和積計(jì)算范圍k的一個(gè)極限值,所以和積計(jì)算的范圍k隨著指定裝置PM1的移位及和積計(jì)算數(shù)的增加也沿著第二端的方向移位。
指定裝置PM2指定用于存儲(chǔ)待與分支系數(shù)相乘的數(shù)據(jù)的延遲元件。為了使P+1個(gè)延遲元件從被指定裝置PM1指定的延遲元件開始朝向第一端側(cè)(在圖2中的參考符號PM2右側(cè)出現(xiàn)的虛線方向)處理,依次進(jìn)行這種指定。在圖2所示的例子中,進(jìn)行和積計(jì)算,并按照預(yù)定延遲時(shí)間周期的一個(gè)循環(huán)完成相乘和累加(對于P+1個(gè)乘積,把第j個(gè)和積計(jì)算的第一項(xiàng)Dj作為Dj與分支系數(shù)a0=1的乘積)。在圖的括弧中的乘法器元件是當(dāng)前借以進(jìn)行與分支系數(shù)相乘的元件。另外,從圖2的第一端Y上開始的P個(gè)元件的內(nèi)容始終為初始設(shè)定值0,因?yàn)樵谶@些延遲元件中不存儲(chǔ)數(shù)據(jù)。
圖3是用于詳細(xì)說明本發(fā)明的數(shù)字濾波器操作的簡圖。
上述指定裝置PM1裝有輸入數(shù)據(jù)序號計(jì)數(shù)器4和指針P1。指針P1指定存儲(chǔ)和積計(jì)算的第一項(xiàng)數(shù)據(jù)。輸入數(shù)據(jù)序號計(jì)數(shù)器4對已經(jīng)完成的和積計(jì)算數(shù)進(jìn)行計(jì)數(shù)。當(dāng)和積計(jì)算的一個(gè)數(shù)N已經(jīng)計(jì)數(shù)時(shí),利用延遲器件1的濾波處理便完成。于是,輸入數(shù)據(jù)序號計(jì)數(shù)器4給出完成濾波處理的狀態(tài)。
指定裝置PM2裝有延遲序號計(jì)數(shù)器5和指針P2。指針P2指定用于存儲(chǔ)待與分支系數(shù)相乘的數(shù)據(jù)。延遲序號計(jì)數(shù)器5具有從0到P+1的計(jì)數(shù)值,用于產(chǎn)生這些計(jì)數(shù)值的一個(gè)循環(huán)的時(shí)間周期相應(yīng)于數(shù)字濾波器的延遲時(shí)間。當(dāng)延遲序號計(jì)數(shù)器5產(chǎn)生計(jì)數(shù)值P+1輸出時(shí),指針P1指定朝向Y2側(cè)正好移位一個(gè)延遲元件。被個(gè)廷遲序號計(jì)數(shù)器5具有P+1個(gè)計(jì)數(shù)值,輸入數(shù)據(jù)序號計(jì)數(shù)器4的計(jì)數(shù)正好增加1。
指針P2的位置按照延遲序號計(jì)數(shù)器5的輸出控制當(dāng)延遲序號計(jì)數(shù)器5的計(jì)數(shù)為0時(shí),指針P2指定的延遲元件與指針p1指定的相同,接著使延遲元件的指定朝向第一端Y1移位,并與延遲序號計(jì)數(shù)器5的計(jì)數(shù)值同步遞增。
延遲器件1可以由RAM構(gòu)成,在這種情況下,每個(gè)延遲元件被一個(gè)地址指定。現(xiàn)在參考圖3(1),被指針P1指定的數(shù)據(jù)D1的地址指定位置為F1,該位置與延遲器件1的一端Y1之間相隔p個(gè)延遲元件。濾波處理在和積計(jì)算范圍K1內(nèi)進(jìn)行,K1的范圍從位置F1到位置X1。第一和積計(jì)算的結(jié)果是D1+a1o+a2o、…+apo。
當(dāng)?shù)谝粸V波處理完成后,指針P1位于位置F2,該指針如圖3(2)所示在第一端Y1相反方向移動(dòng)一個(gè)位置(即下一個(gè)地址)。在每一個(gè)延遲時(shí)間的預(yù)定單位指針P1完成移位。
接著對從位置F2到位置X2的第二和積計(jì)算范圍K2進(jìn)行濾波處理。第二和積計(jì)算隨著指針PM1指定存儲(chǔ)在位置F2中的下一個(gè)數(shù)據(jù)D2開始。這個(gè)和積計(jì)算是D2+D1a1+a2o、…+apo。通過這種方式,只需使延遲器件1中的輸入數(shù)據(jù)的存儲(chǔ)位置的指定移位就可以實(shí)現(xiàn)高速延遲處理。
當(dāng)范圍K2的和積計(jì)算的濾波處理完成時(shí),指針P1便使其指定朝向Y2側(cè)的一個(gè)延遲元件移動(dòng),以便指定位置F3,圖3(3)中表示指針P2指定數(shù)據(jù)D1,并表示當(dāng)前正在進(jìn)行a2D1相乘。
圖4是用于說明這個(gè)實(shí)施例的操作的流程圖。
首先進(jìn)行數(shù)字濾波器的初始化。初始化按兩步執(zhí)行初始化指定器件PM1(步驟S1)和初始化指定器件MP2(步驟S2)。
在PM1的初始化過程中,延遲器件1的所有延遲元件都被清為0,輸入數(shù)據(jù)序號計(jì)數(shù)器4恢復(fù)到0,指針P1置到位置F1,該位置與延遲器件1的Y1端之間由P個(gè)延遲元件隔開。在PM2的初始化過程中,廷遲序號計(jì)數(shù)器2都被清為0,指針P2置到與指針P1相同的值。
接著把和積計(jì)算的數(shù)據(jù)的第一項(xiàng)寫入累加寄存器中(步驟S3),換言之,把用于第j個(gè)和積計(jì)算Xj=Dj+a1Dj-1…aj-1D1+aj*o的第一項(xiàng)Dj寫入累加寄存器中。
接著進(jìn)行和積的計(jì)算(步驟S4),在這個(gè)處理步驟中,例如當(dāng)延遲序號計(jì)數(shù)器5計(jì)數(shù)到計(jì)數(shù)值K時(shí),就將相應(yīng)于這個(gè)數(shù)值K的分支系數(shù)ak與數(shù)據(jù)采樣Dj-k相乘。然后將相乘的結(jié)果傳送給累加寄存器,并將延遲序號計(jì)數(shù)器5的計(jì)數(shù)值遞增1。
接著確定延遲序號計(jì)數(shù)器5的遞增計(jì)數(shù)值是否大于或等于延遲序號P(步驟S5),如果延遲序號計(jì)數(shù)器5的計(jì)數(shù)值小于或等于延遲序號P,則重復(fù)步驟S4的和積計(jì)算。重復(fù)步驟S4和S5,直至延遲序號計(jì)數(shù)器5的計(jì)數(shù)值等于延遲序號P為止。當(dāng)延遲序號計(jì)數(shù)器5的計(jì)數(shù)值等于延遲序號P+1時(shí),則和積計(jì)算已經(jīng)在和積計(jì)算的整個(gè)范圍K內(nèi)執(zhí)行,即已經(jīng)完成和積計(jì)算的一個(gè)周期。
當(dāng)一個(gè)和積計(jì)算周期已經(jīng)完成后,輸入數(shù)據(jù)序號計(jì)數(shù)器4的計(jì)數(shù)值立即遞增1,直至P1朝向延遲器件1的端部Y2移動(dòng)一個(gè)位置(步驟S6)。接著判斷輸入數(shù)據(jù)序號計(jì)數(shù)器4增加的計(jì)數(shù)值是否小于數(shù)據(jù)的號數(shù)N(步驟S7)。如果輸入數(shù)據(jù)序號計(jì)數(shù)器4的計(jì)數(shù)值小于數(shù)據(jù)的號數(shù)N,則指針器件PM2被初始化(步驟S2),以便對新指定的數(shù)據(jù)再繼續(xù)進(jìn)行和積計(jì)算,并且重復(fù)步驟S2-S7的處理,直至輸入數(shù)據(jù)序號計(jì)數(shù)器4的計(jì)數(shù)值變成數(shù)據(jù)號N為止。當(dāng)輸入數(shù)據(jù)序號計(jì)數(shù)器4的計(jì)數(shù)值等于或大于數(shù)據(jù)的號數(shù)N時(shí),作為處理目標(biāo)的N個(gè)數(shù)據(jù)采樣的濾波處理已經(jīng)完成。
本發(fā)明的一個(gè)數(shù)字濾波器中的濾波處理由處理器(未示出)根據(jù)存儲(chǔ)在記錄介質(zhì)(也未示出)中的控制程序進(jìn)行。在下面的描述中,把軟件系統(tǒng)稱為“計(jì)算機(jī)”,該軟件系統(tǒng)包括上述處理器(未示出),構(gòu)成延遲器件的RAM,輸入數(shù)據(jù)序號計(jì)數(shù)器和延遲序號計(jì)數(shù)器(第一和第二指針可以通過軟件實(shí)現(xiàn))。
在本發(fā)明的控制程序中描述了計(jì)算機(jī)中至少執(zhí)行下述處理的必要程序一個(gè)在濾波處理的初始化設(shè)定時(shí)間內(nèi)進(jìn)行初始化設(shè)定的步驟,在該步驟中,把0存儲(chǔ)在從行的第一端開始的p個(gè)延遲元件中,將N個(gè)輸入數(shù)據(jù)逐個(gè)按照順序的排列存儲(chǔ)在從由第一端朝向第二端側(cè)計(jì)數(shù)的第P+1個(gè)延遲元件開始的N個(gè)延遲元件中;一個(gè)笫一濾波步驟,在該步驟中,從上述延遲器件的第一端開始計(jì)數(shù)的第P+1個(gè)延遲元件被指定作為從N個(gè)輸入數(shù)據(jù)組成的數(shù)據(jù)序列中存儲(chǔ)第一和積計(jì)算的第一項(xiàng)的數(shù)據(jù)采樣的延遲元件;一個(gè)第二濾波步驟,在該步驟中,從在第一濾波處理中指定過的延遲元件開始朝向第一端依次指定P+1個(gè)延遲元件;一個(gè)第三濾波步驟,在該步驟中,根據(jù)第二濾波步驟中指定的延遲元件中存儲(chǔ)的數(shù)據(jù),將第一濾波步驟中指定的延遲元件中的數(shù)據(jù)作為和積計(jì)算的第一項(xiàng),其余數(shù)據(jù)按順序乘以P個(gè)預(yù)定分支系數(shù),在該步驟中,將相乘的結(jié)果與該和積計(jì)算的第一項(xiàng)累加在一起;一個(gè)第四濾波步驟,在該步驟中,當(dāng)?shù)谌秊V波步驟完成后,將指定為存儲(chǔ)第二和積計(jì)算的第一項(xiàng)數(shù)據(jù)的延遲元件的位置朝向該延遲器件的第二端移動(dòng)一個(gè)延遲元件;以及一個(gè)隨后的步驟,在該步驟中,以相同的方式重復(fù)第一到第四濾波步驟,直至第N個(gè)和積計(jì)算完成。
最后,本發(fā)明具有下述優(yōu)點(diǎn)(1)通過只移位指針,指定存儲(chǔ)在延遲器件中的輸入數(shù)據(jù)的延遲元件實(shí)現(xiàn)延遲就可加速濾波器處理。因?yàn)楸景l(fā)明的濾波處理需要訪問存儲(chǔ)器的時(shí)間比現(xiàn)有技術(shù)方法實(shí)現(xiàn)的少,所以這個(gè)加速得以實(shí)現(xiàn)。具體地說,本發(fā)明可以只按(5×P+8)×N個(gè)步驟完成,這與需要例如(8×P+8)×N個(gè)步驟的現(xiàn)有技術(shù)形成鮮明的對比。用百分率來表示,本發(fā)明的處理時(shí)間僅為現(xiàn)有技術(shù)的處理時(shí)間的63%。在濾波步驟中,輸入數(shù)據(jù)以相等時(shí)間間隔處理。例如在以8kHz(或?qū)嶋H時(shí)間為125微妙)對輸入數(shù)據(jù)采樣的情況下,現(xiàn)有技術(shù)中用于一個(gè)輸入數(shù)據(jù)采樣的處理時(shí)間大約為100微妙,而本發(fā)明卻能在63微妙中完成處理。因此,除了濾波處理以外,可以用于應(yīng)用處理的時(shí)間增加了約37微妙,總的來說??梢詫⒓s62微妙的時(shí)間間隔用于除濾波處理以外的應(yīng)用處理上。
(2)與現(xiàn)有技術(shù)的環(huán)形緩沖器相比,簡化了用于實(shí)現(xiàn)延遲的指針控制。
在本發(fā)明中,雖然延遲也是利用現(xiàn)有技術(shù)的環(huán)形緩沖器中的指針控制實(shí)現(xiàn)的,但是本發(fā)明僅根據(jù)延遲序號在環(huán)形緩沖器中配置緩沖器。當(dāng)環(huán)形緩沖器的指針移位時(shí),必須始終進(jìn)行校驗(yàn),以便判斷指針是否在環(huán)形緩沖器的端部,如果在端部,則必須使指針移位到環(huán)形緩沖器的開始處。
作為一個(gè)例子,在現(xiàn)有技術(shù)的方法中,指針的移位大約需要(6×P+10)×N個(gè)步驟。本發(fā)明只包含指針的移位,不需要用結(jié)束的校驗(yàn),因此使處理時(shí)間約為現(xiàn)有技術(shù)的83%。正如上述的優(yōu)點(diǎn)(1),可以用于各個(gè)應(yīng)用的時(shí)間增加約17微妙,這意味著用于除濾波處理以外的應(yīng)用時(shí)間總共可以用約42微妙的間隔時(shí)間。當(dāng)把本發(fā)明應(yīng)用于作為以DSPG.INC.提供的算法為基礎(chǔ)的語音壓縮格式的TrueSpeech8.5中,并裝入Windows95中時(shí),本發(fā)明就能改善性能12%左右。
但是需要指出的是,雖然在上面的介紹中已經(jīng)描述了本發(fā)明的特征和優(yōu)點(diǎn),但是這些公開的內(nèi)容例舉式的,在零部件上、尺寸上和布置上可以進(jìn)行改變,這些仍在本發(fā)明的權(quán)利要求書的范圍內(nèi)。
權(quán)利要求
1.一種對有限數(shù)N的輸入數(shù)據(jù)序列進(jìn)行和積計(jì)算的延遲序號P的FIR數(shù)字濾波器,它包括一個(gè)延遲器件,該延遲器件的P+N個(gè)延遲元件成為一個(gè)直線陣列,其中,在濾波處理的初始調(diào)整時(shí)間將0存儲(chǔ)在從該直線陣列第一端開始計(jì)數(shù)的串行的P個(gè)延遲元件中,從第一端開始計(jì)數(shù)的第P+1個(gè)延遲元件按照朝向所述直線陣列的第二端的先后順序?qū)⑺龅妮斎氲牟蓸訑?shù)據(jù)存儲(chǔ)在其余的N個(gè)延遲元件中;一個(gè)第一指定裝置,該第一指定裝置指定一個(gè)根據(jù)輸入數(shù)據(jù)的順序存儲(chǔ)有待進(jìn)行各個(gè)和積計(jì)算的數(shù)據(jù)的延遲元件,該存儲(chǔ)的數(shù)據(jù)作為其第一項(xiàng);一個(gè)第二指定裝置,該第二指定裝置依次從被第一指針裝置指定的延遲元件朝向第一端開始指定P+1個(gè)延遲元件,所述P+1個(gè)元件中包括被第一指定裝置指定的延遲元件;和一個(gè)和積計(jì)算裝置,該計(jì)算轉(zhuǎn)置計(jì)算P+1個(gè)乘積的和,所述P+1個(gè)乘積是被第二指定裝置指定的存儲(chǔ)在所述延遲元件中的數(shù)據(jù),該P(yáng)+1個(gè)乘積是與預(yù)定分支系數(shù)相乘過的,乘積和的第一項(xiàng)存儲(chǔ)在被第一指定裝置和第二指定裝置指定的延遲元件中;其中第一指定裝置在第j個(gè)和積計(jì)算開始時(shí)指定從該延遲元件第一端開始計(jì)數(shù)的第P+1個(gè)延遲元件;和第二指定裝置控制第一指定裝置,以便當(dāng)每個(gè)和積計(jì)算完成時(shí),使延遲元件的指定剛好朝向第二端移動(dòng)一個(gè)延遲元件;當(dāng)該第一指定裝置的指定移位時(shí),第二指定裝置執(zhí)行P+1個(gè)延遲元件下一個(gè)的指定;第二指定裝置按照各個(gè)設(shè)定為延遲時(shí)間的時(shí)間間隔重復(fù)控制第一指定裝置和重復(fù)控制P+1個(gè)延遲元件的指定,直至完成濾波處理。
2.根據(jù)權(quán)利要求1所述的數(shù)字濾波器,其特征在于所述第二指定裝置包括一個(gè)延遲序號計(jì)數(shù)器;和一個(gè)第二指針;其中,所述延遲序號計(jì)數(shù)器在作為延遲時(shí)間設(shè)定的每個(gè)時(shí)間內(nèi)重復(fù)提供一個(gè)從0到P+1中的一個(gè)計(jì)數(shù)值;以及第二指針在所述延遲序號計(jì)數(shù)器輸出00時(shí)指定被第一指定裝置指定的那個(gè)延遲元件,接著根據(jù)所述延遲序號計(jì)數(shù)器的計(jì)數(shù)值使延遲元件的指定朝向所述陣列的第一端移位,直至所述延遲序號計(jì)數(shù)器提供一個(gè)計(jì)數(shù)值為止。
3.根據(jù)權(quán)利要求1或2所述的數(shù)字濾波器,其特征在于所述第一指定裝置包括一個(gè)延遲序號計(jì)數(shù)器;和一個(gè)第一指針;其中所述延遲序號計(jì)數(shù)器在濾波處理開始時(shí)設(shè)定為0,該延遲序號計(jì)數(shù)器提供一個(gè)計(jì)數(shù)值P+1時(shí),所述延遲序號計(jì)數(shù)器遞增1,當(dāng)所述延遲序號計(jì)數(shù)器的計(jì)數(shù)值達(dá)到N時(shí),所述延遲序號計(jì)數(shù)器提供一個(gè)指示濾波完成的信號;和所述第一指針在濾波處理初始設(shè)定時(shí)指定從所述延遲器件的第一端開始計(jì)數(shù)的第P+1個(gè)延遲元件,接著在所述延遲序號計(jì)數(shù)器提供一個(gè)計(jì)數(shù)值P+1時(shí),使延遲元件的指定朝向所述延遲器件的第二端側(cè)移位一個(gè)延遲元件。
4.根據(jù)權(quán)利要求1所述的數(shù)字濾波器,其特征在于所述延遲器件是一個(gè)被N+P個(gè)連續(xù)的地址指定的RAM區(qū);和所述延遲元件是被被個(gè)地址指定的區(qū)。
5.一種用于在一個(gè)對有限數(shù)N的輸入數(shù)據(jù)序列進(jìn)行和積計(jì)算的延遲序號P的FIR數(shù)字濾波器中處理數(shù)據(jù)的方法,該方法包括下述布步驟通過將數(shù)量等于P+N的延遲元件排列在一個(gè)直線陣列上構(gòu)成一個(gè)延遲元件;依次從1到P+N標(biāo)記ID標(biāo)號,以便識別該直線陣列上的各個(gè)延遲元件;在濾波處理的初始設(shè)置的時(shí)間內(nèi),將0依次存儲(chǔ)在ID序號1至P的P個(gè)延遲元件中,然后按輸入數(shù)據(jù)序列的順序?qū)個(gè)輸入數(shù)據(jù)依次存儲(chǔ)在從ID序號P+1的延遲元件到ID序號P+N的延遲元件的N個(gè)延遲元件中;指定ID序號P+j(1≤j≤N)的延遲元件作為把用于第j個(gè)和積計(jì)算的第一項(xiàng)的所述輸入數(shù)據(jù)的序列中的數(shù)據(jù)存儲(chǔ)起來的延遲元件;通過下述步驟完成第j個(gè)和積的計(jì)算依次指定從ID序號P+j的所述延遲元件到ID序號1的所述延遲元件的P+1個(gè)延遲元件;把數(shù)據(jù)存儲(chǔ)在依次指定的延遲元件中,將存儲(chǔ)在ID序號P+j延遲元陣中的數(shù)據(jù)變成第j個(gè)和積計(jì)算的第一項(xiàng);依次把其它數(shù)據(jù)乘以預(yù)定分支系數(shù);把這些相乘的結(jié)果與所述的第j個(gè)和積計(jì)算的第一項(xiàng)累加在一起;以及在完成第N個(gè)和積計(jì)算后結(jié)束數(shù)字濾波處理。
6.一種記錄介質(zhì),該介質(zhì)上存儲(chǔ)一個(gè)利用計(jì)算機(jī)控制FIR數(shù)字濾波器的處理的控制程序,所述的FIR數(shù)字濾波器裝有一個(gè)P+N延遲元件的直線陣列,N是輸入數(shù)據(jù)的數(shù)目,而P是延遲數(shù);所述控制程序描述用于使計(jì)算機(jī)對N個(gè)輸入數(shù)據(jù)的序列完成一個(gè)和積計(jì)算的流程,所述流程執(zhí)行下述步驟一個(gè)在濾波處理的初始設(shè)定時(shí)間中的初始設(shè)定步驟,在該步驟中把0存儲(chǔ)在從所述直線陣列的第一端開始的順序連接的P個(gè)延遲元件中,并按照輸入數(shù)據(jù)序列的次序,把N個(gè)輸入數(shù)據(jù)存儲(chǔ)在依次從所述直線陣列第一端朝向第二端計(jì)數(shù)的第P+1個(gè)延遲元件開始的N個(gè)延遲元件中;一個(gè)把從所述直線陣列的第一端開始計(jì)數(shù)的第P+j(1≤j≤N)個(gè)延遲元件指定為用于根據(jù)所述輸入數(shù)據(jù)的順序存儲(chǔ)第j個(gè)和積計(jì)算的第一項(xiàng)數(shù)據(jù)的延遲元件的步驟;一個(gè)通過下述操作完成第j個(gè)和積計(jì)算的步驟從P+j個(gè)延遲元件開始朝向所述第一端,依次指定包括所述第P+j個(gè)延遲元件在內(nèi)的P+1個(gè)延遲元件;根據(jù)依次指定的延遲元件中存儲(chǔ)的數(shù)據(jù),使第P+j個(gè)延遲元件中存儲(chǔ)的數(shù)據(jù)成為第j個(gè)和積計(jì)算的第一項(xiàng);依次將其它數(shù)據(jù)與P個(gè)預(yù)定分支系數(shù)相乘;將這些相乘的結(jié)果與所述第j個(gè)和積計(jì)算的第一項(xiàng)累加在一起;以及一個(gè)在完成第N個(gè)和積計(jì)算后立即結(jié)束數(shù)字濾波器處理的步驟。
7.一種具有如權(quán)利要求1所述的數(shù)字濾波器的通用計(jì)算機(jī)。
全文摘要
本發(fā)明的延遲器件的陣列延遲元件的數(shù)目等于依次輸入的數(shù)據(jù)數(shù)目N與延遲數(shù)P的總和。在濾波器處理的初始設(shè)定時(shí),將O存儲(chǔ)在從陣列第一端開始的P個(gè)延遲元件中,按照輸入數(shù)據(jù)的序列順序,把N個(gè)輸入數(shù)據(jù)存儲(chǔ)在依次從所述直線陣列第一端朝向第二端計(jì)數(shù)的第P+1個(gè)延遲元件開始的N個(gè)延遲元件中。第一指定裝置指定一個(gè)用于存儲(chǔ)和積計(jì)算的第一項(xiàng)數(shù)據(jù)的延遲元件,然后使指定的位置在相應(yīng)于延遲器件的延遲時(shí)間的每個(gè)時(shí)間間隔內(nèi)移位。第二指定裝置指定的延遲元件用于存儲(chǔ)需要與分支系數(shù)相乘的數(shù)據(jù)。
文檔編號H03H17/06GK1254988SQ99123928
公開日2000年5月31日 申請日期1999年9月29日 優(yōu)先權(quán)日1998年9月29日
發(fā)明者三棲勝哉 申請人:日本電氣株式會(huì)社