无线通信基础课程设计报告
(信道编码)
小组成员:
指导老师:
完成时间:
无线通信系统课程设计报告
实验摘要:数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从
而使接收端产生图象跳跃、不连续等现象。
信道编码通过对数码流进行相应的处理,使系统具有一定的检错和纠错能力,可极大地避免码流传送中误码的发生。
提高数据传输可靠性,降低误码率是信道编码的任务。
实验名称:信道编码
实验目标:本实验的目标是领会信道编码的基本思想。
并通过比较有无信道编码模块的
不同系统误码率性能,感受信道编码技术对于提高系统性能的重要意义。
实验原理:打开“Channel_Coding_74.vi”前面板如图1所示,打开程序框图并理解参与
信道编码的整个数据流。
程序包含上下两个独立的部分如图2所示,下面部分是生成误码率曲线如图1(b),其结构和上面部分类似,你只需要关注上面部分程序即可;上面部分代码大致可由做7个模块组成,每一模块完成一项功能。
你负责的是这个实验的“编码和解码”功能。
这些模块为:
1、读取图片
LabVIEW提供了一个能够读取JPEG格式的图像并输出图像数据的模块。
提供的还原像素图.vi完成图像数据到一维二进制数据的转换(图像数据→十进制二维数组→二进制一维数组),输出信源比特流。
(a)实验操作部分(b)误码率曲线
图1 前面板
2、信道编码
我们的下一个目标是对信源比特流进行信道编码。
信道编码方案很多,线性分组码、卷积码、LDPC码等等;这里我们采用简单的(7,4)线性分组码。
图2 程序框图
线性分组码是一类重要的纠错码。
在(n ,k )线性分组码中,常用到能纠正一位错误的汉明码。
其主要参数如下:
码长:
21m
n =-; 信息位:21m
k m =--; 校验位:m n k =-; 最小距离: d = 3; 纠错能力: t = 1;
本次实验需要用到的是(7,4)分组码,属系统码,前四位为信息位,后三位为冗余位。
3、BPSK 调制
上一步得到的是二进制的信息比特流,需要采用一定的调制方案,将二进制的信息比特
映射成适合信道传输的符号。
这里我们采用最简单的BPSK 调制:将信息0映射为幅值为1的信号,信息1映射为幅值为-1的信号,如图3所示。
(1,0)=0
图3 BPSK 映射图
4、加高斯白噪声
根据给定的信噪比(dB),信号功率和编码速率,计算高斯白噪声的功率,生成和信号数组相同长度的高斯白噪声数组,叠加到信号上,模拟信号经过加性高斯白噪声信道的情况。
在本模块中你需要设定信噪比。
5、BPSK 解调
接收端一侧首先要进行BPSK 解调(注意,接收机要想进行BPSK 的解调,还必须找到发送端BPSK 调制时的映射方式)。
6、信道解码
上一步完成后得到二进制数组,本模块根据74码的生成矩阵得到其校验矩阵,并完成74码的解码,得到恢复的信息流。
7、重建图片
将上步得到的信息流转换成二维的JPEG 数组,使用“绘制还原像素图.vi ”重建图片。
实验内容:
任务1
实现汉明(7,4)码的编、解码,即完成encode_74.vi 和decode_74.vi 的设计。
1) 编码
令(7,4)分组码的生成矩阵为矩阵G 如下:
根据生成矩阵,输出码字可按下式计算: 所以有: 信息位冗余位
由以上关系可以得到(7,4)汉明码的全部码字如表1所示。
1000110010001100101110001101G ⎡⎤
⎢⎥
⎢
⎥=⎢⎥⎢⎥⎣⎦
3210321010001100100011(,,,)(,,,)00101110001101b a a a a G a a a a ⎡⎤
⎢⎥
⎢
⎥=∙=∙⎢⎥⎢⎥⎣⎦
63
52
41
30
b a b a b a b a ====2310
1321
0210
b a a a b a a a b a a a =⊕⊕=⊕⊕=⊕⊕
表1 (7,4)汉明码的全部码字
2) 译码
(7,4)汉明码的译码将输入的7位汉明码翻译成4位的信息码,并且纠正其中可能出现的一个错误。
由于生成矩阵G 已知且G = [I k Q ] ,可以得到矩阵Q 的值
110011111101T Q P ⎡⎤⎢⎥
⎢
⎥==⎢⎥⎢⎥⎣⎦
又因为T
P Q =则:
101111100111P ⎡⎤
⎢⎥=⎢⎥
⎢⎥⎣⎦
而校验矩阵H 满足 H =[P I r ] ,则:
101110011100100111001H ⎡⎤
⎢⎥=⎢⎥
⎢⎥⎣⎦
由校正子S = BH T =(A + E )H T = EH T 可以看出校正子S 与错误图样E 是一一对
应的。
通过计算校正子得到对应的错误图样,根据式子A =B + E 便可得到纠正了一位可能错误的信息位,完成解码。
任务2
比较采用编码方式和不采用编码方式,系统的误码率性能,观察并分析实验现象并得出
实验步骤及结果分析:
打开文件“Channel_Coding_74.vi”,对文件进行加噪处理,得到下面的图一
图一
对信号进行加噪和编码我们得到图二
图二
由图一,图二我们可以看到经过信道编码后的图形的清晰度比不编码的图形高很多,同时我们观察误码率同样可以看到不进行信道编码时,信号传输的误比特率比较高,而当进行信道编码后信号传输的误码率明显下降。
我们从这个实验可以很清晰地观察到信道编码的作用。
下面我们观察编码和解码的程序了解编码和解码的过程
编码的程序图三:
图三
从图中我们可以看出,信息流经过统计数值大小,在经过数组重排,将信息流排列成矩阵形式,然后与生成矩阵相乘实现信道编码,然后将相乘的结果进行二进制转换变成二进制数,最后输出一组七位的数据流,即编码后的数据。
译码程序图四:
图四
从程序中我们可以看出,经过编码后的数据流在解码程序里面首先经过排列成矩阵,与校验矩阵相乘生成校验子,即实现编码;然后根据求校验子模的大小,根据模的大小判断出校验矩阵的那一列出现错误,即哪一位信息位出现了解码的错误,实现检错;然后将从公式中输出的数据流与编码输出后的数据流进行异或实现纠错。
实验心得:
通过本次试验我有了以下几方面的收获:
首先是内容上,我通过自己编程,摸索LabVIEW的使用方法,经过自己的努力和他人的帮助掌握了这个软件的基本的用法,其次通过用实验模拟编码过程,我亲身体验了信道编码的实
际的效果,知道信道编码可以降低信号传输的误比特率,让信号传输更加真实有效;同时这让我认为离我们比较遥远的课本知识变得真切起来,让我觉得我们所学的知识的实际用途和存在价值。
最后我知道通过信道编码的具体的流程,通过对试验程序的分析我了解了信息流怎么通过信道,同时信息流又是怎样被编码和解码出来最终到达输出。
其次是动手能力的加强,首先在实验室的操作让我从对LabVIEW一无所知到能够对这款软件有个基本的掌握,并且能够用它做出一些小的程序,我觉得这个过程很珍贵很值得珍惜,我从这个试验中得到了提高,不仅仅是知识上的而且是能力上的提高。
信道编码实验的实际操作,巩固了我对课本知识的认知,将原有的虚无缥缈的理论带入实际进行演示,使得我能够更好的理解课程中的元素。
此外,实验也锻炼了我的动手能力和纠错能力,遇见的诸多不顺、问题,在疑惑、改进、解决中,我也得到了升华和探索科学的喜悦。
当然,这与老师无微不至的关心和细致入微的讲解也是分不开的。
感谢这门课,也非常感谢老师的教导。
我相信无论以后做什么实验,只要我用心去研究它去学习他它,最后的结果肯定不会差的。