自适应信道编码方法和装置

申请号 CN98807352.8 申请日 1998-07-30 公开(公告)号 CN1264509A 公开(公告)日 2000-08-23
申请人 三星电子株式会社; 发明人 朴昌洙; 李炫又; 李弼中; 孔骏镇; 金龙;
摘要 提供了一种具有并行或串行连接的卷积 编码器 的信道编码器。该信道编码器包括:第一编码器,用于对输入信息位进行编码;一交织器,具有 存储器 和指数生成器,用于以预定方法 修改 信息位的顺序;第二编码器,用于对交织器的输出进行编码;第一和第二终止装置,用于终止所述第一和第二编码器的输入和输出信息位的 帧 ;一尾部位生成器,用于存储用在帧终止中的尾部位;以及一 控制器 和一切换器,用于控制以上过程。
权利要求

1.一种对交织方法,包括以下步骤:
接收大小信号
确定对应于输入帧的大小的列和行值;及
按照所述列和行值对所述输入帧的信息位进行对角交织。
2.如权利要求1所述的对角交织方法,其中所述对角交织是基于下式 来实现的:
      for(k=0;k<M*N-1;k++)
        new addr[k]=(M-1-(k mod N)*N+(k mod N)
其中,M和N是列和行值,M×N是帧大小,k是指数,并且new addr[] 代表对角交织信息位的新地址。
3.如权利要求1所述的对角交织方法,其中所述对角交织是基于下式 来实现的:
    for(j=0;j<M;j++)
      for(i=0;i<N;i++)
        new addr[i+j+N]=i+(M-1-(i+j)mod M)*N
其中,M和N是列和行值,M×N是帧大小,i和j是指数,并且new addr[] 代表对角交织信息位的新地址。
4.如权利要求1所述的对角交织方法,其中所述对角交织是基于下式 来实现的:
    for(j=0;j<M;j++)
      for(i=0;i<N;i++)
        new addr[i+j+N]=i+((i+j)mod M)*N
其中,M和N是列和行值,M×N是帧大小,i和j是指数,并且new addr[] 代表对角交织信息位的新地址。
5.一种循环移位交织方法,包括以下步骤:
接收帧大小信号;
确定对应于输入帧的大小的跳跃和步进参数;及
按照确定的跳跃和步进参数,利用至少一个循环的信息位,对输入帧的 信息位执行循环移位交织。
6.如权利要求5所述的循环移位交织方法,其中所述循环移位交织是 基于下式来实现的:
    for(i=0;i<SIZE;i++)
      new addr[i]=(p*i+STEP)mod SIZE
其中,SIZE是要被交织的数据的大小,p是用于循环移位交织的跳跃参 数,STEP是具有整数值并用于对来自跳跃位置的数据进行移位的步进参数, new addr[]代表对角交织信息位的新地址,并且i是指数。
7.如权利要求5所述的循环移位交织方法,其中所述循环移位交织是 基于下式来实现的:
    d=GCD(P,SIZE);
      for(k-j=0;j<d;j++)
        for(i=0;i<SIZE/d;i++,k++)
          new addr[k]=((p*i+STEP)+j)mod SIZE
其中,SIZE是要被交织的数据的大小,p是用于循环移位交织的跳跃参 数,STEP是具有整数值并用于对来自跳跃位置的数据进行移位的步进参数, new addr[]代表对角交织信息位的新地址,GCD是最大公分母,并且i、j和 k是指数。
8.一种turbo编码器,包括:
多个分量编码器,用于对输入信息位进行编码;及
一对角交织器,它被连接到所述分量编码器之一的输入端并具有对应于 输入信息位的大小的列和行信息,并且用于确定对应于输入信息位的帧大小 的列和行信息并且对该信息位进行对角交织。
9.如权利要求8所述的turbo编码器,其中所述对角交织器包括:
一对角交织表,用于存储对应于输入信息的大小的列和行信息;
一对角交织控制器,用于按照所述列和行信息,由下式生成要用于对信 息位对角交织的地址:
    for(k=0;k<M*N-1;k++)
      new addr[k]=(M-1-(k mod N)*N+(k mod N)
其中,M和N是列和行信息,k是指数,new addr[]代表对角交织信息 位的新地址,并且M×N是帧大小。
10.如权利要求8所述的turbo编码器,其中所述对角交织器包括:
一对角交织表,用于存储对应于输入信息的大小的列和行信息;
一对角交织控制器,用于按照所述列和行信息,由下式生成要用于对信 息位对角交织的地址:
    for(j=0;j<M;j++)
      for(i=0;i<N;i++)
        new addr[i+j+N]=i+(M-1-(i+j)mod M)*N
其中,M和N是列和行信息,new addr[]代表对角交织信息位的新地址, 并且i和j是指数。
11.如权利要求8所述的turbo编码器,其中所述对角交织器包括:
一对角交织表,用于存储对应于输入信息的大小的列和行信息;
一对角交织控制器,用于按照所述列和行信息,由下式生成要用于对信 息位对角交织的地址:
    for(j=0;j<M;j++)
      for(i=0;i<N;i++)
        new addr[i+j+N]=i+((i+j)mod M)*N
其中,M和N是列和行信息,new addr[]代表对角交织信息位的新地址, 并且i和j是指数。
12.一种turbo编码器,包括:
多个分量编码器,用于对输入信息位进行编码;及
一循环移位交织器,它被连接到所述分量编码器之一的输入端并具有对 应于输入信息的大小的跳跃和步进信息,并且用于确定对应于输入信息位的 帧大小的跳跃和步进信息并且对该信息位执行循环移位交织。
13.如权利要求12所述的turbo编码器,其中所述循环移位交织器包括:
一循环移位交织表,用于存储对应于输入帧大小的列和行信息;
一循环移位交织控制器,用于按照所述跳跃和步进信息,由下式生成要 用在帧的信息位的循环移位交织中的地址:
    for(i=0;i<SIZE;i++)
      new addr[i]=(p*i+STEP)mod SIZE
其中,SIZE是要被交织的数据,p是用于循环移位交织的跳跃参数,new addr[]代表对角交织信息位的新地址,STEP是具有整数值并用于对来自跳跃 位置的数据进行移位的步进参数,并且i是指数。
14.如权利要求12所述的turbo编码器,其中所述循环移位交织器包括:
一循环移位交织表,用于存储对应于输入帧大小的跳跃和步进信息;
一循环移位交织控制器,用于按照所述跳跃和步进信息,由下式生成要 用在帧的信息位的循环移位交织中的地址:
    d=GCD(P,SIZE);
      for(k-j=0;j<d;j++)
        for(i=0;i<SIZE/d;i++,k++)
          new addr[k]=((p*i+STEP)+j)mod SIZE
其中,SIZE是要被交织的帧数据的大小,p是用于循环移位交织的跳跃 参数,i、j和k是指数,new addr[]代表对角交织信息位的新地址,并且STEP 是具有整数值并用于将来自跳跃位置的数据进行移位的步进参数。
15.一种turbo编码器,包括:
多个分量编码器,用于对输入信息位进行解码;
一交织器,连接到所述分量编码器之一的输入端,用于交织所述信息位;
与所述分量编码器同样多的尾部位生成器,用于生成用于终止输入信息 位的帧的帧终止信号的尾部位;
第一穿孔器,用于对所述输入信息位穿孔;及
第二穿孔器,用于对所述分量编码器的输出穿孔。
16.如权利要求15所述的turbo编码器,其中所述交织器包括一对角交 织器。
17.如权利要求15所述的turbo编码器,其中所述交织器包括一循环移 位交织器。
18.一种循环移位交织方法,包括以下步骤:
接收代表输入信息大小的信号;
确定对应于所述输入信息大小的跳跃参数;及
按照确定的跳跃参数,利用至少一个循环的信息位对输入信息位执行循 环移位交织。
19.如权利要求18所述的循环移位交织方法,其中所述循环移位交织 基于下式来完成:
    for(i=0;i<SIZE;i++)
      new addr[i]=(p*i+STEP)mod SIZE
其中,SIZE是要被交织的输入信息的大小,p是用于循环移位交织的跳 跃参数,STEP是具有整数值并用于对来自跳跃位置的数据进行移位的步进 参数,new addr[]代表对角交织信息位的新地址,并且i是指数。
20.如权利要求18所述的循环移位交织方法,其中所述循环移位交织 基于下式来完成:
    d=GCD(p,SIZE);
      for(k-j=0;j<d;j++)
        for(i=0;i<SIZE/d;i++,k++)
          new addr[k]=(p*i+STEP)+j)mod SIZE
其中,SIZE是要被交织的输入信息的大小,p是用于循环移位交织的跳 跃参数,new addr[]代表对角交织信息位的新地址,GCD是最大公分母,i、 j和k是指数,并且STEP是具有整数值并用于对来自跳跃位置的数据进行 移位的步进参数。
21.一种turbo编码器,包括:
多个分量编码器,用于对输入信息位进行编码;及
一循环移位交织器,它被连接到所述分量编码器之一的输入端并具有对 应于要被交织的输入信息的大小的跳跃参数,用于确定对应于输入信息的大 小的跳跃参数并且对所述信息位执行循环移位交织。
22.如权利要求21所述的turbo编码器,其中所述循环移位交织器包括:
一循环移位交织表,用于存储对应于要被交织的输入信息的大小的跳跃 参数;
一循环移位交织控制器,用于按照所述跳跃参数,由下式生成用于对输 入信息位进行循环移位交织的地址:
    for(i=0;i<SIZE,i++)
      new addr[i]=(p*i+STEP)mod SIZE
其中,SIZE是要被交织的输入信息的大小,p是用于循环移位交织的跳 跃参数,new addr[]代表对角交织信息位的新地址,i是指数,并且STEP是 具有整数值并用于对来自跳跃位置的数据进行移位的步进参数。
23.如权利要求22所述的turbo编码器,其中所述循环移位交织器包括:
一循环移位交织表,用于存储对应于要被交织的输入信息的大小的跳跃 参数;
一循环移位交织控制器,用于按照所述跳跃参数,由下式生成用于输入 信息位的循环移位交织中的地址:
    d=GCD(P,SIZE);
      for(k-j=0;j<d;j++)
        for(i=0;i<SIZE/d;i++,k++)
          new addr[k]=((p*i+STEP)+j)mod SIZE
其中,SIZE是要被交织的输入信息的大小,p是用于循环移位交织的跳 跃参数,STEP是具有整数值并用于对来自跳跃位置的数据进行移位的步进 参数,new addr[]代表对角交织信息位的新地址,GCD是最大公分母,并且 i、j和k是指数。
24.一种turbo编码器,包括:
多个分量编码器,用于对输入信息位进行编码;
一交织器,连接到所述分量编码器之一的输入端,用于对所述输入信息 位进行交织;
第一穿孔器,用于对所述输入信息位穿孔;及
第二穿孔器,用于对所述分量编码器的输出穿孔以便控制数据传输率。
25.一种用在包括第一分量编码器和第二分量编码器的信道编码器中的 信道编码方法,包括以下步骤:
输出输入信息;
由所述第一分量编码器生成所述输入信息的第一奇偶校验位;
在相应于所述输入信息的大小的列和行矩阵中对角交织所述输入信息;
由所述第二分量编码器生成所述输入信息的第二奇偶校验位。
26.如权利要求25所述的信道编码方法,其中所述对角交织是基于下 式来实现的:
    for(k=0;k<M*N-1;k++)
        new addr[k]=(M-1-(k mod N))*N+(k mod N)
其中,M和N是列和行的值,M×N是帧大小,new addr[]代表对角交织 信息位的新地址,并且k是指数。
27.如权利要求25所述的信道编码方法,其中所述对角交织是基于下 式来实现的:
    for(j=0;j<M;j++)
      for(i=0;i<N;i++)
        new addr[i+j+N]=i+(M-1-(i+j)mod M)*N
其中,M和N是列和行值,M×N是帧大小,new addr[]代表对角交织信 息位的新地址,并且i和j是指数。
28.如权利要求25所述的信道编码方法,其中所述对角交织是基于下 式来实现的:
    for(j=0;j<M;j++)
      for(i=0;i<N;i++)
        new addr[i+j+N]=i+((i+j)mod M)*N
其中,M和N是列和行的值,M×N是帧大小,new addr[]代表对角交织 信息位的新地址,并且i和j是指数。
29.一种用在包括第一分量编码器和第二分量编码器的信道编码器中的 信道编码方法,包括以下步骤:
输出输入信息;
由所述第一分量编码器生成所述输入信息的第一奇偶校验位;
对所述输入信息执行循环移位交织;
由所述第二分量编码器生成所述输入信息的第二奇偶校验位。
30.如权利要求29所述的信道编码方法,其中所述循环移位交织是按 照相应于所述输入信息的大小的跳跃参数来实现的。
31.如权利要求30所述的信道编码方法,其中所述输入信息的大小和 相应于所述输入信息的大小的跳跃参数被存储。
32.如权利要求29所述的信道编码方法,其中所述循环移位交织是按 照相应于所述输入信息的大小的跳跃参数和输入信息位被排列的顺序来实现 的。
33.如权利要求32所述的信道编码方法,其中所述循环移位交织是利 用通过将所述跳跃参数与所述输入信息位的顺序信息的乘积除以循环大小所 得到余数来实现的。
34.如权利要求33所述的信道编码方法,其中所述循环移位交织是基 于下式来实现的:
    for(i=0;i<SIZE,i++)
      new addr[i]=(p*i+STEP)mod SIZE
其中,i是输入信息位的顺序,p是用于循环移位交织的跳跃参数,STEP 是包括0的开始点,new addr[]代表对角交织信息位的新地址,并且SIZE是 循环大小。
35.如权利要求34所述的信道编码方法,其中所述循环大小等于输入 帧的大小。
36.如权利要求33所述的信道编码方法,其中所述循环移位交织是基 于下式来实现的:
    d=GCD(P,SIZE);
      for(k-j=0;j<d;j++)
        for(i=0;i<SIZE/d;i++,k++)
          new addr[k]=((p*i+STEP)+j)mod SIZE
其中,SIZE是循环大小,p是用于循环移位交织的跳跃参数,STEP是 包括0的开始点,GCD是最大公分母,new addr[]代表对角交织信息位的新 地址,并且i和j是指数。
37.一种信道编码方法,用在包括第一分量编码器和第二分量编码器的 信道编码器中,所述方法包括以下步骤:
输出输入信息;
由所述第一分量编码器生成所述输入信息的第一奇偶校验位;
对所述输入信息进行交织;
由所述第二分量编码器生成所述输入信息的第二奇偶校验位;及
对输出的输入信息穿孔。
38.如权利要求37所述的信道编码方法,其中所述第一和第二奇偶校 验位被进一步穿孔。
39.如权利要求38所述的信道编码方法,其中所述交织是循环移位交 织。
40.如权利要求39所述的信道编码方法,其中所述循环移位交织是按 照相应于所述输入信息的大小的跳跃参数来实现的。
41.如权利要求40所述的信道编码方法,其中所述输入信息的大小和 相应于该输入信息的大小的跳跃参数被存储。
42.如权利要求40所述的信道编码方法,其中所述循环移位交织是按 照相应于所述输入信息的大小的跳跃参数和所述输入信息位被排列的顺序来 实现的。
43.如权利要求42所述的信道编码方法,其中所述循环移位交织是利 用通过将所述跳跃参数与所述输入信息位的顺序信息的乘积除以循环大小所 得到余数来实现的。
44.如权利要求43所述的信道编码方法,其中所述循环移位交织是基 于下式来实现的:
    for(i=0;i<SIZE,i++)
      new addr[i]=(p*i+STEP)mod SIZE
其中,i是输入信息位的顺序,p是用于循环移位交织的跳跃参数,STEP 是包括0的开始点,new addr[]代表对角交织信息位的新地址,并且SIZE是 循环大小。
45.如权利要求44所述的信道编码方法,其中所述循环大小等于输入 帧的大小。
46.如权利要求43所述的信道编码方法,其中所述循环移位交织是基 于下式来实现的:
    d=GCD(P,SIZE);
      for(k-j=0;j<d;j++)
        for(i=0;i<SIZE/d;i++,k++)
          new addr[k]=((p*i+STEP)+j)mod SIZE
其中,SIZE是要被交织的输入信息的大小,p是用于循环移位交织的跳 跃参数,STEP是包括0的开始点,GCD是最大公分母,new addr[]代表对 角交织信息位的新地址,并且i、j和k是指数。
47.如权利要求38所述的信道编码方法,其中所述输入信息和奇偶校 验位在穿孔步骤中被分别穿孔。
48.如权利要求47所述的信道编码方法,其中并非所有的输入信息、 第一奇偶校验位和第二奇偶校验位都在所述穿孔步骤中被穿孔。
49.如权利要求47所述的信道编码方法,其中并非所有的第一奇偶校 验和第二奇偶校验都在所述穿孔步骤中被穿孔。
50.一种信道编码方法,用在包括第一分量编码器和第二分量编码器的 信道编码器中,所述方法包括以下步骤:
输出输入信息;
由所述第一分量编码器生成所述输入信息的第一奇偶校验位;
对所述输入信息进行交织;
由所述第二分量编码器生成所述输入信息的第二奇偶校验位;及
在所述第一和第二分量编码器中生成用于终止存储器的尾部位并且将该 尾部位馈送到所述第一和第二分量编码器中。
51.一种信道编码装置,包括:
第一分量编码器,用于对输入信息进行编码并且生成第一奇偶校验位;
一交织器,用于交织所述输入信息;
第二分量编码器,用于对所述交织的信息进行编码并且生成第二奇偶校 验位;
一控制器,用于控制所述交织器以便执行对角交织。
52.如权利要求51所述的信道编码装置,其中所述交织器以相应于输 入信息的大小的列和行矩阵对所述输入信息进行对角交织。
53.如权利要求52所述的信道编码装置,其中所述对角交织是基于下 式来实现的:
    for(k=0;k<M*N-1;k++)
        new addr[k]=(M-1-(k mod N)*N+(k mod N)
其中,M和N是列和行的值,M×N是帧大小,new addr[]代表对角交织 信息位的新地址,并且k是指数。
54.如权利要求52所述的信道编码装置,其中所述对角交织是基于下 式来实现的:
    for(j=0;j<M;j++)
      for(i=0;i<N;i++)
        new addr[i+j+N]=i+(M-1-(i+j)mod M)*N
其中,M和N是列和行的值,M×N是帧大小,GCD是最大公分母,new addr[]代表对角交织信息位的新地址,并且i和j是指数。
55.如权利要求52所述的信道编码装置,其中所述对角交织是基于下 式来实现的:
    for(j=0;j<M;j++)
      for(i=0;i<N;i++)
        new addr[i+j+N]=i+((i+j)mod M)*N
其中,M和N是列和行的值,M×N是帧大小,new addr[]代表对角交织 信息位的新地址,并且i和j是指数。
56.一种信道编码装置,包括:
第一分量编码器,用于对输入信息进行编码并且生成第一奇偶校验位;
一交织器,用于对所述输入信息执行循环移位交织;及
第二分量编码器,用于对所述交织的信息进行编码并且生成第二奇偶校 验位。
57.如权利要求56所述的信道编码装置,其中所述循环移位交织是按 照对应于所述输入信息的大小的跳跃参数来实现。
58.如权利要求57所述的信道编码装置,其中所述输入信息的大小和 相应于所述输入信息的大小的跳跃参数被存储。
59.如权利要求57所述的信道编码装置,其中所述循环移位交织是按 照相应于所述输入信息的大小的跳跃参数和所述输入信息位排列的顺序来实 现的。
60.如权利要求59所述的信道编码装置,其中所述循环移位交织是利 用通过将所述跳跃参数与所述输入信息位的顺序信息的乘积除以循环大小所 得到余数来实现的。
61.如权利要求60所述的信道编码装置,其中所述循环移位交织是基 于下式来实现的:
    for(i=0;i<SIZE,i++)
      new addr[i]=(p*i+STEP)mod SIZE
其中,i是输入信息位的顺序,p是用于循环移位交织的跳跃参数,STEP 是包括0的开始点,new addr[]代表对角交织信息位的新地址,并且SIZE是 循环大小。
62.如权利要求61所述的信道编码装置,其中所述循环大小与所述输 入信息的大小相等。
63.如权利要求60所述的信道编码装置,其中所述循环移位交织是基 于下式来实现的:
    d=GCD(P,SIZE);
      for(k-j=0;j<d;j++)
        for(i=0;i<SIZE/d;i++,k++)
        new addr[k]=((p*i+STEP)+j)mod SIZE
其中,SIZE是循环大小,p是用于循环交织的跳跃参数,STEP是包括 0的开始点,GCD是最大公分母,new addr[]代表对角交织信息位的新地址, 并且i、j和k是指数。
64.一种信道编码装置,包括:
输出装置,用于输出输入信息;
第一分量编码器,用于对所述输入信息进行编码并且生成第一奇偶校验 位;
一交织器,用于对所述输入信息进行交织;
第二分量编码器,用于对所述交织的信息进行编码并且生成第二奇偶校 验位;及
一穿孔器,用于所述输出装置的输出。
65.如权利要求64所述的信道编码装置,还包括用于对所述第一和第 二奇偶校验位进行穿孔的第二穿孔器。
66.如权利要求64所述的信道编码装置,其中所述交织器是循环移位 交织器。
67.如权利要求64所述的信道编码装置,其中所述交织器按照相应于 所述输入信息的大小的跳跃参数执行循环移位交织。
68.如权利要求67所述的信道编码装置,其中所述交织器具有用于存 储所述输入信息的大小和相应于所述输入信息的大小的跳跃参数的装置。
69.如权利要求67所述的信道编码装置,其中所述交织器基于相应于 所述输入信息大小的所述跳跃参数和所述输入信息的顺序来执行循环移位交 织。
70.如权利要求69所述的信道编码装置,其中所述循环移位交织是利 用通过将所述跳跃参数与所述输入信息位的顺序信息的乘积除以循环大小所 得到余数来实现的。
71.如权利要求70所述的信道编码装置,其中所述循环移位交织是基 于下式来实现的:
    for(i=0;i<SIZE;i++)
      new addr[i]=(p*i+STEP)mod SIZE
其中,i是输入信息位的顺序,p是用于循环移位交织的跳跃参数,STEP 是包括0的开始点,new addr[]代表对角交织信息位的新地址,并且SIZE是 循环大小。
72.如权利要求71所述的信道编码装置,其中所述循环大小与所述输 入信息的大小相等。
73.如权利要求70所述的信道编码装置,其中所述循环移位交织是基 于下式来实现的:
    d=GCD(P,SIZE);
      for(k-j=0;j<d;j++)
        for(i=0;i<SIZE/d;i++,k++)
          new addr[k]=((p*i+STEP)+j)mod SIZE
其中,SIZE是循环大小,p是用于循环交织的跳跃参数,STEP是包括 0的开始点,GCD是最大公分母,new addr[]代表对角交织信息位的新地址, 并且i、j和k是指数。
74.如权利要求65所述的信道编码装置,其中所述输入信息位和所述 奇偶校验位被分别穿孔。
75.如权利要求65所述的信道编码装置,其中并非所有的输入信息、 第一奇偶校验位和第二奇偶校验位都被穿孔。
76.如权利要求75所述的信道编码装置,其中并非所有的第一奇偶校 验位和第二奇偶校验位都被穿孔。

说明书全文

发明涉及用于通信系统的自适应(adaptive)信道编码方法和装置,尤其 涉及在声音和数据的传输中使用的自适应编码方法和装置。

                    相关技术的描述

带有两个简单的分量(或组成)(simple component(or constituent))编码器 的、以并行或串行结构构成的turbo编码器从输入的N信息位中产生奇偶 校验符号。Turbo编码器将递归系统卷积(recursive systematic convolutional, RSC)代码用作分量(或组成)代码。

图1是由Berrou在美国专利NO.5,446,747中公开的一种传统的并行turbo 编码器的方框图。在图1的turbo编码器中,交织器12置于第一和第二分量 编码器11和13之间。该交织器12的大小与输入的信息位的帧长N相等, 并修改第二分量编码器13中收到的信息位的顺序以便减小信息位之间的相 关性。图2是一种传统的串行turbo编码器的方框图,该串行turbo编码器 也有在第一和第二分量编码器11和13之间连接的交织器12。

上述卷积编码器产生用于空间通信的turbo代码。尽管分量编码器11和 13中的约束长度K比传统卷积代码的约束长度(即,K=9)要短,但交织器12 使用非常大的存储器,造成了在解码时非常长的时延。

图3也是由Berrou在美国专利NO.5,446,747中公开的一种对图1中所 示的并行卷积编码器的输出进行解码的卷积解码器的方框图。图4是由 Benedetto于1996年6月在IEEE电子信件(IEEE Electronics Letters)第32卷 第13号中的一篇文章中提出的、用于对图2所示的串行turbo编码器的输出 进行解码的卷积解码器的方框图。

图3中的并行卷积解码器通过采用迭代解码算法对帧单元中的输入数据 进行重复解码,有利地改善了关于位错误率(bit error rate,BER)的性能特性。 交织器323在校正第二解码器327中的突发错误模式之前,通过分配没有被 第一解码器319校正的突发错误模式,使错误校正能得以提高。

迭代解码指的是利用产生的外部信息对在特定程序中解码得到的符号进 行重复解码,以便实现极好的解码性能。迭代解码算法是SOVA(软输出Viterbi 算法:见《IEEE车辆技术会刊学报》,1993年5月第941到944页(Soft-Output Viterbi Algorithm:see Proceedings of IEEE Vehicular Technology Conference, pp.941-944,May 1993))和MAP(最大限度的归纳可能性:见《IEEE关于信息 理论的学报》,1996年3月第42卷第二号第429到445页(Maximum Aposteriori Probability:see IEEE Transactions on Information Theory,PP.429-445,Vol.42, No.2,March 1996))。SOVA是对产生软决定输出(soft decision output)的Viterbi 算法进行的改进,并能使代码字(codeword)错误率最小化。另一方面,MAP 能使符号错误率最小化。

在图3的解码器中,当从图1的第一分量编码器11中收到奇偶校验符 号yk时,解穿孔器(depuncturer)313的输出y1k和y2k分别为yk和0,然而当 从图1的第二分量编码器13中收到奇偶校验符号yk时,y1k和y2k分别是0 和yk。Zk+1是在迭代解码算法中用作外部信息的软决定符号(soft decision symbol)和用于下一阶段解码的输入。通过将Zk+1进行硬决定(hard decision) 得到最终所需的符号。Turbo代码的性能取决于交织器的大小、交织器的结 构和迭代解码的次数。

如图1所示,turbo编码器包括交织器12。交织器12使得turbo编码/解 码在帧单元中完成。这样,turbo代码的复杂性与图3所示的第一和第二迭 代解码器319和327所必需的存储器的帧大小(size)与用于第一和第二分量 编码器11和13的分量代码的状态数量的乘积是成比例的。由于Turbo代码 使用非常多的帧,因而并不能应用在声音和数据传输中。为了取得更好的性 能,不断增加用于turbo编码器的分量代码的状态数量,从而增加了第一和 第二分量编码器11和13的复杂性。

由于如图3所示的解码器中发生突发错误,因此第一迭代解码器319的 输出具有相关性,它能妨碍下一解码阶段中第二迭代解码器327中的可靠解 码。因此,在整个(block)中会发生错误而且在下一迭代解码阶段不可能得 到纠正。在这个范围(context),总是不断需要能分配代码的单个帧中的突发 错误的交织器和解交织器(deinterleaver),使迭代解码不再有相关性。

由于具有低相关性的优点,随机交织器改善了turbo代码的性能。然而, 因为随机交织器的帧大小小,所以在无相关性地有效分配突发错误方面存在 局限而且需要查找表。因此,声音传输或低速率数据传输要求有小的帧大小 和数量较小的分量代码状态,以便使时延最小化。声音传输或低速率数据传 输还需要结构化的交织器。总之,由于不能接受分量代码的约束长度和大的 交织器,所以传统的turbo代码在声音和数据传输中是不可行的。尽管如此, 考虑到传统的turbo代码的优点,仍然不断努力实现用于通信系统的编码器 和解码器。

因此,存在对一种具有与传统通信系统中的卷积编码器相同或更高性能 的卷积编码器的需要。还存在对一种具有较少的分量代码状态和最小时延的 极佳性能的交织器的需要。尽管用在turbo编码器中的图1或图2的交织器 12的性能大体上与交织器大小成比例,但是turbo代码的帧大小是有限的。 在这种情况下,最好使用一种使关于块代码的turbo代码的汉明(hamming)距 离最大化的交织器。结构化的交织器能用于小的帧。

                            本发明的概述

因此,本发明的一个目的是提供一种turbo编码方法和装置,它能对通 信系统中的声音和低传输速率数据进行编码。

本发明的另一个目的是提供一种并行或串行turbo编码方法或装置,其 中对交织器用于在通信系统中交织输入数据,而不考虑帧大小为多大。

本发明还有一个目的是提供一种用于在将声音和数据信号编码成turbo 代码的装置中的信道上传输尾部位(tail bit)以及从该尾部位产生的奇偶校验 位的方法和装置。

本发明还有一个目的是提供一种通过在将声音和数据信号编码成turbo 代码的装置中的穿孔数据和奇偶校验信息,对数据传输率进行调整的方法和 装置。

为达到以上目的,提供了一种turbo编码器。该turbo编码器包括多个 用于对输入信息位进行编码的分量编码器,以及连接到所述多个分量编码器 之一的输入端的对角交织器,该对角交织器具有一表,用于存储对应于可变 帧大小的列和行信息、确定对应于输入信息的帧大小的列和行信息、和对信 息位对角交织。

按照本发明的另一方面,提供了一种turbo编码器。该turbo编码器包 括多个用于对输入信息位进行编码的分量编码器,以及连接到所述多个分量 编码器之一的输入端的循环移位交织器,该交织器具有一表,用于存储对应 于可变帧大小的跳跃和步进(hop and step)信息、确定对应于输入信息位的帧 大小的跳跃和步进信息以及对于信息位执行循环移位交织。

按照本发明的另一方面,提供了一种turbo编码器。该turbo编码器包 括多个用于对输入信息位进行编码的分量编码器,连接到所述多个分量编码 器之一的输入端、用于按照帧大小对信息位进行交织的一交织器,以及与分 量编码器一样多的尾部位生成器,这些位生成器对输入到用于终止帧的分量 编码器中的信息位进行分块(blocking)、分析分量编码器中的各存储装置的 值,以及生成尾部位以便终止输入数据的帧。

按照本发明的另一方面,提供了一种turbo编码器。在该turbo编码器 中,多个分量编码器对输入信息位进行编码。一交织器被连接到所述分量编 码器之一的输入端,用于按照帧大小交织信息位。与分量编码器一样多的尾 部位生成器,对输入到用于终止帧的分量编码器的信息位进行分块、分析分 量编码器中的各存储装置的值,并生成尾部位,以便终止输入数据的帧。第 一穿孔器(puncturer)以预定的速率穿孔输入信息位。第二穿孔器以预定的速 率穿孔分量编码器的输出,以便调整编码数据的传输速率。

                       附图的简要描述

通过参照附图详细描述本发明的优选实施例,本发明的以上目的和优点 将会变得更明朗。

图1是传统的并行连接(concatenate)的递归系统编码器的方框图;

图2是传统的串行连接的递归系统编码器的方框图;

图3是传统的并行连接的递归系统解码器的方框图;

图4是传统的串行连接的递归系统解码器的方框图;

图5是按照本发明的第一实施例的连接的剃归系统编码器的方框图;

图6是按照本发明的第二实施例的连接的剃归系统编码器的方框图;

图7是按照本发明的第一实施例的turbo编码器中的对角交织器的方框 图;

图8是表示在图7所示的对角交织器中第一对角交织运算的流程图

图9是按照本发明的第二实施例的turbo编码器中循环移位交织器的方 框图;

图10是表示在图9的循环移位交织器中第一循环移位交织器运算的流 程图;

图11是表示图7所示的交织器中第二循环移位交织运算的流程图;

图12是表示按照本发明的第二实施例,基于随机和块交织器的turbo编 码的特性与基于循环移位交织的turbo编码器的特性的对比的图;及

图13是按照本发明的实施例的turbo编码器的方框图,是指用于描述尾 部位生成和穿孔的方框图。

                   优选实施例的详细描述

为使描述清晰,本发明的实施例将参照并行连接的递归turbo编码器进 行描述,诸如串行递归turbo编码器的其它结构将被考虑。图5和6是按照 本发明的实施例的turbo编码器的方框图。类似于图1和图2的分量编码器, 编码器410和420是用于将输入信息位dk编码成奇偶校验符号Yk的分量编 码器。对角交织器432和循环移位交织器434是本发明的特征,并且在不特 指某一种的情况下将被称为交织器430。

参照图5和6,信息位dk被同时输入到第一分量编码器410和交织器 430。交织器430将修改排列好的信息位的顺序并且最好使相应于信息位dk 的编码输出顺序(Xk,Yk)的最小汉明距离最大化。因为数据中加入了CRC(循 环冗余检查)位和其它控制位,输入到信道编码器的数据帧的长度是可变的。 基于帧大小和交织器大小的区别,为强性固定数据帧的长度,应该加入空白 比特。但是,因为这些空白比特与提高系统性能无关,因此最好减少这些空 白比特。这样,交织器430提供了极好的性能和可靠的运算,而不管与帧大 小相关的参数。

图7是分别在图5和图6中所示的对角交织器432和循环移位交织器434 的方框图。对角和循环移位交织器432和434在接收到信息位时分析其相应 的可变帧大小,并且按照帧大小分析结果,用从系统控制器接收的与交织器 有关的参数来对输入信息位执行最优化交织。在对本发明的实施例的描述 中,对角交织器432和循环移位交织器434被结合成一体,然而,turbo编 码器可特别地分别使用对角交织器或循环移位交织器。在下文中,对角交织 器432和循环移位交织器434被称为交织器430。

参照图7,寄存器511存储从系统控制器(未示出)接收的帧大小信号和 交织器类型信号。对角交织表513存储矩阵中的列数和行数M和N,该矩 阵能使关于对角交织中的帧大小得到最佳的对角交织特征。即,它存储了测 定的、能使带有可变帧大小的信息位对角交织最佳的M×N值。对角交织表 513输出对应于从寄存器511接收到的帧大小信号的M×N值。对角交织控 制器517接收来自对角交织表513的M×N值并且以指定的交织方法生成用 于交织信息位的读地址。

在循环移位交织的情况下,循环移位交织表515存储能使关于信息位的 帧大小的循环移位交织特征最佳的跳跃参数P和步进参数STEP。跳跃参数 P和步进参数STEP是经验测定的。循环移位交织表513输出对应于从寄存 器511接收的帧大小信号的参数P和STEP。循环移位交织控制器519接收 来自循环移位交织表515的参数P和STEP并且以指定的循环移位交织方法 生成用于对信息位进行交织的读地址。多路复用器521接收来自对角交织控 制器517和循环移位交织控制器519的读地址并且按照从寄存器511接收的 交织类型符号选择其中的一种。存储器523顺序接收信息位并且以交织顺序 输出存储在从多路复用器521接收到的读地址上的信息位。存储器523设计 的大小应足以容纳带有最大可变帧大小的信息位。

对于图7中仅有对角交织器432的结构,包括寄存器511、对角交织表 513、对角交织控制器517和存储器523。另一方面,对于图7中仅有循环 移位交织器434的结构,包括寄存器511、循环移位交织表515、循环移位 交织控制器519和存储器523。如果仅使用一种类型的交织,这两种情况都 不需多路复用器521和交织器类型信号。

对角交织表513和循环移位交织表515可由类似于ROM或RAM的存 储器或组合的逻辑装置组成。利用组合的逻辑装置或数字信号处理器,能实 现对角交织控制器517和循环移位交织控制器519。

图8和图9是典型的对角交织的流程图,而图10和图11是典型的循环 移位交织的流程图。作为示例将在下文描述的交织器,包括输入缓冲器

参照图7所示的交织器430的结构,将在下文中描述第一到第三对角交 织运算。

图8是第一对角交织运算的流程图。在图8中,第一对角交织包括在M×N 矩阵中重新排列输入位顺序的过程。对于第一对角交织,在步骤611,在接 收到信息位dk时,该信息位将被存储在用于在存储器523(图7)中顺序存储 信息位的地址old addr[k]处,并且确定数据帧的大小k。接着,在步骤613, 确定用于对角交织的数据帧的列和行参数M×N。即,为实现对角交织,要 基于输入的帧数据大小k从对角交织表指定M×N值。按照输入帧大小k, 可在查找表中存储多个M×N值以供选择。另一方面,按照输入帧大小k, 可计算最佳的M×N值。在步骤615,决定M和N的最大公约数(greatest common divisor,GCD)是否为1。在步骤617,当M和N的GCD为1时,第 一对角交织地址如下运算。

for(k=0;k<M*N-1;k++)

    new addr[k]=(M-1-(k mod N))*N+(k mod N)  ......(1)

随着如公式(1)那样对输出缓冲器中的地址的指定,存储在输入缓冲器中 的输入信息位被交织并且存储在输出缓冲器中。

如果M和N的GCD不是1,即在步骤615中[GCD(M,N)≠1],将在步 骤619中确定交织失败并且中断程序。

在第一对角交织中,假定存储在old addr[k]中的、M=6和N=5的数据 顺序为{0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29},那么存储在输出缓冲器中的new_addr[k]中的第一对角交织器输出顺 序为{25 21 17 13 9 0 26 22 18 14 5 1 27 23 19 10 6 2 28 24 15 11 7 3 29 20 16 12 8 4}。

输入数据和第一对角交织输出以M×N矩阵列表如下。

[表1]

输入顺序(M=6,N=5)                                   交织顺序(M=6,N=5)

  0  1  2  3  4                                          25  21  17  13  9

  5  6  7  8  9                                          0   26  22  18  14

  10 11 12 13 14                                         5   1   27  23  19

  15 16 17 18 19                                         10  6   2   28  24

  20 21 22 23 24                                         15  11  7   3   29

  25 26 27 28 29                                         20  16  12  8   4

然而,以上的第一对角交织仅当M和N的GCD为1的情况下是可行 的。当GCD(M,N)≠1时,例如,M=6,N=6时,第一对角交织是不可能的 并且相同的数据被重写为如表2所示。

[表2]

输入顺序(M=6,N=6)                                     交织顺序(M=6,N=6)

0   1   2   3   4   5                                       30  25  20  15  10  5

6   7   8   9   10  11                                      30  25  20  15  10  5

12  13  14  15  16  17                                      30  25  20  15  10  5

 18  19  20  21  22  23                       30  25  20  15  10  5

 24  25  26  27  28  29                       30  25  20  15  10  5

 30  31  32  33  34  35                       30  25  20  15  10  5

第二和第三对角交织包括用于改变以M×N矩阵表示的输入信息位顺序 的过程,并且不管GCD(M,N)=1或≠1都能使输入数据进行交织。

图9是第二对角交织运算的流程图。参照图9,第二对角交织对M×N 矩阵中的输入位重新排序并且可应用在GCD(M,N)=1和GCD(M,N)≠1的 两种情况下。在第二对角交织中,当信息位dk被输入时,在步骤631中,信 息输入位被存储在地址old addr[k]处,并且确定帧大小。在步骤633中,用 于对角交织的列和行参数(M×N)得以确定。在步骤635中,第二对角交织地 址是这样运算的:

for(j=0;j<M;j++)

  for(i=0;i<N;i++)

    new addr[i+j+N]=i+(M-1-(i+j)mod M)*N    .......(2)

其中i和j递增帧的存储单元。

随着如公式(2)那样对输出缓冲器中的地址的指定,存储在输入缓冲器中 的信息位被交织并存储在输出缓冲器中。

对应于M=6,N=5和GCE(M,N)=1的输入顺序的第二对角交织输出如表 3所示。

[表3]

输入顺序(M=6,N=5)                             交织顺序(M=6,N=5)

  0   1   2   3   4                                 25  21  17  13  9

  5   6   7   8   9                                 20  16  12  8   4

  10  11  12  13  14                                15  11  7   3   29

  15  16  17  18  19                                10  6   2   28  24

  20  21  22  23  24                                5   1   27  23  19

  25  26  27  28  29                                0   26  22  18  14 另外,M=6,N=6及GCD(M,N)≠1的输入顺序的交织如表4所示。

[表4] 输入顺序(M=6,N=6)                               交织顺序(M=6,N=6)   0  1   2   3   4   5                             30  25  20  15  10  5

  6  7  8  9  10 11                              24  29  14  9  4  35

  12 13 14 15 16 17                              18  13  8   3  34 29

  18 19 20 21 22 23                              12  7   2   33 28 23

  24 25 26 27 28 29                              6   1   32  27 22 17

  30 31 32 33 34 35                              0   31  26  21 16 11

在第三对角交织中,对角交织控制器517由下式实现。

 for(j=0;j<M;j++)

   for(i=0;i<N;i++)

     new addr[i+j+N]=i+((i+j)mod M)*N    .......(3)

输入顺序存储在映射存储器的地址处,然后由对角交织器432按列或行 顺序读取。否则,输入顺序以列或行存储在存储器中并且由对角交织器432 逐位从地址中读取。

解交织是以相反于交织输入数据的顺序来实现的。

图10是由循环移位交织器434实现的第一循环移位交织的流程图。第 一循环移位交织运算是在将输入顺序视为循环的情况下,在预定间隔中的数 据重新排序过程。不管其长度是多大,第一循环移位交织运算都能交织输入 顺序。

参照图10,在步骤711,输入信息位dk被存储在输入缓冲器的地址 old_addr[k]处,并且确定帧大小。在步骤713,参数P和STEP得以确定。 这里,P是确定循环移位交织器性能的跳跃间隔参数,这样根据经验可得到 其值从而取得最佳的效果。另外,STEP是用于将跳跃了P值的位置处的数 据向左或右移位,并且是整数值。然后,在步骤715将确定P和SIZE的GCD 是否为1。在步骤717,当GCD(P,SIZE)=1时,将由下式计算出第一循环移 位交织地址:

for(i=0;i<SIZE;i++)

  new addr[i]=(p*i+STEP)mod SIZE    ......(4)

其中,i是表示输入数据的帧大小的参数,或者表示小于输入数据帧大 小的帧大小的参数,其范围从0到SIZE,即,它是地址的数目,SIZE是帧 大小,p是满足GCD(SIZE,P)=1的自然数,以及STEP是整数并且表示开始 点。  

例如,对应于存储在输入缓冲器的new_addr[k]中的、SIZE=30的输入 顺序的第一循环移位交织输出存储在缓冲器的new_addr[k]中,即,如果P=11 且STEP=0,则{0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29}是{0 11 22 3 14 25 6 17 28 9 20 1 12 23 4 15 26 7 18 29 10 21 2 13 24 5 16 27 8 19}。输入顺序和第一循环移位交织输出顺序用表表示为:

[表5]

输入顺序(M=6,N=5)                       交织顺序(M=6,N=5,p=11)

  0   1   2   3    4                        0    11   22   3    14

  5   6   7   8    9                        25   6    17   28   9

  10  11  12  13   14                       20   1    12   23   4

  15  16  17  18   19                       15   26   7    18   29

  20  21  22  23   24                       10   21   2    13   24

  25  26  27  28   29                       5    16   27   8    19

然而,如果GCD(SIZE,p)≠1且p=6,那么第一循环移位交织会因相同 的数据被重写而不再可行。

假定用于输入顺序的SIZE=30存储在初始存储器的顺序地址odd_addr[k] 中,P=11且STEP=0,则相应于图10的第一循环移位交织的交织结果用M×N 矩阵表示如下:

[表6]

输入顺序(M=6,N=5)                         交织顺序(M=6,N=5,p=6)

 0   1   2   3   4                               0   6   12  18  24

 5   6   7   8   9                               0   6   12  18  24

10  11  12  13  14                               0   6   12  18  24

15  16  17  18  19                               0   6   12  18  24

20  21  22  23  24                               0   6   12  18  24

25  26  27  28  29                               0   6   12  18  24

如图11所示,第二循环交织方案包括允许在GCD(SIZE,p)≠1的情况 下进行交织。第二循环移位交织是数据重组过程,其中输入顺序被视为d× SIZE/d的矩阵,行被第一循环移位交织,而列被块交织(block interleaved)。

图11是第二循环移位交织的流程图,它在GCD(SIZE,p)=1或≠1的情 况都可被应用。在第二循环移位交织运算中,在步骤721,输入信息位被存 储在存储器的顺序地址odd addr[k]处并且大小将得到确定。这里,SIZE是 表示输入数据的大小的参数。在步骤723,确定用于循环移位交织的参数P 和STEP。在步骤725,第二循环移位交织地址将由公式(5)取得。

d=GCD(P,SIZE);

  for(k-j=0;j<d;j++)

    for(addr[k]=((p*i+STEP)+j)mod SIZE    ......(5)

其中,i和k介于0和SIZE之间,j是地址参数,其范围从0到d,P 是用于实现循环移位交织的跳跃参数,以及STEP是通过将放置在P设定的 位置中的数据移位到左或右来决定开始点的参数。

公式(5)中,(P×i+STEP)代表循环移位交织运算而j表示块交织运算。 SIZE是输入数据的大小,p是自然数,而STEP是整数。

当SIZE=30且P=11时,第二循环移位交织输出以M×N表示为:

[表7]

输入顺序(M=6,N=5)                            交织顺序(M=6,N=5,p=11)

  0  1  2  3  4                                    0   11  22  3   14

  5  6  7  8  9                                    25  6   17  28  9

  10 11 12 13 14                                   20  1   12  23  4

  15 16 17 18 19                                   15  26  7   18  29

  20 21 22 23 24                                   10  21  2   13  24

  25 26 27 28 29                                   5   16  27  8   19

它与表6的顺序相同。然而当GCD(SIZE,p)≠1时,

[表8]

输入顺序(M=6,N=5)                           交织顺序(M=6,N=5,p=15)

  0  1  2  3  4                                   0   15  1   16  2

  5  6  7  8  9                                   17  3   18  4   19

  10 11 12 13 14                                  5   20  6   21  7

  15 16 17 18 19                                  22  8   23  9   24

  20 21 22 23 24                                  10  25  11  26  12

  25 26 27 28 29                                  27  13  28  14  29

在输入顺序存储在映射存储器的地址后,由循环移位交织器按列或行顺 序读取数据。否则,输入顺序将按列或行顺序存储在存储器中并且随后从地 址中逐位读取。

解交织器以相反于交织输入数据的顺序来实现。

图12是表示按照本发明的第二实施例的并行连接的turbo编码器中循环 移位交织器的性能。在K=3、输入104位帧、8个迭代解码、BPSK(Bi-Phase Shift Key,双相移位键)调制和AWGN(Additive White Gaussian Noise,附加白 高斯噪声)的分量代码的条件下,大量使用的块和随机交织器与循环移位交 织器就BER相互比较。从图12得知,在BER为10-5情况下,循环移位交 织器的Eb/No是3dB,而块交织器的Eb/No是3.4dB。因此,可以推断循环 移位交织器在性能上优于块交织器0.4dB。

图13是按照本发明的实施例的turbo编码器的方框图。

参照图13,第一分量编码器410例如以K=3对输入信息位进行编码。 交织器430以预定的方法对信息位进行交织以便修改信息位的顺序。交织器 430可按图7所示的那样构造。在这种情况下,可以实现第一到第三对角交 织和第一到第三循环移位交织中的一种。第二分量编码器420例如以K=3 对交织器430的输出进行编码。

第一尾部位生成器450包括:第一切换器(switch)455,连接到第一分量 编码器410的输入端;异或451,用于对第一分量编码器410的存储器412 和413的输出进行异或运算;以及位生成器453,用于按照异或门451的输 出生成用于终止帧的信号、并且将该信号施加到第一切换器455。在第一尾 部位生成器450中,当一帧终止时,第一切换器455连接到第一分量编码器 410并生成帧终止信号。第二尾部位生成器460包括:第二切换器465连接 到第二分量编码器420的输入端;异或门461,用于对第二分量编码器420 的存储器422和423的输出进行异或运算;以及位生成器463,按照异或门 461的输出,生成帧终止信号且将该信号施加到第二切换器465。在第二尾 部位生成器460中,当一帧终止时,第二切换器465连接到第二分量编码器 420并生成帧终止信号。

第一穿孔器470对信息位穿孔。第二穿孔器480对从第一和第二分量编 码器410和420接收的编码数据进行穿孔。第一和第二穿孔器470和480用 于调整数据传输率。多路复用器491对位生成器453和463的输出进行多路 复用。当一帧终止时,第三切换器493将从多路复用器491接收的尾部位切 换到传输信道。

第一和第二尾部位生成器450和460分别生成用于终止第一和第二分量 编码器410和420的运算的尾部位。第一和第二穿孔器470和480的功能是 将传输率调整到可接受的平。

参照图13,turbo代码含有用于终止分量编码器410和420的尾部位。 在这里,因为turbo代码的分量代码是系统化的,所以即便是如同在非系统 化的卷积代码中那样输入连续的0,分量编码器410和420的存储器412和 413、以及422和423都不被初使化。为了将最接近输入的存储器中的值设 为0,第一和第二分量编码器410和420得利用尾部位生成器将反馈值的和 输入到存储器中。因此,turbo编码器需要与每个分量编码器的存储器一样 多的尾部位。第一和第二切换器455和465基于尾部位的生成而进行切换。 接着,从尾部位生成的奇偶校验位从第一和第二分量编码器410和420施加 到第二穿孔器480中,并且从尾部位器生成的尾部位被第三切换器493切换, 以作为信息位Xk输出。

最好将传输率设定成2的幂,以便减小硬件的复杂性。然而,在使用具 有1/2的代码率(code rate)的turbo代码时,384kps的传输率不可能是2的幂。 在这种情况下,1/2 turbo代码被穿孔成3/8 turbo代码。特别地,在144kps 的情况下,1/2 turbo代码被穿孔成9/16 turbo代码。9/16穿孔矩阵典型地表 示为:

  [表9]

信息位                                           111111111111111111

RSC1                                             100101001010010010

RSC2                                             010010010100101001

  [表10]

信息位                                           111011110111011110

RSC1                                             101010101010101010

RSC2                                             010101010101010101

在表9和表10中,信息位是dk,它被施加到第一穿孔器470,而RSC1 是奇偶校验位,它从第一分量编码器410施加到第二穿孔器480。在这里, 表9典型地表示了从分量编码器410和420输出的奇偶校验位的穿孔。这种 情况下,有几个相应于奇偶校验位的连续的0。即,当奇偶校验位被穿孔以 便调整传输率时,如同表9中下划线所表示的那样,0连续地出现了。然而, 由于每个分量编码器410和420中有两个存储器,除非连续传输两个或更多 的奇偶校验位,否则就会产生严重错误。因此,在本发明中信息位如表10 中那样被穿孔。表10表示与表9中的穿孔矩阵不同之处在于9/16穿孔矩阵 中连续地传输了两个或更多的奇偶校验位。而且,由于迭代解码的次数增加, turbo代码的性能得到了提高。

按照本发明以上的描述,turbo代码由于时延不能用于通信系统中的声 音和数据传输,却可通过引入具有减小的大小的交织器而被应用在声音和数 据传输中,且表现出相对于turbo编码器中的turbo代码的优良性能。而且, 具有优良性能的交织器减少了turbo编码器中的分量编码器的状态数量,从 而又降低了解码器的复杂性。另外,按照本发明以上描述的一个实施例,通 过穿孔输入信息,可提供多种编码率。

尽管对本发明已经参照特定的实施例进行了详细描述,但这仅仅是示例 性的应用。因此,应该清楚地知道,在由所附权利要求提出的本发明的范围 和精神下,可由本领域的普通技术人员对其作各种修改。

                        发明背景

QQ群二维码
意见反馈