<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > TD-SCDMA中CRC的DSP實(shí)現

TD-SCDMA中CRC的DSP實(shí)現

——
作者:徐蘭天 時(shí)間:2013-07-24 來(lái)源:電子產(chǎn)品世界 收藏

  移位算法

本文引用地址:http://dyxdggzs.com/article/147854.htm

  直接實(shí)現方法采用移位,運算速度很低,不能滿(mǎn)足系統對實(shí)時(shí)性要求。本文對直接法進(jìn)行了改進(jìn),提出新的、易于實(shí)現的方法。該方法是由標志位與移位算法組成。標志位確定模二運算的起始點(diǎn),運算長(cháng)度為長(cháng)度加1。移位算法是根據運算結果確定標志位的位置。下面利用生成多項式進(jìn)行說(shuō)明,并給出實(shí)現代碼。

根據高層信令,選用生成多項式,其中CRC的長(cháng)度M。設輸入信號為長(cháng)度A的比特流為,其中 。輸入信號對應的多項式為
     (5)

  把輸入比特按順序存儲在中,并在其尾部多加M個(gè)零,如圖2所示。

  圖中的倒三角作為標志位,用于指示與CRC生成多項式做模二運算的起始位置,運算的結果存儲在對應輸入信號中。移位算法是標志位根據本位寄存器的值是否為零進(jìn)行移位。如果值為零就向后移一位,否則,不移位,并繼續與CRC生成多項式做模二運算。如果移位后本位寄存器依然為零,則要連續移位,但是,連續移位的總位數要小于等于M+1。當標志位移到倒數第M位,此時(shí),最后M位寄存器存儲的序列,是所求的CRC序列,具體步驟如下:

  (1)建立移位寄存器,長(cháng)度等于輸入數據長(cháng)度和CRC長(cháng)度之和;
  (2)給輸入數據后補零,補零長(cháng)度等于CRC長(cháng)度;
  (3)把數據寫(xiě)入移位寄存器中;
  (4)標志位放在寄存器最高位;
  (5)以標志位為起始位置,把寄存器值與生成多項式值做模二運算,結果存儲在寄存器中;
  (6)如果標志位的寄存器值為零,則標志位向后移位一次,重新執行本步驟,重復次數等于CRC長(cháng)度時(shí)跳轉到步驟5;如果標志位的寄存器值不為零,則跳轉到步驟5。
  (7)當標志位移出輸入數據(不包括補的零),此時(shí)最后補零寄存器的值就是CRC值。

  編程計算CRC的關(guān)鍵是標志位的移位判斷,根據本位寄存器的值進(jìn)行判斷是否移位,以及連續移位不能超過(guò)CRC長(cháng)度加1。下面給出了CRC生成的主要代碼。data_2為存儲輸入序列的寄存器,且尾部補了M個(gè)零。CrcPoly存儲生成多項式的逆序列。這里要特別說(shuō)明的是,由于高位存儲寄存器的低位,生成多項式的序列應逆序儲存。例如,生成多項式(4)其序列為110011011,但是CrcPoly存儲值為其逆序,即為110110011。

  i=1;
  while(i<=A) % A為輸入比特長(cháng)度
  for m=1:M+1 % M+1次模二運算
    if data_2(1,i)==CrcPoly(1,m)
           data_2(1,i)=0;
        else data_2(1,i)=1;
        end
         i=i+1;
    end
    i=i-1;
   %重新定位倒三角的位置
        for j=i-M:i
           if data_2(1,j)==0
               j=j+1;
           else break;
           end
       end
        i=j;
   end
   %取最后M位為CRC
   CRCout=[data_2(end-M-1:end)]



關(guān)鍵詞: TD-SCDMA CRC DSP 寄存器 FPGA 201308

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>