AMI与HDB3的matlab实现
本程序主要是实现AMI与HDB3编码规则的实现,由于自己编写的时间长了,现在无法检验,读者自己弄吧。
clear all;
a=input('请输入序列= ');
a_num=length(a);
a_ami=a;
a_sign=-1;
for i=1:a_num
if a(i)==0
continue;
elseif a(i)==1&a_sign==-1
a_ami(i)=-a(i);
a_sign=1;
elseif a(i)==1&a_sign==1
a_ami(i)=a(i);
a_sign=-1;
end
end
%the part of painting
AMIandHDB3paint(a_num,a_ami,1,'AMI');
%the part of HDB3
a_sign=-1; %先是按照负极性进行编码,即原初始位为‘1’,
a_hdb3=0; %则HDB3码的初始位为‘-1’
a_hdb3=0;
a_ov=0;
i=1;c=0;
for j=1:a_num
if i+3<=a_num
if sum(a([i:i+3]))==0
a_ov=a_ov+1;
if mod(a_ov,2)==1
a_hdb3(i+3)=-1;
a_sign=1;
if a_hdb3(i+3)~=a_hdb3(i-1);
a_hdb3(i)=a_hdb3(i+3);
end
elseif mod(a_ov,2)==0
a_hdb3(i+3)=1;
a_sign=-1;
if a_hdb3(i+3)~=a_hdb3(i-1);
a_hdb3(i)=a_hdb3(i+3);
end
end
i=i+4;c=1;
end
end
if c==1
c=0; continue;
end
if a(i)==0
i=i+1;continue;
elseif a(i)==1&a_sign==-1
a_hdb3(i)=-a(i);
a_sign=1; i=i+1;
elseif a(i)==1&a_sign==1
a_hdb3(i)=a(i);
a_sign=-1; i=i+1;
end
if i>a_num
break;
end
end
%the part of painting
AMIandHDB3paint(a_num,a_hdb3,2,'HDB3');
%本程序是对AMIcodeANDHDB3code.m 模块化的尝试;
%主要是将计算程序与画图程序分隔开来;
function AMIandHDB3paint(a_num,a_matrix,n,a_name)
%the part of painting
t0=25;
t=0:1/t0:a_num;
a_paint=0;
for i=1:a_num
for j=1:t0
a_paint=[a_paint a_matrix(i)];
end
end
t=[t a_num+1/t0];
a_paint=[a_paint,0];
subplot(2,1,n);
plot(t,a_paint,'LineWidth',2);grid minor;
axis([-0.05 a_num+0.05 -1.05 1.05]);
title([num2str(a_name),'输出波形']);
xlabel([num2str(a_name),'输出序列= ',[num2str(a_matrix)]]);
disp([num2str(a_name),'输出序列= ',num2str(a_matrix)]);
AMI与HDB3的matlab实现相关推荐
- HDB3的matlab编译码
%程序说明:对一个二进制序列进行hdb3编码运算 %function y=hdb3(x) x=[0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 ] n=leng ...
- 【编码译码】基于matlab HDB3编译码仿真【含Matlab源码 1961期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[编码译码]基于matlab HDB3编译码仿真[含Matlab源码 1961期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...
- 【Verilog】消息码转AMI码的具体Verilog代码实践以及经验分享
程序分解说明 状态机部分: /*状态机 */ reg [1:0] STATE; //parameter idle = 2'b00; parameter input_zero = 2'b01; para ...
- cmi码型变换matlab程序_cmi码码型变换
3. 观察 HDB3 码.AMI 码.BNRZ 码正.负极性波形. 4. 观察 NRZ 码.RZ 码.BRZ 码.BNRZ 码.AMI 码.CMI 码.HDB3 码.BPH 码经过码型反变换 后... ...
- 课程项目:大学程序设计相关大作业汇总参考及源码地址
C++程序设计 利用C++实现的小游戏:2048,俄罗斯方块和贪吃蛇[Some small games implemented in C++: 2048, Tetris and Snake (Univ ...
- 最详细的CISCO路由器配置命令及方法
第一章 路由器配置基础 一.基本设置方式 二.命令状态 三.设置对话过程 四.常用命令 五.配置IP寻址 六.配置静态路由 第二章 广域网协议设置 一.HDLC 二.PPP 三.X.25 四.Fram ...
- 路由器配置(新手上路,比较全面,强烈推荐)
路由器配置(新手上路,比较全面,强烈推荐) 第一章 路由器配置基础 一.基本设置方式 二.命令状态 三.设置对话过程 四.常用命令 五.配置IP寻址 六.配置静态路由 第二章 广域网协议设置 一.HD ...
- 【现代通信原理笔记】4 数字基带传输
[现代通信原理]4 数字基带传输 重点: 什么是数字基带信号 三个关键问题:差错.利用率.补偿 脉冲码型:单极性多级性 NRZ.单极性多级性 RZ.差分.归零 一元多元 PAM, 表达式.原理.框图, ...
- Cisco Packet Tracer基础命令操作以及组织网络实验
打开Cisco packet tracer,选取路由器Router2811(example) 2.双击该路由器,在弹出的窗口选择 CLI 选项,启动后输入no,回车即可进入路由器的用户模式,若要进行对 ...
- H3C、思科路由器简单配置
进入配置模式:sys ip address:这个基本是一样的. int gi1/1/1 ip address 192.168.1.2 30 undo shutdown 配置loopback: int ...
最新文章
- TVM性能评估分析(二)
- [转]英文版VS2010制作中文环境安装包
- [转载] HTTP 之 IOS一谈
- Fedora 23如何安装LAMP服务器
- 使用pyinstaller打包pyqt程序
- 安卓怎么显示res文件夹中的html_android中自定义WebView显示网页或本地html文件 | 学步园...
- java8中的lambda用法实例
- set()与get()详细解答(C#)
- 【转载】分布式之redis复习精讲
- 重写、重构、重载区别
- tomcat linux环境变量,linux系统为什么需要配置tomcat环境变量
- jupyter notebook的单独安装与使用
- JAVA内存模型和GC原理
- 计算机软件技术发展应用论文,计算机软件毕业论文计算机软件技术发展应用.docx...
- linux设置双屏拼接_Linux 与Windows(A卡、N卡)下折腾双屏、3屏拼接
- 《按自己的意愿过一生》语录二
- 为什么苹果蓝牙耳机连上还是公放_如何测试蓝牙设备的延时
- 电脑视频剪辑用哪个软件,好用的电脑视频剪辑软件有哪些
- java crm 进销存 springmvc SSM 项目 系统
- 【深入UCSC Genome Brower】写在前面