廉小亲 丁驭岚 黄钰典 王茹逸 关文洋
(北京工商大学 人工智能学院, 北京 100048)
“信息论与编码”是信息工程、通信工程等电子信息类专业的一门重要的专业基础课程,是在电子通信领域,无论是理论研究还是工程应用都离不开的一门课程[1-3]。该课程涉及许多数学知识如:概率论及统计、线性代数等,其知识内容复杂且抽象,因此在课程教学过程中需要将理论教学和实践教学相结合,以保证学生对于理论知识掌的全面且扎实[4-5]。目前北京商业大学“信息论与编码”课程教学计划36学时,实验课内容12学时,旨在教授学生的基础理论知识的同时,引导学生分析和解决问题,从而巩固理论知识,锻炼动手实践的能力,为学生未来从事电子通信领域的相关工作打下良好的基础。
信道编码中的汉明码是“信息论与编码”课程中的重要内容。汉明码属于差错控制编码,即在原有信息序列的基础上通过增加冗余比特来提高信息传输的可靠性[6]。在众多类型的差错控制编码中,完备码的特性决定了所有在纠错能力范围内的差错图案都能用最佳译码器得到纠正,因此完备码在各类信道编码的应用中受到广泛欢迎。而汉明码是一种纠错能力t=1的经典完备码,加深学生对汉明码编译码原理的理解,有助于学生打好差错控制编码的基础。
以汉明码理论为基础,设计音频信号的汉明码编译码系统综合实验案例,旨在通过案例式教学激发学生学习的积极性和主动性,有效培养学生学习能力、协作能力以及利用数学工具解决工程问题的能力,达到OBE教育模式下的课程目标。
对于3.8 s长度的音频文件,设计音频信号的汉明码编译码系统综合实验案例,实现音频信号的汉明码编译码过程;
在此基础上,在汉明码编码系统中加1位或2位错后,研究汉明码编译码系统的纠错性能。综合实验案例设计流程如图1所示。
图1 综合实验案例设计流程
该案例的编程环境是Matlab。由于音频信号是模拟信号,而汉明码编码针对的是数字信号,所以首先利用PCM编码对输入的音频信号进行预处理;
然后利用Matlab通信工具箱汉明码编译码函数或基于Matlab设计汉明码编译码函数两种方式实现对音频信号的汉明编码;
随后,对经过汉明编码的音频信号进行加错处理,以模拟信道传输中的噪声干扰;
最后利用Matlab通信工具箱汉明码编译码函数或基于Matlab设计的汉明码编译码函数进行汉明码译码与纠错,进而进行PCM译码,通过将音频原声与信道接收端译码后的音频信号进行对比,研究汉明码的纠错能力。
案例要求学生利用Matlab通信工具箱函数、基于Matlab设计的编译码函数两种方式实现对音频信号的汉明码编译码过程。第一种方式可以使得学生快速建立音频通信系统的总体概念,第二种方式可以使得学生进一步加强对汉明编码译码过程的理解,进而增强学生的综合知识应用能力。
2.1 汉明码编码原理
(m,k)汉明码是纠错能力t=1的线性分组码的统称,也是一种纠单错的完备码,该编码通过在原信息序列中插入m位监督位,保障编码的纠错能力[7]。汉明码的码长m和信息位数k服从式(1)所示规律。
(m,k)=2m-1,2m-1-m
(1)
式(1)中,m为监督位数,m=n-k。
以(7,4)汉明码为例说明汉明码编码原理。假设生成矩阵G如式(2)所示。
(2)
给定式(3)所示的信息序列M后,根据式(4)可计算得到该信息序列M相应的汉明码字C。
M=m3m2m1m0
(3)
C=M·G=(c6c5c4c3c2c1c0)
(4)
由于信息序列的长度k=4,因此根据式(4)得到的码字共有16个,码字中各码元与信息位之间的关系如式(5)所示,16个码字与信息序列对应关系如表1所示。
(5)
表1 码字C与信息序列M的对应关系
2.2 汉明码译码原理
由式(2)所示的生成矩阵G,根据式(6)所示的生成矩阵G与校验矩阵H之间的关系,得到校验矩阵H如式(7)所示。式(6)中O代表一个尺寸为4*3的零矩阵。
G·HT=O
(6)
(7)
设接收序列R如式(8)所示,相对应的发送码字为C,则E=R-C或E=R+C称为差错图案,定义E如式(9)所示。
R=(r6r5r4r3r2r1r0)
(8)
E=(e6e5e4e3e2e1e0)
(9)
定义伴随式S如式(10)所示。
S=RHT=EHT
(10)
已知CHT=O,其中O代表一个1×3的行向量,式(10)可简化为:
S=RHT=EHT
(11)
式(11)中定义RHT的运算结果为伴随式S=(s2s1s0),可以通过伴随式来检验传输是否出错,并进行相应的纠错。
若接收序列R是所发码字,则意味着在信道传输过程中,没有发生差错,则满足关系式S=RHT=CHT=(0 0 0)。反之,若发生差错,则可通过表2所示的伴随式与差错图案对应关系的译码表进行译码。
假设R=(1000110),得到伴随式S=(001),通过表2可以查到E=(0000001),进而得到所发码字的估计值C′=(1000111)。
表2 译码表
由于E有27=128种可能错误图样,但S只有8种图样,因此S的每一种图样对应的差错图案 量有16种,即如果要纠错的话,根据S的值可以有16种可能的纠错方案。一般情况下取这16种图案中码重最小的图样,因为同样情况下,误码个数越多,概率越小[8]。
3.1 基于通信工具箱函数的综合实验案例
利用Matlab功能函数encode()和decode()来实现汉明码编译码系统,系统实现的具体流程如下:
(1)导入待编码的原始音频信号,并对音频信号进行PCM编码,即对音频信号进行抽样、量化与编码。
(2)调用功能函数encode()对PCM编码结果进行汉明编码。
(3)对汉明编码结果随机加1位或2位错码,以模拟码字在噪声信道的传输过程。
(4)调用功能函数decode()对加噪处理的编码进行汉明码译码与纠错。
(5)对汉明码译码的结果进行PCM译码,将其还原为模拟信号,便于与原音频序列对比。
3.2 基于自编函数的综合实验案例
利用Matlab自编汉明码编译码函数实现汉明码编译码系统,系统实现的具体流程如下:
1)导入音频文件并实现PCM编码
导入待编码的原始音频信号,并对音频信号进行PCM编码,即对音频信号进行抽样、量化与编码。
2)调用Matlab自编汉明编码函数,得到PCM编码结果的汉明码码字
定义生成矩阵G如式(2)所示;
以PCM编码结果为信息序列M,利用式(4)计算PCM编码结果的汉明码码字。
3)对汉明码编码结果进行加噪处理
对汉明编码结果随机加1位或2位错码,以模拟码字在噪声信道的传输过程。
4)计算伴随式并对信道接收序列进行纠错处理
针对信道接收序列,利用式(7)所示的校验矩阵,由式(11)计算得到伴随式,并根据表2的译码表得到伴随式对应的错误图案,将错误图样E与汉明码接收序列R相加,得到纠错结果C′。
5)获取汉明码译码结果
取汉明码纠错结果的前4位,即为译码结果。
6)进行PCM译码并生成音频文件
对汉明码译码得到一系列码字的前4位进行译码,经组合生成音频文件。通过将原始音频与译码后的音频对比分析汉明码编译码的性能。
4.1 基于通信工具箱函数的案例实现效果
对一段3.8 s的音频信号进行PCM编码,然后通过Matlab工具箱函数实现汉明码编码后,再加入1位、2位错位,随后分别进行汉明码译码和PCM译码,最后合成新的音频信号。图2(a)为原始音频信号,图2(b)为信道加入1位错位情况下进行纠错后PCM译码的音频信号。
(a)原始音频
(b)纠错后PCM译码的音频(信道加1位错)图2 原始音频和纠错后PCM译码的音频
图2中横坐标表示音频信号采样点,纵坐标表示为音频信号幅值。由图2(a)、图2(b)对比可知,插入1位错后,纠错后PCM译码得到的音频信号波形与原始信号基本一致。播放处理后的音频文件与原音频文件比较,还原度较高,但清晰程度略有下降。信道加入2位错位情况下进行纠错后PCM译码的音频信号完全模糊,无法辨别,故这里未展示音频信号的黑白波形。
4.2 基于自编函数的案例实现效果
案例实验要求同4.1节,这里基于Matlab自编函数实现汉明码编译码的过程。图3(a)为原始音频信号,图3(b)为信道加入1位错位情况下进行纠错后PCM译码的音频信号,图3(c)为信道加入2位错位情况下进行纠错后PCM译码的音频信号。
(a)原始音频
(b)纠错后PCM译码的音频(信道加1位错)
(c)纠错后PCM译码的音频(信道加2位错)图3 原始音频和纠错后PCM译码的音频
由图3(a)、图3(b)对比可知,插入1位错情况下,纠错后PCM译码得到的音频信号波形与原始信号基本一致。播放处理后的音频文件与原音频文件比较,还原度较高,但清晰程度略有下降。
由图3(a)、图3(c)对比可知,插入2位错后,无法得到正确的译码结果。较原音频信号,译码后的音频完全模糊,无法辨别。但是自编函数实现汉明码编译码过程的方式,PCM译码后的音频信号黑白波形比使用工具箱的汉明编译码函数这种方式显示的效果较好。
4.3 案例总结
在插入1位错位的情况下,两种方式获得译码后的音频信号与原信号的波形基本一致,说明该汉明码对于信道中错1位的情形能够纠错。较原音频信号,由于音频模拟信号数字化、数字化音频还原的问题,两种方式译码的清晰度有些许下降。
在插入2位错位的情况下,两种方式无法得到正确的译码结果。较原音频信号,纠错译码后的音频结果完全模糊,无法辨别,说明该汉明码对于信道中错2位的情形不能正确纠错,因为该汉明码只具有纠单个错误的能力。
北京工商大学“信息论与编码”课程团队经过多年教学,积累了丰富的教学资源,在信源编码、信道编码及信息安全等方面已设计了多个实验教学案例。以信道编码中的音频信号汉明码编译码系统为例,详细介绍了汉明码的编译码原理,并给出了综合实验案例基于Matlab通信工具箱汉明码编译码函数及自编汉明码编译码函数的两种实现方式。第一种方式学生们上手快,可以快速地建立音频汉明码编译码通信系统的总体概念;
第二种方式学生们通过自编汉明码编解码函数可以更好地理解并全面地掌握汉明码编译码理论知识及其应用的方法。
该案例经过了3届信息工程专业学生的实践。结果表明:学生们对汉明码的纠错原理理解透彻,将汉明码编译码理论应用于音频通信系统的能力大大增强,学习“信息论与编码”课程的兴趣浓厚。
猜你喜欢码字译码信道基于扩大候选码元范围的非二元LDPC加权迭代硬可靠度译码算法沈阳工业大学学报(2021年6期)2021-11-29信号/数据处理数字信道接收机中同时双信道选择与处理方法火控雷达技术(2021年2期)2021-07-21分段CRC 辅助极化码SCL 比特翻转译码算法现代电子技术(2021年7期)2021-04-08基于校正搜索宽度的极化码译码算法研究现代计算机(2021年36期)2021-03-14放 下扬子江诗刊(2018年1期)2018-11-13数据链系统中软扩频码的优选及应用舰船电子对抗(2018年3期)2018-08-28放下扬子江(2018年1期)2018-01-26一种无人机数据链信道选择和功率控制方法北京航空航天大学学报(2017年3期)2017-11-23基于导频的OFDM信道估计技术北京信息科技大学学报(自然科学版)(2016年5期)2016-02-27LDPC 码改进高速译码算法遥测遥控(2015年2期)2015-04-23