优选实施例说明
以下参考附图对本发明的优选实施例进行说明,在下面的说明中公知的结构和功能将不再说明以突出本发明的特点。术语“数据比特”表示非编码数据,以及术语“校验比特”表示由结构编码器编码的数据。
通常,在通信系统中,发射机使用信道编码器编码发射数据和发射编码数据;然后,接收机解调从发射机接收的数据以将接收的数据转换成原始数据。该信道编码器以帧为单位编码发射数据以及产生尾比特,该尾比特被加到每一帧以指示帧结束。本发明公开了在信道编码器中具有终止效果的帧结构。
具有终止效果的帧结构可以按照下面的几个实施例来实现:
第一实施例:在每一信道帧具有较高出错概率的位置插入特殊比特,其中插入的比特数由尾比特数定义。因为递归系统结构编码器不配置为产生尾比特,出错概率由试验确定,以及插入位置对信道编码器和信道译码器都是已知的。要插入的特殊比特最好是重要比特,其对于通讯性能具有减少的或没有影响,不论其是否发射。而且,他们可以是按接收机预定的编码比特或数据比特。
第二实施例:在每一信道帧具有较高出错概率的位置插入特殊比特,其中插入的比特数由尾比特数定义。插入特殊比特以超过预定帧长度。使用结构编码器编码插入比特的数据比特。然后,当输出信道编码数据时,超过信道编码数据帧长度的比特被在输入数据的比特插入位置打孔(punctured)。在此,递归系统编码器不产生尾比特以及信道编码器应提前知道比特插入位置。
第三实施例:若干特殊比特被插入到每一信道帧的具有高出错概率的位置,其中要插入的比特数由尾比特数确定。结构编码器产生尾比特以用于终止和产生相关的编码数据用于尾比特以及之后,在每一信道帧的特殊插入位置打孔数据比特以插入尾比特和尾比特编码数据在比特插入所选择的打孔位置。
第一实施例
按照本发明第一实施例的编码器不产生尾比特,而是在预定位置插入特殊比特以执行终止功能。在该实施例中,一24比特帧包括16数据比特,和8特殊比特,其中8特殊比特中的每一比特是插入到帧当中具有高出错概率比特位置的零比特。在此,比特插入位置由试验性地检测解码编码数据时大多数错误出现的位置来确定。另外,每一结构编码器使用1/3编码速率。
在该实施例中,在解码期间,当使用具有1/3编码速率快速编码器编码24位帧数据(即16帧数据比特加8个特殊比特)时,具有高差错率的位置由试验确定。具有较高出错概率的8比特位置被确定,以及特殊比特被插入在确定的位置。在此,当解码其中插入特殊编码的编码帧数据时,解码器知道比特插入位置。
实际上,所有的“0”比特都发射为“-1”。当插入的特殊比特是零比特时,在插入位置的零比特被改变成解码前的大负值(例如-5),以增加可靠性。此用于改善与无线环境发射过程中发生的变化相关的解码性能。然而,由于解码器事先已知道要接收的特殊比特的位置,在实际的解码过程中,解码器对特殊比特插入高于-1的值。在这种情况下,解码器可以借助于插入的特殊值改善解码性能。该解码操作将参照图14详细描述。在此方式中,解码器解码比特,借助于发射为大负值的这些特殊值知道24位中的至少8比特,借此增加解码性能。在该实施例中,解码性能在帧缩短时增加。
图3是按照本发明的第一实施例的具有插入特殊比特的比特插入器的快速编码器方框图。比特插入器310包括:比特产生器,用于通过处理输入数据比特产生特殊比特,以及通过插入由比特产生器产生的特殊比特在接收数据比特流预定比特插入位置产生帧单位中数据比特。在实施例中,假定比特插入器310插入特殊比特的位置是数据比特流的后部位置。特殊比特的插入由未描述的控制器确定。第一结构编码器320编码比特插入器310输出的数据比特。交织器330按照预定规则交织从比特插入器310输出的帧单位中的数据比特,以重安排数据比特序列。在该典型实施例中,对角交织器被用作交织器330。
第二结构编码器340编码从交织器330输出的帧单位交织数据比特。递归系统卷积编码器可以被用作第一结构编码器320和第二结构编码器340。多路复用器350在未描述控制器的控制下多路复用比特插入器310,第一结构编码器320和第二结构编码器340的输出。在此,比特插入器310输出数据比特Ik。第一结构编码器320输出第一校验比特P1k,以及第二结构编码器340输出第二校验比特P2k。
图4说明图3的快速编码器中的比特插入器310的详细说明方框图。参考图4,比特发生器430产生特殊的插入到数据比特中的比特。在此,特殊比特假定为零比特,可以实现为触发器之类存储元件的延迟器412-426可以具有串行移位寄存器结构以将输入数据比特按照比特时钟移位。
在未描述控制器的控制下,开关432被开关选择延迟器412-426的输出。而且,在未描述控制器的控制下,开关432在比特发生器430的特殊比特的输出被插入数据比特的位置被开关至下一延迟器的输出。即,当选择的特殊比特被插入数据比特时,开关432选择按1比特延迟的数据比特。开关432可以由多路复用器实现。在未描述控制器的控制下,343被开关至比特发生器430以及开关432的输出以产生数据比特Ik。在控制器的控制下,开关434选择或是特殊比特或是数据比特以在预定位置插入。
参照图4,说明特殊比特的插入操作。输入数据比特按照比特时钟由延迟器412-426延迟。起初,开关432选择输入数据比特(即,极点1)以及开关434起初被连接至开关432(即,极点B)。输入数据比特被通过开关432和开关434输出。与此同时,在控制器的控制下,当比特插入位置被确定时,开关432连接至延迟器412的输出(即,极点2)以及开关434被连接至比特发生器430(即,极点A)的输出。结果,数据比特的路径被切断以及比特发生器430的零比特输出被插入到对应比特位置。在插入零比特后数据比特被连续输出的情况下,开关434由控制器连接至开关432。即,由于零比特插入后选择1比特延迟的数据比特,零比特可以被插入到预定位置而不失去数据比特。
对于一帧,通过重复该过程,零比特被插入到数据比特。零比特插入后接收到下一帧的数据比特时,开关432被再次连接至输入比特节点(极点1)以及再次重复上述过程。在数据比特被编码以用于通讯的情况下,统计的出错概率在输入相应结构编码器的数据比特数据流的后部相对高。因此,比特发生器430输出的零比特被插入的位置可被多数定位在数据比特流的后部,如表1举例所示。
表1
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 Ib1 I12 I13 I14 Ib2 I15 I16 Ib3 Ib4 Ib5 Ib6 Ib7 Ib8 |
其中Ix表示数据比特以及Ibx表示插入比特。
比特插入器310输出的表1的数据比特被并行施加到第一结构编码器320和交织器330。交织器330输出的帧单位的交织数据比特,被第二结构编码器340编码。与5说明了按照本发明实施例的图3的第一结构编码器320和第二结构编码器340的结构。如图所示,第一结构编码器320和第二结构编码器340是递归系统卷积编码器。另外,第一结构编码器320和第二结构编码器340被配置为不产生尾比特,如图5所示。
第一结构编码器320编码比特插入器310输出的表1的数据比特。第一结构编码器320的输出的编码数据比特如表2所示。
表2
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Cb1 C12 C13 C14 Cb2 C15 C16 Cb3 Cb4 Cb5 Cb6 Cb7 Cb8 |
其中Cx表示第一结构编码器320输出的符号,Cbx表示第一结构编码器320输出的插入比特的符号。在此,在第一结构编码器320具有1/3编码率的情况下,每一符号C成为三个符号。然而应注意,表1不表示冗余符号。
与此同时,交织器330交织比特插入器310输出的数据比特以及第二结构编码器340编码交织器330输出的交织数据比特。第二结构编码器340输出的编码数据比特如表3所示。
表3
D1DC2 D3 D4 D5 D6 D7 D8 D9 D10 D11 Db1 D12 D13 D14 Db2 D15 D16 Db3 Db4 Db5 Db6 Db7 Db8 |
其中Dx表示第二结构编码器340输出的符号以及Dbx表示第二结构编码器340输出的插入比特的符号。在此,在第二结构编码器340具有1/3编码速率的情况下,每一符号D变成三个符号。虽然数据比特的序列实际上由交织重安排,该序列在表3中保持不变,以易于说明。
在未描述控制器的控制下,多路复用器350然后多路复用比特插入器310,第一结构编码器320和第二结构编码器340的输出。表4所示是特殊比特插入数据比特和第一结构编码器320和第二结构编码器340的输出。多路复用器35 0可以按照或是表4所示帧单位基础或是符号单位基础上的第一校验符号和第二校验符号和数据符号的序列多路复用输入符号。
表4
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 Ib1 I12 I13 I14 Ib2 I15 I16 Ib3 Ib4 Ib5 Ib6 Ib7 Ib8C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Cb1 C12 C13 C14 Cb2 C15 C16 Cb3 Cb4 Cb5 Cb6 Cb7 Cb8D1DC2 D3 D4 D5 D6 D7 D8 D9 D10 D11 Db1 D12 D13 D14 Db2 D15 D16 Db3 Db4 Db5 Db6 Db7 Db8 |
图6是按照本发明第一实施例的图3的快速编码器的时序图。参照图6,时段T1中,比特插入器310在帧中预定比特位置插入零比特以产生比特插入数据比特流Ik,在此插入比特为表1的零值(见611)。在时段T2,零值比特插入数据比特Ik被同时施加到多路复用器350,第一结构编码器320和交织器330。然后,在T2时段,第一结构编码器320编码零值比特插入数据Ik以产生作为第一校验比特的第一编码数据比特Ck(见612),以及在同一时段T2,交织器330按照预定规则交织零比特插入数据比特Ik(见613)。
之后,在时段T3,多路复用器350将比特插入器310输出的数据比特Ik延迟一个帧周期,第一结构编码器320输入第一编码数据比特Ck至多路复用器350以及第二结构编码器340编码交织器330输出的交织数据比特Ik以产生作为第二校验比特的第二编码比特数据比特Dk。由第二结构编码器340产生第二校验比特Dk后,在时段T4,多路复用器350多路复用数据比特Ik,第一校验比特Ck,和第二校验比特Dk。
虽然图6说明了并行处理数据比特Ik,第一校验比特Ck,和第二校验比特Dk的例子,还可以按照比特产生次序串行输出比特插入器310,第一结构编码器320和第二结构编码器340的输出。
从上述描述可看出,在按照第一实施例的递归系统快速编码器中,相应结构编码器不产生终止尾比特,而是在具有较高确定出错概率的比特位置插入一些特殊比特(即,零比特)。
第二实施例
如同第一实施例,按照本发明第二实施例的信道编码器在具有较高出错概率的位置插入特殊比特。然而,第二实施例可以与第一实施例不同在插入比特的数目设定为超过帧大小(或长度)。在该举例实施例中,每一帧被假定为包括16输入数据Ik和12插入比特。该实施例加入四个附加的插入比特。由于输出数据比特Ik,校验比特Ck和Dk应等于24和总共产生28比特,剩余校验比特Ck和Dk被从数据比特Ik在比特插入位置打孔。
图7是按照本发明第二实施例的信道编码器。比特插入器710包括比特产生器,用于通过处理输入数据比特产生特殊比特,以及通过在预定比特位置插入由比特产生器产生的特殊比特产生超过帧大小的数据比特。第一结构编码器720编码从比特插入器710输出的数据比特以产生第一校验比特Ck。交织器730按照预定规则交织比特插入器710输出的帧单位中数据比特以改变数据比特的排列(或次序)。在该实施例中,对角交织器被用作交织器730。
第二结构编码器740编码交织器730输出的帧单位中的交织数据比特以产生第二校验比特Dk。递归系统卷积编码器可用为第一结构编码器720和第二结构编码器740。在未描述控制器的控制下,多路复用器750多路复用比特插入器710,第一结构编码器720,第二结构编码器740的输出以产生预定长度的数据帧。在此,比特插入器710输出数据比特Ik,第一结构编码器720输出第一校验比特P1k和第二结构编码器740输出第二校验比特P2k。
在该操作中,接收到16数据比特Ik时,比特插入器710以第一实施例的比特插入器310同样方式工作。除由12个延迟器代替8个以外,比特插入器710具有图4的相似的结构。因此,比特插入器710在帧的12个具有较高出错概率的位置上通过在未描述控制器的控制下控制内部开关插入12个零比特。因此,在该实施例中,比特插入器710输出28数据比特Ik(即,16数据比特和12零比特),他们被同时加载到多路复用器750,第一结构编码器720和交织器730上。另外,从交织器730输出的交织数据比特Ik施加到第二结构编码器740上,在此,第一结构编码器720和第二结构编码器740具有图5的结构,其不产生终止尾比特。
第一结构编码器720然后编码其中插入12零比特的比特插入器710输出的28数据比特Ik,以及输出28第一校验比特Ck至多路复用器750。交织器730交织比特插入器710输出的28数据比特Ik,以及第二结构编码器740以第一结构编码器720相同的方式编码交织的数据比特以产生28第二数据比特Dk,以加载到多路复用器750。多路复用器750打孔数据比特Ik以在打孔位置插入4个第一校验比特Ck以及4个第二校验比特Dk以及然后输出余下的24个第一校验比特Ck和余下的24个第二校验比特Dk。
参照图8,多路复用器750首先接收比特插入器710输出的28数据比特Ik。然后,多路复用器750中的开关812被连接至延迟器822直到28数据比特Ik输出的第一24数据比特被从比特插入器710接收。延迟器822延迟第一24接收的数据比特。之后,开关812被连接至延迟器824,直到余下的4个28数据比特Ik输出的数据比特被从比特插入器710接收。延迟器824延迟余下的4数据比特。
以这种方式,多路复用器750从第一结构编码器720接收28第一校验比特Ck。然后,多路复用器750中的开关814被连接至延迟器826,直到28第一校验比特Ck出来的第一24数据比特被从第一结构编码器720接收,以及延迟器826延迟接收的第一校验比特Ck。之后,开关814被连接至延迟器828,直到余下的28第一校验比特Ck出来的4第一校验比特被从第一结构编码器720接收,以及延迟器828延迟接收的余下的4第一校验比特。
之后,多路复用器750接收第二结构编码器740输出的28第二校验比特Dk。然后,多路复用器750中的开关816被连接至延迟器830,直到28第二校验比特Dk出来的24数据比特被从第二结构编码器740接收,以及延迟器830延迟接收的第二校验比特Dk。之后,开关816被连接至延迟器832,直到余下的28第二校验比特Dk出来的4第二校验比特被从第二结构编码器740接收,以及延迟器832延迟接收的余下的4第二校验比特。
如上所述,多路复用器750顺序接收28数据比特Ik,28第一校验比特Ck和28第二校验比特Dk,以及分别存储第一24比特和余下的在对应延迟器中相应比特出来的4比特。开关812-开关816由未描述控制器控制。另外,延迟器822-延迟器832各自包括级连的存储单元以及存储输入比特直到对应的延迟处理完成。
完成延迟处理后,开关844被连接至开关842和开关842被连接至延迟器822。因此,延迟延迟器822被通过开关842和开关844输出。当输出存储在延迟器822中的一个数据比特时,开关842被连接至延迟器824,保持与开关844的连接。然后,存储在延迟器824中的余下的数据比特之一被通过开关842和开关844输出。即,存储在延迟器822中的数据比特被打孔以及延迟器824中存储的数据比特被在其位置输出。之后,开关842被连接至延迟器822,连续保持与开关844的连接。通过重复上述步骤4次,存储在延迟器822中的数据比特被打孔以及存储在延迟器824中的4个数据比特被插入到4个打孔位置。
接着,开关842被连接至延迟器822,保持与开关844的连接。然后,延迟器822的输出被通过开关842和开关844输出。当存储在延迟器822中的数据比特输出时,开关842被连接至延迟器828,保持与开关844的连接。然后,存储在延迟器828中的余下的4个第一校验比特之一被通过开关842和开关844输出。之后,开关842被再次连接至延迟器822,连续保持与开关844的连接。通过重复上述步骤4次,延迟器822中存储的数据比特被打孔以及存储在延迟器828中的第一校验比特被插入在打孔位置。
以这种方式,数据比特以及余下的4个第一校验比特被交替输出。接下来,开关842被连接至延迟器822,保持与开关844的连接。然后,延迟器822的输出被通过开关842和开关844输出。当存储在延迟器822中的一数据比特被输出时,开关842被连接至延迟器832,保持与开关844的连接。然后,存储在延迟器832中的余下的4个第二校验比特被通过开关842和开关844输出。之后,开关842被再次连接至延迟器822,继续保持与开关844的连接。通过重复上述步骤4次,存储在延迟器822中的数据比特被打孔以及然后,存储在延迟器832中的余下的4个第二校验比特被插入在打孔位置。
通过上述过程,存储在延迟器822中的24数据比特被打孔,以及然后,存储在延迟器824中的4数据比特,存储在延迟器828中的4第一校验比特和存储在延迟器832中的4第二校验比特被插入到打孔位置。因此,多路复用器750打孔比特插入器710输出的数据比特Ik以及插入8校验比特在打孔的插入位置,以此输出24数据比特。
上述过程完毕后,开关844被连接至延迟器826。然后,存储在延迟器826中的24第一校验比特Ck被输出。之后,开关844被连接至延迟器830以输出存储在延迟器830中的24第二校验比特Dk。
参照图9,按照第二实施例的图7的编码器中,比特插入器710插入12比特在16输入数据比特中以产生28数据比特Ik。第一结构编码器720和第二结构编码器740分别产生28第一校验比特Ck和28第二校验比特Dk。多路复用器750在12插入位置打孔28数据比特Ik,以及然后,在其中插入剩余的数据比特,即4剩余数据比特,4剩余第一校验比特和4剩余第二校验比特。之后,多路复用器750顺序输出数据比特Ik,第一校验比特Ck和第二校验比特Dk。
在译码的过程中,多路复用器750的输出值被解多路复用成数据比特部分,第一校验比特部分和第二校验比特部分。其中,数据比特部分被按照-5值在比特插入部分打孔。这样处理的数据比特被现有的解码器解码。(见Claude Berrou,and Alain Glavieux and Punya Thitmajshima Near ShannonLimit Error-Correction Coding and Decoding:Turbo-Codes(1).)
第三实施例
按照本发明第三实施例的编码器在仅有比一般出错率高的出错率的比特位置的数据比特中插入具有特殊逻辑的数据比特,其中结构编码器编码特殊比特插入数据比特以及产生尾比特以加入到编码数据比特。即,按照第三实施例的编码器用比特插入和尾比特加入方法执行终止功能。
图10是按照本发明第三实施例的编码器的框图。参照图10,比特插入器1010接受16输入比特以及具有按照本发明第一实施例比特插入器310的同样的结构。在未描述控制器的控制下,比特插入器1010在具有高于一般出错率的每帧中8数据比特位置插入8个零比特。因此,在该示范实施例中,比特插入器1010输出24数据比特Ik,其共同被施加到多路复用器1050,第一结构编码器1020和交织器1030。
另外,从交织器1030输出的交织的数据比特Ik被施加到第二结构编码器1040。第一结构编码器1020是一图11所示递系统结构编码器,具有产生尾比特以加入到编码数据比特的结构。另外,如图5的第一实施例所示,第一结构编码器1020的结构不产生终止用的尾比特。
参照图11,第一结构编码器1020的操作将被说明。为了编码,开关1111连接输入节点至异或门1131,开关1113保持OFF状态,以及开关1115连接至1135。然后,24数据比特Ik被通过开关1111顺序施加到延迟器1121-延迟器1127,异或门1131,以及1135输出编码数据比特。当数据比特Ik全部由延迟器1121-延迟器1127和异或门1135以此方式编码时,开关1111被连接至异或门1133和异或门1131,开关1113为ON状态,以及开关1115被连接至开关1113。然后,通过异或反馈的输出产生零比特,以及存储在延迟器1121-延迟器1127中以及通过开关1115输出。在此,存储在延迟器1121和延迟器1127中的零值变成尾比特以及通过开关1115输出。产生的尾比特的数目对应于第一结构编码器1020中的延迟的数目。在图11中,第一结构编码器1020每帧产生4个尾比特以及还为相应的尾比特产生编码比特。
因此,第一结构编码器1020产生24第一校验比特Ck,以及处理完最后数据比特(即,第24数据比特)时,开关1111连接至异或门1133,开关1113连接至开关1111以及开关1115连接至开关1113;同样的过程被重复4次以产生4尾比特。通过该过程,28第一校验比特Ck和4个尾比特输出至多路复用器1050。
另外,交织器1030交织比特插入器1010输出的24数据比特Ik以及提供交织数据比特至第二结构编码器1040。第二结构编码器1040然后编码以第一结构编码器1020同样的方式交织数据比特以产生24第二校验比特Dk,其被施加到多路复用器1050。
从交织器1030输出的帧单位中的交织数据比特由具有图5所示相同结构的第二结构编码器1040编码。第二结构编码器1040是递归系统卷积编码器,如图5所示。另外,第二结构编码器1040具有不产生尾比特的结构。
多路复用器1050然后打孔数据比特Ik和插入4第一校验比特Ck在打孔位置,以及选择地输出余下的24第一校验比特Ck和24第二校验比特Dk。
图12是多路复用器1050说明图。参照图12,多路复用器1050首先接收比特插入器1010输出的24数据比特Ik。多路复用器1050中的延迟器1222然后存储接收的24数据比特Ik。
之后,多路复用器1050接收28第一结构编码器1020输出的第一校验比特Ck。多路复用器1050中的开关1212然后被连接至延迟器1224,直到第一校验比特Ck输出的第一24比特被从第一结构编码器1020接收,以及延迟器1224存储接收的第一校验比特Ck。接下来,开关1212被连接至延迟器1226,直到余下的32第一校验比特Ck输出的8比特被从第一结构编码器1020接收,以及延迟器1226存储第一校验比特Ck的余下的8比特。
接下来,多路复用器1050接收第二结构编码器1040输出的24第二校验比特Dk。多路复用器1050中的延迟器1228然后存储接收的24第二校验比特Dk。
这样顺序产生的24数据比特Ik,28第一校验比特Ck和24第二校验比特Dk被施加到多路复用器1050。多路复用器1050然后按照对应的接收次序的延迟存储顺序接收的数据比特Ik,第一校验比特Ck,第二校验比特Dk,其中第一24比特和余下的28第一校验比特Ck输出的4比特被分离地存储在对应的延迟块中。延迟器1222-延迟器1228每一由级连的存储块组成以及存储对应的输入比特直到上述延迟过程完成。
上述延迟过程之后,开关1236被连接至开关1234,以及开关1234被连接至延迟器1222。这样,延迟器1222的输出被通过开关1234和开关1236输出。当存储在延迟器1222中的预定位置的数据比特被输出时,开关1234被连接至延迟器1226,保持与开关1236的连接。然后,在延迟器1226中的存储的余下的第一校验比特之一被开关1234和开关1236输出。即存储在延迟器1222中的数据比特被打孔以及存储在延迟器1226中的第一校验比特被插入到打孔位置。之后,开关1234被再次连接至延迟器1222,保持与开关1236的连接。上述操作被重复8次以打孔存储在延迟器1222中的8数据比特并将余下的8个存储在延迟器1226中的第一校验比特插入打孔的位置。结果,24数据比特Ik被打孔以插入8第一校验比特至打孔位置(即,比特插入位置),以输出24位。
之后,开关1236被连接至延迟器1224的输出。然后,存储在延迟器1224中的24第一校验比特Ck被通过开关1236输出。接下来,开关1236被开关至延迟器1228以输出存储在延迟器1228中的24第二校验比特Dk。
参照图13,在图10的按照本发明第三实施例的编码器中,比特插入器1010插入8比特在16输入数据比特以产生24数据比特Ik。产生尾比特的递归系统结构编码器被用于结构编码。在此情况下,结构编码器产生总共32数据比特,包括24编码数据比特,4尾比特和4尾比特编码数据。当输出24编码数据比特时,输入的数据比特Ik被首先打孔以插入余下的8第一校验比特(即4尾比特和4尾比特编码数据)在比特打孔位置。
信道编码特殊比特插入符号被通过信道发射,以及以接收机然后接收和译码信道编码符号。在译码过程中,多路复用器1050的输出值被解多路复用成数据符号部分,第一校验符号部分和第二校验符号部分,其中数据符号部分被打孔以在其中比特插入部分插入特殊值,例如-5。这样处理的数据比特被现有解码器解码。(见Claude Berrou,and Alain Glavieux and PunyaThitmajshima Near Shannon Limit Error-Correction Co ding and Decoding:Turbo-Codes(1).)
在上述相应的实施例中,假定编码器插入特殊比特在数据比特流的后部。即,编码器插入特殊比特在要发射的数据帧的尾部。由于输入到信道编码器的第二结构编码器的数据比特被交织器交织于施加到第二结构编码器之前,输入至第一结构编码器的数据比特的最后位置不可以与输入至第二结构编码器的数据比特的最后位置会合。另外,由于输入至第二结构编码器的特殊比特的插入位置取决于交织器的大小和类型,需要可以决定要输入到第一结构编码器和第二结构编码器的数据比特流的后部分的方法。
本发明提供决定特殊比特插入位置的方法,其取决于信道编码器的交织器。图14说明了信道编码器中的特殊比特插入位置的决定过程。图14描述的程序由图3的信道编码器执行。在下列描述中,第一结构编码器对应于第一结构编码器320,第二结构编码器对应于第二结构编码器340,交织器对应于交织器330。另外,图14的流程图控制比特插入器310的操作以插入特殊比特。当比特插入器310具有图4的结构时,图14的流程图可以由未示出的控制器执行,以控制比特插入器310中开关434的操作。即,图14的程序控制开关434以指定特殊比特的插入位置,这样,比特发生器430的特殊比特的输出可以被定位在数据比特流的后部。
参照图14,在141步骤中,下列为输入:数据比特数Ninfo,MIL交织器大小NMIL,输入到第一结构编码器(Pins1)中的数据比特的最后位置的插入的特殊比特的数目,输入到第二结构编码器(Pins2)中的数据比特的最后位置的插入到数据比特的数目,数组Addrinfo□和Addrdeint□,用于存储解交织数据比特和变量的数据比特位置,数组Addrturbo□,用于存储数据比特的位置,以及初值为0的变量i和k。之后,在步骤142中,确定是否i高于数据比特数Ninfo。当i>Ninfo时,程序进行至步骤144;否则,程序进行至步骤143。步骤143重复数据比特数Ninfo同样的次数。在步骤143中,解交织数据比特位置Addrinfo□被存储在数组Addrturbo□中。步骤143重复数据比特数Ninfo同样的次数以存储所有的数据比特位置Addrinfo□在变量Addrturbo□中以存储数据比特的位置,以及之后,程序进行至步骤144以初始化变量i至“0”。
变量i初始化之后,在步骤145中确定是否变量i高于Pins1,即输入到第一结构编码器的数据比特流的最后位置插入的比特数。步骤146重复数据比特数Ninfo同样的次数,Pins1,数据比特流的最后位置插入的比特数。当i≤Pins1时,程序进行至步骤146,在此,输入到第一结构编码器中的数据比特流的最后位置被指定为特殊比特的插入位置以及之后被存储在变量NTPOSi中。当上述操作被重复Pins1次,即输入到第一结构编码器的数据比特流的最后位置插入的特殊比特数时,过程进行至步骤147,其中输入到第一结构编码器的Pins1=4数据比特的最后位置插入的数据比特位置被存储以及之后,变量k和j被初始化为零。
变量k和j被初始化之后,在步骤148中确定是否变量k高于Pins2,即输入到第二结构编码器的数据比特流的最后位置插入的特殊比特数。步骤149,150,151重复Pins2的次数,即数据比特流的最后位置插入的特殊比特数。当j≤Pins2时,程序进行至步骤149,在此,输入到第二结构编码器中的数据比特流的最后部分定位的比特位置被选择为特殊比特的插入位置以及之后被存储在变量ITPOSj中。之后,在步骤150,判定是否存储在变量ITPOSi中的位置值覆盖存储在NTPOSi中的位置值。即,变量ITPOSj存储输入到第二结构编码器中的数据比特的最后位置插入的特殊比特的位置信息,以及变量NTPOSi存储输入到第一结构编码器中的数据比特的最后位置插入的特殊比特的位置信息。因此,当存储在ITPOSj中的信息覆盖存储在NTPOSi中的信息时,其意味着同样的特殊比特被覆盖地插入到输入到第一结构编码器和第二结构编码器的数据比特的最后位置。
因此,在步骤150,判定是否存储在ITPOSj中的输入到第二结构编码器中的数据比特的最后位置插入的比特的位置覆盖步骤146中选择和存储在NTPOSi中的位置。当ITPOSj覆盖NTPOSi时,变量k在步骤153中增加1。变量k增加后,程序返回至步骤148。因此,当输入到第一结构编码器和第二结构编码器中的数据比特的最后位置插入的特殊比特的位置相互覆盖时,输入到第二结构编码器中的数据比特的最后位置插入的其它特殊比特的插入位置被存储在ITPOSj中以及然后,步骤150被再次执行以决定存储在ITPOSj中的比特位置是否覆盖存储在NTPOSi中的比特位置。当存储在ITPOSj中的比特位置不覆盖存储在NTPOSi中的比特位置时,在步骤151中变量k和j分别增加1。之后,程序返回至步骤148。步骤148至153被重复Pins2次。当上述步骤重复Pins2次后(即j>Pins2),步骤148进行至步骤152,在此输出ITPOSk和NTPOSk,其中存储了特殊比特的插入位置。
因此,在步骤148和152中,当存储在ITPOSj中的比特位置覆盖存储在NTPOSi中的特殊比特的插入位置时,输入到第二结构编码器中的数据比特的最后位置插入的特殊比特的位置被移位以被指定为其它的位置。然而,当他们相互不覆盖时,保持输入到第二结构编码器中的数据比特流的最后位置指定的位置为其原样。在该实施例中,当存储在ITPOSj中的位置覆盖存储在NTPOSi中的特殊比特的插入位置时,输入到第二结构编码器中的数据比特流的特殊比特插入位置被改变。然而,可以改变输入到第二结构编码器中的数据比特流的特殊比特插入位置。
为了更好地理解图14所示的程序,将详细说明程序怎样实际地确定按照交织器的特殊比特的插入位置。
首先,如果假定输入数据比特流具有16位长度以及插入的特殊比特数是8,则使用的交织器的大小变成(数据比特流的长度)+(插入的特殊比特数)=16+8=24位。因此,在此假定交织器具有24位长度,如表5所示。
表5
0 6 12 18 1 7 13 19 28 14 20 3 9 15 21 4 10 16 22 5 11 17 23 |
表5说明了按照从交织器输出的顺序排列的比特的位置。即,“0”出现在第一比特位置,意为,第0比特被首先输出;“6”出现在第二比特位置,意为第6输入比特被接下来输出;以及“12”出现在第三比特位置,意为接下来输出第12输入比特。
参照图14,说明确定交织器插入位置的方法。在步骤141,数据比特流的长度被输入为Ninfo=16,MIL交织器的大小NMIL=24,插入在输入到第一结构编码器(Pins1=4)的数据比特流的末端的特殊比特数,插入在输入到第二结构编码器(Pins2=4)的数据比特流的末端的特殊比特数,数据比特位置Addrinfo[24],解交织数据比特的位置,以及变量Addrdeinst[24],Addrturbo[24],用于存储数据比特的位置,以及变量i和k被初始化为“0”。
之后,在步骤142,确定是否变量i高于数据比特数Ninfo=16。当i>Ninfo(=16),程序进行至步骤144;否则,程序进行至步骤143。在此,步骤143被重复16次,该次数对应于数据比特数Ninfo=16,以及16数据比特位置Addrinfo[16]被顺序存储在数组Addrturbo[16]中。之后,程序进行至步骤144以初始化变量i至“0”。
初始化变量i之后,在步骤145判定变量i是否大于输入到第一结构编码器的数据比特流的末端插入的比特的数目(Pins1=4)。步骤146被重复数据比特流末端插入比特数的次数(Pins1=4)。当i≤Pins1(=4),程序进行至步骤146,其中输入到第一结构编码器的数据比特流的最后位置被指定为特殊比特的插入位置以及被存储在变量NTPOSi中。即,交织入之前的最后4比特的位置被存储在变量NTPOSi中。当上述过程重复输入到第一结构编码器的数据比特流的最后位置插入的特殊比特数的数目时,Pins1=4,过程进行至步骤147,其中插入在输入到第一结构编码器的数据比特最后位置Pins1=4的特殊比特的位置被存储,以及之后,变量k和j被初始化为零。表6所示是交织入之前数据比特帧的最后位置插入的4比特的位置(即20,21,22,23)。
表6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
接下来,步骤148判定是否变量k大于输入到第二结构编码器的数据比特流的最后位置插入的特殊比特的数目,Pins2=4。步骤149,150和151被重复4次,该次数对应于数据比特流最后位置插入的特殊比特数(Pins2=4)。当j≤Pins2(=4)时,过程进行至步骤149,其中输入到第二结构编码器的数据比特流的最后位置处的最后4比特的位置被选择为特殊比特的插入位置以及存储在变量NTPOSj中。图7说明了表6所示的最后4比特的插入位置,在交织入之前为第一结构编码器确定,与最后4比特插入位置一同在交织入之后为第二结构编码器确定。
表7
在此,交织入之前为第一结构编码器确定的最后4比特的插入位置是{20,21,22,23},以及为第二结构编码器在交织入之后确定的最后4比特的插入位置是{5,11,17,23}。应注意,出自确定的插入位置仅是“23”的插入位置“23”被覆盖。因此,确定的插入比特的总数不是8而是7。因此,为了多确定一个比特,步骤150判定是否输入到第二结构编码器的数据比特流的最后位置插入的数据比特位置(存储在ITPOSj中)覆盖步骤146中选择并存储在变量NTPOSi中的位置。在此,由于第23位置被在表6和表7中覆盖,程序进行至步骤148到步骤151。然后,过程进行至步骤149,在此,输入到第二结构编码器的数据比特流的最后位置插入的比特的另一插入位置被存储在ITPOSj以确定第19比特位置作为插入位置。之后,在步骤150,再次判定是否存储在ITPOSj中的比特位置覆盖存储在NTPOSi的比特位置。在此,由于第19比特位置不被覆盖,该选择的位置被恒定地存储。之后,步骤148,149,150,151和153被重复pins2次。重复上述步骤后,在152步骤,存储插入的位置的变量ITPOSk和NTPOSk被输出。表8说明了从变量ITPOSk和NTPOSk输出的8个插入位置。
表8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
在此,图14的程序可以表示为:
<Step1>
Store input(information)bits
i=0
do while i<Ninfo
Addrturbo[i]=Addrinfo[i]
i=i+1
end do
<Step2>
i=0
do whilei<Pins1
NTPOSi=Addrturbo[NMIL-1-i];insertion positions for end part of
RSC1 input
insert zero bits to the Addrturbo[NTPOSi];insert known(e.g.,0)bits to
the
i=i+1
end do ;pre-determined positions
<Step3>
k=0
j=0
do whilej<Pins2
ITPOSj=Addrdeint[NMIL-1-k];insertion positions for end part of
RSC2 input
if(ITPOSj=((NTPOSi)‖{ITPOS0,ITPOS1,...,ITPOSk1}));exclude
<!-- SIPO <DP n="19"> -->
<dp n="d19"/>
overlapping
ITPOSj=ITPOSk+m ;for the pre-processed positions
k=k+1
else ;mis certain integer value
insert zero bit to the Addrturbo[ITPOSk]
k=k+1
j=j+1
end do
Legend:
||:or
如上所述包括递归系统结构编码器的新颖的信道编码器可以使用具有终止效果的帧结构执行信道编码功能。
虽然上述以优选实施例形式对本发明进行了说明,应当理解本领域技术人员在不偏离后附权利要求书所定义的本发明的实质和范围内还可以对本发明作各种替换和修改。