可编程器件实现卷积编码和译码的初步实现.docx

上传人:b****5 文档编号:8398153 上传时间:2023-01-31 格式:DOCX 页数:35 大小:458.58KB
下载 相关 举报
可编程器件实现卷积编码和译码的初步实现.docx_第1页
第1页 / 共35页
可编程器件实现卷积编码和译码的初步实现.docx_第2页
第2页 / 共35页
可编程器件实现卷积编码和译码的初步实现.docx_第3页
第3页 / 共35页
可编程器件实现卷积编码和译码的初步实现.docx_第4页
第4页 / 共35页
可编程器件实现卷积编码和译码的初步实现.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

可编程器件实现卷积编码和译码的初步实现.docx

《可编程器件实现卷积编码和译码的初步实现.docx》由会员分享,可在线阅读,更多相关《可编程器件实现卷积编码和译码的初步实现.docx(35页珍藏版)》请在冰豆网上搜索。

可编程器件实现卷积编码和译码的初步实现.docx

可编程器件实现卷积编码和译码的初步实现

目录

第一章绪论1

1.1卷积码及卷积编码技术的应用1

1.1.1卷积码概述1

1.1.2卷积码技术的应用2

1.2可编程器件概述2

1.2.1FPGA概述3

1.2.2FPGA设计5

1.2.3FPGA技术的发展趋势5

第二章卷积码的编码研究7

2.1卷积编码的基本原理7

2.2卷积码的生成矩阵8

2.3卷积编码的FPGA实现9

2.3.1MAX+PLUSSII应用简介9

2.3.2基于MAX+PLUSSII平台实现卷积码编码11

第三章卷积码的译码研究17

3.1卷积译码的基本方法17

3.1.1码树17

3.1.2状态图18

3.1.3网格图18

3.2Viterbi译码算法19

3.2.1最大似然算法原理19

3.2.2Viterbi译码基本原理20

3.3卷积码的Viterbi译码FPGA实现22

30

第四章研究小结与心得体会31

4.1分析小结31

4.2收获体会31

参考文献32

第一章绪论

1.1卷积码及卷积编码技术的应用

卷积码又称连环码,它是麻省理工学院的P.Elias于1955年发明的一种非分组码,它和分组码有着明显的区别。

在同等码率和相似的纠错能力下,卷积码的实现往往要比分组码简单,但卷积码没有分组码那样严密的数学分析手段,目前大多是通过计算机进行好码的搜索,卷积码主要应用于前向纠错FEC数据通信系统中。

1.1.1卷积码概述

对输入的码元序列编成长度为k的段,每段附上r(r=n-k)个监督位,此监督位仅与本组的k个信息位有关,而与其他码组无关,也就是说各个码组间是没有约束关系的,即监督码只监督本码组中的码元有没有错码,解码时也是分组进行解码,这样的码制我们称之为分组码,n在这里代表的是码组长度。

而卷积码不同,在任何一段规定时间内编码器产生的n个码元,不仅取决于这段时间中的k个信息码元,而且还取决于前N-1(m)段规定时间内的信息码元,所以监督位监督着这N段时间内的信息。

换句话说,各个码内的监督元不仅对本子码有监督作用,而且对前面m个子码内的信息元也是有监督作用的。

一般来说,卷积码的结构是:

“信息元,监督元,信息元,监督元…”。

可以用(n,k,m)表示卷积码,k,n通常是比较小的整数,m称为编码记忆(或编码存储),它反映了输入的信息元在编码器中需要存储的时间长短;N称为卷积码的约束度,它是相互约束的子码的个数;N*n称为约束长度,它表明约束的二进制码元的个数。

用下图1-1-1来说明卷积码编码器的一般结构:

图1-1-1卷积编码器结构

它包括:

一个由N段组成的输入移位寄存器,每段有k级,共Nk位寄存器;一组n个模2和加法器;一个由n级组成的输出移位寄存器。

对应于每段k个比特的输入序列,输出n个比特。

由图可知,n个输出比特不但与当前的k个输入比特有关,而且与以前的(N-1)k个输入比特有关。

整个编码过程可以看成是输入信息序列与由移位寄存器模2和连接方式所决定的另一个序列的卷积,故称为卷积码。

1.1.2卷积码技术的应用

在数字通信卫星中,卷积码的性能要优于分组码,因而能够得到广泛的应用,卷积码的维特比译码在译码约束度较小,一般在N<10的情况下计算速度快,效率高,译码器也较简单,随着微电子技术的发展和PLD技术的普遍使用,在软件开发工具的帮助下,维特比译码器由硬件来实现已成为可能。

同时在数字通信过程中,降低误码率,提高通信质量是很关键的问题,卫星通信是远距离传送数据,需要很高的能量来降低各方面的干扰,而卫星体积是受限的,功率很难达到理想的状况,采用卷积码维特比译码可以降低误码率,实现强大的纠错能力,突破卫星信道功率受限的弱点,改善通信效率。

另外,卷积码在码分多址(CDMA)和数字蜂窝移动个人通信网(PCN)中也有广泛的应用。

在PCN中,IS95标准[1]建议对信息传输的差错控制采用大约束度(K=9)卷积编码和最大似然的Viterbi译码方案,而满足IS95标准的Viterbi译码器至今没有面市。

研究用现场可编程门阵列(FPGA)来实现K=9的差错控制器的问题是重中之重。

因为,一旦用FPGA研制成功,就可进行低功耗超大规模电路集成(VLSI),制成高性能单片差错控制器,应用于PCN;另一方面,VLSI方案具有高得多的处理速率,适用于更为广泛的数字通信场合。

基于FPGA的卷积码译码器是充分利用了FPGA的资源丰富的特点,设计特定的模块使的幸存路径的选择更加快捷和有效。

1.2可编程器件概述

可编程器件PLD(ProgramableLogicDevice)是80年代发展起来的新型器件,PLD是一种由用户根据自己的需要来设计逻辑功能并对此器件进行编程后实现的。

数字电路的集成电路通常是标准的小规模、中规模、大规模的器件,而这些器件的逻辑功能是出厂时已经由厂商设计好了,用户只能根据其提供的功能及管脚进行设计其需要的电路,由于这些通用器件考虑到其通用性,其在使用时有许多功能是多余的,并且由于管脚的排布是固定的,在设计PCB时给电路的连线带来了极大不便,而PLD其内部具有大量组成数字电路的最小单元——门电路,而这些门电路并没有固定怎样连接,并且输入/输出脚的连接可自己设置,而这些门电路的连接是通过编程的方法加以设计,故这种电路给我们带来了极大的方便。

(1)提高了功能的集成度

PLD器件较中小规模集成芯片具有更高的功能集成度,一般来说一片PLD器件可替代4~20片的中小规模集成芯片,而更大规模的PLD(如CPLD、FPGA)一般采用最新的集成电路生产工艺及技术,可达到极大的规模,这些器件的出现降低了电子产品的成本和缩小了电子产品的体积。

(2)加快了电子系统的设计速度

一方面由于PLD器件集成度的提高,减小了电子产品设计中的布线时间及器件的安装时间;另一方面由于PLD器件的设计是利用计算机进行辅助设计的,其可以通过计算机的辅助设计软件对设计的电路进行仿真和模拟,减小了传统设计过程中的调试电路的时间,另外由于PLD器件是可擦除和可编程的,故即使设计有问题修改也是很方便的。

(3)高的性能

由于PLD器件在生产过程中采用了最新的生产工艺及技术,故通过PLD器件的性能优于一般通用的器件,其速度一般比通用器件速度高一到两个数量级,另外由于器件数量的减少,降低的电路的总功耗。

(4)高可靠性

系统的可靠性是数字系统的一项重要指标。

根据可靠性理论可知器件的数量增加,系统的可靠性将下降;反之将提高。

采用了PLD器件可减少器件的数量,器件的减少还导致PCB的布线减少,同时也减少了器件之间的交叉干扰和可能产生的噪声源,使系统运行更可靠。

(5)成本低

由于PLD器件的上述优点将导致电子产品在设计、安装、调试、维修、器件品种库存等方面的成本下降,从而使电子产品的总成本降低,提高了产品的竞争力。

1.2.1FPGA概述

FPGA是FieldProgrammableGateArray(现场可编程门阵列)的缩写,代表的是一种可编程逻辑器件,它可以在制造完成后由用户根据自己的需要定义其逻辑功能。

FPGA包含了一个逻辑单元(可以是门,也可以是查找表RAM)的阵列、触发器以及可编程的互连线。

除此之外,现在的一些大规模FPGA还包含了片内RAM、嵌入式CPU、高速收发器等资源。

FPGA的显著特点是有一个窄输入的逻辑单元,使用分布式互连方案,相对于传统的诸如PAL和PLA之类的可编程逻辑器件来说,FPGA的设计更加灵活。

FPGA是PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。

FPGA在现代数字电路设计中发挥着越来越重要的作用。

从设计简单的接口电路到设计复杂的状态机,甚至设计“SystemOnChip(片上系统)”,FPGA所扮演的角色已经不容忽视。

FPGA所具有的静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大地提高了电子系统设计的灵活性和通用性,缩短了产品的上市时间并降低了电子系统的开发成本。

基于此,FPGA设计技术受到了世界范围内广大电子工程师的普遍欢迎,现已成为电子工程师必须掌握的一项基本技能之一。

FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。

可配置逻辑模块CLB是实现各种逻辑功能的基本单元,其中包括组合逻辑单元,时序逻辑,RAM及各种运算功能。

CLB是以n

n阵列形式分布在FPGA中,同一系列中的不同FPGA,其阵列规模也不同;输入输出模块IOB是芯片外部引脚数据与内部数据进行交换的接口电路,通过编程可将I/O引脚设置成输入,输出和双向等不同的功能;金属导线以纵横交错的格栅状结构分布在两个层面,有关的交叉点上连接着可编程开关或可编程开关阵列,通过对可编程开关和可编程开关矩阵的编程实现CLB与CLB之间,CLB与IOB之间,以及全局信号与CLB和IOB之间的连接。

FPGA的基本特点主要有:

1.采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。

2.FPGA可做其它全定制或半定制ASIC电路的中试样片。

3.FPGA内部有丰富的触发器和I/O引脚。

4.FPGA是ASIC电路设计周期最短、开发费用最低、风险最小的器件之一。

5.FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。

用户可以根据不同的配置模式,采用不同的编程方式。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。

掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。

FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。

当需要修改FPGA功能时,只需换一片EPROM即可。

这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。

因此FPGA的使用非常灵活。

FPGA有多种配置模式:

并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

1.2.2FPGA设计

(1)设计流程

设计输入:

主要有原理图输入和HDL输入两种方式,一般开发软件都能够同时支持这两种输入方式。

还有的甚至提供更多的输入方式,如Xilinx公司的ISE6.0就提供四种输入方式,包括EDIF网表输入。

设计仿真:

包含功能仿真和时序仿真两项主要内容,功能仿真忽略了综合和布局布线导致的时延等因素,仅仅从逻辑上进行仿真,这对设计思路的验证是有帮助的,但必须通过时序仿真作进一步验证,发现并修正时序问题。

设计综合:

将HDL语言生成用于布局布线的网表和相应的约束。

综合效果直接导致设计的性能和逻辑门的利用效率,因此,许多开发软件都支持第三方综合和仿真工具,著名的有:

Synplicity、Synopsys和ModelSim等。

布局布线:

工具利用综合生成的网表,在FPGA内部进行布局布线,并生成可用于配置的比特流文件(有了比特流文件就下载到板子里了)。

布局布线工具与可编程逻辑器件工艺及其布线资源密切相关,一般由可编程逻辑器件开发商直接提供。

(2)FPGA设计时注意的问题

本人在使用Altera公司开发的MAX+PLUSII软件进行电路图输入的设计过程中,体会到有些问题是初学FPGA设计的同学要注意的:

1.异步逻辑主要用组合逻辑来实现控制,容易因时钟传递延时不一致而产生毛刺,建议尽量改成同步逻辑,当输出信号用于RESET,CLEAR,PRESET时最好改成同步。

2.组合逻辑容易设计,但要注意处理好毛刺,最好分析出毛刺产生的原因,然后重新设计新的电路。

3.选择模块可以节省设计时间,但不是必须所有的过程都使用。

1.2.3FPGA技术的发展趋势

随着微电子技术、EDA技术、以及应用系统需求的发展,FPGA正在逐渐成为数字系统开发的平台,并朝着以下方面发展和提高:

1.高集成度、大容量、低成本、低电压、低功耗;

2.资源多样化;

3.适用于片上系统:

处理器、高速串行I/ODSP等等;

4.深亚微米工艺的使用,基于90nm工艺的FPGA已经商用,正在向65nm挺进;

5.各种软硬IP库的发展和完善;

6.动态可重构技术实用化;

新FPGA器件在复杂设计、增加总的逻辑资源、改进布线与软件以及在系统中对器件进行编程的能力方面正在仿照ASIC。

深亚微米技术使可编程器件的逻辑单元更小。

另一个明显的发展趋势是一些产品采用部分存储器结构作为专用存储器而不仅作为逻辑切换驱动器。

此外,可编程密度已在传统上限制了性能和密度。

这促使一些厂商考虑将ASIC和FPGA技术混合,以生产出能按用户编程定制的高性能、高密度的混合功能器件。

同时FPGA工具组也在升级,这种从逻辑级向以语言为基础的设计变迁,意味着综合技术利用的增加。

从这一点看,FPGA工具与设计流程的通用性越多,从可编程器件向硬件连线ASIC转移就越容易。

FPGA的发明和在全球范围内的广泛使用是电子设计领域的一场革命,目前正处于高速发展阶段。

每年都有高集成度的新产品投入市场,同时也有支持它们的强大的EDA工具的问世。

FPGA不但使电子系统的性能得到了增强,更重要的是它使电子系统的设计发生了根本性变革,使得一切设计仿真测试工作能够在个人电脑和开发平台(EDA工具)的支持下通过模拟仿真的形式通过。

FPGA作为一个比较新的领域,在最近几年中有很大的发展和进步。

各个厂家的FPGA不断推陈出新,工艺越来越高、速度越来越快、功能越来越多,价格却越来越便宜。

各种依靠FPGA技术设计的芯片已在信号纠错,总线接口,高速数据采集,通信领域编解码,嵌入式系统,数字图象处理,数字信号处理得到了广泛的应用。

随着FPGA成本的进一步降低和规模的增加,在未来几年中FPGA应该有更加宽广的应用领域。

第二章卷积码的编码研究

2.1卷积编码的基本原理

以下图2-1-1的(2,1,2)卷积编码器为例来分析卷积码的编码原理和编码方法。

图2-1-1原理框图

 

(2,1,2)卷积编码器是由2个移位寄存器,2个模2加法器和开关电路组成。

在编码前,对每一级的移位寄存器进行清零,每输入一个信息码元,将会输出C1,C2各一次,即1比特的信息输入将有2比特的信息输出。

其中输入与输出之间的编码关系可用下面的式子表示出来:

C1=S1

S2

S3

C2=S1

S3

S1是当前的输入的信息位,S2,S3是移位存储器前两个信息位。

输出信息的顺序是信息位在前,监督位在后,即输出的码元以“信息位,监督位,信息位,监督位,监督位,信息位,监督位,…………………,信息位,监督位,监督位”的形式表示。

本人在初始编码时,每一级的移位寄存器的状态全部清零,输入1101000此时编码器输出状态如下表2-1-1表示:

表2-1-1输入输出状态列表

输入(S1)

1

1

0

1

0

0

0

S2

0

1

1

1

0

0

0

S3

0

0

1

0

1

1

0

c1

1

0

0

0

1

1

0

c2

1

1

1

0

0

1

0

 

经过(2,1,2)卷积编码器的编码后输出的信号码元将会是“11,01,01,00,10,11,00”

2.2卷积码的生成矩阵

卷积码是线性码,因此它完全可以由生成矩阵和校验矩阵来确定。

以比较简单的(2,1,2)卷积码编码器为例阐述生成矩阵的规律,见图2-2-4。

mj

mj-2

mj-1

图2-2-4生成矩阵

输出码元可以用下面的表达式来表示:

Cj1=mj

mj-1

mj-2

Cj2=mj

mj-2

输入信息位是(m0,m1,m2,………mj……),输出位C0,C1,C2,C3,C4可以用下面形式表示出来

C0:

C01=m0C1:

C11=m0

m1C2:

C21=m0

m1

m2

C02=m0C12=m1C22=m0

m2

C3:

C31=m1

m2

m3C4:

C41=m2

m3

m4

C32=m1

m3C42=m2

m4

输出码元(C01,C02,C11,C12,C21,C22,C31,C32,C41,C42,………)用矩阵形式表示:

[C01,C02,C11,C12,C21,C22,C31,C32,C41,C42,………]

11

10

11

00

00

….

00

11

10

11

00

00

00

11

10

11

00

00

00

11

10

=[m0,m1,m2,m3,m4,………][]

 

由卷积码生成矩阵定义可得(2,1,2)卷积码的生成矩阵是:

11

10

11

00

00

[

00

11

10

11

00

]

00

00

11

10

11

00

00

00

11

10

从生成矩阵可以找出以下规律:

1.第二行是由第一行右移2位(一个子码的长度)得到,第三行是由第二行右移2位得到,依次类推。

2.除第一行前6个数字外,以后的数字全部是‘0’,这前6个数字组成基本生成矩阵,如果基本生成矩阵给定的话,就有可能得到整个编码序列。

2.3卷积编码的FPGA实现

2.3.1MAX+PLUSSII应用简介

(1)MAX+PLUSSII概述

Max+plusⅡ是Altera公司提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。

Max+plusⅡ界面友好,使用便捷,被誉为业界最易用易学的EDA软件。

在Max+plusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。

Max+plusⅡ开发系统的特点

①开放的界面

Max+plusⅡ支持与Cadence,Exemplarlogic,MentorGraphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。

②与结构无关

Max+plusⅡ系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。

③完全集成化

Max+plusⅡ的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。

④丰富的设计库

Max+plusⅡ提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。

⑤模块化工具

设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。

⑥硬件描述语言(HDL)

Max+plusⅡ软件支持各种HDL设计输入选项,包括VHDL、VerilogHDL和Altera自己的硬件描述语言AHDL。

⑦Opencore特征

Max+plusⅡ软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。

(2)设计流程:

使用Max+plusⅡ软件设计流程由以下几部分组成。

如图2-3-1所示。

1、设计输入:

可以采用原理图输入、HDL语言描述、EDIF网表输入及波形输入等几种方式。

2、编译:

先根据设计要求设定编译参数和编译策略,件的如器选择、逻辑综合方式的选择等。

然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合和器件适配,并产生报告文件、延时信息文件及编程文件,供分析仿真和编程使用。

3、仿真:

仿真包括功能仿真、时序仿真和定时分析,可以利用软件的仿真功能来验证设计项目的逻辑功能是否正确。

4、编程与验证:

用经过仿真确认后的编程文件通过编程器(Programmer)将设计下载到实际芯片中,最后测试芯片在系统中的实际运行性能。

在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重复上述过程。

图2-3-2是Max+plusⅡ编译设计主控界面,它显示了Max+plusⅡ自动设计的各主要处理环节和设计流程,包括设计输入编辑、编译网表提取、数据库建立、逻辑综合、逻辑分割、适配、延时网表提取、编程文件汇编(装配)以及编程下载9个步骤。

图2-3-1开发流程

图2-3-2编译主控界面

2.3.2基于MAX+PLUSSII平台实现卷积码编码

仍以(2,1,2)卷积码编码器为例来描述卷积码编码译码的FPGA实现。

整个FPGA的电路搭建和仿真模拟都是在MAX+PLUSSII的平台上来完成的。

(2,1,2)的卷积编码译码器实现起来较为简单和方便,同时它的应用也很广泛,在查阅了很多的相关资料后发现(2,1,2)卷积码编码译码器在水下无线通信传输系统和卫星通信领领域应用最为普遍。

(1)编码器的FPGA实现过程分析

(2,1,2)卷积编码器是在一个码元输入后将会有两个码元输出,我们根据上面提到的编码表示方法中的状态图可以把卷积码的编码器看作是一个简单的状态机。

假设某个时刻编码器的状态为10,即状态c,在输入端,如果输入的信息序列是0,则下一时刻编码器的状态是a,对应的输出为11;如果输入信息序列为1,则下一时刻编码器状态为b,对应的输出为00。

根据各个状态之间的关系可以得出状态转移图,用寄存器保存对应的状态。

我们也可以根据输入与输出之间的简单模2加的关系来实现编码过程,这里提到的状态机是对于输入输出较为复杂的情况时效率要高,本人采用的是根据输入输出之间的关系的方法来实现编码的。

每位信息码元送入编码模块后,编码模块立即进行编码,编码结束后保存新的状态变量,同时得到并行输出的码元,(2,1,2)卷积编码器的编码效率R=1/2,表明如果仅仅用一个时钟的话,编码的输入和输出不能同步起来,在设计的过程中,加上一个分频模块,达到编码器的输出控制时钟是输入控制时钟频率的2倍的效果。

考虑到现在得到的是并行输出的数据,需要加入一个并串转换模块来保证码元串行输出,这个模块可以用移位寄存器来实现,也可以根据具体的卷积码来选择合适的电路实现并串转换功能。

(2)编码器的原理图

一般卷积编码器原理框图见图2-3-3

串并

 

图2-3-3编码器原理框图

卷积码编码器主要由移位寄存器构成,输入数据经串并变换器后形成kbit一帧的并行数据送到编码模块中去,这里的编码模块是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1