(1)[blk,err] = nrcrcdecode(blkcrc,poly)
[blk,err] = nrcrcdecode(blkcrc,poly)檢查輸入資料blkcrc中是否存在crc錯誤。該函式假定輸入資料報括與多項式poly相關的crc奇偶校驗位。該函式返回blk,這是輸入blkcrc的資料部分。該函式還返回err,它是輸入中包含的crc與跨輸入的資料部分重新計算的crc之間的邏輯差(xor)。如果err不等於0,則說明發生了錯誤或輸入crc被遮蔽。有關相關多項式的詳細資訊,請參見ts 38.212第5.1節[1]。
(2)[blk,err] = nrcrcdecode(blkcrc,poly,mask)
[blk,err] = nrcrcdecode(blkcrc,poly,mask)在使用err返回之前,用mask對crc差異進行xor遮蔽。將掩碼值應用於crc差,最高有效位(msb)在前,最低有效位(lsb)在後。
例:檢查資料塊是否存在crc錯誤
使用和不使用掩碼檢查crc解碼的效果
(1)定義與等於12的無線網路臨時識別符號(rnti)對應的掩碼。將rnti掩碼的crc奇偶校驗位附加到乙個資料塊的全1矩陣。
rnti = 12;(2)當執行不帶掩碼的crc解碼時,err1等於rnti,因為crc在編碼過程中被掩碼了。原始crc與重新計算的crc之間的邏輯差異是crc掩碼。blkcrc = nrcrcencode(ones(100,1),『24c』,rnti);
[blk,err1] = nrcrcdecode(blkcrc,『24c』);(3)使用rnti值作為掩碼執行crc解碼時,err等於0。err1
[blk,err2] = nrcrcdecode(blkcrc,『24c』,err1);(1)blkcrc — crc編碼的資料err2
crc編碼的資料,指定為實數矩陣。矩陣的每一列均視為單獨的crc編碼資料塊。
資料型別:雙精度/8位整型/邏輯型
(2)poly — crc多項式
crc多項式,指定為「 6」,「 11」,「 16」,「 24a」,「 24b」或「 24c」。有關相關多項式的詳細資訊,請參見ts 38.212第5.1節。
資料型別:字元/字串
(3)掩碼—xor掩碼
xor掩碼,指定為非負整數。該掩碼通常是無線電網路臨時識別符號(rnti)。
資料型別:雙精度
(1)blk — crc解碼的資料
crc解碼資料,以實數矩陣形式返回。 blk是輸入blkcrc的僅資料部分。
資料型別:雙精度/8位整型/邏輯型
(2)err —邏輯crc差
邏輯crc差,以整數形式返回。 err是輸入blkcrc中包含的crc與跨輸入資料部分重新計算的crc之間的邏輯差。如果指定了掩碼,則函式xor使用mask對err-masks進行掩碼,然後再返回它。
資料型別:無符號32位整型
[1] 3gpp ts 38.212. 「nr; multiplexing and channel coding.」 3rd generation partnership project; technical specification group radio access network.
CRC解碼演算法
利用crc演算法計算誤位元速率和誤位元率,研究此演算法的效能曲線。crc.h pragma once include includeclass crc16 crc.cpp include crc16.h 多項式除法 int crc16 polynomial division int data in,...
python迴圈解碼base64
第一次寫部落格,都不知道該如何下手,寫的不是很好,還望各位大佬不要噴我。先來介紹一下base64 base64是網路上最常見的用於傳輸8bit位元組碼的編碼方式之一,base64就是一種基於64個可列印字元來表示二進位制資料的方法。在看了一段時間的python,然後結合網上的指令碼,自己寫了乙個解碼...
python迴圈解碼base64
base64是網路上最常見的用於傳輸8bit位元組碼的編碼方式之一,base64就是一種基於64個可列印字元來表示二進位制資料的方法。在看了一段時間的python,然後結合網上的指令碼,自己寫了乙個解碼的指令碼,功能非常簡單,還望各位大神不要噴,看看就好 coding utf 8 import ba...