卷积码编码器的设计汇总.docx
《卷积码编码器的设计汇总.docx》由会员分享,可在线阅读,更多相关《卷积码编码器的设计汇总.docx(13页珍藏版)》请在冰豆网上搜索。
![卷积码编码器的设计汇总.docx](https://file1.bdocx.com/fileroot1/2023-6/1/c2e64159-3378-4da5-aaca-1f52abd55919/c2e64159-3378-4da5-aaca-1f52abd559191.gif)
卷积码编码器的设计汇总
湖南文理学院
课程设计报告
课程名称:
通信系统课程设计
专业班级:
通信工程11102班09
学生姓名:
朱涛
指导教师:
侯清莲
完成时间:
2014-11-18
报告成绩:
评阅意见:
摘
要
评阅教师
日期
一、设计要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1
二、设计作用与目的⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1
三、所用设备及软件⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1
四、卷积码编码的概念⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1
4.1卷积码的编码描述方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1
4.2卷积编码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2
4.3卷积码的树状图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3
4.4卷积码的网格图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3
五、EDA设计方法及工具软件QUARTUⅡS⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4
六、改变卷积编码器的参数仿真以及结论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4
6.1不同回溯长度对卷积编码器性能的影响⋯⋯⋯⋯⋯⋯⋯4
6.2不同码率对卷积编码器误码性能的影响⋯⋯⋯⋯⋯⋯⋯5
6.3不同约束长度对卷积编码器的误码性能影响⋯⋯⋯⋯⋯6
七、卷积码编码器的VHDL设计与仿真⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8
7.1VHDL设计的优点与设计方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8
7.2卷积码编码器的VHDL实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯10
八、心得体会⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯10
九、参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11
卷积编码器的设计
一、设计要求
(1)画出卷积码的原理框图,说明系统中各主要组成部分的功能。
(2)使用EDA技术及VHDL语言对卷积编码器进行设计与仿真并对结果分析。
二、设计作用与目的
(1)巩固加深对通信基本知识分析以及卷积码的掌握,提高综合运用通信知识的能力。
(2)掌握采用仿真软件对系统进行仿真分析。
(3)培养学生查阅参考文献,独立思考,设计,钻研电子技术相关问题的能力。
(4)掌握相关电子线路工程技术规范以及常规电子元器件的性能技术指标。
(5)培养严肃认真的工作作风与科学态度,建立严谨的工程技术观念。
(6)了解电气图国家标准,并利用电子CAD等正确绘制电路图。
(7)培养工程实践能力,创新能力与综合设计能力。
三、所用设备及软件
(1)QUARTUⅡS
(2)PC机
四、卷积码编码的概念
4.1卷积码的编码描述方法
编码描述方法有5种:
冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述法和网格图描述法。
卷积码的纠错能力随着N的增加而增大,而差错率随着N的增加而指数下降。
在编码器复杂性相同的情况下,卷积码的性能优于分组码。
分组码有严格的代数结构,但卷积码至今尚未找到如此严密的数学手段。
分组码的译码算法可以由其代数特性得到。
卷积码虽然可以采用适用于分组码的门限译码(即大数逻辑译码),但性能不如维特比译码和序列译码[2]。
以二元码为例,输入信息序列为u=(u0,u1,⋯),其多项式表示为u(x)=u0+u1x+⋯+⋯。
编码器的连接可用多项式表示为g(1,1)(x)=1+x+x2和g(1,2)(x)=1+x2,称为码的子生成多项式。
它们的系数矢量g(1,1)=(111)和g(1,2)=(101)称作码的子生成元。
以子生成多项式为阵元构成的多项式矩阵G(x)=[g(1,1)(x),g(1,2)(x)],称为码的生成多项式矩阵。
由生成元构成的半无限矩阵。
4.2卷积编码
卷积码的编码器一般都比较简单
图4.1卷积码编码器
图4.1是一般情况下的卷积码编码器框图。
它包括NK级的输入移位器,一组n个模2和加法器和n级的输出移位寄存器。
对应于每段k比特的输入序列,输出n个比特。
由图可知,n个输出比特不但与当前的k个输入比特有关,而且与以前的(N-1)k个输入信息比特有关。
整个编码过程可以看成是输入信息序列与由移位寄存器和模2加法器的连接方式所决定的另一个序列的卷积,卷积码由此得名。
本文采用的是冲击响应描述法编码思想。
图4.2(2,1,3)卷积编码器
如图4.2是卷积码(2,1,3)卷积编码器的一个框图。
左边是信息的输入。
下面分别是系统位输出和校验位输出。
其中间是3个移位寄存器和一个模2加法器。
简单的说就是信息位经过移位寄存器和一个模2加法器产生一个系统位和校验位加在一起输出。
可以看出:
每输入一个比特,移位寄存器中就向右移动一个位子。
原来的第三个寄存器就被移出。
可见卷积编码不只与现在的输入比特有关还与前面的3-1个比特有关。
所以约束长度是3。
在这里,其中K=1,n=2所以码率R=K/n=1/2[3]。
4.3卷积码的树状图
对于图4.2所示的(2,1,3)卷积码编码电路,其树状图如下图4.3所示,这里,分别用a,b,c和d表示寄存器的4种状态:
00,01,10和11,作为树状图中每条支路的节点。
以全零状态a为起点,当输入位信息位为0时,输出码元c1c2=00,寄存器保持状态a不变,对应图中从起点出发的上支路;当输入位为1时,输出码元c1c2=11,寄存器则转移
到状态b,对应图中的下支路;然后再分别以这两条支路的终结点a和b作为处理下一位输入信息的起点,从而得到4条支路,以此类推,可以得到整个树状图。
如下图4.3
状态
A00
B01
C10
D11
A00
B01
C10
D11
0000
a
aba11c
da10a
d
01
b11bc
图4.3(2,1,3)树状图
4.4卷积码的网格图
状态图可以完整的描述编码器的工作过程,但是其只能显示状态转移的过程而不能显示状态转移发生的时刻,由此引出用来表示卷积码的另一种常用方法——网格图。
网格图就是时间与对应状态的转移图,在网格图中每一个点表示该时刻的状态,状态之间的连线表示状态转移。
通过观察网格图可以发现在网格图中输入信息x(n)并没有标出,但如
观察到转移后的状态表示(x(n),x(n-1))就可以发现输入信息已经隐含在转移后的状态中[4]。
如下图4.4是(2,1,3)卷积编码的网格图。
状态
a=00
b=01
c=10
d=11
图4.4(2,1,3)卷积编码的网格图
五、EDA设计方法及工具软件QUARTUSⅡ
(1)前端设计(系统建模RTL级描述)后端设计(FPGAASIC)系统建模。
(2)IP复用。
(3)前端设计。
(4)系统描述:
建立系统的数学模型。
(5)功能描述:
描述系统的行为或各子模块之间的数据流图。
(6)逻辑设计:
将系统功能结构化,通常以文本、原理图、逻辑图、布尔表达式来表示设计结果。
(7)仿真:
包括功能仿真和时序仿真,主要验证系统功能的正确性及时序特性。
六、改变卷积编码器的参数仿真以及结论
6.1不同回溯长度对卷积编码器性能的影响
下面将以(2,1,3)卷积码来建立模块仿真。
将编码模块中的Tracebackdepth分别设置为20,35,45并在一个图中画出这三种方式下的误码性能曲线得到下图。
从上到下的三条曲线分别是Tracebackdepth为20,35,45。
可以看出:
回溯长度是在Viterbi译码过程中一个很重要的参数,他决定了译码延迟,随着他的不断变化,误码性能也随误比特率曲线可以清楚地看到,当回溯长度一定时,随着信道噪声的逐渐减小,系统的误比特率逐渐降低;当回溯长度逐渐增加,系统的误比特率随之逐渐降低,但是当回溯程度a增加到a≥
5N时(N为编码的约束长度),误比特率数值趋于稳定,因此,在确定回溯长度时既要考虑到随着a的增加误比特率随之降低的趋势,也要考虑到译码延迟会变大,在选取回溯长度时,通常取a=5N。
图6.1不同回溯长度对误码性能的影响
分析不同回溯长度对卷积码无码性能的影响时用到的程序如下:
x=-10:
5;
y=x;
fori=1:
length(x)
SNR=x(i);
sim(‘yima');
y(i)=mean(BitErrorRate);
End
semilogy(x,y);
Holdon;
fori=1:
length(x)
SNR=x(i);
sim(‘yima2');
y(i)=mean(BitErrorRate);
End
semilogy(x,y);
6.2不同码率对卷积编码器误码性能的影响
下面图是通过改变卷积码的码率为1/2和1/3而得到的二条对比曲线。
上面的一条曲线是码率为1/2,下面的是码率为1/3。
卷积码的码率R=k/n,他是卷积码的一个重要参数,当改变卷积码的码率时,系统的误码性能也将随之发生变化。
从图中的误比特率曲线可以
看出,当码率一定时,随着信道噪声的逐渐减小,系统的误比特率也呈现出增大的趋势,
也就是说码率越低,系统的误比特率就越小,误码性能就越好。
图6.2卷积码不同码率对误码性能的影响
分析不同码率对卷积码误码性能的影响时用到的程序如下:
X=0:
5;
y=x;
fori=1:
length(x)
SNR=x(i);
sim(‘yimal');
y(i)=mean(BitErrorRate);
end
semilogy(x,y);
holdon;
fori=1;length(x)
SNR=x(i);
Sim(‘yima2');
y(i)=mean(BitErrorRate);
end
semilogy(x,y);
6.3不同约束长度对卷积编码器的误码性能影响如下图,对于码率一定的卷积码,当约束长度N发生变化时,系统的误码性能也会随之发生变化,我们以码率R=1/2的(2,1,3)和(2,1,7)卷积码为例展开分析。
上面的曲线是(2,1,3)卷积码的误码性能曲线。
下面的曲线是(2,1,7)卷积码的误码性能曲线。
从图中的误比特率曲线可以清楚的看到,随着约束长度可以降低系统的误比特率,但是随着约束长度的增加,译码设备的复杂性也会随之增加,所以对于码率为1/2的卷积码,我们在选取约束长度时一般为3-9。
图6.3不同约束长度对卷积码误码性能的影响
分析不同约束长度对卷积码误码性能影响用到的程序如下:
x=0:
5;y=x;
fori=1:
length(x)
SNR=x(i);
Sim(‘yima');y(i)=mean(BitErrorRate);end
semilogy(x,y);
holdon;
fori=1:
length(x)
SNR=x(i);sim(‘yima1');y(i)=mean(BitErrorRate);
end
semilogy(x,y);
通过上面从
(1)回溯长度;
(2)码率;(3)约束长度这三个卷积码编码器的重要
参数的变化后对译码性能的分析,我们得到在卷积码的编码,译码过程中很多条件是不可
能同时满足的。
所以我们要根据具体情况来选择合适的参数。
七、卷积码编码器的VHDL设计与仿真
7.1VHDL设计的优点与设计方法
VHDL语言采用自上至下和基于库的设计方法,其突出的优点是具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路。
本设计所用VHDL设计平台是Altera的QuartusⅡEDA软件。
QuartusⅡ界面友好,使用便捷;它支持VHDL语言文本文件,原理图,以及波形与EDIF等格式的文件作为设计输入,并支持这些文件的任意混合设计:
具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确的仿真结果。
7.2卷积码编码器的VHDL实现
7.2.1卷积编码器顶层建模的VHDL描述
libraryieee;
useieee.std_logic_1164.all;
entityencoderisport(clk:
instd_logic;clr:
instd_logic;
data_in:
instd_logic;
c0,c1,c2:
outstd_logic);end;
architecturebehaveofencoderiscomponentdff2
port(d,clk,clr:
instd_logic;q:
outstd_logic);
endcomponen;tcomponentxor2port(a,b:
instd_logic;y:
outstd_logic);
endcomponen;tcomponentxor3port(a,b,c:
instd_logic;y:
outstd_logic);
endcomponen;t
signaldin,r1,r2,y1,y2:
std_logic;begindin<=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;
end;用QuartusⅡ编译后生成的编码器图形符号如图所示
图7.2编码器图形符号
7.2.2卷积编码器VHDL仿真波形
卷积编码器VHDL仿真波形如图7.3所示。
仿真前设输入信息序列datain=“11011”,速率为32kb/s。
仿真结果表明,卷积编码输出为“111100010110100”,速率为96kb/s,与理论分析结果一致。
八、心得体会
我们利用Lattice公司的CPLD器件及EDA软件工具,设计的(2,1,m)卷积码编码器满足卫星信道的设计要求,并具有体积小、功耗低等优点。
在设计过程中采用VHDL硬件描述语言进行输入,可以在设计过程中利用EDA软件所提供的逻辑或时序仿真功能,实时检验电路的设计结果,从而提高硬件电路的设计功率,缩短硬件电路的开发时间。
。
编解码器结构简单,实现容易,将通过仿真的VHDL程序下载到FPGA芯片EPF10K10LC84-3上,并在实际扩频系统中用于差错控制,验证效果较好。
需要指出,对于长突发错误000⋯000-111⋯111,解码器不能纠正,需要采用交织技术同卷积解码纠错技术相结合,将突发分离,才可进一步提高纠错性能。
10
九、参考文献
[1]吴伟發.信息处理与编码[M].北京:
人民邮电出版社.1999.
[2]王新梅.肖国镇.纠错码-原理与方法[M].西安:
西安电子科技大学出版社.2001.
[3]段吉海.黄智伟.基于CPLD/FPGA的数字通信系统的建模与设计[M].北京:
电子工业出版社.2004
[4]布哈加瓦VK.数字卫星通信[M].北京:
电子工业出版社.1987ChipFlenning.ATutorialonConvolutionalCodingwithVitcrbiDecoding.1999.
[5]ProakiaJC.数字通信[M].第3版.北京:
电子工业出版社.2001.
[6]王金明.杨积斌.数字系统设计与VerilogHDL[M].北京:
电子工业出版社.2002.
[7]田耕无线通信FPGA设计.电子工业出版社.2008
[8]樊昌信.通信原理.国防工业出版社.2009
11