信息论与编码课程设计

您所在的位置:网站首页 算术编码流程图 信息论与编码课程设计

信息论与编码课程设计

2024-07-11 06:31| 来源: 网络整理| 查看: 265

霍夫曼编码是一种无损的统计编码方法,利用信息符号概率分布特性来改编字长进行编码。适用于多元独立信源。霍夫曼编码对于出现概率大的信息符号用字长小的符号表示,对于出现概率小的信息用字长大的符号代替。如果码字长严格按照所对应符号出现的概率大小逆序排列,则编码结果的平均字长一定小于其他排列形式。

霍夫曼编码的具体步骤如下:

1)将信源符号的概率按减小的顺序排队。

2)把两个最小的概率相加,并继续这一步骤,始终将较高的概率分支放在右边,直到最后变成概率。

3)画出由概率1处到每个信源符号的路径,顺序记下沿路径的0和1,所得就是该符号的霍夫曼码字。

4)将每对组合的左边一个指定为0,右边一个指定为1(或相反)。

对称加密

对称加密算法 是应用较早的加密算法,又称为 共享密钥加密算法。在 对称加密算法 中,使用的密钥只有一个,发送 和 接收 双方都使用这个密钥对数据进行 加密 和 解密。这就要求加密和解密方事先都必须知道加密的密钥。

数据加密过程:在对称加密算法中,数据发送方 将 明文 (原始数据) 和 加密密钥 一起经过特殊 加密处理,生成复杂的 加密密文 进行发送。

数据解密过程:数据接收方 收到密文后,若想读取原数据,则需要使用 加密使用的密钥 及相同算法的 逆算法 对加密的密文进行解密,才能使其恢复成 可读明文。

信道编码

编码过程

​ 在编码时,首先需要根据给定循环码的参数确定生成多项式g(x),也就是从F(x)的因子中选一个(n-k)次多项式作为g(x);然后,利用循环码的编码特点,即所有循环码多项式A(x)都可以被g(x)整除,来定义生成多项式g(x)。 据上述原理可以得到一个较简单的系统:设要产生(n,k)循环码,m(x)表示信息多项式,循环码编码方法,则其次数必小于k,而m(x)的次数必小于n,用m(x)除以g(x),可得余数r(x),r(x)的次数必小于(n-k),将r(x)加到信息位后作监督位,就得到了系统循环码。下面就将以上各步处理加以解释。 (1)用x的乘m(x)。这一运算实际上是把信息码后附加上(n-k)个“0”。例如,信息码为110,而希望的到得系统循环码多项式应当是A(x) = \(x^n\)·m(x) + r(x)。 (2)求r(x)。由于循环码多项式A(x)都可以被g(x)整除,因此,用·m(x)除以g(x),就得到商Q(x)和余式r(x),这样就得到了r(x)。 (3)编码输出系统循环码多项式A(x)为:这时的编码输出为:1100101。 上述三步编码过程,在硬件实现时,可以利用除法电路来实现,这里的除法电路采用一些移位寄存器和模2加法器来构成。下面将以(7,4)循环码为例,来说明其具体实现过程。设该(7,4)循环码的生成多项式为:g(x)= \(x^3\)+\(x\)+1,则构成的系统循环码编码器如图8-6所示,图中有4个移位寄存器,一个双刀双掷开关。

​ 当信息位输入时,开关位置接“2”,输入的信息码一方面送到除法器进行运算,一方面直接输出;当信息位全部输出后,开关位置接“1”,这时输出端接到移位寄存器的输出,这时除法的余项,也就是监督位依次输出。 顺便指出,由于数字信号处理器(DSP)和大规模可编程逻辑器件(CPLD和FPGA)的广泛应用,目前已多采用这些先进器件和相应的软件来实现上述编码。

译码过程 对于接收端译码的要求通常有两个:检错与纠错。达到检错目的的译码十分简单通过判断接收到的码组多项式B(x)是否能被生成多项式g(x)整除作为依据。当传输中未发生错误时,也就是接收的码组与发送的码组相同,即A(x)=B(x),则接收的码组B(x)必能被g(x)整除;若传输中发生了错误,则A(x)≠B(x),B(x)不能被g(x)整除。因此,可以根据余项是否为零来判断码组中有无错码。 需要指出的是,有错码的接收码组也有可能被g(x)整除,这时的错码就不能检出了。这种错误被称为不可检错误,不可检错误中的错码数必将超过这种编码的检错能力。 在接收端为纠错而采用的译码方法自然比检错要复杂许多,因此,对纠错码的研究大都集中在译码算法上。 我们知道,校正子与错误图样之间存在某种对应关系。如同其它线性分组码,循环编码和译码可以分三步进行:

(1)由接收到的码多项式B(x)计算校正子(伴随式)多项式S(x);

(2)由校正子S(x)确定错误图样E(x);

(3)将错误图样E(x)与B(x)相加,纠正错误。

​ 上述第(1)步运算和检错译码类似,也就是求解B(x)整除g(x)的余式,第(3)步也很简单。因此,纠错码译码器的复杂性主要取决于译码过程的第(2)步。

​ 基于错误图样识别的译码器称为梅吉特译码器,它的原理图如图8-7所示。错误图样识别器是一个具有(n-k)个输入端的逻辑电路,原则上可以采用查表的方法,根据校正子找到错误图样,利用循环码的上述特性可以简化识别电路。梅吉特译码器特别适合于纠正2个以下的随机独立错误。

​ k级缓存器用于存储系统循环码的信息码元,模2加电路用于纠正错误。当校正子为0时,模2加来自错误图样识别电路的输入端为0,输出缓存器的内容;当校正子不为0时,模2加来自错误图样识别电路的输入端在第i位输出为1,它可以使缓存器输出取补,即纠正错误。

​ 循环码的译码方法除了梅吉特译码器以外,还有补错编译码、大数逻辑编译码等方法。捕错译码是梅吉特译码的一种变形,也可以用较简单的组合逻辑电路实现,它特别适合于纠正突发错误、单个随机错误和两个错误的码字。大数

​ 逻辑译码也称为门限译码,这种译码方法也很简单,但它只能用于有一定结构的为数不多的大数逻辑可译码,虽然在一般情形下,大数逻辑可译码的纠错能力和编码效率比有相同参数的其它循环码(如BCH码)稍差,但它的译码算法和硬件比较简单,因此在实际中有较广泛的应用。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3