華中科技大學計算機網絡實驗報告:抗干擾編碼

華中科技大學計算機網絡實驗報告:抗干擾編碼

ID:48337416

大?。?.07 MB

頁數:17頁

時間:2019-10-27

華中科技大學計算機網絡實驗報告:抗干擾編碼_第1頁
華中科技大學計算機網絡實驗報告:抗干擾編碼_第2頁
華中科技大學計算機網絡實驗報告:抗干擾編碼_第3頁
華中科技大學計算機網絡實驗報告:抗干擾編碼_第4頁
華中科技大學計算機網絡實驗報告:抗干擾編碼_第5頁
資源描述:

《華中科技大學計算機網絡實驗報告:抗干擾編碼》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、計算機網絡課程實驗報告實驗2:抗干擾編碼姓名李藍鑫院系自動化學院學號U201514280實驗地點科技樓十二樓機房實驗時間2018年5月3日實驗目的:1.了解抗干擾編碼原理。2、掌握海明編碼和CRC編碼的原理,能熟練計算實驗內容:內容1:海明編碼1.1海明編碼原理將有效信息按某種規(guī)律分成若干組,每組安排一個校驗位通過異或運算進行校驗,得出具體的校驗碼;在接收端同樣通過異或運算看各組校驗結果是否正確,并觀察出錯的校校組,或者個出錯的校驗組的共同校驗位,得出具體的出錯比特位;對錯誤位取反來將其糾正;假設用N表示添加了校驗碼位后整個傳輸信息的二進制位數,用K代表其中

2、有效信息位數,r表示添加的校驗碼位數,它們之間的關系應滿足:N=K+r≤2^r-1(是為了確保r位校驗碼能校驗全部的數據位,因為r位校驗碼所能表示的最大十進制數為2^r-1,同時也確保各位碼本身不被其他校驗碼校驗)。海明碼的校驗碼的位置必須是在2n次方位置(n從0開始,分別代表從左邊數起分別是第1、2、4、8、16……),信息碼也就是在非2n次方位置第i位校驗碼從當前校驗碼位開始,每次連續(xù)校驗i位后再跳過i位,然后再連續(xù)校驗i位,再跳過i位,以此類推。確定每個校驗碼所校驗的比特位:1.2海明編碼程序流程圖1.1交互界面設計編碼:原碼序列從“輸入序列”編輯框輸

3、入,點擊“編碼”按鈕在“編碼序列”編輯框內輸出編碼序列,對輸入編碼要求為二進制輸入譯碼:編碼序列從“輸入序列”編輯框輸入,點擊“譯碼”按鈕在“譯碼序列”編輯框內輸出譯碼序列,若譯碼錯誤會有響應的報錯和糾錯,對輸入序列有不小于三位和二進制序列的要求1.1核心代碼與注釋輸入序列框callback%做輸入檢測,檢測是否是“0”“1”輸入,否則報錯temp_str=get(handles.input,'String');num_char=unique(temp_str);%unique函數獲得輸入字符串中不同字符的字符串iflength(num_char)==2%如

4、果字符串長度為2ifnum_char(2)=='1'%第二個字符不是“1”說明字符串中有其他字符elseset(handles.input,'String','0000');errordlg('只能輸入1和0','輸入錯誤');endelseiflength(num_char)==1%如果字符串長度為1,判斷“1”還是“0",否則報錯ifnum_char(1)=='0'elseifnum_char(1)=='1'elseset(handles.input,'String','0000');errordlg('只能輸入1和0','輸入錯誤');endelse%

5、如果字符串長度不為2,直接報錯set(handles.input,'String','0000');errordlg('只能輸入1和0','輸入錯誤');End編碼按鈕callback(編碼核心)%獲取輸入字符串temp_str=get(handles.input,'string');%獲取字符串長度len_str=length(temp_str);%轉存原碼字符串長度備用k=len_str;%初始化需要插入的校驗碼的位數r=0;%根據海明編碼的2^(r)-1)<(k+r)要求,計算校驗碼位數while((2^(r)-1)<(k+r))r=r+1;end%把

6、字符串數組轉成0和1的數組,便于處理fori=1:1:len_striftemp_str(i)=='1'yuan(i)=1;%原碼數組為yuanelseyuan(i)=0;endend%把求得相應位數的校驗碼,用0插入原碼中得到新碼j=0;m=1;fori=1:1:(k+r)ifi==2^(j)%如果該位置為2的次方,則插入校驗碼xin(i)=0;j=j+1;elsexin(i)=yuan(m);m=m+1;endend%進行海明編碼odd=0;%用于計算每位校驗碼負責校驗的位置的和forj=1:1:r%共有r位校驗碼,需要計算r次n=1;%初始化循環(huán)變量i

7、=1;while((n2^(j-1)+i-1)<=(k+r))%當沒有超過數組長度時繼續(xù)循環(huán)ifi>(2^(j-1))%如果本段的編碼已經加完i=1;%則調轉到下一段,也就是隔一個2^(j-1)的段再進行累加n=n+2;else%累加odd=odd+xin(n2^(j-1)+i-1);i=i+1;endendifmod(odd,2)==0%判斷是否為偶數xin(2^(j-1))=0;%若為偶數,則在對應的校驗位插入0elsexin(2^(j-1))=1;%若為奇數,則在對應的校驗為插入1endodd=0;end%編碼完畢,把數組轉換成字符串用于輸出fori=

8、1:1:(k+r)ifxin(i)==1output

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。