资源简介
cmi、miller、双相码
matlab 编码、解码
simulink 仿真

代码片段和文件信息
data=double(rand(110)>0.5); %原始信号这里用长度为10的随机01串
%以下是双相码
code2=[]; %初始编码
for i=1:length(data)
if data(i)==0 %如果信号为0
temp=[0 1]; %信号0的极性交替
else
temp=[1 0];
end
code2=[code2 temp]; %加入新的两位编码
end
%以下是双相码解码
decode2=[];
r=0;
for i=1:2:length(code2)
if code2(i)==0
r=0; %信号0输出
else
r=1;
end
decode2=[decode2 r];
end
%以下是画图
subplot(711)stairs(0:length(data)[data data(end)]‘linewidth‘2);
title(‘随机信号‘);set(gca‘YLim‘[-0.2 1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(data))-0.60.5*ones(length(data)1)cellstr(num2str(data‘)));
subplot(712)stairs(0:length(code2)[code2 code2(end)]‘linewidth‘2);
title(‘双相码编码‘);set(gca‘YLim‘[-0.2 1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(code2))-0.60.5*ones(length(code2)1)cellstr(num2str(code2‘)));
subplot(713)stairs(0:length(decode2)[decode2 decode2(end)]‘linewidth‘2);
title(‘双相码解码信号‘);set(gca‘YLim‘[-0.2 1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(decode2))-0.60.5*ones(length(decode2)1)cellstr(num2str(decode2‘)));
%以下是密勒编码
code=[]; %初始编码
precode=0; %初始前一个编码
predata=1; %初始前一个信号
for ii=1:length(data)
if data(ii)==1 %如果信号为1
temp=[0 1]; %中间跳变
elseif predata==0 %如果信号为0且前信号为0
temp=[1 1]; %中间不跳变
else %如果信号为0且前信号为1
temp=[0 0]; %中间不跳变
end
if precode==1 %如果前一个编码是1
temp=1-temp; %将temp取反
end
code=[code temp]; %加入新的两位编码
predata=data(ii); %更新前一个信号
precode=code(end);%更新前一个编码
end
%以下是密勒解码
decode=[];
for ii=1:2:length(code) %两个两个编码进行解码
if code(ii)==code(ii+1)
temp=0;
else
temp=1;
end
decode=[decode temp];
end
%以下是画图
subplot(714)stairs(0:length(code)[code code(end)]‘linewidth‘2);
title(‘密勒编码‘);set(gca‘YLim‘[-0.2 1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(code))-0.60.5*ones(length(code)1)cellstr(num2str(code‘)));
subplot(715)stairs(0:length(decode)[decode decode(end)]‘linewidth‘2);
title(‘密勒解码信号‘);set(gca‘YLim‘[-0.2 1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(decode))-0.60.5*ones(length(decode)1)cellstr(num2str(decode‘)));
%以下是CMI
code1=[]; %初始编码
cun=0; %码里1的个数
for i=1:length(data)
if data(i)==1 %如果信号为1
cun=cun+1;
if rem(cun2)==0
temp=[0 0]; %信号1的极性交替
else
temp=[1 1];
end
else %如果信号为0
temp=[0 1]; %中间不跳变
end
code1=[code1 temp]; %加入新的两位编码
end
%以下是CMI解码
decode1=[];
r=0;
for i=1:2:length(code1)
temp=code1(i)+code1(i+1);
if temp==1
r=0; %信号0输出
else
r=1;
end
decode1=[decode1 r];
end
%以下是画图
subplot(716)stairs(0:length(code1)[code1 code1(end)]‘linewidth‘2);
title(‘CMI编码‘);set(gca‘YLim‘[-0.2 1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(code1))-0.60.5*ones(length(code1)1)cellstr(num2str(code1‘)));
subplot(717)stairs(0:length(dec
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-01-15 18:43 基本码型\
文件 3469 2018-12-23 18:19 基本码型\m1.m
文件 20734 2019-01-15 18:43 基本码型\smi.slx
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论