本發(fā)明涉及一種基于Turbo編碼的交織地址快速計(jì)算方法,克服了乘除邏輯和Block RAM查找表等計(jì)算過(guò)程復(fù)雜、FPGA資源占用多、計(jì)算結(jié)果延遲大等技術(shù)缺點(diǎn),大大提高了交織地址計(jì)算的高效性和實(shí)時(shí)性,主要在各類軌道衛(wèi)星的測(cè)控平臺(tái)上使用,屬于衛(wèi)星測(cè)控技術(shù)領(lǐng)域。
背景技術(shù):
Turbo編碼又稱并行級(jí)聯(lián)卷積碼,屬于測(cè)控或通信領(lǐng)域的一種高增益信道編碼。在Turbo編碼過(guò)程中,為了提高編碼增益,減少系統(tǒng)功耗,降低發(fā)射天線的有效輻射功率,要求編碼器b數(shù)據(jù)讀取地址(即交織地址)是隨機(jī)的,需要根據(jù)Turbo編碼既定算法進(jìn)行計(jì)算。
基于乘除邏輯的交織地址計(jì)算算法嚴(yán)格遵循Turbo編碼給定算法,基于Memory資源的交織地址查找算法,均可得到交織地址,但是這些設(shè)計(jì)存在以下不足:(1)基于乘除邏輯的交織地址計(jì)算算法其特點(diǎn)是邏輯運(yùn)算量較大,實(shí)現(xiàn)比較復(fù)雜,占用硬件資源(乘法器IP、Slices和查找表LUTs)也比較多,計(jì)算結(jié)果延遲大;(2)基于Memory資源的交織地址查找算法其特點(diǎn)是此簡(jiǎn)單、直觀,將復(fù)雜的乘法、除法、移位和取模邏輯運(yùn)算交付由matlab程序完成,算法中采用了Slices和LUTs硬件資源大大減少,但器件96個(gè)Block RAM塊資源占去了6個(gè),對(duì)于背景型號(hào)所需的非相干擴(kuò)頻多站測(cè)定軌需求而言,6個(gè)Block RAM塊資源是很珍惜的,甚至可以造成既定硬件平臺(tái)無(wú)法完成型號(hào)任務(wù)需求。
隨著傳輸信息速率提高,基于乘除邏輯或基于Memory資源的的交織地址計(jì)算技術(shù)已然無(wú)法滿足資源占用率低、計(jì)算過(guò)程可靠、計(jì)算結(jié)果延遲小等要求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)解決問(wèn)題是:克服現(xiàn)有技術(shù)的不足,提供了一種基于Turbo編碼的交織地址快速計(jì)算方法,利用加法邏輯實(shí)現(xiàn)了交織地址計(jì)算,最大程度滿足了衛(wèi)星對(duì)交織地址計(jì)算高效、準(zhǔn)確和快速的需求。
本發(fā)明的技術(shù)解決方案是:
一種基于Turbo編碼的交織地址快速計(jì)算方法,步驟如下:
(1)按照Turbo(并行級(jí)聯(lián)卷積)編碼既定格式要求完成待傳數(shù)據(jù)的AOS(高級(jí)在軌系統(tǒng))組幀,整幀幀長(zhǎng)字節(jié)數(shù)記為Na,其中參與Turbo編碼的有效數(shù)據(jù)字節(jié)長(zhǎng)度為Nb,即Nb*8比特;
(2)將有效數(shù)據(jù)以比特流方式緩存至FPGA雙端口Block RAM中,RAM位寬為1,深度需不小于Nb*8;
(3)分量編碼器a輸入數(shù)據(jù)Dataa需順序依次從RAM讀取,所述順序依次讀取是指取數(shù)過(guò)程中從零地址開(kāi)始,每讀取1比特已存數(shù)據(jù),地址加1,記編碼器a的數(shù)據(jù)地址為order,取值范圍為0~Nb*8-1;
(4)分量編碼器b輸入數(shù)據(jù)也為Block RAM所存數(shù)據(jù),但是取據(jù)過(guò)程隨機(jī),數(shù)據(jù)讀取地址則需實(shí)時(shí)計(jì)算,記編碼器b數(shù)據(jù)地址為Interl,取值范圍也為0~Nb*8-1;
(5)以編碼器a的數(shù)據(jù)地址order為參數(shù),參照order的奇偶特性和取值范圍計(jì)算編碼器b的數(shù)據(jù)交織地址,若order為偶數(shù),則根據(jù)order的取值范圍采取(6)~(13)不同分支進(jìn)行計(jì)算,若order為奇數(shù),則直接采取(14)分支進(jìn)行計(jì)算;
(6)若order為偶數(shù)且order等于零,則Interl=Interl+0x0003,之后則進(jìn)入步驟(15);
(7)若order為偶數(shù),order大于0且小于2040,則Interl=Interl+0x0081,之后則進(jìn)入步驟(15);
(8)若order為偶數(shù),order等于2040,則Interl=Interl+0x007F,之后則進(jìn)入步驟(15);
(9)若order為偶數(shù),order大于2040且小于4080,則Interl=Interl+0x0051,之后則進(jìn)入步驟(15);
(10)若order為偶數(shù),order等于4080,則Interl=Interl+0x0057,之后則進(jìn)入步驟(15);
(11)若order為偶數(shù),order大于4080且小于6120,則Interl=Interl+0x00D1,之后則進(jìn)入步驟(15);
(12)若order為偶數(shù),order等于6120,則Interl=Interl+0x00CF,之后則進(jìn)入步驟(15);
(13)若order為偶數(shù),order大于6120且小于Nb*8-1,則Interl=Interl+0x00B1,之后則進(jìn)入步驟(15);
(14)若編碼器a輸入數(shù)據(jù)的地址order為奇數(shù),即換算成16進(jìn)制后order(0)不為0,則Interl=Interl+0x00A7,之后則進(jìn)入步驟(15);
(15)對(duì)計(jì)算所得Interl進(jìn)行8160取模,所得小于8160的余數(shù)即為當(dāng)前順序地址order對(duì)應(yīng)的交織地址Interl;
(16)使用Interl作為編碼器b輸入的數(shù)據(jù)地址,從Block RAM讀取對(duì)應(yīng)的交織數(shù)據(jù)Datab,與從順序地址order讀取的Dataa一起送至Turbo編碼器,實(shí)現(xiàn)信道Turbo編碼。
所述Turbo編碼增益為8dB,編碼比率有1/2、1/3、1/4和1/6共計(jì)4檔。
本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是:本發(fā)明遵循Turbo編碼給定的交織地址計(jì)算算法,經(jīng)過(guò)數(shù)學(xué)推導(dǎo)與仿真確認(rèn),首次提出了利用加法邏輯實(shí)現(xiàn)的交織地址快速計(jì)算,它解決了基于乘除邏輯運(yùn)算量復(fù)雜,結(jié)果延遲大的技術(shù)難題,突破了基于Memory占用硬件資源多的工程瓶頸,提高了Turbo編碼的數(shù)據(jù)吞吐量,同時(shí)降低了對(duì)硬件資源苛刻需求。
附圖說(shuō)明
圖1為本發(fā)明的流程圖;
圖2為本發(fā)明涉及Turbo編碼框圖;
圖3為本發(fā)明涉及Turbo編碼幀結(jié)構(gòu);
圖4為本發(fā)明涉及交織地址示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行進(jìn)一步的詳細(xì)描述。
測(cè)控?cái)?shù)傳一體化體制針對(duì)測(cè)控信道傳輸高速數(shù)傳數(shù)據(jù)的型號(hào)需求,結(jié)合非相干擴(kuò)頻測(cè)控體制,新增測(cè)距測(cè)速功能后提出的一種新型測(cè)控體制,主要用于建立星地之間可靠和穩(wěn)定的遙測(cè)、遙控、測(cè)距測(cè)速和高速數(shù)傳鏈路。
當(dāng)擴(kuò)頻應(yīng)答機(jī)工作在測(cè)控?cái)?shù)傳一體化體制時(shí),接收地面測(cè)控站發(fā)射上行1路遙控和3路測(cè)距信號(hào),格式與特性和非相干擴(kuò)頻測(cè)控體制相同。
應(yīng)答機(jī)下行鏈路按照高級(jí)在軌系統(tǒng)的AOS協(xié)議(高級(jí)在軌系統(tǒng),為Advanced Orbiting Systems的縮寫(xiě),支持圖像、語(yǔ)音、高速、低速的各種數(shù)據(jù)任意方向的傳輸,支持異步、同步、等時(shí)傳輸模式和位流、分包等多種傳輸業(yè)務(wù),可以在一條物理信道上傳輸多種不同類型的數(shù)據(jù),是一種靈活方便的數(shù)據(jù)處理服務(wù)),采取等時(shí)性插入業(yè)務(wù),將測(cè)距測(cè)速信息插入至高速數(shù)傳的下行傳輸幀,然后采取1/3或1/6信道Turbo編碼,采取BPSK方式對(duì)載波進(jìn)行相位調(diào)制,功率放大和濾波處理后,通過(guò)測(cè)控天線發(fā)送至地面站。
在實(shí)現(xiàn)Turbo信道編碼過(guò)程中,交織地址快速計(jì)算是一項(xiàng)技術(shù)難點(diǎn),占用FPGA資源少、解算結(jié)果延遲小、計(jì)算邏輯簡(jiǎn)單可靠等是其基本要求。
本發(fā)明與現(xiàn)有衛(wèi)星技術(shù)中采用復(fù)雜乘除與取模邏輯,或利用有限BlockRAM資源等措施相比,解決了傳統(tǒng)交織地址計(jì)算方法的計(jì)算過(guò)程邏輯復(fù)雜、FPGA資源占用多、計(jì)算結(jié)果延遲大等技術(shù)缺點(diǎn),大大提高了交織地址計(jì)算的高效性和實(shí)時(shí)性,在所有衛(wèi)星實(shí)現(xiàn)基于Turbo編譯碼方面有著廣闊的應(yīng)用前景。
如圖1所示為本發(fā)明的流程圖,圖2所示為本發(fā)明涉及Turbo編碼原理。如圖2所示,Turbo編碼由輸入緩存、數(shù)據(jù)交織、分量編碼、輸出緩存以及幀頭復(fù)接等模塊組成,本發(fā)明即探討數(shù)據(jù)交織部分。
如圖3所示,Turbo編碼幀結(jié)構(gòu)由幀同步頭ASM、主導(dǎo)頭、插入?yún)^(qū)、數(shù)據(jù)域以及傳輸幀CRC等模塊組成,本專利所涉及的背景型號(hào)即采用此幀格式完成了測(cè)控?cái)?shù)傳一體化體制。
如圖4所示,本發(fā)明涉及交織地址示意,即編碼器a數(shù)據(jù)順序依次從RAM讀取,而輸入至編碼器b數(shù)據(jù)是從RAM隨機(jī)讀取,即如何實(shí)現(xiàn)交織地址的快速高效計(jì)算。
如圖1-4所示,本發(fā)明提出的一種基于Turbo編碼的交織地址快速計(jì)算方法,實(shí)施步驟如下:
(1)按照Turbo編碼既定格式要求完成待傳數(shù)據(jù)的AOS組幀,整幀的幀長(zhǎng)字節(jié)數(shù)記為Na(1024字節(jié)),其中有效數(shù)據(jù)字節(jié)長(zhǎng)度(參與Turbo編碼)為Nb(1020字節(jié)),即Nb*8比特(8160比特);
(2)將有效數(shù)據(jù)以比特流方式緩存至FPGA雙端口Block RAM中,Block RAM的位寬為1,深度需不小于Nb*8;
(3)分量編碼器a輸入數(shù)據(jù)Dataa需順序依次從RAM讀取,所述順序依次讀取是指取數(shù)過(guò)程中從零地址開(kāi)始,每讀取1比特已存數(shù)據(jù),地址加1,記編碼器a的數(shù)據(jù)地址為order,取值范圍為0~Nb*8-1;
(4)分量編碼器b輸入數(shù)據(jù)也為Block RAM所存數(shù)據(jù),但是取據(jù)過(guò)程隨機(jī),讀取數(shù)據(jù)的地址則需通過(guò)實(shí)時(shí)計(jì)算,記編碼器b數(shù)據(jù)地址為Interl,取值范圍也為0~Nb*8-1;
(5)以編碼器a的數(shù)據(jù)地址order為參數(shù),參照order的奇偶特性和取值范圍計(jì)算編碼器b的數(shù)據(jù)交織地址,若order為偶數(shù),則根據(jù)order的取值范圍采取(6)~(13)不同分支進(jìn)行計(jì)算,若order為奇數(shù),則直接采取(14)分支進(jìn)行計(jì)算;
(6)若order為偶數(shù)且order等于零,則Interl=Interl+0x0003,之后則進(jìn)入步驟(15);
(7)若order為偶數(shù),order大于0且小于2040,則Interl=Interl+0x0081,之后則進(jìn)入步驟(15);
(8)若order為偶數(shù),order等于2040,則Interl=Interl+0x007F,之后則進(jìn)入步驟(15);
(9)若order為偶數(shù),order大于2040且小于4080,則Interl=Interl+0x0051,之后則進(jìn)入步驟(15);
(10)若order為偶數(shù),order等于4080,則Interl=Interl+0x0057,之后則進(jìn)入步驟(15);
(11)若order為偶數(shù),order大于4080且小于6120,則Interl=Interl+0x00D1,之后則進(jìn)入步驟(15);
(12)若order為偶數(shù),order等于6120,則Interl=Interl+0x00CF,之后則進(jìn)入步驟(15);
(13)若order為偶數(shù),order大于6120且小于Nb*8-1,則Interl=Interl+0x00B1,之后則進(jìn)入步驟(15);
(14)若編碼器a輸入數(shù)據(jù)的地址order為奇數(shù),即換算成16進(jìn)制后order(0)不為0,則Interl=Interl+0x00A7,之后則進(jìn)入步驟(15);
(15)對(duì)計(jì)算所得Interl進(jìn)行8160取模,所得余數(shù)(小于8160)即為當(dāng)前順序地址order對(duì)應(yīng)的交織地址Interl;
(16)使用Interl作為編碼器b輸入的數(shù)據(jù)地址,從Block RAM讀取對(duì)應(yīng)的交織數(shù)據(jù)Datab,與從順序地址order讀取的Dataa一起送至Turbo編碼器,實(shí)現(xiàn)信道Turbo編碼。
本發(fā)明目前在已發(fā)射型號(hào)衛(wèi)星上使用該方法,經(jīng)過(guò)整星測(cè)試表明,應(yīng)用了本發(fā)明方法后,滿足了Turbo編碼對(duì)交織地址計(jì)算高效、準(zhǔn)確和快速的技術(shù)需求,大大提高了Turbo編碼的數(shù)據(jù)吞吐量,同時(shí)降低了對(duì)硬件資源苛刻需求,有效地保障了測(cè)控鏈路可靠建立和數(shù)據(jù)傳輸需求。
本發(fā)明說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員的公知技術(shù)。