(完整word版)matlab编程 下载本文

内容发布更新时间 : 2024/11/15 6:21:54星期一 下面是文章的全部内容请认真阅读。

AMI、HDB3、密勒码编码实现

——matlab仿真模拟

【任务描述】

A. 产生一个长为1000的二进制随机序列,“0”的概率为0.8,”1”的概率为0.2;

B. 对上述数据进行归零AMI编码,脉冲宽度为符号宽度的50%,波形采样率为符号

率的8倍,画出前20个符号对应的波形(同时给出前20位信源序列); C. 改用HDB3码,画出前20个符号对应的波形; D. 改用密勒码,画出前20个符号对应的波形;

E. 分别对上述1000个符号的波形进行功率谱估计,画出功率谱; F. 改变信源“0”的概率,观察AMI码的功率谱变化情况;

【基本思路】

采用调用子函数的方法,在掌握了各种码的编码规律之后实现编码功能。具体实现了AMI码、HDB3码以及密勒码的编码。而且调用了功率谱函数spectrum对各种码的功率谱以及不同信源概率下的功率谱进行了比较。下面就详细介绍各种码形的变换思路: 1. AMI码

AMI码中信息码“0”对应着三元码序列中的“0”,信息码“1”则交替地变换为“+1”和“-1”的归零码。 2. HDB3码

在AMI码的基础上,当出现多于3个零的情况,利用其检错能力,使用异常代替长连零,以平衡码中的极性使得直流分量为0。 3. 密勒码

密勒码中使用码元周期中点的跳变来代表“1”,当出现连续的“0”时出现电平跳变,否则码元周期内不出现跳变。

【程序清单】

Code.m:完成产生随机0、1序列并且将其用波形表示的功能。 AMI_Code.m:将随机序列转换为AMI码 HDB3_Code.m:将随机序列转换为HDB3码 Miller_Code.m:将随机序列转换为密勒码

Plot_spectrum.m: 使用库函数绘制功率谱曲线

【仿真分析】

第 1 页 共 9 页

1. 前20个符号所对应的各种码形

在一次的仿真中随机产生的前20个符号为:

0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0

显然,NRZ(L)码的波形即为原始的序列信息码

对应的AMI码为:

0 0 0 0 0 0 0 0 0 0 1 -1 0 0 1 0 0 0 -1 0

对应的HDB3码为:

1 0 0 1 -1 0 0 -1 0 0 1 -1 0 0 1 0 0 0 -1 0

对应的密勒码为:

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0

可以看出:编码结果完全正确!

2. 四种码形的功率谱

第 2 页 共 9 页

3. 不同概率‘0’下AMI码形功率谱变化

第 3 页 共 9 页

第 4 页 共 9 页

第 5 页 共 9 页