没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
.
教师评阅意见:
签名: 年 月 日
实验成绩:
一、 设计题目
基于 MATLAB 通信系统仿真——信源编解码。
二、实验内容及要求
内容:完成对一模拟信号的抽样、量化、编码,然后利用 Huffman 信源编码对其进
行数据压缩,再利用(15,11)的线性分组码进行信道编码,然后采用DPSK 调制方
式调制,接着通过信道;在接收端进行其逆过程,即先解调(可采用相干解调或差
分相干解调),再依次为信道译码,Huffman 信源译码,PCM 译码。
要求:利用相关知识,建立系统模型,完成各个模块的代码设计。
三、实验过程(详细设计)
通信系统模型:
.
本实验主函数框图:
对模拟信号
抽样量化
PCM 编码
Huffman
编码
信道编码 DPSK 调制
还原信号
信
道
加
噪
信道译码
经低通滤波
器过滤
DPSK 解调PCM 译码
Huffman
编码
分步设计:
抽样部分([sg1,sg2]=Sampling(fs)):
函数功能:对原始信号进行抽样;
函数参数:fs 抽样频率(须大于等于两倍的信号最高频率);
函数返回值:sg1 表示原始信号,sg2 表示抽样信号;
实现:根据抽样频率 fs 在一个周期里抽取 fs 个值即可。
进制转换部分([h]=dextobin(n,n_no)):
函数功能:将十进制数转换成二进制数;
函数参数:n 表示待转换的十进制数,n_no 表示要将 n 转换为二进制数的位数;
函数返回值:h 表示 n 的 n_no 位二进制数;
实现:首先判定 n 是否为整数,如果不是则将其先进行四舍五入处理,然后将
处理后的 n’转换成位数与 n_no 相同的二进制数,前面多余的位用零表示。
PCM 编码部分([pc]=PCM_code(sg2)):
函数功能:对抽样值 sg2 进行 PCM 编码;
函数参数:sg2 表示通过抽样函数 Sampling 抽样后的离散值;
函数返回值:pc 表示 sg2 中的每一个值通过 PCM 编码后的 8 位二进制码组的十
进制数形式(说明:之所以转换成十进制数,是为了在 Huffman 编码时的方便)。
实现:以一个实际的数为例,首先确定这个数拥有多少个量化单位(1/2048),
然后编码,如果为负则第一位为 0,否则为 1;接着根据刚才计算得到的量化单位判
断其段落,得到段落码;最后确定段内码,方法:先计算每一端的量化间隔
D
i
2
i2
.
(注意:此处的
D
i
是一量化单位为基础的,而不是最小量化间隔)
i
为段落值,然
后再利用计算式
G fix((x 2
(i 2)
) / D
i
)
,得到段内段落数
G
,再将
G
转换成二进制
数,完成编码。
Huffman 数据压缩部分:
说明:本部分包含两个函数 Huff_P 和 Huff_code 两个函数,下面将一一介绍;
[P,Str,B]=Huff_P(Str):
函数功能:计算 Str 中每一种元素的概率;
函数参数:Str 是一个数组,元素为 PCM_code 函数返回的 pc;
函数返回值:P 表示每个元素的概率矩阵,Str 同参数一样,B 表示 Str 中的元
素种类;
实现;利用系统函数 unique 得到 Str 中的元素的种类,再利用双重循环计算每
一种元素个数,再除以中的元素的个数,便得到每一种元素的概率。
[Code,Final_code,Length_code,Bnew]=Huff_code(P,Str,B):
函数功能:对 B 中的每一种元素进行 Huffman 编码;
函数参数:P 表示概率矩阵,Str 同 Huff_P 函数中的参数一致,B 表示元素种类;
函数返回值:Code 表示建立的码字表,Final_code 表示对 B 中的每一种元素编
码后的 0、1 比特流,Length_code 表示 Code 中每一行码字的长度,Bnew 表示根据
概率矩阵 P 降序排列后的元素。
实现:首先构造一个六行的 Huffman 树,第一行存放结点编号,第二行存放该
结点的概率值,第三行记录该结点的父结点,第四行记录该结点是左结点还是右结
点,第五行标记该结点是否为父结点,第六行存放概率 P 降序排列后的新矩阵。然
后根据 Huffman 树记录的编码过程,完成对 B 的编码和对 Str 的编码。
产生生成矩阵和监督矩阵部分([G,H]=GH()):
函数功能:产生(15,11)码生成矩阵 G 和监督矩阵 H;
函数参数:无;
函数返回值:生成矩阵 G 和监督矩阵 H;
实现:将单位矩阵与监督矩阵分开完成,然后再合并到一起。首先生成两个大
小分别为(4,4)和(11,11)的单位矩阵;然后在利用循环生成监督矩阵,方法如下:
将 3 至 15 除了 4 和 8 之外的这十一个数分别调用 dextobin 函数将其转换成二进制
数,这些二进制数即作为监督元。
将监督元直接附在(11,11)单位矩阵的后面即可得到生成矩阵 G,将监督元转置
剩余14页未读,继续阅读
资源评论
xxpr_ybgg
- 粉丝: 6759
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功