基于matlab码型转换xWord格式文档下载.docx
《基于matlab码型转换xWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于matlab码型转换xWord格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
%%%%%%%%%%%% 译码 %%%%%%%%%%%%
ife(i)~=0
l(i)=1;
e(i)=0;
end
编码:
代码中的f代表着输入字符串转化后的ASCII码,用变量p来实现原信号中1的正负交替。
例如,f
(1)=1,则e
(1)=1,p=1;
f
(2)=1,则e
(2)=-1,p=-1。
如此就可以得到正负1交替了。
译码:
当e(i)不等于0,就把结果等于1。
2.CMI码型转换
%%%%%%%%%%%% 编码 %%%%%%%%%%%%%m=1;
p=-1;
length(f)
if(f(i)==1&
m==1)s(i)=3;
m=m*p;
elseif(f(i)==1&
m==-1)s(i)=0;
elses(i)=1;
endend
endk=dec2bin(s,2);
l=k'
;
x=l(:
);
y=x'
n=str2num(y
(1));
fori=2:
length(y)
n=[nstr2num(y(i))];
%%%%%%%%%%%% 译码 %%%%%%%%%%%%%
ifn
(1)==0
ifn
(2)==1
cm=[0];
elseend
cm=[1];
endr=3;
whiler<
length(n)ifn(r)==0
ifn(r+1)==1
cm=[cm0];
cm=[cm1];
r=r+2;
3.HDB3码型转换
%%%%%%%%%%%% 编码 %%%%%%%%%%%%%
yn=xn;
%输出yn初始化
num=0;
%计数器初始化
fork=1:
length(xn)ifxn(k)==1
num=num+1;
%"
1"
计数器
ifnum/2==fix(num/2)%奇数个1时输出-1,进行极性交替yn(k)=1;
yn(k)=-1;
%HDB3编码
%连零计数器初始化yh=yn;
%输出初始化sign=0;
%极性标志初始化为0
V=zeros(1,length(yn));
%V脉冲位置记录变量B=zeros(1,length(yn));
%B脉冲位置记录变量fork=1:
length(yn)
ifyn(k)==0
%连“0”个数计数
ifnum==4 %如果4连“0”num=0;
%计数器清零yh(k)=1*yh(k-4);
符号相同极性的符号
% 让0000的最后一个0改变为与前一个非零
V(k)=yh(k);
%V脉冲位置记录
ifyh(k)==sign %如果当前V符号与前一个V符号的极性相同yh(k)=-1*yh(k);
%则让当前V符号极性反转,以满足V符号间相
互极性反转要求
yh(k-3)=yh(k);
%添加B符号,与V符号同极性B(k-3)=yh(k);
%B脉冲位置记录
%V脉冲位置记录yh(k+1:
length(yn))=-1*yh(k+1:
length(yn));
% 并让后面的非零符号从V符号开始再交替
变化
sign=yh(k);
%记录前一个V符号的极性end
%当前输入为“1”则连“0”计数器清零
input=yh;
%HDB3码输入
decode=input;
%输出初始化
sign=0;
%极性标志初始化
length(yh)ifinput(k)~=0
ifsign==yh(k) %如果当前码与前一个非零码的极性相同
decode(k-3:
k)=[0000];
%则该码判为V码并将*00V清零
sign=input(k);
%极性标志
decode=abs(decode);
%整流
实验现象:
总体界面:
AMI:
CMI:
HDB3:
总结:
1.本次实验中因为对画方波不太熟悉,在使用stairs函数时,方波图总是在最后少了一位,后来经查询后才知道stairs的正确用法。
2.由于对GUI界面设置的不熟悉,很多细节都没做到位,界面的美观有待提高。
3.在编代码是经常没有写注释,导致后来有些变量混淆了。
附录:
全部代码
functionvarargout=untitled1(varargin)
%UNTITLED1M-fileforuntitled1.fig
% UNTITLED1,byitself,createsanewUNTITLED1orraisestheexisting
% singleton*.
%
% H=UNTITLED1returnsthehandletoanewUNTITLED1orthehandleto
% theexistingsingleton*.
% UNTITLED1('
CALLBACK'
hObject,eventData,handles,...)callsthelocal
% functionnamedCALLBACKinUNTITLED1.Mwiththegiveninputarguments.
Property'
'
Value'
...)createsanewUNTITLED1orraisesthe
% existingsingleton*. Startingfromtheleft,propertyvaluepairsare
% appliedtotheGUIbeforeuntitled1_OpeningFunctiongetscalled.An
% unrecognizedpropertynameorinvalidvaluemakespropertyapplication
% stop.Allinputsarepassedtountitled1_OpeningFcnviavarargin.
% *SeeGUIOptionsonGUIDE'
sToolsmenu.Choose"
GUIallowsonlyone
% instancetorun(singleton)"
.
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%Edittheabovetexttomodifytheresponsetohelpuntitled1
%LastModifiedbyGUIDEv2.521-Dec-201419:
55:
20
%Begininitializationcode-DONOTEDITgui_Singleton=1;
gui_State=struct('
gui_Name'
mfilename,...
'
gui_Singleton'
gui_Singleton,...'
gui_OpeningFcn'
@untitled1_OpeningFcn,...'
gui_OutputFcn'
@untitled1_OutputFcn,...'
gui_LayoutFcn'
[],...
gui_Callback'
[]);
ifnargin&
&
ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
%Endinitializationcode-DONOTEDIT
%---Executesjustbeforeuntitled1ismadevisible.
functionuntitled1_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObject handletofigure
%eventdata reserved-tobedefinedinafutureversionofMATLAB
%handles structurewithhandlesanduserdata(seeGUIDATA)
%varargin commandlineargumentstountitled1(seeVARARGIN)
%Choosedefaultcommandlineoutputforuntitled1handles.output=hObject;
%Updatehandlesstructureguidata(hObject,handles);
%UIWAITmakesuntitled1waitforuserresponse(seeUIRESUME)
%ui