基于VHDL的卷积码编解码器的设计Word格式文档下载.docx
《基于VHDL的卷积码编解码器的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于VHDL的卷积码编解码器的设计Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
2.1卷积码编码器的结构4
2.2卷积译码器的结构4
3卷积码编解码器的VHDL设计5
3.1VHDL设计的优点与设计方法5
3.2卷积码编码器的VHDL实现5
3.2.1卷积编码器顶层建模的VHDL描述5
3.2.2用MAX+PLUSⅡ编译后生成的编码器图形符号7
3.2.3卷积编码器VHDL仿真波形7
3.3卷积码解码器的VHDL实现7
3.3.1卷积解码器顶层建模的VHDL描述7
3.3.2用MAX+PLUSⅡ编译后生成的解码器图形符号9
3.3.3卷积解码器VHDL仿真波形9
4参考文献9
5后记10
1引言
1.1项目背景
现代数字通信有两个基本的理论基础,即信息论和纠错编码理论,它们几乎是同时在第二次世界大战结束后不久诞生的。
前者首先由Shannon以他的不朽名著“通信的数学理论”为标志建立起来的,而后者则以Hamming的经典著作“纠错和检错编码”为代表。
Shannon信息论主要讨论信息的度量,以及对于信息表示和信息传输的基本限制。
信道编码定理告诉我们,只要信息传输速率小于信道容量,则信息传输可以以任何小的错误概率进行。
但是,Shannon信息论并没有告诉我们如何去实现这一点。
Hanmming提出的纠错编码理论正是为了解决这个问题。
科学技术的发展使人类跨入了高度发展的信息化时代。
在政治、军事、经济等各个领域,信息的重要性不言而喻,有关信息理论的研究正越来越受到重视。
20世纪50年代信息论在学术界引起了巨大的反响。
20世纪60年代信道编码技术有了较大进展,成为信息论的又一重要分支。
信道编码技术把代数方法引入到纠错码的研究,使分组码技术的发展到了高峰,找到了大量可纠正多个错误的码,而且提出了可实现的译码方法。
20世纪70年代卷积码和概率译码有了重大突破,提出了序列译码和Viterbi译码方法,并被美国卫星通信系统采用。
信道编码器的作用是在信源编码器输出的代码组上有目的地增加一些监督码元,使之具有检错或纠错能力。
信道译码器具有检错或纠错的功能,它能将落在其检错或纠错范围内的错传码元检测出来并加以纠正,以提高传输消息的可靠性。
1955年埃里斯(Elias)最早提出的卷积码使信道编码既简单又具有高性能。
1967年维特比(Viterbi)提出了最大似然译码,它对存储器级数较小的卷积码的译码很容易实现,人们后来称它为维特比算法或维特比译码,并被广泛地应用于现代科技中。
2卷积码编解码器的结构概述
2.1卷积码编码器的结构
通常把卷积码记为:
(n,k,N),其编码效率为k/n,N称为约束长度。
(n,k,N)卷积码可用k个输入、n个输出、输入存储为N的线性有限状态移位寄存器及模2加法计数器电路来实现。
卷积码的编码方法有两类:
图解法和解析表示。
图解法包括:
树图、状态图、网格图。
解析法包括:
离散卷积法、生成矩阵法、多项式乘积法。
本项目设计的编码器选择了多项式乘积法,其结构如图1所示。
图1卷积编码器结构
2.2卷积译码器的结构
卷积码的解码方法主要有两种:
代数译码和概率译码。
代数译码是根据卷积码的本身编码结构进行译码,译码时不考虑信道的统计特性。
概率译码在计算时要考虑信道的统计特性。
大数逻辑解码器是代数解码最主要的解码方法,它既可用于纠正随机错误,又可用于纠正突发错误。
本项目所选系统卷积码的大数逻辑解码器如图2所示。
图2卷积解码器
3卷积码编解码器的VHDL设计
3.1VHDL设计的优点与设计方法
VHDL语言采用自上至下和基于库的设计方法,其突出的优点是具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路。
本设计所用VHDL设计平台是Altera的MAX+PLUSⅡ软件。
MAX+PLUSⅡ它支持VHDL语言文本文件,原理图,以及波形与EDIF等格式的文件作为设计输入,并支持这些文件的任意混合设计;
具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。
3.2卷积码编码器的VHDL实现
3.2.1卷积编码器顶层建模的VHDL描述
libraryieee;
useieee.std_logic_1164.all;
entityencoderis
port(clk:
instd_logic;
clr:
data_in:
--待编码信元输入端
c0,c1,c2:
outstd_logic);
--编码信元输出端
end;
architecturebehaveofencoderis
componentdff2--上升沿D触发器
port(d,clk,clr:
q:
endcomponent;
componentxor2--两输入异或电路
port(a,b:
y:
componentxor3--三输入异或电路
port(a,b,c:
signaldin,r1,r2,y1,y2:
std_logic;
begin
din<
=data_in;
u0:
dff2portmap(din,clk,clr,r1);
u1:
dff2portmap(r1,clk,clr,r2);
u2:
xor2portmap(din,r1,y1);
u3:
xor3portmap(din,r1,r2,y2);
c0<
=din;
c1<
=y1;
c2<
=y2;
3.2.2用MAX+PLUSⅡ编译后生成的编码器图形符号
图3编码器图形符号
3.2.3卷积编码器VHDL仿真波形
卷积编码器VHDL仿真波形如图4所示。
仿真前设输入信息序列datain=“11011”,速率为32kb/s。
仿真结果表明,卷积编码输出为“111100010110100”,速率为96kb/s,与理论分析结果一致。
图4卷积编码器仿真波形
3.3卷积码解码器的VHDL实现
3.3.1卷积解码器顶层建模的VHDL描述
entitydecoderis
--待解码信元输入端;
data_out:
--解码信元输出端;
enddecoder;
architecturebehaveofdecoderis
componentdff2--上升沿D触发器;
componentxor2--两输入异或门;
--一输入两输出电子开关;
componentswitch21
port(clk,d,clr:
componentemendation--校正电路;
port(d,clk,clr:
signals1,s2,s3,s4,s5:
switch21portmap(data_in,clk,clr,s1,s2);
emendationportmap(s1,clk,clr,s3);
dff2portmap(s2,clk,clr,s4);
xor2portmap(s3,s4,s5);
data_out<
=s5;
3.3.2用MAX+PLUSⅡ编译后生成的解码器图形符号
图5解码器图形符号
3.3.3卷积解码器VHDL仿真波形
卷积解码器VHDL仿真波形如图6所示。
仿真前设输入信息序列datain=“11100111100111”。
仿真结果表明,卷积编码输出为“1101101”,与理论分析结果一致。
图6卷积解码器仿真波形
4参考文献
[1]陈光军.数据通信技术与应用[M].第2版,北京:
北京邮电大学出版社,2008:
189.
[2]华力,雍玲,雷菁.基于FPGA的DVB-S2通用LDPC编码器设计与实现[J].通信技术,2008,41(01):
12-14.
[3]王光宇,张向东.一种使用VHDL语言实现HDB3编码的方法[J].通信技术.
5后记
下载后别谢楼主,哈哈哈哈。