<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 基于語(yǔ)言的BCH解碼校驗(yàn)算法

    時(shí)間:2024-08-22 21:22:03 理工畢業(yè)論文 我要投稿
    • 相關(guān)推薦

    基于匯編語(yǔ)言的BCH解碼校驗(yàn)算法

      摘要:介紹數(shù)據(jù)傳輸中BCH解碼校驗(yàn)用匯編語(yǔ)言實(shí)現(xiàn)的算法。算法包含BCH碼的差錯(cuò)檢驗(yàn)、差錯(cuò)位查找和差錯(cuò)糾正,同時(shí)列出相關(guān)主要子程序清單并予說(shuō)明。

      關(guān)鍵詞:BCH解碼校驗(yàn)算法匯編語(yǔ)言

      數(shù)據(jù)傳輸通信中,常常因傳輸差錯(cuò)造成誤碼錯(cuò)碼,尤其在無(wú)線通信中,空中的突發(fā)或隨機(jī)干擾噪聲會(huì)造成編碼差錯(cuò)。為了提高傳輸?shù)恼_率,往往采用一些校驗(yàn)方法,以檢驗(yàn)糾正傳輸差錯(cuò)。通信中校驗(yàn)的方法很多,其中的BCH編碼有其獨(dú)特的優(yōu)點(diǎn):不僅可以檢糾突發(fā)差錯(cuò),還能檢糾隨機(jī)差錯(cuò),被廣泛地采用在微機(jī)級(jí)的通信中。但對(duì)更低層的單片機(jī)級(jí)的數(shù)據(jù)傳輸通信糾錯(cuò),往往采用奇偶校驗(yàn)等簡(jiǎn)單的校驗(yàn)方法。BCH校驗(yàn)因其算法復(fù)雜,尤其是動(dòng)態(tài)實(shí)時(shí)的無(wú)線通信中,單片機(jī)的通信往往無(wú)法采用BCH解碼檢糾。

      筆者近幾年在工業(yè)測(cè)控和無(wú)線通信系統(tǒng)開(kāi)發(fā),摸索了BCH解碼檢糾在實(shí)時(shí)的、動(dòng)態(tài)的、單片機(jī)級(jí)的通信中的算法,并取得十分突出的效果。以下以BCH(31:21)碼為例進(jìn)行探討。

      1、BCH碼結(jié)構(gòu)

      BCH碼是一種檢糾能力較強(qiáng)的循環(huán)碼。它由信息多項(xiàng)式M(X)和校驗(yàn)多項(xiàng)式J(X)組成,如以T(X)表示整個(gè)BCH(31:21)碼字的31位碼組多項(xiàng)式,則:

      T(X)=M(X)+J(X)(1)

      在31位BCH碼的后面再加上1位,以保證整個(gè)碼字32位中“1”的個(gè)數(shù)為偶數(shù)。該位稱偶校驗(yàn)位。這樣就形成BCH(31:21)加1位偶校驗(yàn)位的標(biāo)準(zhǔn)碼字,其結(jié)構(gòu)為:

      其中校驗(yàn)多項(xiàng)式J(X)由公式(2)計(jì)算:

      X0X1……X20X21……X30X31T(X)J(X)偶校驗(yàn)位

      J(X)=M(X)/S(X)(2)

      式中S(X)是BCH(31:21)碼的生成多項(xiàng)式,見(jiàn)式(3):

      生成多項(xiàng)式S(X)的值在BCH(31:21)碼的值是固定的。

      BCH碼是一種循環(huán)碼,循環(huán)碼是利用除法來(lái)糾錯(cuò)的。由于任一碼組多項(xiàng)式T(X)都能被生成多項(xiàng)式S(X)整除,所以在接收端可以將接收碼組R(X)用S(X)去除。若在傳輸中未發(fā)生錯(cuò)誤,接收碼與發(fā)送碼相同,即R(X)=T(X),故接收碼組R(X)必定能被生成多項(xiàng)式S(X)整除;若碼組在傳輸中發(fā)生錯(cuò)誤,即R(X)≠T(X),R(X)被S(X)除時(shí),可能除不盡而有余項(xiàng)Y(X),因此,可根據(jù)余項(xiàng)是否為零來(lái)判斷碼中有無(wú)錯(cuò)誤(檢錯(cuò)),如有余項(xiàng),通過(guò)一定的運(yùn)算就可以確定錯(cuò)誤位置,從而加以糾正(糾錯(cuò))。

      這里R(X)被S(X)除,是32位被11除,這在非實(shí)時(shí)靜態(tài)的微機(jī)級(jí)實(shí)現(xiàn)非常簡(jiǎn)單;但在實(shí)時(shí)的、動(dòng)態(tài)的、單片機(jī)級(jí)的通信中實(shí)現(xiàn)要快速巧妙的算法才能實(shí)現(xiàn),否則,現(xiàn)有的碼未檢錯(cuò)及糾錯(cuò)完畢,下一個(gè)碼已經(jīng)到了。因?yàn)閯?dòng)態(tài)中位和位的時(shí)距t往往只有幾十μs,以9.6b/s的短信為例,t=104μs。在這104μs中要完成檢錯(cuò)、定位和糾錯(cuò)三個(gè)算法程序,才是一個(gè)完整的解碼檢糾過(guò)程。

      2、檢錯(cuò)

      根據(jù)上述原理,檢錯(cuò)過(guò)程也就是求算R(X)被S(X)除的余項(xiàng)Y(X)的過(guò)程,如余項(xiàng)Y(X)=0,則R(X)=T(X),傳輸無(wú)差錯(cuò);如余項(xiàng)Y(X)≠0,則R(X)≠T(X),檢出傳輸差錯(cuò)。

      在算法語(yǔ)言中,所有的運(yùn)算總歸于二種運(yùn)算:加和減。這是電子計(jì)算機(jī)的二進(jìn)制基本電路特性所決定的,也是匯編語(yǔ)言唯一的算術(shù)運(yùn)算方法。為此,這里把除法用模二加法再加右移位實(shí)現(xiàn)。

      已知:S(X)=11101101001

      R(X)=r3r4r5r6(ri為8位寄存器)

      調(diào)用下面的模二加法右移子程序,得到R(X)/S(X)的余項(xiàng)Y(X)=r3r4。

      ;32位/16位模二加法右移子程序

      m2add:movr7,#00

      m2ddgx:mova,r3

      xrla,#0edh;S(x)的高位=oed(h)

      movr3a

      mova,r4

      cplacc.5;S(x)的低3位=001(b)

      movr4,a

      mova,r3

      acc7e10:

      jbacc.7m2addgx;R(x)的最高位為“0”,則R(x)右移

      mova,r6

      rlca

      movr6,a

      mova,r5

      rlca

      movr5,a

      mova,r4

      rlca

      movr4,a

      mova,r3

      rlca

      movr3,a

      movr7

      cjner7,#10h,acc7e10;右移總次數(shù)為16次

      ret

      余項(xiàng)Y(X)的高8位在r3寄存器中,低3位在r4的高3位。

      3、定位

      如果Y(X)=r3r4≠0,表示接收到的碼組R(X)有差錯(cuò),下一步則由Y(X)的值推算差錯(cuò)在R(X)中的位置。

      理論上要找出R(X)中差錯(cuò)的位置,必須計(jì)算出差錯(cuò)校驗(yàn)子C(X)。在實(shí)踐中,校驗(yàn)子C(X)的計(jì)算不僅費(fèi)時(shí)間,而且多位檢糾還需多個(gè)校驗(yàn)子C(X)。為此,經(jīng)過(guò)幾年的實(shí)踐,把Y(X)(即r3r4)直接作為綜合校驗(yàn)子,通過(guò)快速查表找到差錯(cuò)位置。查找程序的大小和檢糾差錯(cuò)位數(shù)有關(guān),這里以檢糾4位差錯(cuò)為例,說(shuō)明定位糾錯(cuò)的方法。

      ;4位差錯(cuò)位址查找子程序

      bitposi:movb,0;對(duì)R(X)高位至低位的移動(dòng)計(jì)數(shù)

      movr2,#1fh;設(shè)表格長(zhǎng)度

      btoa:mova,b

      incb

      acalltabsub;調(diào)用表格子程序,讀入表格值

      clrc

      subba,r3;Y(X)中的r3和表格值比較

      jnzbinc1:不相等,轉(zhuǎn)出

      mova,b;相等,繼續(xù)

      acalltabsub

      clr

      subba,r4;Y(X)中的r4和表格值比較

      jnzr2decl:不相等,轉(zhuǎn)出

      setbf0;相等,置標(biāo)志位返回

      ret

      bincl:incb

      r2decl:djnzr2,btoa

      ret;表格查畢,沒(méi)有相等的值,不置標(biāo)志位返回

      從查找子程序返回的B寄存器的值,即為差錯(cuò)在R(X)中從高位到低位的位數(shù)值。

      ;4位差錯(cuò)表格子程序

      tabsub:inca

      movca,@a+pc;將相對(duì)位置的表格送入a寄存器

      ret

      db0ebh;表格開(kāi)始,長(zhǎng)度為查找子程序中

      db00;r2寄存器的預(yù)置值

      db76h

      4、糾錯(cuò)

      找到了差錯(cuò)在R(X)位置,就可以糾錯(cuò)了。

      糾錯(cuò)的原理比較簡(jiǎn)單,因?yàn)閱纹瑱C(jī)處理的是二進(jìn)制數(shù),而二進(jìn)制數(shù)只有二個(gè)狀態(tài),即不是“0”就是“1”。也就是說(shuō),R(X)中差錯(cuò)位是“0”,則改為“1”;差錯(cuò)位是“1”,則改為“0”。所以糾錯(cuò)要對(duì)所在位求反就行了,程序見(jiàn)本刊網(wǎng)絡(luò)補(bǔ)充版。

      至此,整個(gè)檢錯(cuò)、定位、糾錯(cuò)的BCH碼校驗(yàn)檢糾過(guò)程結(jié)束。BCH碼校驗(yàn)算法,經(jīng)過(guò)實(shí)踐的檢驗(yàn),不失為單片機(jī)級(jí)的數(shù)據(jù)傳輸校驗(yàn)好算法。這種方法可以對(duì)多位隨機(jī)差錯(cuò)和多位突發(fā)差錯(cuò)進(jìn)行檢驗(yàn)和糾錯(cuò),具體位數(shù)的多少僅受單片機(jī)工作頻率的限制,而不受方法的限制。

    【基于語(yǔ)言的BCH解碼校驗(yàn)算法】相關(guān)文章:

    用匯編語(yǔ)言實(shí)現(xiàn)BCH解碼校驗(yàn)算法08-07

    基于不同解碼類型的8PSK軟解調(diào)算法研究08-13

    基于DSP的信道譯碼算法優(yōu)化10-13

    基于階梯細(xì)化的圖像放大算法10-13

    基于GP算法的知識(shí)發(fā)現(xiàn)系統(tǒng)07-31

    基于遺傳算法的OD分布09-14

    基于DSP的FFT算法實(shí)現(xiàn)的研究07-01

    基于Tvp5150的低功耗視頻解碼模塊09-23

    基于ICA的魯棒圖像水印算法07-31

    基于移動(dòng)平均的加窗DFT算法06-04

    主站蜘蛛池模板: 亚洲国产一成久久精品国产成人综合 | 国产精品无码a∨精品| 国产精品成人无码久久久久久 | 欧美亚洲综合免费精品高清在线观看 | 国产精品久久久天天影视香蕉| 久久久久成人精品无码中文字幕| 久久久精品波多野结衣| 91久久精品国产91性色也| 国产日产韩国精品视频| 呦交小u女国产精品视频| 黑人巨茎精品欧美一区二区| 午夜精品在线观看| 国产日产韩国精品视频| 亚洲精品无码高潮喷水在线| 精品久久久久久无码人妻热| 97精品伊人久久久大香线蕉 | 国产精品单位女同事在线| 2022国内精品免费福利视频 | 香港三级精品三级在线专区| 国产高清日韩精品欧美激情| 国产精品视频久久| 丰满人妻熟妇乱又仑精品| 人妻精品久久无码区| 野狼精品社区| 亚洲精品宾馆在线精品酒店| 欧美XXXX黑人又粗又长精品| 国产精品综合专区中文字幕免费播放| 一级香蕉精品视频在线播放| 久久国产精品久久精品国产| 国产精品九九九久久九九| 99视频在线观看精品| 国产成人精品日本亚洲网站 | 高清免费久久午夜精品| 久久精品国产亚洲AV高清热| 四虎国产精品永久在线| 亚洲AV无码国产精品麻豆天美| 亚洲欧美日韩国产精品一区二区| 午夜亚洲av永久无码精品| 中文精品无码中文字幕无码专区| 中文字幕无码久久精品青草| 亚洲av无码国产精品色午夜字幕|