1. 如何選擇CRC校驗(yàn)碼的長(zhǎng)度?

        共 2776字,需瀏覽 6分鐘

         ·

        2024-11-30 08:00

        點(diǎn)擊上方藍(lán)色字體,關(guān)注我們

        來(lái)源于小伙伴提問(wèn)。



        選擇CRC校驗(yàn)碼的長(zhǎng)度時(shí)確實(shí)需要在檢錯(cuò)能力和系統(tǒng)開(kāi)銷之間做出權(quán)衡。CRC碼的長(zhǎng)度(通常是4、8、16、32位)直接影響到能檢測(cè)到的錯(cuò)誤類型和概率。


        要確定在一定檢錯(cuò)概率 p 下的最小CRC長(zhǎng)度,可以從幾個(gè)方面入手,包括信息長(zhǎng)度 n、錯(cuò)誤檢測(cè)概率需求 p、以及CRC多項(xiàng)式的選擇。


        下面從理論背景、實(shí)用方法以及計(jì)算步驟等方面詳細(xì)解釋。


        1


        理論背景:CRC的檢錯(cuò)原理

        CRC(Cyclic Redundancy Check)使用一個(gè)特定的生成多項(xiàng)式對(duì)數(shù)據(jù)幀進(jìn)行余數(shù)計(jì)算,產(chǎn)生一個(gè)校驗(yàn)碼。


        接收端利用相同的多項(xiàng)式重算余數(shù),如果余數(shù)為零則判定無(wú)誤差,否則判定出錯(cuò)。


        對(duì)于不同長(zhǎng)度的CRC碼,其生成多項(xiàng)式能探測(cè)不同類型的錯(cuò)誤:

        • 單比特錯(cuò)誤:任何CRC都能檢測(cè)單比特錯(cuò)誤。

        • 連續(xù)位翻轉(zhuǎn)的突發(fā)錯(cuò)誤:長(zhǎng)度為 k 位的CRC最多可以檢測(cè)到長(zhǎng)度不超過(guò) k 位的突發(fā)錯(cuò)誤。

        • 隨機(jī)錯(cuò)誤:概率與CRC碼的位數(shù)有關(guān)。


        2


        檢錯(cuò)概率的數(shù)學(xué)模型

        CRC的檢錯(cuò)概率可以近似通過(guò)以下公式進(jìn)行估算:

        其中 k為CRC校驗(yàn)碼的位數(shù)。


        例如,對(duì)于一個(gè)8位的CRC碼,理論上可檢測(cè)到的錯(cuò)誤概率約為 1?1/256=0.996。從公式中可以看出,位數(shù)越多,檢錯(cuò)概率越高。


        3


        根據(jù)信息長(zhǎng)度 n 和所需檢錯(cuò)概率 p 計(jì)算CRC位數(shù)

        在實(shí)際應(yīng)用中,我們可以通過(guò)以下步驟來(lái)確定CRC的位數(shù):確定目標(biāo)檢錯(cuò)概率:假設(shè)我們要求的檢錯(cuò)概率 Pdetect≥p。


        代入公式并求出位數(shù):我們可以重新排列公式來(lái)得到最小的CRC位數(shù):

        例如,若我們希望檢錯(cuò)概率 p=0.999,則:

        這意味著至少需要10位的CRC才能滿足這個(gè)檢錯(cuò)概率。


        考慮信息長(zhǎng)度 n:雖然理論上,CRC的檢錯(cuò)能力與信息長(zhǎng)度 n 不直接相關(guān),但在極長(zhǎng)的幀中,可能會(huì)遇到極端情況。


        因此,當(dāng) n 非常大(如數(shù)百甚至上千位)時(shí),建議增加1-2位以提高穩(wěn)健性。


        4


        CRC位數(shù)選擇的經(jīng)驗(yàn)法則

        • 短數(shù)據(jù)幀(如10-100比特):通常8位的CRC碼已經(jīng)可以提供很高的檢錯(cuò)概率,適合普通通信應(yīng)用。

        • 中等數(shù)據(jù)幀(100-1000比特):16位的CRC是更合適的選擇,適合要求較高檢錯(cuò)概率的協(xié)議。

        • 長(zhǎng)數(shù)據(jù)幀(1000比特以上):32位CRC可以提供極高的檢錯(cuò)能力,多用于高可靠性的工業(yè)、通信或存儲(chǔ)系統(tǒng)中。


        假設(shè)你設(shè)計(jì)的協(xié)議需要保證檢錯(cuò)概率不低于 p=0.999,且每幀數(shù)據(jù)為 n=500 比特。


        根據(jù)上面的公式,我們計(jì)算得到的最小位數(shù)約為10位;結(jié)合數(shù)據(jù)幀長(zhǎng)度,實(shí)際應(yīng)用中推薦至少選擇12位甚至16位的CRC,以確保滿足高檢錯(cuò)需求。


        進(jìn)一步的,標(biāo)準(zhǔn)CRC多項(xiàng)式(如CRC-16或CRC-32)經(jīng)過(guò)廣泛驗(yàn)證,在通信和存儲(chǔ)應(yīng)用中可靠性高,通常推薦直接采用這些標(biāo)準(zhǔn)多項(xiàng)式。


        5


        CRC碼位數(shù)對(duì)系統(tǒng)的影響

        位數(shù)越長(zhǎng)的CRC校驗(yàn)碼,校驗(yàn)性能越好,但代價(jià)是數(shù)據(jù)包的開(kāi)銷和計(jì)算復(fù)雜性增大。


        典型的實(shí)現(xiàn)中:

        • 計(jì)算性能:硬件CRC加速器可以顯著降低較長(zhǎng)CRC的計(jì)算延遲。

        • 通信開(kāi)銷:8位CRC增加的傳輸開(kāi)銷通常較小,但超過(guò)16位時(shí),額外開(kāi)銷對(duì)低速通信協(xié)議影響較大。


        綜合以上分析,為了在實(shí)際應(yīng)用中確定CRC碼長(zhǎng)度,建議的步驟如下:

        • 根據(jù)要求的檢錯(cuò)概率計(jì)算最小位數(shù)。

        • 考慮數(shù)據(jù)幀長(zhǎng)度,適當(dāng)增加1-2位以提高穩(wěn)健性。

        • 使用標(biāo)準(zhǔn)CRC多項(xiàng)式以確保通用性和可靠性。

        點(diǎn)擊閱讀原文,更精彩~

        瀏覽 117
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 国产精品 视频瘾无码 | 成人黄色毛片 | 午夜福利人人妻人人澡人人爽 | 日本少妇翘臀啪啪无遮挡动漫 | 在线观看中文字幕码 |