一種基于擴(kuò)展?jié)h明碼的二維乘積碼編碼裝置及編碼方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字信號(hào)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)領(lǐng)域以及通信數(shù)據(jù)傳輸中的糾錯(cuò)編碼技術(shù)領(lǐng)域,尤其涉及一種基于擴(kuò)展?jié)h明碼的二維乘積碼編碼裝置及編碼方法。
【背景技術(shù)】
[0002]無(wú)線通信是把要發(fā)送的消息以某種形式進(jìn)行處理,通過(guò)天線射頻技術(shù)將要發(fā)送的信息可靠準(zhǔn)確的發(fā)送給接收方。發(fā)送信息傳輸?shù)目煽啃?、?zhǔn)確性一直是無(wú)線通信技術(shù)所追求的目標(biāo)。糾錯(cuò)編碼技術(shù)是為了提高無(wú)線通信系統(tǒng)傳輸可靠性、降低信道噪聲的干擾而對(duì)原始發(fā)送信息進(jìn)行一定數(shù)學(xué)運(yùn)算的技術(shù)。糾錯(cuò)編碼又稱信道編碼,在發(fā)射端根據(jù)一定的數(shù)學(xué)算法在發(fā)送的原始信息碼元后加入一定量的校驗(yàn)碼元,在接收端根據(jù)相應(yīng)的解碼算法利用校驗(yàn)碼字實(shí)現(xiàn)對(duì)信息碼字的錯(cuò)誤發(fā)現(xiàn)及糾正,進(jìn)而提高原始信息碼元的傳輸準(zhǔn)確性。在糾錯(cuò)編碼技術(shù)中,待發(fā)送的碼字為信息碼字,經(jīng)編碼之后添加的碼字為校驗(yàn)碼字,又稱冗余信息。糾錯(cuò)編碼的目的為以最少的編碼代價(jià)換取最高的糾錯(cuò)性能和編碼增益以提高系統(tǒng)傳輸?shù)挠行约翱煽啃浴?br>[0003]乘積碼是一種糾錯(cuò)性能優(yōu)異的糾錯(cuò)編碼。乘積碼由Elias于1954年提出,它是香農(nóng)信息理論提出后第一個(gè)在非零碼率時(shí)可以實(shí)現(xiàn)無(wú)誤碼傳輸?shù)募m錯(cuò)編碼。由于當(dāng)時(shí)的硬件水平限制了其應(yīng)用。1998年P(guān)yndiah等人在Chase算法的基礎(chǔ)上提出了一種線性分組碼的軟輸入軟輸出譯碼算法,并將其應(yīng)用于乘積碼譯碼中。其糾錯(cuò)性能優(yōu)異,且算法復(fù)雜度低,為乘積碼的廣泛應(yīng)用打下了堅(jiān)實(shí)的理論基礎(chǔ)。
[0004]乘積碼以其出色的糾錯(cuò)性能和較低的編譯碼復(fù)雜度目前已在國(guó)內(nèi)外吸引了眾多研宄學(xué)者的眼球。美國(guó)、日本以及歐洲一些國(guó)家已經(jīng)將乘積碼技術(shù)應(yīng)用在衛(wèi)星通信上。美國(guó)的AHA、ALTERA, XINLNX等公司己經(jīng)開(kāi)發(fā)了可靈活編程的乘積碼編譯碼芯片,國(guó)內(nèi)還沒(méi)有這方面的專用芯片。乘積碼技術(shù)是當(dāng)前數(shù)字通信中的重要技術(shù),引起通信界的極大關(guān)注。
[0005]乘積碼可以根據(jù)子碼數(shù)目分為二維、三維及多維乘積碼,在實(shí)際應(yīng)用中以二維乘積碼為主。乘積碼在編碼時(shí),按照行列編碼的方式進(jìn)行。因此,乘積碼編碼器需要一個(gè)緩存專門用來(lái)存放原始信息和編碼信息,最后再進(jìn)行編碼輸出。乘積碼根據(jù)其子碼的種類不同,可以分為多種類型,如子碼為RS碼、LDPC碼及擴(kuò)展?jié)h明碼等,亦或是兩種碼子的合成。在硬件設(shè)計(jì)時(shí),乘積碼的編碼延時(shí)是一個(gè)主要得技術(shù)難題。因此,提高編碼效率降低編碼延時(shí)同時(shí)降低硬件消耗是需要著重研宄的內(nèi)容。
[0006]乘積碼在編碼上采用行列編碼的方式,這意味著對(duì)于不同子碼構(gòu)成的二維乘積碼,其編碼要經(jīng)過(guò)行列兩個(gè)過(guò)程,其編碼延時(shí)很大;同時(shí),對(duì)于傳統(tǒng)編碼電路的硬件設(shè)計(jì),在信息存儲(chǔ)上采用讀寫存儲(chǔ)器RAM進(jìn)行數(shù)據(jù)信息的存儲(chǔ)于讀取,RAM分為雙口和單口 RAM,雙口的讀寫可以同時(shí)進(jìn)行,但是一次只能讀出一個(gè)地址位的信息,因此采用RAM存儲(chǔ)的乘積碼編碼器具有很大延時(shí)。當(dāng)存儲(chǔ)量較大時(shí),采用寄存器與RAM的硬件消耗是一樣的因此可以在硬件設(shè)計(jì)中采用寄存器組來(lái)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)與讀取。其在吞吐率方面有很大優(yōu)勢(shì)。
【發(fā)明內(nèi)容】
[0007]發(fā)明目的:為了解決現(xiàn)有技術(shù)中編碼延時(shí)大的問(wèn)題,本發(fā)明提供了一種基于擴(kuò)展?jié)h明碼的二維乘積碼編碼裝置及編碼方法,通過(guò)采用寄存器組進(jìn)行數(shù)據(jù)的存儲(chǔ)與讀取,同時(shí)根據(jù)乘積碼的碼字參數(shù)進(jìn)行寄存器的大小及個(gè)數(shù)的設(shè)定,結(jié)合相應(yīng)的時(shí)序調(diào)度算法,實(shí)現(xiàn)了行列編碼同步進(jìn)行,縮短了編碼延時(shí),提高了編碼電路吞吐率。
[0008]技術(shù)方案:為實(shí)現(xiàn)上述目的,本發(fā)明提供的基于擴(kuò)展?jié)h明碼的二維乘積碼編碼裝置,包括:信息輸入緩存模塊、編碼控制電路模塊、編碼信息存儲(chǔ)電路模塊和子碼編碼邏輯電路模塊,所述信息輸入緩存模塊用于利用FIFO存儲(chǔ)器將編碼原始信息進(jìn)行存儲(chǔ)并輸出編碼數(shù)據(jù)流至所述編碼信息存儲(chǔ)電路模塊,同時(shí)輸出編碼使能信號(hào)至所述編碼控制電路模塊;所述編碼控制電路模塊,用于在所述編碼使能信號(hào)有效后啟動(dòng)電路內(nèi)部的計(jì)數(shù)器,并在時(shí)鐘周期內(nèi)利用選擇器控制信號(hào)和地址控制信號(hào)對(duì)所述編碼信息存儲(chǔ)電路模塊進(jìn)行控制,最終輸出編碼信息和編碼輸出使能信號(hào);所述編碼信息存儲(chǔ)電路模塊,用于在所述時(shí)鐘周期內(nèi)對(duì)所述編碼數(shù)據(jù)流進(jìn)行存儲(chǔ),然后根據(jù)所述選擇器控制信號(hào)和所述地址控制信號(hào)利用所述子碼編碼邏輯電路模塊進(jìn)行子碼編碼,并將信息位數(shù)據(jù)流和校驗(yàn)位數(shù)據(jù)流輸送至所述編碼控制電路模塊用于輸出所述編碼信息。
[0009]其中,根據(jù)擴(kuò)展?jié)h明碼的編碼規(guī)則,確定了寄存器的大小和個(gè)數(shù),所述編碼信息存儲(chǔ)電路模塊包括:所述編碼信息存儲(chǔ)電路模塊包括:四個(gè)選擇器、含有k個(gè)k位的信息位寄存器的信息位寄存器組、含有k個(gè)n-k位的行校驗(yàn)寄存器的行校驗(yàn)寄存器組、含有k個(gè)n-k位的列校驗(yàn)寄存器的列校驗(yàn)寄存器組、含有n-k個(gè)n-k位的雙重校驗(yàn)寄存器的雙重校驗(yàn)寄存器組,每個(gè)寄存器組的輸入端都連接相應(yīng)選擇器的輸出,其中η為所述編碼信息子碼長(zhǎng)度,k為所述信息位數(shù)據(jù)的長(zhǎng)度。
[0010]其中,根據(jù)編碼信息的長(zhǎng)度以及校驗(yàn)位的個(gè)數(shù)進(jìn)行時(shí)序調(diào)度的計(jì)算,得出所述編碼控制電路模塊內(nèi)部計(jì)數(shù)器的計(jì)數(shù)范圍為I?n+2k。
[0011]其中,所述子碼編碼邏輯電路模塊包括:
[0012]可重構(gòu)行碼編碼運(yùn)算電路,用于對(duì)所述編碼信息存儲(chǔ)電路模塊存儲(chǔ)的行信息數(shù)據(jù)流進(jìn)行擴(kuò)展?jié)h明碼編碼,并將編碼后的行校驗(yàn)數(shù)據(jù)流反饋給所述編碼信息存儲(chǔ)電路模塊進(jìn)行存儲(chǔ);
[0013]可重構(gòu)列碼編碼運(yùn)算電路,用于對(duì)所述編碼信息存儲(chǔ)電路模塊存儲(chǔ)的列信息數(shù)據(jù)流進(jìn)行擴(kuò)展?jié)h明碼編碼,并將編碼后的列校驗(yàn)數(shù)據(jù)流反饋給所述編碼信息存儲(chǔ)電路模塊進(jìn)行存儲(chǔ);
[0014]所述可重構(gòu)列碼編碼運(yùn)算電路和所述可重構(gòu)行碼編碼運(yùn)算電路采用相同的電路結(jié)構(gòu)。
[0015]相應(yīng)地,本發(fā)明還提供了一種基于擴(kuò)展?jié)h明碼的二維乘積碼編碼方法,該方法包括以下步驟:
[0016](I)信息輸入緩存模塊利用FIFO存儲(chǔ)器將編碼原始信息進(jìn)行存儲(chǔ)并輸出編碼數(shù)據(jù)流至編碼信息存儲(chǔ)電路模塊,同時(shí)輸出編碼使能信號(hào)至編碼控制電路模塊;
[0017](2)所述編碼控制電路模塊在所述編碼使能信號(hào)有效后啟動(dòng)電路內(nèi)部的計(jì)數(shù)器,并在時(shí)鐘周期內(nèi)利用選擇器控制信號(hào)和地址控制信號(hào)對(duì)所述子碼編碼邏輯電路模塊進(jìn)行控制;
[0018](3)所述編碼信息存儲(chǔ)電路模塊在所述時(shí)鐘周期內(nèi)對(duì)所述編碼數(shù)據(jù)流進(jìn)行存儲(chǔ),然后根據(jù)所述選擇器控制信號(hào)和所述地址控制信號(hào)利用子碼編碼邏輯電路模塊進(jìn)行子碼編碼,并將所得到的校驗(yàn)位信息進(jìn)行存儲(chǔ),以及將信息位數(shù)據(jù)流和校驗(yàn)位數(shù)據(jù)流輸送至所述編碼控制電路模塊。
[0019](4)所述編碼控制電路模塊根據(jù)所述信息位數(shù)據(jù)流和所述校驗(yàn)位數(shù)據(jù)流得到完整的編碼信息并進(jìn)行輸出,同時(shí)輸出編碼輸出使能信號(hào)。
[0020]其中,所述編碼控制電路模塊內(nèi)部計(jì)數(shù)器的計(jì)數(shù)范圍為I?n+2k,其中η為所述編碼信息長(zhǎng)度,k為所述信息位數(shù)據(jù)的長(zhǎng)度。
[0021]其中,所述編碼信息存儲(chǔ)電路模塊包括:選擇器、信息位寄存器組、行校驗(yàn)寄存器組、列校驗(yàn)寄存器組、雙重校驗(yàn)寄存器組,每個(gè)寄存器組分別與對(duì)應(yīng)的選擇器連接,所述子碼編碼邏輯電路模塊包括可重構(gòu)行碼編碼運(yùn)算電路和可重構(gòu)列碼編碼運(yùn)算電路,步驟(3)中所述編碼信息存儲(chǔ)電路模塊在所述時(shí)鐘周期內(nèi)進(jìn)行數(shù)據(jù)存儲(chǔ)、子碼編碼和數(shù)據(jù)流的輸送,包括以下步驟:
[0022]計(jì)數(shù)值為I?k:依次將所述編碼數(shù)據(jù)流存入編碼信息存儲(chǔ)電路模塊中的信息位寄存器組中,所述信息位寄存器組包含k個(gè)k位的信息位寄存器;
[0023]計(jì)數(shù)值為k+Ι?2*k:將信息位寄存器組中存儲(chǔ)的數(shù)據(jù)作為行信息數(shù)據(jù)流依次送至所述可重構(gòu)行碼編碼運(yùn)算電路進(jìn)行編碼得到行校驗(yàn)位數(shù)據(jù),并將所述行校驗(yàn)數(shù)據(jù)依次存儲(chǔ)至行校驗(yàn)寄存器組中,所述行校驗(yàn)寄存器組包含k個(gè)n-k位的行校驗(yàn)寄存器;同時(shí),將信息位寄存器組的比特?cái)?shù)據(jù)從最高位到最低位依次取出,且信息位寄存器I的比特位為最高位,信息位寄存器k的相同比特位為最低位合并后作為列信息數(shù)據(jù)流依次送至所述可重構(gòu)列碼編碼運(yùn)算電路進(jìn)行編碼得到列校驗(yàn)位數(shù)據(jù),并將所述列校驗(yàn)位數(shù)據(jù)依次存儲(chǔ)至列校驗(yàn)寄存器組,所述列校驗(yàn)寄存器組包含k個(gè)n-k位的列校驗(yàn)寄存器;
[0024]計(jì)數(shù)值為2*k+l?n+k:每計(jì)數(shù)一次將所述列校驗(yàn)寄存器組的最高位至最低位作為行信息數(shù)據(jù)流送入所述重構(gòu)行碼編碼運(yùn)算電路,并將得到的行信息數(shù)據(jù)流依次存入雙重校驗(yàn)寄存器組,所述雙重校驗(yàn)寄存器組包含n-k個(gè)n-k位的雙重校驗(yàn)寄存器;
[0025]同時(shí),在此計(jì)數(shù)范圍內(nèi),同步進(jìn)行編碼信息的輸出,將信息位寄存器中存儲(chǔ)的數(shù)據(jù)與對(duì)應(yīng)的行校驗(yàn)寄存器中存儲(chǔ)的數(shù)據(jù),前者作為高位后者作為低位,合并為一個(gè)η比特的編碼數(shù)據(jù)送至所述編碼控制電路模塊,所述編碼控制電路模塊輸出編碼信息,同時(shí)編碼輸出使能有效;
[0026]計(jì)數(shù)值為η+k+l?n+2*k:在計(jì)數(shù)范圍η+k+l?2*k內(nèi),繼續(xù)將所述編碼信息存儲(chǔ)電路模塊中的編碼信息輸出;在計(jì)數(shù)范圍2*k+