实验一 基带传输常用编码

实验内容

数字编码技术:AMI码、曼彻斯特编码、HDB3码

实验目的

掌握几种基带传输常用码型的编码规则,如AMI码、HDB3码、曼彻斯特码。然后利用MATLAB设计并实现它们的编码。

实验环境

MATLAB程序设计、MATLAB Simulink仿真

原理简述

AMI码

定义:AMI码是传号交替反转码。其编码规则是将二进制消息代码“1”交替地变换为传输码的“+1”和“-1”,而“0”保持不变。

优点:无直流分量

缺点:当原信码出现连“0”串时,信号的电平长时间不跳变,造成提取定时信号的困难。

HDB3码

定义:HDB3码全称是高密度双极性码,是AMI码的一种改进型,其目的是为了保持AMI码的优点而克服其缺点,使连“0”个数不超过3个。

编码规则:

1) 先将消息代码变换成AMI码,若AMI码中连0的个数小于4,此时的AMI码就是HDB3码 ;
2) 若AMI码中连0的个数大于3,则将每4个连0小段的第4个0变换成与前一个非0符号(+1或-1)同极性的符号,表示(+V,-V);
3) 为了不破坏极性交替反转,当相邻V码之间有偶数个非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

数字双相码(Manchester码)

定义:它用一个周期的正负对称方波表示“0”,而用其反相波形表示“1”。编码是:“0”码用“1 -1”两位码表示,“1”码用“-1 1”两位码表示。

例如:

消息代码 1 1 0 0 1 0 1

曼彻斯特编码:-1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1

仿真程序与实验结果及其分析:

AMI码

设计思路:

1、输入消息码;2、计算“1”的位置;3、偶数个1时输出1”,奇数时为“-1”。

关键步骤:统计“1”的个数,对奇偶不同的“1”进行区分。

matlab代码:

xn=[1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0];
tn=xn;
num=0;%AMI部分
for k=1:length(xn)            %只对1进行变化if xn(k)==1num=num+1;          if num/2==fix(num/2)      %偶数位输出为1tn(k)=1;elsetn(k)=-1;             %奇数位输出为-1endend
end
figure(1);                    %图一为原码,图二为AMI码
subplot(3,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);grid;
subplot(3,1,2);stairs([0:length(xn)-1],tn);axis([0 length(xn) -2 2]);grid;

实验结果及分析

对于输入的序列1 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0经过AMI编码之后结果应是-1 0 1 -1 0 0 0 0 1 -1 1 0 0 0 -1 0,结果图像可知结果正确。

HDB3码

设计思路:

1、输入消息码,并将它转换为AMI码;

2、统计连零情况,如果4连0,让0000的最后一个0改变为与前一个非零符号相同极性的符号;

3、如果当前V符号与前一个V符号的极性相同,则让当前V符号极性反转,以满足V符号间相互极性反转要求,并且添加B符号,与V符号同极性,然后让后面的非零符号从V符号开始再交替变化。

matlab代码:

xn=[1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1];
tn=xn;
num=0;%AMI部分
for k=1:length(xn)            %只对1进行变化if xn(k)==1num=num+1;          if num/2==fix(num/2)      %偶数位输出为1tn(k)=1;elsetn(k)=-1;             %奇数位输出为-1endend
end%HDB3部分
HDB3=tn;
num1=0;
l1=0;
lv=0;
for i=1:length(xn)if HDB3(i)==0num1=num1+1;if num1==4if lv==l1HDB3(i)=-l1;HDB3(i-3)=-l1;elseHDB3(i)=l1;endlv=HDB3(i);l1=lv;num1=0;endelseif HDB3(i)==l1HDB3(i)=-l1;endl1=HDB3(i);num1=0;end
endfigure(1);
subplot(3,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);grid;
subplot(3,1,2);stairs([0:length(xn)-1],HDB3);axis([0 length(xn) -2 2]);grid;

实验结果及分析

对于输入的序列1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1经过AMI编码之后结果应是-1 0 0 0 -1 +1 0 0 0 +1 -1 +1 -1 0 0 -1 +1 -1,结果图像可知结果正确。

Manchester码

设计思路:

1、输入消息码;2、计算消息码中“1”、“0”的位置;3、将消息码中的“1”输出为“-1 1”;将消息码中的“0”输出为“1 -1”。

关键步骤:将每个码元用两位码表示。

matlab代码:

xn=[1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1];
yn=zeros(1,2*length(xn));for i=1:length(xn)if xn(i)==0yn(2*i-1)=1;yn(2*i)=-1;elseyn(2*i-1)=-1;yn(2*i)=1;end
endfigure(1);
subplot(2,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);grid;
subplot(2,1,2);stairs([0:0.5:length(xn)-0.5],yn);axis([0 length(xn) -2 2]);grid;

实验结果及分析

对于输入的序列1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1经过AMI编码之后结果应是-1 1 1 -1 1 -1 1 -1 1 -1 -1 1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 ,结果图像可知结果正确。

实验二 数字调制截调技术

实验内容

一、Simulink简介
二、2ASK系统的仿真设计与分析
三、2FSK系统的仿真设计与分析
四、2PSK系统的仿真设计与分析
五、2DPSK系统的仿真设计与分析

实验目的

在学习了几种数字调制的基础上,通过simulink仿真软件,实现对2ASK、2FSK、2PSK等数字调制系统的仿真,然后对以上系统有更深入的了解。

实验环境

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。

Simulink是MATLAB中的一种可视化仿真工具, 是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。

为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。

2ASK系统的仿真设计与分析

2ASK系统的原理

ASK即“幅移键控”又称为“振幅键控”,2ASK是二进制振幅键控。发送为二进制符号“0”时,2ASK信号取值为0;发送为二进制符号“1”时,2ASK信号取值为载波对应的值。

解调算法:

上式中的第二项的频率远大于基带信号的频率,可以用低通滤波器滤掉。

具体如下图所示:

2ASK系统的仿真设计

2ASK系统仿真结果

2FSK系统的仿真设计与分析

2FSK系统的原理

数字键控法实现二进制移频键控信号的原理图:

2fsk非相干解调:

2fsk相干解调:

2FSK系统的仿真设计

2FSK系统仿真结果

2PSK系统的仿真设计与分析

2PSK系统的原理

2PSK称为二进制相移键控,是相移键控的最简单的一种形式,它用两个初相相隔为180的载波来传递二进制信息。2PSK即发送为二进制符号“1”时,取0相位;发送为二进制符号“0”时,取pi相位。或者也可以反过来。

相干解调法:

整个2PSK的调制与解调仿真,流程如下图:

2PSK系统的仿真设计

2PSK系统的仿真结果

2DPSK系统的仿真设计与分析

2DPSK系统的原理

2DPSK信号的解调方法:差分相干解调(相位比较)法

2DPSK系统的仿真设计

2DPSK系统仿真结果


实验三 模拟信号的数字传输

实验内容

一、PCM系统及matlab的实现
二、增量调制系统及matlab的实现

实验目的

通过此次课程的学习我们能加深理解和巩固理论课上所学的有关PCM\DM编码和解码的基本概念、基本理论和基本方法,并且更加熟练的掌握和操作MATLAB。

实验环境

MATLAB程序设计

原理简述

脉冲编码调制

脉冲编码调制(PCM)简称脉码调制,它是一种用一组二进制数字代码来代替连续信号的抽样值,从而实现数字通信方式。由于这种通信方式刚干扰能力强,他在很多领域获得了极为广泛的应用。

PCM信号的形成是模拟信号经过“抽样、量化、编码”三个步骤实现的。

  • 抽样是对模拟信号进行周期性的扫描,把时间上连续的信号变成时间上离散的信号。我们要求经过抽样的信号应包含原信号的所有信息,既能无失真地恢复出原模拟信号,抽样速率的下限有抽样定理确定。
  • 量化是把经抽样得到的瞬间值进行幅度离散,即指定规定的电平,把抽样值用最接近的电平表示。
  • 编码是用二进制码组表示有固定电平的量化值。实际上量化是在编码过程中同时完成的。

增量调制

预测误差 ek=mk–mk′ek = mk – mk'ek=mk–mk′ 被量化成两个电平 +σ+\sigma+σ 和 −σ-\sigma−σ 。σ\sigmaσ值称为量化台阶。这就是说,量化器输出信号 rkrkrk 只取两个值 +σ+\sigma+σ 和 −σ-\sigma−σ 。因此,rkrkrk 可以用一个二进制符号表示。例如,用“1”表示“+σ+\sigma+σ”,及用“0”表示“−σ-\sigma−σ ”。

当前抽样值和前一个抽样重构值比较,若大于前一个抽样重构值,则编为1,若小于,则编为0

增量调制的采样间隔为 TsT_sTs​ ,量化阶距 δδδ ,前一个抽样量化值初始值为0。输入信号,求出20个采样点。

编码端:

  1. 先取差值;
  2. 量化器输出:差值大于0输出δ,差值小于0输出-δ ;
  3. 前一个抽样量化值状态更新:差值加上前一个抽样量化值
  4. 编码输出,差值大于0输出为1,小于等于0输出为0。

解码端:

  1. 前一个抽样量化值初始值为0
  2. 根据编码端的输出得到量化值,若编码值为1,则量化值=δδδ,否则为 −δ-δ−δ
  3. 更新抽样量化值:前一个抽样量化值 +δ+δ+δ 。
  4. 输出图像

仿真程序与实验结果:

脉冲编码调制

%sympref('FloatingPointOutput',true);signLen=4%产生原始信号
syms x
originalFunction(x)=sin(2*pi*x)+sin(2*pi*5*x)
ts=0.01;
t=0:ts:signLen;
original=originalFunction(t)
subplot(4,1,1);
plot(original);
title('原始信号');%用离散的周期序列对信号进行抽样
sampleNum=81
ts=signLen/(sampleNum-1);
t=0:ts:signLen;
sample=originalFunction(t)
subplot(4,1,2);
stem(sample);
title('抽样信号');%均匀量化
maxY=2
minY=-maxY;
M=19
delta=(maxY-minY)/M
dx=1:1:M;
q=dx*delta + (minY-delta/2)*ones(1,M)
index=zeros(1,sampleNum);
for i=1:sampleNumsp=sample(i);tempi=find((q-delta/2 <= sp) & (sp <= q+delta/2));index(i)=(tempi(1)-1-(M-1)/2)*2/(M-1)*maxY;
end
subplot(4,1,3);
stem(index);
title('均匀量化信号');oneSample = sample/maxY;
ys=[];
A= 3;
lnA = log(A);for j = 1:length(oneSample)ori = oneSample(j);if(abs(ori)<1/A)ys(end+1) = ori*A/(1+lnA);elseys(end+1) = sign(ori)*(1+log(A*abs(ori)))/(1+ lnA);end
end
ysys_max = max(ys);
ys_min = min(ys);
delta = (ys_max-ys_min)/M;
q2=dx*delta + (ys_min-delta/2)*ones(1,M)
index2=zeros(1,sampleNum);
for i=1:sampleNumsp=ys(i);tempi=find((q2-delta/2 <= sp) & (sp <= q2+delta/2));index2(i)=(tempi(1)-1-(M-1)/2)*2/(M-1);
endans =[];
for j=1:length(index2)tempy = index2(j);if(abs(tempy)<1/(1+lnA))ans(end+1) = tempy*(1+lnA)/A;elseans(end+1) = sign(tempy)*(exp(abs(tempy)*(1+lnA)-1))/A;end
end
ans = ans*maxY;
subplot(4,1,4);
stem(ans);
title('A律量化信号');

增量调制

syms x
originalFunction(x)=sin(2*pi*x);signLen=1delta=0.35;                          % 量化阶距ts=0.01;                             % 采样间隔
t=0:ts:signLen;                      % 仿真时间序列
original=originalFunction(t)
subplot(3,1,1);
plot(t,originalFunction(t));sampleLen=0.05
sampleNum=signLen/sampleLen+1;
t=0:sampleLen:signLen;
sample=originalFunction(t)
hold on;
stem(t,originalFunction(t));tz=[];
base=0;
for i=1:sampleNum-1flag=sample(i+1)-baseif flag>0tz(end+1)=1;base=base+deltaelsetz(end+1)=0;base=base-deltaend
end
tz(end+1)=tz(end);
tz
subplot(3,1,2);
stairs(t,tz);
ylim([-1 2]);%解码端
jt=[];
jtBase=0;                           % 解码端预测器初始状态
for i=1:length(tz)-1if tz(i)==0jtBase=jtBase-delta;elsejtBase=jtBase+delta;endjt(end+1)=jtBase;
end
jt(end+1)=jt(end);                  % 延迟器状态更新
jt
subplot(3,1,3);
stairs(t,jt);
ylim([-1.5 1.5]);
hold on;
plot(t,originalFunction(t));

西电通信技术基础实验相关推荐

  1. 计算机硬件实验教程pdf,计算机硬件技术基础实验教程答案(重庆大学)

    计算机硬件技术基础实验教程答案(重庆大学) 计算机硬件技术基础实验教程答案 实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 ...

  2. 大数据技术基础实验十三:Kafka实验——订阅推送示例

    大数据技术基础实验十三:Kafka实验--订阅推送示例 文章目录 大数据技术基础实验十三:Kafka实验--订阅推送示例 一.前言 二.实验目的 三.实验要求 四.实验原理 1.Kafka简介 2.K ...

  3. WLGK-51单片机接口技术基础实验 —LED闪烁灯

    WLGK-51单片机接口技术基础实验--LED闪烁灯 当我们开始接触单片机,首先接触的第一个实验就是LED灯的使用,类似于我们学习软件开始接触的第一个程序"HelloWorld", ...

  4. WLGK-51单片机接口技术基础实验 ——LED闪烁灯

    WLGK-51单片机接口技术基础实验-LED闪烁灯 当我们开始接触单片机,首先接触的第一个实验就是LED灯的使用,类似于我们学习软件开始接触的第一个程序"HelloWorld",这 ...

  5. Web前端技术基础实验报告三之超链接与多媒体文件应用

    目录 Web前端技术基础实验报告 实验题目:超链接与多媒体文件应用 实验目的:熟悉超链接与多媒体文件的插入的相关标签 实验内容 : 实验过程及结果 Web前端技术基础实验报告 实验题目:超链接与多媒体 ...

  6. 计算机硬件技术基础实验教程实验报告,计算机硬件技术基础实验报告精选.doc...

    计算机硬件技术基础实验报告精选 计算机硬件?技术基础实?验 实验报告 学 校:_____?_____?_____?___ 院 系:_____?_____?_____?___ 学 号:_____?___ ...

  7. 大数据技术基础实验三:HDFS实验——部署HDFS

    大数据技术基础实验三:HDFS实验--部署HDFS 文章目录 大数据技术基础实验三:HDFS实验--部署HDFS 一.前言 二.实验要求 三.实验原理 1.什么是HDFS? 2.HDFS的体系结构 3 ...

  8. 计算机硬件技术基础实验教程实验报告,计算机硬件技术基础实验报告.doc

    计算机硬件技术基础实验报告 计算机硬件技术基础实验日志认识集成操作软件DDATA SEGMENT MSRDB "HELLO,WORLD!$" LENEQU $- MSR DDATA ...

  9. 东北大学计算机软件基础实验报告,东北大学计算机软件技术基础实验报告.pdf...

    东北大学计算机软件技术基础实验报告 计算机软件技术基础实验 专 业: 学生姓名:[哈哈哈] 学 号:[哈哈哈] 实验时间:[2016 年8 月22 日] 实验一:线性表的排序与查找 #include ...

最新文章

  1. Android性能优化之运算篇
  2. 【STM32】跑马灯实验主要程序代码分析
  3. 课时 11:可观测性:你的应用健康吗?(莫源)
  4. Aop动态代理解决问题
  5. 没有计算机的一天英语作文带翻译,初一英语作文我的一天带翻译
  6. linux中,添加cvs用户,实质就是添加linux用户 (extssh 连接方式)。 (添加时,注意是否要分组。)
  7. OPPO 实时数仓揭秘:从顶层设计实现离线与实时的平滑迁移
  8. Android开发技术周报 Issue#38
  9. mysql 事件计划区别_【转】mysql 计划事件
  10. Go 反射机制详解及实例 【Go语言圣经笔记】
  11. 【DS】三分钟带你学会时间(空间)复杂度
  12. java日期计算_java日期计算
  13. 5年来做QQ与QQ群营销所走过的坑、奉劝大家别再在这块上花心思了
  14. 让我摘下星星送给你_抖音中摘下星星给你摘下月亮的歌词是什么歌 星球坠落歌词在哪听...
  15. esp32例子初始化流程
  16. 计算机辅助遥感制图的基本过程,项目八-遥感专题图的制作
  17. Android 大姨妈、经期日历,美柚经期效果
  18. 安装JDK(以安装JDK16为例)
  19. Internet标准时间RFC3339格式说明
  20. Windows 默认字体和 字体链接

热门文章

  1. verification基本介绍
  2. 招商头条:2018成都快递业中西部第一;合肥高新区30个项目签约125亿;芯盾时代完成3亿元融资
  3. 分享8款最新超酷HTML5/CSS3特效及源码
  4. linux上配置zabbix并设置企业微信,机器人以及自主告警
  5. jacob操作API
  6. 关于前端导出文件打不开的问题
  7. CGAN模型——pytorch实现
  8. 【多聚焦图像融合数据集制作From:VOC2012】Method From:Fully Convolutional Network-Based Multifocus Image Fusion
  9. 微软开源在线代码编辑器,编辑器天花板之Monaco Editor
  10. GraphSAGE 源代码 -- 分图训练