摘要
通信技术的飞速发展,信道编码已经成功地应用于各种通信系统中。以及各种传输方式对可靠性要求的不断提
高,信道编码技术作为抗干扰技术的一种重要的手段,在数字通信技术领域和数字传输系统中显示出越来越重要的
作用。
信道编码的目的是为了改善通信系统的传输质量。由于实际信道存在噪声和干扰,使发送的码字与信道传输后
接收的码字之间存在差异,称这种差异为差错。一般情况下,信道噪声、干扰越大,码字产生差错的概率也就越大
。
本文首先介绍了信道编码的发展现状以及发展前景,对其基础理论以及一些重要的技术指标进行着重介绍,再
通过学习通信系统传输原理,建立起仿真模型,在信道中对不同的码型进行仿真分析。学会使用仿真工具MATLAB,
在不同信道的通信系统中对汉明码进行仿真,分析误码率曲线图来了解其编码效率及特性。然后再对卷积码进行仿
真,分析误码率的变化曲线图。通过对这些码的仿真过程分析,从纠错能力、译码性能等方面来分析研究各自的优
缺点,从而论证信道编码的重要性。
关键词:信道编码;误码率;纠错性能;Matlab/Simulink
1.绪论
1.1 选题背景及研究意义
数字信号在数据传输中往往常常会因为各种技术原因,使得在数据传输的连续时间和实际数据传输流量上同时产
生错误的传输密码,从而最终导致多个接收端同时产生了数字图像上的跳跃、不连续、出现了图像马赛克等各种情
况。所以我们常常需要通过信道编码这个重要环节,对信道数码中的流量信息进行了一套相应的流量控制和纠错处
理,使整个通信系统人员能够同时具有一定的数码纠错处理能力和能够抵御数码干扰的反应能力,可以很好地有效减
少由于码道的流量在系统传送信息过程中导致误码出错事件的可能发生。误码的信息处置处理技术主要方法包括误
码纠错法、交织法、线性内部代码插入法等。
20世纪40年代,香农先生提出了一种通信可以直接通过一定信道容量进行差错控制的信道编码(也被人们称为信
道编码),它在一定的通道信息容量传递传输速率远远需要大于一定的信道容量值的条件下才可以能够直接实现可靠
的信息通信。在随后的几个半又多世纪,信道编码系统技术无论在其通信理论上应用还是对其在实践中都已经不断得
到了新的飞速发展,现在绝大多数的信道数字通信编码系统正在投入研究和设计运行中,并使用这一编码技术手段来
不断提高其数字通信的可靠度。信道编码的技术种类多种多样,主要它们可以再细分为信道分组码和信道卷积码两者
三大类,另外它们同时还包括信道编码与混合调制、编码与调制交错、编码与混合编码以及级联等多种信道编码方
式,其设计目的就是为了大大改善无线通信信息系统的网络性能。不同的信道计算机网络通信信息系统对于各种信道
编码选择解决模式方案的编码选择一般具有不同的基本定义和技术要求,影响信道编码的选择解决方案主要因素包括
对于数据、信道以及服务用户的信道需求三个主要方面的影响因素:其中对于数据主要要求体现在对信道数据的基本
处理结构,信息的基本特征,对数据误码率值的要求,数据进行转换后的速率以及对各种信道处理信息实时性的处理要
求;对于信道的处理要求一般体现在对信号功率、带宽的长度限制和各种信道处理性质上;又以用户的信道需求以及
对系统所需要实现的处理费用要求为主。
而且张香农在他的两篇博士后和硕士论文中正式成功运用他的概率特点理论对于基本通信网络系统的概率特点
问题进行了理论研究和统计分析,将一个传统的基本通信网络系统从基本概率上抽象出来成为一个如下面的图1-1所
示的基本网络框图,并且成功地明确定义了使用信息量的频率概念,由此他还成功提出了使用信道及信道容量的频率
概念,同时他还成功提出了著名的信道编码概率定理,从而也由此奠定了他的信息学概率理论的学术基础。
图1-1 数字传输系统的基本原理
提高了信道数据的信息传输处理效率,降低了误码的概率,这一点就是信道编码处理工作的主要任务。信道编码
控制技术的设计本质就是为了大大增加对于网络通讯的可靠度。但是信道编码的实际作用主要是为了能够使有用途
的信息对源数据的错误传输量大大减少,信道编码的主要工作原理过程主要原理就是在传输源数据的两个码流中同时
添加一些码元,从而更好地可以达到同时对接口的受端和源数据码流进行错误判断除错和错误纠正的工作目标。
1.2 选题的理论依据及研究内容
在一些数字通信系统中因为信道内部存在添加性噪声以及信道传输特征不理想等而很容易产生码间串扰同时受
到多用户的干扰、多径传递和功率约束等也会直接导致译码失败。为了能够确保整个系统的误比特率这一指标,通常
使用信道进行编码。信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码,它是在信息码中增加
一定数量的多余码元,使码字具有一定的抗干扰能力。
如何有效提高网络数据实时传递的系统有效性和网络数据的系统可靠度始终都一直是我们在现代通信网络科技
中努力追求的第一宗旨和最终目标,而且信道编码则始终能够显著地帮助改善和大大增强网络数据实时传递的系统有
效性。简述了信道编码的基本理论,详细性地阐述了信道分组码的信道编译及其工作基本原理、实现工作方式及其编
码检测出错和错误纠正的技术能力,用matlab公式模拟了信道编码在各种不同信道编码条件下的重要作用和相互影
响。学习了卷积分组代码的几个基础基本原理与其分组编码基本工具和使用方法,学习了基本的卷积分组统计代码基
本原理与其分组编码常用工具。理解高斯二进制对称转换信道(bsc),二进制噪声擦除对称信道(bec),高斯白色音噪
声转换信道(awgn)。理解了误码率(coderate)和文字误码率(biterrorrate)的基本含义。使用(7,4)hamming的编码
算法来对不同的模拟信道信号进行了一次仿真。自己先为了设计一个卷积信道代码,并且先后利用了vviterbi信道译
码成了二进制对称射频信道(bsc),高斯白带和噪声对称信道(awgn)2个对称信道分别进行了质量仿真,然后对其信道
进行质量比较。
1.3 选题的现状分析及发展前景
1948年香农发表了论文《通信的数学理论》,提出了一种可以直接使用信道进行编码的方式,从而提高了信息的
传输和可靠度,开创了我国信道进行编码技术的先进和发展时期。半个多世纪以来,随着数字通信技术的进步和发展,
传输网络系统的可靠性和技术要求的不断得到提高,信道编码技术在数字通信技术的应用领域中占据的地位也愈来越
重要。不断地有一种新的信道编码解决方案被研究和提出,性能距离香农极其有限。
20世纪50年代陆续续地开始有人提出并逐步构建了几种新的编码方式,其中主要包括汉明码、golay汉明码和
ulreed-muller-m码。这里的几类码都是主要属于随机分组码,它们主要只是使用于aaawgn四个信道,而不是主要适用
于信号衰落的各个信道,因为这几类码的编码仅仅主要是针对随机的编码错误,而且它们无法及时地发现纠正突发性
的随机错误。这些采用编码软件构造方法得出的实际编码文件长度相对较短,所有软件译码解决方式都可能是通过硬
件软判决方式进行软件译码,损失了某些软件硬判决的实际译码长度增益。1959年9月bose和cochaudhuri本文提出了
一类新型的能在循环码中含有bche的编程器,该比同类型码器具备更高的循环编码执行效率,目前许多编码系统还继
续保留着。
1961年mit的编码gallagerit博士在他的科学研究生涯和博士论文中已经首次明确提出了著名的关于ldpc的编码
的基本概念,这种编码理念在当时并没有完全得到很多的专家重视,然而今天已经被充分证明,ldpc的编码目前已经是
当今世界上最为完全接近美国香农的无限制性编码的几种优点之一。1960年3月reed和resolomon共同研究提出了
rers码,由于它与早期的数字编码频带技术基本相比,它同样具有很高的编码频带处理效率,被广泛地作为应用推广到
了全球卫星网络通讯和多信道中。1955年woeliasen提出了不同于符号分组码的卷积符号编码,由t和wozencraft和
woreiffen分别提出了针对卷积符号编码的两种序列符号翻译编码方法,由Massey提出了易于实现的门限译码方法,
1967年Viterbi提出针对卷积码的最大似然译码方法,实现对约束长度小的的卷积码实现软判决译码。
1978年9月欧洲的uuungerboeck和10年日本的imimai分别独立研究提出了一种与目前具有非常不可扩展开宽频带
的语音编码信号调制相互巧妙紧密结合的语音设计技术理念,通过对语音信号空间进行数据空间的精确划分,使得语
音信号与两个星座差异点之间的最小欧式语音差异点的距离最大。台湾国立l.f.wei大学教授李华先生曾经发明了一
种多维tcm的频带网格方式进行频带编码,它必须既有良好的频带功率和源及频带信号有效性,又必须具备良好的源和
频带功率有效性。1996年forney公司提出了超长级联翻译编码,通过用户利用一个短时间的代码分量翻译代码和数码
源来构造一个长级联编码,可以帮助实现用户获得更高的编码可靠性和更低的代码翻译过程复杂度。1993年,c.
barrou在名为ieeee的国际移动通讯编码会议上首次公开发表了关于使用turbo的编码的学术论文,给出了基于turbo
的编码的总体结构和基本特征,它在bpsk下几乎完全具有可以独立实现的并达到卡尔香农编码极限的各种特殊性。
1995年mackay和maneal重新编码发现了使用低密度视频校验码的巨大优越性后,越来更多的视频研究者把他们的主要
注意力都重新放在了maldpc校验码上,并把它们分别作为未来高速通信宽带网和移动通信视频系统网络中的两个主流
视频信道合并进行视频编码的两种主要备选编码方法之一。
目前,国内外信道编码技术已经被广泛地应用到各类数字通讯系统中。比如在数字电视中常用的一次纠错编码,
通常是采用两次附加纠错代码( fec )进行编码。这种纠错代理码的信息不必再是需要保存和反馈,而且实时性强。
因此目前国内外的广播系统几乎全部都是采用了这种频率编码。
在目前我国整个现代民用卫星信息通讯传输系统中,卷积码主要用途是把它作为其中各个卫星传输信道编码中双
信号层级和串联码的一个信号内码,与一个外码rs码一起,可以有效地同时修复和有效纠正随机和同时突发的编码错
误,在卷积码率峰值设定为10^-5时,其中每个卷积码的信号增益最高可达6.7db,大大提高了对民用卫星传输信号信道
进行高频数据信号传输的通信质量,而且也大大节省了民用卫星的传输功率。因此,在目前我国的民用卫星空间通讯
信道系统中电信rs号号码和卷积信道号码码以及其不同级别的卫星信道号号码现在已经逐渐变成了最2常用的卫星通
讯信道码。
而在目前的各种移动通信中,3g和4g的快速视频发展仍然离不开一个路由视频信道用来进行视频编码。例如,我
国的新新wcdma和新wcdma2000方案均认为建议广泛使用除了与新的is-95cdma编码系统相同的卷积混合编码和数字交
织汇编技术以外,还认为应该优先考虑使用turbo编码。随着对于ldpc等编码的进一步研究提出,国内外学者针对4g的
编码技术问题研究又进一步让人有了一个新的认识层次,并对5G进行了研究和改进实施。
2. 通信原理及通信系统仿真简介
2.1 通信的基本概念
通信按照我国传统理解的意思来说,它就是对信息的一种传输,其目标是向消息中包括的信息。它是对消息时各
种物质或者精神状况的一种体征和反映,在不同的时期都会具有不同的性格和表现。人们对于消息,最为关心的就是
信息中所包含的有效内容,即信息。而通讯则是为了进行消息的时间和空隙转移,即把一个消息由另外的一方发送给
对手。基于这样的认识,“通信"又可以说就是"信息传输"或"消息传输”。
通信的主要目的就是为了有效可靠地进行传递和交流信息,传递和处理信息所必须的各种技术装置和设备的数据
量总和被称为通信系统,通讯系统主要由信源、发送装置、信道、接受装置和信宿等五个大的组成部分共同构成,其
一般的模型结构如下表图2-1所示。
图2-1 通信系统一般模型
2.2 通信发展及趋势
通讯(communication)主要含义是在泛指一种信息的主要传输者(个别信息人或其他信息机器)与信息受众之间的
一种通讯,它们通常是由一定的传播媒介而通过特定的传播途径得以进行。实现这一点利用通信信息技术的应用途径
也确实有很多,例如,古时代战场上的军人们通常可以通过军事鸣金和遭受打击的鸣鼓向他们及时传递各种军事情报
作战的紧急命令,利用军事烽火台向他们及时传递各种军事情报敌情;以及利用现代化经济社会生活中的民用电报、
电话、广播、电视与民用计算机间的通讯等。
电信(telecommunication)电信是一种用于使用无线电信号技术进行数据传输和信号处理的一种电子通信传输技
术。1837年莫尔斯发明的一种有线电报,它已经开创了无线电信的新一代技术发展时代;1876年贝尔发明的一种计算
机无线电话已经逐渐发展成为我们在社会日常生活中随时进行电话通信的主要通讯手段;1918年采用调幅后的无线电
广播频率后的广播系统正式问世;1936年商业电视广播开播;1983年蜂窝状移动通信网(蜂窝网)首先在美国投入商业
使用;1987年11月在我国广州也开通了蜂窝网;1983年,美国国防部将阿帕网(ARPANET)分为军网和民网,后者逐渐发展
为今天的因特网。
在当今高信息化时代,信息和通信已经成为现代社会的“命脉”。信息作为一种资源,只有通过广泛地传播、
交流与共享,才能产生利用价值,而通信作为传输信息的手段,伴随着计算机技术、传感技术和微电子等技术,正
在和已经向着数字化、智能化、高速化、宽带化、综合化、移动与个人化等方向飞速发展。可以预见,未来的通信
必将对人们的生活方式、经济发展、政治、军事等方面,产生更加重大和意义深远的影响。
2.3 通信系统仿真及其重要作用
2.3.1 通信系统仿真基本概念
实际的无线通信系统本身就是一个功能相当复杂的无线通信系统,在对其原有无线通信系统进行改善或者重新建
立之前,通常都需要对该系统进行建模和仿真,通过建模和仿真的结果来评估解决方案问题的可行性,从中确定和选取
最合理的无线通信系统的配置和参数设备,然后再将其应用到实际的系统中,这个步骤就是无线通信系统的建模和仿
真。
2.3.2 通信系统仿真的重要作用
这种仿真方法可以使我们能够比较好地充分利用所需要的设计时间,很容易把数字与经验模型相互地结合在一
起,并且还结合了设备与真实信号相关性的特征进行了分析和设计,可以有效地减少了成本。
2.4 通信系统仿真的一般步骤
2.4.1 仿真建模
(1)对系统中可能出现的问题进行分析或者设定了一个改造后的目标;(2)将其转化为形容器并作为一个数学公式
与变量;(3)从图中获取实际操作的参数;(4)可以通过各种数学方法和工具来了解随机变量的分布特征;(5)利用仿真
软件搭建一个仿真模拟器。
2.4.2 仿真实验
多次地改变了仿真模型的各种输入信号的参考数据,以便于观察和分析仿真模型对各种输入信号的响应以及仿真
系统在这一步骤中所体现和显示出来的特点。在开始实施仿真之前,我们还需要确定的另外一个重要影响因素便是系
统的性能尺寸,它已经能够用来衡量系统在仿真的过程中各个系统的性能所产生输出信号的大小和数值,因此,我们还
需要确定在进行仿真的过程中,我们首先要确定何时才能进行仿真,而且这些数据都是以怎样的形式存在以及如何收
集到怎样的数据。
2.4.3 仿真分析
在我们进行系统仿真的整个过程中,我们从这些数据库中已经获得了关于整个操作系统整体性能的一些最初统计
数据,需要经过大量数值统计分析和数据处理之后才有能可以由此获得一个可以用来准确衡量整个操作系统整体性能
的衡量标准。
2.5 MATLAB语言简介
2.5.1 MATLAB简介
matlab 是英文 matrix laboratory 的缩写的英文意思,矩阵实验室就是其作为中文的翻译,它也是一款适合进
行商业应用的数学软件。 matlab 是一种高级技术应用计算语言和交互型环境,适合于进行数据可视化、交互型环境
和数据分析。 matlab 通过对矩阵进行运算、实现各种方法,绘制函数和其他的数据画面都是其常见的功能,
matlab 也经常被应用来帮助创建一些由例如 c , c ++的多种语言进行编写的应用程序。
MATLAB的基本数据单位是矩阵,与一般我们在数学等领域用到的表达式相比,它们极其相似,也是因此相对于
用C、C++等语言来解决运算问题,用MATLAB要比它们简单很多,使之成为一个非常强大的数学软件。还有一点就是
它有很强的容扩性,能直接调用其他语言编写的程序,将程序导入MATLAB函数库中就能很好的使用,也可以直接运
行一些已经被编写好的程序。
MATLAB的特点:
(1)此高级语言的特点是适合应用于科学和技术的计算;
(2)此类软件开发环境中的代码、文档及其他大量的数据库信息可以实现管理;
(3)其内部的二维或三维图形函数一般被广泛应用于对数据进行可视化;
(4)交互式的设计工具,它能够按照迭级换代的基本思路和来进行不断探查、设计和分析求解的复杂问题;
(5)它的数学函数通常被应用在 fft 分析、线性代数、统计等功能;
(6)各类函数都可以被应用来构建一个自定义的图形和用户界面;
(7)各种函数可集成一些外部应用程序或语言,例如C、C++、Java等。
2.5.2 SIMULINK简介
simulinki这是一种基于可视式优化的大型动态系统模拟仿真软件环境,其主要具有针对动态系统的模拟建模及
系统仿真等重要功能。simulink.它是simatlab最重要的工业集成软件环境分析组件之一,其所需要采用的都是综合
性环境分析集成环境技术使得我们完全具有了能够综合性地对其进行环境分析的数据技术处理能力,在这种集成环境
中,根本不必再需要大量的资料书写集成程序,只需通过简单的数据运算程序操作,就已经完全能够轻松构造设计出复
杂的工业集成软件环境分析系统,用于仿真分析等。在simatlab中,simulinki,是一种基于cad和可视化的图像仿真模
拟工具,是一个用于实现各种动态系统的图像建模、仿真和数据分析的模拟软件集,被广泛地用于应用在对各种线性
和非线性控制系统、数字控制及其他各种数字信号系统进行图像处理的系统建模和分析仿真中。Simulink提供了大
量的内置模块,还支持图形用户界面,可以更加简单直观对模块进行运用,构建出自己需要的系统,从而完成对系统的
仿真和分析。
图2-2 Simulink目录表
Simulink通过模块的链接、组合来构建动态系统仿真模型,主要的特点之一就是精确、快速。这个特性用于相对
复杂的非线性系统上,能够体现得更加明显。它支持线性和非线性,连续和离散的系统,或者说只有它们是一个混合体
系,且这种系统能够使多进程。而且其具备了对图形动画的处理方法,能够对整个系统进行仿真的工作流程进行视觉
观察。
它所具备的层次结构,在设计和管理各类系统时更加简单。在模块库中的非线性子库中有着自己专用的分层子系
统模块,并且也给它们提供了分层设计的功能。
1.子系统模块
在建立仿真模型的过程中可以把系统按照不同的功能分为不同的模块,每各模块都能够建立与之相对应的子系
统。在仿真模型中合理利用子系统能够有效地减少模块数量,让这个模型看起来更加简洁明了,从而使模型的扩展
和修改更加方便。
2.封装功能
simulink 利用其封装的功能使得一个子系统更加富有其特色。一个被封装后的雄性就可以拥有自己的图标、参
数及带有功能描述的对话框。同时,封装的功能大大简化了定义模型参数的操作过程,不仅可以使得仿真模型拥有一
个更清晰、简洁的界面,还可以很好地保证子系统内部结构不被轻易修改。
3.Simulink的优点:
(1)直接通过图形搭建模型,不需要编程,用户使用起来很方便;
(2)具有结构和流程清晰,效率很高,灵活性强等优点;
(3)其可持续扩展性较强、移植功能和可开发的应用程度高;
(4)语言简洁,内容丰富。
3. 通信系统信道编码简介
3.1 信道编码的概念及分类
进行信道编码主要目的是为了不断保证无线信号编码传输的数据准确性和可靠性的程度,改善我国无线通讯传输
系统的信号数字化度和传输信号质量,研究信道编码的基本宗旨就是为了通过寻找具体数据建立信道编码的相关技术
基础理论和应用方法。从技术原理上,信道编码的技术本质就是通过充分利用信道冗余度码元来有效降低信道误差的
发生概率,构造一种信道编码的一种基本思路就是根据一定逻辑规律在每个信道待测机发送的通道信息码元中判断认
为是否需要同时加入一定的多余码元,以通过引入最小化的冗余干扰程度码元作为主要代价,从而达到换取最好的抵
消信道干扰度的特性。信道编码编辑技术主要指的是通过信道编码器和数字信道信号翻转器和译码器等多种设备组
合来进行实现的一种专门用于有效改善和不断提高一个信道的编码可靠性的编码技术设计理论和编码手段,是现代信
息学编码理论的技术核心和主要内容之一,它主要目的是以如何保证数字信息在一个信道上正确地直接传输出来作为
主要技术目标的信道编码,它大致来说可以将其划分表现为两个基本维度:一者就是如何正确地回收接受一个载有数
字信息的信道数字信号,二者就是如何有效避免少量的信息差错数字信号对通道信息内容的不良影响。
信道编码分类:
(1)根据码的规律可分为:正交编码和检纠错码;
(2)根据监督元与信息组之间的关系可分为:分组码和卷积码;
(3)按照信息监督元与其他信息元的单位或者元之间的相互作用力的关系,我们一般可以将其编码划分分别为:
通用线性单位编码和非线性单位编码;
(4)根据码的功能可分为:检错码和纠错码。
具体分类框架如图3-1所示:
图3-1 信道编码分类框图
3.2 信道编码定理及常见信道编码类型简介
信道编码定理:若有一个非常离散而又没有记忆平稳的信道,其中容量分别为 c ,输入的序列长度分别为 l ,只
要是等待传输的信息率 r < c ,总是可以寻找到一种编码,当 l 的长度足够久时,译码出现差错的概率 p < k , k
为任意一个值大于零的正数。反之,当 r > c 时,任何一个编码函数的 p 必须大于零,当 l 趋近至无穷大时,P趋近
于1。信道编码的主要性能指标:编码功率(包括编码效率、代表功能、编码速度)、代表增益、编码延迟、代表译码
器的复杂程度和功率损耗。
3.2.1 卷积码
卷积码(convolutioncode)代码是一种类型属于非整数分组的编程代码,它主要指的也就是一种与大多数分组
(n0,k0)多码段息息相关、纠错性和处理实现能力较强的基于fec的代码。卷积码与(n,k)的写入分组码不同,它将(n,
k)写入分组码后的转换方式为(n0,k0),如(2,1)、(3,1)、(3,2)均为卷积码等。每一个信号监督编码单元不仅都大小
是由本码段(n0,k0)的k0位单个信号编码所占据决定,而且与其中当前n-1个码段的单位信号编码占据数量大小有关,
因此又被人们称为一个卷积码,它更合适更多地可以用于实现串行网络数据的高速传送,延时性较小。
本码段( n0 , k0 )和它们之前( n -1)段所构成的 n 个分组码段被称为约束长度:其码元量系数为 nn0 比特,
而 n 称为约束长度。因此,各码段( n0 , k0 )并非如同( n , k )的分组码一样,它们都是一个具有独立的差错编码
单元,其对于误差的控制功率由 n 个码段的大小来确定。所以通常把卷积码表写作( n0 , k0 , n ),其中 n = m
+1, m 为编码电路中的移动寄存器的数量。卷积码有两种:
(1)基础卷积码,基本卷积码的编码效率大约η=1/2,编码效率相对较低,优点之一就是纠错能力强。
(2)对于采样收缩截短卷积码,如果在一个网络中同时传输的多个信道信号质量相对较好,为了大大提高其网络编
码的传输效率,可以优先考虑同时采样一种收缩带宽截短的长卷积码,有η=1/2、2/3、3/4、5/6、7/8这几种相对具
有网络编码较高效率的采样收缩截短卷积码,编码后的速度和传输效率高,一定的网络带宽内即使同时可以将多个信
道进行传输的有效比特率也必然会逐渐增大,但是对于纠错的处理能力就必然会逐渐受到减弱。
3.2.2 线性分组码
3.2.2 线性分组码
简单来说,所谓"分组码"就是指分组码中数字的质量产生只与当前的源和源与数据量密切有关,而与前后的源和
源与数据量密切无关,相与之对应的,与前后源和源与数据量密切有关的分组码被统统分组称为码字卷积码。分组码
把连续的分组数据使用比特流进行分割后形成一个数据长度固定的多个数据小群组,各个数据小群进一步以s或m比特
为一个计算量的单位并在分割后构成一个分组符号(symbol),通常可以选择3比特或8比特的一个数据符号来直接构成
一个分组符号。k个分组符号一起编码组成了一个源字(sourceword),经过多次编码后又转变为一个带有长度分别为k
和n的码的源字(codeword),称为带有m比特分组符号的(n,k)比特分组码。所谓"线性",是它意指每一种不同编码方式
的变换过程均被我们视为线性变换,即可用一个矩阵线性变换器的方式编码来进行表达。目前正在进行研究的软件纠
错系统密码大多数都属于非线性纠错密码。在一个新的线性数字空间中,所有已经存在的和可能的两个m比特源编码
数字都存在是因为可以用它们文字来直接进行数据编码和文字变换,而且我们不必因此去过分关心那些新的m比特源
文字数据所要用来代表的什么意思。
3.2.3 循环码
循环码的基本表征特点之一是必须符合(n,k)这个线性代数分组码的基本特点–在循环码内(一个循环码的文字
代数集合)的任意两个码的数字之和均可以作为该码集合中的一个循环码的数字,这一类的基本特征可以证实(n,k)的
每个循环码都不是属于(n,k)而是线性代数分组码的一个子类。(n,k)循环码中任何一个位的循环数位码字连续从一
位移到第i位后的一个循环码位数字,仍然可以是所有属于此一个循环码的一个循环代号。循环码中次幂生成多项式
的必要条件也就是为某(n,k)循环码次幂是否位于该循环的必要条件,也就是说次幂为循环码长n的多项式因数xn+1,
可以得到通过循环分解因式得出至少1个因式的最高最低次幂为整数n-k=r,即该因式的最高最低次项为整数x(n-k),
最低最高次项为正常的整数1。其中的生成多项式的充分零利条件组合是由必须的充分条件组合计算方法得到的对g
(x),其多项式的非零利加权损益系数的零利个数尚且d0应当应该等于多项式的每个相应(n,k)部分的数组码的零权个
数尚且d0。之所以我们需要及时补充这一充分的差错条件,是因为如果代码符合必须的差错条件规则g(x)并不一定完
全会错即使我们完全能够直接计算得到和其代码对应的一个分组结构代码(n,k)相同的差错控制。循环源代码程序编
写主要步骤:循环源代码长度为四位m( x)=mk-1xk-1+…+ m1 + m0 ,应首先将 n - k 位提升至 m - k 位,变为 x
(n-k)m(x)。然后以生成多项式去除g(x),得
可得循环码:C(x)=x(n-k)m(x)+b(x)。
4. 信道
4.1 二进制对称信道(BSC)
二进制对称编码信道信号是一种具有离散性的完全无误差记忆符号信道,它可以是在其中j=k=2时的一个符号特
例,它的每个符号输入和一个符号输出都可以只能同时保持1和0两种符号状态,并且每次重复发送0而再次得到1以及
每次重复发送1而再次得到0(也就是说即为误差编码)的发生概率相同,因此它也叫做对称为使用二进制符号信道时对
称。此时不同条件下的信号差错转移概率由p表示,二进制对称模拟信道的信号传递率和转移差错概率公式如下图图
4-1所示:
图4-1 二进制信道转移模型
该信道的信道转移概率矩阵为:
4.2 二进制删除信道(BEC)
二进制删除信道的特点是,信源传输0或1时,接收端以1-a的概率正确接收,以概率a被删除。其转移概率如图
4-2所示:
图4-2 二进制删除信道模型
4.3 高斯白噪声信道(AWGN)
在这个波动过程中,它们随时都会不可避免的都会受到各种噪声干扰,这些被人们统称之为"噪声",加性高斯白塞
尔噪声,aawgn既然它就是最常见的一种随机噪声,也就是可以说它就是最简单的一种随机噪声,它主要就是表现在由
中心哈希波围绕频率平均值的一种随机频率波动的噪声过程。加性高斯白谐波噪声的方差平均值一般为0,方差则主
要表现在谐波噪声驱动能量和谐波功率之间的相互关系上。一般来说,噪声信号功率波动范围越大,信号功率波动的
最大幅度也就愈来越多,接收端所接受的信号误比特频率越大。在深入地研究无线通信系统的误码率和其对应的通信
质量之间的影响时,一般首先要深入地研究其在加性高斯白噪声信道下的特点和性能,然后再把其推广至具有迅速衰
落的复杂应用场景。AWGN信道模型如图4-3所示:
图4-3AWGN信道模型
awgn输入信道增加模型噪声是在泛指在通过该输入信道的每一个输入信号上都不需要进行添加高斯白声的噪声,
通常在每个信号上需要增加高斯噪声的信号频率增加幅度和影响范围可以使用高斯信噪声对比(snr)公式进行模型表
征,信噪比一般被明确定义成分为增加信号输入功率和增加噪声进入输出信号功率的绝对比值(dB形式),
5. 线性分组码–Hamming码仿真及结果分析
5.1 汉明码编码原理
在电信技术中,汉明码指的是一种非常线性的调试码。当计算机执行存储或转移等操作时,其中在某个数据位上
的一些信息很快就已经有可能直接使得它们之间产生了异常错误,这种异常情况发生在当然可能发生的这个时候就可
能需要我们及时利用汉明码技术进行对其的实时检测和进行纠错。汉明码码集是一个有效的用于错误并行校验的代
码码集,它最初是由他在hamming1992年发明的,所以它被重新命名和称为汉明码。
汉明码还充分地合理利用了奇偶校验位的编码概念,这一点与其他编码错误奇偶校验位代码相似。通过在指定的
数据位之后再添加附上一定量的比特,就已经能够很好地达到了验证这些数据是否有效的目标,这种方法非常实用。
它主要是通过使用多余一个的校验位,来检测和验证这个数据的准确和有效性,以及在错误的情况下寻找到错误位置,
方便纠错。
在接受端纠错译码,通过自动纠正传输中的差错来实现码纠错功能,称为前往纠错 fec 。 fec 属于三种常见的
差错控制模型之一,另外两种分别为检错再次发( arq )以及混合纠错。而 FEC 的特点主要体现在其根本不需要反向
信道而且实时性非常好。前向纠错码( fec )的编号是指对象具有某种纠错性和修复能力的编号码,它是自动纠错的,
在接收端译码后,对其中错误的码进行自动纠错,不需人为操纵。汉明码是一种运用奇偶块的机制,从而实现了降低前
向和纠错成本的目标。
对一组数据的值进行奇偶校验的两种途径:首先你需要通过计算器给出一组数据中1个数的个数,通过另外方法增
加一个0或1(称为偶数校验位),使1的奇偶个数转化成奇(偶偶数校验)或偶(偶偶奇校验)。例如,数据1001总共可能是
4个比亚尼特位,其中可能包括2个1,1的每个值都可能是一个偶数,因此,如果它们都真的是针对偶性进行校验,那么本
次新增的偶性校验位也可能就是一个0,反之,又不需要重新添加一个1作为本次新增的偶性校验位。通过"异或"组合
运算中的方法可用来直接自动实现偶或奇校验,"同或"组合运算中的方法可用来直接自动实现奇或偶校验。单个比较
偶特位的计算错误处理可以直接通过对于1的单个数目计算是否正确的错误进行数值计算和数据分析得表现出来,如
果1的单个数目确实是正确错误,说明我们已经正确发生了一个比较偶特位的计算错误,这也就意味着这些数据在音频
信息信号传输的整个过程中会被认为受到各种音频噪音的直接影响。利用了更多的码字校验位,汉明码码器能够自动
检测并找到其中两位的检测码字出错,每个第一位的检测码错都可以是通过对一个数据中不同位的码错组合情况进行
分析计算得到的出来。校验位的参数大小和层次数量与所有的需要输入传输总位信息的层次数量和传输总位的层次
大小数量有关,可以由使用汉明威尔法则法来进行精确计算:
d+p+1<=2 的 p次方
d 表示数据的传输位和校验值的数目, p 表示校验值的数量。两个组成部分的码字合称为汉明码字,通过将每个
数据的位与一个产生的矩阵加起来相乘,就能够直接生成汉明码的文本。
汉明码技术是一种指在原始编码数据中通过插入若干个经过校验的代码然后用于对其数据进行不同的编码错误
识别检测和乱码修改等等的一种编码和后处理编程技术。以典型的4位编码数据传输编码器为例作为一个案例,汉明
码将其中每位加入3个数位校验码,从而我们可以直接使得我们实际需要传输的每个数据位分别可以达到7个(位),它
们的传输位置如果把我们上一张图中的那个位置进行纵向倾斜地完全横过了那接下去的那就是:
数据位
1 2 3 4 5 6 7
代码
P1 P2 D8 P3 D4 D2 D1
说明
第 1 个汉明码
第 2 个汉明码
第 1 个数据码
第 3 个汉明码
第 2 个数据码
第 3 个数据码
第 4 个数据码
注:dx的其中的一个x次幂是2的一个整数幂(下面的每次幂都只能是其中指一个整数幂)的编码结果,多少个次幂
主要的数取决于其编码位,d1是0次幂,d8是3次幂,想想用一个二进制的数来编码就已经完全知道了。再者,汉明码的
每次加插和节点及其位置也是完全没有固定法则的。以四位码的数据顺序为准举例,第一个汉明码的定位顺序应该是
第一位,第二个码的顺序应该是第二位,第三个码的顺序应该是第四位,1、2、4都可以应该认为是2的一个整数数和幂
相除次数相加结果,而这个整数幂的相加次数结果应该指的是从0开始的一个整数。这样我们就已经能够通过推断可
以得出,汉明码在其中的每个插入的节点及其位置次数分别为1(20)(或译注:20代表2的0次幂))、2(21)、4(22)、8
(23)、
16(24)、32(25).
下面以(7,4)hamming 码为例, 简单介绍其参数:
码长:
m
n=2 -1
信息位:
m
k=2 -1-m
效验位:m=n-k (m 大于等于 3)
最小码距:
其生成矩阵 G 如下:
(其中前四位是信息位,后三位是监督位)
此次也是利用(7,4)汉明码进行仿真,使用的是高斯白噪声信道和二进制对称信道,可以通过观察仿真结果观察
其编译码性能的优缺点。
5.2 汉明码编码及仿真
5.2.1 汉明码对高斯白噪声信道
仿真代码编制过程:产生随机信号源→汉明码编码→调制→通过带噪声信道→解调→汉明码译码→统计译码错
误码元数→计算误码率出图。
具体代码见附录1,仿真结果图及分析:
图5-1 汉明码对AWGN信道仿真的误码率曲线图
对图5-1的观察, 我们已经开始可以清楚地明显看到,在高斯白色光噪声的两个信道里,当其中的一道信噪比频
率变得越来越大时,误码比频率就可能会逐渐变得更低,到一定的复杂程度,信道在其中的误码比频率就可能会逐渐变
为0。仿真后的结果与其他理论应用仿真器的结果性能基本相同。
5.2.2 汉明码对二进制对称信道的仿真
仿真代码编制过程:生成(7,4)汉明码信息块→ 进行二进制转换→计算误比特率→比较接收到的码字矢量→
计算误码率出图。
具体代码见附录2,仿真出图 5-2:
图5-2 汉明码对BSC信道编码后误码率的曲线图
在如上图5-2中,我们不仅可以清楚地由此看到,其中在红蓝色两条曲线中所指的也就是经过矢量模拟后的一个误
码率均值曲线,而在白黑色两条曲线中所指的则则是经过矢量分析后计算得出的一个误码率均值曲线。上面的的白黑
色两条曲线中所表示的则就是它在概率函数误差中将p最大化后取得数值的实际误码的概率,下面的白黑色两条曲线
中所表示的则就是它在概率函数误差中将p最小化后取得数值的实际误码率。由此可从图中我们不仅可以清楚地明显
看出若只有一个误码概率值的误差最多,bsc信道的发生误码的概率也就可能会随之变得更高。
6. 卷积码仿真及结果分析
6.1 卷积码定义与原理
卷积向前代码纠错是常泛指一种对卷积向前过程纠错的一种控制式过程编码。它把连续的数字信息比特包和序
列进行映射来形成一个连续的数字编码器,输出一个数字符号。这种编码映射实际上已经是高度的非结构化的,使得
卷积模式代码的各种译码使用方式与其他分组卷积代码根据译码所用的需要同时采用的编码方式截然不同。我们甚
至可以这样说已经验证的结果是,在同一个具有复杂性的编码情况下,卷积结构代码的平均编解效率增益远远需要大
于一个分组结构代码的平均编解效率增益。对于某个特殊的编码应用,采用卷积格式编码或者者说是直接采用卷积格
式编码谁有时会不能做到更好则主要是其依赖于这一特殊编码应用的实际实现情况及对其进行综合比较时的综合可
用性。卷积编码的最优质量译码评估准则一般认为:在一个已经给定的具有已知信道编码序列结构、信道编码特征和
已经接受到编码序列的特定条件下,译码器可能会把与已经被一个传递的编码序列最相似的编码序列的值当做或者是
一个传送器收到的码源和字符号序列的评估值。对于一个采用二进制对称的无线信道,最相似的无线传送信道序列形
式是,它指在一个汉明的信道距离曲线上最近于一个接受点的序列。卷积码的编写门限符号译码编写方式主要分为有
两种大致的译码类型:一类方式叫做基于大数据中的逻辑符号译码,又称之为门限符号译码(硬件软判决);另一种基于
语言的则是叫做概率符号翻译(软件硬判决),概率符号翻译又大致可以再细分为维特比符号译码和概率序列符号翻译
两种。门限概率译码的方法是以概率分组码法的理论来作为基本编码理论依据的,其门限译码控制装置虽然设备简
单,速度快,但其相对误码的控制性能却远远远要低于概率译码法的方法。
6.2 维特比译码原理
采用这种概率比较编程语言译码的基本程序设计及其思想的也就是:把已经被编码接受的两个序列与所有当前可
能同时发送的两个序列之间进行概率比较,选择其中码距最小的一个时该序列也就称为可能发送到的序列。如果向相
同l的两组程序发送的代码信息全都是比特,那么对于(n,k)卷积式的代码来说,可能向相同l的两组代码发送的比特序
列总共可能有2kl个,计算机或者其它编程语言译码器都必须一定要同时存储这些比特序列并对其中值进行多次比较,
以便尽快找到两组代码之间距离最小的那个比特序列。但是当实时传输的参考信号次数频率和实时消息编码组的传
输参考信号次数相差l较大,使得这种翻转式的编码器很难成功实现。维特比特的算法则正正是将上述的新型概率文
字翻译算法做出了精心的的简化,以至于使它成为了一种更加实用的新型概率文字翻译分析算法。它指的并非在一个
代码网格结构图上一次次性地直接比较所有最大可能的2kl条代码路径(似然数的值可能序列),而是一次次性地首先
接收一段,计算和逻辑分析后再比较一段,选取一段最大似乎自然值的所可能的子代码段,从而获得可以直接达到整个
编程代码的可能序列,也是说就是一个最大似然数所值得的可能序列。
下面以图 6-1的左(2, 1, 3)卷积码编码器所编出的码为例, 来说明维特比解码的方法和运作过程。 为了能
说明解码过程, 这里给出该码的状态图, 如图 6-1右图所示。
图6-1 左a(2,1,3)卷积码编码器图右b(2,1,3)卷积码状态图
维特比尔的翻译系统需要用户使用一个图片说明演示转换源代码的翻译流程。根据一个卷积码在图上直接绘制
一个网格的具体操作完成方法,我们就已经可以直接生成绘制和输出该卷积码的具体网格结构图,如下图列表所示。
该图假定用户输入的小时信息量也就是这个数目中的l=5,所以在其中需要绘制一个l+n=8个小时的时间单位,图中分
别以0到7。此处可以假定你所设置的编码器可能是在没有a类的状态下进行启动。该模型网格物理图上的各条网络路
径分别对应了不同的网络输入和输出信息传递顺序。由于所有发送输入和输出信息的输入序列总共可能有2kl个,因
而在一个网格结构图中的所有进入输出和信息可能输入路径总共为2kl条。这里的四个节点数为a=00,b=01,c=10,
d=11。
图6-2 (2,1,3)卷积码网格图
假如我预设一个数字输入信号编码器的输出信息状态序列信号是(11011000),则由输入编码处理器输出给定的一
个输出状态信号信息序列可以表示为其中y=(1101010001011100),编码器的输入状态信号变换器的转移信号路径被我
们称为aaabdcbdca。若一个接收器看到的图像是一个序列网格r=(0101011001011100),对照一个序列网格中的图像可
用来详细说明维特比特编译码的操作方法。由于该卷积码的约束长度为6位,因此先选择接收序列的前6位序列 R1=
(010101)同到达第3时刻的可能的8个码序列(即8条路径)进行比较,并计算出码距。该例中到达第3时刻 a 点的路径
序列是(000000)和(111011),他们与 R1的距离分别为3和4;到达第3时刻 b 点的路径序列是(000011)和(111000),他
们与 R1的距离分别为3和4;到达第3时刻 c 点的路径序列是(001110)和(110101),他们与 R1的距离分别为4和1;到达
第3时刻 d 点的路径序列是(001101)和(110110),他们与 R1的距离分别为2和3。上述每个路径节点都可能需要分别
保留一个码距较小的一个路径作为其好运幸存的编码路径,所以目前幸运保存在每个路径节点中的编码序列分别应该
是(000000)、(000011)、(1101001)和(001101),如下表图6-3所示。用于上述类似的计算方式我们就已经能够精确得
出第4、5、6、7时刻所有幸存的时间路径。
图6-3 维特比译码第3时刻幸存路径
其中一个需要特别注意的一点就是,对于某个挑选节点,如果通过计算比较两条接受路径和两个接受节点序列之
间的距离累加的译码值当距离的值都完全相等时,则我们就完全可以任意地为被挑选者选择一条新的路径用来做为其
节点幸存的最终路径,吃时也就不会直接得到影响最终节点译码时的结果。在事件编码的最后一个特定时刻中当a进
入状态,得到了一条有效的一个幸存事件路径。结构如本框图6-4所示。由此我们通常可以清楚地能够看到,译码器的
一个输出信号就是如果r=(1101010001011100),即可将其数值变换为生成一个序列(11011000),恢复了整个编译器的
各触发端原来的序列信息。将两个r-r和两个r+r编码序列8位进行一次比较,就已经可以清楚地明显看出我们在进行
编码的整个过程中已经纠正了编码序列1和编码序列7位上的两个错误。当然若是多个差错的同时出现过于频繁,以至
于完全超出了单个卷积码的实时纠错处理能力,还是很大的有几率可能甚至会导致使多个卷积码同时发生其他错误。
图6-4 第八时刻幸存路径
6.3.2 简化维特比译码器的仿真
为了充分同时验证两个译码处理模块的工作可靠度和编码正确性,便捷地允许它们同时进行一个最简单的虚拟模
式信号操作,为此,临时用户需要重新设计一个比较简化的模式信号系统,关闭整个信道电路中的信号噪声,不对整个
信号系统进行任何基于二进制信号相位比的调制与信号解调,去掉一个低错误比特率的信号统计译码模块。为了能够
使每个用户同时能够清楚地分别看到通过硬件输入一个二进制码和通过翻转软件译码后通过软件输出的两个二进制
码,我们在这个软件中分别添加了两个输入toworkspace(通过这个输入转换得到的代码是位于工作区域的模块),整个
软件操作系统的各个模块硬件结构和架框图及其设计过程如下图代表图6-10所示。
同时,为了更加方便于人的观测,将有ibernoullibinarygenerator(贝努利二进制数的序列产生器)的编码参数设
置可以直接设置成如下图表6-7所示,以便于同时产生简单的15位的十二进制随机编码,也将设为viterbidecoder的值
为trcebackdepthr的值进行修改后设为5。把一个toworkspace1模块和一个toworkspace两个模块的其中的两个变量
名分别设定成与者pdata与者pdata。
表6-7 简化译码模块的BernoulliBinaryGenerator的参数设置
参数名称
参数值
模块类型
Bernoulli Binary Generator
Probability of zero
Initial seed
0.5
5
Sample time
10
Frame-based output
Samples per frame
Checked
5
运行这个仿真,在输入matlab的两个命令窗口中通过两个输入命令pdata和输入data分别依次求出了两个相应的
四位二进制编码顺序。对于图中所得的两个序列分别可以进行多次截图,可以直接获取一个如下式中所示的截图结
果。可见,译码器不知是否完全能够正确地对其进行中文翻译,所以译码设计的过度简化会使译码器正确,因而,从理
论上也完全可以由此推导,原来的译码设计正确。
data
data =
1
1
0
1
1
pdata
pdata =
1
1
0
1
1
5.3.3 卷积码译码器的误码率分析
编制 M 文件 convolutionh.m, 使 convh.mdl 在不同的信噪比条件下重复执行前面建立的项目 convh.mdl。
然后绘制信道的信噪比与编码信号误比特率之间的关系曲线图。
M 文件代码如附录3所示,执行此 M 文件, 得到如下图6-11 所示的关系曲线图, 从这个曲线图中我们也就可
以明显看出,随着一个信道信号相对性和讯号信噪比的显著增加,维特比信号编译算法所得得出结果的总错误比特率
就越低,信道的信号相对性和信号可信度就可能会变得越高,信噪比在误码比特率的值大于-2时则该信道的信号相对
性误码比特率就可能会从一开始变得有了明显的显著降低。
图6-11 viterbi译码器对高斯白噪声信道的误码率曲线图
6.4 卷积编码器在二进制对称信道(BSC)中的性能
二进制对称符号信道编码模块的一个重要技术用途之一就是说它可以被广泛用来帮助检验信道编码的信号校正
错误纠正和信号检错的综合性能,因为它不仅可以方便地帮助设计和分析建立一个信道的信号误比特率和信道编码器
在信号中的误比特率之间的反比关系。此章以卷积信号编码器件作为主要案例,简单化地介绍了卷积信号编码器在模
拟二进制数字信道传输中的信号传递编码性能。卷积射频编码器凭借其优异的高抗矫缠干扰性能,已经被广泛应用运
行于各种移动端的通讯通信系统中。IS-95的前向输出信道和后向输入信道都可以是一个采用卷积方式编码器,这些
卷积方式编码器的空间约束值和时间及其长度都大约可以看作是9,码率大约可以等于1/2或1/3。对于逆向移动业务
发送信道(逆向即从一个移动通信平台发送到移动基站各个传输方向的业务信道),速率集1(Rate Set1)码率可以直接
采用一个码率为1/3的卷积形式编码器(3个信道码率都可以一次生成多项式分别对应相当于八进制编码代数557、663
和711),速率集2(Rate Set2)则码率可以直接采用一个码率为1/2的卷积形式编码器(码率也可以两个生成多项式分别
对应为两个相当于八进制代码函数753和561)。在本次测试实例中我们将看到采用一个逆向全速传送业务数据信道
(其中的全速数据信道传送负载速率大约为9600bit/s)的数据速率集1进行卷积生成编码器。如所示图6-12所示为本
课程实例下系统软件构建的一个基础性功能框图。
图6-12 仿真系统
整个系统都已经基本建成了完毕。要开始运行一个实例程序,首先要在工作区里建立一个变量BitErrorRate,并
且将其数值设置成所有你需要的一个二进制对称信号通路所在信道上的一个错误比特率。在这个数据编辑器的程序
里我们已经采取了一个非常缺省的实例数据矢量运行延迟时间(10秒),运行在本模块实例数据编辑器的程序,显示了
本模块中每个数据译码完成后所需要显示的实际误比特率,问时在这个数据帧的工作区中我们同样可以清楚地显的看
到,变量DecodedRrrorratet这是一个单独的带有长度大约为501bit的数据矢量,其中每个矢量元素都可以代表一帧这
个数据帧在译码之后的实际误比特率。
为了检查和观察两个二进制对称信道不同的错误比特率及其在卷积编码器中的性能产生什么样的影响,我们可以
多次地改变 BiteRrorRat 的一个数值,然后再重新开始运行一个实例程序。这时候我们就会有一个程序,具体见于
从上述图6-13中我们不仅可以清楚地明显看到,当一个卷积二进制对称编码信道的两个误码率均匀值系数要求远
远小于20%,卷积随机编码数字信号的两个误差和码率均匀值要求远远不能低于一个卷积二进制对称编码信道的两个
误码的比率;而且仅仅当一个卷积二进制对称编码信道的两个误码率要求超过20%,卷积式随机编码数字信号的两个误
码的比率要求接近为50%。这就是怎么说明,当一个随机信道的原有错误信号编码纠正率已经超过20%,卷积式的错误
编码基本上就丧失了其自身原有的信道错误编码纠正处理能力。在理论实践和实际应用中,移动无线通讯通信系统的
频率调节和信号解调控制技术必须能够有效确保每个信道的错误比特率远远不得少于5%。依照我们的系统模拟软件
仿真。当一个生成信道的总错误比特率大约应该等于5%时,卷积信号编码生成信号的信道误码比特率大约应该远远低
于0.03%。由此我们不仅可以清楚地确的看到.卷积纠正编码器软件是一种能够具备非常好的卷积纠正错误处理能力
的编码软件。
6.5 卷积码译码器对二进制对称信道和高斯白噪声信道仿真比较
从上述 2 个仿真中的图6-11和图6-13可以看出,高斯白金管噪声器在信道中的viterbi的译码随着每个信道的
编码误比特率不断增加,误比特率就越低,信道的编码准确性,纠错错误能力就显得越高。而在一些传统的单个二进制
对称符号信道中,随着单个二进制对称信道的并行误比特码率不断增加和速度提升,viterbi的误译码的并行误比特率
就愈来越高,所以当一些传统的单个二进制对称符号信道的并行误比特码率逐渐增加提升到一定程度范围后,viterbi
的误译码几乎就有机会下降使其完全失去了并行纠错的处理能力。不过,从高斯二进制对称卷积信道和高斯白金低噪
声对称信道中我们已经可以明显发现,卷积信号编码器在viterbi中的译码不能具有非常强的校正和纠错性。
附录 1:汉明码对AWGN信道的仿真
随机信号源:
function [out, rc]=inform(k)
rc=rand(k, 1) ;
for n=1: k
if rc(n) >=0. 5 out(n) =1;
else out(n) =0;
end
end
产生高斯噪声:
function out=noise(snr, k, r)
snr=10^(snr/10) ;
rate=k/(k+r) ;
q=1/(sqrt(2*snr*rate) ) ;
out=randn(1, k+r) *q;
汉明码编码:
function code=hamming(ic, k, P)
IG=eye(k) ;
G=[IG, P' ];
code=rem(ic*G, 2) ;
汉明码译码:
function out=dehamming(in, k, r, P)
m=k+r;
IH=eye(r) ;
H=[P, IH];
S=rem(in*H' , 2) ;
n=0;
while n<m
n=n+1;
h=H(: , n) ;
if S==h'
break;
end
end
in(n) =1-in(n) ;
for i=1: k
out(i) =in(i) ;
end
调制:
function out=modd(in, k, r)
m=k+r;
for n=1: m
if in(n) <1
out(n) =-1;
else
out(n) =1;
end
end
解调:
function out=demod(in, k, r)
m=k+r;
for n=1: m
if in(n) <0
out(n) =0;
else
out(n) =1;
end
end
总程序
k=4; %信息位
r=3; %监督位
P=[1 1 1 0; %校验矩阵
0 1 1 1;
1 1 0 1; ];
SNR=1; %信噪比
N=1000; %测试的数据包数目
w=0; %译码错误码元数目统计的变量
n=1;
while n<N %测试数据包
[ic, rc]=inform(k) ; %产生随机信号源
hc=hamming(ic, k, P) ; %汉明码编码
mc=modd(hc, k, r) ; %调制
nc=mc+noise(SNR, k, r) ; %通过带噪声信道
dmc=demod(nc, k, r) ; %解调
dhc=dehamming(dmc, k, r, P) ; %汉明码译码
for m=1: k %统计译码错误码元数
if dhc(m) ~=ic(m)
w=w+1;
end
End
n=n+1;
end
BER=w/(N*k) %计算误码率
semilogy(SNR, BER) ;
附录 2:汉明码对BSC信道的仿真
% (7, 4) 汉明码仿真
%定义变量(7, 4) 汉明码模拟
k = 4; %
n = 7; %
p_vector = 0. 1: 0. 01: 1; % 向量 P 的值, 误码率
N = length(p_vector) ; % p_vector 的长度
RUNS = 5000; % 运行数
% 码字表
xtable = [0 0 0 0 0 0 0; . . .
1 1 0 1 0 0 0; . . .
0 1 1 0 1 0 0; . . .
1 0 1 1 1 0 0; . . .
1 1 1 0 0 1 0; . . .
0 0 1 1 0 1 0; . . .
1 0 0 0 1 1 0; . . .
0 1 0 1 1 1 0; . . .
1 0 1 0 0 0 1; . . .
0 1 1 1 0 0 1; . . .
1 1 0 0 1 0 1; . . .
0 0 0 1 1 0 1; . . .
0 1 0 0 0 1 1; . . .
1 0 0 1 0 1 1; . . .
0 0 1 0 1 1 1; . . .
1 1 1 1 1 1 1; ];
for (p_i=1: N)
error = 0; % 错误的数
p=p_vector(p_i) ;
for (r=1: RUNS) %生成 4 位的信息块
z = unifrnd(0, 1, 1, 4) ; %0 和 1 的 4 位串
w = round(z) ; %圆的 Z 值
%找到行的索引, 二进制转换:
m = w(1) + w(2) *2 + w(3) *4 + w(4) *8;
x = xtable(m + 1, : ) ;
z = unifrnd(0, 1, 1, 7) ; % 0 和 1 的 7 位随机字符串
zi = find(z <= p) ; %错误的位置
% 误比特率
e = zeros(1, 7) ; % 创建一个 0 的 7 位串
e(zi) = ones(size(zi) ) ; % 创建一个字符串的大小 Zi
y = xor(x, e) ; % 异或 X 和 E
%
for(q=1: 16)
dH(q) = sum(xor(y, xtable(q, : ) ) ) ; % 比较接收到的码字矢量
if(dH(q) <=1)
wh = xtable(q, 4: 7) ;
end
end
% 计算误码率
dHw = sum(xor(w, wh) ) ;
error = error + dHw;
end
BER(p_i) = error/(RUNS*4) ; % 误码率计算
P(p_i) =p; % 存到 p
end
Ps=logspace(-4, 0, 200) ;
Pb_high = 1 - ((1-Ps) . ^7 + 7. *(1-Ps) . ^6. *Ps) ;
Pb_low = (1 - ((1-Ps) . ^7 + 7. *(1-Ps) . ^6. *Ps) ) /k;
figure(1)
plot(P, BER, ' bx' , Ps, Pb_high, ' k-' , Ps, Pb_low, ' k-' )
legend(' Simulated' , ' Analytical' )
xlabel(' Probability of Error for BSC (p) ' )
ylabel(' BER' )
title(' Figure 1 - Bit Error Rate for Hamming code over BSC' )
附录 3:Viterbi译码器对AWGN信道的仿真
%x 表示信噪比
x=-10: 5;
%y 表示信号的误比特率
y=x;
%准备一个空白图形
hold off;
%重复运行 convh. mdl, 检验不同条件下硬判决译码的性能
for i=1: length(x)
%信道的信噪比依次取 x 中的元素
SNR=x(i) ;
%运行仿真程序, 得到的误比特率保存在工作区变量 BitErrorRate 中
sim(' convh' ) ;
%计算 BitErrorRate 的均值作为本次仿真的误比特率
y(i) =mean(BitErrorRate) ;
end
%绘制 x 和 y 的关系曲线图, 纵坐标采用对数坐标
semilogy(x, y) ;
%保持已经绘制的图形
hold on
附录 4:Viterbi译码器对BSC信道的仿真
%x 表示二进制对称信道的误比特率的各种取值
x=[0. 01 0. 02 0. 03 0. 04 0. 05 0. 1 0. 15 0. 2 0. 25 0. 3 0. 4 0. 5];
%y 表示卷积编码信号的误码率, 它的长度与 x 的长度相等
y=x; %对 x 中的每一个元素依次执行仿真
for i=1: length(x) %将二进制对称信道的误比特率设置为 x 的第 i 个元素的
数值
BitErrorRate=x(i) ; % 运 行 仿 真 ,仿 真 结 果 保 存 在 向 量
DecodedErrorRate
sim(' project' ) ;
%计算 DecodedErrorRate 的平均值作为卷积编码信号的误码率
%为了计算的准确性, 舍弃其中的头 100 个元素
y(i) =mean(DecodedErrorRate) ; %(101: 504) ) ;
end
%绘制 x 和 y 的对数关系曲线图
semilogy(x, y) ;
7.总结
在这份毕业设计中, 主要是对不同信道的仿真中学会一些译码, 卷积码和汉明码。 通过整个系统的设计与仿
真, 使我加深了对卷积码和汉明码的理解, 掌握维特比译码的基本思路, 知道如何进行误码率分析从而选者合适
的信道传输信号, 更重要的是学会了使用 Matlab 作为学习工具来对我们的通信系统进行设计和仿真等操作, 这
对我们以后的学习和工作有着重要意义。
通过参考资料, 向同学请教, 导师的教导完成了这份毕业设计, 由于本人的能力有限, 时间也有限, 这份
毕业设计的要求并没有完全实现。 可是在这次设计中让我体会了 matlab 的强大功能和应用, 让我了解了以后工
作中会需要用到matlab, 为我以后的工作铺下了奠基石。
对过去而言, 这是一次总结, 对于将来, 则是新的迈向更高知识阶梯的又一起点。
致谢
四年前带着许多美好的愿望来到红河学院,一转眼大学生活就已经要走到尽头了,离校的日子越来越近,论文
的写作业进入了尾声。在这期间遇到了很多困难,也受到很多帮助,最终还是完成了。
首先我要感谢我的导师段老师,在选题的时候,段老师就提供了很多意见给我参考,论文写作的时候遇到了很
多问题,老师都很耐心给我解答,即便是在节假日向老师提问,他都在第一时间为我解惑。也感谢红河学院工学院
为我提供了一个学习的平台,在这里不光学到了专业知识还遇到了许多有趣的人。最后感谢我的同学,因为不在学
校,都是同学积极地帮我处理学校的一些事宜,在忙绿的实习生活和论文双重压力下,也是他们鼓励我继续前行。
由于时间仓促、自身安排等原因,文章仍然存在错误疏漏之处,恳请各位老师们斧正。
虽然四年的大学生活留有很多遗憾,但也让我更加明白自己想要什么,有了自己的理想、爱好和非常珍贵的朋
友,希望大家都越来越好。