基于MATLAB的(7,4)循环码的编译仿真_第1页
基于MATLAB的(7,4)循环码的编译仿真_第2页
基于MATLAB的(7,4)循环码的编译仿真_第3页
基于MATLAB的(7,4)循环码的编译仿真_第4页
基于MATLAB的(7,4)循环码的编译仿真_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#bk—1,n—k—1bk—2,n—k—1b0,n—k—1100_H=b・b・b0•.10⑹tk—1,1brk—2,1b…,八,1b0••s•0■1-k—1,0k—2,00,0-已知(7,4)循环码的生成多项式和校验多项式分别为:g(x)=x3+x+1,h(x)=X4+x2+x+1。写得其生成矩阵和校验矩阵分别为:…(7)(8)循环码的编译码过程如下:编码过程第一步:将信息码字表示为m(x),其最高次幕为k-1;第二步:将xn-km(x)与g(x)求模得出相应的余式r(x);第三步:编码结果为c(x)=xn-km(x)+r(x)。译码过程第一步:由接收码字R(x)与监督矩阵相乘得出错误图样S;第二步:判断S是否为零。若不为零,则出错。在假定至多只有一位错的情况下,可以有效地译了相应的信息码字。第三步:在出错的情况下,将S与标准监督矩阵对比,得出错误的比特位并进行更正得出前四位为信息码字。4、仿真结果1)编译码程序说明编译码程序由三个子函数及界面函数组成。三个子函数分别完成编码、译码及字符提取的工作,以下为三个函数的源码:%%%%%%%%cyle_code.mfunction[msg_en]=cycle_code(m,msg)%循环码编码函数%输入参数%m:监督位的位数;%msg:信息码字%输出参数%msg_en:编码结果%inputparameters%码长与信息码字n=2"m-l;k=n-m;%产生生成矩阵parmat和校验矩阵genmatpol=cyclpoly(n,k);[parmat,genmat,k]=cyclgen(7,pol);%调整生成矩阵与监督矩阵gen_temp=eye(k);par_temp=eye(m);parmat=[par_tempgenmat(:,1:m)'];genmat=[gen_tempgenmat(:,1:m)];%产生编码后的码字空间Cmsg_en=rem(msg*genmat,2);%%%%%%%%cyle_decode.m%循环码译码函数functioncode=cycle_decode(m,msg)%循环码译码函数%输入参数%m:监督位的位数;%msg:信息码字%输出参数%code:译码结果%码长与信息码字n=2"m-l;k=n-m;%产生生成矩阵parmat和校验矩阵genmatpol=cyclpoly(n,k);[parmat,genmat,k]=cyclgen(7,pol);%调整生成矩阵与监督矩阵gen_temp=eye(k);par_temp=eye(m);parmat=[par_tempgenmat(:,1:m)'];genmat=[gen_tempgenmat(:,1:m)];%计算伴随式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;elsecount=0;end;end;elsemis=0;end;if(mis)msg(mis)=rem(msg(mis)+1,2);end;%译码结果code=msg(1:k);%%%%%%%%extracts_bits.mfunctionmsg=extract_bits(inf_msg)%比特提取函数%输入参数%inf_msg:信息码字%输出参数%msg:提取结果warningofflen=length(inf_msg);msg=zeros(1,len);forii=1:lenmsg(1,ii)=str2num(inf_msg(ii));%将字符转换成数字end;%msg%%%%%%%cycle.mfunctionvarargout=cycle(varargin)%CYCLEMATLABcodeforcycle.fig%CYCLE,byitself,createsanewCYCLEorraisestheexisting%singleton*.%%H=CYCLEreturnsthehandletoanewCYCLEorthehandleto%theexistingsingleton*.%%CYCLE('CALLBACK',hObject,eventData,handles,...)callsthelocal%functionnamedCALLBACKinCYCLE.Mwiththegiveninputarguments.%%CYCLE('Property','Value',...)createsanewCYCLEorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforecycle_OpeningFcngetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.Allinputsarepassedtocycle_OpeningFcnviavarargin.%%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone%instancetorun(singleton)".%%Seealso:GUIDE,GUIDATA,GUIHANDLES%Edittheabovetexttomodifytheresponsetohelpcycle%LastModifiedbyGUIDEv2.530-Nov-201321:58:46%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@cycle_OpeningFcn,...'gui_OutputFcn',@cycle_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%Executesjustbeforecycleismadevisible.functioncycle_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstocycle(seeVARARGIN)handles.output_code=hObject;handles.m=3;handles.n=2“(handles.m)-l;handles.k=handles.n-handles.m;handles.input_msg=[0000];handles.output_msg=[0000];handles.output_encode=[0000000];handles.output_decode=[0000000];put_decode=[0000000];handles.flag=0;guidata(hObject,handles);%Choosedefaultcommandlineoutputforcyclehandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakescyclewaitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);%Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=cycle_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%Executesonbuttonpressinencode.functionencode_Callback(hObject,eventdata,handles)%hObjecthandletoencode(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)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);guidata(hObject,handles);%Executesonbuttonpressindecode.functiondecode_Callback(hObject,eventdata,handles)%hObjecthandletodecode(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)handles.input_decode=extract_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);functioninputcode_Callback(hObject,eventdata,handles)%hObjecthandletoinputcode(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)handles.codes=get(hObject,'String');guidata(hObject,handles);%Hints:get(hObject,'String')returnscontentsofinputcodeastext%str2double(get(hObject,'String'))returnscontentsofinputcodeasadouble%Executesduringobjectcreation,aftersettingallproperties.functioninputcode_CreateFcn(hObject,eventdata,handles)%hObjecthandletoinputcode(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&&isequal(get(hOb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论