基于matlab的码型转换说明书.docx

上传人:h**** 文档编号:140426 上传时间:2018-07-10 格式:DOCX 页数:15 大小:155.71KB
下载 相关 举报
基于matlab的码型转换说明书.docx_第1页
第1页 / 共15页
基于matlab的码型转换说明书.docx_第2页
第2页 / 共15页
基于matlab的码型转换说明书.docx_第3页
第3页 / 共15页
基于matlab的码型转换说明书.docx_第4页
第4页 / 共15页
基于matlab的码型转换说明书.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、 1 实验内容 : beef洗手 利用 Matlab 软件的 GUI界面编程 , 吃饭 做一个简单的界面 , 吃饭 通过此界面调用相关的程序去实现由抽样判决后的 AMI码型 、 befCMI码型 和 HDB3码型 数字序列恢复出原始的 PCM脉冲编码信号 。 洗手 洗手 实验目的 : beef洗手 1,熟悉 Matlab 的 GUI的编程操作 , 吃饭学会运用 GUI来建立一个界面 洗手 2.掌握 AMI,CMI,HDB3码型的特点和意义 , 吃饭 学会将 PCM脉冲编码信号转化为 AMI,CMI,HDB3 的编码以及 AMI,CMI,HDB3 解码的方式 。洗手 洗手 实验方法 : beef

2、洗手 实验中采用的方法是先建立大概的界面 , 吃饭 其中包括输入框 、 bef按钮 、 bef提示内容及坐标系等 。 洗手然后再对各种组件设置好属性 , 吃饭并对各个组件编写回调函数 , 吃饭 最后进行调试验证饥渴 。 洗手洗手 实验代码 : beef洗手 AMI码型转换 : beef洗手 % 编码 %洗手 p = -1;beef洗手 for i=1:length(f);bef洗手 if f(i)=1洗手 e(i) = (-1)*p;bef洗手 p = e(i);beef洗手 else 洗手 e(i) = f(i);bef洗手 end 洗手 end 洗手 % 译码 %洗手 for i=1:le

3、ngth(f);bef洗手 if e(i)=0洗手 l(i) = 1;b eef洗手 else 洗手 e(i) = 0;b eef洗手 end 洗手 end 洗手 编码 : bef代码中的 f代表着输入字符串转化后的 ASCII码 , 吃饭 用变量 p来实现原信号中 1的正负交替 。 洗手 例如 , 吃饭 f( 1) =1, 吃饭 则 e( 1) =1, 吃饭 p=1; bef( 2) =1, 吃饭 则 e( 2) =-1,吃饭 p=-1。 洗手 如此就可以得到正负 1交替了 。 洗手 洗手 2 译码 : beef当 e( i)不等于 0, 吃饭就把结果等于 1。 洗手 洗手 CMI码型转换

4、洗手 % 编码 %洗手 m=1;beef洗手 p=-1;beef洗手 for i=1:length(f)洗手 if(f(i)=1beef洗手 m=m*p;beef洗手 else if(f(i)=1beef洗手 m=m*p;beef洗手 else 洗手 s(i)=1;beef洗手 end 洗手 end 洗手 end 洗手 k=dec2bin(s,2);beef洗手 l=k;beef洗手 x=l(:);beef洗手 y=x;beef洗手 n=str2num(y(1);beef洗手 for i=2:length(y)洗手 n=n str2num(y(i);beef洗手 end 洗手 % 译码 %洗手

5、 if n(1)=0 洗手 if n(2)=1 洗手 cm=0;beef洗手 else 洗手 cm=1;beef洗手 end 洗手 else 洗手 cm=1;beef洗手 end 洗手 r=3;beef洗手 while rlength(n)洗手 if n(r)=0 洗手 if n(r+1)=1 洗手 cm=cm 0;beef洗手 else 洗手 cm=cm 1;beef洗手 end 洗手 3 else 洗手 cm=cm 1;beef洗手 end 洗手 r=r+2;beef洗手 end 洗手 HDB3码型转换 洗手 % 编码 %洗手 yn=xn;beef% 输出 yn初始化 洗手 num=0;b

6、eef% 计数器初始化 洗手 for k=1:length(xn)洗手 if xn(k)=1 洗手 num=num+1;beef % “1“计数器 洗手 if num/2 = fix(num/2) % 奇数个 1时输出 -1,进行极性交替 洗手 yn(k)=1;beef洗手 else 洗手 yn(k)=-1;beef洗手 end 洗手 end 洗手 end 洗手 % HDB3编码 洗手 num=0;beef % 连零计数器初始化 洗手 yh=yn;beef % 输出初始化 洗手 sign=0;beef % 极性标志初始化为 0 洗手 V=zeros(1,length(yn);beef% V脉冲

7、位置记录变量 洗手 B=zeros(1,length(yn);beef% B脉冲位置记录变量 洗手 for k=1:length(yn)洗手 if yn(k)=0 洗手 num=num+1;beef % 连“ 0”个数计数 洗手 if num=4 % 如果 4连“ 0” 洗手 num=0;beef % 计数器清零 洗手 yh(k)=1*yh(k-4);beef 洗手 % 让 0000的最后一个 0改变为与前一个非零符号相同极性的符号 洗手 V(k)=yh(k);beef % V脉冲位置记录 洗手 if yh(k)=sign % 如果当前 V符号与前一个 V符号的极性相同 洗手 yh(k)=-1

8、*yh(k);beef % 则让当前 V符号极性反转 ,以满足 V符号间相互极性反转要求 洗手 yh(k-3)=yh(k);beef % 添加 B符号 ,与 V符号同极性 洗手 B(k-3)=yh(k);beef % B脉冲位置记录 洗手 V(k)=yh(k);beef % V脉冲位置记录 洗手 yh(k+1:length(yn)=-1*yh(k+1:length(yn);beef洗手 % 并让后面的非零符号从 V符号开始再交替变化 洗手 4 end 洗手 sign=yh(k);beef % 记录前一个 V符号的极性 洗手 end 洗手 else 洗手 num=0;beef % 当前输入为“

9、1”则连“ 0”计数器清零 洗手 end 洗手 end 洗手 % 译码 %洗手 input=yh;beef % HDB3码输入 洗手 decode=input;beef % 输出初始化 洗手 sign=0;beef % 极性标志初始化 洗手 for k=1:length(yh)洗手 if input(k) = 0 洗手 if sign=yh(k) % 如果当前码与前一个非零码的极性相同 洗手 decode(k-3:k)=0 0 0 0;beef% 则该码判为 V码并将 *00V清零 洗手 end 洗手 sign=input(k);beef % 极性标志 洗手 end 洗手 end 洗手 dec

10、ode=abs(decode);beef % 整流 洗手 实验现象 : beef洗手 总体界面 : beef洗手 洗手 AMI: beef洗手 5 洗手 CMI: beef洗手 洗手 HDB3: beef洗手 6 洗手 总结 : beef洗手 本次实验中因为对画方波不太熟悉 , 吃饭 在使用 stairs 函数时 , 吃饭 方波图总是在最后少了一位 , 吃饭后来经查询后才知道 stairs 的正确用法 。 洗手 洗手 由于对 GUI 界面设置的不熟悉 , 吃饭很多细节都没做到位 , 吃饭 界面的美观有待提高 。 洗手 洗手 在编代码是经常没有写注释 , 吃饭导致后来有些变量混淆了 。 洗手洗手

11、 洗手 洗手 附录 : beef全部代码 洗手 function varargout = untitled1(varargin)洗手 % UNTITLED1 M-file for untitled1.fig 洗手 % UNTITLED1, by itself, creates a new UNTITLED1 or raises the existing洗手 % singleton*.洗手 %洗手 % H = UNTITLED1 returns the handle to a new UNTITLED1 or the handle to 洗手 % the existing singleton*.

12、洗手 %洗手 % UNTITLED1(CALLBACK,hObject,eventData,handles,.) calls the local 洗手 % function named CALLBACK in UNTITLED1.M with the given input arguments.洗手 %洗手 % UNTITLED1(Property,Value,.) creates a new UNTITLED1 or 7 raises the 洗手 % existing singleton*. Starting from the left, property value pairs are

13、洗手 % applied to the GUI before untitled1_OpeningFunction gets called. An 洗手 % unrecognized property name or invalid value makes property application 洗手 % stop. All inputs are passed to untitled1_OpeningFcn via varargin.洗手 %洗手 % *See GUI Options on GUIDEs Tools menu. Choose “GUI allows only one 洗手 %

14、instance to run (singleton)“.洗手 %洗手 % See also: GUIDE, GUIDATA, GUIHANDLES 洗手 洗手 % Edit the above text to modify the response to help untitled1 洗手 洗手 % Last Modified by GUIDE v2.5 21-Dec-2014 19:55:20 洗手 洗手 % Begin initialization code - DO NOT EDIT 洗手 gui_Singleton = 1;b eef洗手 gui_State = struct(gui

15、_Name, mfilename, .洗手 gui_Singleton, gui_Singleton, .洗手 gui_OpeningFcn, untitled1_OpeningFcn, .洗手 gui_OutputFcn, untitled1_OutputFcn, .洗手 gui_LayoutFcn, , .洗手 gui_Callback, );b eef洗手 if nargin b eef洗手 end 洗手 洗手 if nargout 洗手 varargout1:nargout = gui_mainfcn(gui_State, varargin:);b eef洗手 else 洗手 gui_

16、mainfcn(gui_State, varargin:);b eef洗手 end 洗手 % End initialization code - DO NOT EDIT 洗手 洗手 洗手 % - Executes just before untitled1 is made visible.洗手 function untitled1_OpeningFcn(hObject, eventdata, handles, varargin)洗手 % This function has no output args, see OutputFcn.洗手 % hObject handle to figure 洗

17、手 8 % eventdata reserved - to be defined in a future version of MATLAB 洗手 % handles structure with handles and user data (see GUIDATA)洗手 % varargin command line arguments to untitled1 (see VARARGIN)洗手 洗手 % Choose default command line output for untitled1 洗手 handles.output = hObject;b eef洗手 洗手 % Upda

18、te handles structure 洗手 guidata(hObject, handles);b eef洗手 洗手 % UIWAIT makes untitled1 wait for user response (see UIRESUME)洗手 % uiwait(handles.maxing);b eef洗手 洗手 洗手 % - Outputs from this function are returned to the command line.洗手 function varargout = untitled1_OutputFcn(hObject, eventdata, handles

19、) 洗手 % varargout cell array for returning output args (see VARARGOUT);b eef洗手 % hObject handle to figure 洗手 % eventdata reserved - to be defined in a future version of MATLAB 洗手 % handles structure with handles and user data (see GUIDATA)洗手 洗手 % Get default command line output from handles structure

20、 洗手 varargout1 = handles.output;b eef洗手 洗手 洗手 洗手 function edit_Callback(hObject, eventdata, handles)洗手 % hObject handle to edit (see GCBO)洗手 % eventdata reserved - to be defined in a future version of MATLAB 洗手 % handles structure with handles and user data (see GUIDATA)洗手 洗手 % Hints: get(hObject,St

21、ring) returns contents of edit as text 洗手 % str2double(get(hObject,String) returns contents of edit as a double 洗手 洗手 洗手 % - Executes during object creation, after setting all properties.洗手 function edit_CreateFcn(hObject, eventdata, handles)洗手 % hObject handle to edit (see GCBO)洗手 % eventdata reser

22、ved - to be defined in a future version of MATLAB 洗手 % handles empty - handles not created until after all CreateFcns called洗手 洗手 9 % Hint: edit controls usually have a white background on Windows.洗手 % See ISPC and COMPUTER.洗手 if ispc b eef洗手 end 洗手 洗手 洗手 % - Executes on button press in ami.洗手 funct

23、ion ami_Callback(hObject, eventdata, handles)洗手 user_string=get(handles.edit,string);b eef洗手 a=dec2bin(user_string,8);b eef洗手 b=a;b eef洗手 c=b(:);b eef洗手 d=c;b eef洗手 f=str2num(d(1);b eef洗手 for i=2:length(d)洗手 f=f str2num(d(i);b eef洗手 end 洗手 f=f 0;b eef洗手 % %洗手 p = -1;b eef洗手 for i=1:length(f);b eef洗手

24、 if f(i)=1 洗手 e(i) = (-1)*p;b eef洗手 p = e(i);b eef洗手 else 洗手 e(i) = f(i);b eef洗手 end 洗手 end 洗手 % %洗手 for i=1:length(f);b eef洗手 if e(i)=0 洗手 l(i) = 1;b eef洗手 else 洗手 e(i) = 0;b eef洗手 end 洗手 end 洗手 axes(handles.axes1)洗手 t=1:length(f);b eef洗手 stairs(t-1,f)洗手 axis(0 length(f) -2 2)洗手 xlabel(ASCII);b eef

25、洗手 grid minor;b eef洗手 10 axes(handles.axes2)洗手 t=1:length(e);b eef洗手 stairs(t-1,e)洗手 axis(0 length(e) -2 2)洗手 xlabel(AMI );b eef洗手 grid minor;b eef洗手 axes(handles.axes3)洗手 t=1:length(l);b eef洗手 stairs(t-1,l)洗手 axis(0 length(l) -2 2)洗手 xlabel(AMI );b eef洗手 grid minor;b eef洗手 % hObject handle to ami (

26、see GCBO)洗手 % eventdata reserved - to be defined in a future version of MATLAB 洗手 % handles structure with handles and user data (see GUIDATA)洗手 洗手 洗手 % - Executes on button press in cmi.洗手 function cmi_Callback(hObject, eventdata, handles)洗手 user_string=get(handles.edit,string);b eef洗手 a=dec2bin(us

27、er_string,8);b eef洗手 b=a;b eef洗手 c=b(:);b eef洗手 d=c;b eef洗手 f=str2num(d(1);b eef洗手 for i=2:length(d)洗手 f=f str2num(d(i);b eef洗手 end 洗手 f=f 0;b eef洗手 % %洗手 m=1;b eef洗手 p=-1;b eef洗手 for i=1:length(f)洗手 if(f(i)=1b eef洗手 m=m*p;b eef洗手 else if(f(i)=1b eef洗手 m=m*p;b eef洗手 else 洗手 s(i)=1;b eef洗手 end 洗手 end 洗手 end 洗手

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。