專(zhuān)利名稱(chēng):一種獲取交織表的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及編碼技術(shù),特別是涉及一種獲取交織表的方法。
背景技術(shù):
渦輪碼(Turbo code)是目前常用的一種信道編碼方案,適于高速率但對(duì)時(shí)延要求不高的數(shù)據(jù)傳輸業(yè)務(wù)。Turbo碼能夠大大降低系統(tǒng)的發(fā)射功率并且增加系統(tǒng)的容量。同時(shí),Turbo碼能夠達(dá)到絕佳的編碼增益效果。比如,一個(gè)Turbo碼可以達(dá)到約與香農(nóng)(Shannon)極限只差0.2dB的編碼增益,從而為系統(tǒng)提供了極佳的錯(cuò)誤更正功能。因此,Turbo碼在第三代通信系統(tǒng)以及深空通信、衛(wèi)星通信,視頻處理等領(lǐng)域都有重要的應(yīng)用。
在信道上,由于持續(xù)較長(zhǎng)的深衰落谷點(diǎn)會(huì)影響到相繼一串的比特,所以比特差錯(cuò)經(jīng)常是成串發(fā)生的。然而,信道編碼和譯碼僅在檢測(cè)和校正單個(gè)差錯(cuò)和較短的差錯(cuò)串時(shí)才有效。因此,在Turbo碼編碼和Turbo碼譯碼操作中經(jīng)常會(huì)出現(xiàn)成串的比特差錯(cuò),從而造成較大的誤碼率。
圖1是Turbo碼編碼器的結(jié)構(gòu)示意圖,圖2是Turbo碼譯碼器的結(jié)構(gòu)示意圖。參見(jiàn)圖1和圖2,為了解決比特差錯(cuò)成串導(dǎo)致較大誤碼率的問(wèn)題,在Turbo碼編碼器和Turbo碼譯碼器中使用了交織器,通過(guò)交織器的交織技術(shù)將一條消息中的相繼比特以非相繼方式發(fā)送出去,那么在傳輸過(guò)程中即使發(fā)生了成串差錯(cuò),恢復(fù)成一條相繼比特串的消息時(shí),差錯(cuò)也就變成了單個(gè)差錯(cuò)或長(zhǎng)度很短的差錯(cuò),這時(shí)再用信道編碼糾錯(cuò)功能糾正差錯(cuò),恢復(fù)原消息,則可大大降低誤碼率。
在Turbo編碼或譯碼中,交織技術(shù)的核心內(nèi)容就是計(jì)算交織表。計(jì)算交織表就是根據(jù)交織長(zhǎng)度n計(jì)算出從0到(n-1)之間所有整數(shù)值排列順序的一個(gè)序列。交織長(zhǎng)度的取值范圍為(40~5114)。比如,交織長(zhǎng)度為40,所得交織表為從0~39之間40個(gè)整數(shù)值的一個(gè)序列,如(2,0,31,......,39,6)。
現(xiàn)有技術(shù)獲取交織表的方法為方法一、實(shí)時(shí)計(jì)算法。
根據(jù)當(dāng)前交織長(zhǎng)度和交織表算法進(jìn)行實(shí)時(shí)計(jì)算,獲取所需交織表。例如,進(jìn)行Turbo編碼或譯碼時(shí)的數(shù)據(jù)塊長(zhǎng)度為100,當(dāng)獲取交織表時(shí),將數(shù)據(jù)塊長(zhǎng)度100作為當(dāng)前交織長(zhǎng)度,使用既定交織表算法后,得到的交織表為0~99之間100個(gè)整數(shù)值的一個(gè)序列,如交織表(2,5,81,......,16,99,89)。在獲取該交織表時(shí),交織表中每一位上的數(shù)值均需要根據(jù)既定交織表算法進(jìn)行計(jì)算,因此需要進(jìn)行100次計(jì)算。
方法二、查找法。
預(yù)先使用既定交織表算法分別計(jì)算出與所有交織長(zhǎng)度對(duì)應(yīng)的交織表,并保存各個(gè)交織長(zhǎng)度和與其對(duì)應(yīng)的交織表。在獲取交織表時(shí),直接查找系統(tǒng)中的保存記錄。例如,進(jìn)行Turbo編碼或譯碼時(shí)的數(shù)據(jù)塊長(zhǎng)度為5100,當(dāng)獲取交織表時(shí),將數(shù)據(jù)塊長(zhǎng)度5100作為當(dāng)前交織長(zhǎng)度,在獲取交織表時(shí),查找到系統(tǒng)中保存的與當(dāng)前交織長(zhǎng)度5100對(duì)應(yīng)的交織表,如交織表(51,0,88,......,16,4302,5099)。系統(tǒng)預(yù)先存儲(chǔ)與當(dāng)前交織長(zhǎng)度5100對(duì)應(yīng)的交織表時(shí),需要保存從0到5099之間5100個(gè)整數(shù)值。
可見(jiàn),現(xiàn)有技術(shù)存在以下缺點(diǎn)在方法一中,每次進(jìn)行Turbo編碼或譯碼時(shí),都要根據(jù)交織長(zhǎng)度和交織表算法計(jì)算交織表,所以當(dāng)使用的交織長(zhǎng)度很大時(shí),需要進(jìn)行大量的運(yùn)算才能得出交織表中每一位上的數(shù)值,從而降低了獲取交織表的速度,導(dǎo)致系統(tǒng)無(wú)法快速處理Turbo編碼或譯碼業(yè)務(wù)。方法一對(duì)于每次使用的交織長(zhǎng)度均需要進(jìn)行計(jì)算才能獲取與其對(duì)應(yīng)的交織表,而各次使用的交織長(zhǎng)度很可能相同,從而導(dǎo)致不必要的重復(fù)計(jì)算,浪費(fèi)了系統(tǒng)的資源,降低了系統(tǒng)的性能。
使用方法二時(shí),預(yù)先存儲(chǔ)所有交織長(zhǎng)度及與其對(duì)應(yīng)的交織表會(huì)占用大量的存儲(chǔ)空間,系統(tǒng)處理器的片內(nèi)空間往往無(wú)法滿足其存儲(chǔ)需求。如果利用處理器的片外空間存儲(chǔ),則會(huì)增加成本,而且在使用時(shí)也無(wú)法判斷片外的存儲(chǔ)空間是否已損壞,從而導(dǎo)致無(wú)法判斷獲取的交織表是否正確。同時(shí),當(dāng)交織長(zhǎng)度范圍更改時(shí),則必須重新固化片外存儲(chǔ)區(qū),因而不利于Turbo編碼或譯碼業(yè)務(wù)的發(fā)展。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種獲取交織表的方法,使其能用有限的存儲(chǔ)空間快速獲取交織表。
為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種獲取交織表的方法,應(yīng)用于使用渦輪碼Turbo碼編碼器或Turbo碼譯碼器的系統(tǒng)中,該方法包括以下步驟A、預(yù)先選取交織長(zhǎng)度,并設(shè)置所選取的每個(gè)交織長(zhǎng)度及其對(duì)應(yīng)的交織表的對(duì)應(yīng)關(guān)系;B、當(dāng)獲取交織表時(shí),將本次Turbo編碼或譯碼的數(shù)據(jù)塊長(zhǎng)度作為當(dāng)前交織長(zhǎng)度,判斷步驟A中所述對(duì)應(yīng)關(guān)系中是否有當(dāng)前交織長(zhǎng)度,如果有,則根據(jù)所述對(duì)應(yīng)關(guān)系獲得當(dāng)前交織長(zhǎng)度對(duì)應(yīng)的交織表,否則,根據(jù)交織表算法計(jì)算出當(dāng)前交織長(zhǎng)度對(duì)應(yīng)的交織表。
步驟A中所述設(shè)置為首次時(shí),步驟A中所述每個(gè)交織長(zhǎng)度所對(duì)應(yīng)的交織表是通過(guò)交織表算法直接計(jì)算得出。
步驟A中設(shè)置的每個(gè)交織長(zhǎng)度及其對(duì)應(yīng)的交織表的對(duì)應(yīng)關(guān)系是按周期更新設(shè)置的。
步驟A中所述周期更新設(shè)置包括A1、選取交織長(zhǎng)度,判斷步驟A中所述對(duì)應(yīng)關(guān)系中是否有選取的任意一個(gè)交織長(zhǎng)度,如果有,則跳出本流程,否則,執(zhí)行步驟A2;A2、判斷步驟A中所述對(duì)應(yīng)關(guān)系中是否沒(méi)有選取的任意一個(gè)交織長(zhǎng)度,如果沒(méi)有,則執(zhí)行步驟A3,否則,執(zhí)行步驟A4;A3、根據(jù)交織表算法計(jì)算出與選取的每個(gè)交織長(zhǎng)度對(duì)應(yīng)的交織表,并設(shè)置所選取的每個(gè)交織長(zhǎng)度及其對(duì)應(yīng)的交織表的對(duì)應(yīng)關(guān)系,然后跳出本流程;A4、對(duì)于選取的在步驟A中所述對(duì)應(yīng)關(guān)系中沒(méi)有的交織長(zhǎng)度,則根據(jù)交織表算法計(jì)算出與其對(duì)應(yīng)的交織表,然后用該交織長(zhǎng)度與交織表的對(duì)應(yīng)關(guān)系更新步驟A中所述對(duì)應(yīng)關(guān)系中與選取的交織長(zhǎng)度不同的交織長(zhǎng)度對(duì)應(yīng)的對(duì)應(yīng)關(guān)系。
在每次執(zhí)行步驟B時(shí),記錄當(dāng)前交織長(zhǎng)度的使用次數(shù),當(dāng)更新所述對(duì)應(yīng)關(guān)系時(shí),步驟A1中選取的交織長(zhǎng)度是按照系統(tǒng)記錄的所有交織長(zhǎng)度的使用次數(shù)值從大到小的順序選取的。
在所述步驟A1之前包括判斷是否需要對(duì)所設(shè)置的交織長(zhǎng)度及其對(duì)應(yīng)交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新,如果需要,則執(zhí)行步驟A1,否則,跳出本流程。
預(yù)先設(shè)定次數(shù)閾值,并記錄系統(tǒng)已獲取交織表的次數(shù),所述是否需要對(duì)設(shè)置的交織長(zhǎng)度及其對(duì)應(yīng)交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新是通過(guò)系統(tǒng)記錄的已獲取交織表的次數(shù)與系統(tǒng)預(yù)先設(shè)定的次數(shù)閾值是否相等進(jìn)行判斷的;當(dāng)對(duì)交織長(zhǎng)度及其交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新后,將記錄系統(tǒng)已獲取交織表的次數(shù)值置零。
預(yù)先設(shè)定時(shí)間閾值,并記錄系統(tǒng)運(yùn)行的時(shí)間值,所述是否需要對(duì)設(shè)置的交織長(zhǎng)度及其對(duì)應(yīng)交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新是通過(guò)系統(tǒng)記錄的時(shí)間值與系統(tǒng)預(yù)先設(shè)定的時(shí)間閾值是否相等進(jìn)行判斷的;當(dāng)對(duì)交織長(zhǎng)度及其交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新后,將記錄系統(tǒng)運(yùn)行的時(shí)間值置零。
可見(jiàn),本發(fā)明提出的方法具有以下優(yōu)點(diǎn)1、因?yàn)樵谝欢ǖ臅r(shí)間內(nèi),常用交織長(zhǎng)度不會(huì)有較大的變化,所以使用本發(fā)明提出的方法,直接在交織表存儲(chǔ)區(qū)中查找當(dāng)前交織長(zhǎng)度及與其對(duì)應(yīng)的交織表,則省去了計(jì)算交織表的過(guò)程,從而大大減少了獲取交織表的時(shí)間。
2、本發(fā)明提出的方法只存儲(chǔ)常用交織長(zhǎng)度及與其對(duì)應(yīng)的交織表,從而最大限度的減少了對(duì)系統(tǒng)資源的占有。
3、根據(jù)本發(fā)明提出的方法,定期更新交織表存儲(chǔ)區(qū)中的交織長(zhǎng)度及與其對(duì)應(yīng)的交織表,從而實(shí)現(xiàn)了根據(jù)實(shí)際業(yè)務(wù)情況靈活適應(yīng)常用交織長(zhǎng)度的改變,進(jìn)而滿足了Turbo碼業(yè)務(wù)發(fā)展和變化的需求。
4、在本發(fā)明提出的方法中,保存有上次使用的交織長(zhǎng)度及與其對(duì)應(yīng)的交織表,在當(dāng)前交織長(zhǎng)度與保存的上次交織長(zhǎng)度相同時(shí)直接輸出與上次交織長(zhǎng)度對(duì)應(yīng)的交織表,從而大大節(jié)省了獲取交織表的時(shí)間。
圖1是Turbo碼編碼器的結(jié)構(gòu)示意圖;圖2是Turbo碼譯碼器的結(jié)構(gòu)示意圖;圖3是在實(shí)現(xiàn)本發(fā)明的實(shí)施例中使用計(jì)數(shù)器后獲取交織表的流程圖;圖4是在實(shí)現(xiàn)本發(fā)明的實(shí)施例中使用計(jì)時(shí)器后獲取交織表的流程圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
本實(shí)施例預(yù)先設(shè)置交織表存儲(chǔ)區(qū),在首次選取交織長(zhǎng)度時(shí),根據(jù)以往進(jìn)行Turbo編碼或譯碼時(shí)常用的交織長(zhǎng)度,選取交織表存儲(chǔ)區(qū)可存儲(chǔ)個(gè)數(shù)(N個(gè))的交織長(zhǎng)度,然后使用既定交織表算法分別計(jì)算出與選取的N個(gè)常用交織長(zhǎng)度對(duì)應(yīng)的交織表,將選取的N個(gè)常用交織長(zhǎng)度及與其對(duì)應(yīng)的交織表保存在交織表存儲(chǔ)區(qū)中。
本實(shí)施例預(yù)先設(shè)置交織長(zhǎng)度使用次數(shù)表,用于保存所有交織長(zhǎng)度及其使用次數(shù)。
本實(shí)施例預(yù)先設(shè)置記錄表,用于保存上次使用的交織長(zhǎng)度及與其對(duì)應(yīng)的交織表。
本實(shí)施例預(yù)先設(shè)置更新參數(shù),用于判斷是否對(duì)交織表存儲(chǔ)區(qū)進(jìn)行更新。
本實(shí)施例預(yù)先設(shè)置計(jì)數(shù)器,所述更新參數(shù)為計(jì)數(shù)器的當(dāng)前值。
圖3是在實(shí)現(xiàn)本發(fā)明的實(shí)施例中使用計(jì)數(shù)器后獲取交織表的流程圖。參見(jiàn)圖3,本實(shí)施例獲取交織表的具體過(guò)程包括以下步驟步驟301判斷計(jì)數(shù)器的當(dāng)前值與系統(tǒng)預(yù)先設(shè)定的次數(shù)閾值是否相等,如果計(jì)數(shù)器的當(dāng)前值與系統(tǒng)預(yù)先設(shè)定的次數(shù)閾值相等,則執(zhí)行步驟302,否則執(zhí)行步驟306。
這里,為了達(dá)到周期更新交織表存儲(chǔ)區(qū)的目的,首先判斷當(dāng)前是否滿足更新條件,即判斷計(jì)數(shù)器的當(dāng)前值與系統(tǒng)預(yù)先設(shè)定的次數(shù)閾值是否相等。如果計(jì)數(shù)器的當(dāng)前值與系統(tǒng)預(yù)先設(shè)定的次數(shù)閾值相等,則認(rèn)為,當(dāng)前應(yīng)對(duì)交織表存儲(chǔ)區(qū)進(jìn)行更新,以保證在交織表存儲(chǔ)區(qū)中保存的均為周期內(nèi)常用的交織長(zhǎng)度及與其對(duì)應(yīng)的交織表。如果計(jì)數(shù)器的當(dāng)前值與系統(tǒng)預(yù)先設(shè)定的次數(shù)閾值不相等,則認(rèn)為,當(dāng)前不需要對(duì)交織表存儲(chǔ)區(qū)進(jìn)行更新,可直接進(jìn)行獲取交織表的后續(xù)步驟。
步驟302將計(jì)數(shù)器置零。
將計(jì)數(shù)器置零,是為了在下一周期內(nèi)重新統(tǒng)計(jì)已獲取交織表的次數(shù)。
步驟303在交織長(zhǎng)度使用次數(shù)表中,按照交織長(zhǎng)度使用次數(shù)值從大到小的順序選取N個(gè)交織長(zhǎng)度,判斷交織表存儲(chǔ)區(qū)中保存的N個(gè)交織長(zhǎng)度與選取的N個(gè)交織長(zhǎng)度是否完全相同,如果交織表存儲(chǔ)區(qū)中保存的N個(gè)交織長(zhǎng)度與選取的N個(gè)交織長(zhǎng)度均不相同,則執(zhí)行步驟304,如果交織表存儲(chǔ)區(qū)中保存的一部分交織長(zhǎng)度與選取的N個(gè)交織長(zhǎng)度中的一部分交織長(zhǎng)度相同,則執(zhí)行步驟305,如果交織表存儲(chǔ)區(qū)中保存的N個(gè)交織長(zhǎng)度與選取的N個(gè)交織長(zhǎng)度完全相同,則執(zhí)行步驟306。
這里,如果交織表存儲(chǔ)區(qū)中保存的N個(gè)交織長(zhǎng)度與選取的N個(gè)交織長(zhǎng)度均不相同,則表明交織表存儲(chǔ)區(qū)中保存的N個(gè)交織長(zhǎng)度均不是周期內(nèi)常用的交織長(zhǎng)度,必須對(duì)交織表存儲(chǔ)區(qū)存儲(chǔ)的全部?jī)?nèi)容進(jìn)行更新。
這里,如果交織表存儲(chǔ)區(qū)中保存的一部分交織長(zhǎng)度與選取的N個(gè)交織長(zhǎng)度中的一部分交織長(zhǎng)度相同,則表明交織表存儲(chǔ)區(qū)中保存的一部分交織長(zhǎng)度為周期內(nèi)常用交織長(zhǎng)度,而另一部分交織長(zhǎng)度不是周期內(nèi)常用交織長(zhǎng)度,必須對(duì)交織表存儲(chǔ)區(qū)進(jìn)行部分更新。
這里,如果交織表存儲(chǔ)區(qū)中保存的N個(gè)交織長(zhǎng)度與選取的N個(gè)交織長(zhǎng)度完全相同,則表明交織表存儲(chǔ)區(qū)中保存的N個(gè)交織長(zhǎng)度仍為周期內(nèi)常用的交織長(zhǎng)度,無(wú)需對(duì)交織表存儲(chǔ)區(qū)進(jìn)行更新。
步驟304根據(jù)交織表算法分別計(jì)算出與選取的N個(gè)交織長(zhǎng)度對(duì)應(yīng)的交織表,并將選取的N個(gè)交織長(zhǎng)度及與其對(duì)應(yīng)的交織表保存在交織表存儲(chǔ)區(qū)中,然后執(zhí)行步驟306。
步驟305在交織表存儲(chǔ)區(qū)中,保存與選取的交織長(zhǎng)度相同的交織長(zhǎng)度及與其對(duì)應(yīng)的交織表;刪除與選取的交織長(zhǎng)度不同的交織長(zhǎng)度及與其對(duì)應(yīng)的交織表,在選取的N個(gè)交織長(zhǎng)度中,對(duì)于與交織表存儲(chǔ)區(qū)中的交織長(zhǎng)度均不相同的交織長(zhǎng)度,根據(jù)交織表算法分別計(jì)算出與其對(duì)應(yīng)的交織表,并將該與交織表存儲(chǔ)區(qū)中的交織長(zhǎng)度均不相同的交織長(zhǎng)度及與其對(duì)應(yīng)的交織表保存在交織表存儲(chǔ)區(qū)中。
步驟306將本次Turbo編碼或譯碼時(shí)數(shù)據(jù)塊的長(zhǎng)度作為當(dāng)前交織長(zhǎng)度,在交織長(zhǎng)度使用次數(shù)表中查找到當(dāng)前交織長(zhǎng)度,然后將當(dāng)前交織長(zhǎng)度的使用次數(shù)值加一,并將計(jì)數(shù)器的值加一。
將當(dāng)前交織長(zhǎng)度的使用次數(shù)值加一,是為了更新交織長(zhǎng)度使用次數(shù)表中保存的當(dāng)前交織長(zhǎng)度的使用次數(shù)值;將計(jì)數(shù)器的值加一,是為了更新計(jì)數(shù)器記錄的已獲取交織表的次數(shù)。
步驟307判斷當(dāng)前交織長(zhǎng)度與記錄表中保存的上次交織長(zhǎng)度是否相同,如果相同,則執(zhí)行步驟308,否則,執(zhí)行步驟309。
由于業(yè)務(wù)的連續(xù)性,本次Turbo編碼或譯碼與上次Turbo編碼或譯碼使用的交織長(zhǎng)度很可能相同,即當(dāng)前交織長(zhǎng)度與上次交織長(zhǎng)度很可能相同,為了提高獲取交織表的速率,直接判斷記錄表中保存的上次交織長(zhǎng)度與當(dāng)前交織長(zhǎng)度是否相同,如果相同,則表明記錄表中的保存的交織表即為所需的交織表,如果不相同,則表明還需進(jìn)行獲取交織表的后續(xù)步驟。
步驟308獲取記錄表中保存的與上次交織長(zhǎng)度對(duì)應(yīng)的交織表,并跳出本流程。
步驟309在交織表存儲(chǔ)區(qū)中查找與當(dāng)前交織長(zhǎng)度相同的交織長(zhǎng)度,如果查找到與當(dāng)前交織長(zhǎng)度相同的交織長(zhǎng)度,則執(zhí)行步驟310,否則,執(zhí)行步驟311。
由于交織表存儲(chǔ)區(qū)中保存的均為周期內(nèi)常用的交織表,所以為了提高獲取交織表的速率,直接在交織表存儲(chǔ)區(qū)中查找是否有與當(dāng)前交織長(zhǎng)度相同的交織長(zhǎng)度,如果查找到與當(dāng)前交織長(zhǎng)度相同的交織長(zhǎng)度,則表明可利用交織表存儲(chǔ)區(qū)中保存的交織表,如果查找不到與當(dāng)前交織長(zhǎng)度相同的交織長(zhǎng)度,則表明需要進(jìn)行計(jì)算才能獲取所需的交織表。
步驟310在交織表存儲(chǔ)區(qū)中,獲取與查找到的交織長(zhǎng)度對(duì)應(yīng)的交織表,然后執(zhí)行步驟312。
步驟311根據(jù)當(dāng)前交織長(zhǎng)度和交織表算法,計(jì)算出交織表。
步驟312用當(dāng)前交織長(zhǎng)度及獲取的與其對(duì)應(yīng)的交織表更新記錄表。
因?yàn)闊o(wú)論是從交織表存儲(chǔ)區(qū)中獲取所需的交織表,還是根據(jù)當(dāng)前交織長(zhǎng)度及交織表算法計(jì)算出所需的交織表,均表明記錄表中保存的上次交織長(zhǎng)度與當(dāng)前交織長(zhǎng)度不相同,所以應(yīng)對(duì)記錄表進(jìn)行更新,刪除原有的保存記錄,將當(dāng)前交織長(zhǎng)度及獲取的與其對(duì)應(yīng)的交織表保存在記錄表中,以保證記錄表中保存的始終為上次交織長(zhǎng)度及與其對(duì)應(yīng)的交織表。
另外,本發(fā)明也可使用計(jì)時(shí)器來(lái)替換計(jì)數(shù)器,即所述的更新參數(shù)為計(jì)時(shí)器的當(dāng)前值。
因?yàn)闊o(wú)論使用計(jì)數(shù)器還是計(jì)時(shí)器,均是用其記錄的值作為更新參數(shù),以判斷是否應(yīng)對(duì)交織表存儲(chǔ)區(qū)進(jìn)行周期更新。在使用計(jì)數(shù)器時(shí),當(dāng)計(jì)數(shù)器記錄的已獲取交織表的次數(shù)達(dá)到系統(tǒng)預(yù)先設(shè)定的次數(shù)閾值時(shí),則認(rèn)為已進(jìn)行完一個(gè)周期,應(yīng)對(duì)交織表存儲(chǔ)區(qū)進(jìn)行更新。相應(yīng)地,在使用計(jì)時(shí)器時(shí),當(dāng)計(jì)時(shí)器記錄的時(shí)間達(dá)到系統(tǒng)預(yù)先設(shè)定的時(shí)間閾值時(shí),則認(rèn)為已進(jìn)行完一個(gè)周期,應(yīng)對(duì)交織表存儲(chǔ)區(qū)進(jìn)行更新。
圖4是在實(shí)現(xiàn)本發(fā)明的實(shí)施例中使用計(jì)時(shí)器后獲取交織表的流程圖。參見(jiàn)圖4,使用計(jì)時(shí)器時(shí),本發(fā)明在上述獲取交織表的過(guò)程中,將步驟301換為步驟401,即判斷計(jì)時(shí)器的當(dāng)前值與系統(tǒng)預(yù)先設(shè)定的時(shí)間閾值是否相等,如果計(jì)時(shí)器的當(dāng)前值與系統(tǒng)預(yù)先設(shè)定的時(shí)間閾值相等,則執(zhí)行步驟402,否則執(zhí)行步驟403;將步驟302換為步驟402,即將計(jì)時(shí)器置零;將步驟306換為步驟403,即刪除步驟306中將計(jì)數(shù)器的值加一的步驟。
在上述獲取交織表的過(guò)程中,所述其它內(nèi)容保持不變。
總之,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種獲取交織表的方法,應(yīng)用于使用渦輪碼Turbo碼編碼器或Turbo碼譯碼器的系統(tǒng)中,其特征在于,該方法包括以下步驟A、預(yù)先選取交織長(zhǎng)度,并設(shè)置所選取的每個(gè)交織長(zhǎng)度及其對(duì)應(yīng)的交織表的對(duì)應(yīng)關(guān)系;B、當(dāng)獲取交織表時(shí),將本次Turbo編碼或譯碼的數(shù)據(jù)塊長(zhǎng)度作為當(dāng)前交織長(zhǎng)度,判斷步驟A中所述對(duì)應(yīng)關(guān)系中是否有當(dāng)前交織長(zhǎng)度,如果有,則根據(jù)所述對(duì)應(yīng)關(guān)系獲得當(dāng)前交織長(zhǎng)度對(duì)應(yīng)的交織表,否則,根據(jù)交織表算法計(jì)算出當(dāng)前交織長(zhǎng)度對(duì)應(yīng)的交織表。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A中所述設(shè)置為首次時(shí),步驟A中所述每個(gè)交織長(zhǎng)度所對(duì)應(yīng)的交織表是通過(guò)交織表算法直接計(jì)算得出。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A中設(shè)置的每個(gè)交織長(zhǎng)度及其對(duì)應(yīng)的交織表的對(duì)應(yīng)關(guān)系是按周期更新設(shè)置的。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,步驟A中所述周期更新設(shè)置包括A1、選取交織長(zhǎng)度,判斷步驟A中所述對(duì)應(yīng)關(guān)系中是否有選取的任意一個(gè)交織長(zhǎng)度,如果有,則跳出本流程,否則,執(zhí)行步驟A2;A2、判斷步驟A中所述對(duì)應(yīng)關(guān)系中是否沒(méi)有選取的任意一個(gè)交織長(zhǎng)度,如果沒(méi)有,則執(zhí)行步驟A3,否則,執(zhí)行步驟A4;A3、根據(jù)交織表算法計(jì)算出與選取的每個(gè)交織長(zhǎng)度對(duì)應(yīng)的交織表,并設(shè)置所選取的每個(gè)交織長(zhǎng)度及其對(duì)應(yīng)的交織表的對(duì)應(yīng)關(guān)系,然后跳出本流程;A4、對(duì)于選取的在步驟A中所述對(duì)應(yīng)關(guān)系中沒(méi)有的交織長(zhǎng)度,則根據(jù)交織表算法計(jì)算出與其對(duì)應(yīng)的交織表,然后用該交織長(zhǎng)度與交織表的對(duì)應(yīng)關(guān)系更新步驟A中所述對(duì)應(yīng)關(guān)系中與選取的交織長(zhǎng)度不同的交織長(zhǎng)度對(duì)應(yīng)的對(duì)應(yīng)關(guān)系。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在每次執(zhí)行步驟B時(shí),記錄當(dāng)前交織長(zhǎng)度的使用次數(shù),當(dāng)更新所述對(duì)應(yīng)關(guān)系時(shí),步驟A1中選取的交織長(zhǎng)度是按照系統(tǒng)記錄的所有交織長(zhǎng)度的使用次數(shù)值從大到小的順序選取的。
6.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,在所述步驟A1之前包括判斷是否需要對(duì)所設(shè)置的交織長(zhǎng)度及其對(duì)應(yīng)交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新,如果需要,則執(zhí)行步驟A1,否則,跳出本流程。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,預(yù)先設(shè)定次數(shù)閾值,并記錄系統(tǒng)已獲取交織表的次數(shù),所述是否需要對(duì)設(shè)置的交織長(zhǎng)度及其對(duì)應(yīng)交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新是通過(guò)系統(tǒng)記錄的已獲取交織表的次數(shù)與系統(tǒng)預(yù)先設(shè)定的次數(shù)閾值是否相等進(jìn)行判斷的;當(dāng)對(duì)交織長(zhǎng)度及其交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新后,將記錄系統(tǒng)已獲取交織表的次數(shù)值置零。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,預(yù)先設(shè)定時(shí)間閾值,并記錄系統(tǒng)運(yùn)行的時(shí)間值,所述是否需要對(duì)設(shè)置的交織長(zhǎng)度及其對(duì)應(yīng)交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新是通過(guò)系統(tǒng)記錄的時(shí)間值與系統(tǒng)預(yù)先設(shè)定的時(shí)間閾值是否相等進(jìn)行判斷的;當(dāng)對(duì)交織長(zhǎng)度及其交織表的對(duì)應(yīng)關(guān)系進(jìn)行更新后,將記錄系統(tǒng)運(yùn)行的時(shí)間值置零。
全文摘要
本發(fā)明公開(kāi)了一種獲取交織表的方法,應(yīng)用于使用渦輪碼(Turbo碼)編碼器或Turbo碼譯碼器的系統(tǒng)中,預(yù)先選取交織長(zhǎng)度,并設(shè)置所選取的每個(gè)交織長(zhǎng)度及其對(duì)應(yīng)的交織表的對(duì)應(yīng)關(guān)系;當(dāng)獲取交織表時(shí),將本次Turbo編碼或譯碼的數(shù)據(jù)塊長(zhǎng)度作為當(dāng)前交織長(zhǎng)度,判斷所述對(duì)應(yīng)關(guān)系中是否有當(dāng)前交織長(zhǎng)度,如果有,則根據(jù)所述對(duì)應(yīng)關(guān)系獲得當(dāng)前交織長(zhǎng)度對(duì)應(yīng)的交織表,否則,根據(jù)交織表算法計(jì)算出當(dāng)前交織長(zhǎng)度對(duì)應(yīng)的交織表。本發(fā)明提出的方法用有限的存儲(chǔ)空間大大減少了獲取交織表的時(shí)間,而周期更新交織表存儲(chǔ)區(qū)則實(shí)現(xiàn)了根據(jù)實(shí)際業(yè)務(wù)情況靈活適應(yīng)常用交織長(zhǎng)度的改變。
文檔編號(hào)H03M13/27GK1671057SQ20041000893
公開(kāi)日2005年9月21日 申請(qǐng)日期2004年3月15日 優(yōu)先權(quán)日2004年3月15日
發(fā)明者孫強(qiáng) 申請(qǐng)人:華為技術(shù)有限公司