中南大学通信原理matlab课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信原理课程设计报告
通信1005班
实验目的
通信原理实验是针对通信工程专业学生的实践教学环节,通过这一环节,可使学生巩固相关课程知识,增强动手能力,提高学生对通信系统的仿真技能。在强调基本原理的同时,更突出设计过程的锻炼,强化学生的实践创新能力。
选题:第二题、码型变换的仿真实现
Ⅰ、基本任务:原始PCM脉冲编码信号的AMI码型和CMI码型变换。
主要步骤和要求:
(1)把原始的PCM脉冲编码信号转换成适合在信道中传输的AMI码型。要求PCM码可以是数字型也可以是字符型,要求画出AMI码型变换前后的波形图。
(2)把原始的PCM脉冲编码信号转换成适合在信道中传输的CMI码型。要求PCM码可以是数字型也可以是字符型,要求画出CMI码型变换前后的波形图。
Ⅱ、选做任务:原始PCM脉冲编码信号的HDB3码型转换。
主要步骤和要求:
把原始的PCM脉冲编码信号转换成适合在信道中传输的HDB3码型。要求PCM码可以是数字型也可以是字符型;要求保证输入的PCM脉冲编码信号中1的个数为偶数;要求画出HDB3码型变换前后的波形图。
设计原理
AMI码
AMI(Alternative Mark Inversion)码的全称是信号交替反转码,是通信编码中的一种,为极性交替翻转码,分别有一个高电平和低电平表示两个极性。
一、编码规则:
消息代码中的0 传输码中的0 ,消息代码中的1 传输码中的+1、-1交替
例如: 消息代码:1 0 1 0 1 0 0 0 1 0 1 1 1
AMI码: +1 0 -1 0 +1 0 0 0 -1 0 +1 -1 +1
二、AMI码的特点:
1 由AMI码确定的基带信号中正负脉冲交替,而0电位保持不变;所以由AMI码确定的基带信号无直流分量,且只有很小的低频分量;
2 不易提取定时信号,由于它可能出现长的连0串。
三、解码规则
从收到的符号序列中将所有的-1变换成+1后,就可以得到原消息代码
程序流程图
HDB3码
一、High Density Bipolar of order 3code,三阶高密度双极性码。
HDB3的编码规则
1 先将消息代码变换成AMI码,若AMI码中连0的个数小于4,此时的AMI码就是HDB3码;
2 若AMI码中连0的个数大于3,则将每4个连0小段的第4个0变换成与前一个非0符号(+1或-1)同极性的符号,用表示(+1+,-1-);
3为了不破坏极性交替反转,当相邻符号之间有偶数个非0符号时,再将该小段的第1个0变换成+B或-B,符号的极性与前一非零符号的相反,并让后面的非零符号从符号开始再交替变化。例如: 消息代码: 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1
AMI码: +1 0 0 0 0 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1
HDB3码:+1 0 0 0 +V -1 0 0 0 -V +1 -1 +B 0 0 +V -1 +1 流程图:
CMI码
CMI(Coded Mark Inversion)码是传号反转码的简称,与双相码类似,它也是一种双极性二电平码。其编码规则是“1”码交替用“11”和“00”两位码表示;“0”码固定地用“01”表示。CMI码易于实现,含有丰富的定时信息。此外,由于10为禁用码组,不会出现三个以上的连码,这个规律可以用来宏观检错。该码已被ITU-T推荐为PCM四次群的接口码型,有时也用在速率低于8.44Mb/s的光缆传输系统中。
运行结果截图
输入
源代码
function varargout = gui02(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @gui02_OpeningFcn, ...
'gui_OutputFcn', @gui02_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before gui02 is made visible.
function gui02_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 with handles and user data (see GUIDATA)
% varargin command line arguments to gui02 (see VARARGIN)
% Choose default command line output for gui02
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes gui02 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = gui02_OutputFcn(hObject, eventdata, handles)