多模維特比解碼裝置及其解碼方法
【專利摘要】本發(fā)明提供了一種多模維特比解碼裝置及其解碼方法,該解碼裝置包括:輸入數(shù)據(jù)存儲(chǔ)模塊、分支路徑度量模塊、模式選擇模塊、并行加比選模塊、幸存路徑存儲(chǔ)模塊、回溯模塊和時(shí)序控制模塊,其中,并行加比選模塊,用于根據(jù)狀態(tài)轉(zhuǎn)移圖,將對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值并行累加計(jì)算,獲得累加值,并將最大的累加值作為下一狀態(tài)的新的度量值,向幸存路徑存儲(chǔ)模塊發(fā)送幸存路徑選擇結(jié)果,直到所述待解碼數(shù)據(jù)結(jié)束;回溯模塊,用于按照不同的編碼方式選擇不同的回溯方式,根據(jù)所述幸存路徑存儲(chǔ)模塊保存的所述幸存路徑選擇結(jié)果,從任意狀態(tài)或最大的累加值所對(duì)應(yīng)的狀態(tài)開始回溯,獲得解碼結(jié)果。采用本發(fā)明可共享大量資源,優(yōu)化設(shè)計(jì),提高了譯碼吞吐率。
【專利說明】多模維特比解碼裝置及其解碼方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通訊領(lǐng)域,尤其涉及一種多模維特比解碼裝置及其解碼方法。
【背景技術(shù)】
[0002]隨著第三代合作伙伴計(jì)劃(3GPP)長(zhǎng)期演進(jìn)(Long Term Evolution, LTE)技術(shù)的發(fā)展,移動(dòng)通信正向著多元兼容穩(wěn)健的方向發(fā)展。也因此,應(yīng)用市場(chǎng)要求開發(fā)一種支持LTE和時(shí)分同步碼分多址(TD-SCDMA)、寬帶碼分多址(WCDMA)、碼分多址(CDMA) 2000等制式的多模芯片。而卷積編碼在信道編碼中,通過人為增加冗余信息,很好地抗擊傳輸過程中各種各樣的噪聲和干擾,能使系統(tǒng)具有自動(dòng)糾正差錯(cuò)的能力,其在單模/多模制式中依然無法替代。
[0003]卷積碼是在編碼過程中引入了寄存器,增加了碼元之間的相關(guān)性,從而在相同復(fù)雜度下獲得比傳統(tǒng)分組碼更高的編碼增益。卷積編碼有三種格柵終止策略:
[0004]直接截尾法(如Direct truncation),不提供任何關(guān)于格柵最終狀態(tài)到信息給解碼器。
[0005]零尾法(如Zero turmination),尾比特O被加到信息比特后面,然后進(jìn)行編碼,這樣保證格柵回到特定狀態(tài)O。
[0006]咬尾法(tail biting)中有一種特殊到形式即零尾法,然而其相比零尾法不同的地方是不需要添加尾比特。咬尾法即一個(gè)碼塊在編碼之前將卷積碼編碼器的初始狀態(tài)設(shè)為該碼塊的最后若干比特,對(duì)于循環(huán)卷積碼,在編碼過程結(jié)束后編碼器又重新回到初始狀態(tài),所以解碼格柵可以被看成一個(gè)圈,在圓的任何位置解碼都可以被初始化,也因此其對(duì)應(yīng)的解碼可以看成是循環(huán)轉(zhuǎn)圈形式。
[0007]眾所周知,卷積編碼的約束度越長(zhǎng),性能會(huì)越好,但隨之帶來的譯碼復(fù)雜度在一定程度上會(huì)成倍增加,一般卷積碼的約束度被限定在10以下。我們最期望的是降低約束度的同時(shí),其譯碼性能又不損失或損失很小,于是,在LTE制式下我們引入了上面介紹的約束度較小,又通過特定的回溯方式而保持性能的咬尾卷積編碼,同時(shí)市場(chǎng)應(yīng)用要求多模系統(tǒng)必須兼容TD-SCDMA、WCDMA或CDMA 2000的其他編碼制式,因此,這對(duì)整個(gè)譯碼器的設(shè)計(jì)提出了極為巨大的挑戰(zhàn)。
[0008]對(duì)于卷積編碼所對(duì)應(yīng)的解碼算法很多,但其中最有效、最實(shí)用的解碼算法為最大似然解碼,即維特比解碼算法。但不同制式編碼器的譯碼算法存在簡(jiǎn)單堆疊問題,因而無法最大程度的共享資源,無法支持不同碼率、不同約束度,又無法保持較高的數(shù)據(jù)吞吐率,故無法更好地滿足高速通訊系統(tǒng)的應(yīng)用。
【發(fā)明內(nèi)容】
[0009]本發(fā)明實(shí)施例提供了一種多模維特比解碼裝置及其解碼方法,以解決不同制式編碼器的譯碼算法的簡(jiǎn)單堆疊問題。
[0010]本發(fā)明實(shí)施例提供了一種多模維特比解碼裝置,該裝置包括:[0011]輸入數(shù)據(jù)存儲(chǔ)模塊,用于采用乒乓存儲(chǔ)的方式存儲(chǔ)外部輸入的待解碼數(shù)據(jù),以及根據(jù)接收的解碼指令讀取待解碼的數(shù)據(jù);
[0012]分支路徑度量模塊,用于向所述輸入數(shù)據(jù)存儲(chǔ)模塊發(fā)送所述解碼指令,并接收所述待解碼的數(shù)據(jù);以及,根據(jù)不同的碼率指示,對(duì)所述待解碼數(shù)據(jù)與編碼器的狀態(tài)輸出值進(jìn)行相關(guān)運(yùn)算,獲得分支路徑度量值;
[0013]模式選擇模塊,用于根據(jù)不同制式,不同約束度和不同編碼器的狀態(tài)輸出值,選擇不同組合的分支路徑度量送入并行加比選模塊;
[0014]所述并行加比選模塊,用于根據(jù)狀態(tài)轉(zhuǎn)移圖,將對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值并行累加計(jì)算,獲得累加值,并將最大的累加值作為下一狀態(tài)的新的度量值,向幸存路徑存儲(chǔ)模塊發(fā)送幸存路徑選擇結(jié)果,直到所述待解碼數(shù)據(jù)結(jié)束;
[0015]所述幸存路徑存儲(chǔ)模塊,用于保存所有的幸存路徑選擇結(jié)果;
[0016]回溯模塊,用于按照不同的編碼方式選擇不同的回溯方式,根據(jù)所述幸存路徑存儲(chǔ)模塊保存的所述幸存路徑選擇結(jié)果,從任意狀態(tài)或最大的累加值所對(duì)應(yīng)的狀態(tài)開始回溯,獲得解碼結(jié)果;
[0017]時(shí)序控制模塊,用于向所述分支路徑度量模塊、所述模式選擇模塊、所述并行加比選模塊、所述幸存路徑存儲(chǔ)模塊和所述回溯模塊提供控制信號(hào),以便各模塊以流水線的方式操作,所述控制信號(hào)包括使能信號(hào)、延遲信號(hào)和計(jì)數(shù)信號(hào)。
[0018]優(yōu)選地,所述裝置還包括:
[0019]防溢出模塊,用于所述并行加比選模塊獲得所述累加值之后,當(dāng)O狀態(tài)對(duì)應(yīng)的累加值有效位的最高位為I時(shí),根據(jù)來自所述時(shí)序控制模塊的使能信號(hào),將所有獲得的累加值有效位的次高位減1,獲得新的累加值并作為本次累加計(jì)算的結(jié)果。
[0020]優(yōu)選地,所述不同的編碼方式包括咬尾卷積編碼和非咬尾卷積編碼;所述咬尾卷積編碼對(duì)應(yīng)的回溯方式為一次回溯,回溯深度為兩倍的編碼長(zhǎng)度;所述非咬尾卷積編碼對(duì)應(yīng)的回溯方式為滑窗回溯,所述滑窗回溯的重疊長(zhǎng)度(overlap)、窗長(zhǎng)和有效比特?cái)?shù)根據(jù)性能需求進(jìn)行設(shè)置。
[0021]優(yōu)選地,所述不同制式包括長(zhǎng)期演進(jìn)(LTE)、時(shí)分同步碼分多址(TD-SCDMA)、寬帶碼分多址(WCDMA)和碼分多址(CDMA) 2000制式。
[0022]優(yōu)選地,當(dāng)所述不同制式包括TD-SCDMA、WCDMA和CDMA2000制式時(shí),所述回溯模塊根據(jù)碼塊長(zhǎng)度的不同,所選擇的回溯方式為一次回溯與滑窗回溯相結(jié)合的方式。
[0023]優(yōu)選地,所述并行加比選模塊包括:
[0024]累加計(jì)算單元,用于根據(jù)狀態(tài)轉(zhuǎn)移圖,多路并行累加計(jì)算對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值,獲得累加值;
[0025]選擇單元,用于根據(jù)加比選法則,選擇最大的累加值作為下一狀態(tài)的新的度量值,并向所述幸存路徑存儲(chǔ)模塊發(fā)送選擇結(jié)果,直到待解碼數(shù)據(jù)結(jié)束;
[0026]判斷單元,用于當(dāng)累加次數(shù)小于預(yù)置累加次數(shù),則返回執(zhí)行所述累加計(jì)算單元的下一次累加計(jì)算;當(dāng)所述累加次數(shù)大于或等于預(yù)置累加次數(shù),則結(jié)束累加計(jì)算。
[0027]本發(fā)明實(shí)施例還提供了一種多模維特比解碼裝置的解碼方法,該方法包括:
[0028]采用乒乓存儲(chǔ)的方式存儲(chǔ)輸入的待解碼數(shù)據(jù);
[0029]根據(jù)不同的碼率指示,對(duì)所述待解碼數(shù)據(jù)與編碼器的狀態(tài)輸出值進(jìn)行相關(guān)運(yùn)算,獲得分支路徑度量值;
[0030]根據(jù)不同制式,不同約束度和不同編碼器的狀態(tài)輸出值,選擇不同組合的分支路
徑度量;
[0031]根據(jù)狀態(tài)轉(zhuǎn)移圖,將對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值并行累加計(jì)算,獲得累加值,并將最大的累加值作為下一狀態(tài)的新的度量值,記錄所有的幸存路徑選擇結(jié)果,直到所述待解碼數(shù)據(jù)結(jié)束;
[0032]按照不同的編碼方式選擇不同的回溯方式,根據(jù)記錄的所述幸存路徑選擇結(jié)果,從任意狀態(tài)或最大的累加值所對(duì)應(yīng)的狀態(tài)開始回溯,獲得解碼結(jié)果。
[0033]優(yōu)選地,所述獲得累加值之后,所述方法還包括:
[0034]當(dāng)O狀態(tài)對(duì)應(yīng)的累加值有效位的最高位為I時(shí),將所有獲得的累加值有效位的次高位減1,獲得新的累加值并作為本次累加計(jì)算的結(jié)果。
[0035]優(yōu)選地,所述不同的編碼方式包括咬尾卷積編碼和非咬尾卷積編碼;所述咬尾卷積編碼對(duì)應(yīng)的回溯方式為一次回溯,回溯深度為兩倍的編碼長(zhǎng)度;所述非咬尾卷積編碼對(duì)應(yīng)的回溯方式為滑窗回溯,所述滑窗回溯的重疊長(zhǎng)度(overlap)、窗長(zhǎng)和有效比特?cái)?shù)根據(jù)算法的性能仿真進(jìn)行設(shè)置。
[0036]優(yōu)選地,所述不同制式包括長(zhǎng)期演進(jìn)(LTE)、時(shí)分同步碼分多址(TD-SCDMA)、寬帶碼分多址(WCDMA)和碼分多址(CDMA) 2000制式。
[0037]優(yōu)選地,所述按照不同的編碼方式選擇不同的回溯方式包括:
[0038]當(dāng)所述不同制式包括TD-SCDMA、WCDMA和CDMA2000制式時(shí),根據(jù)碼塊長(zhǎng)度的不同,選擇一次回溯與滑窗回溯相結(jié)合的方式。
[0039]本發(fā)明在TD-SCDMA/WCDMA和CDMA 2000模式下,最大限度地利用了 LTE模式下的并行計(jì)算加比選單元路數(shù),共享大量資源,優(yōu)化設(shè)計(jì),提高了譯碼吞吐率,LTE模式的吞吐率達(dá)到50Mbps,TD-SCDMA/WCDMA模式的吞吐率達(dá)到10Mbps,譯碼延遲也僅為us級(jí),可適用于高速譯碼系統(tǒng)。
【專利附圖】
【附圖說明】
[0040]圖1a是本發(fā)明多模維特比解碼裝置的結(jié)構(gòu)示意圖;
[0041]圖1b是本發(fā)明維特比加比選模塊的結(jié)構(gòu)示意圖;
[0042]圖2是本發(fā)明多模維特比解碼裝置的解碼方法實(shí)施例的流程圖;
[0043]圖3是本發(fā)明相關(guān)LTE模式卷積編碼實(shí)施例的結(jié)構(gòu)圖;
[0044]圖4a是本發(fā)明相關(guān)TD-SCDMA模式卷積編碼實(shí)施例一的結(jié)構(gòu)圖;
[0045]圖4b是本發(fā)明相關(guān)TD-SCDMA模式卷積編碼實(shí)施例二的結(jié)構(gòu)圖;
[0046]圖5是本發(fā)明編解碼狀態(tài)轉(zhuǎn)移圖。
【具體實(shí)施方式】
[0047]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
[0048]如圖1a所示,是本發(fā)明多模維特比解碼裝置的結(jié)構(gòu)示意圖,其包括輸入數(shù)據(jù)存儲(chǔ)模塊(input_bufTer) 11、分支路徑度量模塊(dis_gen_v2) 12、模式選擇模塊(mode_dis_select) 13、并行加比選模塊(parallel_add_com_sel) 14、幸存路徑存儲(chǔ)模塊(route_ram) 15、回溯模塊(trace_back) 16 和時(shí)序控制模塊(viterbi_state_contrl) 17,其中:
[0049]輸入數(shù)據(jù)存儲(chǔ)模塊,用于采用乒乓存儲(chǔ)的方式存儲(chǔ)外部輸入的待解碼數(shù)據(jù),以及根據(jù)接收的解碼指令讀取待解碼的數(shù)據(jù);
[0050]分支路徑度量模塊,用于向所述輸入數(shù)據(jù)存儲(chǔ)模塊發(fā)送所述解碼指令,并接收所述待解碼的數(shù)據(jù);以及,根據(jù)不同的碼率指示,對(duì)所述待解碼數(shù)據(jù)與編碼器的狀態(tài)輸出值進(jìn)行相關(guān)運(yùn)算,獲得分支路徑度量值;
[0051]模式選擇模塊,用于根據(jù)不同制式,不同約束度和不同編碼器的狀態(tài)輸出值,選擇不同組合的分支路徑度量送入并行加比選模塊;
[0052]所述并行加比選模塊,用于根據(jù)狀態(tài)轉(zhuǎn)移圖,將對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值并行累加計(jì)算,獲得累加值,并將最大的累加值作為下一狀態(tài)的新的度量值,向幸存路徑存儲(chǔ)模塊發(fā)送幸存路徑選擇結(jié)果,直到所述待解碼數(shù)據(jù)結(jié)束;
[0053]所述幸存路徑存儲(chǔ)模塊,用于保存所有的幸存路徑選擇結(jié)果;
[0054]回溯模塊,用于按照不同的編碼方式選擇不同的回溯方式,根據(jù)所述幸存路徑存儲(chǔ)模塊保存的所述幸存路徑選擇結(jié)果,從任意狀態(tài)或最大的累加值所對(duì)應(yīng)的狀態(tài)開始回溯,獲得解碼結(jié)果;其中,對(duì)LTE制式,從任意裝置開始回溯,對(duì)于其他模式從最大的累加值所對(duì)應(yīng)的狀態(tài)開始回溯;
[0055]時(shí)序控制模塊,用于向所述分支路徑度量模塊、所述模式選擇模塊、所述并行加比選模塊、所述幸存路徑存儲(chǔ)模塊和所述回溯模塊提供控制信號(hào),以便各模塊以流水線的方式操作,所述控制信號(hào)包括使能信號(hào)、延遲信號(hào)和計(jì)數(shù)信號(hào)。
[0056]其中,該時(shí)序控制模塊為各模塊提供使能信號(hào),使能信號(hào)有效,則各模塊工作,否則不工作。相應(yīng)的某些模塊在功能上還需要提供延遲信號(hào)和計(jì)數(shù)信號(hào)來配合,完成對(duì)應(yīng)的功能。時(shí)序控制模塊是將各種控制信號(hào)集合起來放在了 一起。
[0057]另外,該裝置還可以包括:防溢出模塊18,用于所述并行加比選模塊獲得所述累加值之后,當(dāng)O狀態(tài)對(duì)應(yīng)的累加值有效位的最高位為I時(shí),根據(jù)來自所述時(shí)序控制模塊的使能信號(hào),將所有獲得的累加值有效位的次高位減1,獲得新的累加值并作為本次累加計(jì)算的結(jié)果。
[0058]其中,所述不同的編碼方式包括咬尾卷積編碼和非咬尾卷積編碼;所述咬尾卷積編碼對(duì)應(yīng)的回溯方式為一次回溯,回溯深度為兩倍的編碼長(zhǎng)度;所述非咬尾卷積編碼對(duì)應(yīng)的回溯方式為滑窗回溯,所述滑窗回溯的overlap、窗長(zhǎng)和有效比特?cái)?shù)由算法仿真決定。所述不同制式包括長(zhǎng)期演進(jìn)(LTE)、時(shí)分同步碼分多址(TD-SCDMA)、寬帶碼分多址(WCDMA)和碼分多址(CDMA) 2000制式。
[0059]當(dāng)所述不同制式包括TD-SCDMA、WCDMA和CDMA2000制式時(shí),所述回溯模塊根據(jù)碼塊長(zhǎng)度的不同,所選擇的回溯方式為一次回溯與滑窗回溯相結(jié)合的方式。
[0060]進(jìn)一步地,所述并行加比選模塊包括累加計(jì)算單元141、選擇單元142和判斷單元143,如圖1b所示,其中:
[0061]累加計(jì)算單元,用于根據(jù)狀態(tài)轉(zhuǎn)移圖,多路并行累加計(jì)算對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值,獲得累加值;[0062]選擇單元,用于根據(jù)加比選法則,選擇最大的累加值作為下一狀態(tài)的新的度量值,并向所述幸存路徑存儲(chǔ)模塊發(fā)送選擇結(jié)果,直到待解碼數(shù)據(jù)結(jié)束;
[0063]判斷單元,用于當(dāng)累加次數(shù)小于預(yù)置累加次數(shù),則返回執(zhí)行所述累加計(jì)算單元的下一次累加計(jì)算;當(dāng)所述累加次數(shù)大于或等于預(yù)置累加次數(shù),則結(jié)束累加計(jì)算。
[0064]如圖2所示,是本發(fā)明多模維特比解碼裝置的解碼方法實(shí)施例的流程圖,本實(shí)施例維特比解碼流程包括以下步驟:
[0065]步驟S201、采用乒乓存儲(chǔ)的方式存儲(chǔ)外部輸入的待解碼數(shù)據(jù);
[0066]首先判斷兩個(gè)乒乓存儲(chǔ)器是否處于空閑狀態(tài),是則允許新的待解碼數(shù)據(jù)寫入乒乓存儲(chǔ)器;否則禁止新的待解碼數(shù)據(jù)寫入。在待解碼數(shù)據(jù)寫入一個(gè)存儲(chǔ)器的同時(shí),允許從另一個(gè)存儲(chǔ)器中讀取待解碼數(shù)據(jù)。例如,第一次,將輸入的數(shù)據(jù)緩存至存儲(chǔ)器SA,第二次有數(shù)據(jù)來時(shí),通過信號(hào)切換,將輸入的數(shù)據(jù)流緩存至存儲(chǔ)器SB,同時(shí)若接收到外部的解碼指令,可以將存儲(chǔ)器SA的數(shù)據(jù)讀出。第三次在輸入存儲(chǔ)器空閑時(shí),又將新來的輸入數(shù)據(jù)流緩存至存儲(chǔ)器SA,同時(shí)又可將存儲(chǔ)器SB的數(shù)據(jù)讀出。如此循環(huán),即可實(shí)現(xiàn)數(shù)據(jù)的無縫緩沖,大大提高了后期的并行處理速度,有效減少了解碼時(shí)因?yàn)榈却鎯?chǔ)數(shù)據(jù)而帶來的處理延遲。此處的存儲(chǔ)器深度由各種制式協(xié)議規(guī)定中的待編碼數(shù)據(jù)的最長(zhǎng)碼塊長(zhǎng)度決定,寬度由采樣精度決定;
[0067]步驟S202、計(jì)算接收碼字與參考碼字的分支路徑度量值;
[0068]接收碼字為待解碼數(shù)據(jù),參考碼字為編碼器的狀態(tài)輸出值;將編碼器的狀態(tài)輸出值與待解碼數(shù)據(jù)進(jìn)行相關(guān)計(jì)算,獲得分支路徑度量值;
[0069]本實(shí)施例主要用于數(shù)據(jù)移動(dòng)通訊系統(tǒng)中糾錯(cuò)碼的解碼,例如3G(3rd_Generation,第三代移動(dòng)通信技術(shù))及LTE項(xiàng)目等。圖3和圖4分別為L(zhǎng)TE制式所采用的咬尾卷積編碼器和TD-SCDMA制式所采用的普通卷積編碼器,下面我們僅以這兩種制式資源共享為例進(jìn)行詳細(xì)描述,其他制式復(fù)用原理類似;
[0070]參照?qǐng)D3,是LTE標(biāo)準(zhǔn)中提供的咬尾卷積編碼器,共有6個(gè)移存器,在開始編碼前,編碼器的6個(gè)移位寄存器的初值設(shè)為待編碼數(shù)據(jù)的后6比特。該編碼器約束度為7,碼率為1/3,因此每一次計(jì)算過程中有26 = 64個(gè)狀態(tài)。按照LTE協(xié)議的規(guī)定,碼塊分段的結(jié)果,卷積編碼器一次編碼的最大輸入數(shù)據(jù)量為80比特;
[0071]參照?qǐng)D4a和圖4b,TD_SCDMA協(xié)議中所用卷積編碼器由兩個(gè)碼率分別為1/2和1/3的編碼器組成,共有8個(gè)移存器,約束長(zhǎng)度都為9,因此每一次計(jì)算過程中有28 = 256個(gè)狀態(tài)。在開始編碼前,編碼器的8個(gè)移位寄存器的初值設(shè)為全0,并在輸入比特的末尾添加8個(gè)比特O。按照3G協(xié)議的規(guī)定,碼塊分段的結(jié)果,卷積編碼器一次編碼的最大輸入數(shù)據(jù)量為504比特;
[0072]在卷積編碼過程中(同時(shí)適合于咬尾卷積編碼和普通編碼器),在T時(shí)刻,能到達(dá)S2k、S2k+1的狀態(tài)有兩個(gè)為Sk和Sk+32 (k = O?31)或Sk+128 (k = O?127)這兩個(gè)狀態(tài),S2k對(duì)應(yīng)于輸入為0,S2k+1對(duì)應(yīng)于輸入為I。Sk和Sk+32或Sk+128的最高位分別對(duì)應(yīng)為O和1,S卩如圖5所示的編解碼狀態(tài)轉(zhuǎn)移圖。例如,根據(jù)其編解碼狀態(tài)轉(zhuǎn)移圖,通過相關(guān)計(jì)算可知Sk到S2k和s2k+1的分支路徑度量值分別為5和3,而Sk+32到S2k和S2k+1的分支度量值分別為13和10 ;
[0073]根據(jù)圖3、圖4a、圖4b的卷積編碼器的不同結(jié)構(gòu),相應(yīng)的參考碼字和碼率都會(huì)有變化,此步驟根據(jù)制式的不同,選擇不同的碼率和參考碼字,從而計(jì)算得到相應(yīng)的分支路徑度量值;
[0074]步驟S203、根據(jù)制式、編碼多項(xiàng)式以及編碼狀態(tài)之間的關(guān)系,對(duì)分支度量路徑進(jìn)行選擇,送入加比選模塊進(jìn)行計(jì)算;
[0075]本發(fā)明的多模系統(tǒng)要最大程度的復(fù)用資源,為了滿足LTE模式的速率要求,提高數(shù)據(jù)吞吐率,維特比解碼器的加比選模塊內(nèi)部在LTE模式下是全并行運(yùn)算的,其他模式共享的基礎(chǔ)就是LTE下的32路加比選子模塊全并行。LTE模式下,約束度與TD-SCDMA、CDMA2000,WCDMA是不同的,但其只有64個(gè)不同狀態(tài),32路全并行在一個(gè)elk時(shí)鐘下就可一次計(jì)算完,因此其與對(duì)應(yīng)的編碼多項(xiàng)式進(jìn)行必要的計(jì)算選擇后,得到送予并行加比選子模塊的分支路徑度量是固定不變。也因此,LTE模式下的分支度量路徑選擇提前計(jì)算好,當(dāng)固定選擇送予加比選模塊,節(jié)省了大量計(jì)算資源;
[0076]在TD-SCDMA、CDMA 2000、WCDMA模式下,約束度相同,雖編碼多項(xiàng)式和碼率等存在不同,但計(jì)算時(shí)在一定程度上可實(shí)現(xiàn)共享。外部在進(jìn)行維特比譯碼時(shí),會(huì)送出相應(yīng)制式和碼率的指示信號(hào),通過碼率選擇,我們可以在1/2碼率時(shí)將1/3碼率下的第三組分支路徑度量旁路掉,或置為0,默認(rèn)為1/3碼率;在加比選模塊進(jìn)行累加時(shí),處理方式類似,則可實(shí)現(xiàn)不同碼率的共享;由于TD-SCDMA、CDMA 2000,WCDMA模式下,狀態(tài)有28 = 256個(gè),32路并行的加比選子模塊無法一次性完成所有狀態(tài)度量及路徑度量的計(jì)算,也因此,每一次的分支路徑度量需要進(jìn)行不同方式的算法選擇。編碼多項(xiàng)式和狀態(tài)也需要根據(jù)制式以及碼率進(jìn)行選擇,尤其是計(jì)算如何選擇分支路徑度量的必備因素;
[0077]步驟S204、根據(jù)狀態(tài)轉(zhuǎn)移圖,將對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值并行累加計(jì)算,獲得累加值,并將最大的累加值作為下一狀態(tài)的新的度量值,記錄所有的幸存路徑選擇結(jié)果,直到待解碼數(shù)據(jù)結(jié)束;
[0078]此步驟主要在加比選模塊中完成的;加比選模塊對(duì)于不同制式皆可共享復(fù)用,不同的是在TD-SCDMA、CDMA 2000、WCDMA模式下其累加次數(shù)至少要為4*n個(gè)elk (η為編碼塊長(zhǎng)度)。根據(jù)狀態(tài)轉(zhuǎn)移圖,通過32路全并行,累加計(jì)算單元141將對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值進(jìn)行累加,并獲得累加值。例如,T-1時(shí)刻,Sk的度量值為16,Sk+32的度量值為15,且Sk到S2k和S2k+1的分支路徑度量值分別為5和3,而Sk+32到S2k和S2k+1的分支度量值分別為13和10,則通過累加對(duì)應(yīng)狀態(tài)的度量值及分支路徑度量值可知,到達(dá)S2k的路徑累加值分別為26+5 = 31和15+13 = 28,到達(dá)S2k+1的路徑累加值分別為26+3 = 29和15+10 =25。選擇單元142則根據(jù)加比選法則,選擇最大的累加值作為下一狀態(tài)的新的度量值。即選擇最大的路徑累加值31作為S2k的新的度量值,選擇最大的路徑累加值29作為S2k+1的新的度量值。同時(shí),幸存路徑存儲(chǔ)模塊將保存每一次選擇的路徑度量值,直到判斷單元143判斷累加次數(shù)大于或等于預(yù)置累加次數(shù)時(shí),才結(jié)束累加計(jì)算單元141的累加計(jì)算;
[0079]加比選是一個(gè)不斷迭代的過程,在LTE模式下的迭代次數(shù)由外部的解碼迭代次數(shù)max_times決定。當(dāng)滿足特定條件,判斷內(nèi)部循環(huán)計(jì)數(shù)max_cnt是否等于max_times,若相等則停止迭代,并將循環(huán)計(jì)數(shù)器max_cnt清O ;否則再次啟動(dòng)迭代。理論上迭代次數(shù)越大,解碼器的性能越好,然而經(jīng)仿真發(fā)現(xiàn),當(dāng)?shù)螖?shù)在4圈以上,解碼器的性能增加很小,而同時(shí)帶來的資源消耗卻大大增加,因此本發(fā)明的迭代次數(shù)maX_timeS取值優(yōu)選為2?4之間。對(duì)于其他制式整個(gè)編碼塊做一次加比選迭代即可滿足性能要求;
[0080]本發(fā)明實(shí)施例在TD-SCDMA/WCDMA和CDMA 2000模式下,最大限度的利用了 LTE模式下的并行計(jì)算加比選單元路數(shù),共享大量資源,優(yōu)化設(shè)計(jì),提高了譯碼吞吐率,LTE模式的吞吐率達(dá)到50Mbps,TD-SCDMA/WCDMA模式的吞吐率達(dá)到10Mbps,譯碼延遲也僅為us級(jí),可適用于高速譯碼系統(tǒng)。
[0081]在計(jì)算累加度量路徑的同時(shí),需要將幸存路徑選擇結(jié)果保存在幸存路徑存儲(chǔ)單元,供后續(xù)回溯模塊使用;根據(jù)32路并行加比選子模塊,在LTE模式下,一次即可保存所有的幸存路徑選擇結(jié)果,選擇深度和寬度為256*64bit的單口隨機(jī)存儲(chǔ)器(ram)即可;而TD-SCDMA, CDMA 2000、WCDMA模式按照寬度64bit的單口 ram,完成一次計(jì)算256狀態(tài)的幸存路徑至少需要4個(gè)clk(256 = 64*4),則幸存路徑存儲(chǔ)單元的深度和寬度至少為(4*n_max) *64bit (n_max > 64bit, n_max 為編碼塊的最大長(zhǎng)度);
[0082]步驟S205、在累加計(jì)算路徑度量值之后,當(dāng)O狀態(tài)對(duì)應(yīng)的累加度量值有效位的最高位為I時(shí),將所有獲得的累加值有效位的次高位減1,獲得新的累加值并作為本次累加計(jì)算的結(jié)果,此步驟在防溢出模塊中進(jìn)行,為可選步驟;
[0083]首先將判斷O狀態(tài)所對(duì)應(yīng)的累加路徑度量值的有效位的最高位(若有符號(hào)數(shù),有效位指除了符號(hào)位之外的數(shù)據(jù)位)是否為1,是則將所有獲得的累加值有效位的次高位減1,即將整體度量值向零值進(jìn)行簡(jiǎn)單歸一化。例如,以14bit的累計(jì)路徑度量值為例,當(dāng)diStanceO[12]為零時(shí),正常操作,產(chǎn)生的減法使能信號(hào)sub_en為低電平;當(dāng)distance0[12]為I時(shí),產(chǎn)生的減法使能信號(hào)sub_en為高電平,則將所有幸存路徑減去0x800 (16進(jìn)制),即distanceO有效位的次高位,就能有效防止累計(jì)度量值的溢出。
[0084]傳統(tǒng)的防溢出步驟主要是固定值的選擇上,需要比較所有路徑度量值并取其最小值作為固定值,而本實(shí)施例的防溢出步驟可以節(jié)省一堆比較選擇電路、并且減法電路極為簡(jiǎn)單,因?yàn)樗会槍?duì)累計(jì)度量值的高三位進(jìn)行減I操作。
[0085]步驟S206、從幸存路徑存儲(chǔ)模塊讀取幸存路徑選擇結(jié)果,并根據(jù)狀態(tài)度量,回溯輸出譯碼結(jié)果。
[0086]LTE模式下,編碼方式為咬尾卷積編碼,回溯可看成是轉(zhuǎn)圈的譯碼方式,即回溯一次后的狀態(tài)又回到起始狀態(tài)。其編碼塊的長(zhǎng)度一般也都比較短,小于lOObit,按照前面所述加比選模塊采用32路并行,存儲(chǔ)的幸存路徑度量ram不會(huì)很大,一次回溯輸出即可獲得解碼結(jié)果。不過,LTE下其回溯深度為2倍的編碼長(zhǎng)度,即2*n。當(dāng)輸出數(shù)據(jù)時(shí)拋棄第一倍深度的回溯數(shù)據(jù),只使用第二倍深度的回溯數(shù)據(jù),第二倍的回溯要以第一倍回溯為基礎(chǔ),因此需要存儲(chǔ)兩倍的幸存路徑選擇結(jié)果(這也是前面所述幸存路徑存儲(chǔ)模塊深度為256,而不是128的原因)。采用兩倍編碼長(zhǎng)度的回溯深度,是因?yàn)楦咚俳獯a系統(tǒng)用咬尾卷積碼代替普通卷積碼時(shí),約束度降低了,仿真后發(fā)現(xiàn)其相比一倍的編碼長(zhǎng)度回溯,解碼器的性能提高了
0.2db?0.3db,因此本發(fā)明在LTE模式下回溯深度采用兩倍的編碼長(zhǎng)度保證系統(tǒng)的性能。而且其控制更簡(jiǎn)單,實(shí)現(xiàn)更為方便。
[0087]在TD-SCDMA/WCDMA和CDMA 2000模式下,由于編碼的約束度比較長(zhǎng),因此沒必要采用兩倍的編碼長(zhǎng)度作為回溯深度提高性能。在這幾種模式下,我們采取一次回溯與滑窗回溯結(jié)合的方式,在碼塊較短時(shí)(比如256bit以下)采用一次回溯,當(dāng)碼塊長(zhǎng)度大于設(shè)定的比特?cái)?shù)(比如說256bit)時(shí),可以設(shè)置采用滑窗回溯的方法。一次回溯性能較高,然而在碼塊長(zhǎng)度比較長(zhǎng)的情況下,若要一次回溯,就需要更多的存儲(chǔ)空間,比如碼塊長(zhǎng)度為512bit,在TD-SCDMA模式下,需要的幸存路徑存儲(chǔ)單元深度與位寬至少為2048*64bit,在這種情況下,如果采用滑動(dòng)窗的方式,則可以節(jié)省大量資源,比如碼塊長(zhǎng)度依然為512比特,窗長(zhǎng)為120比特,overlap選32bit,則存儲(chǔ)幸存路徑單元深度與位寬為((120+32)*4)*64bit,即使碼塊長(zhǎng)度再長(zhǎng),滑動(dòng)窗方式的存儲(chǔ)幸存路徑單元大小依然可以保持不變。(注:這里的大小僅僅只是舉例,沒有性能參考價(jià)值)。本發(fā)明之所以采用兩種回溯方式,就是為了在保證性能前提下利用兩者的優(yōu)點(diǎn)。其中,滑窗回溯的窗長(zhǎng)、有效比特?cái)?shù)、重疊長(zhǎng)度(overlap)長(zhǎng)度都可以根據(jù)算法的性能仿真,在不同條件下進(jìn)行相應(yīng)的外部設(shè)置。
[0088]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,上述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤等。可選地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
[0089]以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,僅僅參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
【權(quán)利要求】
1.一種多模維特比解碼裝置,其特征在于,該裝置包括: 輸入數(shù)據(jù)存儲(chǔ)模塊,用于采用乒乓存儲(chǔ)的方式存儲(chǔ)外部輸入的待解碼數(shù)據(jù),以及根據(jù)接收的解碼指令讀取待解碼的數(shù)據(jù); 分支路徑度量模塊,用于向所述輸入數(shù)據(jù)存儲(chǔ)模塊發(fā)送所述解碼指令,并接收所述待解碼的數(shù)據(jù);以及,根據(jù)不同的碼率指示,對(duì)所述待解碼數(shù)據(jù)與編碼器的狀態(tài)輸出值進(jìn)行相關(guān)運(yùn)算,獲得分支路徑度量值; 模式選擇模塊,用于根據(jù)不同制式,不同約束度和不同編碼器的狀態(tài)輸出值,選擇不同組合的分支路徑度量送入并行加比選模塊; 所述并行加比選模塊,用于根據(jù)狀態(tài)轉(zhuǎn)移圖,將對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值并行累加計(jì)算,獲得累加值,并將最大的累加值作為下一狀態(tài)的新的度量值,向幸存路徑存儲(chǔ)模塊發(fā)送幸存路徑選擇結(jié)果,直到所述待解碼數(shù)據(jù)結(jié)束; 所述幸存路徑存儲(chǔ)模塊,用于保存所有的幸存路徑選擇結(jié)果; 回溯模塊,用于按照不同的編碼方式選擇不同的回溯方式,根據(jù)所述幸存路徑存儲(chǔ)模±夾保存的所述幸存路徑選擇結(jié)果,從任意狀態(tài)或最大的累加值所對(duì)應(yīng)的狀態(tài)開始回溯,獲得解碼結(jié)果; 時(shí)序控制模塊,用于向所述分支路徑度量模塊、所述模式選擇模塊、所述并行加比選模塊、所述幸存路徑存儲(chǔ)模塊和所述回溯模塊提供控制信號(hào),以便各模塊以流水線的方式操作,所述控制信號(hào)包括使能信號(hào)、延遲信號(hào)和計(jì)數(shù)信號(hào)。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述裝置還包括: 防溢出模塊,用于所述并行加比選模塊獲得所述累加值之后,當(dāng)O狀態(tài)對(duì)應(yīng)的累加值有效位的最高位為I時(shí),根據(jù)來自所述時(shí)序控制模塊的使能信號(hào),將所有獲得的累加值有效位的次高位減1,獲得新的累加值并作為本次累加計(jì)算的結(jié)果。
3.根據(jù)權(quán)利要求1或2所述的裝置,其特征在于: 所述不同的編碼方式包括咬尾卷積編碼和非咬尾卷積編碼;所述咬尾卷積編碼對(duì)應(yīng)的回溯方式為一次回溯,回溯深度為兩倍的編碼長(zhǎng)度;所述非咬尾卷積編碼對(duì)應(yīng)的回溯方式為滑窗回溯,所述滑窗回溯的重疊長(zhǎng)度(overlap)、窗長(zhǎng)和有效比特?cái)?shù)根據(jù)性能需求進(jìn)行設(shè)置。
4.根據(jù)權(quán)利要求1所述的裝置,其特征在于: 所述不同制式包括長(zhǎng)期演進(jìn)(LTE)、時(shí)分同步碼分多址(TD-SCDMA)、寬帶碼分多址(WCDMA)和碼分多址(CDMA) 2000制式。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于: 當(dāng)所述不同制式包括TD-SCDMA、WCDMA和CDMA2000制式時(shí),所述回溯模塊根據(jù)碼塊長(zhǎng)度的不同,所選擇的回溯方式為一次回溯與滑窗回溯相結(jié)合的方式。
6.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述并行加比選模塊包括: 累加計(jì)算單元,用于根據(jù)狀態(tài)轉(zhuǎn)移圖,多路并行累加計(jì)算對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值,獲得累加值; 選擇單元,用于根據(jù)加比選法則,選擇最大的累加值作為下一狀態(tài)的新的度量值,并向所述幸存路徑存儲(chǔ)模塊發(fā)送選擇結(jié)果,直到待解碼數(shù)據(jù)結(jié)束; 判斷單元,用于當(dāng)累加次數(shù)小于預(yù)置累加次數(shù),則返回執(zhí)行所述累加計(jì)算單元的下一次累加計(jì)算;當(dāng)所述累加次數(shù)大于或等于預(yù)置累加次數(shù),則結(jié)束累加計(jì)算。
7.一種多模維特比解碼裝置的解碼方法,其特征在于,該方法包括: 采用乒乓存儲(chǔ)的方式存儲(chǔ)輸入的待解碼數(shù)據(jù); 根據(jù)不同的碼率指示,對(duì)所述待解碼數(shù)據(jù)與編碼器的狀態(tài)輸出值進(jìn)行相關(guān)運(yùn)算,獲得分支路徑度量值; 根據(jù)不同制式,不同約束度和不同編碼器的狀態(tài)輸出值,選擇不同組合的分支路徑度量; 根據(jù)狀態(tài)轉(zhuǎn)移圖,將對(duì)應(yīng)狀態(tài)的度量值與分支路徑度量值并行累加計(jì)算,獲得累加值,并將最大的累加值作為下一狀態(tài)的新的度量值,記錄所有的幸存路徑選擇結(jié)果,直到所述待解碼數(shù)據(jù)結(jié)束; 按照不同的編碼方式選擇不同的回溯方式,根據(jù)記錄的所述幸存路徑選擇結(jié)果,從任意狀態(tài)或最大的累加值所對(duì)應(yīng)的狀態(tài)開始回溯,獲得解碼結(jié)果。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于, 所述獲得累加值之后,所述方法還包括: 當(dāng)O狀態(tài)對(duì)應(yīng)的累加值有效位的最高位為I時(shí),將所有獲得的累加值有效位的次高位減1,獲得新的累加值并作為本次累加計(jì)算的結(jié)果。
9.根據(jù)權(quán)利要求7或8所述的方法,其特征在于: 所述不同的編碼方式包括咬尾 卷積編碼和非咬尾卷積編碼;所述咬尾卷積編碼對(duì)應(yīng)的回溯方式為一次回溯,回溯深度為兩倍的編碼長(zhǎng)度;所述非咬尾卷積編碼對(duì)應(yīng)的回溯方式為滑窗回溯,所述滑窗回溯的重疊長(zhǎng)度(overlap)、窗長(zhǎng)和有效比特?cái)?shù)根據(jù)算法的性能仿真進(jìn)行設(shè)置。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于: 所述不同制式包括長(zhǎng)期演進(jìn)(LTE)、時(shí)分同步碼分多址(TD-SCDMA)、寬帶碼分多址(WCDMA)和碼分多址(CDMA) 2000制式。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于: 所述按照不同的編碼方式選擇不同的回溯方式包括: 當(dāng)所述不同制式包括TD-SCDMA、WCDMA和CDMA2000制式時(shí),根據(jù)碼塊長(zhǎng)度的不同,選擇一次回溯與滑窗回溯相結(jié)合的方式。
【文檔編號(hào)】H03M13/41GK103427850SQ201210163444
【公開日】2013年12月4日 申請(qǐng)日期:2012年5月24日 優(yōu)先權(quán)日:2012年5月24日
【發(fā)明者】原維 申請(qǐng)人:中興通訊股份有限公司