Turbo码编解码(2)
时间:2025-07-15
时间:2025-07-15
介绍TURBO码的编解码原理;TURBO码的Matlab软件仿真方法;TURBO码的QuartusII硬件仿真方法,TURBO码在FPGA硬件平台上的实现方法。
了更好利用译码器之间的信息,译码算法所用的应是软判决信息而不是硬判决。一个由两个分量码构成Turbo码的译码器是由两个与分量码对应的译码单元和交织器组成的,将一个译码单元的软输出信息作为下一个译码单元的输入;为了获得更好的译码性能,将此过程迭代数次。这就是Turbo码译码器的基本工作原理。 Turbo码的译码结构如下图所示:
如图所示Turbo码译码器的接收序列为Rk=(xk,yk),yk经过开关电路,分离为y1k,y2k分别输入解码器1和解码器2中。为了使译码后的比特错误概率最小,根据最大概率译码准则,应该根据Rk计算后验概率(APP)P(dk)=P(dk|xk,yk),但是当码较长时,计算复杂度太高。因此,在Turbo码中,采用了一种次最优译码的规则,将y1k,y2k分开考虑,由两个分量码译码器分别计算后验概率
e
P(dk|y1,L1)和P(dk|y2,Le2),然后通过两个译码器之间的多次迭代,使它们收敛于P(dk),从而达到eeee
LLLL121了近Shannon限的性能。和为附加信息。其中为译码器2输出,作为译码器1的先验信息;其中2
为译码器1输出,作为译码器2的先验信息。
四、实验中的Turbo码编解码框图
1、Turbo编码的实现 (1)端口设置
cs_ turbo:输入turbo编码使能位,’1’电平有效; datain:输入8位编码输入位,其中低5位为编码输入位;
dataout:输出16位编码输出位,其中低15位为编码输出位(高5位为系统信息,中5位为第一路编码输
介绍TURBO码的编解码原理;TURBO码的Matlab软件仿真方法;TURBO码的QuartusII硬件仿真方法,TURBO码在FPGA硬件平台上的实现方法。
出,低5位为第二路编码输出),最高位补’0’。 (2)主程序
process(cs_turbo,datain)
variable sys2,parity2,parity1 : std_logic_vector(4 downto 0); variable i : integer range 0 to 5;
variable reg1,reg2 : std_logic_vector(1 downto 0); variable m1,m2 : std_logic; variable temp1,temp2 variable recept1 begin
if cs_turbo='1' then for i in 0 to 5 loop
if i=5 then else
--Encode one
m1:=reg1(1) xor reg1(0) xor datain(i); temp1:=m1 xor reg1(0); reg1:=m1 & reg1(1);
parity1:=temp1 & parity1(4 downto 1); --Encode two
m2:= reg2(1) xor reg2(0) xor sys2(i); temp2:=m2 xor reg2(0); reg2:=m2 & reg2(1); --Initialize
reg1:="00";reg2:="00"; --Interleave
recept1(4):=datain(4);recept1(3):=datain(2);recept1(2):=datain(0); recept1(1):=datain(1);recept1(0):=datain(3); sys2:=recept1; --Output
dataout<='0' & datain(4 downto 0) & parity1 & parity2;
: std_logic;
: std_logic_vector(4 downto 0);
下一篇:城市与区域投资环境评价上海简本