资源简介
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
相关资源
- PCA人脸识别Eigenface特征脸Matlab
- 数字识别matlab源代码
-
MATLAB/simuli
nk短路电流仿真 - matlab2019运动目标检测--数字图像处理
- Allan方差分析MATLAB代码,含MPU6050八小
- 暗通道去雾MATLAB205097
- 自动寻峰谷算法matlab实现
- 基于MATLAB的车牌定位源程序
- 基于sift特征的人民币识别matlab版
- 《MATLAB仿真在现代通信中的应用》徐
- CARS-PLS 用于光谱数据或色谱数据变量
- matlab人脸皮肤分层、图像检测、检测
- CARS matlab 代码
- 基于MATLAB的OFDM系统仿真及性能分析
- AR模型算法的matlab实现和实验分析
- 基于自适应压扩法降低OFDM系统的峰均
- 自抗扰控制ADRC的MATLAB仿真+书籍资料
- matlab模式识别工具箱PRTOOLS及使用说明
- Dijkstra最短路径算法的Matlab实现
-
PLLsimuli
nk仿真模型 - matlab.m 获取wav文件基频 mel倒谱 ff
- Robust ICP (matlab)
- 均匀球体剖面重力异常正演模拟Matl
- 高阶邦加莱球及stokes参量 matlab模拟
- 监督分类最大似然法MATLAB.zip
- 求露点温度matlab程序
- 计算图像Spatial Frequence的Matlab程序SF
- 随机梯度下降算法的MATLAB实现
- MATLAB_FEM_ToolBox_examples
- 德州扑克获胜概率计算的MATLAB程序
评论
共有 条评论