CN101127973B - Td-scdma/3g/4g终端多径接收合并器 - Google Patents
Td-scdma/3g/4g终端多径接收合并器 Download PDFInfo
- Publication number
- CN101127973B CN101127973B CN2006101552739A CN200610155273A CN101127973B CN 101127973 B CN101127973 B CN 101127973B CN 2006101552739 A CN2006101552739 A CN 2006101552739A CN 200610155273 A CN200610155273 A CN 200610155273A CN 101127973 B CN101127973 B CN 101127973B
- Authority
- CN
- China
- Prior art keywords
- symbol
- path
- ram
- signal
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本申请提出一种技术领先的TD-SCDMA及第三代、第四代移动通信(4G)终端的多径接收合并器,负责接收来自多径信号接收机输出的(I/Q)符号流(含通信信息),将多径接收的(I/Q)符号流有效地合并成单路(I/Q)符号流,用于进一步完成基带解调。该多径接收合并器是基带接收机的重要组成部分,基带接收机主定时器为多径接收合并器提供系统同步定时信号。该多径接收合并器使用1个环形FIFO缓存器,作为数据存储器RAM,用于保存从各个接收路径收到的新符号,以及保存对从各路径接收到的符号的合并结果。该多径接收合并器根据来自主定时器的新(I/Q)符号指示,对接收的每一个新符号进行计数,从而获得多径接收合并器当前要输出的I/Q符号在上述数据存储器RAM中的位置。主定时器所指示的当前符号写入多径接收合并器的数据存储器RAM的地址位置,与多径接收合并器从数据存储器RAM中取当前输出的I/Q符号的地址位置,二者之间的偏移量取一个固定值,是多径按收合并器所允许的最大路径迟延,也是多径接收合并器所引入的解调时间迟延。来自接收路径的数据所写入数据存储器RAM的地址是各接收路径发送来的符号的下标、主定时器指示的当前收到的符号的下标、多径接收合并器读数据存储器RAM的指针、多径接收合并器所允许的最大路径迟延的函数。
Description
技术领域
本申请涉及一种TD-SCDMA及第三代移动通信(3G,含cdma2000、UMTS、TD-SCDMA等)、第四代移动通信(4G)终端多径接收合并器,属移动通信技术制造领域。
背景技术
TD-SCDMA及3G、4G终端的收信机系统,是由射频接收机和基带接收机等两个子系统构成。其中,射频接收机子系统负责完成对射频信号接收、放大以及射频信号解调处理,将射频信号转换成基带信号。而基带接收机子系统则由多径接收单元和基带解调单元构成。其中,多径接收单元负责完成从射频接收机子系统收到的基带信号中进一步提取出多径基带信号。而基带解调单元则负责完成以下功能:①多径合并(multipath combining);②信号比特能量估计和解扰(descrambling);③软符号规整(soft symbol combining);④块解交织(block de-interleaving):⑤Turbo解码;⑥CRC(循环冗余校验码)校验。
发明内容
为增强、改进和提高TD-SCDMA/3G/4G终端的性能,同时减小TD-SCDMA/3G/4G终端的体积,并有效降低终端的对电源的消耗,我们设计出一种技术先进的、集成于芯片中、以硬核方式实现的TD-SCDMA/3G/4G终端基带解调单元。该终端基带解调单元由以下模块构成:①多径接收合并器;②信号比特能量估计和解扰器;③软符号规整器;④块解交织器;⑤Turbo解码器;⑥CRC校验器。
该终端基带解调单元不包括无线信号多径接收处理前端,因此需要与外部的无线信号多径接收处理前端协同工作。对于从无线信号多径接收处理前端收到的多径基带信号,首先经过该终端基带解调单元中的多径接收合并器的处理,对多径信号进行有效的合并,才能用于进一步完成基带解调。下面依次说明该终端基带解调单元中各个模块的结构、工作原理、工作过程。
一、TD-SCDMA/3G/4G终端基带解调单元框图。
图1是该TD-SCDMA/3G/4G终端基带解调单元的输入输出接口框图。如图1可见,TD-SCDMA/3G/4G终端基带解调单元的输入输出信号包括以下部分:①终端基带解调单元(receiver)接收到的、来自多径接收前端FFE的输入;②基带解调单元receiver接收到的、来自时钟产生器Clock_Gen的输入;③基带解调单元receiver接收到的、来自基带接收机主定时器(以下简写为主定时器)Master_Timer的输入;④基带解调单元receiver接收到的、来自DSP(数字信号处理器)的输入;⑤基带解调单元receiver发送给DSP的输出。该终端基带解调单元输入输出信号描述如表1所示。注:从多径接收前端FFE收到的每一个I(或Q)符号,是一 个用多位比特(如16位比特)表示的、通过对基带信号QPSK解调输出的扩频调制码片进行积分采样而获得的I(或Q)信号幅度的数值。
图2和图3给出该终端基带解调单元(图中的receiver)的两个组成部分的结构框图。图2示意的是其多径合并和解扰部分,而图3示意的是其信道解码部分。
二、信号比特能量估算和解扰单元EEDU(Eb Estimator and de scrambling unit)
图5A示意的是信号比特能量估算和解扰单元EEDU的框图,EEDU具有以下功能:①对加扰的(I/Q)符号进行解扰;②完成对多径合并信号的比特能量的估计。
1、EEDU模块工作原理:
(1)解扰操作:解扰操作是在扰码控制下对数据(I/Q)符号比特取反。扰码的值由基带接收机主定时器Master Timer(MSTR_TIM)产生。扰码按I(或Q)比特流速率(信道化扩展调制速率)采样,产生解扰比特对。主定时器提取这些比特,并按2倍的(I/Q)比特速率(也即I/Q复用比特速率)复用成一个串行比特流。这些解扰比特根据来自主定时器的相应的选通控制信号,被送入信号能量估计和解扰单元EEDU,进行解扰。由于解扰比特是在主定时器控制下产生的,所以相对于外部标准时钟而言,解码比特在时间上总是滞后于相同序号的定时器脉冲。信号能量估计和解扰单元负责估计出解码比特和主定时器脉冲之间在序号上的迟延。如图5所示,来自主定时器Master Timer产生的解扰码mstr_descr_cod,被送入到一个移位寄存器shift reg,其长度与在MPCU的延迟一致。如果解码为‘1’比特将被取反。如果解码为‘0’比特保持原样不变。(2)信号比特能量Eb估算器:Eb估算器获取每一帧中每一个(I/Q)符号,计算(I/Q)符号I2+Q2的累加值,估算出(I/Q)符号能量估计Es。如图6所示。(I/Q)符号能量估计Es和信号比特能量估计Eb之间存在一个确定的线性关系。(I/Q)符号的Es估计是接收信号的均方值,可以通过计算一个无线帧中的接收(I/Q)符号的平方的累加,然后再除以该帧中(I/Q)符号的数目而获得。然后再转换成单位时间内信号平均比特能量Eb(根据(I/Q)符号与信号比特之间的关系、编码率、(I/Q)符号比特打孔或(I/Q)符号比特重复,以及数据率):
(Eb/Nt)=信号比特能量与噪声谱密度的比值的估计;NPCG=一个帧中(I/Q)符号数目;
sI 2(n)=每一帧第n个I符号的幅度平方值;sQ 2(n)=每一帧第n个Q符号的幅度平方值;
=从QPSK矢量中解调出的(I/Q)符号包含的turbo/卷积编码FEC比特的平均数目。这个值用于说明(I/Q)符号重复和打孔的效果。r=Turbo编码或卷积编码率; =噪音谱密度估计。这种估计由DSP固件FW计算前向导频(I/Q)符号的最大比率合并值的方差然后除以64而获得。L=每一(I/Q)符号扩展调制的码片数。下述表2提供对于不同的打孔率/比特重复率的 值。
这些操作中,EEDU硬件只执行两个正交分量的平方的累加操作,即上式中方括号内的操作。上述估计在每个帧计算一次,并在解调器的适当中断请求下发送给DSP。EEDU硬件计算出的值,再被DSP固件采用上式中的常量转换成实际的Eb/Nt。
2、EEDU构成:如图5A所示,EEDU由以下子模块构成:EEDU控制单元EEDU_CTRL;平方函数模块SQR;累加器ACCUM;解扰延时单元DESCR_DELAY;解扰器DESCR。EEDU的内部信号如表3A所示。EEDU的外部输入输出信号描述如表3所示。每个子模块的功能描述如下:(1)EEDU_CTRL:EEDU_CTRL执行下列功能:①轮询MPCU的输出以接收合并的(I/Q)符号用于进一步处理;②调度平方函数器SQR和累加函数器ACCUM模块完成信号比特能量计算;③产生eb_cal_dn(Eb计算完成可发送给DSP指示)信号用于DSP读取Eb值;④产生eedu_sym_arr(指示1个符号已经发到SSS)信号供软符号规整器SSS或块解交织模块使用;⑤复用I符号流和Q符号流用于解扰和信号比特能量Eb估计;⑥调度解扰操作;⑦与主定时器MSTR_TIM接口用于对上述所有信号进行计时。(2)平方函数模块SQR:平方函数模块负责计算多径合并(I/Q)符号的平方,用于估计Eb。平方函数模块取18比特的多径合并(I/Q)符号(mpcu_out_data[17:0]及mpcu_out_data[35:18])中的13比特作为它的输入(SQR_SYM_IN)。这些比特可以是12:0或13:1(这里比特0是最低位)。对这些比特位的选择由DSP通过寄存器eedu_sqr确定。这些比特作为一个无符号整型输入,即表示正负的符号比特被丢弃。如果mpcu_out_data[17:0]或mpcu_out_data[35:18]的值比这些比特能表示的最大值大,它就是饱和的,需要把所有比特位都置满再输入到平方函数模块。平方函数模块输出26比特的无符号整型,直接发送到累加器。(3)累加器ACCUM:ACCUM是一个累加器模块,对平方函数模块输出SQR(SQR_OUT)进行累加,形成一个28比特的无符号整型(ACCUM_SUM)。累加操作总是保留最低比特位LSBs。如果累加值超越(228-1),累加值的所有比特位置成1输出当收到来自EEDU_CTRL的命令时,累加器模块ACCUM发送ACCUM_SUM的28比特中的16比特作为输出,送入eedu_ebval寄存器内的EBVAL,之后会被DSP取走。同时,它将ACCUM_SUM重新复位成0。累加器模块ACCUM根据DSP在edu_accum寄存器的设置选择输出的16比特。如果输出值高于16比特可以表示的最大值,16比特将全部置成1作为输出。(4)解扰延时单元DESCR_DELAY:多径合并单元MPCU按一个确定的迟延(相对主定时器 Master Timer)输出比特。由于这一偏移,解扰延时单元DESCR_DELAY维护一个迟延线,以实现解扰。这条延迟线按照MPCU的迟延确定正确的解扰比特。主定时器Master Timer通过对特征随机序列码进行适当地采样,产生解扰比特。可以从单个比特信号流mstr_descr_cod中交替地获得I或Q分量的解扰比特。当来自主定时器模块MSTR_TIM的mstr_new_frm信号变高电平时,比特流被抽样并放到延迟线上。
当收到来自信号比特能量估计和解扰单元控制器EEDU_CTRL的控制信号时,来自该延迟线的解扰码(mstr_descr_cod)被抽样。延迟线上比特抽样位置由寄存器eedu_cfg确定。DSP固件将MPCU的延迟估计值写入该寄存器中。此外,DESCR_DELAY模块也对来自主定时器、指示一帧的开始的mstr_new_frm信号进行延时,并将延迟的mstr_new_frm(eedu_new_frm)信号发送到软符号规整器和块解交织器(SSS/BDI),以确保同步。eedu_new_frm信号(在一帧的第一个(I/Q)符号周期变高)与解扰器比特流有相同的延时。为此可以使用类似的延迟线。(5)解扰器DESCR:解扰器模块DESCR对最大比率组合的多径合并符号进行解扰。它用来自迟延线的解扰比特mstr_descr_cod,对来自EEDU_CTRL模块的输入符号mpcu_out_data进行解扰,产生输出符号eedu_out。解扰规则是:如果mstr_descr_cod解扰比特=1,则eedu_out比特是对(mpcu_out_data比特)取反;否则,eedu_out比特是mpcu_out_data比特,DESCR按照收到的来自EEDU_CTRL控制器的命令DESCR_START执行上述操作。DESCR模块和软符号规整器SSS也有接口。DESCR在该接口的输出是18比特的eedu_out,后者包含对符号的多径合并的解扰输出。
三、软符号规整器SSS(Soft Symbol combining)
图7是软符号规整器SSS的示意图。SSS模块负责将输入的18比特符号换算成6比特符号输出。SSS的输入输出信号描述如表4所示。在表4中,SSS从来自EEDU的输入数据eedu_out中选择输出的比特位sss_out,是根据来自DSP的输入信号sss_fld_slct来决定的。
四、块解交织器BDI
1、BDI模块结构:图8显示了块解交织器BDI的功能模块,其中每个子模块解释如下:(1)BDI输入缓存器IRAM:IRAM是一个双端口环形缓存存储器,用于保存从SSS来的6比特输入符号,它的大小设为6×4096=24576比特,它是6×12288比特的二分之一,6×12288比特是所支持的最大数据块长度。(2)BDI输出缓存器ORAM:BDI输出缓存器ORAM是一个4页存储器,每一页的长度是3072比特(即其最大块长度=12288/4比特)。总的容量大小为6×(3072×4)=6×12288=73728比特,每一页是一个单端口RAM,可以被turbo解码器读取。数据被存储在BDI地址产生器BDI_ADDR_GEN计算获得的地址中。在传输高速数据时,由硬件turbo编码器完成信道编码,turbo编码器从ORAM中读取数据。Turbo给出地址。第0页的ORAM0的地址与其它页ORAM的地址总线是不同的。在 传输低速数据时,由DSP完成信道编码,DSP从ORAM中读取数据。地址计数器保持读取位置的地址。(3)BDI地址产生器BDI_ADDR_GEN:BDI地址产生器负责计算ORAM的存储器位置地址,经过块解交织过程输出的符号将保存在BDI地址产生器计算出的地址对应的存储空间中。BDI地址产生器BDI_ADDR_GEN由以下逻辑单元构成:(参见图8)奇偶分离单元(odd_even);累加(左移)和除法(被2除)计算单元(J_add_lft_half);包括两个计数器:模J(Modulo J)计数器和被J除(Divide by J)计数器,这2个计数器的用法及地址计算公式如下文所示。行、列比特交换单元(bit reverse);反相乘法器(乘以-1);相加器。上述逻辑单元的具体使用方法,参见下文的公式4.1和4.2。
2、BDI的输入输出信号描述如表5所示。
3、块解交织过程:(1)假设从SSS收到的符号序号为i:(2)首先计算地址Ai(交织的数据从地址Ai读出):
1)当i是偶数(i=0,2,...,N-2)
2)当i是奇数(i=1,3,...,N-1)
(3)考虑输出缓存的结构,通过使用Ai计算实际输出地址。例如,Ai=53和输出缓存使用4页, 而且53mod4(取4的模余数)=1,因此解交织得到的符号比特应输出到ORAM的第1页的第13个入口地址。
一个6比特符号数据流来自SSS模块,同时带有两个控制信号,一个是帧开始信号(FRM_START)另外一个是符号到达信号(SSS_data_rdy)。FRM_START和SSS_data_rdy的持续时间为一个时钟周期。
当FRM_START信号来到时,如果这是第一个帧,BDI将启动它的BDI_ADDR_GEN,然后使符号立刻进入ORAM。否则,BDI将输入符号缓存到IRAM后等待完成指示,如来自turbo解码器的turbo_doner,或来自DSP的bdi_dsp_dn。一旦turbo_doner/bdi_dsp_dn来到,BDI就开始输出保存在IRAM和ORAM中的信息符号,同时连续接收新的输入符号,并将它们缓存到IRAM。当一个帧完成后,bdi_startr/bdi_out_pickup将立刻被送入turbo解码器/DSP(在帧边界后小于1毫秒)。
五、Turbo硬件解码器TUD
1、背景知识和设计原理
(1)turbo编码:3G/4G Turbo编码是由2个具有生成矩阵的系统递归卷积编码器(RSC)生成。为方便起见,将两个RSC分别记作RSC0和RSC1。将输入Turbo编码器的数据块长度记作K。将输入编码器的数据比特记作uk,其中, 表示输入RSC0的数据比特, 表示输入RSC1的数据比特。这里,k表示输入比特的下标(索引)。
将 输入RSC0,以获得 的奇偶校验比特xk p,0。这样,RSC0的输出比特包含输入比特(即称之为系统比特) 和奇偶校验比特xk p,0。
同时,原始输入数据比特uk也被输入Turbo编码器内部交织器,得到交织排列的输入数据比特uk 1。之后,将uk 1输入RSC1,得到uk 1的奇偶校验比特xk p,1。此时Turbo编码器的输出比特如下:
在K个输入比特按时钟频率逐位送入RSC0和RSC1之后,编码器将编码格终止比特,按时钟频率逐位输出,以清空编码器,等待下一数据块的输入。需要说明的是,虽然上述编码器本质上是在串行地工作,但由于采用了终止处理以及Turbo交织器的转换作用,使上述编码器的编码过程变成块编码操作。
(2)turbo解码:Turbo解码器的解码方法,正如这种解码器名称的来由——类似于涡轮发动机的工作原理。在涡轮发动机中,排气过程将更多的气体压入进风口。同样地,在Turbo解码器中,解码被设计成迭代的过程。每一次迭代过程的输出结果,被反馈送入解码器,作为下一次迭代过程的输入,以提高对原始解码数据块做解码估计的准确度。一般来说,每经过一次解码迭代,原始数据块的解码估计都会进一步提高。
每一次Turbo解码迭代由两个解码阶段(stage)构成:stage0和stage1。
stage0负责处理线性排列的比特串;stage1负责处理经过Turbo交织的比特串。
将stage0负责处理的比特分别记作yk s,0和yk p,0,yk s,0和yk p,0分别是xk s,0和xk p,0经过衰落和噪声污染后,在接收端收到的信号。
将stage1负责处理的比特分别记作yk s,1和yk p,1,yk s,1和yk p,1分别是xk s,1和xk p,1经过衰落和噪声污染后,在接收端收到的信号。其中,xk s,1是由xk s,0经过Turbo交织计算后所得的。
解码器在stage0和stage1采用的解码算法是最大对数-最大后验概率(Max-log-MAP)算法。Max-log-MAP算法是次优log-MAP算法,同时也是复杂度最低的log-MAP算法。
stage0和stage1的输出结果分别是:外赋对数似然比——Le(uk),后验对数似然比——L(uk|y)。L(uk|y)是在给定序列y的条件下,原始数据是uk的条件对数似然比。L(uk|y)的值可以是+1,也可以是-1。L(uk|y)这一sgn(·)函数的取值,可以作为任一解码阶段或任意次数的迭代过程的输出。但一般来说,使用更多的解码阶段和迭代次数,可以提高对uk估计的准确性。
Le(uk)可以用于计算Turbo交织I(·)后比特的似然性,也可以用于计算Turbo解交织I-1(·)后比特的似然性,根据解码阶段而定(参见EQ 2)。并且,在Max-log-MAP算法中,Le(uk)还被作为 后验信息L(uk),反馈输入到解码器输入端。
带有高效存储器的硬件Turbo解码器架构如图14所示。此架构使用一个将stage0和stage1结合的SISO_DECODER(软输入-软输出-解码器),而不是在stage0和stage1分别使用SISO_DECODER。
Lu(k)存储LLP_BUF中,在stage0和stage1中使用。LSP_BUF是Turbo解码器高吞吐量的关键。LSP_BUF由4个回环缓存器构成,这些回环缓存器缓存一个步进窗口长度的yk s,yk p 和L(uk)。这些yk s,yk p和L(uk)将被送入SISO_DECODER用于解码。解码过程中,在WINDOW_ADDR_GEN将下一个窗长的数据写入其中一个LSP_BUF缓存器的同时,也将其它3个LSP_BUF缓存器中的内容送入SISO_DECODER。
在图14所示的Turbo编码器中,包含了一个EARLY_STOP_CNTRL模块,该模块用于执行预提前停止评判准则,以节省计算开销。
用于实现Max-log-MAP算法的SISO_DECODER的框图,如图15所示。
SISO_DECODER由以下几个部分构成:前向递归计算块——ALPHA_CALC,反向递归计算块——BETA_CALC,对数似然比计算块——LLR_CALC。
其中,ALPHA_CALC用于计算Ak(s)(参见EQ 3),BETA_CALC用于计算Bk,1(s′)(参见EQ4),LLR_CALC用于计算Le(uk)(参见EQ 6)和L(uk|y)(参见EQ 7)。
式中,
在此架构中,仅Ak(s)需要缓存(ALPHA_BUF),ALPHA_BUF操作模式是堆栈式(后进先出)。
此架构采用了SW-WT技术,使得ALPHA_BUF空间最小化并减小解码延迟,而不是分配一个 大的缓存空间来存储一个数据块长度的Ak(s)状态矩阵。如图18所示,当ALPHA_CALC仅使用一个前向递归计算块时,BETA_CALC块用了两个相同的反向递归运算器(BETA_CALC0和BETA_CALC1)遍历整个编码格。
SW-WT技术每次处理一个短窗长度w的数据。在SW-WT方法中,两个反向状态矩阵计算块以下列顺序输出Bk-1(s′):
式中,Nw是步进窗的数目,由下式给出:
逆矩阵是一个递归计算,基于之前计算过的、从BK+2(s′)开始且结束状态已经确定的所有状态。
然而,要获得准确的递归状态矩阵,不必从非常后面的状态开始做反向状态计算。在SW-WT方法中,在输出Bk-1(s′)之前,反向状态矩阵计算块只需要遍历有限的若干个阶段(时间步长)的输入数据。
输出Bk-1(s′)之前的递归计算称为“训练”。用于确定准确的状态矩阵所需要的训练阶段数目由实验确定,且设计成与步进窗口长度w的取值相同。
采用训练窗开始于所有状态的概率相等的假设条件,来初始化训练窗的递归过程。
使用三个递归运算器(ALPHA_CALC,BETA_CALC0,和BETA_CALC1)的SW-WT方法的时间过程图,如图16所示。
图16显示出LSP_BUF的读写调度过程。
LSP write行中的记号——Wnw:LSPm——表示将窗数据nw,写入LSP_BUFm。
在行A,B0,和B1中的记号——LSPm:Wnw——表示从LSP_BUFm读出窗数据nw。
行A中的左箭头表示ALPHA_CALC正在针对数据窗nw计算前向递归。然后将结果保存在ALPHA_BUF中,以供下一个数据窗计算使用
B0,B1和Le(uk)行中的右箭头表示BETA_CALC0,BETA_CALC1和LLR_CALC正在针对数据窗nw计算反向递归和对数似然比。
在B0,B1行中的T表示BETA_CALC 0/1处于训练模式。对于稳定状态的解码操作,一个BETA_CALC(0/1)处于训练模式中,而其它的BETA_CALC(0/1)处于输出Bk-1(s′)的过程中。由于Bk-1(s′)只是每一时刻LLR_CALC计算所使用的临时变量,所以BETA_CALC不必保存BK-1(s′)。
LLR_CALC按与BK-1(s′)相同的顺序(EQ 8)输出Le(uk)和L(uk|y)。
图16表明在每一个步进窗口期间,其中一个LSP_BUF处于写操作,同时其他三个处于读操作。通过使用回环缓存方案,LSP_BUF的4个缓存器中任一个每写一次,就会被读三次。这 样,就减轻了TURBO_INT_ADDR_GEN的负荷,并将输入数据的读出率提高了3倍。
2、Turbo解码模块TUD的实现
TUD是基于上述原理设计的一个硬件turbo解码器模块,完成对高速传输数据的turbo解码。它使用软入软出(SISO)解码器。后者使用训练步进窗口(SW-WT)的Max-log-MAP(最大对数-最大后验概率)解码算法,和基于双流定时控制方案的迭代方法。其中该窗口长度设置为32。
图9显示了TUD的内部功能子模块及信息流,以及TUD与其它硬件信道解码模块之间的接口。TUD由以下子模块构成:①Turbo解码解复用模块TUD_DEMUX;②待解码比特和外赋信息(后验信息)缓存器LUCC_BUF;③软外赋信息(外赋对数似然比)缓存器EXT_BUF;④待解码比特和外赋信息(后验信息)选择器LUCC_MUX;⑤SISOSW-WT-Max Log解码器内核MAP_CORE;⑥前向后验概率矩阵缓存器ALPHA_BUF;⑦软外赋信息(外赋对数似然比)计算器EXT_CALC;⑧TUD解码输出计算器OUT_CALC;⑨Turbo解交织地址INTLV_ADDR;⑩Turbo解码控据器TUD_CTRL;(11)TUD解码输出缓存器TUD_OUT_BUF。
3、各功能模块说明:每一个子模块的功能说明如下:①TUD_DEMUX:基于速率信息和交织块大小完成Turbo去打孔/解复用。②LUCC_BUF:即图14中的LSP_BUF,待解码比特和外赋信息(后验信息)缓存器,它是一个单端口RAM,尺寸设置为32×4×(3×6+12)=3840比特。这里32是窗口尺寸,4是要处理的窗口数量,3×6表示3个6比特输入,12是外赋信息(后验信息)的比特宽度。③EXT_BUF:即图14中的LLR_BUF,保存被EXT_CALC计算出的软外赋信息(外赋对数似然比),它的尺寸是:3072×12=36792比特。这里3072相当于所支持的最高数据块长度3066比特,加上末尾比特的数量6(每个解码器是3)。12是外赋信息(外赋对数似然比)的比特宽度。④LUCC_MUX:基于双流定时而从LUCC_BUF选择出待解码比特、后验信息。⑤MAP_CORE:即图17中的SISO_DECODER,是SISO SW-WT-Max Log解码器内核,它的详细示意图见图10和图15。⑥ALPHA_BUF:即图14中的ALPHA_BUF,存储由MAP_CORE中的ALPHA_CALC给出的状态矩阵。它是一个双端口RAM,大小是:33×12×8=3168比特,这里33是窗口尺寸加1,12是前向路径矩阵的比特宽度,8代表这里有8个这样的前向路径矩阵,每个状态有一个。⑦EXT_CALC:计算外赋的信息(外赋对数似然比),输出将被保存到EXT_BUF。⑧OUT_CALC:计算TUD的最终输出(解码输出比特及条件对数似然比)。⑨INTLV_ADDR:即图14中的TURBO_DEINT_ADDR_GEN,为Turbo交织/解交织产生输入和输出地址(内部包含一个双端口RAM,大小设置为33×12=396比特,这里33是窗口尺寸加1,12是从由INTLV_ADDR产生的地址的比特宽度)。TUD_DEMUX,EXT_CALC和OUT_CALC将使用这些地址。⑩TUD_CTRL:即图14中的 TURBO_DECODER_CNTRL,为TUD中的所有子模块提供控制信号。(11)TUD_OUT_BUF:即图17中的OUT_BUF,缓存来自OUT_CALC的硬解码输出比特(双端口RAM)。它的大小是:16×192=3072比特(为了支持最大块长度3066)并且它能被CRCD读取。解码输出的比特将逐一存入到各个从最高有效位起始的16比特入口。
4、MAP_CORE模块的构成:图10显示的是MAP_CORE模块的构成,其中每一部分的说明如下:①ALPHA_CALC:前向递归计算块,即图15中的ALPHA_CALC,根据EQ3计算前向状态矩阵。②BETA0_CALC和BETA1_CALC:反向递归计算块,即图15中的BETA0_CALC和BETA1_CALC,基于EQ 4计算后向状态矩阵。③BGEXT_MUX:即图15中的BG_MUX,基于来自TUD_CTRL的控制信号,选择的后向状态矩阵及外赋信息的前向最大后验概率;④LLR_CALC:即图15中的LLR_CALC,对数似然比计算块,基于EQ6计算软对数似然比。⑤GAMMA_CALC:根据EQ 10计算Γk。
5、双流架构turbo解码时序:图11显示了双流架构的时序图。
(1)字母A、B、C等表示解码的阶段。(2)箭头标明计算是向前还是向后的操作。(3)图底部的0和1表示EXT_CALC使用的是来自BET0_CALC的输出,还是来自BETA1_CALC的输出。(4)LUCC的写操作开始于A阶段。(5)ALPHA_CALC和BET0_CALC 开始于C阶段(6)而BETA1_CALC和EXT_CALC开始于D阶段。(7)从图上比较容易看到,每次迭代可获得3个子帧(96个比特)。
解码所需时间=迭代次数×MAP数目×周期/每比特×比特数)=8×2×1×(3066+96)=49K周期。
图12显示TUD的时序图:①当BDI_OUT_BUF中的数据准备好时,TUD将从BDI接收一个bdi_startr(该信号对于TUD是TUD_START);②然后开始对数据进行解码;③当TUD完成解码后,它会发一个完成信号turbo_doner到BDI;④还会发一个开始信号CRCD_START和帧长度信息FRM_SIZE到CRDC。
6、信号接口:表6提供TUD输入输出信号描述
六、CRC解码器模块CRCD
CRCD是一个硬件模块,用于检测高速传输数据帧的帧质量。这主要是通过对接收到的信息比特重新生成16位循环冗余校验(CRC)比特,并与接收到的CRC比特作比较而实现。
图13显示了CRCD的内部功能模块以及它与其它硬件信道解码模块之间的接口。CRCD解码过程如下:(1)当TUD完成信道解码,将解码后的数据帧(信息比特加上CRC比特)输出到TUD_OUT_BUF;(2)在接收到来自TUD的CRCD_START和FRM_SIZE信号后,CRCD从TUD_OUT_BUF读取长度为FRM_SIZE的数据帧;(3)CRCD对其中长度为(FRM_SIZE-16)的信息比特上计算16位CRC校验比特;(4)然后将生成的16位CRC比特与接收到的16位CRC比特相比较。如果它们一致,CRC指示器crc_good将被设置为0,否则设置为1。(5)在所有计算和比较结束后,一个CRCD_OUT_PICKUP中断信号被送到DSP。这就意味着在帧边沿之后需要3到6毫秒(TUD解码时间加上CRCD时间)。(6)帧质量指示器(CRC值)的产生多项式是G(X)=X16+X15+X14+X11+X6+X5+X2+X+1。(7)CRC生成器在一个时钟周期内完成计算16位的CRC值。CRCD输入输出信号描述如表7所示。
一、TD-SCDMA/3G/4G终端基带解调单元的多径合并器MPCU
TD-SCDMA/3G/4G终端基带解调单元的多径合并器MPCU负责接收来自各个多径接收前端(FFE)输出的(I/Q)符号,并将这些(I/Q)符号做时间上的同步对齐,使多径接收、并行输入信号合并成一路信号。如图4所示,MPCU由以下单元构成:①数据存储器RAM(5):1个环形FIFO(先入先出)缓存器,用于保存从各个接收路径收到的新(I/Q)符号,以及保存对从各路径接收到的(I/Q)符号的合并结果;②仲裁器arbiter(3):基于多径接收前端FFE在4个接收路径上提供的通知,裁决各个路径接收的(I/Q)符号是否已经准备好;③读RAM指针产生器rd_ram_ptr(8):根据来自主定时器master timer的新(I/Q)符号指示,对接收的每一个新(I/Q)符号进行计数,从而获得MPCU当前要输出的I/Q符号(合并后的结果)在RAM中的位置,该位置指针记作rd_ram_ptr;④图4右上部的相加器A(10):图4右上部的相加器A用于计算从RAM中取出完成合并的数据的地址;⑤图4右下部的相加器B(9):图4右下部的相加器B用于计算对接收到的(I/Q)符号进行合并的结果;⑥一个相减器(4):图4中的相减器用于计算从RAM中取出完成合并的数据的地址;⑦1个比较器(7)(判断a>b?):用于判断从多径接收前端收到的(I/Q)符号的下标是否超出允许合并的范围(该符号已经不在RAM保存的范围内)(注:图4中的“b”=“允许合并的范围”)。⑧一个门控开关电路C(6):在比较器输出信号的控制下,决定是否将某一路径接收的(I/Q)符号用于合并。⑨多路输入寄存器和门控开关电路模块m1(2):锁存每一接收路径当前输入的(I/Q)符号的下标(从帧起始位置开始计算),并在仲裁器arbiter输出信号的控制下,决定是否输入某一路径当前符号的下标用于计算写入RAM的地址。⑩多路输入寄存器和门控开关电路模块m2(1):锁存每一接收路径输入的I/Q符号,并在仲裁器arbiter输出信号的控制下,决定是否输入某一路径的符号用于合并。
MPCU完成的是多径接收机的后端处理,主要负责以下2个主要功能:
1.对多径接收的(I/Q)符号做时间上的对齐:对于多径信号接收机而言,从各路径接收到的同一信息(I/Q)符号在时间上是不同步的。同时,为多径接收机提供系统同步定时的主定时器(Master Timer)输出的同步信号(即下文表8中来自主定时器的新I/Q符号指示),是以最早到达接收机的路径的信号为基准,它每20ms校正1/8码片,因而可能与最早到达的接收信号存在着明显的失步。为保证对多径接收信息(I/Q)符号合并的准确性,需要对多径接收的(I/Q)符号做时间上的对齐。
2.对多径接收的(I/Q)符号做合并:多径接收前端(FFE)负责完成(I/Q)符号合并前所必需的去相位旋转(de-rotation)处理,而DSP中的解调器固件负责根据多径跟踪锁定的结果, 取消失步或信号较差的接收路径的输出。MPCU只合并有效接收路径输出的信息(I/Q)符号。
对MPCU中RAM的存储空间大小的要求,是需要保证MPCU可完成相对主定时器的最大迟延为5×64=320码片的多径接收信号进行补偿。图4中的MPCU模块的输入输出信号描述如表8所示。MPCU在ck_cx16时钟下工作。
二、MPCU的工作过程:1、RAM(5)中的数据由所有的4个接收路径写入,且在MPCU模块完成合并处理,MPCU输出的数据从RAM(5)中读出。仲裁器arbiter(3)用于各接收路径共享对RAM的访问,它根据多径接收前端FFE在4个接收路径上提供的通知,裁决各个路径接收的(I/Q)符号是否已经准备好。2、在最高的传输速率时,每一对I/Q符号(包括1个I符号和1个Q符号)用4个码片调制。此时,每经过4个调制码片的时间,MPCU收到一对I/Q符号(包括1个I符号和1个Q符号)。由于MPCU本地时钟速率是调制码片速率的16倍,因而可知,在最高的传输速率时,每经过4*16=64个时钟周期,MPCU收到一对I/Q符号(包括1个I符号和1个Q符号)。3、另一方面,对于每个接收路径输入的符号,MPCU经过合并处理,再写入到RAM(5)中,需要占用3时钟周期(读-加-写);此外,MPCU再读出mpcu_out_data需要2个时钟周期。整个操作要3*4+2=14时钟周期。这个值小于64,可以保证仲裁器(3)在最快的传输速率下可靠地工作。4、对RAM(5)提供的存储空间的大小的要求,主要是考虑保证MPCU在最大多径迟延为±320(5*64)个调制码片的情况下,可以正确地完成对多径接收的I/Q符号的合并。这就要求RAM(5)提供9*64个调制码片时间内传输的(I/Q)符号的缓存空间。在最大传输速率(每一对I/Q符号用4个码片调制)下,9*64个调制码片时间传输9*64/4=144对(I/Q)符号。单对(I/Q)符号分别包含16比特I和16比特Q。分别来自4个不同的接收路径的4对I/Q符号(每一对I/Q符号包括1个I符号和1个Q符号)合并后,分别形成18比特I和18比特Q信号(共36比特)。因而,RAM(5)的大小要求是144*36比特。出于可靠性考虑,RAM(5)需要增加一定的冗余空间,因此,RAM(5)的大小为160*36比特。5、对于来自每个接收路径的16比特I符号和16比特Q符号,MPCU在经过合并处理后(与RAM相应的地址空间中保存的原有值相加),再写入到RAM(5)相应的地址空间中。6、MPCU读RAM(5)的指针rd_ram_ptr(8)初始值为0。之后,对于每一个mstr_new_sym,rd_ram_ptr(8)加一。7、MPCU输出的经过合并的数据,是从rd_ram_ptr(8)所指向的RAM(5)的存储单元中读出。8、读指针rd_ram_ptr(8)的值采用模160计数。9、master timer所指示的当前(I/Q)符号写入MPCU的RAM(5)的地址位置,与MPCU从RAM(5)中取当前输出的(已完成合并的)I/Q符号的地址位置,二者之间的偏移量mpcu_mstr_dly取一个固定值,为320/(每对I/Q符号包含的调制码片数),由DSP输入。在每一个帧边界处,DSP更新此值。10、来自接收路径的数据所写入RAM(5)的地址是ffe_pcg_idx,mstr_pcg_idx,rd_ram_ptr,mpcu_mstr_dly的函数。用下式计算写入RAM(5)的地址指针的值:wr_ram_ptr=(ffe_pcg_idx-mstr_pcg_idx)+(rd_ram_ptr+mpcu_mstr_dly)。11、在上式中,如果(ffe_pcg_idx-mstr_pcg_idx)>mpcu_mstr_dly,将会产生 错误组合的数据。在这种情况下该接收路径不能被用于合并数据。图4中的比较器(7)(判断a>b?)用于完成这一判断。图4中,a=(ffe_pcg_idx-mstr_pcg_idx),b=mpcu_mstr_dly。12、每次收到接收机基带解调单元复位信号时,MPCU中所有寄存器的值(包括rd_ram_ptr(8)、wr_ram_pt、mpcu_out_data、mstr_new_sym、ffe_pcg_idx,mstr_pcg_idx,mpcu_mstr_dly等)和RAM(5)的各个存储单元中的值被重新初始化为0。13、每次MPCU从RAM(5)中的rd_ram_ptr(8)取出完成合并的数据并输出后,rd_ram_ptr(8)所指向的RAM(5)的存储单元中的值被重新初始化为0。
注:上述内容中的mpcu_out_data、mstr_new_sym、ffe_pcg_idx,mstr_pcg_idx,mpcu_mstr_dly等参数的意义,请参见表8所述。
附图说明
图1是TD-SCDMA/3G/4G终端接收机基带解调单元的输入输出接口框图。
图2是TD-SCDMA/3G/4G终端接收机基带解调单元的多径合并和解扰部分的结构框图。
图3是TD-SCDMA/3G/4G终端接收机基带解调单元的信道解码部分的结构框图。
图4是多径合并器MPCU的结构框图。
图5A是信号比特能量估算和解扰单元EEDU的框图。
图5是EEDU的解扰操作框图。
图6是EEDU的信号比特能量Eb估算单元框图。
图7是软符号规整器SSS的示意图。
图8是块解交织器BDI的功能模块框图。
图9显示硬件turbo解码器TUD的内部功能子模块及信息流。
图10显示的是硬件turbo解码器TUD的MAP_CORE模块的构成。
图11显示了硬件turbo解码器TUD的双流架构的时序图。
图12显示的是硬件turbo解码器TUD的时序图。
图13显示了CRC校验器CRCD的内部功能模块以及它与其它硬件信道解码模块之间的接口。
图14是硬件Turbo解码器TUD架构框图。
图15是实现Max-log-MAP算法的SISO_DECODER的框图。
图16是使用三个递归运算器(ALPHA_CALC,BETA_CALC0,和BETA_CALC1)的SW-WT方法的时间过程图。
具体实施方式
实施例1:参照附图1~16。用于TD-SCDMA/3G/4G终端多径接收合并器,负责接收来自多径信号接收机输出的(I/Q)符号流(含通信信息),将多径接收的(I/Q)符号流有效地合并成单路(I/Q)符号流,用于进一步完成基带解调,(1)该多径接收合并器的主要(非全部)输入信号包 括:各接收路径发送来的未合并的I/Q符号;各接收路径发来的指示信号,指示已将接收到(I/Q)符号发送给该多径接收合并器;各接收路径发送来的(I/Q)符号的下标(从帧起始位置开始计算);来自基带接收机主定时器的新(I/Q)符号指示;主定时器指示的当前收到的(I/Q)符号的下标(从帧起始位置开始计算);主定时器所指示的当前(I/Q)符号写地址与当前输出读地址位置之间的偏移量,同时也表示多径接收合并器所引入的解调时间迟延;DSP指示的帧长度(包含I/Q符号的数目);信号比特能量估算和解扰单元发给多径接收合并器的读请求。(2)该多径接收合并器的主要(非全部)输出信号包括:数据输出准备完成指示信号;(合并后输出的)18位I信号和18位Q信号;输出的(I/Q)符号的下标(从帧起始位置开始计算)。①来自主定时器的新(I/Q)符号指示,是主定时器为多径接收机提供的系统同步定时信号;②为多径接收机提供系统同步定时的主定时器输出的同步信号,是以最早到达接收机的路径的信号为基准。③该多径接收合并器使用1个环形FIFO(先入先出)缓存器,作为数据存储器RAM(5),用于保存从各个接收路径收到的新(I/Q)符号,以及保存对从各路径接收到的(I/Q)符号的合并结果;④对上述数据存储器RAM(5)的存储空间大小的要求,是需要保证多径接收合并器可完成相对主定时器具有最大迟延的多径接收信号进行补偿;⑤对于每个接收路径输入的符号,多径接收合并器经过合并处理(与数据存储器RAM(5)相应的地址空间中保存的原有值相加),再写入到数据存储器RAM(5)中。⑥根据来自主定时器的新(I/Q)符号指示,对接收的每一个新(I/Q)符号进行计数,从而获得多径接收合并器当前要输出的I/Q符号(合并后的结果)在上述数据存储器RAM(5)中的位置,该位置指针记作rd_ram_ptr(8),保存在多径接收合并器(读RAM指针产生器)中;⑦多径接收合并器读数据存储器RAM(5)的指针rd_ram_ptr(8)初始值为0;之后,对于每一个来自主定时器的新(I/Q)符号指示,rd_ram_ptr(8)加一;⑧多径接收合并器输出的经过合并的数据,是从rd_ram_ptr(8)所指向的数据存储器RAM(5)的存储单元中读出。⑨主定时器所指示的当前(I/Q)符号写入多径接收合并器的数据存储器RAM(5)的地址位置,与多径接收合并器从数据存储器RAM(5)中取当前输出的(已完成合并的)I/Q符号的地址位置,二者之间的偏移量取一个固定值,是多径接收合并器所允许的(相对主定时器)最大路径迟延,也是多径接收合并器所引入的解调时间迟延;⑩上述多径接收合并器所允许的最大路径迟延的数值,由DSP输入多径接收合并器,在每一个帧边界处,DSP更新此值; 如果从某一路径收到I/Q符号的迟延大于多径接收合并器所允许的最大路径迟延的数值,将会产生错误组合的数据,在这种情况下该I/Q符号不能被用于合并数据,多径接收合并器不将该I/Q符号用于合并。 来自接收路径的数据所(合并)写入数据存储器RAM(5)的地址(记作wr_ram_ptr)是以下参数的函数:各接收路径发送来的(I/Q)符号的下标(从帧起始位置开始计算),主定时器指示的当前收到的(I/Q)符号的下标,多径接收合并器读数据存储器RAM(5)的指针rd_ram_ptr(8),多径接收合并器所允许的(相对主定时器)最大路径迟延,用下式计算接收路径的数据所(合并)写入RAM(5)的地址指针的值:wr_ram_ptr=(接收路径发送来的符号的下标-主定时器指示的当前收到的符号的下标)+(多径接收合并器读数据存储器RAM的指针+多径接收合并器所允许的最大路径迟延);在上式中,如果(接收路径发送来的符号的下标-主定时器指示的当前收到的符号的下标)>多径接收合并器所允许的最大路径迟延,将会产生错误组合的数据,在这种情况下该接收路径不能被用于合并数据。 每次收到接收机基带解调单元复位信号时,多径接收合并器中所有寄存器的值和数据存储器RAM的各个存储单元中的值被重新初始化为0;每次多径接收合并器从数据存储器RAM中的rd_ram_ptr取出完成合并的数据并输出后,rd_ram_ptr所指向的数据存储器RAM的存储单元中的值被重新初始化为0。
如图4所示,MPCU由以下单元构成:①数据存储器RAM(5):1个环形FIFO(先入先出)缓存器,用于保存从各个接收路径收到的新(I/Q)符号,以及保存对从各路径接收到的(I/Q)符号的合并结果;②仲裁器arbiter(3):基于多径接收前端FFE在4个接收路径上提供的通知,裁决各个路径接收的(I/Q)符号是否已经准备好;③读RAM指针产生器rd_ram_ptr(8):根据来自主定时器master timer的新(I/Q)符号指示,对接收的每一个新(I/Q)符号进行计数,从而获得MPCU当前要输出的I/Q符号(合并后的结果)在RAM(5)中的位置,该位置指针记作rd_ram_ptr;④图4右上部的相加器A(10):图4右上部的相加器A用于计算从RAM(5)中取出完成合并的数据的地址;⑤图4右下部的相加器B(9):图4右下部的相加器B用于计算对接收到的(I/Q)符号进行合并的结果;⑥一个相减器(4):图4中的相减器用于计算从RAM中取出完成合并的数据的地址;⑦1个比较器(7)(判断a>b?):用于判断从多径接收前端收到的(I/Q)符号的下标是否超出允许合并的范围(该符号已经不在RAM(5)保存的范围内)(注:图4中的“b”=“允许合并的范围”)。⑧一个门控开关电路C(6):在比较器输出信号的控制下,决定是否将某一路径接收的(I/Q)符号用于合并。⑨多路输入寄存器和门控开关电路模块m1(2):锁存每一接收路径当前输入的(I/Q)符号的下标(从帧起始位置开始计算),并在仲裁器arbiter输出信号的控制下,决定是否输入某一路径当前符号的下标用于计算写入RAM的地址。⑩多路输入寄存器和门控开关电路模块m2(1):锁存每一接收路径输入的I/Q符号,并在仲裁器arbiter输出信号的控制下,决定是否输入某一路径的符号用于合并。
MPCU完成的是多径接收机的后端处理,主要负责以下2个主要功能:
1.对多径接收的(I/Q)符号做时间上的对齐
对于多径信号接收机而言,从各路径接收到的同一信息(I/Q)符号在时间上是不同步的。同时,为多径接收机提供系统同步定时的主定时器(Master Timer)输出的同步信号(即表8中来自主定时器的新I/Q符号指示),是以最早到达接收机的路径的信号为基准,它每20ms校正1/8码片,因而可能与最早到达的接收信号存在着明显的失步。为保证对多径接收信息(I/Q)符号合并的准确性,需要对多径接收的(I/Q)符号做时间上的对齐。
2.对多径接收的(I/Q)符号做合并
多径接收前端(FFE)负责完成(I/Q)符号合并前所必需的去相位旋转(de-rotation)处理, 而DSP中的解调器固件负责根据多径跟踪锁定的结果,取消失步或信号较差的接收路径的输出。MPCU只合并有效接收路径输出的信息(I/Q)符号。
对MPCU中RAM的存储空间大小的要求,是需要保证MPCU可完成相对主定时器的最大迟延为5×64=320码片的多径接收信号进行补偿。图4中的MPCU模块的输入输出信号描述如表8所示MPCU在ck_cx16时钟下工作。
MPCU的工作过程:1、RAM(5)中的数据由所有的4个接收路径写入,且在MPCU模块完成合并处理,MPCU输出的数据从RAM(5)中读出。仲裁器arbiter(3)用于各接收路径共享对RAM的访问,它根据多径接收前端FFE在4个接收路径上提供的通知,裁决各个路径接收的(I/Q)符号是否已经准备好。2、在最高的传输速率时,每一对I/Q符号(包括1个I符号和1个Q符号)用4个码片调制。此时,每经过4个调制码片的时间,MPCU收到一对I/Q符号(包括1个I符号和1个Q符号)。由于MPCU本地时钟速率是调制码片速率的16倍,因而可知,在最高的传输速率时,每经过4*16=64个时钟周期,MPCU收到一对I/Q符号(包括1个I符号和1个Q符号)。3、另一方面,对于每个接收路径输入的符号,MPCU经过合并处理,再写入到RAM(5)中,需要占用3时钟周期(读-加-写);此外,MPCU再读出mpcu_out_data需要2个时钟周期。整个操作要3*4+2=14时钟周期。这个值小于64,可以保证仲裁器在最快的传输速率下可靠地工作。4、对RAM(5)提供的存储空间的大小的要求,主要是考虑保证MPCU在最大多径迟延为±320(5*64)个调制码片的情况下,可以正确地完成对多径接收的I/Q符号的合并。这就要求RAM(5)提供9*64个调制码片时间内传输的(I/Q)符号的缓存空间。在最大传输速率(每一对I/Q符号用4个码片调制)下,9*64个调制码片时间传输9*64/4=144对(I/Q)符号。单对(I/Q)符号分别包含16比特I和16比特Q。分别来自4个不同的接收路径的4对I/Q符号(每一对I/Q符号包括1个I符号和1个Q符号)合并后,分别形成18比特I和18比特Q信号(共36比特)。因而,RAM(5)的大小要求是144*36比特。出于可靠性考虑,RAM(5)需要增加一定的冗余空间,因此,RAM(5)的大小为160*36比特。5、对于来自每个接收路径的16比特I符号和16比特Q符号,MPCU在经过合并处理后(与RAM(5)相应的地址空间中保存的原有值相加),再写入到RAM(5)相应的地址空间中。6、MPCU读RAM(5)的指针rd_ram_ptr初始值为0。之后,对于每一个mstr_new_sym,rd_ram_ptr加一。7、MPCU输出的经过合并的数据,是从rd_ram_ptr所指向的RAM(5)的存储单元中读出。8、读指针rd_ram_ptr的值采用模160计数。9、master timer所指示的当前(I/Q)符号写入MPCU的RAM(5)的地址位置,与MPCU从RAM(5)中取当前输出的(已完成合并的)I/Q符号的地址位置,二者之间的偏移量mpcu_mstr_dly取一个固定值,为320/(每对I/Q符号包含的调制码片数),由DSP输入。在每一个帧边界处,DSP更新此值。10、来自接收路径的数据所写入RAM(5)的地址是ffe_pcg_idx,mstr_pcg_idx,rd_ram_ptr,mpcu_mstr_dly的函数。用下式计算写入RAM(5)的地址指针的值:wr_ram_ptr=(ffe_pcg_idx-mstr_pcg_idx)+(rd_ram_ptr+mpcu_mstr_dly)。11、 在上式中,如果(ffe_pcg_idx-mstr_pcg_idx)>mpcu_mstr_dly,将会产生错误组合的数据。在这种情况下该接收路径不能被用于合并数据。图4中的比较器(7)(判断a>b?)用于完成这一判断。图4中,a=(ffe_pcg_idx-mstr_pcg_idx),b=mpcu_mstr_dly。12、每次收到接收机基带解调单元复位信号时,MPCU中所有寄存器的值(包括rd_ram_ptr、wr_ram_pt、mpcu_out_data、mstr_new_sym、ffe_pcg_idx,mstr_pcg_idx,mpcu_mstr_dly等)和RAM(5)的各个存储单元中的值被重新初始化为0。13、每次MPCU从RAM(5)中的rd_ram_ptr取出完成合并的数据并输出后,rd_ram_ptr所指向的RAM的存储单元中的值被重新初始化为0。注:上述内容中的mpcu_out_data、mstr_new_sym、ffe_pcg_idx,mstr_pcg_idx,mpcu_mstr_dly等参数的意义,请参见表8所述。
表1:终端基带解调单元输入输出信号描述
表2:b的计算
表3A:EEDU的内部信号
信号名 | 发送端 | 接收端 | 字长度 | 描述 |
SYMS_CPTR | EEDU_CTRL | MSTR_TIM | 1 | 解调器发出的(I/Q)符号获取中断请求 |
SQR_SYM_IN | EEDU_CTRL | SQR | 13 | 平方函数模块的无符号输入 |
DESCR_SYM_IN | EEDU_CTRL | DESCR | 18 | 解扰模块的输入 |
SQR_OUT | SQR | ACCUM | 26 | 平方函数模块的输出 |
SQR_START | EEDU_CTRL | SQR | 1 | 启动平方操作命令 |
DESCR_START | EEDU_CTRL | DESCR | 1 | 启动解扰命令 |
ACCUM_SUM | ACCUM | ACCUM | 28 | 累加器的内部累加 |
ACCUM_DUMP | EEDU_CTRL | ACCUM | 1 | 发送累加结果给DSP接口并复位累加 器命令 |
DESCR_BIT | DESCR_DELAY | DESCR | 1 | 提供给解扰器使用的解扰比特 |
表3:EEDU的外部输入输出信号描述
表4:SSS的输入输出信号描述
信号名称([m:n]表示最高比特位和最低比特位,n是最低比 特位,m是最高比特位) | 输入/输 出 | 描述 | 有效电平 (高/低) |
eedu_out[17:0] | 输入 | 输入到SSS的解扰数据 | |
sss_en | 输入 | SSS使能信号 | 高 |
sss_fld_slct[4:0] | 输入 | 被选择输出的数据比特 | |
sss_out[5:0] | 输出 | 6比特输出 |
表5:BDI输入输出信号描述
表6TUD输入输出信号描述
信号名 | 输出端 | 接收端 | 描述 |
bdi_startr | BDI | TUD | Turbo解码器开始读取BDI输出 数据 |
turbo_doner | TUD | BDI | Turbo解码器完成信号 |
CRCD_START | TUD | CRCD | CRC解码器开始信号 |
FRM_SIZE | TUD | CRCD | 帧长度信息 |
表7:CRCD输入输出信号描述
信号名称 | 输入/输出 | 描述 | 有效值 (高/低) |
dsp_rst | 输入 | dsp时钟的复位信号 | 低 |
dsp_clk | 输入 | dsp时钟 | |
turbo_data[15:0] | 输入 | turbo解码输出数据 | |
CRCD_START | 输入 | TUD发给的CRCD的启动信号 | 高 |
FRM_SIZE | 输入 | TUD输出帧长度信息 | |
crc_addr[7:0] | 输入 | turbo解码器的地址 | |
CRCD_OUT_PICKUP | 输出 | 在所有计算和比较结束后,CRC发给dsp 的中断 | 高 |
crc_good | 输出 | CRC校验结果 |
表8:MPCU的输入输出信号描述
需要理解到的是:上述实施例虽然对本发明作了比较详细的说明,但是这些说明,只是对本发明的简单说明,而不是对本发明的限制,任何不超出本发明实质精神内的发明创造,均落入本发明的保护范围内。
Claims (2)
1.一种用于TD-SCDMA/3G/4G终端多径接收合并器,其特征是由数据存储器、仲裁器、读RAM指针产生器、相加器A、相加器B、相减器、比较器、门控开关电路C、多路输入寄存器和门控开关电路模块m1、多路输入寄存器和门控开关电路模块m2构成,仲裁器信号输出端一路接多路输入寄存器和门控开关电路模块m1的信号输入端、一路至MPCU的信号输入端;多路输入寄存器和门控开关电路模块m1的信号输出端一路接多路输入寄存器和门控开关电路模块m2的信号输入端、一路接相减器的信号输入端,相减器的信号输出端一路接比较器的信号输入端、一路接相加器A的信号输入端;相加器A的信号输出端接门控开关电路D的信号输入端,门控开关电路D的信号输出端接数据存储器的信号输入端;多路输入寄存器和门控开关电路模块m2的信号输出端接门控开关电路C的信号输入端,门控开关电路C的信号输出端接相加器B的信号输入端,相加器B的信号输出端接数据存储器的信号输入端,数据存储器的信号输出端接相加器B和MPCU的信号输入端,读RAM指针产生器的信号输出端接相加器A的信号输入端。
2.根据权利要求1所述的用于TD-SCDMA/3G/4G终端多径接收合并器,其特征是:该多径接收合并器使用1个环形FIFO缓存器作为数据存储器RAM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101552739A CN101127973B (zh) | 2006-12-18 | 2006-12-18 | Td-scdma/3g/4g终端多径接收合并器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101552739A CN101127973B (zh) | 2006-12-18 | 2006-12-18 | Td-scdma/3g/4g终端多径接收合并器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101127973A CN101127973A (zh) | 2008-02-20 |
CN101127973B true CN101127973B (zh) | 2011-11-02 |
Family
ID=39095863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101552739A Expired - Fee Related CN101127973B (zh) | 2006-12-18 | 2006-12-18 | Td-scdma/3g/4g终端多径接收合并器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101127973B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102097693B1 (ko) | 2013-07-26 | 2020-04-06 | 삼성전자주식회사 | 무선 통신시스템의 다중경로 탐색 장치 및 방법 |
CN104407367B (zh) * | 2014-12-19 | 2016-11-16 | 中国科学院重庆绿色智能技术研究院 | 提高卫星导航终端接收机基带信号处理能力的装置与方法 |
CN110332948B (zh) * | 2019-07-01 | 2021-05-04 | 武汉能钠智能装备技术股份有限公司 | 基于双通道的信号测试方法、测试设备、存储介质及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1411193A (zh) * | 2001-10-05 | 2003-04-16 | 富士通株式会社 | 接收装置和半导体装置 |
CN1423441A (zh) * | 2001-11-22 | 2003-06-11 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种码分多址系统中信道估计装置 |
CN1459939A (zh) * | 2002-05-20 | 2003-12-03 | 上海贝尔有限公司 | 一种wcdma扩频系统多径对齐的方法和装置 |
-
2006
- 2006-12-18 CN CN2006101552739A patent/CN101127973B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1411193A (zh) * | 2001-10-05 | 2003-04-16 | 富士通株式会社 | 接收装置和半导体装置 |
CN1423441A (zh) * | 2001-11-22 | 2003-06-11 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种码分多址系统中信道估计装置 |
CN1459939A (zh) * | 2002-05-20 | 2003-12-03 | 上海贝尔有限公司 | 一种wcdma扩频系统多径对齐的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101127973A (zh) | 2008-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7242726B2 (en) | Parallel concatenated code with soft-in soft-out interactive turbo decoder | |
US7409606B2 (en) | Method and system for interleaving in a parallel turbo decoder | |
CN101026439B (zh) | 一种提高Turbo码译码速率的译码方法 | |
US9048877B2 (en) | Turbo code parallel interleaver and parallel interleaving method thereof | |
CN101904102B (zh) | 用于剪除式交织器和解交织器的有效地址生成 | |
CN100361397C (zh) | 特播解码装置和方法 | |
CN101164242A (zh) | 具有复用输出的并行turbo解码器 | |
CN1327653A (zh) | 移动通信系统中的分量解码器及其方法 | |
CN101127973B (zh) | Td-scdma/3g/4g终端多径接收合并器 | |
Sun et al. | FPGA Design and Implementation of a Convolutional Encoder and a Viterbi Decoder Based on 802.11 a for OFDM | |
CN201018490Y (zh) | TD-SCDMA/3G硬核turbo译码器 | |
CN102270993B (zh) | 一种同时实现交织与解交织的Turbo译码器 | |
CN101075836A (zh) | Td-scdma/3g/4g终端信号比特能量估算和解扰单元 | |
WO2008028419A1 (fr) | Procédé et système d'entrelacement/désentrelacement dans un système de communication | |
CN201039407Y (zh) | Td-scdma/3g/4g终端信号比特能量估算装置 | |
JP4509133B2 (ja) | デジタル放送復調装置 | |
Wang et al. | Efficient interleaver memory architectures for serial turbo decoding | |
JP4859989B2 (ja) | デジタル放送復調装置 | |
CA2524056A1 (en) | Method and apparatus for facilitating efficient deinterleaving and diversity-combining of a data signal | |
JPH104362A (ja) | 縮小メトリック計算によるビタビ復号器 | |
AU2006203761B2 (en) | Turbo decoding apparatus and method | |
Kim | Design and implementation of turbo decoder for TETRA release 2-TEDS | |
Jheng et al. | A DVB-T baseband demodulator design based on multimode silicon IPs | |
Xiao | Design and implementation of interleave encoder based on FPGA | |
Santhi et al. | Asynchronous pipelined MB-OFDM UWB transceiver on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111102 Termination date: 20171218 |
|
CF01 | Termination of patent right due to non-payment of annual fee |