matlab课设循环码的性能分析范文
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。用于纠错目的的循环码的译码算法比较复杂,感兴趣的话可以参考一些参考书。而用于检错目的循环码,一般使用ARQ通信方式。检测过程也是将接受到的码组进行除法运算,如果除尽,则说明传输无误;如果未除尽,则表明传输出现差错,要求发送端重发。用于这种目的的循环码经常被成为循环冗余校验码,即CRC校验码。CRC校验码由于编码电路、检错电路简单且易于实现,因此得到广泛的应用。在通过MODEM传输文件的协议如ZMODEM、XMODEM协议中均用到了CRC校验技术。在磁盘、光盘介质存储技术中也使用该方法。
MATLABT通信系统功能函数库由七十多个函数组成,每个函数有多种选择参数,函数功能覆盖了现代通信系统的各个方面。这些函数包括:信号源产生函数、信源编码/解码函数、接错控制编码/解码函数、调制/解调函数(基带和通带)、滤波器函数、传输信道模型函数(基带和通带)、TDMA、FDMA、CDMA函数、同步函数、工具函数等。以纠错控制编解码函数为例:函数库提供了线性分组码、汉明码、循环码、BCH码、里德一索洛蒙码(REED---SOLOMON)、卷积码等6种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种形式的函数表达。
BCH(7,4)循环码错误图样表:
错误图样
错误图样码字
伴随式S(x)
伴随式
E6(x)=x6
1000000
x2
100
E5(x)=x5
0100000
x2+x
110
E4(x)=x4
0010000
x2+x+1
111
E3(x)=x3
0001000
x+1
011
E2(x)=x2
0000100
x2+1
101
E1(x)=x1
This paper as long as it is in the use of MATLAB simulation model base communication system SIMULINK cycle code modeling simulation, and call communication system function for programming, rendering time domain waveform and spectrum and the bit error rate and signal-to-noise ratio relations diagram. On this basis, the circulation yards of performance analysis, draw the conclusion.
当码字c通过噪声信道传送时,会受到干扰而产生错误。如果信道产生的错误图样是e,译码器收到的n重接受矢量是y,则表示为:
(2—15)
上式也可以写成多项式形式:
(2—16)
译码器的任务就是从y(x)中得到 ,然后求的估值码字
(2—17)
并从中得到信息组 。
循环码译码可按以下三个步骤进行:
(1)有接收到的y(x)计算伴随式s(x);
0000010
x
010
E0(x)=x0
0000001
1
001
E(x)=0
0000000
0
000
上式指出了系统循环码的译码方法:将收到的码字R(x) 用g(x) 去除,如果除尽则无错;否则有错。如果有错,可由余式S(x) 一一找出对应图样,然后将错误图样E(x) 与R(x) 模2 和,即为所求码字C(x) ,从而实现纠错目的。
课程设计任务书
题目:循环码的性能分析
初始条件:Mwenku.baidu.comTLAB 软件,电脑,通信原理知识
要求完成的主要任务:
输入信号:速率为100Bd的矩形信号;信道:AWGN;
要求:1、画出编码器输入、输出信号,信道的输出信号,译码器的输出信号的波形、频谱
2、画出误码率与译码器输入信噪比的关系曲线;
时间安排:
1、第十三周:查阅资料
(2—1)
的各项系数,则码字与码多项式一一对应,这种多项式中,x仅表示码元位置的标记,因此我们并不关心x的取值,这种多项式称为码多项式。
2.1.2 (n,k)循环码的生成多项式
(n,k)循环码的生成多项式写为g(x),它是(n,k)循环码码集中唯一的,幂次为n-k的码多项式,则 是一个幂次为n的码多项式。按模( )运算,此时:
根据前面的讨论,可得(7,4)循环码译码的程序框图如图2.3.1 所示:
3 程序与SIMULINK仿真
3.1程序
3.1.1程序函数介绍
MATLAB中提供了循环码的编码和译码函数,本程序直接调用进行编程。
(1)encode函数
功能:编码函数
语法:code=encode(msg,N,K,method,opt)
(2—2)
即 (2—3)
且因 g(x)也是n阶幂,故Q(x)=1。由于它是循环码,故 按模( )运算后的“余式”也是循环码的一个码字,它必能被g(x)整除,即:
(2—4)
由以上两式可以得到:
(2—5)
和 (2—6)
从上式中可以看出,生成多项式g(x)应该是 的一个因式,即循环码多项式应该是 的一个n-k次因式。
循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码( Grey Code )。
用g(x)除 得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此r(x)加于信息位后做监督位,即将r(x)于 相加,得到的多项式必为一码多项式。
根据上面的讨论,可得到在(7,4)循环码编码的程序框图如图1 所示:
2.3 循环码的纠错原理
纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。
在SIMULINK通信系统仿真模型库中,整个通信系统的流程图被概括为:信号的产生与输入、编码与解码、调制与解调。在SIMULIKE中通信系统仿真的一般模型如图1.1所示。
2 设计原理
2.1
循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。
循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组。若( )为一循环码组,则( )、( )……还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。
2.1.1 循环码的多项式表示
设码长为n的循环码表示为( ), 其中 为二进制数,通常把码组中各码元当做二进制的系数,即把上式中长为n的各个分量看做多项式:
本文只要是利用MATLAB中的SIMULINK通信系统仿真模型库进行循环码建模仿真,并调用通信系统功能函数进行编程,绘制时域波形,频谱及误码率与信噪比关系曲线图。在此基础上,对循环码的性能进行分析,得出结论。
关键词:MATLAB 循环码 SIMULINK 性能
Abstract
Cycle code is linear space-time block codes in the most important of a seed, is the present research more mature kind of code. Cyclic code has many special algebraic properties, these properties to help in accordance with the requirements of the error correction ability to construct the system of this kind of code, and simplified decoding algorithm, and the most of the linear code and found that there is a close relationship between cyclic code. Cyclic code and is easy to realize the characteristic, is easy to use with the feedback the shift register realize its hardware.
(2)根据伴随式s(x)找出对应的估值错误图样 ;
(3)计算 ,得到估计码字 。若 ,则译码正确,否则,若 ,则译码错误。
由于g(x) 的次数为n - k 次,g(x) 除E(x) 后得余式(即伴随式)的最高次数为n-k-1次,故S(x) 共有2n-k个可能的表达式,每一个表达式对应一个错误格式。可以知道(7,4)循环码的S(x) 共有2(7-4)= 8个可能的表达式,可根据错误图样表来纠正(7,4)循环码中的一位错误,其伴随式如表1所示。
2.1.3 循环码的生成矩阵和一致校验矩阵
对所有的i=0,1,2,……k-1,用生成多项式g(x)除 ,有:
(2—7)
式中 是余式,表示为:
(2—8)
因此, 是g(x)的倍式,即 是码多项式,由此得到系统形式的生成矩阵为:
(2—9)
它是一个k n阶的矩阵。
同样,由G =0可以得到系统形式的一致校验矩阵为:
(3)cyclpoly函数
功能:生成循环码的生成多项式。
语法:p=cyclpoly(N,K);
p=cyclpoly(N,K,fd_flag);
说明:从p=cyclpoly(N,K)中可找到一个给定码长N和信息位长度K生成多项式p,注意不是任意给定一个多项式都可以作为生成多项式。
(2—10)
如已知(7,4)循环码的生成多项式和校验多项式分别为: , 。写得其生成矩阵和校验矩阵分别为:
(2—11)
(2—12)
2.2 循环码编码原理
有信息码构成信息多项式 ,其中最高幂次为k-1;
用 乘以信息多项式m(x),得到的 ,最高幂次为n-1,该过程相当于把信息码( , ,……, , )移位到了码字德前k个信息位,其后是r个全为零的监督位;
2、第十四周:仿真及撰写报告。
3、第十五周:答辩
指导教师签名:2011 年 12 月 15 日
系主任(或责任教师)签名:2011年 12 月 15 日
摘 要
循环码是线性分组码中最重要的一种子类,是目前研究得比较成熟的一类码。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。
Keywords: MATLAB cycle code SIMULINK performance
1 引言
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和SIMULINK两大部分。
说明:用method指定的方法完成纠错编码。其中msg代表信息码元,是一个K列矩阵,N是编码后的码字长度;K是信息位的长度;opt是有些编码方式需要的参数。
(2)decode函数
功能:译码函数
语法:msg=decode(code,N,K,method,opt1,opt2,opt3,opt4);
说明:这个函数对接收到的码字进行译码,恢复出原始的信息,译码参数和方式必须和编码时采用的严格相同。它对接收到的码字,按method指定的方式进行译码;opt1,…,opt4是可选项的参数。
MATLABT通信系统功能函数库由七十多个函数组成,每个函数有多种选择参数,函数功能覆盖了现代通信系统的各个方面。这些函数包括:信号源产生函数、信源编码/解码函数、接错控制编码/解码函数、调制/解调函数(基带和通带)、滤波器函数、传输信道模型函数(基带和通带)、TDMA、FDMA、CDMA函数、同步函数、工具函数等。以纠错控制编解码函数为例:函数库提供了线性分组码、汉明码、循环码、BCH码、里德一索洛蒙码(REED---SOLOMON)、卷积码等6种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种形式的函数表达。
BCH(7,4)循环码错误图样表:
错误图样
错误图样码字
伴随式S(x)
伴随式
E6(x)=x6
1000000
x2
100
E5(x)=x5
0100000
x2+x
110
E4(x)=x4
0010000
x2+x+1
111
E3(x)=x3
0001000
x+1
011
E2(x)=x2
0000100
x2+1
101
E1(x)=x1
This paper as long as it is in the use of MATLAB simulation model base communication system SIMULINK cycle code modeling simulation, and call communication system function for programming, rendering time domain waveform and spectrum and the bit error rate and signal-to-noise ratio relations diagram. On this basis, the circulation yards of performance analysis, draw the conclusion.
当码字c通过噪声信道传送时,会受到干扰而产生错误。如果信道产生的错误图样是e,译码器收到的n重接受矢量是y,则表示为:
(2—15)
上式也可以写成多项式形式:
(2—16)
译码器的任务就是从y(x)中得到 ,然后求的估值码字
(2—17)
并从中得到信息组 。
循环码译码可按以下三个步骤进行:
(1)有接收到的y(x)计算伴随式s(x);
0000010
x
010
E0(x)=x0
0000001
1
001
E(x)=0
0000000
0
000
上式指出了系统循环码的译码方法:将收到的码字R(x) 用g(x) 去除,如果除尽则无错;否则有错。如果有错,可由余式S(x) 一一找出对应图样,然后将错误图样E(x) 与R(x) 模2 和,即为所求码字C(x) ,从而实现纠错目的。
课程设计任务书
题目:循环码的性能分析
初始条件:Mwenku.baidu.comTLAB 软件,电脑,通信原理知识
要求完成的主要任务:
输入信号:速率为100Bd的矩形信号;信道:AWGN;
要求:1、画出编码器输入、输出信号,信道的输出信号,译码器的输出信号的波形、频谱
2、画出误码率与译码器输入信噪比的关系曲线;
时间安排:
1、第十三周:查阅资料
(2—1)
的各项系数,则码字与码多项式一一对应,这种多项式中,x仅表示码元位置的标记,因此我们并不关心x的取值,这种多项式称为码多项式。
2.1.2 (n,k)循环码的生成多项式
(n,k)循环码的生成多项式写为g(x),它是(n,k)循环码码集中唯一的,幂次为n-k的码多项式,则 是一个幂次为n的码多项式。按模( )运算,此时:
根据前面的讨论,可得(7,4)循环码译码的程序框图如图2.3.1 所示:
3 程序与SIMULINK仿真
3.1程序
3.1.1程序函数介绍
MATLAB中提供了循环码的编码和译码函数,本程序直接调用进行编程。
(1)encode函数
功能:编码函数
语法:code=encode(msg,N,K,method,opt)
(2—2)
即 (2—3)
且因 g(x)也是n阶幂,故Q(x)=1。由于它是循环码,故 按模( )运算后的“余式”也是循环码的一个码字,它必能被g(x)整除,即:
(2—4)
由以上两式可以得到:
(2—5)
和 (2—6)
从上式中可以看出,生成多项式g(x)应该是 的一个因式,即循环码多项式应该是 的一个n-k次因式。
循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码( Grey Code )。
用g(x)除 得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此r(x)加于信息位后做监督位,即将r(x)于 相加,得到的多项式必为一码多项式。
根据上面的讨论,可得到在(7,4)循环码编码的程序框图如图1 所示:
2.3 循环码的纠错原理
纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。
在SIMULINK通信系统仿真模型库中,整个通信系统的流程图被概括为:信号的产生与输入、编码与解码、调制与解调。在SIMULIKE中通信系统仿真的一般模型如图1.1所示。
2 设计原理
2.1
循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。
循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组。若( )为一循环码组,则( )、( )……还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。
2.1.1 循环码的多项式表示
设码长为n的循环码表示为( ), 其中 为二进制数,通常把码组中各码元当做二进制的系数,即把上式中长为n的各个分量看做多项式:
本文只要是利用MATLAB中的SIMULINK通信系统仿真模型库进行循环码建模仿真,并调用通信系统功能函数进行编程,绘制时域波形,频谱及误码率与信噪比关系曲线图。在此基础上,对循环码的性能进行分析,得出结论。
关键词:MATLAB 循环码 SIMULINK 性能
Abstract
Cycle code is linear space-time block codes in the most important of a seed, is the present research more mature kind of code. Cyclic code has many special algebraic properties, these properties to help in accordance with the requirements of the error correction ability to construct the system of this kind of code, and simplified decoding algorithm, and the most of the linear code and found that there is a close relationship between cyclic code. Cyclic code and is easy to realize the characteristic, is easy to use with the feedback the shift register realize its hardware.
(2)根据伴随式s(x)找出对应的估值错误图样 ;
(3)计算 ,得到估计码字 。若 ,则译码正确,否则,若 ,则译码错误。
由于g(x) 的次数为n - k 次,g(x) 除E(x) 后得余式(即伴随式)的最高次数为n-k-1次,故S(x) 共有2n-k个可能的表达式,每一个表达式对应一个错误格式。可以知道(7,4)循环码的S(x) 共有2(7-4)= 8个可能的表达式,可根据错误图样表来纠正(7,4)循环码中的一位错误,其伴随式如表1所示。
2.1.3 循环码的生成矩阵和一致校验矩阵
对所有的i=0,1,2,……k-1,用生成多项式g(x)除 ,有:
(2—7)
式中 是余式,表示为:
(2—8)
因此, 是g(x)的倍式,即 是码多项式,由此得到系统形式的生成矩阵为:
(2—9)
它是一个k n阶的矩阵。
同样,由G =0可以得到系统形式的一致校验矩阵为:
(3)cyclpoly函数
功能:生成循环码的生成多项式。
语法:p=cyclpoly(N,K);
p=cyclpoly(N,K,fd_flag);
说明:从p=cyclpoly(N,K)中可找到一个给定码长N和信息位长度K生成多项式p,注意不是任意给定一个多项式都可以作为生成多项式。
(2—10)
如已知(7,4)循环码的生成多项式和校验多项式分别为: , 。写得其生成矩阵和校验矩阵分别为:
(2—11)
(2—12)
2.2 循环码编码原理
有信息码构成信息多项式 ,其中最高幂次为k-1;
用 乘以信息多项式m(x),得到的 ,最高幂次为n-1,该过程相当于把信息码( , ,……, , )移位到了码字德前k个信息位,其后是r个全为零的监督位;
2、第十四周:仿真及撰写报告。
3、第十五周:答辩
指导教师签名:2011 年 12 月 15 日
系主任(或责任教师)签名:2011年 12 月 15 日
摘 要
循环码是线性分组码中最重要的一种子类,是目前研究得比较成熟的一类码。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。
Keywords: MATLAB cycle code SIMULINK performance
1 引言
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和SIMULINK两大部分。
说明:用method指定的方法完成纠错编码。其中msg代表信息码元,是一个K列矩阵,N是编码后的码字长度;K是信息位的长度;opt是有些编码方式需要的参数。
(2)decode函数
功能:译码函数
语法:msg=decode(code,N,K,method,opt1,opt2,opt3,opt4);
说明:这个函数对接收到的码字进行译码,恢复出原始的信息,译码参数和方式必须和编码时采用的严格相同。它对接收到的码字,按method指定的方式进行译码;opt1,…,opt4是可选项的参数。