專利名稱:包括至少一個編碼器的傳輸系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及包括至少一個對信號進(jìn)行編碼的編碼器、至少一個用于將編碼信號傳輸給至少一個接收機(jī)的發(fā)射機(jī)、至少一個對被編碼信號進(jìn)行譯碼的譯碼器和至少一個自適應(yīng)預(yù)測濾波器的傳輸系統(tǒng)。
本發(fā)明也涉及終端單元、編碼器、譯碼器和自適應(yīng)預(yù)測濾波器。
這樣的傳輸系統(tǒng)可以毫無困難地從例如1993年3月29-30日,倫敦,CCITT(國際電話和電報咨詢委員會)第15調(diào)查小組的文件入口(Doc.AH.)為93-D.3的文件“G.728定點(diǎn)規(guī)程草案”和從CCITT建議G.728“利用低延遲編碼激勵的線性預(yù)測以每秒16千位編碼語音信號”中找到。這兩個文件今后將以[I]和[II]來表示。當(dāng)要進(jìn)行給定傳輸能力的多重使用時,總是可以應(yīng)用這樣的傳輸系統(tǒng)。在編碼期間信號位速率的減小使得可以例如通過一個每秒64千位的傳輸信道同時進(jìn)行四個電話通話。
給定傳輸能力的多重使用在無線電信道中非常重要,如果考慮到移動無線電系統(tǒng)用戶的不斷增加,就很容易理解這一點(diǎn)。當(dāng)使用了位速率減小的編碼器和合適的譯碼器時,還可以更加有利地使用具有任意的存儲媒介的存儲器的存儲容量,這是因?yàn)闉榱舜鎯π畔⑿盘査枰拇鎯臻g校小。
線性預(yù)測用于位速率降低是公知的。在[I]和[II]中,用自適應(yīng)預(yù)測濾波器計(jì)算預(yù)測系數(shù)。利用輔助信號的樣值逐段地進(jìn)行這一計(jì)算。輔助信號可以是例如來自人的(電)音頻信號或語音信號?;蛘?,輔助信號也可以是在按照“通過綜合進(jìn)行分析”原理工作的編碼器中產(chǎn)生的合成音頻或語音信號。利用預(yù)測系數(shù)獲得了輔助信號的預(yù)測樣值(預(yù)測值)和該信號的以前樣值之間的線性相關(guān)。這樣地來確定預(yù)測系數(shù),以使得對一部分樣值所計(jì)算出的全部誤差的平方和為最小值。誤差在此被理解為樣值和其預(yù)測值之差。時此,在下面將給出更準(zhǔn)確的說明。
在[I]和[II]中,被激勵的信號被綜合濾波器轉(zhuǎn)換為合成音頻信號。這一合成音頻信號與要被編碼的音頻信號相減,其差值被用來使被激勵信號的選擇最佳化。
預(yù)測系數(shù)的計(jì)算需要有從合成音頻信號的樣值獲得的相關(guān)系數(shù)。根據(jù)相關(guān)系數(shù)計(jì)算預(yù)測系數(shù)需要許多電路和大量的費(fèi)用。為了減少這些電路和費(fèi)用,以遞推方式計(jì)算預(yù)測系數(shù)。首先,根據(jù)兩個第一相關(guān)系數(shù)計(jì)算第一反射系數(shù)。從第一反射系數(shù)獲得第一預(yù)測系數(shù)。此外,還計(jì)算預(yù)測誤差,該預(yù)測誤差表示預(yù)測的質(zhì)量。其次,利用下一個相關(guān)系數(shù)、以前計(jì)算的預(yù)測系數(shù)以及當(dāng)前的預(yù)測誤差來確定第二反射系數(shù)。利用第二反射系數(shù)和以前計(jì)算的預(yù)測系數(shù)(此時只考慮第一預(yù)測系數(shù))重新計(jì)算以前計(jì)算的預(yù)測系數(shù)。然后計(jì)算第二預(yù)測系數(shù)和新的預(yù)測誤差。多次地重復(fù)對以前計(jì)算的預(yù)測系數(shù)的重新計(jì)算和對下一個預(yù)測系數(shù)的計(jì)算,以便使得所有必需的預(yù)測系數(shù)都已知。
在[II]中,用浮點(diǎn)算法來獲得足夠的精度。浮點(diǎn)算法的缺點(diǎn)是要求的電路很龐大。為此,在[I]中提出使用16位定點(diǎn)算法,在該算法中,計(jì)算的結(jié)果和中間結(jié)果保持所謂的成組浮點(diǎn)格式(block floatingpoint format)。這被理解為一組數(shù)的浮點(diǎn)格式的表示,但是,由于這一約束,該組中的所有數(shù)具有相同的階碼(以2為基數(shù))。這樣選擇該公共階碼,使得所有的尾數(shù)在預(yù)定范圍之內(nèi)。在[I]中建議所有的尾數(shù)在-1和+1之間。例如在成組浮點(diǎn)格式中,根據(jù)以往經(jīng)驗(yàn),所示的預(yù)測系數(shù)呈現(xiàn)其數(shù)量級可以為10的值。如果在重新計(jì)算預(yù)測系數(shù)時出現(xiàn)了例如溢出,即如果重新計(jì)算的預(yù)測系數(shù)將為1或大于1,則所有以前計(jì)算的預(yù)測系數(shù)的尾數(shù)將被除以2,并且公共階碼(以2為基數(shù))將增值1。然后再開始重新計(jì)算。由于溢出所導(dǎo)致的成組浮點(diǎn)格式的改變在此將稱作成組浮點(diǎn)格式的修改。對于重復(fù)的重新計(jì)算,只需要以前計(jì)算的預(yù)測系數(shù)的尾數(shù),并且只有16位的分辨率。將分辨率從至少17位降低到16位(對于計(jì)算來說這往往是有必要的),可以以不同的方式實(shí)現(xiàn)。將通過舉例來說明根據(jù)[I]的降低方式。例如,如果以17位的分辨率剛剛計(jì)算了第三反射系數(shù)(在第三反射系數(shù)和將要從第三反射系數(shù)獲得的第三預(yù)測系數(shù)之間只有數(shù)值表示方面的差別),就通過舍入將其縮短為16位,這樣就能夠以16位的定點(diǎn)算法來重新計(jì)算兩個第一預(yù)測系數(shù)。如果在該重新計(jì)算期間有溢出,則在重新計(jì)算結(jié)束時被舍入的第三反射系數(shù)例如也被除以2,具有16位分辨率的結(jié)果被作為第三預(yù)測系數(shù)的尾數(shù)進(jìn)行存儲。除法運(yùn)算在16位(包括符號位)之后停止。由于二進(jìn)制的緣故,這一操作相應(yīng)于小數(shù)點(diǎn)移動一位而最低有效位被刪去。這一過程使不準(zhǔn)確性(特別是對于大量的預(yù)測系數(shù))大到不能被接受。
本發(fā)明的目的是提高在開頭一段所述類型的傳輸系統(tǒng)中進(jìn)行編碼時的計(jì)算準(zhǔn)確性而不增大計(jì)算工作量。具有這一特性的傳輸系統(tǒng)包括
至少一個對信號進(jìn)行編碼的編碼器;至少一個將已編碼信號發(fā)送給至少一個接收機(jī)的發(fā)射機(jī);至少一個對已編碼信號進(jìn)行譯碼的譯碼器;以及至少為編碼器提供的至少一個自適應(yīng)預(yù)測濾波器,該自適應(yīng)預(yù)測濾波器包括根據(jù)輔助信號的部分樣值計(jì)算相關(guān)系數(shù)的裝置,該輔助信號依賴于該信號或譯碼信號;以及根據(jù)相關(guān)系數(shù)以N位定點(diǎn)算法確定反射和預(yù)測系數(shù)的裝置;該傳輸系統(tǒng)還包括以下裝置,以便遞推地確定將以成組浮點(diǎn)格式表示的預(yù)測系數(shù)a)用于計(jì)算具有N+1位的最小分辨率的第K個反射系數(shù)的裝置;b)用于緩沖具有N+1位的最小分辨率的第K個反射系數(shù)的裝置;c)用于確定具有N位分辨率的第K個反射系數(shù)的裝置;d)一種重算裝置,用于在利用在c)中獲得的第K個反射系數(shù)的同時重新計(jì)算K-1個以前計(jì)算的預(yù)測系數(shù);e)一種修改裝置,用于如果在K-1個以前計(jì)算的預(yù)測系數(shù)的重新計(jì)算期間出現(xiàn)了溢出、從而使N位不再足以表示重新計(jì)算的預(yù)測系數(shù)時,就修改該K-1個預(yù)測系數(shù)的成組浮點(diǎn)格式;f)一種轉(zhuǎn)換裝置,用于將在b)中被緩沖的第K個反射系數(shù)轉(zhuǎn)換為浮點(diǎn)格式的數(shù),該數(shù)的階碼用在e)中確定的成組浮點(diǎn)格式的階碼來表示,該數(shù)的尾數(shù)具有至少N+1位的分辨率;g)用于將在f)中獲得的第K個反射系數(shù)的尾數(shù)舍入為N位的裝置;以及h)用于將在g)中獲得的第K個反射系數(shù)作為第K個預(yù)測系數(shù)進(jìn)行存儲的裝置。
本發(fā)明的傳輸系統(tǒng)與[I]描述的傳輸系統(tǒng)的不同之處在于在第K個反射系數(shù)的第一次計(jì)算之后以N+1位的最小精度對其進(jìn)行緩沖。對于K-1個以前計(jì)算的預(yù)測系數(shù)的重新計(jì)算,所使用的是這樣的值,該值被限為N位,從而不同于被緩沖的值。如果在重新計(jì)算K-1個以前計(jì)算的預(yù)測系數(shù)期間出現(xiàn)了溢出,在重新計(jì)算結(jié)束之后就用例如2來除該被緩沖的值,然后將其舍入為N位。這種在(修改的)成組浮點(diǎn)格式中體現(xiàn)第K個預(yù)測系數(shù)的方法產(chǎn)生了最多與在[I]中的相應(yīng)誤差一樣大的誤差。但是,同等重要的是發(fā)現(xiàn)了本發(fā)明中的誤差的正負(fù)符號出現(xiàn)的次數(shù)是相等的,這一點(diǎn)與[I]不同。
利用兩個簡單的例子來證實(shí)這些斷言。
假定可用3(N=3)位來表示結(jié)果、可用至少4位來表示中間結(jié)果。還假定由于溢出,修改需要除以4。以定點(diǎn)表示的具有4位分辨率的第K個反射系數(shù)的數(shù)值實(shí)例如下在第一個實(shí)例中,第K個反射系數(shù)具有的值為+5/8。在二進(jìn)制系統(tǒng)中,該反射系數(shù)被表示為0.101,第一個零表示符號。根據(jù)[I],有以下步驟a)0.101(第K個反射系數(shù)+5/8,具有4位分辨率);b)0.11(a)的值舍入為3位,以便重新計(jì)算K-1個以前計(jì)算的預(yù)測系數(shù));c)0.00(b)的值被除以4,也具有3位分辨率。該值是以2為階碼和以2為基數(shù)的成組浮點(diǎn)格式的第K個反射系數(shù)的尾數(shù))為了作出用近似c)來代替a)時關(guān)于誤差的斷言,c)將首先再被乘以4。如此獲得的值和輸出值的差就是誤差F。在當(dāng)前的情形中(表示為分?jǐn)?shù)),F(xiàn)=(-5/8)=-5/8。
與此相反,根據(jù)本發(fā)明有a)0.101(第K個反射系數(shù)+5/8,具有4位分辨率),b)0.001(a)的值被除以4,也具有4位分辨率),c)0.01(b)的值舍入為3位)。與上述斷言類似,現(xiàn)在得到誤差F=(1-5/8)=3/8。如果0.011(+3/8)被選作輸出值,根據(jù)[I]的同一方案,對于誤差有值F=(0-3/8)=-3/8。根據(jù)本發(fā)明,現(xiàn)在有F=(0-3/8)=-3/8。不應(yīng)以這樣的方式來理解以上指出的、以及還將在下面指出的裝置的次序,即它們在時間上也以這樣的次序被啟動。
本發(fā)明的另一實(shí)施例包括用于對已被重新計(jì)算和尚未被重新計(jì)算的K-1個預(yù)測系數(shù)的成組浮點(diǎn)格式進(jìn)行修改的裝置;以及用于對于已出現(xiàn)溢出的預(yù)測系數(shù)繼續(xù)進(jìn)行K-1個預(yù)測系數(shù)的重新計(jì)算的裝置。
如果在預(yù)測系數(shù)的重新計(jì)算期間出現(xiàn)溢出,根據(jù)[I],只修改以前計(jì)算的預(yù)測系數(shù)的浮點(diǎn)格式,然后再從頭開始重新計(jì)算。與此相反,本發(fā)明的實(shí)施例免除了計(jì)算電路的不少部分,特別在有大量系數(shù)的場合。
現(xiàn)在參看附圖描述本發(fā)明及其實(shí)施例,在附圖中
圖1表示可在其中應(yīng)用本發(fā)明的特定的傳輸系統(tǒng),
圖2表示自適應(yīng)預(yù)測濾波器的基本電路圖,圖3表示語音編碼器的基本電路圖,圖4表示闡明本發(fā)明和已有技術(shù)之間的差別的圖示。
圖1表示一個在發(fā)射側(cè)包括編碼器101和發(fā)射機(jī)102且在接收側(cè)包括接收機(jī)103和譯碼器104的傳輸系統(tǒng)。編碼器101與發(fā)射機(jī)102的組合和/或接收機(jī)103與譯碼器104的組合構(gòu)成終端單元LE。
編碼器101利用自適應(yīng)預(yù)測濾波器10A來編碼語言信號10a。根據(jù)本發(fā)明,該濾波器具有在下面將會清楚的特性。語言信號10a具有每秒64千位的位速率。編碼器101將該位速率減小到已編碼信號10b的位速率。已編碼信號10b的位速率為每秒16千位。信號10b由語音信號10a的參數(shù)組成,這些參數(shù)被逐部分地確定。
發(fā)射機(jī)102利用圖示的傳輸信道將已編碼信號10b(如果需要,可被轉(zhuǎn)換為傳輸碼)發(fā)送給接收機(jī)103,接收機(jī)103將該發(fā)送信號轉(zhuǎn)換為信號10c,除了編碼和傳輸誤差外,該信號10c對應(yīng)于信號10b。
譯碼器104也利用自適應(yīng)預(yù)測濾波器10B來譯碼信號10c。譯碼結(jié)果是信號10d。除了編碼、譯碼和傳輸誤差外,信號10d對應(yīng)于語音信號10a。自適應(yīng)預(yù)測濾波器10A和10B按照“列文森-德賓(Levinson-Durbin)遞推”來確定與信號相關(guān)的濾波系數(shù)(預(yù)測系數(shù))。“列文森-德賓遞推”是以逐步的方式確定一組線性方程的解的算法,該組方程的系數(shù)矩陣是Tplitz矩陣,即沿著給定的對角線具有相同元素的對稱矩陣。
自適應(yīng)預(yù)測濾波器的NCOF個預(yù)測系數(shù)(NCOF代表這些系數(shù)的個數(shù))不容置疑地是這一要求的結(jié)果,即預(yù)測誤差平方之和作為給定長度的信號部分的平均數(shù)應(yīng)為最小。
例如,如果樣值S(K)施加到濾波器的輸入端,則以下線性組合就將是在時刻n的濾波器的輸出值y(n)=Σi=1NCOFa(i)*s(n-i)---(1)]]>該值y(n)被認(rèn)為是預(yù)測樣值s(n)。在用包括LSEG樣值的部分來形成誤差平方之和時Σi=0LSEG-1[y(n+i)+s(n+i)]2---(2)]]>如果將(1)代入(2)、同時在(2)中使系數(shù)a(i)最小,則如果將在這一部分之外的樣值設(shè)定為零就產(chǎn)生了Tplitz矩陣。在這種情況下,Tplitz矩陣的元素就是在輸入信號的取樣時刻該輸入信號自相關(guān)函數(shù)的值,此后該函數(shù)將被稱為自相關(guān)系數(shù)r(minc)。在Prentice-Hall出版社1978年出版的、作者為L.R.Rabiner/R.W.Schafer的《Digital Processing of Speech Signals(語音信號的數(shù)字處理)》中可以找到對“列文森-德賓遞推”的詳細(xì)描述。
被Rabiner/Schafer以公式(8.67)至(8.72)表示的“列文森-德賓遞推”的算法在下面被表示為偽代碼,這是因?yàn)樵摯a容許對算術(shù)單元將執(zhí)行的、用于計(jì)算預(yù)測系數(shù)的程序步進(jìn)行更好的檢測的緣故。
“列文森-德賓遞推”(偽代碼)輸入值NCOF=預(yù)測系數(shù)r(0)…r(NCOF)=自相關(guān)系數(shù)輸出值a(0)…a(NCOF)=預(yù)測系數(shù)
<pre listing-type="program-listing"><![CDATA[a(0)=1.0O1a(1)=-r(1)/r(0) O2alpha=r(0)+r(1)*a(1) O3For minc=2,3,4,...,NCOF O4{sum=0 O5for ip=0,1,2,3,...,minc-1 O6sum=sum+r(minc-ip)*a(ip) O7 O8rc=-sum/alpha O9alpha=alpha+sum*rc O10 O11 if(alpha<=0.0)breakO12 O13For ip=1,2,3,...,minc/2 O14{R1=a(ip)+rc*a(minc-ip))O15 R2=a(minc-ip)+rc*a(ip))O16a(ip)=R1O17a(minc-ip)=R2 O18}O19a(minc)=rcO20}O21]]></pre>為了使在偽代碼中給出的程序步更加清楚,將進(jìn)一步說明上述的幾行算法。
需要將帶有NCOF和NCOF+1自相關(guān)系數(shù)名的預(yù)測系數(shù)作為輸入數(shù)據(jù)。預(yù)測系數(shù)NCOF與公式(1)中的濾波系數(shù)a(i)的個數(shù)相等。通過在此沒有描述、但本領(lǐng)域技術(shù)人員公知的其它功能部件來確定自相關(guān)系數(shù)r(0)、r(1)等、直至r(NCOF)。
預(yù)測系數(shù)a(0)、a(1)等、直至a(NCOF)是輸出數(shù)據(jù)。
行O1和O2包括對兩個第一預(yù)測系數(shù)的賦值。在行O3中對輔助變量alpha(NCOF=1的預(yù)測誤差)賦值,其被加數(shù)是第零個自相關(guān)系數(shù),其加數(shù)是第一相關(guān)系數(shù)和第一預(yù)測系數(shù)的乘積。
如果預(yù)測系數(shù)NCOF等于1,計(jì)算就結(jié)束了,否則,就進(jìn)行具有游動變量minc的循環(huán),該變量取從2至NCOF的所有整數(shù)。在對于游動變量minc的循環(huán)中,如行O17和108所示,所有以前計(jì)算的預(yù)測系數(shù)a(1)、a(2)等、直至a(minc-1)都被改變(重新計(jì)算)。在對于游動變量minc的當(dāng)前值要被執(zhí)行的全部指令結(jié)束時,如行O20所示,就對具有記號minc的預(yù)測系數(shù)賦值。這一預(yù)測系數(shù)將被記作第K個預(yù)測系數(shù);對于游動變量minc的當(dāng)前值被第一次計(jì)算的變量sum和rc(反射系數(shù))將得到相同的增加。
在具有游動變量minc的循環(huán)中還進(jìn)行了兩個另外的循環(huán),這兩個循環(huán)不交錯并具有游動變量ip,如行O6和O14所示,該變量的上限值依賴于游動變量minc的當(dāng)前值。
輔助變量是名為alpha、sum、rc、R1和R2的那些變量。輔助變量alpha是根據(jù)公式(2)的誤差平方之和,并且還具有說明意義alpha是誤差信號(預(yù)測誤差)的能量值。該值總是正的。因此,如行O12所示,如果alpha的值小于或等于零,就停止計(jì)算。變量rc也具有說明意義它是在所謂聲道(vocal tract)的管狀模型中起作用的所謂反射系數(shù)。如行O9所示,作為輔助變量sum和alpha的商出現(xiàn)的反射系數(shù)屬于每個預(yù)測系數(shù)。
根據(jù)自適應(yīng)濾波器的哪一個系數(shù)要被計(jì)算,語音編碼方法的大多數(shù)實(shí)時實(shí)現(xiàn)都基于16位定點(diǎn)算術(shù)單元,同時中間結(jié)果可以以增強(qiáng)的精度(例如32位)而局部地獲得?!傲形纳f推”的結(jié)果的精度決定性地取決于遞推中的計(jì)算精度。就計(jì)算精度而言,在偽代碼中的最敏感的位置,就是可以以較高的分辨率得到乘法和除法的中間結(jié)果后再將這些中間結(jié)果降低為簡單的分辨率的位置。它們特別是行O2、O3、O7、O9、O10、O15、O16和O20。
參看以下偽代碼描述以16位定點(diǎn)算法實(shí)現(xiàn)“列文森-德賓遞推”的模塊。首先介紹幾個定義>>右移操作<<左移操作round(reg)用32位寬的寄存器“reg”進(jìn)行的舍入操作。假定在“reg”中的位被編號為0、1、2、…、31,符號位是位31,以及每個位的權(quán)從位30向位0減小。具有16位精度的舍入就意味著位15與位16相加、此后位16至31就被作為結(jié)果。
*2*定點(diǎn)乘法;/定點(diǎn)除法;由于執(zhí)行除法的代價是非常高昂的,所以只對于絕對必要的位置才準(zhǔn)確地計(jì)算除法的結(jié)果。除法的結(jié)果在存儲結(jié)果的寄存器中右齊平。
xh指32位字x的16個最高有效位。
xl指32位字x的16個最低有效位。
16位定點(diǎn)“列文森遞推”(偽代碼)
<pre listing-type="program-listing"><![CDATA[EXPa=0; X1den=r
; X2 num=r[1]; X3if(num<0)num=-num; X4a2=num/den; X5a2=a2<<15; X6 a1=round(a2); X7if(r[1]>0)a1=-a1; X8rc1=a1h; X9a[1]=a1h; X10a01=0;X11a0h=r
; X12a0=a0+rc1*2*r[1]; X13a0=round(a0); X14alpha=a0h;X15for(minc=2;minc<=NCOF;minc++)X16{a0=0; X17for(ip=1;ip<minc;ip++) X18a0=a0+r[minc-ip]*2*a[ip] X19X20a0=a0<<EXPa;X21a11=0;X22a1=r[minc];X23a0=a0+a1; X24a0=round(a0); X25sign=a0h;X26num=a0h; X27if(num<0)num=-num;X28if(num>=alpha) X29goto LEDUMO_failed; X30a2=num/alpha; X31a2=a2<<15; X32a1=round(a2);X33if(a0>0)a1=-a1; X34rc=a1h; X35 X36a11=0; X37a1h=alpha; X38a1=a1+rc*2*a0h; X39a1=round(a1); X40if(alpha<=0) X41goto LEDUMO_failed;X42alpha=a1h; X43 X44a0=0; X45a1=0; X46for(ip=1;ip<=(minc>>1);ip++) X47{a0h=a[ip];X48a0=a0+rc*2*a[minc-ip]; X49a0=round(a0);X50If(overflow in a0)) X51{EXPa=EXPa+1; X52for(lp=1;lp<minc;lp++) X53a[lp]=a[lp]>>1; X54a0h=a[ip]; X55a0=a0+rc*2*a[minc-ip]; X56a0=round(a0);X57} X58 a1h=a[minc-ip]; X59a1=a1+rc*2*a[ip]; X60a1=round(a1); X61If(overflow in a1) X62{EXpa=EXPa+1; X63for(lp=1;lp<minc;lp++)X64a[lp]=a[lp]>>1;X65a0h=a[ip];X66a0=a0+rc*2*a[minc-ip]; X67a0=round(a0); X68a1h=a[minc-ip]; X69a1=a1+rc*2*a[ip]; X70a1=round(a1); X71 } X72 a[ip]=a0h; X73 a[minc-ip]=a1h; X74} X75a2=a2>>EXPa; X76a2=round(a2);X77if(sign>0)a2=-a2; X78a[mihc]=a2h; X79} X80a
=EXPa; X81return; X82 X83LEDUMO_failed X84a
=-1;X85return; X86]]></pre>偽代碼說明在定點(diǎn)表示中,預(yù)測系數(shù)a[i]只能取-1、0和+1、0之間的值。但是,由于在遞歸期間系數(shù)a[i]會超過1、0(行X47…X75),所以以成組浮點(diǎn)格式來表示所有的系數(shù)a[i]。這就是說,所有預(yù)測系數(shù)被歸一化為公共基數(shù)2EXPa,因此所有歸一化的預(yù)測系數(shù)的尾數(shù)又處在-1、0和+1、0之間。在“列文森遞推”的開始時還未計(jì)算系數(shù),因此階碼EXPa被設(shè)為0(行X1)。
因?yàn)椴恍枰儆?jì)算a(0)=1.0,所以在此不執(zhí)行O1。
在具有游動變量minc的循環(huán)中類似地變換行O2和O3。因此下面說明定點(diǎn)分辨率。
首先描述行O5至O7的定點(diǎn)實(shí)現(xiàn)在行X17和X19,a0表示32位寬的累加寄存器。乘輸入寄存器裝入自相關(guān)系數(shù)r[minc-ip]。另一乘輸入寄存器裝入以前計(jì)算的、歸一化的預(yù)測系數(shù)a[ip]的尾數(shù);對于所有這些系數(shù),相關(guān)的階碼EXPa是一樣的。應(yīng)當(dāng)特別指出,因?yàn)椴槐卦俪艘詀
=1,所以系數(shù)a
沒有被包括在歸一化中。
在行X21,通過左移位裝置將累加的最后結(jié)果(先不包括a
*2*r[minc]部分)從浮點(diǎn)表示縮短為定點(diǎn)表示,以便對在累加器a0中的32位結(jié)果進(jìn)行歸一化。
在行X22至X24中,在使用另一個32位寬的寄存器a1時將a
*2*r[minc]部分加起來。應(yīng)當(dāng)指出,由于寄存器a1的使用,輔助寄存器a1仍然能夠在其它位置保持以前的值,所以寄存器a1的下部將被刪除。
在行X25至X28,預(yù)備用于除法的計(jì)數(shù)器頂(counter term),以便計(jì)算當(dāng)前(第K個)反射系數(shù)rc。除法需要具有16位數(shù)據(jù)寬度的正的輸入數(shù)據(jù),在行X25通過對在a0中的32位寬的結(jié)果進(jìn)行舍入操作可獲得這一輸入數(shù)據(jù)。
直接對在除法器單元的輸入端的寄存器進(jìn)行裝入,以便進(jìn)行用于當(dāng)前(第K個)反射系數(shù)rc的計(jì)算的除法計(jì)算。在此應(yīng)當(dāng)指出,在[I]中執(zhí)行除以從行X24的a0恢復(fù)的alpha和num的浮點(diǎn)值的除法。這就對應(yīng)著所需計(jì)算速度的顯著增大。
以17位的精度來計(jì)算行X31中的除法的結(jié)果,第17位對舍入操作是必需的。在行X33和行X77進(jìn)行這一舍入,以便分別計(jì)算當(dāng)前(第K個)反射系數(shù)和當(dāng)前(第K個)預(yù)測系數(shù)。在行X32,在舍入操作之前,使該除法的結(jié)果(它的17位被右側(cè)對齊地存儲在32位寬的寄存器92中)適應(yīng)于固定設(shè)置的小數(shù)點(diǎn)。在行X34已使用了正確的符號之后,通過讀出上部的16位寬的字a1h,從而最后就從32位寬的寄存器a1的上部獲得了當(dāng)前反射系數(shù)rc。
在行X37至X40,以已知的方式計(jì)算alpha的新值,但是所有的輸入和輸出變量都以16位定點(diǎn)格式來表示。在此也要特別指出這一事實(shí)在[I]中的這一位置,以alpha和a0h(a0h相應(yīng)于行O9中的sum)的浮點(diǎn)表示來進(jìn)行計(jì)算,這相應(yīng)于所需計(jì)算速度的顯著增大。
在行X45至X47,修改以前計(jì)算的預(yù)測系數(shù)(重新計(jì)算和成組浮點(diǎn)格式的修改)。這相應(yīng)于從行O15至O18的操作。要注意的是,如果在分別重新計(jì)算預(yù)測系數(shù)a[ip]和a[minc-ip]時出現(xiàn)了溢出,所有系數(shù)(即已經(jīng)被重新計(jì)算和尚未被重新計(jì)算的系數(shù),就是以前計(jì)算的系數(shù))a[1]、a[2]、…a[minc-1]就被減小1/2(=分別在行X54和X65右移1位)。當(dāng)分別在行X55、X56、X57和X66至X71進(jìn)行重新計(jì)算時,就再也不會出現(xiàn)溢出。
在已經(jīng)結(jié)束了對舊的(以前計(jì)算的)系數(shù)的調(diào)整之后,就根據(jù)rc計(jì)算新的(第K個)預(yù)測系數(shù)a[minc](見行O20)。應(yīng)當(dāng)指出,在定點(diǎn)格式中,新的(第K個)系數(shù)也以成組浮點(diǎn)格式被存儲。因此,以上計(jì)算的、可以以非規(guī)一化的定點(diǎn)格式得到的反射系數(shù)rc在右移EXPa位之后被存儲在a[minc]中。對于在此給出的解法,仍被存儲在寄存器a2中并且具有17位分辨率的反射系數(shù)首先被右移EXPa位,然后以16位的精度被舍入。這是與在[I]中發(fā)表的解法完全不同的,在[I]中,在除法運(yùn)算之后已被直接舍入的反射系數(shù)被右移EXPa位并且通過被限制成16位而得到新的預(yù)測系數(shù)。在這一位置處的明顯不同導(dǎo)致了在此描述的“列文森遞推”的16位定點(diǎn)實(shí)施方案,這一定點(diǎn)實(shí)施方案產(chǎn)生了更好的結(jié)果,即計(jì)算所花費(fèi)的代價顯著地比[I]中所示的解法少。
圖2表示自適應(yīng)預(yù)測濾波器。這樣的預(yù)測濾波器包括狹義上的濾波器2和控制單元1。狹義上的濾波器2按照公式(1)產(chǎn)生輸出值y(n)并通過導(dǎo)線a2將它們輸出。通過導(dǎo)線b1給狹義上的濾波器2和控制單元提供輸入值S(n)。
控制單元1可再被粗略地細(xì)分為兩個功能部件1A和1B。功能部件1A根據(jù)一部分輸入信號計(jì)算相關(guān)系數(shù)并將這些值傳送給功能部件1B,功能部件1B根據(jù)這些值、通過利用以上描述的裝置來歸納公式(2)從而確定新的預(yù)測系數(shù)。控制單元1然后通過導(dǎo)線b1由部件1B計(jì)算的整組系數(shù)來代替到目前為止使用的預(yù)測系數(shù)。所述包括功能部件1B的濾波器可以在現(xiàn)代的語音編譯碼器中被多次使用。
圖3表示預(yù)測語音編碼器,利用該語音編碼器,已編碼的語音信號也被譯碼,以便改善編碼。因此,省略了對譯碼器的專門描述。
要被編碼的語音信號通過導(dǎo)線6a以樣值的形式提供給編碼器。減法器6從該要被編碼的語音信號中減去又被該編碼器譯碼的語音信號的恰當(dāng)?shù)闹?,該語音信號通過導(dǎo)線4a提供給減法器6。通過導(dǎo)線6b將差值傳送給部件9,該部件9求該差值信號的頻譜加權(quán)(為了進(jìn)行廣泛的表示,請比較例如1990年IEEE S9.1第453至456頁上CHEN,J.H.的HIGH-QUALITY 16 KB/S SPEECH CODINGWITH A ONE-WAY DELAY LESS THAN 2MES(單向延遲小于2微秒的高質(zhì)量每秒16千位的語音編碼)),此后,對于部分語音信號形成和存儲誤差平方之和。對于在導(dǎo)線6a上的部分語音信號,檢測128個不同的編碼任選項(xiàng),最后,將產(chǎn)生最小誤差的任選項(xiàng)作為代碼信號傳送給接收機(jī)。
這128個任選項(xiàng)來自于這一事實(shí)標(biāo)號為1的代碼簿存儲了128個所謂的矢量。每一矢量是樣值的一個序列,該序列包括對信號的模擬,利用該對信號的模擬可以例如激勵人的聲道諧振。從代碼簿1中順序地讀出矢量并利用可控定標(biāo)器2對它們進(jìn)行定標(biāo)(這相應(yīng)于在人的聲音產(chǎn)生時對音量的控制)。定標(biāo)器2由部件3進(jìn)行控制。然后,被定標(biāo)的矢量傳送給具有后向預(yù)測作用的預(yù)測器4、5和8。預(yù)測器形成了對人的聲道動作的仿照。它包括如圖2所示的濾波器5、8。此外,這樣的濾波器被包括在部件3和9中。通過導(dǎo)線1a傳送例如已在當(dāng)前語音信號部分中導(dǎo)致最小誤差的矢量的編號。
圖4以圖示形式說明以上關(guān)于兩個例子的描述內(nèi)容,就是說,說明了由于以成組浮點(diǎn)格式將具有尾數(shù)的預(yù)測系數(shù)轉(zhuǎn)換為3位,本發(fā)明總的來說產(chǎn)生了比已有技術(shù)(I)好的結(jié)果。輸出數(shù)據(jù)都是具有4位分辨率的正二進(jìn)制數(shù)。在圖4中,上面的圖表示了以二進(jìn)制表示的輸出數(shù)據(jù)的賦值(省略了符號位)相對于它們的分?jǐn)?shù)表示,這樣使得對下面的兩幅圖的核實(shí)更為容易。
中間的圖表示在輸出數(shù)據(jù)首先按照[I]被舍入、然后尾數(shù)以3位的分辨率被計(jì)算時產(chǎn)生的誤差F。
下面的圖表示在尾數(shù)首先以4位的分辨率被計(jì)算、然后被舍入為3位時產(chǎn)生的誤差F。誤差F的比例在兩種情形中都是相同的,并且對應(yīng)于上面的圖的比例。
權(quán)利要求
1.一種終端設(shè)備(LE),其特征在于包括至少一個編碼器(101)和一個發(fā)射機(jī)(102)或至少一個接收機(jī)(103)和一個譯碼器(104),和至少一個自適應(yīng)預(yù)測濾波器(10A,10B),該自適應(yīng)預(yù)測濾波器包括根據(jù)輸入信號的部分樣值計(jì)算相關(guān)系數(shù)的裝置,以及根據(jù)相關(guān)系數(shù)以N位定點(diǎn)算法確定反射和預(yù)測系數(shù)的裝置;該終端設(shè)備還包括以下裝置,以便遞推地確定將以成組浮點(diǎn)格式表示的預(yù)測系數(shù)a)用于計(jì)算具有N+1位的最小分辨率的第K個反射系數(shù)的裝置(X31);b)用于緩沖具有N+1位的最小分辨率的第K個反射系數(shù)的裝置(a2);c)用于確定具有N位分辨率的第K個反射系數(shù)的裝置(X33);d)裝置(X74,X75),用于在利用在c)中獲得的第K個反射系數(shù)的同時重新計(jì)算K-1個以前計(jì)算的預(yù)測系數(shù);e)裝置(X51-X58;X62-X72),用于如果在K-1個以前計(jì)算的預(yù)測系數(shù)的重新計(jì)算期間出現(xiàn)了溢出,從而使N位不再足以表示重新計(jì)算的預(yù)測系數(shù)時,就修改該K-1個預(yù)測系數(shù)的成組浮點(diǎn)格式;f)裝置(X76),用于將在b)中被緩沖的第K個反射系數(shù)轉(zhuǎn)換為成組浮點(diǎn)格式的數(shù),該數(shù)的階碼用在e)中確定的成組浮點(diǎn)格式的階碼來表示,該數(shù)的尾數(shù)具有至少N+1位的分辨率;g)用于將在f)中獲得的第K個反射系數(shù)的尾數(shù)舍入為N位的裝置(X77);以及h)用于將在g)中獲得的第K個反射系數(shù)作為第K個預(yù)測系數(shù)進(jìn)行存儲的裝置(X79)。
2.如權(quán)利要求3的終端設(shè)備,其特征在于還包括對已被重新計(jì)算和尚未被重新計(jì)算的K-1個預(yù)測系數(shù)的成組浮點(diǎn)格式進(jìn)行修改的裝置(X51-X58);以及對于已出現(xiàn)溢出的預(yù)測系數(shù)繼續(xù)進(jìn)行K-1個預(yù)測系數(shù)的重新計(jì)算的裝置(X62-X72)。
全文摘要
本發(fā)明的傳輸系統(tǒng)包括至少一個對信號(10a)進(jìn)行編碼的編碼器(101)。該系統(tǒng)還包括至少一個發(fā)射機(jī)(102)、至少一個接收機(jī)(103)和至少一個譯碼器(104)。至少為編碼器(101)提供了至少一個自適應(yīng)預(yù)測濾波器(10A,1B),利用該自適應(yīng)預(yù)測濾波器編碼語音或音頻信號,同時減小了它們的位速率。根據(jù)“列文森-德賓遞推”以定點(diǎn)算法遞推地確定自適應(yīng)預(yù)測濾波器(10A,10B)的濾波系數(shù)。
文檔編號G10L25/06GK1516496SQ03148769
公開日2004年7月28日 申請日期1994年5月2日 優(yōu)先權(quán)日1993年5月5日
發(fā)明者R·霍夫曼, R 霍夫曼 申請人:皇家菲利浦電子有限公司