版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Harbin Institute of Technology信息論與編碼實(shí)驗(yàn)報(bào)告基于MATLAB的(7,4)循環(huán)碼的編譯仿真院 系: 電子與信息工程學(xué)院 姓 名: 周才發(fā) 學(xué) 號(hào): 13S005051 班 級(jí): 通信二班 哈爾濱工業(yè)大學(xué)基于MATLAB的(7,4)循環(huán)碼的編譯仿真(電子與信息工程學(xué)院 13S005051 周才發(fā) 序號(hào):15)1、 循環(huán)碼簡(jiǎn)介隨著社會(huì)經(jīng)濟(jì)的迅速發(fā)展和科學(xué)技術(shù)的全面進(jìn)步,計(jì)算機(jī)事業(yè)的飛速發(fā)展,以計(jì)算機(jī)與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時(shí)期。隨著經(jīng)濟(jì)文化水平的顯著提高,人們對(duì)生活質(zhì)量及工作軟件的要求也越來(lái)越高。在計(jì)算機(jī)通信信息碼中循環(huán)碼是線(xiàn)性分組碼的一個(gè)重要子
2、集,是目前研究得最成熟的一類(lèi)碼。它有許多特殊的代數(shù)性質(zhì),它使計(jì)算機(jī)通信以一種以數(shù)據(jù)通信形式出現(xiàn),實(shí)現(xiàn)了在計(jì)算機(jī)與計(jì)算機(jī)之間或計(jì)算機(jī)與終端設(shè)備之間進(jìn)行有效的與正確地信息傳遞,它使得現(xiàn)代通信的可靠性與有效性實(shí)現(xiàn)了質(zhì)的飛躍。它是現(xiàn)代計(jì)算機(jī)技術(shù)與通信技術(shù)飛速發(fā)展的產(chǎn)物,在日常生活通信領(lǐng)域、武器控制系統(tǒng)等領(lǐng)域都被廣泛應(yīng)用。糾錯(cuò)碼(error correcting code),在傳輸過(guò)程中發(fā)生錯(cuò)誤后能在收端自行發(fā)現(xiàn)或糾正的碼。僅用來(lái)發(fā)現(xiàn)錯(cuò)誤的碼一般常稱(chēng)為檢錯(cuò)碼。為使一種碼具有檢錯(cuò)或糾錯(cuò)能力,須對(duì)原碼字增加多余的碼元,以擴(kuò)大碼字之間的差別 ,即把原碼字按某種規(guī)則變成有一定剩余度(見(jiàn)信源編碼)的碼字,并使每個(gè)
3、碼字的碼之間有一定的關(guān)系。關(guān)系的建立稱(chēng)為編碼。碼字到達(dá)收端后,可以根據(jù)編碼規(guī)則是否滿(mǎn)足以判定有無(wú)錯(cuò)誤。當(dāng)不能滿(mǎn)足時(shí),按一定規(guī)則確定錯(cuò)誤所在位置并予以糾正。糾錯(cuò)并恢復(fù)原碼字的過(guò)程稱(chēng)為譯碼。檢錯(cuò)碼與其他手段結(jié)合使用,可以糾錯(cuò)。糾錯(cuò)編碼又稱(chēng)信道編碼,它與信源編碼是信息傳輸?shù)膬蓚€(gè)方面。它們之間存在對(duì)偶的關(guān)系。應(yīng)用信道譯碼直接對(duì)一些自然信息進(jìn)行處理,可以去掉剩余度,以達(dá)到壓縮數(shù)據(jù)的目的。為了使一種碼具有檢錯(cuò)或糾錯(cuò)能力,必須對(duì)原碼字增加多余的碼元,以擴(kuò)大碼字之間的差別,使一個(gè)碼字在一定數(shù)目?jī)?nèi)的碼元上發(fā)生錯(cuò)誤時(shí),不致錯(cuò)成另一個(gè)碼字。準(zhǔn)確地說(shuō),即把原碼字按某種規(guī)則變成有一定剩余度的碼字,并使每個(gè)碼字的碼元間有
4、一定的關(guān)系。關(guān)系的建立稱(chēng)為編碼。碼字到達(dá)收端后,用編碼時(shí)所用的規(guī)則去檢驗(yàn)。如果沒(méi)有錯(cuò)誤,則原規(guī)則一定滿(mǎn)足,否則就不滿(mǎn)足。由此可以根據(jù)編碼規(guī)則是否滿(mǎn)足以判定有無(wú)錯(cuò)誤。當(dāng)不能滿(mǎn)足時(shí),在可糾能力之內(nèi)按一定的規(guī)則確定錯(cuò)誤所在的位置,并予以糾正。糾錯(cuò)并恢復(fù)原碼字的過(guò)程稱(chēng)為譯碼;碼元間的關(guān)系為線(xiàn)性時(shí),稱(chēng)為線(xiàn)性碼;否則稱(chēng)為非線(xiàn)性碼。檢錯(cuò)碼與其他手段結(jié)合使用,可以糾錯(cuò)。檢錯(cuò)反饋重發(fā)系統(tǒng)(ARQ系統(tǒng))就是一例。循環(huán)碼是線(xiàn)性分組碼的一種,所以它具有線(xiàn)性分組碼的一般特性,此外還具有循環(huán)性。循環(huán)碼的編碼和解碼設(shè)備都不太復(fù)雜,且檢(糾)錯(cuò)能力強(qiáng)。它不但可以檢測(cè)隨機(jī)的錯(cuò)誤,還可以檢錯(cuò)突發(fā)的錯(cuò)誤。循環(huán)碼可以檢測(cè)長(zhǎng)為或更短的
5、任何突發(fā)錯(cuò)誤,包括首尾相接突發(fā)錯(cuò)誤。循環(huán)碼是一種無(wú)權(quán)碼,循環(huán)碼編排的特點(diǎn)是相鄰兩個(gè)數(shù)碼之間符合卡諾圖中的鄰接條件,即相鄰兩個(gè)數(shù)碼之間只有一位碼元不同,碼元就是組成數(shù)碼的單元。符合這個(gè)特點(diǎn)的有多種方案,但循環(huán)碼只能是表中的那種。循環(huán)碼的優(yōu)點(diǎn)是沒(méi)有瞬時(shí)錯(cuò)誤,因?yàn)樵跀?shù)碼變換過(guò)程中,在速度上會(huì)有快有慢,中間經(jīng)過(guò)其它一些數(shù)碼形式,稱(chēng)它們?yōu)樗矔r(shí)錯(cuò)誤。這在某些數(shù)字系統(tǒng)中是不允許的,為此希望相鄰兩個(gè)數(shù)碼之間僅有一位碼元不同,即滿(mǎn)足鄰接條件,這樣就不會(huì)產(chǎn)生瞬時(shí)錯(cuò)誤。循環(huán)碼就是這樣一種編碼,它可以在卡諾圖中依次循環(huán)得到。循環(huán)碼又稱(chēng)格雷碼(Gray Code)。2、 實(shí)驗(yàn)要求(1)利用(7,4)系統(tǒng)循環(huán)碼的生成多項(xiàng)
6、式為:,請(qǐng)?jiān)O(shè)計(jì)該循環(huán)碼的編碼器;(2)隨機(jī)產(chǎn)生重量為0或1的八種錯(cuò)誤圖樣中的一種,得到實(shí)際接收碼字。(3)根據(jù)接收到的碼字進(jìn)行譯碼。3、 編譯碼原理循環(huán)碼最大的特點(diǎn)就是碼字的循環(huán)特性,所謂循環(huán)特性是指:循環(huán)碼中任一許用碼組經(jīng)過(guò)循環(huán)移位后,所得到的碼組仍然是許用碼組,也就是說(shuō),不論是左移還是右移,也不論移多少位,仍然是許用的循環(huán)碼組。循環(huán)碼的生成多項(xiàng)式寫(xiě)為,它是循環(huán)碼碼集中唯一的,冪次為的碼多項(xiàng)式,則是一個(gè)冪次為的碼多項(xiàng)式。按模運(yùn)算,此時(shí): 即,且因也是次冪,故。由于它是循環(huán)碼,故按模運(yùn)算后的“余式”也是循環(huán)碼的一個(gè)碼字,它必能被整除,即:由以上兩式可以得到:從上式中可以看出,生成多項(xiàng)式g(x)
7、應(yīng)該是的一個(gè)因式,即循環(huán)碼多項(xiàng)式應(yīng)該是的一個(gè)次因式。由生成多項(xiàng)式可以得出相應(yīng)的典型生成矩陣及標(biāo)準(zhǔn)監(jiān)督矩陣:已知(7,4)循環(huán)碼的生成多項(xiàng)式和校驗(yàn)多項(xiàng)式分別為:,。寫(xiě)得其生成矩陣和校驗(yàn)矩陣分別為:循環(huán)碼的編譯碼過(guò)程如下:(1) 編碼過(guò)程第一步:將信息碼字表示為,其最高次冪為;第二步:將與求模得出相應(yīng)的余式;第三步:編碼結(jié)果為。(2) 譯碼過(guò)程第一步:由接收碼字與監(jiān)督矩陣相乘得出錯(cuò)誤圖樣;第二步:判斷是否為零。若不為零,則出錯(cuò)。在假定至多只有一位錯(cuò)的情況下,可以有效地譯了相應(yīng)的信息碼字。第三步:在出錯(cuò)的情況下,將與標(biāo)準(zhǔn)監(jiān)督矩陣對(duì)比,得出錯(cuò)誤的比特位并進(jìn)行更正得出前四位為信息碼字。4、 仿真結(jié)果(1
8、) 編譯碼程序說(shuō)明編譯碼程序由三個(gè)子函數(shù)及界面函數(shù)組成。三個(gè)子函數(shù)分別完成編碼、譯碼及字符提取的工作,以下為三個(gè)函數(shù)的源碼:%cyle_code.mfunction msg_en= cycle_code(m,msg) %循環(huán)碼編碼函數(shù)% 輸入?yún)?shù)% m:監(jiān)督位的位數(shù);% msg:信息碼字% 輸出參數(shù)% msg_en:編碼結(jié)果 % input parameters% 碼長(zhǎng)與信息碼字n=2m-1;k=n-m; %產(chǎn)生生成矩陣parmat和校驗(yàn)矩陣genmatpol = cyclpoly(n,k);parmat,genmat,k = cyclgen(7,pol);% 調(diào)整生成矩陣與監(jiān)督矩陣gen_t
9、emp=eye(k);par_temp=eye(m);parmat=par_temp genmat(:,1:m)'genmat=gen_temp genmat(:,1:m);%產(chǎn)生編碼后的碼字空間 Cmsg_en=rem(msg*genmat,2);%cyle_decode.mfunction code=cycle_decode(m,msg) %循環(huán)碼譯碼函數(shù)% 輸入?yún)?shù)% m:監(jiān)督位的位數(shù);% msg:信息碼字% 輸出參數(shù)% code:譯碼結(jié)果% 碼長(zhǎng)與信息碼字n=2m-1;k=n-m;%產(chǎn)生生成矩陣parmat和校驗(yàn)矩陣genmatpol = cyclpoly(n,k);parma
10、t,genmat,k = cyclgen(7,pol);% 調(diào)整生成矩陣與監(jiān)督矩陣gen_temp=eye(k);par_temp=eye(m);parmat=par_temp genmat(:,1:m)'genmat=gen_temp genmat(:,1:m);% 計(jì)算伴隨式S=rem(msg*parmat',2)'count=0;% 比較譯碼if (sum(S)=0) for (ii=1:1:n) for(jj=1:1:m) if(S(jj)=parmat(jj,ii) count=count+1; end; end; if (count=3) mis=ii; e
11、lse count=0; end; end;else mis=0;end; if (mis) msg(mis)=rem(msg(mis)+1,2);end;% 譯碼結(jié)果code=msg(1:k);%extracts_bits.mfunction msg=extract_bits(inf_msg) % 比特提取函數(shù)% 輸入?yún)?shù)% inf_msg:信息碼字% 輸出參數(shù)% msg:提取結(jié)果 warning offlen=length(inf_msg);msg=zeros(1,len);for ii=1:len msg(1,ii)=str2num(inf_msg(ii); %將字符轉(zhuǎn)換成數(shù)字end;%
12、 msg%cycle.mfunction varargout = cycle(varargin)% CYCLE MATLAB code for cycle.fig% CYCLE, by itself, creates a new CYCLE or raises the existing% singleton*.% H = CYCLE returns the handle to a new CYCLE or the handle to% the existing singleton*.% CYCLE('CALLBACK',hObject,eventData,handles,.)
13、calls the local% function named CALLBACK in CYCLE.M with the given input arguments.% CYCLE('Property','Value',.) creates a new CYCLE or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before cycle_OpeningFcn gets called. An% unrec
14、ognized property name or invalid value makes property application% stop. All inputs are passed to cycle_OpeningFcn via varargin.% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above te
15、xt to modify the response to help cycle % Last Modified by GUIDE v2.5 30-Nov-2013 21:58:46 % Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', cycle_OpeningFcn, . 'gui_O
16、utputFcn', cycle_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initializ
17、ation code - DO NOT EDIT % - Executes just before cycle is made visible.function cycle_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure wi
18、th handles and user data (see GUIDATA)% varargin command line arguments to cycle (see VARARGIN)handles.output_code = hObject; handles.m=3;handles.n=2(handles.m)-1;handles.k=handles.n-handles.m; handles.input_msg=0 0 0 0;handles.output_msg=0 0 0 0;handles.output_encode=0 0 0 0 0 0 0;handles.output_de
19、code=0 0 0 0 0 0 0;put_decode=0 0 0 0 0 0 0;handles.flag=0;guidata(hObject, handles);% Choose default command line output for cyclehandles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes cycle wait for user response (see UIRESUME)% uiwait(handles.figu
20、re1); % - Outputs from this function are returned to the command line.function varargout = cycle_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handl
21、es structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; % - Executes on button press in encode.function encode_Callback(hObject, eventdata, handles)% hObject handle to encode (see GCBO)% eventdata reserved - to be def
22、ined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)handles.code=extract_bits(handles.codes);% guidata(hObject,handles);handles.encode=cycle_code(handles.m,handles.code)handles.flag=0;str=num2str(handles.encode);set(handles.outcode,'string',str);guid
23、ata(hObject,handles); % - Executes on button press in decode.function decode_Callback(hObject, eventdata, handles)% hObject handle to decode (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)handles.input_decode=ex
24、tract_bits(handles.codes);guidata(hObject,handles); handles.decode=cycle_decode(handles.m,handles.input_decode);handles.flag=1;str=num2str(handles.decode);set(handles.outcode,'string',str);guidata(hObject,handles); function inputcode_Callback(hObject, eventdata, handles)% hObject handle to i
25、nputcode (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)handles.codes=get(hObject,'String');guidata(hObject, handles);% Hints: get(hObject,'String') returns contents of inputcode as text% str2double(get(hObject,'String') returns contents of inputcode as a double % - Executes during object creation, after setting all properties.function inputcode_CreateFcn(hObject, eventdata, handles)% hObject handle to inputcode (see GCBO)% eventdata reserved - to
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度跨境知識(shí)產(chǎn)權(quán)交易勞動(dòng)技術(shù)服務(wù)合同2篇
- 二零二五年度行政事業(yè)單位物業(yè)設(shè)施更新改造合同2篇
- 二零二五版土地租賃承包與農(nóng)業(yè)科技園區(qū)建設(shè)合同3篇
- 2025版水電安裝與能源審計(jì)合同3篇
- 2025版行政優(yōu)益權(quán)在政府與社會(huì)合作中的合同構(gòu)建與風(fēng)險(xiǎn)防范合同2篇
- 二零二五年度電梯設(shè)備租賃與維修保養(yǎng)服務(wù)合同2篇
- 二零二五年度離婚糾紛調(diào)解服務(wù)及贍養(yǎng)費(fèi)協(xié)議2篇
- 鐵路隧道進(jìn)口施工方案
- 技術(shù)改造借貸合同范本年
- 農(nóng)場(chǎng)管理服務(wù)合同協(xié)議書(shū)
- 2025江蘇南京市金陵飯店股份限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 公共政策分析 課件匯 陳振明 第0-9章 導(dǎo)論、緒論:政策科學(xué)的“研究綱領(lǐng)”- 政策監(jiān)控
- 《藥品招商營(yíng)銷(xiāo)概論》課件
- 2025年牛津譯林版英語(yǔ)七年級(jí)下冊(cè)全冊(cè)單元重點(diǎn)知識(shí)點(diǎn)與語(yǔ)法匯編
- 《小學(xué)作文指導(dǎo)》課件
- 醫(yī)院消防安全培訓(xùn)課件(完美版)
- 尤單抗注射液說(shuō)明書(shū)
- 高考作文答題卡(作文)
- 在鄉(xiāng)村治理中深化推廣運(yùn)用清單制、積分制、一張圖工作方案
- 梅毒的診斷與治療課件
- 工程倫理第二講工程中的風(fēng)險(xiǎn)、安全與責(zé)任課件
評(píng)論
0/150
提交評(píng)論