基带传输中的信道编码和信源编码

1 篇文章 0 订阅

最近因为通信的作业,老师要求我们去实现信道加密和信源的几种方式,因为其中的HDB3编码耗费了我有一会儿功夫,所以记录一下

相关概念
信道编码

由于移动通信存在干扰和衰落,在信号传输过程中将出现差错,故对数字信号必须采用纠、检错技术,即纠、检错编码技术,以增强数据在信道中传输时抵御各种干扰的能力,提高系统的可靠性。对要在信道中传送的数字信号进行的纠、检错编码就是信道编码。

信源编码

针对信源输出符号序列的统计特性来寻找某种方法,把信源输出符号序列变换为最短的码字序列,使后者的各码元所载荷的平均信息量最大,同时又能保证无失真地恢复原来的符号序列。

基带传输:

模拟信号----(信源编码)---->数字基带信号

将这种信号经过码型编码,不经过调制,直接送到信道传输,成为数字信号的基带传输。

频带传输:

发送端:数字基带信号----(数字调制器调制)---->数字载波信号,再进行传输。

接收端---- (相应的数字解调器进行解调) ---->恢复成数字基带信号。

这种经过调制和解调和数字信号传输方式称为数字信号的频带传输。

基带传输系统模型

数字传输系统模型

信道编码

信道编码有很多种,针对于不同传输方式也不同,常用的基带传输编码方式有:

  1. AMI
  2. CMI
  3. Hdb3
AMI:

(Alternative Mark Inversion)信号交替码,"0"码不变,“1”码交替编码,所以因为其如果碰到长连“0”的情况的话就会导致接受信号的地方如示波器等其波型一直不变,无法判断究竟是死机了还是其他情况,所以被Hdb3所取代。

CMI

CMI(Coded Mark Inversion)码是传号反转码的简称,其编码规则是“1”码交替用“11”和“00”两位码表示,“0”码固定地用“01”表示。

Hdb3:

(High Density Bipolar of Order 3 code)三阶高密度双极性码。因为Hdb3是我这三个里面花费时间最多写的一个编码,所以这里着重说一下我自己的个人理解:Hdb3是用来取代AMI,就如同之前所说的AMI如果碰到了长连“0”的情况的话就可能导致波型不变,所以Hdb3在长连“0”情况上制定了以下规则:
1.如果数字信号中没有四连“0”(连续出现4个0)的情况的话,其编码和AMI一样
2.如果数字信号中有四连:“0”的情况,那么将第一次出现四连“0”的地方:0000变成000V,q这里的“V"代表”1"电平,也就是我们的的高电平码,而第二次碰到0000的时候我们就要在此考虑:这里有两种情况:

  • 0000变成000V
    如果两个“V”,也就是第一次出现四连“0”和第二次出现四连"0"的情况之间有奇数个“1"码,那么此时0000变成000V,其中的"V"代表"1"

  • 0000变成B00V
    如果两个“V”之间有偶数个“0”,那么这里的“0000”变成“B00V”,其中"B"和"V"的极性一样,所以这里的极性就主要取决于“B”的极性,那么我们的“B”的极性怎么判断呢?

     "B"的极性和它前面相邻的那个“1”的极性相反。
    

信源编码

在这里插入图片描述
信源编码的意义就是在于将我们的信息(也就是我们所说的信源)通过一定的编码规则,将信息转化成“0”和“1”的序列。

常用的信源编码
  • 香农编码
  • 费诺编码
  • 哈夫曼编码
香农编码:

香农编码
香农编码的例子:
example
香农编码算法实例:
算法实例

费诺编码:

费诺编码的方法在我看来就是二分法,将我们的信号出现的概率大小依次排序,按照将概率等分的原则,分成“0”和“1”码元,如此循环,直到最后。看图理解:
费诺编码

哈夫曼编码

这个可能就是最熟悉的编码了吧,因为在数据结构中有哈夫曼树,其规则想必大多数人都记得,就是将我们的值,从最小的开始,两两结合产生新值,再将这个值做放进去做同样的操作即可,构成了一棵二叉树。
看图理解:
哈夫曼编码
为什么会有两种呢?

  • 哈夫曼编码方法得到的并非是唯一的,每次对信源缩减时,赋予信源最后两个概率最小的符号,用“0”和“1”可以是任意的,所以可以得到不同的哈夫曼码,但不会影响码字的长度。
  • 对信源进行缩减时,两个概率最小的符号合并后的概率与其他信源符号的概率相同时,这两者在缩减信源中进行概率排序,其位置放置顺序是可以任意的,故也会得到不同的哈夫曼码。(一般将合并的概率放在上面,可以得到较小的马方差)。

产生的哈夫曼树
哈夫曼树
总结:
以上就是通信技术课上老师主要讲的6中编码方式啦,如果需要实现代码,可以访问GitHub

  • 11
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值