FPGA卷积码的原理与测试本科毕业论文.docx
《FPGA卷积码的原理与测试本科毕业论文.docx》由会员分享,可在线阅读,更多相关《FPGA卷积码的原理与测试本科毕业论文.docx(30页珍藏版)》请在冰豆网上搜索。
FPGA卷积码的原理与测试本科毕业论文
本科学生毕业论文
论文题目:
基于FPGA卷积码的原理与测试
学院:
年级:
专业:
姓名:
学号:
指导教师:
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
摘要
为了解决传统的维特比译码器结构复杂、译码速度慢、消耗资源大的问题,提出一种新型的适用于FPGA特点,路径存储与译码输出并行工作,同步存储路径矢量和状态矢量的译码器设计方案。
并提出了采用FPGA实现卷积码解码的Viterbi算法实时实现,给出了硬件实现的逻辑框图。
该设计方案通过在ISE9.2i中仿真验证,译码结果正确,得到编码前的原始码元,速度显着提高,译码器复杂程度明显降低。
并在实际的软件无线电通信系统中信道编解码部分得到应用,性能优良。
关键词
W-CDMA;卷积码;Viterbi算法;FPGA
Abstract
Inordertosolvethetraditionalvictorthandecoderstructureiscomplex,decodingspeedslow,consumeresourcesbigproblems,thispaperputsforwardanewkindofapplicabletotheFPGAcharacteristics,storageandoutputparallelpathdecodingwork,synchronousstoragepathvectorandstatevectordecoderdesignscheme.ThedesignschemeinISE9.2throughsimulationtest,decodingofI,gettherightbeforeencodingsourceofyuan,speed,significantlyraise,decodercomplexitysignificantly.Andintheactualsoftwareradiocommunicationsystemchanneldecodingpartsandgetapplication,excellentperformance.
Keywords
W-CDMA;ConvolutionalCode;Viterbialgorithm;FPGA
前言
近年来,随着大规模集成电路的发展,电路实现技术水平获得较大程度的提高,卷积码在众多通信系统和计算机系统中得到了越来越广泛的应用。
在数据通信中,它的出现,使得数据调制解调器的传输速率和性能都产生了较大飞跃。
研究和应用都已说明,在差错控制系统中卷积码是一种极具吸引力、颇有前途的差错控制编码。
卷积码又称连环码,首先是由伊利亚斯(P.Elias)于1955年提出来的。
它与前面讨论的分组码不同,是一种非分组码。
在同等码率和相似的纠错能力下,卷积码的实现往往要比分组码简单。
由于在以计算机为中心的数据通信中,数据通常是以分组的形式传输或重传,因此分组码似乎更适合于检测错误,并通过反馈重传纠错,而卷积码主要应用于前向纠错数据通信系统中。
另外,卷积码不像分组码有严格的代数结构,至今尚未找到严密的数学手段,把纠错性能与码的结构十分有规律的联系起来。
从GSM系统、基于IS-95的窄带CDMA系统到W-CDMA系统,卷积编码做为一种有效的前向纠错码得到广泛的应用。
但是卷积码解码[1]由于其算法复杂度随约束长度的增加而指数增长,增加了在具体系统实现中的难度。
本文提出了一种采用现场可编程逻辑器件(FPGA)[2]实现卷积码解码的实现方法,并应用于W-CDMA实验系统中。
一、卷积码的定义
卷积码是一种对付突发错码的有效编码方法。
通常记作(n,k,N),它将k个信息比特编为n个比特,即编码效率为Rc=k/n,N为约束长度,也就是说该编码器有Nk个移位寄存器,n个模2加法器,n个移位寄存器为输出。
其编码器的结构如图1所示:
1
k
1
k
1
k
1
k
……
1
k
2
k
3
k
Nk
每次输入
k
比特
Nk
级移存器
1
2
n
……
n
个模
2
加法器
编码输出
每输入
k
比
特旋转一周
……
图1-1(k,n,N)卷积码编码器
但是它与分组码不同的是编码后的n个码元不但与当前段的k个信息有关,而且与前面(N-1)段的信息有关,编码过程中相互关联的码元为Nn个。
它的纠错能力随着N的增加而增大,而差错率随着N的增加而指数下降。
在编码器复杂度相同的情况下,卷积码的性能优于分组码。
故在GSM、窄带CDMA系统、第三代移动通信系统中都采用了卷积编码作为前向纠错码。
二、卷积码的描述方法
描述卷积码的方法主要有两类:
图解表示和解析表示。
(一)图解表示和解析表示
卷积码的图解表示又可分为树状图、网格图和状态图3种。
通常卷积码的编码电路可以看做一个有限状态的线性电路,因此也可以利用状态图来描述编码过程。
随着信息序列的输入,编码器中寄存器的状态在上述四个状态之间发生转移,并输出相应的码序列。
将编码器随输入而发生状态转移的过程用流程图的形式来描述,即得到卷积码的状态图。
将状态图按照时间的顺序展开,即得到卷积码的格图(又称篱笆图)表示。
除了利用状态图和格图描述卷积码的编码过程外,还可以利用树图来描述卷积码的编码过程,在卷积码的序列译码算法中采用的就是树图结构描述方法。
格图结构主要用于对卷积码编码过程的分析和Viterbi译码。
卷积码的篱笆图或网格图,可表示出编码器状态转移与时间的关系。
(二)其它表式
卷积码的描述方法也有离散卷积法,生成矩阵法,码多项式法。
三、FPGA芯片介绍
我们采用的FPGA芯片是美国Altera公司推出的FLEX系列芯片FLEX10K20。
它具有高集成度,内有丰富寄存器等优点。
由用户在工作现场定义其逻辑功能,可降低风险,适用于开发周期短,高性能,高集成度的各种电路设计。
FLEX10K系列芯片[3]都具有以下特点:
可在线重新配置;
1.快速、可预测连线延时的快速通道FastTrack连续式布线结构;
2.实现快速加法器和记数器的专用进位链;
3.高效实现高速、多输入逻辑函数的专用级联链;
4.为减小开关噪声的可编程的输出电压摆率控制;
5.遵守全PCI总线规定;
6.工作在PC机、SUNSPARC工作站等多种平台的强大的AletraMAX+PLUS软件支持设计和自动布局、布线。
我们选用的EPF10K20TC144电源电压为5V,总管脚为144根,可用的I/O管脚有102根,逻辑单元LE共1,152个,内部自带的RAM为12,288Bits,完全达到了卷积码解码所需要的内部存储器和逻辑单元的要求。
四、FPGA卷积码的编译码原理
(一)编码原理
卷积码是一种向前纠错码FEC,用(n,k,m)表示。
分组码不同,其监督元与本组信息元和前若干组的信息元有关。
这种编码的纠错能力强,不仅可纠正随机差错,而且可纠正突发差错。
卷积码根据需要,有不同的结构及相应的纠错能力,但都有类似的编码规律。
卷积码的编码器是一个具有k个输入位(端)、n个输出位(端),m为约束长度。
图4-1卷积码的编码原理
每当输入1比特时,此编码器输出3比特c1c2c3
卷积编码充分利用各组信息元之间的相关性,在误码率和复杂度相同的情况下性能优于分组码,并且最佳译码更易实现,因此在通信系统中得到广泛应用。
但是卷积码没有严格的代数结构,尚未找到严密的数学手段将纠错性能与码的构成有规律地联系起来,目前大都采用计算机搜索号码。
(二)FPGA卷积码的译码原理
1.veterbi算法
卷积码的译码方式有3种:
Veterbi译码、门限译码和序列译码。
其中维特比译码具有最佳译码性能,但硬件实现相对复杂。
veterbi算法是检测离散马儿可夫过程有限状态序列的优化算法。
在数字通信系统中,前向纠错卷积码编码和维特比译码用来提高系统性能,应用广泛。
维特比算法是一种最大似然译码算法。
它不是在网格图上一次比较所有可能的2条完整路径,而是接收一段,计算比较一段,选择一段最有可能的码段,从而达到整个码序列是一个有最大似然函数的序列。
其基本原理是:
以断续的接收码流为基础,逐个计算它与其他所有可能出现的连续的格状图路径的距离,选出其中概率最大的一条作为译码输出。
维特比(Veterbi)译码算法是基于卷积码的网格图表示中路径的计算,其核心思想就是通过计算路径矢量进而寻找最短路径从而最终得到译码序列并可以纠正传输过程中的错误码字。
2.译码原理
我们采用的卷积码解码算法是基于Viterbi译码算法[4],关键技术就是“加-比-选”。
如图2的网格子图所示,网格图中从前级每个节点上都有2条支路延伸到下一级上,而下一级上的每2条支路又都汇聚在一个节点上。
把汇聚在每一个节点上的两条路径的对数似然函数累加值进行比较,选择一条具有较大对数似然累加值的路径保存下来,而丢弃另外一条路径,使每一级留存下来的路径数保持常数(为编码约束长度的指数次幂)。
该处理过程可简称为“加-比-选”。
在不同时刻对于同一节点的所有8个状态,分别计算以其为终点的2条分支路径的对数似然函数累加值并进行比较,舍弃其中对数似然函数累加值小的路径,保留对数似然函数累加值较大的路径,并将此路径称为剩余路径。
由此可见,经过“加-比-选”电路以后,通过结束信息来确定最终得到的译码序列,其中每到来一个结束信息时,只将与已知发送信息相符的那条支路保留,以此类推,经过N-1个结束信息后,即可得到与发送序列最相似的译码路径。
图4-2译码原理
下图为译码过程的流程图:
开始
建立网格图
判断最优路径
译码输出
图4-3译码过程
假设调制方式是2PSK,归一化后信道噪声为加性高斯白噪,其双边噪声功率谱密度为
,发送序列为等概的+1,-1序列,接收序列
,其中
是均值为0,方差为
,则
则似然函数为
所以,比较似然函数就是比较
的大小。
令
,选择使
最小的序列
作为判决输出,能使系统的性能最佳(误码率最小)。
五、译码器的设计与实现
(一)译码器的设计
1)控制单元向各个功能模块提供控制信号,保证译码器的工作时序正确,协调各个功能模块从而促使整个译码器的正常工作。
2)路径度量和“加-比-选单元”计算和比较每条支路的路径度量,得到并保存剩余路径提供给回溯单元。
对于(2,1,3)卷积码,译码深度D=5(m+1)=20,为保证存储单元和回溯单元同时并行工作,存储单元为2D(m+1)2m=1280bit。
3)回溯单元从前面“加-比-选”电路送来的剩余路径中选择量度最小的剩余路径,从这条路径对应的状态开始向前寻找,直到找完前面所有状态,并从存储单元中读出译码信息送给译码控制单元。
4)译码控制单元将回溯单元送来的译码序列反转顺序输出即为所要输出的正确的接收序列。
其中反转顺序的操作可由RAM实现,顺序写入倒序读出。
(
0
m
6
m
5
m
4
m
3
m
2
m
1
m
0
)
(
m
6
m
5
m
4
m
3
m
2
m
1
m
0
0
)
(
1
m
6
m
5
m
4
m
3
m
2
m
1
m
0
)
(
m
6
m
5
m
4
m
3
m
2
m
1
m
0
1
)
图5-1网格子图表示
对于W-CDMA系统中K=9的特定卷积码,解码器内部逻辑设计如图3所示。
用128个时钟(CLK)周期解一个数据比特,即在一个数据比特时钟(DCLK)周期内,以CLK=128DCLK的时钟驱动一个七位计数器,产生(m6,m5,m4,m3,m2,m1,m0)从(0,0,0,0,0,0,0)到(1,1,1,1,1,1,1)的状态变化。
运用两个双口RAM(FPGA内部自带的存储器),从一个DPRAM(记为A)同时读取第K-1个比特时存放的两个路径量度值,两端口的读地址分别为Rf1=(0,m6,m5,m4,m3,m2,m1,m0),Rf2=(1,m6,m5,m4,m3,m2,m1,m0),分别对应两状态节点。
读出的结果并行地送入两个加—比—选电路(ACS),选出进入节点的最小路径量度(PM)并行写入另一DPRAM(记为B),写地址分别为Wf1=(m6,m5,m4,m3,m2,m1,m0,0),Wf2=(m6,m5,m4,m3,m2,m1,m0,1)。
在下一比特周期,控制DPRAM输入输出端的切换开关,使得从RAMB读,结果写入RAMA,重复切换操作。
该方法的好处是降低了时钟速率,设计清晰,代价是增加了硬件量。
译码深度取为16已足够,所以另外两个DPRAM(C和D)存放信息序列,执行与上述同步的类似操作。
所不同的就是ACS部分换成了shift&insert模块,功能是每接受一组新的支路信息,信息序列移位,并将假象信息比特作为最低位存入。
Min模块比较得到各状态中最小PM,输出控制信号,以控制使对应最小PM的信息序列最高位输出,即为该数据比特的解码输出。
图5-2解码器内部逻辑设计框图
ACS中,因为K=9,所以在对一个数据块的前8个数据时钟DCLK周期内,加—比—选结构要做改动,即对到达同一节点的两条支路,只选择上面的支路,即假想信息比特为0的支路,存入存储器,不须进行比较—选择操作。
该功能可用数据选择器简单实现。
我们在“关于W—CDMA关键技术研究”的项目中,根据协议规定的对于8K的话音业务,采用K=9,R=1/3的卷积码作为信道编码。
采用一块FPGA10K20实现了卷积码的Viterbi解码,其中该芯片的存储器使用率为98%,门电路的使用率为35%。
(二)实现的性能模拟结果
我们在信道噪声为加性高斯白噪声(AWGN)[5]情况下,对于W-CDMA系统下的(3,1,9)码(编码多项式的八进制表示为:
(557)8、(663)8和(711)8)的解码性能进行计算机仿真,同时对比基于IS-95的窄带CDMA系统中采用的(2,1,9)码(编码多项式的八进制表示为:
(753)8和(561)8)的性能进行比较,模拟时采用的解码器的解码深度与实际系统中采用的一致,即解码深度为16,得到以下解码器输入误码率(BERin)和输出误码率(BERout)的关系,在一定程度上达到了在无线信道下干扰情况下提高系统性能的目的。
图5-2解码器输入误码率和输出误码率曲线
真对卷积码使用Viterbi译码方法和分组码方法使用资源如下表所示。
表5-1资源消耗对比
资源
Viterbi译码算法
分组译码算法
逻辑门/门
3000~5000
4800
RAM存储空间/bit
6592
88704
(三)设计中改进和优先算法
同时存储,在表示状态信息的比特前加上1位判决比特来表示相应状态的输入支路的译码信息,因此,译码器在回溯时就可直接输出判决比特作为译码器的输出,降低了译码器的判决难度,节省了存储回溯路径所需要的内存,从而降低了译码器结构复杂性。
本设计中译码器在计算所有状态的路径量度的同时进行路径存储,从而大大提高了译码速度。
路径量度是指每个状态的2条输入支路和2条输出支路,路径存储指的是状态存储以及相应的译码判决比特存储。
该结构的译码器对每一个状态都具有独立的处理单元,彼此互补影响,并行工作,提高了译码速度。
对于(2,1,3)卷积码,一个时钟需要进行2x2x2m=32次路径量度计算和2m=8次4比特存储操作。
充分发挥了FPGA拥有大量LCS和RAM的优势。
结论
在信道编码技术的基础上本文重点研究了时序交错技术和采用时序交错技术的交错卷积码编译码方法;并用可编程逻辑器件实现交错卷积码的编/译码器。
通过对卷积编码原理与维特比译码算法的深入研究,在理解传统实现方法的基础上提出适合FPGA存储器和独立运算单元丰富的特点的优化算法,利用FPGA器件可方便地设计出卷积码编码器。
有效地提高了译码器的处理速度,简化了译码器的复杂程度。
与传统的硬件逻辑电路的设计相比,采用FPGA芯片实现硬件逻辑电路的设计,降低了开发研究过程中设计电路成本,短的开发周期和修改的方便都是传统的硬件逻辑设计方法所不能比拟的。
随着支持FPGA硬件设计的硬件描述语言的逐步完善,利用FPGA芯片硬件实现各种信号处理的算法,在今后的研究中不失为一种有效的解决实际问题的方法。
本文的研究成果能很好的解决信道误码问题,但随着无线通信技术不断发展,不仅对信道误码率提出来更高要求,而且对加密技术也提出了新的要求。
在译码过程中加入一个新的解密模板,即可完成解密过程。
这是本课题需要进一步完成的内容。
参考文献
[1]M.R.Karim,MohsenSarraf.3G移动网W-CDMA和CDMA2000[M].北京:
人民邮电出版社,2003.9:
66-69.
[2]AndreasF.Molisch.宽带无线数字通信[M].北京:
电子工业出社,2001.9:
201-207.
[3]ViterbiAJ.AnIntuitivejustificationandasimplifiedimplementationofMAPdecoderforconvolutionalcodes.IEEEJournalCommun,1998(16).
[4]曹志刚.现代通信原理[M].北京:
清华大学出版社,2000:
45-48.
[5]TeroOjanpe.WCDMA:
面向IP移动与移动因特网[M].北京:
人民邮电出版社.2003.9:
231-241.
[6]杨峰义.WCDMA无线网络工程[M].北京:
人民邮电出版社,2004.
[7]StarkWE.Codingforfrequency-hoppedspread-spectrumcommunicationwithpartial-bandinterference-PartI:
capacityandcutoffrate.IEEETransactionsonCommunications,1985:
COM-33(10)1036~1044.
学位论文原创性声明
本人郑重声明:
所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。
尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。
本人完全意识到本声明的法律结果由本人承担。
学位论文作者(本人签名):
年月日
学位论文出版授权书
本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。
论文密级:
□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)
作者签名:
_______导师签名:
_______
_______年_____月_____日_______年_____月_____日
独创声明
本人郑重声明:
所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。
尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。
本声明的法律后果由本人承担。
作者签名:
二〇一〇年九月二十日
毕业设计(论文)使用授权声明
本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。
本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。
(保密论文在解密后遵守此规定)
作者签名:
二〇一〇年九月二十日
致谢
时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。
首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。
本次毕业设计大概持续了半年,现在终于到结尾了。
本次毕业设计是对我大学四年学习下来最好的检验。
经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。
这期间凝聚了很多人的心血,在此我表示由衷的感谢。
没有他们的帮助,我将无法顺利完成这次设计。
首先,我要特别感谢我的知道郭谦功老师对我的悉心指导