文档库 最新最全的文档下载
当前位置:文档库 › 四相差分编译码实验

四相差分编译码实验

四相差分编译码实验
四相差分编译码实验

实验报告

课程名称: 通信原理实验 指导老师: ______成绩:__________________

实验名称: 四相差分编译码联合实验 实验类型: 设计探究型 同组学生姓名: / 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得

一、实验目的

(1)学习解差分编译码电路在数字通信中的应用。 (2)学习QPSK 调制解调器结构。

(3)掌握差分编译码电路原理及硬件实现方法。

二、实验原理

四相解差分译码实验是在差分编码实验基础上进行的,下图为差分编译码联合实验框图:

由于QPSK 信号具有四种状态,故每种状态可表示两位二进制信息: 00° → 00 45° → 00 90° → 01 或 135°→ 01 180°→ 11 225°→ 11 270°→ 10 315°→ 10

这是一种循环码的相位逻辑。因此这种正交调制器的差分编码器也应是循环码的差分编码器。

四相差分译码的规则是:

1

10K K b a

--⊕=相相

1

1

--⊕=⊕=K

K K K

K K b b b a a a 相相绝相相绝

1

11K K b a

--⊕=相相

1

1

--⊕=⊕=K

K K K

K K a a b b b a 相相绝相相绝

根据以上译码规则得到的四相差分译码器的原理框图,如下图所示:

三、主要仪器设备

PC机、通信基础实验箱、100MHz示波器

四、实验主要步骤

4.1在MAXP LUS II设计平台下进行电路设计

差分编译码实验电路下图所示,由编码电路和译码电路两部分组成,主要包括分频器、伪随机码发生器、

串并变换、四相差分编码、四相差分译码和并串变换这几部分电路:

上图中的串并变换和差分编码电路可以分别用模块库中的sp和ccodera模块替代,差分译码和并串变换电路可以分别用dcodera和ps替代。用模块替换后的电路如下图所示:

4.1.1完成原理图输入后按以下步骤进行编译

1) 在Assign Device菜单选择器件MAX7128SLC84,

2) 在Assign Device Globl project device option菜单中选择Enable JTAG Support。

3) 第一次编译时一般采用让MaxplusII自动进行引脚分配。

4) 编译后进行引脚回注(Back-Annotate ),经过引脚回注后电路图上会显示自动分配的引脚号。

5) 定义实验板所要求的输入时钟引脚和输出测试引脚,然后再次进行编译。

引脚修改方法如下:双击clk 时钟输入引脚元件中的回注引脚号,MAXPLUS II会弹出一对话框,可方便进行修改。

将电路图中所有引脚修改成实验板要求的引脚,然后再次进行编译。

4.1.2FPGA引脚定义

CLK16M 83脚(高频时钟输入)

CLK 37脚(8.4672MHz时钟输出)

NRZ 39脚(内部NRZ信号源)

CLKN2 40脚(4.2MHz时钟输出)

CODX 48脚(差分编码输出)

CODY 49脚(差分编码输出)

NRZ0UT 51脚(差分译码输出)

4.1.3在MAXPLUSⅡ环境下完成电路的仿真

1) 在MAXPLUSⅡ菜单下选择Waveform Editor,出现一波形编辑窗口。

2) 在Node菜单下选择Enter nodes from SNF,点击List,加入要仿真的所有节点。

3) 加入时钟激励:在Option菜单下选Grid Size,出现对话框后键入相应的纳秒(ns)数,例如10ns(对应周期为6.25ns,即16M)。在File菜单下选End Time,键入仿真时间,例如10us。

4) 在MUXPLUSⅡ菜单下选Simulator,出现仿真对话框后,点击Start,开始仿真。注意:进行仿真前一

定要先保存。

4.1.4仿真波形如下图所示

可得出仿真波形与理论上是一致的。

4.2实验板设置

在进行不同实验时,首先要对实验板上硬件进行简单设置,以符合各种信号输入和各种实验结果测试要求。

硬件实验步骤为:接通晶体振荡器电源→将16.9M时钟连接到FPGA全局时钟脚→将实验电路配置到FPGA芯片中→进行实验测量。

具体步骤如下:

(1)接通SW_6(用短路块),晶体振荡器X1产生16.9344M时钟信号,T8为该时钟频率的测试点。

(2)将拨动开关“K2”的“1”脚置于“ON”位置,将16.9344MHz时钟信号送到FPGA第83脚(全局时钟脚)。

(3)接通SW_6晶振电源。

4.3将实验电路nrz.pof文件配置到FPGA芯片

1)将BYTBLASTER一端连接到计算机并行口,另一端连接到实验板BYTBLASTER口。

2)打开电源开关K1,注意SW_13为FPGA电源跳线,应接通。

3)在MAXPLUS II菜单下选Programmer然后按Program开始下载。

4.4实验测试

下载成功后,可用示波器测试以下各点波形:

五、实验数据处理与分析

测试波形如下:

(1)T8 16.9344MHz时钟信号

观察时钟信号为16.935MHz (2)T5

(3)T15 8.4672MHz时钟

观察时钟信号为8.4678MHz (4)T16 NRZ 码

(5)T17 4.2MHz 时钟输出

观察时钟频率为4.2334MHz (6)T18 差分编码输出

X

(7)T19 差分编码输出

Y

与仿真波形一致。 (8)T20 差分编码输出

与输入NRZ 码对比,观察可发现输入与输出波形一致,只是输出波形有些延迟,和理论相符。

六、实验心得

这次实验主要学习了四相差分编译码原理,复习巩固了之前理论课程中的知识,对译码规则有了更深的认识,通过对软件的仿真和FPGA 的下载实现,对MAXPLUS II 软件和开发板的使用更加熟悉。

汉明码编译码

汉明码编译码 一设计思想 汉明码是一种常用的纠错码,具有纠一位错误的能力。本实验使用Matlab平台,分别用程序语言和simulink来实现汉明码的编译码。用程序语言实现就是从原理层面,通过产生生成矩阵,错误图样,伴随式等一步步进行编译码。用simulink实现是用封装好的汉明码编译码模块进行实例仿真,从而验证程序语言中的编译码和误码性能分析结果。此外,在结合之前信源编码的基础上,还可实现完整通信系统的搭建。 二实现流程 1.汉明码编译码 图 1 汉明码编译码框图 1)根据生成多项式,产生指定的生成矩阵G 2)产生随机的信息序列M 得到码字 3)由C MG 4)进入信道传输 S RH得到伴随式 5)计算=T 6)得到解码码流 7)得到解码信息序列 2.汉明码误码性能分析 误码率(SER)是指传输前后错误比特数占全部比特数的比值。 误帧率(FER)是指传输前后错误码字数占全部码字数的比值。 通过按位比较、按帧比较可以实现误码率和误帧率的统计。

3. 构建完整通信系统 图 2 完整通信系统框图 三 结论分析 1. 汉明码编译码 编写了GUI 界面方便呈现过程和结果。 图 3 汉明码编译码演示GUI 界面 以产生(7,4)汉明码为例说明过程的具体实现。 1) 根据生成多项式,产生指定的生成矩阵G 用[H,G,n,k] = hammgen(3,'D^3+D+1')函数得到系统码形式的校验矩阵H 、G 以及码字长度n 和信息位数k 100101101011100010111H ????=?????? 1 10100001101001 1100101 010001G ????? ?=?? ?? ?? 2) 产生随机的信息序列M 输入信息序列 Huffman 编码 Hamming 编码 信道Hamming 译码 Huffman 译码输出信息序列噪声

汉明码编译码实验

汉明码编译码实验 一、实验目的 1、掌握汉明码编译码原理 2、掌握汉明码纠错检错原理 二、实验内容 1、汉明码编码实验。 2、汉明码译码实验。 3、汉明码纠错检错能力验证实验。 三、实验器材 LTE-TX-02E通信原理综合实验系统----------------------------------------------模块8 四、实验原理 在随机信道中,错码的出现是随机的,且错码之间是统计独立的。例如,由高斯白噪声引起的错码就具有这种性质。因此,当信道中加性干扰主要是这种噪声时,就称这种信道为随机信道。由于信息码元序列是一种随机序列,接收端是无法预知的,也无法识别其中有无错码。为了解决这个问题,可以由发送端的信道编码器在信息码元序列中增加一些监督码元。这些监督码元和信码之间有一定的关系,使接收端可以利用这种关系由信道译码器来发现或纠正可能存在的错码。在信息码元序列中加入监督码元就称为差错控制编码,有时也称为纠错编码。不同的编码方法有不同的检错或纠错能力。有的编码就只能检错不能纠错。 那么,为了纠正一位错码,在分组码中最少要加入多少监督位才行呢?编码效率能否提高呢?从这种思想出发进行研究,便导致汉明码的诞生。汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。下面我们介绍汉明码的构造原理。 一般说来,若码长为n,信息位数为k,则监督位数r=n?k。如果希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求 2r? 1 ≥n 或2r ≥k + r + 1 (14-1)下面我们通过一个例子来说明如何具体构造这些监督关系式。 设分组码(n,k)中k=4,为了纠正一位错码,由式(14-1)可知,要求监督位数r≥3。若取r=3,则n= k + r =7。我们用α6α5…α0表示这7个码元,用S1、S2、S3表示三个监督关系式中的校正子,则S1 S2 S3的值与错码位置的对应关系可以规定如表14-1所列。 表14-1

汉明码编码实验报告

重庆工程学院 电子信息学院 实验报告 课程名称:_ 数据通信原理开课学期:__ 2015-2016/02_ 院(部): 电子信息学院开课实验室:实训楼512 学生姓名: 舒清清梁小凤专业班级: 1491003 学号: 149100308 149100305

重庆工程学院学生实验报告 课程名 称 数据通信原理实验项目名称汉明码编译实验 开课院系电子信息学院实验日期 2016年5月7 日 学生姓名舒清清 梁小凤 学号 149100308 149100305 专业班级网络工程三班 指导教 师 余方能实验成绩 教师评语: 教师签字:批改时间:

一、实验目的和要求 1、了解信道编码在通信系统中的重要性。 2、掌握汉明码编译码的原理。 3、掌握汉明码检错纠错原理。 4、理解编码码距的意义。 二、实验内容和原理 汉明码编码过程:数字终端的信号经过串并变换后,进行分组,分组后的数据再经过汉明码编码,数据由4bit变为7bit。 三、主要仪器设备 1、主控&信号源、6号、2号模块各一块 2、双踪示波器一台 3连接线若干

四、实验操作方法和步骤 1、关电,按表格所示进行连线 2、开电,设置主控菜单,选择【主菜单】→【通信原理】→【汉明码】。 (1)将2号模块的拨码开关S12#拨为10100000,拨码开关S22#、S32#、S42#均拨为00000000;(2)将6号模块的拨码开关S16#拨为0001,即编码方式为汉明码。开关S36#拨为0000,即无错模式。按下6号模块S2系统复位键。 3、此时系统初始状态为:2号模块提供32K编码输入数据,6号模块进行汉明编译码,无差错插入模式。 4、实验操作及波形观测。 (1)用示波器观测6号模块TH5处编码输出波形。 (2)设置2号模块拨码开关S1前四位,观测编码输出并填入下表中: 五、实验记录与处理(数据、图表、计算等) 校对输入0000,编码0000000 输入0001,编码0001011 输入0010,编码0010101 输入0011,编码0011110 输入0100,编码0100110 输入0101,编码0101101 输入0110,编码0110011输入0111,编码0111000

基于MATLAB的(7_4)汉明码编译码设计与仿真结果分析

通信原理课程设计报告书 课题名称 基于MATLAB 的(7,4)汉明码编 译码设计与仿真结果分析 姓 名 学 号 学 院 通信与电子工程学院 专 业 通信工程 指导教师 ※※※※※※※※※ ※ ※ ※※ ※ ※ 2009级通信工程专业 通信原理课程设计

2011年 12月 23日 一、设计任务及要求: 设计任务: 利用MATLAB编程,实现汉明码编译码设计。理解(7,4)汉明码的构造原理,掌握(7,4)汉明码的编码和译码的原理和设计步骤。并对其性能进行分析。要求: 通过MATLAB编程,设计出(7,4)汉明码的编码程序,编码后加入噪声,然后译码,画出信噪比与误比特数和信噪比与误比特率的仿真图,然后对其结果进行分析 指导教师签名: 2011年12月23日 二、指导教师评语: 指导教师签名: 年月日 三、成绩 验收盖章 年月日

基于MATLAB 的(7,4)汉明码编译码设计 与仿真结果分析 1 设计目的 (1)熟悉掌握汉明码的重要公式和基本概念。 (2)利用MATLAB 编程,实现汉明码编译码设计。 (3)理解(7,4)汉明码的构造原理,掌握(7,4)汉明码的编码和译码的原理和设计步骤。 (4)对其仿真结果进行分析。 2 设计要求 (1)通过MATLAB 编程,设计出(7,4)汉明码的编码程序。 (2)编码后加入噪声,然后译码,画出信噪比与误比特数和信噪比与误比特率的仿真图。 (3)然后对其结果进行分析。 3 设计步骤 3.1 线性分组码的一般原理 线性分组码的构造 3.1.1 H 矩阵 根据(7, 4)汉明码可知一般有 现在将上面它改写为 上式中已经将“⊕”简写成“+”。 上式可以表示成如下矩阵形式: ??? ??=⊕⊕⊕=⊕⊕⊕=⊕⊕⊕0 000346 13562456a a a a a a a a a a a a ?? ? ?? =?+?+?+?+?+?+?=?+?+?+?+?+?+?=?+?+?+?+?+?+?010011010010101100010111012345601234560123456a a a a a a a a a a a a a a a a a a a a a (1) (2)

实验二线性分组码的编译码报告

信息论与编码实验报告 理学院班级学号(后两位)姓名 理学院班级学号(后两位)姓名 实验名称 实验二、线性分组码的编译码 实验设备 (1)计算机(2)所用软件:Matlab 或者C 实验目的 了解线性分组码编译码的基本原理及其特点;熟练掌握线性分组码编译码的方法与步骤;实验内容 根据线性分组码编译码的方法步骤,编写对应编译码程序; 实验报告要求 简要总结线性分组码编码和采用伴随式纠错译码的基本原理及步骤; 讨论(6,3)线性分组码的编码。系统生成矩阵如教材P91页例5.2.4所示。手工录入或电脑随机生成一段消息序列,实现线性分组码的编码的Matlab源程序。(1星) 实现对上述无差错的编码进行译码的Matlab源程序。(2星) 在上述编码后的码序列中,每隔6位产生一位或0位随机误差,然后采用伴随式纠错译码,恢复原来的消息序列。(2星) 5、友好界面。(3星) 实验报告在实验后一周内交给老师,报告单一律用A4纸写,以此单为封面,装订成册。 完成时间:2016年5月9 日 简要总结线性分组码编译码的基本原理及步骤; 分组码是一组固定长度的码组,可表示为(n , k),通常它用于前向纠错。在分组码中,监督位被加到信息位之后,形成新的码。在编码时,k个信息位被编为n位码组长度,而n-k 个监督位的作用就是实现检错与纠错。对于长度为n的二进制线性分组码,它有种2n可能的码组,从2n种码组中,可以选择M=2k个码组(k

信道编码实验

实验五信道编码实验 实验目的:1、学习并理解信道编码的根本目的、技术要求与基本目标等基本概念; 2、学习并理解信道编码的根本目的、技术要求与基本目标等基本概念;掌握线性分组码的物理涵义、数学基础及检纠错原理;掌握循环码的码型特点、检纠错能力、编译码方法及基本技术; 3、学会使用MATLAB工具检纠错模拟与分析。 实验仪器:MATLAB软件,PC机 实验原理(概括性文字叙述、主要公式、电路图等) 如果说信源编码的目的是为了提高信号传输的有效性的话,那么信道编码则是为了提高通信的可靠性而采取的一种编码策略。信道编码的核心基础是纠错编码理论,是在信息码后面附加上一些监督码,以便在接收端发现和纠正误码。 数字通信系统简化模型 编码信道:包括信道编码器、实际信道、信道译码器。 该模型是研究信道纠错编码和译码的模型,集中研究通信可靠性。 通信可靠性问题:消息通过信道传输的时候,如何选择编码方案来减少差错。首先与信道统计特性有关,其次与编码方法、译码方法也有关系。 信道是信号从信源传送到信宿的通路。 由于信道有干扰,使得传送的数据流(码流)中产生误码。 误码的处理技术有纠错、交织、线性内插等。 信道编码的目的是提高信息传输或通信的可靠性。

信道编码的任务是降低误码率,使系统具有一定的纠错能力和抗干扰能力,提高数据传输效率。 信道编码的过程是在源数据码流中加插一些码元,达到在接收端进行检错和纠错的目的。 在带宽固定的信道中,总的传送码率是固定的,由于信道编码增加了数据量,其结果只能是以降低传送有用信息码率为代价了。 降低误码率:在传输的信息码之中按一定规律产生一些附加数字,经信道传输,在传输中若码字出现错误,收端能利用编码规律发现码的内在相关性受到破坏,从而按一定的译码规则自动纠正或发现错误,降低误码率。 实验内容及数据处理: 利用MATLAB仿真二进制码在离散信道无记忆信道中传输产生的误码率,设传送二进制码“0”的概率P0=0.6,"1"的概率p1=1-p0。利用单极性基带信号传输,从判决输入端观测,用电平s0=0传输“0”,用电平s1=A传输“1”,信道中的噪声是加性的零均值高斯噪声,方差为柯西的平方,求在最佳门限电平判决下传输误码率Pe与A2/柯西平方下的曲线,每一个给定噪声方差下仿真传输序列长度为105bit,仿真程序代码如下: clear; s0=0;s1=5; p0=0.6;%信源概率 p1=1-p0; A2_over_sigma2_dB=-5:0.5:20;%仿真信噪比范围 A2_over_sigma2=10.^(A2_over_sigma2_dB./10); sigma2=s1^2./A2_over_sigma2; N=1e5; for k=1:length(sigma2) X=(randn(1,N)>p0); n=sqrt(sigma2(k)).*randn(1,N); xi=s1.*X+n; C_opt=(s0+s1)/2+sigma2(k)/(s1-s0)*log(p0./p1); y=(xi>C_opt); err(k)=(sum(X-y~=0))./N; end semilogy(A2_over_sigma2_dB,err,'o');hold on; for k=1:length(sigma2) C_opt=(s0+s1)./2+sigma2(k)./(s1-s0).*log(p0./p1); pe0=0.5-0.5*erf((C_opt-s0)/(sqrt(2*sigma2(k)))); pe1=0.5+0.5*erf((C_opt-s1)/(sqrt(2*sigma2(k))));

实验四 汉明码系统

实验四汉明码系统 一、实验原理和电路说明 差错控制编码的基本作法是:在发送端被传输的信息序列上附加一些监督码元,这些多余的码元与信息之间以某种确定的规则建立校验关系。接收端按照既定的规则检验信息码元与监督码元之间的关系,一旦传输过程中发生差错,则信息码元与监督码元之间的校验关系将受到破坏,从而可以发现错误,乃至纠正错误。 通信原理综合实验系统中的纠错码系统采用汉明码(7,4)。所谓汉明码是能纠正单个错误的线性分组码。它有以下特点: 码长n=2m-1 最小码距d=3 信息码位k=2n-m-1 纠错能力t=1 监督码位r=n-k 这里m位≥2的正整数,给定m后,既可构造出具体的汉明码(n,k)。 汉明码的监督矩阵有n列m行,它的n列分别由除了全0之外的m位码组构成,每个码组只在某列中出现一次。系统中的监督矩阵如下图所示: 1110100 H=0111010 1101001 其相应的生成矩阵为: 1000101 0100111 G= 0010110 0001011 汉明译码的方法,可以采用计算校正子,然后确定错误图样并加以纠正的方法。 图2.4.1和图2.42给出汉明编码器和译码器电原理图。

a6 a5 a4 a3 a2 a1 a0 a a a a 图2.4.1汉明编码器电原理图 a a a a a a a3 图2.4.2汉明译码器电原理图 表2.4.1 (7,4)汉明编码输入数据与监督码元生成表 a6bit,其次是a5、a4……,最后输出a0位。 汉明编译码模块实验电路功能组成框图见图2.4.4和图2.3.5所示。 汉明编码模块实验电路工作原理描述如下: 1、输入数据:汉明编码输入数据可以来自ADPCM1模块的ADPCM码字,或来自同

汉明码编译码

汉明码编译码

汉明码编译码 一设计思想 汉明码是一种常用的纠错码,具有纠一位错误的能力。本实验使用Matlab平台,分别用程序语言和simulink来实现汉明码的编译码。用程序语言实现就是从原理层面,通过产生生成矩阵,错误图样,伴随式等一步步进行编译码。用simulink实现是用封装好的汉明码编译码模块进行实例仿真,从而验证程序语言中的编译码和误码性能分析结果。此外,在结合之前信源编码的基础上,还可实现完整通信系统的搭建。 二实现流程 1.汉明码编译码 生成矩阵G 信息序列M 产生码字C 信道 计算伴随式S接收码流R 校验矩阵H 解码码流C2 解码信息序列 M2 图 1 汉明码编译码框图 1)根据生成多项式,产生指定的生成矩阵G 2)产生随机的信息序列M 3)由C MG 得到码字 4)进入信道传输

三 结论分析 1. 汉明码编译码 编写了GUI 界面方便呈现过程和结果。 图 2 汉明码编译码演示GUI 界面 以产生(7,4)汉明码为例说明过程的具体实现。 1) 根据生成多项式,产生指定的生成矩阵G 用[H,G,n,k] = hammgen(3,'D^3+D+1')函数得到系统码形式的校验矩阵H 、G 以及码字长度n 和信息位数k 100101101011100010111H ????=?????? 1 10100001101001 1100101010001G ????? ?=?? ?? ?? 2) 产生随机的信息序列M 0010=01000111M ?? ???? ????

3) 由C MG =得到码字 010001101101000010111C ?? ??=?? ???? 4) 进入信道传输 假设是BSC 信道,错误转移概率设定为0.1 传输后接收端得到的码流为 000011110100000111101R ?? ??=?? ???? 红色表示错误比特。 5) 计算=T S RH 得到伴随式 011=100001S ?? ???? ???? 错误图样 0000001 0000010 0000100 0001000 0010000 0100000 1000000 伴随式 101 111 011 110 001 010 100 查表可知第一行码字错误图样为0100000,第二行码字错误图样为1000000,第三行码字错误图样为0000001。 进行??=+C R E 即可得到纠错解码的码字C2。 6) 得到解码码流 0110100200000001110010C ?? ??=?? ????

MATLAB实现汉明码编码译码

MATLAB实现汉明码编码译码 汉明码的编码就是如何根据信息位数k,求出纠正一个错误的监督矩阵H,然后根据H求出信息位所对应的码字。 1、根据已知的信息位数k,从汉明不等式中求出校验位数m=n-k; 2、在每个码字C: 3)用二进制数字表示2m-1列,得到2m-1列和m行监督矩阵H;4)用3步的H形成HCT =0,从而得出m个监督方程; 5)将已知的信息代入方程组,然后求出满足上述方程组的监督位c (i=0,1,?,m一1)。 例如,用以上方法,很容易求出[7,4,3]汉明码的监督矩阵: 11100 H 11010 clear 及编码所对应的码字为C=011001。 m=3; %给定m=3的汉明码 [h,g,n,k]=hammgen(m); msg=[0 0 0 1;0 0 0 1;0 0 0 1;0 0 1 1;0 0 1 1;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 0;1 0 0 1;1 0 1 0;1 0 1 1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1];code=encode(msg,n,k,'hamming/binary') %编码 C=mod(code*h',2) %对伴随式除2取余数 newmsg=decode(code,n,k,'hamming/binary') %解码 d_min=min(sum((code(2:2^k,:

))')) %最小码距运行结果: >> hangming code = 10001 10001 10001 11001 00111 11000 00110 10011 01110 1111 C = newmsg =111100 00 00 00 00 00

实验四纠错码Hamming码编译码(新)

实验四纠错码Hamming码编译码 一、实验原理 差错控制编码的基本作法是:在发送端被传输的信息序列上附加一些监督码元,这些多余的码元与信息之间以某种确定的规则建立校验关系。接收端按照既定的规则检验信息码元与监督码元之间的关系,一旦传输过程中发生差错,则信息码元与监督码元之间的校验关系将受到破坏,从而可以发现错误,乃至纠正错误。 通信原理综合实验系统中的纠错码系统采用汉明码(7,4)。所谓汉明码是能纠正单个错误的线性分组码。它有以下特点: 码长n=2m-1 最小码距d=3 信息码位k=2n-m-1 纠错能力t=1 监督码位r=n-k 这里m位≥2的正整数,给定m后,既可构造出具体的汉明码(n,k)。 汉明码的监督矩阵有n列m行,它的n列分别由除了全0之外的m位码组构成,每个码组只在某列中出现一次。系统中的监督矩阵如下图所示: 1110100 H=0111010 1101001 其相应的生成矩阵为: 1000101 0100111 G= 0010110 0001011 汉明译码的方法,可以采用计算校正子,然后确定错误图样并加以纠正的方法。 表3.4.1 (7,4)汉明编码输入数据与监督码元生成表

二、实验仪器 1、1 JH5001通信原理综合实验系统一台 2、20MHz双踪示波器一台 三、实验目的 1、通过纠错编解码实验,加深对纠错编解码理论的理解; 四、实验内容 准备工作 (1)将汉明编码模块内工作方式选择开关SWC01中,编码使能开关插入(H_EN);; 设置m序列方式为(M_SEL1拔除、M_SEL0接入),此时m序列输出为全1码。 (2)将汉明译码模块内输入信号和时钟选择开关KW01、KW02设置在(右端),输入信号直接来自汉明编码模块;将译码器使能开关KW03设置在工作位置0N(左端)。 1.编码规则验证 (1)用示波器同时观测编码输入信号TPC03波形和编码输出波形TPC05,观测是否符合汉明编码规则(参见表3.4.1所示)。 (2)设置m序列方式为(10:M_SEL1插入、M_SEL0拔下),此时m序列输出为16进制码0000~1111(参见表3.4.2所示)。通过接入M-PAUSE跳线,选择某一静态 码。用示波器同时观测编码输入信号TPC01波形和编码输出波形TPC05,观测时 以TPC01同步,观测是否符合汉明编码规则。 (3)设置其它m序列方式,重复上述测量步骤。 注:m序列周期因非4bit的倍数,所以输入的4bit数据为其周期内的某一段截取码字。 2.译码数据输出测量 (1)用示波器同时观测汉明编码模块的编码输入信号TPC03波形和汉明译码模块译码输出m序列波形TPW06,测量译码输出数据与发端信号是否保持一致,以及 延时。 (2)设置不同的m序列方式,重复上述实验,验证汉明编译码的正确性。

卷积码实验报告

苏州科技大学天平学院电子与信息工程学院 信道编码课程设计报告 课设名称卷积码编译及译码仿真 学生姓名圣鑫 学号 32 同组人周妍智 专业班级通信1422 指导教师潘欣欲

一、实验名称 基于MAATLAB的卷积码编码及译码仿真 二、实验目的 卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本实验简明地介绍了卷积码的编码原理和Viterbi译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测,并对测试结果作了分析。 三、实验原理 1、卷积码编码原理 卷积码是一种性能优越的信道编码,它的编码器和解码器都比较易于实现,同时还具有较强的纠错能力,这使得它的使用越来越广泛。卷积码一般表示为(n,k,K)的形式,即将 k个信息比特编码为 n 个比特的码组,K 为编码约束长度,说明编码过程中相互约束的码段个数。卷积码编码后的 n 各码元不经与当前组的 k 个信息比特有关,还与前 K-1 个输入组的信息比特有关。编码过程中相互关联的码元有 K*n 个。R=k/n 是编码效率。编码效率和约束长度是衡量卷积码的两个重要参数。典型的卷积码一般选 n,k 较小,K 值可取较大(>10),但以获得简单而高性能的卷积码。

卷积码的编码描述方式有很多种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述,树图描述,网格图描述等。 2、卷积码Viterbi译码原理 卷积码概率译码的基本思路是:以接收码流为基础,逐个计算它与其他所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正是最大似然的准则。卷积码的最大似然译码与分组码的最大似然译码在原理上是一样的,但实现方法上略有不同。主要区别在于:分组码是孤立地求解单个码组的相似度,而卷积码是求码字序列之间的相似度。基于网格图搜索的译码是实现最大似然判决的重要方法和途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第 L 级(L 为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi 译码正是基于这种想法。对于(n, k, K )卷积码,其网格图中共 2kL 种状态。由网格图的前 K-1 条连续支路构成的路径互不相交,即最初 2k_1 条路径各不相同,当接收到第 K 条支路时,每条路径都有 2 条支路延伸到第 K 级上,而第 K 级上的每两条支路又都汇聚在一个节点上。在Viterbi译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后第 K 级只留下2K条幸存路径。选出的路径同它们的对数似然函数的累加值将一起被存储起来。由于每个节点引出两条支路,因此以后各级中路径的延伸都增大一倍,但比较它们的似然函数累加值后,丢弃一半,结果留存下来的路径总数保持常数。由此可见,上述译码过程中的基本操作是,“加-比-选”,即每级求出对数似然函数的累加值,然后两两比较后作出选择。有时会出现两条路径的对数似然函数累加值相等的情形,在这种情况下可以任意选择其中一条作

(7,4)汉明码编译码系统设计.doc

南华大学电气工程学院 《通信原理课程设计》任务书 设计题目:(7, 4)汉明码编译码系统设计 专业:通信工程 学生姓名: 马勇学号:20114400236 起迄日期:2013 年12月20日~2014年1月3日指导教师:宁志刚副教授 系主任:王彦教授

《通信原理课程设计》任务书

《通信原理课程设计》设计说明书格式 一、纸张和页面要求 A4纸打印;页边距要求如下:页边距上下各为2.5 厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 二、说明书装订页码顺序 (1)任务书 (2)论文正文 (3)参考文献,(4)附录 三、课程设计说明书撰写格式 见范例 引言(黑体四号) ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(首行缩进两个字,宋体小四号) 1☆☆☆☆(黑体四号) 正文……(首行缩进两个字,宋体小四号) 1.1(空一格)☆☆☆☆☆☆(黑体小四号) 正文……(首行缩进两个字,宋体小四号) 1.2 ☆☆☆☆☆☆、☆☆☆ 正文……(首行缩进两个字,宋体小四号) 2 ☆☆☆☆☆☆ (黑体四号) 正文……(首行缩进两个字,宋体小四号) 2.1 ☆☆☆☆、☆☆☆☆☆☆,☆☆☆(黑体小四号) 正文……(首行缩进两个字,宋体小四号) 2.1.1☆☆☆,☆☆☆☆☆,☆☆☆☆(楷体小四号) 正文……(首行缩进两个字,宋体小四号) (1)……

图1. 工作波形示意图(图题,居中,宋体五号) ………… 5结论(黑体四号) ☆☆☆☆☆☆(首行缩进两个字,宋体小四号) 参考文献(黑体四号、顶格) 参考文献要另起一页,一律放在正文后,不得放在各章之后。只列出作者直接阅读过或在正文中被引用过的文献资料,作者只写到第三位,余者写“等”,英文作者超过3人写“et al”。 几种主要参考文献著录表的格式为: ⑴专(译)著:[序号]著者.书名(译者)[M].出版地:出版者,出版年:起~止页码. ⑵期刊:[序号]著者.篇名[J].刊名,年,卷号(期号):起~止页码. ⑶论文集:[序号]著者.篇名[A]编者.论文集名[C] .出版地:出版者,出版者. 出版年:起~止页码. ⑷学位论文:[序号]著者.题名[D] .保存地:保存单位,授予年. ⑸专利文献:专利所有者.专利题名[P] .专利国别:专利号,出版日期. ⑹标准文献:[序号]标准代号标准顺序号—发布年,标准名称[S] . ⑺报纸:责任者.文献题名[N].报纸名,年—月—日(版次). 附录(居中,黑体四号)

实验6 循环码的软件编、译码实验

实验六循环码的软件编、译码实验 一、实验目的 (1)通过实验了解循环码的工作原理。 (2)了解生成多项式g(x)与编码、译码的关系。 (3)了解码距d与纠、检错能力之间的关系。 (4)分析(7.3)循环码的纠错能力。 二、实验要求 用你熟悉的某种计算机高级语言或单片机汇编语言,编制一(7,3)循环码的编、译码程序,并改变接受序列R(x)和错误图样E(x),考查纠错能力情况。 设(7,3)循环码的生成多项式为:g(x)=x4+x3+x2+1 对应(11101)(1)按编、译码计算程序框图编写编、译码程序 (2)计算出所有的码字集合,可纠的错误图样E(x)表和对应的错误伴随式表。 (3)考查和分析该码检、纠一、二位错误的能力情况。 (4)整理好所有的程序清单,变量名尽量用程序框图所给名称,并作注释。 (5) 出示软件报告. 三、实验设计原理 循环码是一类很重要的线性分组码纠错码类,循环码的主要优点是编、译码器较简单,编码和译码能用同样的反馈移存器重构,在多余度相同的条件下检测能力较强,不检测的错误概率随多余度增加按指数下降。另外由于循环码具有特殊的代数结构,使得循环码的编、译码电路易于在微机上通过算法软件实现。 1、循环码编码原理 设有一(n,k)循环码,码字C=[C n-1…C r C r-1…C0],其中r=n-k。码字多项式为: C (x ) = C n-1x n-1+ C n-2x n-2+… +C1x+C0。 码字的生成多项式为: g(x)= g r-1x r-1+g r-2x r-2+…+g1x+g0 待编码的信息多项式为:m(x)=m K-1x K-1+…+m0 x n-k.m(x)=C n-1x n-1+…+C n-K x n-K

海明编码实验报告

海明编码实验报告 学科专业:计算机科学与技术 姓名: 学号: 指导教师: 天津工业大学计算机科学与技术学院 二零一零年十二月

一.海明编码原理 海明码是一种可以纠正一位差错发现两位差错的编码。它是利用在信息位为k 位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错。它必需满足以下关系式: 2r>=n+1 或 2r>=k+r+1 海明码的编码效率为: R=k/(k+r) 式中 k为信息位位数 r为增加冗余位位数 2.海明码的生成与接收 二.海明编码方法 1)海明码的生成(顺序生成法)。 例3.已知:信息码为:" 1 1 0 0 1 1 0 0 " (k=8) 求:海明码码字。 解:1)把冗余码A、B、C、…,顺序插入信息码中,得海明码 码字:" A B 1 C 1 0 0 D 1 1 0 0 " 码位: 1 2 3 4 5 6 7 8 9 10 11 12 其中A,B,C,D分别插于2k位(k=0,1,2,3)。码位分别为1,2,4,8。 2)冗余码A,B,C,D的线性码位是:(相当于监督关系式) A->1,3,5,7,9,11; B->2,3,6,7,10,11; C->4,5,6,7,12;(注 5=4+1;6=4+2;7=4+2+1;12=8+4) D->8,9,10,11,12。 3)把线性码位的值的偶校验作为冗余码的值(设冗余码初值为0): A=∑(0,1,1,0,1,0)=1 B=∑(0,1,0,0,1,0)=0 C=∑(0,1,0,0,0)=1 D=∑(0,1,1,0,0)=0

汉明码的编译码设计与仿真

****************** 实践教学 ******************* 兰州理工大学 计算机与通信学院 2014年春季学期 通信系统仿真训练 题目:汉明码的编译码设计与仿真 专业班级: 姓名: 学号: 指导教师: 成绩:

摘要 与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。在接收端通过纠错译码自动纠正传输中的差错来实现码纠错功能,成为前向纠错FEC。在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。通过传输码列中假如冗余位(也称纠错位)。可以实现前向纠错。但这种方法比简单重传协议的成本要高。汉明码利用奇偶块机制降低了前向纠错的成本。利用汉明码(Hamming Code)是一种能够自动检测并纠正一位错码的线性纠错码,即SEC(Single Error Correcting)码,用于信道编码与译码中,提高通信系统抗干扰的能力。本文主要利用MATLAB中通信系统仿真模型库进行汉明码建模仿真,并调用通信系统功能函数进行编程,绘制编译码图。在此基础上,对汉明码的性能进行分析,得出结论。 关键词:MATLAB 汉明码性能

目录 1.前言 (1) 2.汉明码的构造原理 (2) 2.1 汉明码的构造原理 (2) 2.2 监督矩阵H和生成矩阵G (3) 2.3 校正子(伴随式)S (4) 3.汉明码编码器的设计 (6) 3.1 汉明码编码方法 (6) 3.2 汉明码编码程序设计 (6) 3.3 汉明码编码程序的编译及仿真 (7) 4.汉明码的译码器的设计 (10) 4.1 汉明码译码方法 (10) 4.2 汉明码译码程序的设计 (11) 4.3 汉明码译码程序的编译及仿真 (13) 5.总结 (17) 6.参考文献 (18) 7.附录 (19)

信道编码实验报告

无线通信基础课程设计报告 (信道编码) 小组成员: 指导老师: 完成时间:

无线通信系统课程设计报告 实验摘要:数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从 而使接收端产生图象跳跃、不连续等现象。信道编码通过对数码流进行相应的处理,使系统具有一定的检错和纠错能力,可极大地避免码流传送中误码的发生。提高数据传输可靠性,降低误码率是信道编码的任务。 实验名称:信道编码 实验目标:本实验的目标是领会信道编码的基本思想。并通过比较有无信道编码模块的 不同系统误码率性能,感受信道编码技术对于提高系统性能的重要意义。 实验原理:打开“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 映射图

74循环汉明码编码及译码

clear all; close all; %-------------(7,4)循环汉明码的编码----------------- n=7; k=4; p=cyclpoly(n,k,'all'); [H,G]=cyclgen(n,p(1,:)); Msg=[0 0 0 0;0 0 0 1;0 0 1 0;0 1 0 0;0 1 0 1]; C=rem(Msg*G,2) M=input('M='); disp( '输入信源序列:'); Msg=input('Msg='); C=rem(Msg*G,2) %编码结果 R=7/4*log2(2) %计算码元信息率 %----------- (7,4)循环码的译码------------------- M=input('M='); disp( '输入接收序列:'); Msg=input('Msg='); S=mod(Msg*H',2) for i=1:M if S(i)==[0 0 0] disp('接收码元无错'); Rsg=Msg elseif S(i)==[1 0 0] disp('监督元a0位错'); if Msg(0)==0 Msg(0)=1; elseif Msg(0)==1 Msg(0)=0; end Rsg=Msg elseif S(i)==[0 1 0] disp('监督元a1位错'); if Msg(1)==0 Msg(1)=1; elseif Msg(1)==1 Msg(1)=0; end Rsg=Msg elseif S(i)==[0 0 1] disp('监督元a2位错'); if Msg(2)==0

海明编码实验报告

海明编码实验报告 一.实验目的: 深刻理解海明编码,解码的原理,通过用代码将其实现掌握其中的技术。增强动手解决实际问题的能力以及编程,调试程序的能力。 二.实验原理: 主要思想: 码字位的编号从左到右,最左边的比特是第一位; 数据比特和监督比特融合在一起; 监督位处于2的幂数位位置,其它的位置放置数据比特; 编码后的码串为行向量,用它乘以生成矩阵后,采用奇偶校验方式,得出矩阵方 程并求解该矩阵方程得到对应监督位的比特数值; 待发送的数据比特和比特一起构成了发送编码码字 海明纠错码的格式 码字的编号从左到右,最左边是第一位,其中2的幂数位是检验位,其余是k 个数据位(信息元)。 *---信息元 P---校验位 海明码的编码与译码的方法 用矩阵乘法求检验位,并且找出错误位。 设编码长度为 n = 2r – 1,其中r 为校验码的位数。 数据位长度 k = n – r 。 校验位插入到编码序列的2j-1 (j=1,2,..,r)的位置上; 由r(样本)建立一个(2r -1)行 * r 列的矩阵。 将编码字写成串形式的一维向量 其中,lr =1或0(l=0为偶校验,l=1为奇校验),bij = 1 或 0 例: 对数据1100进行编码 ************54433 2211022222p p p p p )()******(43211211211214321l l l l b b b b b b b b b b b b p p p p r r r r r r =??????????????Λ???ΛΛ???---

)101(111011101001110010100)0111000(=?????????????????????? 解: 数据信息为4位,取校验位数量为r=3。 (1)编码长度 n = 2r – 1 = 7 数据位 k = n – r = 4 校验位 r = 3 由矩阵乘法得,p1 = 0 ,p2 = 1, p3 = 1 解得海明码为 0111100(+表示异或运算) 译码过程: 收到海明码串以后,接收方把海明码串作为行向量,乘以相同的样本矩阵,检查约定的奇偶校验方式是否成立。 类似编码过程,进行矩阵方程运算;如果方程运算以后右边的结果与约定的奇偶校验行向量一致,则结果正确; 如果方程运算以后右边的结果与约定的奇偶校验行向量不一致,则表明传输的数据有错,且该结果行向量对应的二进制比特转换为十进制数所对应编号的比特出错,把该比特取反后可得正确的数据。 对例题所得到的海明编码结果0111100进行传输,如果接收到的也是0111100,那么结果无错。 假如接收到的编码系列为0111000,接收方的判断过程为: 首先进行矩阵运算,并检查结果。 矩阵运算的结果行向量为(101) ,不是 ( (000),接收到的码字有错误,错误比特的 位置为5,因此,把0111000码串的第5 个比特取反为 “1”,则结果变为“0111100”, 为正确的码字。 三.实验过程: 根据实验原理即可确定编程思路:令编码长度为7位,其中校验位为3位。?? ???=++++++=++++++=++++++000101000000100001000123p p p ) 000(111011101001110010100)1001(321=??????????????????????p p p

实验四Δm及CVSD编译码实验

实验四Δm及CVSD编译码实验 一、实验目的 1、掌握简单增量调制的工作原理。 2、理解量化噪声及过载量化噪声的定义,掌握其测试方法。 3、了解简单增量调制与CVSD工作原理不同之处及性能上的差别。 二、实验器材 1、主控&信号源模块、21号、3号模块各一块 2、双踪示波器一台 3、连接线若干 三、实验原理 1、Δm编译码 (1)实验原理框图 信号源 music/A-out CLK 抗混叠滤波器 LPF LPF-IN LPF-OUT Δm 编码 编码输入 门限 判决 时钟 Δm译码 时钟 译码输入 译码输出 3# 信源编译码模块 比较 量化 延时 极性 变换 量阶 编码输出 延时 本地译码 音频输入 图一Δm编译码框图 (2)实验框图说明 编码输入信号与本地译码的信号相比较,如果大于本地译码信号则输出正的量阶信号,如果小于本地译码则输出负的量阶。然后,量阶会对本地译码的信号进行调整,也就是编码部分“+”运算。编码输出是将正量阶变为1,负量阶变为0。 Δm译码的过程实际上就是编码的本地译码的过程。 2、CVSD编译码 (1)实验原理框图

信号源 music/A-out CLK 抗混叠滤波器 LPF LPF-IN LPF-OUT Δm 编码 编码输入 门限判决 时钟 Δm 译码 时钟 译码输入 译码输出 比较 延时 极性变换 量阶调整 编码输出 延时 本地译码 量阶调整 一致脉冲量阶 3# 信源编译码模块 音频输入 图二 CVSD 编译码框图 (2)实验框图说明 与Δm 相比,CVSD 多了量阶调整的过程。而量阶是根据一致脉冲进行调整的。一致性脉冲是指比较结果连续三个相同就会给出一个脉冲信号,这个脉冲信号就是一致脉冲。其他的编译码过程均与Δm 一样。 四、实验步骤 项目一:△M 编码规则实验 项目二:量化噪声观测 项目三:不同量阶△M 编译码的性能 项目四:△M 编译码语音传输系统 项目五:CVSD 量阶观测 项目六:CVSD 一致脉冲观测 项目七;CVSD 量化噪声观测 项目八:CVSD 码语音传输系统 五、 实验记录 TP4(信源延时)和TH14(编码输出) TP4(信源延时)和TP3(本地译码)

相关文档