项目介绍
本项目是一个基于MATLAB开发的HDB3(高密度双极性三阶码)编码及功率谱分析系统。HDB3码是通信原理中一种重要的基带传输码型,通过引入破坏点(V)和补足点(B),有效解决了基带信号中长连零导致的位同步提取困难问题。本系统通过数字信号处理手段,全流程模拟了从信源生成、码型变换、波位构造到频域特性的评估过程,是一个集理论验证与教学演示于一体的仿真工具。
功能特性
- 智能信源生成:系统能够生成随机二进制序列,并特意在指定区间插入长连零段,以测试HDB3编码对长连零序列的处理能力。
- 双码型变换对比:同步实现AMI(传号交替反转码)与HDB3编码,方便用户对比观察破坏点引入前后的波形形态。
- HDB3编码逻辑实现:严格遵循HDB3编码规则,支持根据前一非零脉冲极性及上一个破坏点后的1的个数,自动选择插入“000V”或“B00V”取代节。
- 可视化标注系统:在时域波形图中,利用不同形状和颜色的图例准确标注出编码过程中插入的破坏点(V)和补足点(B)。
- 频域特性分析:通过周期图法估算信号的功率谱密度,并以分贝(dB)为单位进行归一化显示,揭示HDB3码无直流分量、功率谱集中的物理特性。
- 自动化校验报告:系统运行结束后,在控制台输出逻辑统计报告,自动校验是否成功消除4连零、直流分量大小以及相邻V点极性是否交替。
使用方法- 启动MATLAB软件。
- 运行主脚本程序。
- 系统将自动弹出一个包含四个子图的图形窗口,展示原始码流、AMI码、HDB3码以及HDB3的功率谱。
- 在MATLAB命令行窗口查看编码统计报告,核对V点和B点生成的个数及编码规则校验结论。
系统要求
- 软件环境:MATLAB R2016b 及以上版本。
- 工具箱需求:Signal Processing Toolbox(信号处理工具箱,涉及功率谱密度函数调用)。
实现逻辑说明- 参数定义与信源生成
程序首先定义了采样频率(2000Hz)、码元速率(100 Baud)以及仿真位元数(60位)。信源部分利用随机函数产生0/1序列,并通过硬编码方式在第10-15、30-35、45-50位强制插入连续零电平,构造成典型的测试环境。
- 编码核心算法
系统采用状态机逻辑处理HDB3编码。程序维护了几个核心变量:上一个非零脉冲的极性、上一个破坏点V后非零脉冲的奇偶性。
* 当检测到4个连续零点时,程序判断自上一个V点以来非零脉冲的个数。
* 若个数为偶数,插入取代节“B00V”,其中B与V极性一致且与前一脉冲极性相反。
* 若个数为奇数,插入取代节“000V”,其中V与前一脉冲极性相同。
* 普通非零位则按照AMI规则进行正负极性交替。
- 波形构造
利用向量扩位技术,将每个离散的编码位通过矩形脉冲成形,扩展为对应的采样点序列,从而生成平滑的时域仿真波形,用于后续的绘图与频谱计算。
- 频谱估计
采用基于周期图法的数值计算方法,对编码后的HDB3波形进行功率谱分析。程序对结果进行了对数化处理,以便清晰地观察主瓣、旁瓣以及零频率处的抑制情况。
关键功能细节分析
- 取代节决策逻辑:代码中通过
mod(ones_since_v, 2) == 0 判断当前应插入B00V还是000V,这是保证编码无直流特性的关键规则。 - 可视化增强:为了解决重叠显示问题,系统在绘图时采用了时间轴偏移技巧
(v_positions-0.5)*Tb,确保标注点准确位于码元波形的中心位置。 - 自动化校验系统:
* 通过遍历编码结果,搜索是否存在全零子序列,验证4连零消除效果。
* 计算序列均值,验证其直流分量是否趋于零。
* 检查
v_polarities 向量,确保相邻两个破坏点极性相反,符合HDB3编码的极性交替原则。