chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于LDPC編碼的全面了解

454398 ? 來源:MYMINIEYE微信公眾號 ? 作者:MYMINIEYE微信公眾號 ? 2020-11-02 13:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一.LDPC編碼介紹

1.為什么要用LDPC編碼,LDPC編碼相對其他編碼的好處

LDPC(低密度奇偶檢驗)碼是由稀疏校驗矩陣定義的線性分組碼,具有能夠逼近香農(nóng)極限的優(yōu)良特性,其描述簡單,具有較大的靈活性和較低的差錯誤碼特性,可實現(xiàn)并行操作,譯碼復(fù)雜度低,適合硬件實現(xiàn),吞吐量大,極具高速譯碼的潛力,在碼長較長的情況下,仍然可以有效譯碼。

目前常用的信道編碼體制有BCH碼、RS碼、卷積碼、Turbo碼和LDPC碼等。其中BCH碼和RS碼都屬于線性分組碼的范疇,在較短和中等碼長下具有良好的糾錯性能;卷積碼在編碼過程中引入了寄存器,增加了碼元之間的相關(guān)性,在相同復(fù)雜度下可以獲得比線性分組碼更高的編碼增益;Turbo碼采用并行級聯(lián)遞歸的編碼器結(jié)構(gòu),其分量采用系統(tǒng)的卷積碼,能夠在長碼時逼近香農(nóng)極限,同時譯碼復(fù)雜度也可以接收,但是它的譯碼復(fù)雜性仍然較大,且碼長較長時,由于交織器的存在具有較大的時延。

相比之下LPDC具有以下特性:

(1)譯碼的復(fù)雜度很低,運(yùn)算量不會因為碼長的增加而急劇增加;

(2)采用迭代譯碼算法,可以實現(xiàn)并行操作,具有高速的譯碼能力;

(3)吞吐量大,從而改善系統(tǒng)的傳輸效率,并且便于硬件實現(xiàn);

(4)譯碼復(fù)雜度與碼長成線性關(guān)系,克服了分組碼在長碼時所面臨的巨大譯碼計算復(fù)雜度的問題,使長編碼分組的應(yīng)用成為可能。

二.LDPC編碼基礎(chǔ)
1. LDPC編碼的定義及矩陣表示
LDPC碼是一類具有稀疏矩陣的線性分組碼,在線性分組碼中,任意兩個碼字的和仍屬于這個分組碼,輸出的碼字只和輸入的信息位有關(guān),即每個消息是獨(dú)立編碼的。

假設(shè)信源輸出一系列的二進(jìn)制0和1,這些二進(jìn)制塊分成固定長的消息塊,每個消息塊記作M,由k比特信息組成,其中M=[m0,m1,…m(k-1)]。然后根據(jù)一定的編碼方式產(chǎn)生一個n維向量,這個向量就叫做m的碼字,假設(shè)信息M對應(yīng)的碼字位C,其中C=[c0,c1,…c(n-1)],則可以找到k個線性無關(guān)的碼字g0,g1,…,g(k-1),使得:

C= m0*g0+m1*g1+……+m(k-1)*g(k-1)

在C中,信息位不變,校驗位附加在信息為之后,寫成矩陣的形式就是:

C= M*G

G是k行n列的矩陣,又稱為生成矩陣。

另外,可以由n-k個n維線性無關(guān)向量h0,h1,…h(huán)(n-k-1)生成C⊥(表示與C對應(yīng)的零空間)。因此對于任意的i,hi*CT=0寫成矩陣的形式就是H*CT=0。

H為(n-k)行n列的矩陣,通常被稱為校驗矩陣,用來判斷碼字是否合法。

2. LDPC碼的Tanner圖
LDPC編碼可以用Tanner圖來唯一確定,其和校驗矩陣是完全等價的。Tanner圖的頂點(diǎn)稱為節(jié)點(diǎn),分為變量節(jié)點(diǎn)和校驗節(jié)點(diǎn),每個變量節(jié)點(diǎn)與每個碼字比特相對應(yīng),它對應(yīng)校驗矩陣的每一行,每個校驗節(jié)點(diǎn)與每個校驗方程相對應(yīng),它對應(yīng)校驗矩陣的每一列,變量節(jié)點(diǎn)和校驗節(jié)點(diǎn)之間的連線稱為沿,也代表校驗矩陣中的1。例如校驗矩陣H如下:

圖1

用Tanner圖來表示H矩陣如下:

圖2

在上圖中,從節(jié)點(diǎn)v1出發(fā),經(jīng)節(jié)點(diǎn)c1,v2,c3,再回到v1,稱為一個環(huán),環(huán)的周長為該環(huán)所包含的邊數(shù),周長較短的環(huán)影響譯碼的性能,短環(huán)的存在會使得譯碼重復(fù)迭代,影響譯碼效率,使譯碼收斂速度變慢,在構(gòu)造LDPC編碼時應(yīng)盡量避免出現(xiàn)短環(huán)。

3.eIRA編碼算法
對LDPC碼的編碼可以采用線性分組碼的通用編碼方法,但通用編碼方法的編碼復(fù)雜度與碼長的平方成正比,編碼時延較大,實用性不強(qiáng)。eIRA(extended Irregular Repeat Accumulate,擴(kuò)展的非規(guī)則重復(fù)累積碼)編碼算法,利用校驗矩陣的稀疏性進(jìn)行有效編碼,使編碼復(fù)雜度與碼長成線性關(guān)系。

eIRA編碼算法需要構(gòu)造具有如下形式的校驗矩陣

H=[H1 H2]

其中,H1是一個mXk維稀疏矩陣,H2是一個階梯狀下三角形矩陣,H2的形式如下:

圖3

系統(tǒng)碼的生成矩陣形式為G=[I P],其中I是單位矩陣 P=H1TH2-T,H2-T的形式為:

圖4

H2-T可以看成一個累加器,也稱差分編碼器。因此,eIRA 編碼算法分兩步進(jìn)行,首先將待編碼的信息矢量 m 乘以稀疏矩陣H1T,得到中間結(jié)果S,然后將中間結(jié)果S進(jìn)行重復(fù)累加,得到校驗比特,最后將信息比特和校驗比特合并起來就得到最終的碼字。

三.LPDC編碼實現(xiàn)
1.LDPC編碼過程
LDPC編碼器的任務(wù)是將K個信息比特M=[m0,m1,…,m(k-1)]通過編碼得到(N-K)個奇偶校驗比特P=[p0,p1,…,p(n-k-1)],最后得到的碼字是將信息比特與校驗比特合并,即得到碼長為N的碼字[i0,i1,…i(k-1),p0,p1,…,p(n-k-1)]。假設(shè)LDPC的碼長位16200,碼率為1/2,其中Nldpc = 16200,Kldpc =7200,Qldpc=25。

具體計算步驟如下:

(1)初始化p0=p1=p2=…=p(n-k-1)=0

(2)在表格中第一行指定的校驗位地址處累加信息位i0,如下圖所示,這一步的操作為編碼的信息矢量i乘以稀疏矩陣H1T,一共有20行,即360*20 = 7200。

圖5

對于接下來的359個信息位,im,m=1,2,…,359。在{x+(m mod 360) * Qldpc } mod(Nldpc-Kldpc)指定的校驗位地址累加信息位im,其中x表示信息為i0對應(yīng)的校驗位地址。

(3)對于信息i1,校驗位的地址需要根據(jù) i0的地址來求,例如第一個校驗位地址,{20+(1 mod 360) * 25 } mod (9000) = 45,第二個校驗位{712+(1 mod 360) * 25} mod (9000) = 737,求出所有的校驗位地址,然后進(jìn)行信息累加,如下:

圖6

(4)對于第361個信息位i360,在表中的第二行指定了累加器對應(yīng)的校驗位地址。和步驟3相同的處理方式,接下來的359個信息位對應(yīng)的校驗位地址為{x+(m mod 360) * Qldpc} mod (Nldpc-Kldpc),其中x表示i360對應(yīng)的校驗位地址。

(5)以同樣的方式處理每一組信息位,給出每一組對應(yīng)的校驗位地址。

(6)從i=1開始,按照下面的公式完成迭代計算

圖7

2.matlab實現(xiàn)
在matlab中,有專門的函數(shù)來實現(xiàn)ldpc編碼,但是在實現(xiàn)編碼之前,需要我們產(chǎn)生一個我們需要的校驗矩陣H。這里以Nldpc = 16200 ,碼率1/2為例,介紹校驗矩陣H的產(chǎn)生過程。

(1)按照上述LDPC編碼中提到的,把校驗位起始的地址存儲起來,用于計算

其他的校驗位。

圖8

把數(shù)據(jù)分成兩組是因為數(shù)據(jù)的列數(shù)不一樣,把相同列數(shù)的歸到同一組里,這樣更方便計算。

(2)根據(jù)公式,第一行,計算剩余359個校驗位地址,其他行也做同樣的操作,如下代碼表示計算ct1所表示的校驗位,ct2校驗位的計算同ct1。

圖9

(3)計算完所有的校驗位之后,按照如下操作產(chǎn)生校驗矩陣

圖10

(4)用產(chǎn)生的校驗矩陣,計算LDPC編碼,這里使用comm.LDPCEncoder函數(shù)來實現(xiàn),在較早的matlab版本中是fec.ldpcenc函數(shù)。

圖11

3.FPGA實現(xiàn)
FGPA不可能一次性存儲那么多的數(shù)據(jù),并且也不現(xiàn)實,需要根據(jù)實時的計算產(chǎn)生校驗位。通過上述的分析可知,LDPC碼的編碼具有周期為360的并行結(jié)構(gòu),如果把長度為K的信息比特分成r=K/360組,長度為N-K的校驗比特分成s=(N-K)/360如下所示

圖12

由每個信息比特對應(yīng)的校驗比特公式pj=pj⊕im,其中j={x+(m mod 360)*q} mod(N-K),x是第im個信息比特所對應(yīng)的校驗比特地址。可知,每一組信息比特均參與了同一組校驗比特校驗的過程。

考慮到碼的周期性,我們可以同時進(jìn)行M=360次并行處理,增加編碼效率,可以寫成以下迭代公式:

圖13

其中符號‘r’和‘c’表示校驗矩陣 H 的行和列,和信息節(jié)點(diǎn)連接的所有檢驗節(jié)點(diǎn)的集合定義為CN(c)。兩個迭代循環(huán),每次計算M個信息位,按照下面的矩陣形式存儲Sr

圖14

從公式中可以看到,并行更新的M個Sr處于矩陣的同一行,但是輸出的順序并不是我們想要的順序,不是從行的第一位到最后一位,因此需要對輸入的信息位做循環(huán)移位,以保證S矩陣的結(jié)構(gòu)。

一旦得到Sr就可以得到pr

圖15

計算S矩陣所有列的累加和,可以的到下面的向量

圖16

然后按照下面的公式計算s’

圖17

其中,L位MXM的下三角矩陣,然后將s’邏輯右移一位,得到

圖18

最后按照下面的公式,每次計算Mbit校驗位

圖19

根據(jù)以上的公式推導(dǎo),提出以下的實現(xiàn)結(jié)構(gòu),有三個主要部分組成:第一部分計算Sr的值,第二部分就算S矩陣中列的累加和,第三部分計算校驗位。編碼器的系統(tǒng)結(jié)構(gòu)主要包括編碼配置模塊(Ldpc_contrl),信息位分組計數(shù)模塊(data_recv),基地址產(chǎn)生模塊(Bom_addr),數(shù)據(jù)地址計算模塊(ADDER_GEN),校驗位計算模塊(iterator),整個系統(tǒng)結(jié)構(gòu)如下圖所示:

圖20

3.1編碼配置

在配置模塊中提供了1/4,1/2,3/5,2/3,3/4,4/5,5/6七種碼率,為了實現(xiàn)編碼方式的可配置,利用寄存器保存不同碼率下的參數(shù),主要包括Qldpc,Kldpc,可以在整個系統(tǒng)結(jié)構(gòu)中看到。首先檢測配置使能信號,然后加載配置數(shù)據(jù),保存參數(shù)。其中fram和fram_en是輸入信息位和使能延遲輸出,考慮到最壞的情況下,配置信號和數(shù)據(jù)同時到來,需要先配置,才能進(jìn)行數(shù)據(jù)的處理,所以對數(shù)據(jù)要延遲幾個時鐘周期。

3.2 信息位分組計數(shù)

模塊的主要作用是對輸入的信息比特進(jìn)行序號標(biāo)記,采用三個計數(shù)器,其中data_cnt為 0~14 表示15個數(shù)據(jù) rom_cnt 為 0~23,24組表示共24*15=360個數(shù)據(jù),0表示初始數(shù)據(jù),fram_cnt,360bit的組數(shù)統(tǒng)計。如對應(yīng)1/2碼率,輸入數(shù)據(jù)為7200bit,則數(shù)據(jù)可分為:20*360 = 20*15*24 =7200,下圖為信息位分組計數(shù)模塊主要信號的時序圖,延遲的是因為在計算校驗位地址的時候會花費(fèi)時間,為了后邊計算校驗位時信息位能夠和校驗地址對齊。

圖21

3.3 基地址產(chǎn)生

基地址產(chǎn)生模塊根據(jù)輸入的碼率選擇存在rom中的基地址,選擇基地址的讀取位置由輸入的碼率和輸入序號共同確定,輸入碼率確定及地址的起始位置,序號fram_cnt確定基地址的偏移。以1/2碼率為例,rom中初始地址為63,當(dāng)fram為0時表示第一行,讀取的基地址如下:

圖22

仿真時鐘周期為20ns,地址輸出相對信息位使能延遲了16個時鐘周期,其中移位輸出的計數(shù)器分別延時了兩個時鐘周期。延遲是為了在校驗位計算的時候,地址能夠和信息位對齊。

3.4 數(shù)據(jù)地址計算

地址計算模塊需要根據(jù)公式{x+(m mod360) * Qldpc } mod (Nldpc-Kldpc),計算每個信息位所對應(yīng)的校驗位。但是這個公式所用的取模以及乘法運(yùn)算不適合在FPGA中運(yùn)算,會占用很多的DSP資源,而且也是不必要的。以1/2碼率為例,可以轉(zhuǎn)化為如下的加減運(yùn)算。

圖23

result = Amod B ,當(dāng)A小于B時result等于A本身,當(dāng)A大于B時result等于A-B,通過這個模塊計算出每個信息位所對應(yīng)的的校驗位。

圖24

其中data_in_bom為初始地址,data_in_addr為計算的校驗位地址。

3.5校驗比特計算

校驗比特計算需要完成兩個部分,第一部分為信息位的輸出,第二部分為校驗位的輸出。因為在硬件中為實時處理。以1/2碼率為例,發(fā)送的16200bit碼字,包括7200bit信息位,9000bit校驗位,兩個部分分時段進(jìn)行。系統(tǒng)采用13個并行度計算校驗位,其中的一個的時序如下:

圖25

雙口ram設(shè)置為read first,數(shù)據(jù)相對于地址有三個時鐘的延遲。上述中所涉及的延遲均在調(diào)試中根據(jù)運(yùn)算所需時鐘數(shù)進(jìn)行的延遲。采用13個并行度計算校驗位,其中的一個的結(jié)構(gòu)如下,addr_ena和addr_flag均由read_addr控制。

圖26

最后把每個13個并行度的數(shù)據(jù)相加,然后與上一位的值異或,得到最終的輸出。

圖27

通過modelsim把結(jié)果輸出和matlab計算的結(jié)果進(jìn)行比較,可以看到我們使用FPGA實現(xiàn)的結(jié)果和用matlab做出的結(jié)果是一樣的。

圖28

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • LDPC
    +關(guān)注

    關(guān)注

    1

    文章

    66

    瀏覽量

    31947
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    1012

    瀏覽量

    56638
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    一文了解電壓諧波

    我們經(jīng)常會聽到諧波,到底什么是諧波,怎么定義的?為什么要關(guān)注諧波?什么時候關(guān)注諧波?諧波如何計算或標(biāo)準(zhǔn)規(guī)定的諧波的算法是怎樣的?GB關(guān)于電壓諧波又是如何評估的?帶著諸多的問題,我們一起來了解。
    的頭像 發(fā)表于 06-28 17:23 ?3787次閱讀
    一文<b class='flag-5'>了解</b>電壓諧波

    選擇增量編碼器時,需要考慮哪些技術(shù)指標(biāo)? 一起來了解一下吧

    選擇增量編碼器時,需要考慮哪些技術(shù)指標(biāo)?選擇增量編碼器時,需要考慮分辨率、精度、響應(yīng)頻率、輸出信號類型等多個技術(shù)指標(biāo),以下是詳細(xì)介紹: 編碼器的精度是什么?表示編碼器測量結(jié)果與真實值之
    的頭像 發(fā)表于 04-29 14:20 ?799次閱讀
    選擇增量<b class='flag-5'>編碼</b>器時,需要考慮哪些技術(shù)指標(biāo)? 一起來<b class='flag-5'>了解</b>一下吧

    脈沖編碼器的詳細(xì)解析

    脈沖編碼器作為一種關(guān)鍵的位置和速度檢測元件,在現(xiàn)代工業(yè)中發(fā)揮著至關(guān)重要的作用。本文將從脈沖編碼器的定義、工作原理、分類、優(yōu)缺點(diǎn)、應(yīng)用等多個方面,對其進(jìn)行全面而詳細(xì)的解析。 一、定義與性質(zhì) 脈沖
    的頭像 發(fā)表于 04-17 16:48 ?1524次閱讀

    優(yōu)先編碼器:高效數(shù)據(jù)選擇與編碼的解決方案

    在現(xiàn)代數(shù)字電路設(shè)計中,數(shù)據(jù)的選擇與編碼是不可或缺的重要環(huán)節(jié)。面對眾多輸入信號,如何高效地選擇并編碼所需數(shù)據(jù),成為設(shè)計師們面臨的一大挑戰(zhàn)。優(yōu)先編碼器,作為一種獨(dú)特的數(shù)字電路組件,憑借其高效、靈活的特點(diǎn)
    的頭像 發(fā)表于 03-25 08:33 ?844次閱讀

    一文帶你全面了解陶瓷電路板厚膜工藝

    陶瓷電路板厚膜工藝是一種先進(jìn)的印刷電路板制造技術(shù),廣泛應(yīng)用于電子、通信、航空航天等領(lǐng)域。本文將詳細(xì)介紹陶瓷電路板厚膜工藝的原理、流程、優(yōu)勢以及應(yīng)用,帶您全面了解這一技術(shù)……
    的頭像 發(fā)表于 03-17 16:30 ?1016次閱讀

    伺服電機(jī)編碼器怎么選型

    伺服電機(jī)編碼器的選型是一個綜合性的過程,需要考慮多個因素以確保所選編碼器能夠滿足系統(tǒng)的性能要求。以下是一些關(guān)鍵的選型步驟和考慮因素: 一、明確應(yīng)用需求 首先,需要明確伺服電機(jī)編碼器的應(yīng)用需求,包括
    的頭像 發(fā)表于 03-11 12:01 ?1442次閱讀
    伺服電機(jī)<b class='flag-5'>編碼</b>器怎么選型

    從步進(jìn)電機(jī)到智能系統(tǒng),編碼器究竟如何選擇?

    從步進(jìn)電機(jī)到智能系統(tǒng),編碼器的選擇是一個關(guān)鍵決策,它直接影響到系統(tǒng)的性能和精度。以下是一些關(guān)于如何選擇編碼器的建議: 一、明確應(yīng)用場景和需求 首先,需要明確編碼器的應(yīng)用場景和需求。不同
    的頭像 發(fā)表于 03-05 07:34 ?948次閱讀
    從步進(jìn)電機(jī)到智能系統(tǒng),<b class='flag-5'>編碼</b>器究竟如何選擇?

    DISCOAA編碼器維修

    DISCOAA編碼器維修主要包括故障診斷、維修準(zhǔn)備、維修步驟及注意事項等方面?。 在進(jìn)行DISCOAA編碼器維修時,首先需要了解常見的故障類型,如信號輸出異常、機(jī)械損壞、電氣連接問題等?1。這些故障
    的頭像 發(fā)表于 02-20 13:48 ?885次閱讀

    DISCOAA編碼器類型功能

    DISCOAA編碼器可能包括絕對編碼器和增量編碼器兩種類型,其主要功能是將輸入信號進(jìn)行分析和處理,并將其轉(zhuǎn)換為數(shù)字信號 ?。 關(guān)于類型,雖然搜索結(jié)果中并未直接提及DISCOAA
    的頭像 發(fā)表于 02-20 13:47 ?663次閱讀

    ADS1298負(fù)數(shù)的編碼,應(yīng)該怎么處理?

    由于是送到TFT屏上顯示,沒做過負(fù)的顯示。ADS1298是24位,而常見的都是32和16位,我要同時顯示正負(fù)數(shù),關(guān)于負(fù)數(shù)的編碼,應(yīng)該怎么處理?
    發(fā)表于 02-12 07:59

    信道編碼和信源編碼的區(qū)別

    信道編碼和信源編碼是數(shù)字通信系統(tǒng)中兩個至關(guān)重要的環(huán)節(jié),它們各自承擔(dān)著不同的功能和角色。
    的頭像 發(fā)表于 01-29 16:29 ?2851次閱讀

    解碼TW6501:4K LDPC技術(shù)如何讓數(shù)據(jù)存儲更可靠?

    解碼TW6501:4K LDPC技術(shù)如何讓數(shù)據(jù)存儲更可靠?
    的頭像 發(fā)表于 01-21 16:33 ?749次閱讀
    解碼TW6501:4K <b class='flag-5'>LDPC</b>技術(shù)如何讓數(shù)據(jù)存儲更可靠?

    bcd編碼的優(yōu)缺點(diǎn) bcd編碼的常見錯誤

    BCD(Binary-Coded Decimal)編碼是一種二進(jìn)制編碼方式,用于將十進(jìn)制數(shù)(0-9)直接轉(zhuǎn)換為二進(jìn)制形式。這種編碼方式在數(shù)字系統(tǒng)中非常常見,尤其是在需要處理數(shù)字?jǐn)?shù)據(jù)的硬件和軟件中
    的頭像 發(fā)表于 12-20 17:17 ?2369次閱讀

    絕對值編碼器是什么?有哪些特點(diǎn)呢

    ? ? ? ? ?在工業(yè)自動化領(lǐng)域,編碼器是一種不可缺少的測量設(shè)備。而絕對值編碼器作為其中的佼佼者,以其獨(dú)特的性能和優(yōu)勢,在眾多應(yīng)用場景中發(fā)揮著重要作用。今天,就讓我們一起來深入了解絕對值編碼
    的頭像 發(fā)表于 12-17 09:07 ?2305次閱讀

    全面了解BNC連接器:技術(shù)規(guī)格與應(yīng)用指南

    德索工程師說道BNC連接器,全稱為Bayonet Neill-Concelman連接器,是一種廣泛用于射頻應(yīng)用的小型同軸連接器。以下是對BNC連接器的技術(shù)規(guī)格與應(yīng)用指南的全面了解:   一、技術(shù)
    的頭像 發(fā)表于 12-09 11:36 ?2586次閱讀
    <b class='flag-5'>全面</b><b class='flag-5'>了解</b>BNC連接器:技術(shù)規(guī)格與應(yīng)用指南