OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

72
OFDM 系 Turbo 系系系系 ARQ 系系系系系系系系 答答答 答答答 答答答答 答答

description

OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现. 答辩人:刘伟峰 指导老师:朱杰. 背景概述. 课题背景. 高频短波通信 抗毁能力极强 覆盖范围广 运行成本低 机动灵活 战争、自然灾害、边远地区的主要通信方式. 研究重点. Turbo 码的原理、仿真和设计 Matlab 建模仿真 矩阵推导 MAP 算法 短帧 Turbo 码的设计方法 Turbo 编码混合自动重复请求方案 现有方案的分析比较 提出新颖的“分而治之 Turbo 编码 HARQ” 方案 系统模块的 DSP 实现与优化 循环冗余校验码的快速实现 - PowerPoint PPT Presentation

Transcript of OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Page 1: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

答辩人:刘伟峰 指导老师:朱杰

Page 2: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab2

背景概述

Page 3: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab3

课题背景

高频短波通信 – 抗毁能力极强– 覆盖范围广– 运行成本低– 机动灵活

战争、自然灾害、边远地区的主要通信方式

Page 4: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab4

研究重点

Turbo 码的原理、仿真和设计– Matlab 建模仿真– 矩阵推导 MAP 算法– 短帧 Turbo 码的设计方法

Turbo 编码混合自动重复请求方案– 现有方案的分析比较– 提出新颖的“分而治之 Turbo 编码 HARQ” 方案

系统模块的 DSP 实现与优化– 循环冗余校验码的快速实现– Max-Log-MAP 算法的实现与优化

Page 5: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab5

OFDM—— 抗多径衰落的尖兵

频谱划分成窄的平坦衰落子信道

串并变换后,每个子信道上的符号速率下降,可以很好的对抗时延扩展

把频率和时间选择性衰落的影响随机化,有利于纠错码工作

一个频率选择性信道→多个非频率选择性信道

Page 6: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab6

OFDM 的 Matlab 实现

Page 7: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab7

Turbo 码的原理、仿真和设计

Page 8: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab8

Turbo 码——接近 Shannon 限的好码

编码器由两个递归系统卷积码通过交织器级联的方式结合而成,以较小的编译码复杂度,生成码重分布优良的长码

译码器采用迭代的方式,两个分量译码器互相帮助,充分利用码子的约束信息

在短约束长度、长分组以及 10 到 20 次迭代的情况下, Turbo 码在误码率( BER ) 10e-5处距离 Shannon 限 0.5dB 左右

Page 9: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab9

Turbo 编码器

D D

D D

interleaver

ku kx

1ky

2ky

ku 3ky 1ky2ky½ Convolutional

Encoderinterleaver

2/3 Convolutional

Encoder

并行级联卷积编码器

串行级联卷积编码器

Page 10: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab10

Turbo 解码器

interleaver

kd

kx1ky

2ky

SISODecoder 1

SISODecoder 2

interleaver

De-interleaver

+ De-interleaver

Hard Decision

( )kLLR d

并行级联卷积译码器

Page 11: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab11

软输入软输出分量译码器

对数似然比( LLR ) Y 是观测, uk 是估计值 符号表示 0 , 1 比特,幅度表示可靠程度

( 1| )( | ) ln( )

( 1| )k

kk

P u YL u Y

P u Y

Page 12: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab12

MAP 算法

想法– 把比特的概率估计转化为状态转移的概率估计– 把状态转移的概率估计以递推形式计算

计算– 三种度量,两次递推,一步到位

特点(相比维特比算法)– 复杂度大(乘法,除法,指数,对数计算)– 卷积译码无优势– 可以输出译码软信息

Page 13: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab13

MAP 算法

前向度量 后向度量 分支度量

前向递推 后向递推

后验概率 LLR

11 1 1( ') ( '; )k

k km P S m Y

1( ) ( | )Nk k km P Y S m

1( ', ) ( ; | ')k k k km m P S m y S m

1'

( ) ( ', ) ( ')k k km

m m m m

1 1'

( ) ( ') ( , ')k k km

m m m m

1( ', ) 1

1( ', ) 1

( ') ( ', ) ( )

( | ) ln( )( ') ( ', ) ( )

k

k

k k km m u

kk k k

m m u

m m m m

L u Ym m m m

Page 14: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab14

MAP 算法的计算流程

计算分支度量前向递推计算前

向度量后向递推计算前

向度量综合计算后验概

率 LLR

Y

( )kLu( ', )k m m

k m

k m

( | )kLu Y

Page 15: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab15

MAP 算法的矩阵表示

(0)

(1)

( 1)

k

kk

k

A

M

(0)

(1)

( 1)

k

kk

k

B

M

(0,0) (0,1) (0, 1)

(1,0) (1,1) (1, 1)

( 1,0) ( 1,1) ( 1, 1)

k k k

k k kk

k k k

M

M

M M M M

前向度量 后向度量 分支度量矩阵

'1k k kA A

1 1k k kB B

前向递推

后向递推

Page 16: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab16

MAP 算法的矩阵表示

' ' ' '1 2 1 0k k kA A

1 2k k k N NB B 1

0 1 2 10

' ( ) ( ) ' ( )M

N NNk k k km

A B m m A B

( ( ) ( )) ( ) ( )k k k kDiag m m Diag A Diag B

1 ( 1)*( 1) 1[ ( ') ( ', ) ( )] ( ) ( )k k k M M k k km m m m Diag A Diag B

Page 17: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab17

MAP 的简化算法—— Max-Log-MAP

指数运算和乘法运算的噩梦 变换到对数域中

利用近似公式

( ) ln( ( ))k kA m m ( ) ln( ( ))k kB m m ( ', ) ln( ( ', ))k km m m m

ln( ) max( )ixi

ii

e x

Page 18: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab18

Max-Log-MAP 算法

简化前向递推 1'( ) max( ( ') ( ', ))k k km

A m A m m m

简化后向递推 1( ') max( ( ) ( ', ))k k kmB m B m m m

支路度量计算 1

1( ', ) ( )

2 2

nc

k k k kl kl

Lm m u L u x y

后验概率计算 1( ', ) 1

1( ', ) 1

( | ) max ( ( ') ( ', ) ( ))

max ( ( ') ( ', ) ( ))k

k

k k k km m u

k k km m u

L u Y A m m m B m

A m m m B m

Page 19: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab19

Log-MAP 算法

近似导致性能损失 引入纠正项

1 2 1 2| |

1 2

1 2 1 2

ln( ) max( , ) ln(1 )

max( , ) | |

x x x x

c

e e x x e

x x f x x

Page 20: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab20

串行级联卷积码系统 Matlab 实现

Page 21: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab21

并行级联卷积码系统 Matlab 实现 1

Page 22: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab22

并行级联卷积码系统 Matlab 实现 2

Page 23: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab23

Turbo 码仿真 1 之译码器结构——迭代次数

Page 24: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab24

Turbo 码仿真 1 之译码器结构——误码率

Page 25: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab25

短帧 Turbo 码的设计要点 1

译码器结构的选择: PCCC 结构的误码平层大约为 1e-5 ,而 SCCC 结构能够提供更低的误码平层(大约 1e-7 ), SCCC需要更多的迭代次数达到误码平层,本身的译码复杂度也是远远高于 PCCC (内编码器是 4进制输入, 8进制输出,格形图上有 16 个状态,每个状态出发有 4条路径,每个状态有 4条路径交汇)。在本系统中,我们选择 PCCC结构。

Page 26: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab26

Turbo 码仿真 2 之分量码——递归

Page 27: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab27

Turbo 码仿真 2 之分量码——生成多项式

Page 28: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab28

Turbo 码仿真 2 之分量码——约束长度

Page 29: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab29

短帧 Turbo 码的设计要点 2

分量码的选择:分量码必须是递归形式的,递归形式的分量码对于 Turbo 码减少低码重码子起着十分重要的作用,分量码的生成多项式也起着十分重要的作用,必须优化设计,分量码的约束长度对于 Turbo 码的作用十分有限,增大分量码的约束长度导致译码器复杂度的增加。在本系统中,我们推荐使用 poly2trellis(3, [7 5],7) 分量码。

Page 30: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab30

Turbo 码仿真 3 之帧长

Page 31: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab31

短帧 Turbo 码的设计要点 3

帧长:对于 Turbo 码的性能而言,希望帧长越长越好,虽然帧长度的增加不会增加单位比特译码的复杂度,但是帧长直接决定了系统传输的时间延迟和译码存储空间,所以帧长度的选择必须折中考虑。一般的对于语音系统,帧长为 200 比特左右,对于视频系统,帧长为 1000 比特左右。本系统中,我们使用 256 比特作为帧的长度。

Page 32: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab32

Turbo 码仿真 4 之交织器—— SCCC

Page 33: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab33

Turbo 码仿真 4 之交织器—— PCCC

Page 34: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab34

Turbo 码仿真 4 之交织器——奇偶分离

Page 35: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab35

短帧 Turbo 码的设计要点 4

交织器:交织器在 Turbo 码系统中也是一个十分重要的组件,相比较差的交织器,良好的交织器可以提供大约 0.2dB 到 1dB 左右的增益,大量的试验证明,一般的随机交织可以取得良好的性能,代数交织和随机交织的性能相当,但是随着帧长的变小,随机交织的优越性会消失,直至我们必须“刻意”的设计交织器,才能使 Turbo 码正常工作。随机交织对于帧长度没有约束,代数交织器一般对于帧长有着特殊的要求,矩阵交织器同样要求帧长能够分解成两个相近数的乘积。所有的交织器都可以通过查表的方式完成。本系统中,我们推荐使用随机交织。

Page 36: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab36

Turbo 码仿真 5 之译码算法——简化

Page 37: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab37

Turbo 码仿真 5 之译码算法——量化比特数

Page 38: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab38

短帧 Turbo 码的设计要点 5

译码算法: Log-MAP 算法和 MAP 算法相当,Max-Log-MAP 有大约 0.5dB 的性能损失,MAP 算法复杂度最大, Log-MAP 和 Max-Log-MAP 计算量相近,但是 Max-Log-MAP 算法在结构上最接近维特比算法,容易在 DSP上快速实现。 3 比特的量化足够,但是在高信噪比区,推荐 6 比特量化。在本系统中,我们使用 Max-Log-MAP 算法, 6 比特量化。

Page 39: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab39

Turbo 码仿真 6 之打孔

Page 40: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab40

短帧 Turbo 码的设计要点 6

打孔:打孔可以提高码率,但是会带来误码率方面的性能损失,打孔的选择应该基于系统设计要求的考虑,没有孰优孰劣的问题。本系统中,我们使用 1/2 码率的 Turbo 码,打孔方式取经典方案。

Page 41: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab41

Turbo 码仿真 7 之结尾

Page 42: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab42

短帧 Turbo 码的设计要点 7

结尾策略:对于帧长大约 1000 比特的系统,无需考虑迫零处理,当帧长小于 50 比特,我们采用方案 4迫零处理。

Page 43: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab43

Turbo 码混合 ARQ 系统

Page 44: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab44

source CRC Turbo Enc Tx Buffer

sink CRC Turbo Dec Rx Buffer

Feedback CH Channel

ARQ Control

ARQ Control

Turbo 编码混合 ARQ 系统

Page 45: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab45

传统 HARQ 分类

Type I HARQ :数据被加以 CRC 并用 FEC 编码,重传时,错误分组被丢弃,重传分组与前一次相同。

Type II HARQ :考虑无线信道的时变特性,在首次传输数据块时没有或带有较少的冗余,如果传输失败,重传的数据块不是首次所传数据块的复制,而是增加了其中的冗余部分。在接收端将两次收到的数据块进行合并,编码速率下降而提高编码增益。

Type III HARQ :与第二类 HARQ不同的是重传码字具有自解码能力,因此接收端可以直接从重传码字当中解码恢复数据,也可以将出错重传码字与已有缓存的码字进行合并后解码。

Page 46: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab46

Turbo 码 HARQ I 型

我们用 ARQ I型广义的表示发送端在重发数据分组时,不生成新的码子,与传统定义不同的是,接收端不一定丢弃首发分组,完全可以利用首发的信息,增加系统的通过率。

这种 ARQ 机制的优点是系统充分利用了硬件资源,编译码器的结构和控制都比较简单,有利于系统降低复杂性和减少功耗。

Page 47: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab47

Turbo 码 HARQ I 型接力棒式 Turbo 码 HARQ

在发方,首先将欲传信息经 Turbo 编码器编码后发送出去,接收端经过 Turbo 译码,如果通过 CRC检错校验,反馈 ACK 信号回发送端,如果不能通过 CRC检错校验,则反馈 NACK 信号到发送端;

发送端收到重发指令,则将该信息的原先的码子重新发送; 在收方,对于重发帧的译码,可将上一帧的译码结果用作先验

信息,并用于 Turbo 译码器进行译码。如果译码结果通过 CRC检错校验,反馈 ACK ,否则反馈 NACK;

重复第 2 、第 3 步,直到发送端收到 ACK 信号,或者达到最大的重发次数,放弃此次通信。

Page 48: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab48

Turbo 码 HARQ II 型

我们用 ARQ II型表示发送端在重发数据分组时,生成新的校验信息,即所谓的增量冗余信息,但是新的分组没有自解码性质。

ARQ I型:简单的“重复码”,其最小码距是原来的L倍;实际上,通过 L 次重发可以构成纠错能力更强的纠错码。

这种 ARQ 机制的优点是能够充分利用重发的分组资源,纠错能力比 I型更强,但是系统的编译码硬件设计必须以最低码率的纠错码设计,而系统一般运行在较高的码率水平上,所以不能充分利用硬件资源,编译码器的结构和控制相对复杂。

Page 49: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab49

Turbo 码 HARQ II 型速率兼容打孔 Turbo 码 HARQ

发送端生成 L*N 比特长度的 Turbo 码,经过打孔形成 N 比特长度分组,发送到信道,并且保存被删除的其他校验比特;

接收端接收到分组,经过 Turbo 译码,如果通过了 CRC检错,发送ACK 信号,否则,发送 NACK 信号;

发送端收到 NACK 信号,并累计重发次数,发送剩余的相应的 N 比特校验比特;

接收端接收到重发分组后,与首发分组组成新的码子,经过 Turbo 译码,如果通过了 CRC检错,发送 ACK 信号,否则,发送 NACK 信号;

发送端收到 NACK 信号,并累加重发次数,发送剩余的相应的 N 比特校验比特;

接收端接收到重发分组后,与前两次的分组组成新码子,经过 Turbo译码,如果通过 CRC检错,发送 ACK 信号,否则,发送 NACK 信号;

重复上述过程,直到发送端收到 ACK 信号,或者重发次数达到最大的L 次,放弃本次通信。

Page 50: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab50

Turbo 码 HARQ II 型Turbo 码分而治之 HARQ

基本思想是:假设系统是 1/2 码率的 Turbo 码,我们的编译码硬件设计也是按照基本的 1/2 码率的 Turbo 码来设计,当发送端被要求重发时,我们可以把信息序列分成奇数位和偶数位两类,奇数位的信息比特保持不变,但是偶数位的信息比特用已知的“ 01”序列代替,然后经过编码器生成码子,实际上,新生成的码子的有效信息比特只有原来的一半,同时,码率也下降了一半,这也就意味着码子有着更强的纠错能力,在接收端,译码器首先对重发分组进行译码,运用相应的先验信息,得到关于信息序列奇数位比特的可靠信息,然后把这些信息反馈到第一个分组的译码器,通过奇数位比特的可靠信息来获得的正确译码。如果这时候,译码输出仍然没有通过 CRC 校验,那么在发送端可以把偶数位比特信息序列按奇偶分成 2段,只传输其中 1/4 的信息比特,其他位置用已知序列填充,以此类推,最终获得正确译码。

Page 51: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab51

分而治之方案的性能——误帧率

Page 52: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab52

分而治之方案的性能——通过率

Page 53: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab53

Turbo 码 HARQ III 型

ARQ III型表示发送端在重发数据分组时,生成新的校验信息,同时新的分组具有自解码性质。

纠错能力和译码复杂度都介于 I型和 II型之间。与 II型类似的是系统不能充分利用硬件资源,编译码器的结构和控制相对复杂。

Page 54: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab54

Turbo 码 HARQ III 型多维 Turbo 码 HARQ

Turbo 码本身就可以构成一种很好的 ARQ 机制,首先,利用分量码 1 生成码子 1 ,发送到信道,如果接收端能正确接收,那么继续发送下一帧数据,如果不能,那么经过交织的信息序列利用分量码 2 ,生成码子 2 ,发送到信道,译码器先对码子 2进行译码(可以利用第一次译码的结果作为先验信息),如果译码成功,就反馈 ACK 信号,如果失败,那么联合码子 1 和码子 2进行 Turbo 迭代译码,如果译码成功那么就反馈 ACK ,如果到了预定的迭代次数,仍然没有通过 CRC 校验,那么反馈 NACK 信号,发送端可以进一步利用新的交织器和新的分量码,生成码子 3 ,在接收端,译码器先利用前次译码结果作为先验信息,对码子 3进行译码,如果成功就反馈 ACK 信号,如果失败,那么就把 3个码子构成一个 3 维的 Turbo 码,进行译码,以此类推,直到译码成功 。

Page 55: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab55

Turbo/HARQ 系统 DSP 实现

Page 56: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab56

BLACKFIN DSP 介绍

高度并行的计算单元– 数据总线和程序总线分离的哈佛结构– 流水线技术– 独立多个乘加器单元

高性能地址产生器– 循环缓冲 – 嵌套零开销循环 – 传输过程中饱和和限幅

分层结构的内存– 较少的延迟– 缩短的处理空载时间

Page 57: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab57

BLACKFIN DSP 程序优化

特殊指令的使用 并行指令的使用 DSP硬件资源的合理使用 数据在内存中的优化配置流水线冲突

Page 58: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab58

CRC 算法原理

k位二进制数据序列 r位二进制校验码 n位二进制序列 生成多项式 满足

1 2 1 0( ) [ ... ]k kD x d d d d

1 2 1 0( ) [ ... ]r rR x p p p p

1 2 1 0 1 2 1 0( ) [ ... ... ]k k r rN x d d d d p p p p

( ) ( ) ( ) ( ) ( )rN x D x x R x Q x G x

( )G x

Page 59: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab59

字节序列求余的递推算法

M字节的序列 1 2 1 1[ , ,... , , ,... ]i i i MN B B B B B B

1 2[ , ,... ]i iN B B B

81( ) ( ) ( )i i iN x N x x B x

81( ) ( ) ( )i i iN x R x x B x

( ) ( ) mod( ( ))i iN x N x G x

1 1 1( ) ( ) ( ) ( )i i iN x Q x G x R x

Page 60: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab60

CRC 算法在 BLACKFIN DSP 上的实现

三字节序列算法

1. 为形如 [Da 0 0 ] 的三字节构造一个余数表。对于 M字节序列 N ,读取前 3 个字节数据构成最初的三字节序列 [Da Db Di] ,此时 i=3 ,然后进入如下的循环:

2. 根据 Da查表求得 [Da 0 0 ] 的余数 [Rh Rl];3. 计算 Db+Rh 和 Di+Rl ,得到新的 Da 和 Db;4. 判断 i 是否等于 M ,如果相等则循环结束,得到余数,否则,读取序列 N 中的下个数据字节 Di+1 ,得到新的三字节序列,跳到 2。

3 次总线读, 2 次异或, 1 次加法, 1 次移位和 1 次寄存器赋值

Page 61: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab61

CRC 算法在 BLACKFIN DSP 上的优化

四字节序列算法

1. 为形如 [Da 0 0 0] 的四字节和 [Db 0 0] 的三字节构造余数表。对于 M字节序列 N ,读取前 4 个字节数据构成最初的四字节序列 [Da Db D2i-1 D2i] ,此时 i=2 ,然后进入如下的循环:

2. 根据 Da查表求得 [Da 0 0 0] 的余数 [Rah Ral];3. 根据 Db查表求得 [Db 0 0] 的余数 [Rbh Rbl];4. 计算 [D2i-1 D2i]+[Rah Ral]+[Rbh Rbl] ,得到新的 Da 和 Db;5. 判断 i 是否等于 [M/2] ,如果相等则跳到 6 ,否则,读取序列 N

中的下一个 16 位数据 [D2i+1 D2i+2] ,得到新的四字节序列 [Da Db D2i+1 D2i+2] ,跳到 2。

6. 如果M 是偶数,结束得到余数 [Da Db] ,否则对三字节序列 [Da Db DM] 求余得到结果。

3 次总线读, 2 次异或, 2 次加法, 2 次移位和 4 次寄存器赋值。

Page 62: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab62

CRC 算法优化结果

四字节算法相比三字节算法,平均对每个字节的操作少了 1.5 次总线读, 1 次异或,但是多了一次寄存器数据搬移

测试表明:效率提高 33%

Page 63: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab63

Max-Log-MAP 算法

简化前向递推 1'( ) max( ( ') ( ', ))k k km

A m A m m m

简化后向递推 1( ') max( ( ) ( ', ))k k kmB m B m m m

支路度量计算 1

1( ', ) ( )

2 2

nc

k k k kl kl

LBM m m u L u x y

后验概率计算 1( ', ) 1

1( ', ) 1

( | ) max ( ( ') ( ', ) ( ))

max ( ( ') ( ', ) ( ))k

k

k k k km m u

k k km m u

L u Y A m BM m m B m

A m BM m m B m

Page 64: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab64

Max-Log-MAP 在 BLACKFIN DSP 上实现

支路度量的计算用 Add on Sign 指令完成。

递推计算为“加比选”蝶形计算,用 VIT_MAX 指令完成, 2 次 16 位的比较和选择

Page 65: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab65

蝶形计算在 BLACKFIN DSP 上实现

状态0

状态1

状态0

状态2BM

-BM

-BM

BM1(0)kA

1(1)kA

(0)kA

(2)kA

1(0)kB

1(1)kB

(0)kB

(2)kB

运算量占整个译码器的 80%

Page 66: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab66

蝶形计算在 BLACKFIN DSP 上实现

前向递推:

读取 BM 值; 读取度量 Ak-1(0); 读取度量 Ak-1(1); 计算 Ak-1(0)+BM,Ak-1(1)-BM,Ak-1(0)-BM,Ak-1(1)+BM; VIT_MAX 指令比较选择得到 Ak(0) 和 Ak(2); 保存度量 Ak(0) 和 Ak(2)。

Page 67: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab67

蝶形计算在 BLACKFIN DSP 上实现

后向递推:

读取 BM 值; 读取度量 Bk(0); 读取度量 Bk(2); 计算 Bk(0)+BM,Bk(2)-BM,Bk(0)-BM,Bk(2)+BM; VIT_MAX 指令比较选择得到 Bk-1(0) 和 Bk-1(1); 保存度量 Bk-1(0) 和 Bk-1(1) 。

Page 68: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab68

蝶形计算在 BLACKFIN DSP 上的优化

如果不进行优化,整个蝶形运算需要 10条指令 本文从以下几个方面对 ACS进行了优化:

– 第一, BLACKFIN 是双 40 位 ALU 结构,一个时钟周期内可以完成 4 次 16 位加法。

– 第二,总线 32 位宽,一次可以读取或保存两个 16 位操作数。– 第三, BLACKFIN具有数据处理和数据存取的并行处理能力。– 第四,两组可嵌套的零开销循环加上 4 组循环缓冲的数据指针。

– 第五,合理的分配数据可以避免 STALL 现象的发生。 – 第六,流水线冲突。

Page 69: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab69

蝶形计算在 BLACKFIN DSP 上的优化

前向递推:

读取 BM || 读取度量 Ak-1(0) , Ak-1(1);

计算 Ak-1(0)+BM,Ak-1(1)-BM,Ak-1(0)-BM,Ak-1(1)+BM;

VIT_MAX 指令得到和 Ak(0) 和 Ak(2) || 保存度量 Ak(0) || 保存度量 Ak(2) ;

Page 70: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab70

Max-Log-MAP 算法优化结果

主频 600M 的 BLACKFIN 处理器,数据帧长为 1024 ,译码器迭代 6 次

译码时间为 0.5ms 数据吞吐量为 2Mbps 相对于优化前,译码速度提高了 50% 以上

Page 71: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab71

结束语——工作小结

Matlab 建模、编程和仿真; 用矩阵形式表达MAP 算法; 给出短帧 Turbo 码的设计要点; 提出“分而治之 Turbo/HARQ” 方案,给出仿真结果; 系统的阐述了 BLACKFIN DSP 的程序优化问题; 提出了 CRC 的“四字节序列求余”改进算法; 优化了Max-Log-MAP 算法,提高了 Turbo 译码器

的数据吞吐量。

Page 72: OFDM 系统中 Turbo 编码混合 ARQ 技术的研究和实现

Bell Joint Lab72

谢谢大家!—— Q&A