本發(fā)明主要涉及與遙測(cè)、數(shù)傳等相關(guān)的通信應(yīng)用領(lǐng)域,多通道時(shí)分復(fù)用卷積譯碼的方法。
背景技術(shù):
卷積碼是深度空間通信系統(tǒng)和無(wú)線通信系統(tǒng)中常用的一種差錯(cuò)控制編碼。卷積碼作為通信系統(tǒng)中重要的編碼方式,以其良好的編碼性能,合理的譯碼方法,被廣泛應(yīng)用。在編碼過(guò)程中,卷積碼充分利用了各碼字間的相關(guān)性。在與分組碼同樣的碼率和設(shè)備復(fù)雜性的條件下,無(wú)論從理論上還是從實(shí)踐上都證明,卷積碼的性能都比分組碼具有優(yōu)勢(shì)。而且卷積碼在實(shí)現(xiàn)最佳譯碼方面也較分組碼容易。因此卷積碼廣泛應(yīng)用于衛(wèi)星通信。卷積編碼作為一種性能優(yōu)良的信道編碼方式,被廣泛應(yīng)用于各種通信系統(tǒng)中,ccsds,dvb-s2等通信協(xié)議標(biāo)準(zhǔn)均推薦使用了各種碼率的卷積碼,以獲得理想的編碼增益。在實(shí)際硬件實(shí)現(xiàn)中,卷積譯碼通常可以采用基于fpga的viterbi譯碼算法來(lái)實(shí)現(xiàn)。viterbi譯碼算法是卷積碼譯碼的一種主流算法,該算法思想是:計(jì)算網(wǎng)格圖上在時(shí)刻l到達(dá)各個(gè)狀態(tài)的路徑和接收序列之間的相似度;在形成的多條路徑中,去除不可能成為最大似然選擇對(duì)象的網(wǎng)格圖上的路徑,即,如果有兩條路徑到達(dá)同一狀態(tài),則具有最佳量度的路徑被選中,稱(chēng)為幸存路徑。對(duì)所有狀態(tài)都將進(jìn)行這樣的路徑選擇操作,譯碼器不斷在網(wǎng)格圖上深入,通過(guò)去除可能性最小的路徑實(shí)現(xiàn)判決。viterbi譯碼是卷積碼的一種最大似然譯碼算法。它把接收序列與所有可能路徑中最相似的一條路徑作為譯碼輸出,其復(fù)雜性隨約束長(zhǎng)度的增加而成指數(shù)增。viterbi譯碼器以碼的代數(shù)結(jié)構(gòu)為基礎(chǔ),由于利用了信道的統(tǒng)計(jì)性,可以保證較小的譯碼錯(cuò)誤概率。該算法效率高、速度快,易于硬件實(shí)現(xiàn)。譯碼的實(shí)現(xiàn)一般可采用并行、串行、串并結(jié)合三種結(jié)構(gòu)。并行結(jié)構(gòu)速度快,但實(shí)現(xiàn)所需的資源隨卷積碼約束度的增加呈指數(shù)增長(zhǎng);串行結(jié)構(gòu)實(shí)現(xiàn)所需資源較少,但以犧牲譯碼速度為代價(jià):串并結(jié)合的譯碼則是在譯碼速度和資源之間取一個(gè)折中。目前卷積碼譯碼器的主要缺點(diǎn)在于:其一,占用資源較多,最高工作頻率較低;其二,在移動(dòng)通信應(yīng)用中,功耗是譯碼器硬件實(shí)現(xiàn)時(shí)關(guān)注的一個(gè)重要問(wèn)題。另一方面,隨著對(duì)數(shù)據(jù)傳輸可靠性的要求的不斷提高,卷積碼約束長(zhǎng)度也在不斷增加,使得viterbi譯碼器的硬件復(fù)雜度呈指數(shù)增長(zhǎng),在資源有限的條件下實(shí)現(xiàn)難度加大。
隨著測(cè)控通信任務(wù)日益繁重,以及對(duì)設(shè)備集成度要求的不斷提高,終端設(shè)備的性能和資源之間的矛盾越來(lái)越明顯。在某些應(yīng)用場(chǎng)景中,解調(diào)終端需對(duì)多路接收信息進(jìn)行卷積譯碼,如果采用傳統(tǒng)的一路信息配置一個(gè)譯碼器的譯碼方式會(huì)造成硬件資源無(wú)法滿足方案要求。同時(shí),卷積碼不同于分組碼,碼字之間具有相互獨(dú)立的的特性。卷積碼的編碼器結(jié)構(gòu)決定了其編碼輸出的連續(xù)性,其編碼過(guò)程可以看作是基于其移位寄存器的狀態(tài)轉(zhuǎn)移過(guò)程。整個(gè)編碼過(guò)程可以看成是輸入信息序與由移位寄存器模2和連接方式所決定的另一個(gè)序列的卷積,故稱(chēng)為卷積碼。卷積碼主要應(yīng)用于前向糾錯(cuò)fec數(shù)據(jù)通信系統(tǒng)中。譯碼是編碼的逆過(guò)程,同時(shí)去掉比特流在傳播過(guò)程中混入的噪聲。卷積碼的譯碼方法有兩大類(lèi):一類(lèi)是大數(shù)邏輯譯碼,又稱(chēng)門(mén)限譯碼(硬判決);另一種是概率譯碼(軟判決),概率譯碼又分為維特比譯碼和序列譯碼兩種。門(mén)限譯碼方法是以分組碼理論為基礎(chǔ)的,其譯碼設(shè)備簡(jiǎn)單,速度快,但其誤碼性能要比概率譯碼法差。卷積碼的viterbi譯碼是根據(jù)接收碼字序列尋找編碼時(shí)通過(guò)網(wǎng)格圖最佳路徑的過(guò)程,找到最佳路徑即完成了譯碼過(guò)程,并可以糾正接收碼字中的錯(cuò)誤比特。由于卷積碼譯碼的復(fù)雜度隨著約束長(zhǎng)度的增加以非線性方式迅速增加,在實(shí)際應(yīng)用中,卷積碼的實(shí)際應(yīng)用性能往往受限于存儲(chǔ)器容量和系統(tǒng)運(yùn)算速度,尤其是對(duì)約束長(zhǎng)度比較大的卷積碼。緩存數(shù)據(jù)時(shí),應(yīng)考慮各通道譯碼時(shí)由于數(shù)據(jù)切換所引入狀態(tài)不連續(xù)所導(dǎo)致的起始段數(shù)據(jù)錯(cuò)誤,設(shè)置緩存重疊區(qū)域以克服譯碼損失;譯碼器電路在譯碼時(shí),由于通道切換所導(dǎo)致的狀態(tài)不連續(xù)以及譯碼模糊的存在,需設(shè)置緩存區(qū)域用于存儲(chǔ)模糊判決前的數(shù)據(jù);當(dāng)誤碼率統(tǒng)計(jì)次數(shù)達(dá)到預(yù)置值時(shí),才對(duì)各類(lèi)譯碼模糊進(jìn)行比較和判決并選擇輸出和保證譯碼的正確性。在譯碼時(shí),數(shù)據(jù)的切換不連續(xù)會(huì)造成譯碼器狀態(tài)的不連續(xù)從而導(dǎo)致譯碼性能的下降。該特性給卷積譯碼器的復(fù)用帶來(lái)了一定的難度。接收設(shè)備對(duì)通道數(shù)(集成度)的高要求與設(shè)備有限的硬件資源之間存在矛盾。雖然可以使用一個(gè)工作時(shí)鐘頻率較高的譯碼器來(lái)對(duì)多路接收通道的數(shù)據(jù)進(jìn)行卷積譯碼,但隨之而來(lái)的問(wèn)題是由于卷積碼不具有分組碼的分組特性,在通道間譯碼數(shù)據(jù)切換時(shí)會(huì)帶來(lái)譯碼器狀態(tài)的突變,從而使得譯碼性能大大降低。viterbi卷積譯碼器是整個(gè)譯碼器的一個(gè)關(guān)鍵部分,電路結(jié)構(gòu)由viterbi譯碼ipcore和其外圍數(shù)據(jù)處理電路和控制電路構(gòu)成。由于傳統(tǒng)的viterbi卷積譯碼器的輸入數(shù)據(jù)周期性地在各通道彼此獨(dú)立的數(shù)據(jù)段之間切換,加之起始模糊的存在,卷積譯碼器如果根據(jù)單次的ber統(tǒng)計(jì)結(jié)果直接選擇輸出譯碼結(jié)果很可能會(huì)導(dǎo)致譯碼結(jié)果的起始部分錯(cuò)誤。
技術(shù)實(shí)現(xiàn)要素:
為了解決接收設(shè)備對(duì)通道數(shù)(集成度)的高要求與設(shè)備有限的硬件資源之間的矛盾,本發(fā)明針對(duì)目前卷積碼譯碼器占用資源較多,最高工作頻率較低的缺點(diǎn),提供一種譯碼損失低、資源占用率小,能有效地減少存儲(chǔ)量、降低功耗、提高速度,越區(qū)切換而丟失,并能降低數(shù)據(jù)傳輸誤碼率的多通道時(shí)分復(fù)用卷積譯碼的方法。
本發(fā)明的上述目的可以通過(guò)以下措施來(lái)達(dá)到,在譯碼架構(gòu)中,多通道間時(shí)分復(fù)用同一個(gè)viterbi卷積譯碼器,卷積譯碼器對(duì)輸入的每一路信息采用乒乓緩存的方進(jìn)行緩存,對(duì)每個(gè)通道各數(shù)據(jù)段之間譯碼前數(shù)據(jù)分割并設(shè)置重疊區(qū)域,先緩存各路待譯碼數(shù)據(jù),由輪詢控制電路輪詢各通道數(shù)據(jù)緩存情況;當(dāng)譯碼數(shù)據(jù)緩存電路緩存數(shù)據(jù)量達(dá)到門(mén)限值時(shí),由緩存控制電路拉高數(shù)據(jù)存滿標(biāo)識(shí),直到輪詢控制電路調(diào)用卷積譯碼器電路對(duì)該段緩存數(shù)據(jù)進(jìn)行譯碼;輪詢控制電路分時(shí)調(diào)用一個(gè)譯碼器,譯碼器累加預(yù)置次數(shù)的誤碼統(tǒng)計(jì)結(jié)果,判決譯碼數(shù)據(jù)緩存電路的譯碼數(shù)據(jù),基于輪詢調(diào)用方式選擇緩存單元對(duì)多通道信息數(shù)據(jù)分別進(jìn)行卷積譯碼,譯碼后數(shù)據(jù)根據(jù)通道標(biāo)識(shí),經(jīng)過(guò)數(shù)據(jù)拼接處理后由相應(yīng)的通道輸出。
本發(fā)明相比于現(xiàn)有技術(shù)具有如下有益效果。
譯碼損失低。本發(fā)明在譯碼架構(gòu)中,多通道間時(shí)分復(fù)用同一個(gè)卷積碼viterbi譯碼器電路對(duì)其數(shù)據(jù)進(jìn)行譯碼;譯碼前,首先對(duì)輸入的每一通道數(shù)據(jù)采用乒乓緩存的方式緩存每個(gè)通道的各數(shù)據(jù)段進(jìn)行譯碼前數(shù)據(jù)分割并設(shè)置重疊區(qū)域,克服了通道切換時(shí)引入的狀態(tài)不連續(xù)所導(dǎo)致的譯碼損失;在譯碼時(shí),設(shè)置用于存儲(chǔ)模糊判決前數(shù)據(jù)的緩存區(qū)域,當(dāng)誤碼率統(tǒng)計(jì)次數(shù)達(dá)到預(yù)置值時(shí),對(duì)各類(lèi)譯碼模糊進(jìn)行比較和判決并選擇輸出,完成對(duì)各通道數(shù)據(jù)正確無(wú)誤的卷積譯碼,克服了由于數(shù)據(jù)切換所引入狀態(tài)不連續(xù)所導(dǎo)致的起始段數(shù)據(jù)錯(cuò)誤和譯碼模糊的問(wèn)題。
資源占用率小。本發(fā)明通過(guò)各通道間時(shí)分復(fù)用同一個(gè)viterbi卷積譯碼器,對(duì)各通道接收數(shù)據(jù)進(jìn)行緩存,采用時(shí)分復(fù)用的方式輪詢調(diào)用同一個(gè)卷積碼譯碼器進(jìn)行譯碼,通過(guò)輪詢各通道數(shù)據(jù)緩存情況,分時(shí)調(diào)用一個(gè)譯碼器,完成對(duì)多通道信息的卷積譯碼。在保證譯碼性能的同時(shí),解決了硬件資源緊張的問(wèn)題。每個(gè)通道各數(shù)據(jù)段之間譯碼前數(shù)據(jù)分割、譯碼后數(shù)據(jù)拼接,對(duì)各通道間數(shù)據(jù)切換所引入的起始段數(shù)據(jù)錯(cuò)誤問(wèn)題進(jìn)行分析,同時(shí),對(duì)譯碼器相關(guān)參數(shù)設(shè)置給出了明確的數(shù)值,有效減少了譯碼器的資源占用率。由于對(duì)各通道的待譯碼數(shù)據(jù)進(jìn)行了乒乓緩存處理,通過(guò)緩存區(qū)域間設(shè)置的重疊區(qū)域,可以有效地保證譯碼的連續(xù)性,大大減少對(duì)硬件資源的占用率,并且避免了時(shí)分復(fù)用時(shí)數(shù)據(jù)切換引起的回溯起始狀態(tài)的選擇錯(cuò)誤而導(dǎo)致的數(shù)據(jù)段尾部誤碼。解決了工程項(xiàng)目中資源有限條件下對(duì)通道數(shù)量的要求高的難題。
能有效地減少存儲(chǔ)量、降低功耗、提高速度。本發(fā)明緩存電路采用乒乓緩存方式接收數(shù)據(jù),卷積譯碼器采用乒乓緩存的方式對(duì)輸入的每一路信息進(jìn)行緩存,避免了由于輪詢沖突未能及時(shí)調(diào)用卷積譯碼器導(dǎo)致的數(shù)據(jù)溢出。當(dāng)緩存數(shù)據(jù)量達(dá)到門(mén)限值時(shí),輪詢控制電路拉高數(shù)據(jù)存滿標(biāo)識(shí)直到卷積譯碼器對(duì)該段緩存數(shù)據(jù)進(jìn)行譯碼。由于ipcore的誤碼率統(tǒng)計(jì)更新長(zhǎng)度設(shè)置為300個(gè)符號(hào),多通道分時(shí)復(fù)用同一個(gè)卷積譯碼器,通過(guò)輪詢各通道數(shù)據(jù)緩存情況,完成對(duì)多通道信息的卷積譯碼,成倍地提高了數(shù)據(jù)吞吐率,卷積碼譯碼器在提高吞吐率的同時(shí),幾乎不損失性能。在保證譯碼性能的同時(shí),能有效地減少存儲(chǔ)量、降低功耗、提高速度解決了硬件資源緊張的問(wèn)題。
通道間數(shù)據(jù)切換而不丟失,降低數(shù)據(jù)傳輸?shù)恼`碼率。本發(fā)明由于卷積譯碼器采用了先緩存各路模糊譯碼數(shù)據(jù),根據(jù)多次誤碼率統(tǒng)計(jì)更新結(jié)果進(jìn)行選擇輸出最終譯碼結(jié)果的方式,減小了譯碼器狀態(tài)控制的復(fù)雜度,提高了譯碼器的運(yùn)行速度,解決了數(shù)據(jù)段切換時(shí)可能帶來(lái)的起始段譯碼錯(cuò)誤問(wèn)題,保證的譯碼結(jié)果的正確性和連續(xù)性。采用的viterbi譯碼ipcore和其外圍數(shù)據(jù)處理電路和控制電路構(gòu)成的viterbi卷積譯碼器和傳統(tǒng)的viterbi卷積譯碼器不同,在譯碼器電路外圍數(shù)據(jù)處理電路中增加了誤碼統(tǒng)計(jì)功能,當(dāng)誤碼統(tǒng)計(jì)累加次數(shù)達(dá)到預(yù)置次數(shù)后,再由控制電路對(duì)各類(lèi)模糊數(shù)據(jù)進(jìn)行判決輸出,從而降低了數(shù)據(jù)傳輸?shù)恼`碼率,可以保證每一通道的各段譯碼數(shù)據(jù)正確無(wú)誤的銜接。避免了現(xiàn)有技術(shù)由于卷積譯碼器的輸入數(shù)據(jù)周期性地在各通道彼此獨(dú)立的數(shù)據(jù)段之間切換,加之起始模糊的存在,卷積譯碼器如果根據(jù)單次的ber統(tǒng)計(jì)結(jié)果直接選擇輸出譯碼結(jié)果很可能會(huì)導(dǎo)致譯碼結(jié)果的起始部分錯(cuò)誤的缺陷。
本發(fā)明適用于通道數(shù)(集成度)有較高要求的應(yīng)用場(chǎng)景中,具有非常大的優(yōu)勢(shì)。
表1資源占用情況
下面結(jié)合附圖和實(shí)施例對(duì)本專(zhuān)利進(jìn)一步說(shuō)明。
圖1是本發(fā)明多通道時(shí)分復(fù)用卷積譯碼的流程圖。
圖2是本發(fā)明譯碼器的電路原理示意圖。
圖3是圖2緩存單元構(gòu)造示意圖。
具體實(shí)施方式
參閱圖1。根據(jù)本發(fā)明,在譯碼架構(gòu)中,多通道間時(shí)分復(fù)用同一個(gè)viterbi卷積譯碼器,卷積譯碼器對(duì)輸入的每一路信息采用乒乓緩存的方進(jìn)行緩存,對(duì)每個(gè)通道各數(shù)據(jù)段之間譯碼前數(shù)據(jù)分割并設(shè)置重疊區(qū)域,先緩存各路待譯碼數(shù)據(jù),由輪詢控制電路輪詢各通道數(shù)據(jù)緩存情況;當(dāng)譯碼數(shù)據(jù)緩存電路緩存數(shù)據(jù)量達(dá)到門(mén)限值時(shí),由緩存控制電路拉高數(shù)據(jù)存滿標(biāo)識(shí),直到輪詢控制電路調(diào)用卷積譯碼器電路對(duì)該段緩存數(shù)據(jù)進(jìn)行譯碼;輪詢控制電路分時(shí)調(diào)用一個(gè)譯碼器,譯碼器累加預(yù)置次數(shù)的誤碼統(tǒng)計(jì)結(jié)果,判決譯碼數(shù)據(jù)緩存電路的譯碼數(shù)據(jù),基于輪詢調(diào)用方式選擇緩存單元對(duì)多通道信息數(shù)據(jù)分別進(jìn)行卷積譯碼,譯碼后數(shù)據(jù)根據(jù)通道標(biāo)識(shí),經(jīng)過(guò)數(shù)據(jù)拼接處理后由相應(yīng)的通道輸出。譯碼器電路針對(duì)譯碼模糊的存在,克服通道切換所導(dǎo)致的狀態(tài)不連續(xù),在譯碼時(shí),設(shè)置用于存儲(chǔ)模糊判決前數(shù)據(jù)的緩存區(qū)域;當(dāng)誤碼率統(tǒng)計(jì)次數(shù)達(dá)到預(yù)置值時(shí),對(duì)各類(lèi)譯碼模糊進(jìn)行比較和判決并選擇輸出,完成對(duì)各通道數(shù)據(jù)正確無(wú)誤的卷積譯碼。
當(dāng)卷積譯碼器空閑時(shí),依次輪詢每個(gè)通道緩存單元的狀態(tài),輪詢控制電路根據(jù)設(shè)定的順序輪詢每一路緩存區(qū)域的數(shù)據(jù)存儲(chǔ)標(biāo)識(shí),當(dāng)數(shù)據(jù)存滿標(biāo)識(shí)為高電平時(shí),對(duì)每一路輪詢進(jìn)行譯碼,同時(shí)將卷積譯碼器狀態(tài)空閑標(biāo)識(shí)拉低,直到每一路譯碼完成。
譯碼時(shí),卷積譯碼器將多路模糊數(shù)據(jù)分別緩存起來(lái),利用編碼器的卷積碼網(wǎng)格圖尋找最大可能的輸入碼序列作為譯碼,并對(duì)每次更新的誤碼率進(jìn)行累加,當(dāng)誤碼率更新的次數(shù)達(dá)到設(shè)置的門(mén)限時(shí),譯碼輸出模塊對(duì)各路模糊數(shù)據(jù)的累加誤碼率結(jié)果進(jìn)行比較,選擇其中誤碼率最小的一路數(shù)據(jù)作為譯碼輸出。這樣可以避免由于數(shù)據(jù)切換帶來(lái)的起始輸出數(shù)據(jù)錯(cuò)誤。
參閱圖2、圖3。卷積譯碼器對(duì)同一通道進(jìn)行乒乓緩存的兩個(gè)緩存區(qū)域之間設(shè)置了重疊區(qū)域,緩存單元緩存區(qū)域和重疊區(qū)域的大小可根據(jù)數(shù)據(jù)速率、回溯長(zhǎng)度以及具體的卷積碼類(lèi)型進(jìn)行設(shè)置,疊區(qū)域的每個(gè)單位緩存數(shù)據(jù)段的最后n個(gè)符號(hào)會(huì)同時(shí)寫(xiě)入當(dāng)前緩存空間的末尾和下一次緩存空間的起始。輪詢控制電路根據(jù)通道標(biāo)識(shí),先存滿的通道先調(diào)用卷積譯碼器進(jìn)行譯碼。卷積譯碼器電路結(jié)構(gòu)由viterbi譯碼ipcore和其外圍數(shù)據(jù)處理電路和控制電路構(gòu)成,各通道間數(shù)據(jù)速率獨(dú)立。當(dāng)卷積譯碼器空閑時(shí),卷積譯碼器根據(jù)設(shè)定的優(yōu)先級(jí)輪詢每一路緩存區(qū)域的數(shù)據(jù)存儲(chǔ)標(biāo)識(shí),當(dāng)數(shù)據(jù)存滿標(biāo)識(shí)為高時(shí),進(jìn)行譯碼,譯碼后根據(jù)重疊區(qū)域長(zhǎng)度進(jìn)行拼接輸出。
譯碼器電路針對(duì)譯碼模糊的存在,克服通道切換所導(dǎo)致的狀態(tài)不連續(xù),在譯碼時(shí),設(shè)置用于存儲(chǔ)模糊判決前數(shù)據(jù)的緩存區(qū)域;當(dāng)誤碼率統(tǒng)計(jì)次數(shù)達(dá)到預(yù)置值時(shí),對(duì)各類(lèi)譯碼模糊進(jìn)行比較和判決并選擇輸出,完成對(duì)各通道數(shù)據(jù)正確無(wú)誤的卷積譯碼。
卷積譯碼器包括:對(duì)應(yīng)于輸入通道1的緩存單元1、對(duì)應(yīng)于輸入通道2的緩存單元2…,對(duì)應(yīng)于輸入通道8的緩存單元8,8個(gè)緩存單元通過(guò)順次串聯(lián)的輪詢控制電路、viterbi譯碼模塊和譯碼后數(shù)據(jù)處理電路,通過(guò)輸出通道1、輸出通道2….輸出通道8輸出譯碼。
為了保證譯碼輸出判斷所基于的誤碼統(tǒng)計(jì)次數(shù),提高判斷的置信度,減少由于數(shù)據(jù)量少帶來(lái)的頻繁切換開(kāi)銷(xiāo),輪詢控制電路選擇單位緩存空間的長(zhǎng)度為3600比特,通過(guò)輪詢控制電路選擇緩存單元的數(shù)據(jù)進(jìn)行譯碼。卷積譯碼器在處理數(shù)據(jù)起始模糊問(wèn)題時(shí),采用了對(duì)模糊帶來(lái)的所有可能數(shù)據(jù)流同時(shí)譯碼,然后根據(jù)ber統(tǒng)計(jì)結(jié)果選擇其中一路作為最終譯碼輸出。