導航:首頁 > 源碼編譯 > crc編解碼的研究背景

crc編解碼的研究背景

發布時間:2022-09-12 10:42:08

❶ CRC校驗為什麼能夠保證數據的准確性

CRC校驗碼的基本思想是利用線性編碼理論,在發送端根據要傳送的k位二進制碼序列,以一定的規則產生一個校驗用的監督碼(既CRC碼)r位,並附在信息後邊,構成一個新的二進制碼序列數共(k+ r)位,最後發送出去。在接收端,則根據信息碼和CRC碼之間所遵循的規則進行檢驗,以確定傳送中是否出錯。 在數據存儲和數據通訊領域,CRC無處不在:著名的通訊協議X.25的FCS(幀檢錯序列)採用的是CRC. CCITT,ARJ、LHA等壓縮工具軟體採用的是CRC32,磁碟驅動器的讀寫採用了CRC16,通用的圖像存儲格式GIF、TIFF等也都用CRC作為檢錯手段。 CRC的本質是模-2除法的余數,採用的除數不同,CRC的類型也就不一樣。通常,CRC的除數用生成多項式來表示。最常用的CRC碼的生成多項式有CRC16,CRC32. 以CRC16為例,16位的CRC碼產生的規則是先將要發送的二進制序列數左移16位(既乘以2^16)後,再除以一個多項式,最後所得到的余數既是 CRC碼,如下式所示,其中K(X)表示n位的二進制序列數,G(X)為多項式,Q(X)為整數,R(X)是余數(既CRC碼)。 K(X)>>16=G(x)Q(x)+R(x) 求CRC碼所採用模2加減運演算法則,既是不帶進位和借位的按位加減,這種加減運算實際上就是邏輯上的異或運算,加法和減法等價,乘法和除法運算與普通代數式的乘除法運算是一樣,符合同樣的規律。生成CRC碼的多項式如下,其中CRC-16和CRC-CCITT產生16位的CRC碼,而CRC-32則產生的是32位的CRC碼 接收方將接收到的二進制序列數(包括信息碼和CRC碼)除以多項式,如果余數為0,則說明傳輸中無錯誤發生,否則說明傳輸有誤,關於其原理這里不再多述。用軟體計算CRC碼時,接收方可以將接收到的信息碼求CRC碼,比較結果和接收到的CRC碼是否相同。 CCITT推薦的高級數據鏈路控制規程HDLC的幀校驗序列FCS中,使用CCITT-16即CRC16,其生成多項式為G(x)=x16+x12+x5 +1, CRC-32的生成多項式為G(x)=x32+x26+x23+x22+x16+x11+x10+x16+x8+x7+x5+x4+x2+x+1 參考資料: http://xmtrabbit.blog.163.com/blog/static/1613871320075240453210/

❷ 什麼是crc.他有什麼優缺點

一、循環冗餘碼校驗英文名稱為Cyclical Rendancy

Check,簡稱CRC。它是利用除法及余數的原理來作錯誤偵測(Error

Detecting)的。實際應用時,發送裝置計算出CRC值並隨數據一同發送給接收裝置,接收裝置對收到的數據重新計算CRC並與收到的CRC相比較,若兩個CRC值不同,則說明數據通訊出現錯誤。

根據應用環境與習慣的不同,CRC又可分為以下幾種標准:

①CRC-12碼;

②CRC-16碼;

③CRC-CCITT碼;

④CRC-32碼。

CRC-12碼通常用來傳送6-bit字元串。CRC-16及CRC-CCITT碼則用是來傳送8-bit字元,其中CRC-16為美國採用,而CRC-CCITT為歐洲國家所採用。CRC-32碼大都被採用在一種稱為Point-to-Point的同步傳輸中。

下面以最常用的CRC-16為例來說明其生成過程。

CRC-16碼由兩個位元組構成,在開始時CRC寄存器的每一位都預置為1,然後把CRC寄存器與8-bit的數據進行異或,之後對CRC寄存器從高到低進行移位,在最高位(MSB)的位置補零,而最低位(LSB,移位後已經被移出CRC寄存器)如果為1,則把寄存器與預定義的多項式碼進行異或,否則如果LSB為零,則無需進行異或。重復上述的由高至低的移位8次,第一個8-bit數據處理完畢,用此時CRC寄存器的值與下一個8-bit數據異或並進行如前一個數據似的8次移位。所有的字元處理完成後CRC寄存器內的值即為最終的CRC值。

下面為CRC的計算過程:

1.設置CRC寄存器,並給其賦值FFFF(hex)。

2.將數據的第一個8-bit字元與16位CRC寄存器的低8位進行異或,並把結果存入CRC寄存器。

3.CRC寄存器向右移一位,MSB補零,移出並檢查LSB。

4.如果LSB為0,重復第三步;若LSB為1,CRC寄存器與多項式碼相異或。

5.重復第3與第4步直到8次移位全部完成。此時一個8-bit數據處理完畢。

6.重復第2至第5步直到所有數據全部處理完成。

7.最終CRC寄存器的內容即為CRC值。

❸ CD-ROM中使用CRC編碼的目的及CRC編碼的原理

1. 數制與編碼進位計數制及其相互轉換 真值和機器數 BCD碼字元與字元串 校驗碼 (漢明碼,CRC校驗等)

2.定點數的表示和運算定點數的表示(無符號數的表示,有符號數的表示)

❹ CRC怎麼產生的,也就是它的背景

CRC(Cyclic Rendancy Check)循環冗餘校驗碼
是常用的校驗碼,在早期的通信中運用廣泛,因為早期的通信技術不夠可靠(不可靠性的來源是通信技術決定的,比如電磁波通信時受雷電等因素的影響),不可靠的通信就會帶來『確認信息』的困惑,書上提到紅軍和藍軍通信聯合進攻山下的敵軍的例子,第一天紅軍發了條信息要藍軍第二天一起進攻,藍軍收到之後,發一條確認信息,但是藍軍擔心的是『確認信息』如果也不可靠而沒有成功到達紅軍那裡,那自己不是很危險?於是紅軍再發一條『對確認的確認信息』,但同樣的問題還是不能解決,紅軍仍然不敢貿然行動。
對通信的可靠性檢查就需要『校驗』,校驗是從數據本身進行檢查,它依靠某種數學上約定的形式進行檢查,校驗的結果是可靠或不可靠,如果可靠就對數據進行處理,如果不可靠,就丟棄重發或者進行修復。

❺ CRC碼是什麼

循環冗餘校驗碼(CRC)
CRC校驗採用多項式編碼方法。被處理的數據塊可以看作是一個n階的二進制多項式,由
。如一個8位二進制數10110101可以表示為:
。多項式乘除法運算過程與普通代數多項式的乘除法相同。多項式的加減法運算以2為模,加減時不進,錯位,和邏輯異或運算一致。
採用CRC校驗時,發送方和接收方用同一個生成多項式g(x),並且g(x)的首位和最後一位的系數必須為1。CRC的處理方法是:發送方以g(x)去除t(x),得到余數作為CRC校驗碼。校驗時,以計算的校正結果是否為0為據,判斷數據幀是否出錯。
CRC校驗可以100%地檢測出所有奇數個隨機錯誤和長度小於等於k(k為g(x)的階數)的突發錯誤。所以CRC的生成多項式的階數越高,那麼誤判的概率就越小。CCITT建議:2048
kbit/s的PCM基群設備採用CRC-4方案,使用的CRC校驗碼生成多項式g(x)=
。採用16位CRC校驗,可以保證在
bit碼元中只含有一位未被檢測出的錯誤
。在IBM的同步數據鏈路控制規程SDLC的幀校驗序列FCS中,使用CRC-16,其生成多項式g(x)=
;而在CCITT推薦的高級數據鏈路控制規程HDLC的幀校驗序列FCS中,使用CCITT-16,其生成多項式g(x)=
。CRC-32的生成多項式g(x)=
。CRC-32出錯的概率比CRC-16低

。由於CRC-32的可靠性,把CRC-32用於重要數據傳輸十分合適,所以在通信、計算機等領域運用十分廣泛。在一些UART通信控制晶元(如MC6582、Intel8273和Z80-SIO)內,都採用了CRC校驗碼進行差錯控制;乙太網卡晶元、MPEG解碼晶元中,也採用CRC-32進行差錯控制。

❻ CRC的簡介

工作主要內容為根據GCP和研究方案要求,協助項目負責醫生完成各項工作; 協助受試者篩選、入組及隨訪工作;協助完成研究資料的收集、歸檔和管理工作。

❼ 循環冗餘檢驗原理CRC,C語言,誰有,私信

附件里有介紹和代碼。

❽ 常用的差錯控制編碼都有哪些

常用的差錯控制編碼方法有:奇偶校驗、恆比碼、矩陣碼、循環冗餘校驗碼、卷積碼、Turbo碼。

1、奇偶校驗

奇偶校驗是一種校驗代碼傳輸正確性的方法。根據被傳輸的一組二進制代碼的數位中「1」的個數是奇數或偶數來進行校驗。採用奇數的稱為奇校驗,反之,稱為偶校驗。

採用何種校驗是事先規定好的。通常專門設置一個奇偶校驗位,用它使這組代碼中「1」的個數為奇數或偶數。若用奇校驗,則當接收端收到這組代碼時,校驗「1」的個數是否為奇數,從而確定傳輸代碼的正確性。

2、恆比碼

恆比碼一般指定比碼 。

定比碼是指一組碼中1和0的碼元個數成一定比例的一種編碼。換言之,它是選用比特序列中1和0碼元之比例為定值,所以又稱為恆比碼。定比碼是一種常用的檢錯碼。

3、矩陣碼

矩陣碼屬二維條碼的一種,是將圖文和數據編碼後,轉換成一個二維排列的多格黑白小方塊圖形。

矩陣式二維條形碼是以矩陣的形式組成,在矩陣相應元素位置上,用點(Dot)的出現表示二進制的 「1」,不出現表示二進制的 「0」,點的排列組合確定了矩陣碼所代表的意義。其中點可以是方點、圓點或其它形狀的點。矩陣碼是建立在電腦圖像處理技術、組合編碼原理等基礎上的圖形符號自動辨識的碼制,已較不適合用「條形碼」稱之。

4、循環冗餘校驗碼

循環冗餘校驗碼(CRC),簡稱循環碼,是一種常用的、具有檢錯、糾錯能力的校驗碼,在早期的通信中運用廣泛。循環冗餘校驗碼常用於外存儲器和計算機同步通信的數據校驗。奇偶校驗碼和海明校驗碼都是採用奇偶檢測為手段檢錯和糾錯的(奇偶校驗碼不具有糾錯能力),而循環冗餘校驗則是通過某種數學運算來建立數據位和校驗位的約定關系的。

5、卷積碼

卷積碼將k個信息比特編成n個比特,但k和n通常很小,特別適合以串列形式進行傳輸,時延小。卷積碼的糾錯性能隨m的增加而增大,而差錯率隨N的增加而指數下降。在編碼器復雜性相同的情況下,卷積碼的性能優於分組碼。

6、Turbo碼

Turbo碼是Claude.Berrou等人在1993年首次提出的一種級聯碼。Turbo碼有一重要特點是其解碼較為復雜,比常規的卷積碼要復雜的多,這種復雜不僅在於其解碼要採用迭代的過程,而且採用的演算法本身也比較復雜。這些演算法的關鍵是不但要能夠對每比特進行解碼,而且還要伴隨著解碼給出每比特譯出的可靠性信息,有了這些信息,迭代才能進行下去。

(8)crc編譯碼的研究背景擴展閱讀:

差錯控制編碼是指在實際信道上傳輸數字信號時,由於信道傳輸特性不理想及加性雜訊的影響,所收到的數字信號不可避免地會發生錯誤。

為了在已知信噪比的情況下達到一定的誤比特率指標,首先應合理設計基帶信號,選擇調制、解調方式,採用頻域均衡和時域均衡,使誤比特率盡可能降低,但若誤比特率仍不能滿足要求,則必須採用信道編碼,即差錯控制編碼。

差錯控制編碼的基本做法是:在發送端被傳輸的信息序列上附加一些監督碼元,這些多餘的碼元與信息碼元之間以某種確定的規則相互關聯(約束)。接收端按照既定的規則檢驗信息碼元與監督碼元之間的關系,一旦傳輸過程中發生差錯,則信息碼元與監督碼元之間的關系將受到破壞,從而可以發現錯誤,乃至糾正錯誤。研究各種編碼和解碼方法正式差錯控制編碼所要解決的問題。

❾ CRC校驗的工作原理

循環冗餘校驗碼(CRC)的基本原理是:在K位信息碼後再拼接R位的校驗碼,整個編碼長度為N位,因此,這種編碼也叫(N,K)碼。對於一個給定的(N,K)碼,可以證明存在一個最高次冪為N-K=R的多項式G(x)。根據G(x)可以生成K位信息的校驗碼,而G(x)叫做這個CRC碼的生成多項式。 校驗碼的具體生成過程為:假設要發送的信息用多項式C(X)表示,將C(x)左移R位(可表示成C(x)*2R),這樣C(x)的右邊就會空出R位,這就是校驗碼的位置。用 C(x)*2R 除以生成多項式G(x)得到的余數就是校驗碼。
任意一個由二進制位串組成的代碼都可以和一個系數僅為『0』和『1』取值的多項式一一對應。例如:代碼1010111對應的多項式為x6+x4+x2+x+1,而多項式為x5+x3+x2+x+1對應的代碼101111。

閱讀全文

與crc編解碼的研究背景相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:761
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:837
安卓怎麼下載60秒生存 瀏覽:797
外向式文件夾 瀏覽:229
dospdf 瀏覽:425
怎麼修改騰訊雲伺服器ip 瀏覽:380
pdftoeps 瀏覽:487
為什麼鴻蒙那麼像安卓 瀏覽:730
安卓手機怎麼拍自媒體視頻 瀏覽:180
單片機各個中斷的初始化 瀏覽:718
python怎麼集合元素 瀏覽:475
python逐條解讀 瀏覽:827
基於單片機的濕度控制 瀏覽:493
ios如何使用安卓的帳號 瀏覽:877
程序員公園采訪 瀏覽:805
程序員實戰教程要多長時間 瀏覽:968
企業數據加密技巧 瀏覽:129
租雲伺服器開發 瀏覽:807
程序員告白媽媽不同意 瀏覽:330
攻城掠地怎麼查看伺服器 瀏覽:595