CN1262071C - 码分多址移动通信***中的编码/解码设备和方法 - Google Patents

码分多址移动通信***中的编码/解码设备和方法 Download PDF

Info

Publication number
CN1262071C
CN1262071C CNB028011953A CN02801195A CN1262071C CN 1262071 C CN1262071 C CN 1262071C CN B028011953 A CNB028011953 A CN B028011953A CN 02801195 A CN02801195 A CN 02801195A CN 1262071 C CN1262071 C CN 1262071C
Authority
CN
China
Prior art keywords
code
input information
code symbols
symbol stream
symbols
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
Application number
CNB028011953A
Other languages
English (en)
Other versions
CN1461529A (zh
Inventor
金宰烈
崔虎圭
张在成
金尹善
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from KR10-2001-0015787A external-priority patent/KR100464364B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1461529A publication Critical patent/CN1461529A/zh
Application granted granted Critical
Publication of CN1262071C publication Critical patent/CN1262071C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/0007Code type
    • H04J13/004Orthogonal
    • H04J13/0048Walsh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/10Code generation
    • H04J13/102Combining codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing
    • H04L1/0069Puncturing patterns
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明提供了在移动通信***中,接收4个输入信息位、利用长度为16的不同Walsh码编码4个输入信息位、和利用具有由XOR运算器对编码输入信息位进行异或运算获得的16个编码码元的编码码元流,输出具有24个编码码元的编码码元流的编码方法。该编码方法包括重复具有16个编码码元的编码码元流一次,从而输出具有32个编码码元的编码码元流;和从32个编码码元中收缩第0、1、2、3、4、5、6和16码元,从而输出具有24个编码码元的编码码元流。

Description

码分多址移动通信***中的编码/解码设备和方法
技术领域
本发明一般涉及CDMA(码分多址)移动通信***中的编码/解码设备和方法,尤其涉及发送用在同步移动通信***中的反向速率指示符信道(R-RICH)的设备和方法。
背景技术
一般说来,反向辅助信息(R-SCH)基本上支持可变速率传输方案。在“可变速率传输方案”中,移动台任意改变它的传输速率。通常,数据速率的改变引起用在构造帧中的纠错码的代码率、码元重复频率、和用于扩展的Walsh(沃尔什)码的长度和类型的改变。因此,移动台应该把当前发送的反向辅助信道的数据速率通知基站,以便基站接收器能够正确地接收反向辅助信道。为了这个用途而定义的信道被称为反向速率指示符信道(R-RICH)。
移动台可以在反向辅助信道上发送数据的可用数据速率的数量取决于移动台同时可以使用的可用反向辅助信道的个数。反向辅助信道的个数由基站在呼叫建立期间考虑了要在反向链路上发送的数据量之后确定下来,然后向移动台报告。因此,要在反向速率指示符信道上发送的信息位数随反向辅助信道的个数而改变。也就是说,当反向辅助信道的个数是1时,移动台利用4个位通知反向数据速率。并且,当反向辅助信道的个数是2时,移动台利用7个位通知反向数据速率。由于可同时供移动台使用的可用反向辅助信道的个数在从基站接收到单独命令之前是不能改变的,因此,移动台在反向速率指示符信道上发送4-位信息或7-位信息。也就是说,移动台决不会发送4-位信息和7-位信息两者。传统上,把(24,4)和(24,7)代码称为要用在反向速率指示符信道中的纠错码。
图1显示了R-RICH发送器的结构。参照图1,编码器100编码4-位或7-位输入速率指示符,并且输出24个编码码元。码元重复器110重复编码器100提供的24个编码码元16次。信号映射器120对从码元重复器110输出的编码码元进行信号映射,把0映射成1和把1映射成-1。扩展器130扩展经信号映射的码元。
如图1所示,具有4个位或7个位的速率指示符在发送之前被编码成24个编码码元。当在发送编码成编码码元的速率指示符期间出现错误时,速率指示符可能不正确地指示相应反向辅助信道的代码率、码元重复频率、和扩展Walsh码的长度和类型。结果是,接收器不能正确地接收分析反向辅助信道。因此,速率指示符应该由性能好的(24,4)或(24,7)编码器来编码。另外,应该尽可能快地解码速率指示符,以便分析相应的辅助信道。
发明内容
因此,本发明的一个目的是提供一种性能最佳的速率指示符编码设备和方法。
本发明的另一个目的是提供一种复杂度最低的速率指示符编码设备和方法。
本发明的另一个目的是提供一种通过利用收缩扩充一阶Reed-Muller(里德-缪勒)码,以便在解码过程中进行快速Hadamard(哈达玛)逆变换的方法,使硬件复杂度降到最低的设备和方法。
本发明的另一个目的是提供一种通过利用收缩扩充一阶Reed-Muller码,以便在解码过程中进行快速Hadamard(哈达玛)逆变换的方法,使用最佳码字的设备和方法。
本发明的另一个目的是提供一种通过在收缩之前,使正交码的长度最短,使硬件复杂度降到最低的设备和方法。
本发明的另一个目的是提供一种不仅通过收缩扩充正交码使硬件复杂度降到最低,而且生成在纠错性能方面最佳的代码的设备和方法。
本发明的另一个目的是提供一种使硬件复杂度降到最低,和既能进行(24,4)编码又能(24,7)编码,以便生成在纠错性能方面最佳的代码的设备和方法。
按照本发明的一个方面,本发明提供了一种编码码元***的编码方法,接收4个输入信息位,利用长度为16的不同Walsh码编码4个输入信息位,和利用具有由XOR(异或)运算器对编码输入信息位进行异或运算获得的16个编码码元的编码码元流,输出具有24个编码码元的编码码元流。该编码方法包括重复具有16个编码码元的编码码元流一次;和从32个编码码元中收缩第0、1、2、3、4、5、6和16码元,从而输出具有24个编码码元的编码码元流。
按照本发明的另一个方面,本发明提供了一种编码码元***的编码方法,接收7个输入信息位,利用长度为32的不同Walsh码和长度为32的不同掩码编码7个输入信息位,和利用具有由XOR运算器对编码输入信息位进行异或运算获得的32个编码码元的编码码元流,输出具有24个编码码元的编码码元流。该编码方法包括从32个编码码元中收缩第0、4、8、12、16、20、24和28码元,从而输出具有24个编码码元的编码码元流。
按照本发明的另一个方面,本发明提供了一种编码码元***的编码设备,接收4或7个输入信息位,利用长度都为16或32的不同Walsh码或掩码编码4或7个输入信息位,和输出具有24个编码码元的编码码元流。该编码设备包括控制器,用于确定输入信息位数是4还是7,和根据确定结果控制编码操作;Walsh码发生器,用于在控制器的控制下,有选择地生成长度为16或32的5个不同Walsh码;掩码发生器,用于在控制器的控制下,有选择地生成长度为16或32的2个不同掩码;乘法器,用于一一对应地将4或7个输入信息位乘以来自Walsh码发生器的Walsh码和来自掩码发生器的掩码,和输出每一个具有16或32个编码码元的编码码元流;XOR运算器,用于对来自乘法器的编码码元流进行异或运算,和输出一个编码码元;重复器,用于在控制器的控制下,重复来自XOR运算器的编码码元流预定次数,和输出具有32个编码码元的编码码元流;存储器,用于存储与4个信息位相对应的8个收缩位置和与7个信息位相对应的8个收缩位置;和收缩器,用于从重复器接收具有32个编码码元的编码码元流,在控制器的控制下,从32个编码码元中收缩从存储器读出的8个收缩位置中的编码码元,和输出具有24个编码码元的编码码元流。
按照本发明的另一个方面,本发明提供了一种编码码元***的编码设备,接收4或7个输入信息位,利用长度都为32的不同Walsh码或掩码编码4或7个输入信息位,和输出具有24个编码码元的编码码元流。该编码设备包括控制器,用于确定输入信息位数是4还是7,和根据确定结果控制编码操作;Walsh码发生器,用于有选择地生成长度为32的5个不同Walsh码;掩码发生器,用于有选择地生成长度为32的2个不同掩码;乘法器,用于一一对应地将4或7个输入信息位乘以来自Walsh码发生器的Walsh码和来自掩码发生器的掩码,和输出每一个具有32个编码码元的编码码元流;XOR运算器,用于对来自乘法器的编码码元流进行异或运算,和输出一个编码码元;存储器,用于存储与4个信息位相对应的8个收缩位置和与7个信息位相对应的8个收缩位置;和收缩器,用于从XOR接收器接收具有32个编码码元的编码码元流,在控制器的控制下,从32个编码码元中收缩从存储器读出的8个收缩位置中的编码码元,和输出具有24个编码码元的编码码元流。
附图说明
通过结合附图,进行如下详细描述,本发明的上面和其它目的、特征和优点将更加清楚,在附图中:
图1显示了一般CDMA移动通信***中R-RICH(反向速率指示符信道)发送器的结构;
图2显示了根据本发明实施例的CDMA移动通信***中最佳(24,4)编码器的结构;
图3显示了根据本发明实施例的码字的结构;
图4显示了根据本发明实施例的CDMA移动通信***中最佳(24,7)编码器的结构;
图5显示了根据本发明实施例的CDMA移动通信***中用作最佳(24,4)编码器和最佳(24,7)编码器两者的编码器的结构;
图6显示了根据本发明实施例的CDMA移动通信***中解码器的结构;
图7显示了根据本发明实施例的基于生成矩阵的(24,4)编码器的结构;
图8显示了根据本发明实施例的基于生成矩阵的(24,7)编码器的结构;和
图9显示了根据本发明实施例的CDMA移动通信***中用作最佳(24,4)编码器和最佳(24,7)编码器两者的编码器的改进结构。
具体实施方式
下文参照附图描述本发明的优选实施例。在如下的描述中,对那些众所周知的功能或结构将不作详细描述,否则的话,本发明的重点将不突出。
一般说来,纠错码的码字的Hamming(汉明)距离分布用作指示线性纠错码的性能的量度。“Hamming距离”指的是码字中非零码元的个数。也就是说,对于一定的码字“0111”,包含在码字中的“1”的个数是3,因此,Hamming距离是3。Hamming距离当中的最小值被称为“最小距离dmin”,码字最小距离的增大提高纠错码的纠错性能。换句话说,“最佳码”意味着具有最佳纠错性能的代码。F.J.Macwilliams和N.J.A.Sloane发表的论文《纠错码理论》详细公开了这方面的内容(The Theory of Error-Correcting Codes,F.J.Macwilliams,N.J.A.Sloane,North Holland)。另外,A.E.Brouwer和Tom Verhoeff发表的论文《二进制线性码最小距离范围更新表》(An Updated Table ofMinimum-Distance Bounds for Binary Linear Codes,A.E.Brouwer and TomVerhoeff,IEEE Transactions on information Theory,VOL 39,NO.2,MARCH1993)也公开了取决于与最佳码有关的二进制线性码的输入和输出值的码间最小距离。
(24,4)编码器或(24,7)编码器通常用作编码速率指示符的编码器。根据上述第二篇论文,接收4个输入位和输出24个码元的(24,4)线性编码器具有12的最小距离,而接收7个输入位和输出24个码元的(24,7)线性编码器具有10的最小距离。
首先,对编码速率指示符的(24,4)编码器加以描述。
本发明提供的(24,4)编码器被构造成通过重复(15,4)单工码一次,然后,从重复码中收缩6个码元,生成最佳(24,4)代码。尽管有许多种方式可以创建(24,4)代码,但是,利用根据本发明实施例收缩一阶Reed-Muller码的方法,不仅可以使硬件复杂度降到最低,而且可以生成最佳码字。通过在收缩之前,使单工码的长度达到最短,可以使硬件复杂度降到最低。并且,不仅可以通过收缩单工码使硬件复杂度降到最低,而且可以生成在纠错性能方面最佳的代码。假设本发明的实施例利用单工码生成纠错码。
(24,4)编码器输出通过重复从(15,4)单工码发生器输出的15个编码码元一次,生成长度为30的单工码码元,然后,从该单工码码元中收缩6个码元创建的码字。从长度为30的重复单工码码元中收缩6个码元的收缩位置的改变引起码字的最小距离dmin的改变。因此,为了使(24,4)编码器对(15,4)单工码具有很好的纠错性能,计算出可以获得最大最小距离的收缩位置是非常重要的。
生成最佳(24,4)线性码所需的6个收缩位置可以通过试验法计算出来。最简单的收缩模式是{0,1,2,3,4,5}。在这种情况下,利用基于本发明的编码/解码方法传输4个信息位的移动通信***的发送器和接收器应该预先商定6个收缩位置。通常在通信协议中定义收缩位置。可选地,发送器可以预先提供有关收缩位置的信息。根据本发明编码最佳(24,4)代码的方法将参照图2加以描述。
图2显示了包含在根据本发明实施例的发送器中的编码器的结构。参照图2,把4个输入信息位a0、a1、a2和a3施加给(15,4)单工编码器200。这里,4个输入信息位a0、a1、a2和a3构成一个速率指示符。单工编码器(或Reed-Muller编码器)200编码4个输入信息位a0、a1、a2和a3,并且输出长度为15的编码码元(或编码码元流)。编码码元构成单工码。把15个编码码元提供给重复器210。重复器210通过重复接收的15个编码码元一次,输出30个编码码元。一旦接收到30个编码码元,收缩器220就从30个编码码元中收缩6个最佳收缩位置中的第0、1、2、3、4和5码元,输出24个编码码元。
普通代码理论定义一个生成矩阵,以便示出输入信息与编码码元之间的映射关系。当包括码元重复和收缩时,用于最后(24,4)编码器的生成矩阵由如下方程表示:
方程1
M = 101010101101010101010101 100110011011001100110011 100001111000111100001111 011111111000000011111111
如果4个输入信息位当中的第1个输入信息位是1,方程1的生成矩阵选择第1行中的24个码元,如果第1个输入信息位是0,不选择输入信息位。如果4个输入信息位当中的第2个输入信息位是1,生成矩阵选择第2行中的24个码元,如果第2个输入信息位是0,不选择输入信息位。如果4个输入信息位当中的第3个输入信息位是1,生成矩阵选择第3行中的24个码元,如果第3个输入信息位是0,不选择输入信息位。如果4个输入信息位当中的第4个输入信息位是1,生成矩阵选择第4行中的24个码元,如果第4个输入信息位是0,不选择输入信息位。
图7显示了基于上述生成矩阵的(24,4)编码器。参照图7,在其值为0或1的输入信息位a0-a3中,分别把输入信息位a0施加给乘法器920,把输入信息位a1施加给乘法器922,把输入信息位a2施加给乘法器924,和把输入信息位a3施加给乘法器926。同时,信号发生器900把存储在存储器中的、构成生成矩阵的4个码元流R1-R4分别提供给乘法器920-926。具体地说,信号发生器900读取存储在存储器中的、与生成矩阵的第1行相对应的长度为24的码元流R1=1010 1010 1101 0101 0101 0101,并且把读取的码元流提供给乘法器920。信号发生器900读取存储在存储器中的、与生成矩阵的第2行相对应的长度为24的码元流R2=1001 1001 1011 0011 0011 0011,并且把读取的码元流提供给乘法器922。信号发生器900读取存储在存储器中的、与生成矩阵的第3行相对应的长度为24的码元流R3=1000 0111 1000 11110000 1111,并且把读取的码元流提供给乘法器924。最后,信号发生器900读取存储在存储器中的、与生成矩阵的第4行相对应的长度为24的码元流R4=0111 1111 1000 0000 1111 1111,并且把读取的码元流提供给乘法器926。然后,乘法器920将码元流R1的码元乘以a0,并且把长度为24的码元流输出到XOR运算器940。乘法器922将码元流R2的码元乘以a1,并且把长度为24的码元流输出到XOR运算器940。乘法器924将码元流R3的码元乘以a2,并且把长度为24的码元流输出到XOR运算器940。乘法器926将码元流R4的码元乘以a3,并且把长度为24的码元流输出到XOR运算器940。然后,XOR运算器940以码元为单位对长度为24的4个码元流进行异或运算,并且输出长度为24的编码码元流。
接着,对编码速率指示符的(24,7)编码器加以描述。
本发明提供的(24,7)编码器被构造成通过从把2个掩码函数用于(32,5)正交码(或一阶Reed-Muller码)来扩展码字获得的扩充正交码中收缩8个码元,生成最佳(24,7)代码。
图3显示了扩充正交码的结构。参照图3,当M1和M2是如上所述的2个掩码函数时,长度为32的32个正交码字W用作最上面32个码字,通过对掩码函数M1和32个正交码字W进行异或运算确定的32个码字(M1+W)用作接下来的32个码字。并且,通过对掩码函数M2和32个正交码字W进行异或运算确定的32个码字(M2+W)用作再接下来的32个码字,和通过对掩码函数M1、M2和32个正交码字W进行异或运算确定的32个码字(M1+M2+W)用作最后32个码字。因此,总共27=128个码字用作扩充正交码。优化(24,7)代码的2个掩码函数可以通过试验法来寻找。
例如,2个掩码函数M1+M2如下:
M1=0111 0111 0010 0100 0110 0000 0000 0000
M2=0010 0110 0101 0100 0101 0100 0100 0000
尽管有许多种方式可以创建(24,7)线性码,但是,利用根据本发明实施例收缩扩充一阶Reed-Muller码的方法,不仅可以使硬件复杂度降到最低,而且可以使用最佳码字。并且,通过在收缩之前,使正交码的长度达到最短,可以使硬件复杂度降到最低。另外,不仅可以通过收缩扩充正交码使硬件复杂度降到最低,而且可以创建在纠错性能方面最佳的代码。假设本发明的实施例利用扩充正交码生成纠错码。
(24,7)码字是通过从(32,7)扩充代码发生器输出的32个编码码元中收缩8个码元生成的。从32个扩充编码码元中收缩8个码元的收缩位置的改变引起码字的最小距离dmin的改变。因此,为了使(24,7)编码器对(32,7)扩充正交码具有很好的纠错性能,计算出可以获得最大最小距离的收缩位置是非常重要的。
生成最佳(24,7)线性码所需的8个收缩位置可以通过试验法计算出来。最简单的收缩模式是{0,4,8,12,16,20,24,28}。在这种情况下,利用基于本发明的编码/解码方法传输7个信息位的移动通信***的发送器和接收器应该预先商定8个收缩位置。通常在通信协议中定义收缩位置。可选地,发送器可以预先提供有关收缩位置的信息。
图4显示了包含在根据本发明实施例的发送器中的最佳(24,7)编码器的结构。参照图4,把7个输入信息位a0、a1、a2、a3、a4、a5和a6施加给(32,7)扩充正交编码器400。这里,7个输入信息位a0、a1、a2、a3、a4、a5和a6构成一个速率指示符。扩充正交编码器400编码7个输入信息位a0、a1、a2、a3、a4、a5和a6,并且输出长度为32的编码码元(或编码码元流)。把从扩充正交编码器400输出的32个编码码元提供给收缩器410。收缩器410从32个编码码元中收缩8个最佳收缩位置中的第0、4、8、12、16、20、24和28码元,输出24个编码码元。
普通代码理论定义一个生成矩阵来示出输入信息与编码码元之间的映射关系。当包括码元收缩时,用于最后(24,7)编码器的生成矩阵由如下方程表示:
方程2
M = 101101101101101101101101 011011011011011011011011 000111000111000111000111 000000111111000000111111 000000000000111111111111 111111010100110000000000 010110101100101100100000
如果7个输入信息位当中的第1个输入信息位是1,方程2的生成矩阵选择第1行中的24个码元,如果第1个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第2个输入信息位是1,生成矩阵选择第2行中的24个码元,如果第2个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第3个输入信息位是1,生成矩阵选择第3行中的24个码元,如果第3个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第4个输入信息位是1,生成矩阵选择第4行中的24个码元,如果第4个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第5个输入信息位是1,生成矩阵选择第5行中的24个码元,如果第5个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第6个输入信息位是1,生成矩阵选择第6行中的24个码元,如果第6个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第7个输入信息位是1,生成矩阵选择第7行中的24个码元,如果第7个输入信息位是0,不选择输入信息位。当以码元为单位对所有所选的行都进行了异或运算时,输出与输入信息位相对应的编码码元。
图8显示了基于上述生成矩阵的(24,7)编码器。参照图8,在其值为0或1的输入信息位a0-a6中,分别把输入信息位a0施加给乘法器1020,把输入信息位a1施加给乘法器1022,把输入信息位a2施加给乘法器1024,把输入信息位a3施加给乘法器1026,把输入信息位a4施加给乘法器1028,把输入信息位a5施加给乘法器1029,和把输入信息位a6施加给乘法器1032。同时,信号发生器1000把存储在存储器中的、构成生成矩阵的7个码元流R1-R7分别提供给乘法器1020-1032。具体地说,信号发生器1000读取存储在存储器中的、与生成矩阵的第1行相对应的长度为24的码元流R1=1011 0110 11011011 0110 1101,并且把读取的码元流R1提供给乘法器1020。信号发生器1000读取存储在存储器中的、与生成矩阵的第2行相对应的长度为24的码元流R2=0110 1101 1011 0110 1101 1011,并且把读取的码元流R2提供给乘法器1022。信号发生器1000读取存储在存储器中的、与生成矩阵的第3行相对应的长度为24的码元流R3=0001 1100 0111 0001 1100 0111,并且把读取的码元流R3提供给乘法器1024。信号发生器1000读取存储在存储器中的、与生成矩阵的第4行相对应的长度为24的码元流R4=0000 0011 1111 0000 00111111,并且把读取的码元流R4提供给乘法器1926。信号发生器1000读取存储在存储器中的、与生成矩阵的第5行相对应的长度为24的码元流R5=00000000 0000 1111 1111 1111,并且把读取的码元流R5提供给乘法器1028。信号发生器1000读取存储在存储器中的、与生成矩阵的第6行相对应的长度为24的码元流R6=1111 1101 0100 1100 0000 0000,并且把读取的码元流R6提供给乘法器1029。信号发生器1000读取存储在存储器中的、与生成矩阵的第7行相对应的长度为24的码元流R7=0101 1010 1100 1011 0010 0000,并且把读取的码元流R7提供给乘法器1932。然后,乘法器1020将码元流R1的码元乘以输入信息位a0,并且把长度为24的码元流输出到XOR运算器1040。乘法器1022将码元流R2的码元乘以输入信息位a1,并且把长度为24的码元流输出到XOR运算器1040。乘法器1024将码元流R3的码元乘以输入信息位a2,并且把长度为24的码元流输出到XOR运算器1040。乘法器1026将码元流R4的码元乘以输入信息位a3,并且把长度为24的码元流输出到XOR运算器1040。乘法器1028将码元流R5的码元乘以输入信息位a4,并且把长度为24的码元流输出到XOR运算器1040。乘法器1029将码元流R6的码元乘以输入信息位a5,并且把长度为24的码元流输出到XOR运算器1040。乘法器1032将码元流R7的码元乘以输入信息位a6,并且把长度为24的码元流输出到XOR运算器1040。然后,XOR运算器1040以码元为单位对长度为24的7个码元流进行异或运算,并且输出长度为24的编码码元流。
取决于收缩位置,可以提高(24,7)编码器的性能和使(24,7)编码器的复杂度降到最低。收缩位置{0,4,8,12,16,20,24,28}具有4的规则收缩间隔。收缩位置的这种规则性有助于降低硬件复杂度。但是,如果收缩位置集中在帧的头部,利用延迟技术可以降低硬件复杂度。因此,如果从性能方面去考虑,让收缩位置集中在帧的最前面,那么,2个掩码函数将具有不同的结构。
下面参照图3描述具有不同收缩位置的扩充正交码的结构。当M1和M2是如上所述的2个掩码函数时,长度为32的32个正交码字W用作最上面32个码字,通过对掩码函数M1和32个正交码字W进行异或运算确定的32个码字(M1+W)用作接下来的32个码字。并且,通过对掩码函数M2和32个正交码字W进行异或运算确定的32个码字(M2+W)用作再接下来的32个码字,和通过对掩码函数M1、M2和32个正交码字W进行异或运算确定的32个码字(M1+M2+W)用作最后32个码字。因此,总共27=128个码字用作扩充正交码。优化(24,7)代码的2个掩码函数可以通过试验法来寻找。
例如,2个掩码函数M1+M2如下:
M1=0000 0000 1110 1000 1101 1000 1100 0000
M2=0000 0000 1100 0000 0111 1110 0010 1000
尽管有许多种方式可以创建(24,7)线性码,但是,利用根据本发明实施例收缩扩充一阶Reed-Muller码的方法,不仅可以使硬件复杂度降到最低,而且可以使用最佳码字。并且,通过在收缩之前,使正交码的长度达到最短,可以使硬件复杂度降到最低。另外,不仅可以通过收缩扩充正交码使硬件复杂度降到最低,而且可以创建在纠错性能方面最佳的代码。假设本发明的实施例利用扩充正交码生成纠错码。
(24,7)码字是通过从(32,7)扩充代码发生器输出的32个编码码元中收缩8个码元生成的。这里,从32个扩充编码码元中收缩8个码元的收缩位置的改变引起码字的最小距离dmin的改变。因此,为了使(24,7)编码器对(32,7)扩充正交码具有很好的纠错性能,计算出可以获得最大最小距离的收缩位置是非常重要的。
生成最佳(24,7)线性码所需的8个收缩位置可以通过试验法计算出来。最简单的收缩模式是{0,1,2,3,4,5,6,7}。在这种情况下,利用基于本发明的编码/解码方法传输7个信息位的移动通信***的发送器和接收器应该预先商定8个收缩位置。通常在通信协议中定义收缩位置。可选地,发送器可以预先提供有关收缩位置的信息。
图4显示了包含在根据本发明实施例的发送器中的最佳(24,7)编码器的结构。参照图4,把7个输入信息位a0、a1、a2、a3、a4、a5和a6施加给(32,7)扩充正交编码器400。这里,7个输入信息位a0、a1、a2、a3、a4、a5和a6构成一个速率指示符。扩充正交编码器400编码7个输入信息位a0、a1、a2、a3、a4、a5和a6,并且输出长度为32的编码码元(或编码码元流)。把从扩充正交编码器400输出的32个编码码元提供给收缩器410。收缩器410从32个编码码元中收缩8个最佳收缩位置中的第0、1、2、3、4、5、6和7码元,输出24个编码码元。
普通代码理论定义一个生成矩阵来示出输入信息与编码码元之间的映射关系。当包括码元收缩时,用于最后(24,7)编码器的生成矩阵由如下方程表示:
方程3
M = 010101010101010101010101 001100110011001100110011 000011110000111100001111 111111110000000011111111 000000001111111111111111 111010001101100011000000 110000000111111000101000
如果7个输入信息位当中的第1个输入信息位是1,方程3的生成矩阵选择第1行中的24个码元,如果第1个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第2个输入信息位是1,生成矩阵选择第2行中的24个码元,如果第2个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第3个输入信息位是1,生成矩阵选择第3行中的24个码元,如果第3个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第4个输入信息位是1,生成矩阵选择第4行中的24个码元,如果第4个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第5个输入信息位是1,生成矩阵选择第5行中的24个码元,如果第5个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第6个输入信息位是1,生成矩阵选择第6行中的24个码元,如果第6个输入信息位是0,不选择输入信息位。如果7个输入信息位当中的第7个输入信息位是1,生成矩阵选择第7行中的24个码元,如果第7个输入信息位是0,不选择输入信息位。当以码元为单位对所有所选的行都进行了异或运算时,输出与输入信息位相对应的编码码元。
图8显示了基于上述生成矩阵的(24,7)编码器。参照图8,在其值为0或1的输入信息位a0-a6中,分别把输入信息位a0施加给乘法器1020,把输入信息位a1施加给乘法器1022,把输入信息位a2施加给乘法器1024,把输入信息位a3施加给乘法器1026,把输入信息位a4施加给乘法器1028,把输入信息位a5施加给乘法器1029,和把输入信息位a6施加给乘法器1032。同时,信号发生器1000把存储在存储器中的、构成生成矩阵的7个码元流R1-R7分别提供给乘法器1020-1032。具体地说,信号发生器1000读取存储在存储器中的、与生成矩阵的第1行相对应的长度为24的码元流R1=0101 01010101 0101 0101 0101,并且把读取的码元流R1提供给乘法器1020。信号发生器1000读取存储在存储器中的、与生成矩阵的第2行相对应的长度为24的码元流R2=0011 0011 0011 0011 0011 0011,并且把读取的码元流R2提供给乘法器1022。信号发生器1000读取存储在存储器中的、与生成矩阵的第3行相对应的长度为24的码元流R3=0000 1111 0000 1111 0000 1111,并且把读取的码元流R3提供给乘法器1024。信号发生器1000读取存储在存储器中的、与生成矩阵的第4行相对应的长度为24的码元流R4=1111 1111 00000000 1111 1111,并且把读取的码元流R4提供给乘法器1926。信号发生器1000读取存储在存储器中的、与生成矩阵的第5行相对应的长度为24的码元流R5=0000 0000 1111 1111 1111 1111,并且把读取的码元流R5提供给乘法器1028。信号发生器1000读取存储在存储器中的、与生成矩阵的第6行相对应的长度为24的码元流R6=1110 1000 1101 1000 1100 0000,并且把读取的码元流R6提供给乘法器1029。信号发生器1000读取存储在存储器中的、与生成矩阵的第7行相对应的长度为24的码元流R7=1100 0000 0111 1110 00101000,并且把读取的码元流R7提供给乘法器1932。然后,乘法器1020将码元流R1的码元乘以输入信息位a0,并且把长度为24的码元流输出到XOR运算器1040。乘法器1022将码元流R2的码元乘以输入信息位a1,并且把长度为24的码元流输出到XOR运算器1040。乘法器1024将码元流R3的码元乘以输入信息位a2,并且把长度为24的码元流输出到XOR运算器1040。乘法器1026将码元流R4的码元乘以输入信息位a3,并且把长度为24的码元流输出到XOR运算器1040。乘法器1028将码元流R5的码元乘以输入信息位a4,并且把长度为24的码元流输出到XOR运算器1040。乘法器1029将码元流R6的码元乘以输入信息位a5,并且把长度为24的码元流输出到XOR运算器1040。乘法器1032将码元流R7的码元乘以输入信息位a6,并且把长度为24的码元流输出到XOR运算器1040。然后,XOR运算器1040以码元为单位对长度为24的7个码元流进行异或运算,并且输出长度为24的编码码元流。
(24,4)编码器和(24,7)编码器的共同之处在于,它们两者都来源于正交码的结构。也就是说,用在(24,4)编码器中的(15,4)单工码是从(16,4)正交码中收缩第0行获得的,用在(24,7)编码器中的(32,7)扩充正交码是在(32,5)编码器中利用2个附加码字,即掩码函数作为基扩充而成的。因此,根据(24,4)编码器和(24,7)编码器的共同点,如下所述的第一实施例提供了用作具有不同长度的(24,4)编码器和(24,7)编码器两者的编码器。
第一实施例(编码器)
图5显示了用作具有不同长度的(24,4)编码器和(24,7)编码器两者的编码器的结构。也就是说,图5所示的编码器利用长度为16或32的不同Walsh码或掩码编码4或7个输入信息位,输出具有24个编码码元的编码码元流。
参照图5,控制器510通过确定输入信息位数是4还是7,控制编码操作。也就是说,当输入信息位数是4时,控制器510控制Walsh码发生器500和掩码发生器505,分别生成长度均为16的5个不同Walsh码和2个不同掩码。并且,控制器510把重复器550的重复频率设置成1,和控制收缩器560收缩与4个输入信息位相对应的8个收缩位置中的码元。但是,当输入信息位数是7时,控制器510控制Walsh码发生器500和掩码发生器505,分别生成长度均为32的5个不同Walsh码和2个不同掩码。并且,控制器510把重复器550的重复频率设置成0,和控制收缩器560收缩与7个输入信息位相对应的8个收缩位置中的码元。
在控制器510的控制下,Walsh码发生器500有选择地生成长度为16或32的不同Walsh码。例如,一旦接收到4个输入信息位,Walsh码发生器500就在控制器510的控制下,生成长度为16的5个不同Walsh码。但是,一旦接收到7个输入信息位,Walsh码发生器500就在控制器510的控制下,生成长度为32的5个不同Walsh码。Walsh码发生器500生成的Walsh码的个数可以随输入信息位的个数(4或7)而改变。例如,一旦接收到4个输入信息位,Walsh码发生器500就可以生成长度为16的4个不同Walsh码,而一旦接收到7个输入信息位,Walsh码发生器500就可以生成长度为32的5个不同Walsh码。
在控制器510的控制下,掩码发生器505有选择地生成长度为16或32的掩码。例如,一旦接收到4个输入信息位,掩码发生器505就在控制器510的控制下,生成长度为16的2个不同掩码。但是,一旦接收到7个输入信息位,掩码发生器505就在控制器510的控制下,生成长度为32的2个不同掩码。可选地,可以把掩码发生器505设计成不受控制器510控制地连续生成2个不同掩码。图5显示了掩码发生器505不受控制器510控制的后一种例子。如果掩码发生器505在控制器510的控制下进行操作,那么,把来自控制器510的控制信号提供给掩码发生器505。
乘法器520-532将4或7个输入信息位与来自Walsh码发生器500和掩码发生器505的Walsh码和掩码一一对应地相乘,并且输出每一个都具有16或32个编码码元的编码码元流。当接收4个输入位作为输入信息位时,提供具有值‘0’的输入位作为其余的输入信息位a4、a5和a6,以便不影响输出值。XOR运算器540对来自乘法器520-532的编码码元流进行异或运算,输出具有16或32个编码码元的一个编码码元流。在控制器510的控制下,重复器550重复来自XOR运算器540的编码码元流预定次数,输出具有32个编码码元的编码码元流。也就是说,一旦接收到具有16个编码码元的编码码元流,重复器550就重复接收的编码码元流一次,输出具有32个编码码元的编码码元流。但是,一旦接收到具有32个编码码元的编码码元流,重复器550就不重复,输出原样接收编码码元流。存储器570存储与4个输入信息位相对应的8个收缩位置、和与7个输入信息位相对应的8个收缩位置。存储在存储器570中的、与4个输入信息位相对应的8个收缩位置是第0、1、2、3、4、5、6和16码元位置,而存储在存储器570中的、与7个输入信息位相对应的8个收缩位置是第0、4、8、12、16、20、24和28码元位置或第0、1、2、3、4、5、6和7码元位置。
收缩器560从重复器550接收具有32个编码码元的编码码元流,在控制器510的控制下,从32个编码码元中收缩从存储器570中读取的8个收缩位置中的编码码元,输出具有24个编码码元的编码码元流。也就是说,如果输入信息位数是4,收缩器560在控制器510的控制下,从重复器550输出的32个编码码元中收缩第0、1、2、3、4、5、6和16码元,输出具有24个编码码元的编码码元流。但是,如果输入信息位数是7,收缩器560在控制器510的控制下,从重复器550输出的32个编码码元中收缩第0、4、8、12、16、20、24和28码元或第0、1、2、3、4、5、6和7码元,输出具有24个编码码元的编码码元流。
下面参照图5,针对编码器用作(24,4)编码器的一种情况和编码器用作(24,7)编码器的另一种情况,分别对编码器加以描述。这里假设施加给编码器的输入信息位构成一个速率指示符。
首先,对编码器用作(24,7)编码器的一种情况加以描述。把a0、a1、a2、a3、a4、a5和a6的7-位速率指示符施加给编码器,同时,把指示把7-位速率指示符施加给编码器的位信息提供给控制器510。然后,控制器510向Walsh码发生器500提供指令它生成长度为32的Walsh码的控制信号。一旦接收到控制信号,Walsh码发生器500就生成长度为32的Walsh码W1、W2、W4、W8和W16,并且把生成的Walsh码W1、W2、W4、W8和W16分别提供给相关乘法器。具体地说,把Walsh码W1提供给乘法器520,把Walsh码W2提供给乘法器522,把Walsh码W4提供给乘法器524,把Walsh码W8提供给乘法器526,和把Walsh码W16提供给乘法器528。表1所示的是由Walsh码发生器500生成的长度为32的Walsh码。
表1
  Walsh码序号   Walsh码
  W1   0101 0101 0101 0101 0101 0101 0101 0101
  W2   0011 0011 0011 0011 0011 0011 0011 0011
  W4   0000 1111 0000 1111 0000 1111 0000 1111
  W8   0000 0000 1111 1111 0000 0000 1111 1111
  W16   0000 0000 0000 0000 1111 1111 1111 1111
同时,掩码发生器505生成掩码M1=0111 0111 0010 0100 0110 0000 00000000和M2=0010 0110 0101 0100 0101 0100 0100 0000,并且把生成的掩码M1和M2分别提供给乘法器530和532。
同时,把速率指示符的7个输入信息位分别提供给相关乘法器。表2所示的是7个输入信息位与相关乘法器之间的关系。
表2
  输入信息位   乘法器
  a0   乘法器520
  a1   乘法器522
  a2   乘法器524
  a3   乘法器526
  a4   乘法器528
  a5   乘法器530
  a6   乘法器532
因此,表3所示的是提供给各个乘法器的输入信息位和Walsh码或掩码。
表3
  乘法器   Walsh码/掩码   输入信息位
  乘法器520   W1=0101 0101010101010101010101010101   a0
  乘法器522   W2=0011 0011 0011 0011 0011 0011 0011 0011   a1
  乘法器524   W4=0000 1111 0000 1111 0000 1111 0000 1111   a2
  乘法器526   W8=0000 0000 1111 1111 0000 0000 1111 1111   a3
  乘法器528   W16=0000 0000 0000 0000 1111 1111 1111 1111   a4
  乘法器530   M1=0111 0111 0010 0100 0110 0000 0000 0000   a5
  乘法器532   M2=0010 0110 0101 0100 0101 0100 0100 0000   a6
乘法器将如表3所示提供给它的输入信息位与Walsh码或掩码相乘,并且把它们的结果提供给XOR运算器540。
具体地说,乘法器520逐个码元地(即,以码元为单位)将输入信息位a0与Walsh码W1相乘,并且把它的输出提供给XOR运算器540。乘法器522逐个码元地将输入信息位a1与Walsh码W2相乘,并且把它的输出提供给XOR运算器540。乘法器524逐个码元地将输入信息位a2与Walsh码W4相乘,并且把它的输出提供给XOR运算器540。乘法器526逐个码元地将输入信息位a3与Walsh码W8相乘,并且把它的输出提供给XOR运算器540。乘法器528逐个码元地将输入信息位a4与Walsh码W16相乘,并且把它的输出提供给XOR运算器540。乘法器530逐个码元地将输入信息位a5与掩码M1相乘,并且把它的输出提供给XOR运算器540。乘法器532逐个码元地将输入信息位a6与掩码M2相乘,并且把它的输出提供给XOR运算器540。
然后,XOR运算器540以码元为单位对从乘法器520、522、524、526、528、530和532输出的长度为32的码元流进行异或运算,并且把它的输出提供给重复器550。
可以把从XOR运算器540输出的、长度为32的编码码元流Ws定义为:
方程4
Ws=(W1×a0)+(W2×a1)+(W4×a2)+(W8×a3)+(W16×a4)+(M1×a5)+(M2×a6)
此刻,控制器510把在XOR运算器540的输出端上控制重复频率的控制信号提供给重复器550。在(24,7)编码器中,由于从XOR运算器540输出的码元流具有32的长度,重复器550不进行重复。为此,控制器510向重复器550提供指令它输出原样输入信号的控制信号。响应该控制信号,重复器550把从XOR运算器540输出的长度为32的原样码元流提供给收缩器560。
此时,控制器510向收缩器560提供指令它收缩与(24,7)代码有关的收缩位置中的码元的控制信号。控制器510可以把速率指示符的长度信息(7个位)作为控制信号提供给收缩器560。然后,收缩器560从存储器570接收与速率指示符的7个输入信息位相对应的8个收缩位置,并且从重复器550提供的长度为32的编码码元中收缩8个收缩位置中的编码码元。也就是说,收缩器560收缩重复器550提供的长度为32的编码码元当中,从存储器570读取的收缩位置中的8个码元。例如,当来自存储器570的收缩位置是第0、4、8、12、16、20、24和28码元位置时,收缩器560从长度为32的编码码元中收缩第0、4、8、12、16、20、24和28编码码元,输出24个编码码元。
到现在为止,针对编码器具有收缩模式{0,4,8,12,16,20,24,28}的一种情况描述了(24,7)编码器的操作。现在,针对为了降低如上所述的硬件复杂度,编码器具有收缩模式{0,1,2,3,4,5,6,7}的另一种情况描述(24,7)编码器的操作。在这种情况下,当把a0、a1、a2、a3、a4、a5和a6的7-位速率指示符施加给编码器时,把指示把7-位速率指示符施加给编码器的位信息提供给控制器510。然后,控制器510向Walsh码发生器500提供指令它生成长度为32的Walsh码的控制信号。一旦接收到控制信号,Walsh码发生器500就生成长度为32的Walsh码W1、W2、W4、W8和W16,并且把生成的Walsh码W1、W2、W4、W8和W16分别提供给相关乘法器。具体地说,把Walsh码W1提供给乘法器520,把Walsh码W2提供给乘法器522,把Walsh码W4提供给乘法器524,把Walsh码W8提供给乘法器526,和把Walsh码W16提供给乘法器528。表4所示的是由Walsh码发生器500生成的长度为32的Walsh码。
表4
  Walsh码序号   Walsh码
  W1   0101 0101 0101 0101 0101 0101 0101 0101
  W2   0011 0011 0011 0011 0011 0011 0011 0011
  W4   0000 1111 0000 1111 0000 1111 0000 1111
  W8   0000 0000 1111 1111 0000 0000 1111 1111
  W16   0000 0000 0000 0000 1111 1111 1111 1111
同时,掩码发生器505生成掩码M1=0000 0000 1110 1000 1101 1000 11000000和M2=0000 0000 1100 0000 0111 1110 0010 1000,并且把生成的掩码M1和M2分别提供给乘法器530和532。
同时,把速率指示符的7个输入信息位分别提供给相关乘法器。表5所示的是7个输入信息位与相关乘法器之间的关系。
表5
  输入信息位   乘法器
  a0   乘法器520
  a1   乘法器522
  a2   乘法器524
  a3   乘法器526
  a4   乘法器528
  a5   乘法器530
  a6   乘法器532
因此,表6所示的是提供给各个乘法器的输入信息位和Walsh码或掩码。
表6
  乘法器   Walsh码/掩码   输入信息位
  乘法器520   W1=0101 0101 0101 0101 0101 0101 0101 0101   a0
  乘法器522   W2=0011 0011 0011 0011 0011 0011 0011 0011   a1
  乘法器524   W4=0000 1111 0000 1111 0000 1111 0000 1111   a2
  乘法器526   W8=0000 0000 1111 1111 0000 0000 1111 1111   a3
  乘法器528   W16=0000 0000 0000 0000 1111 1111 1111 1111   a4
  乘法器530   M1=0000 0000 1110 1000 1101 1000 1100 0000   a5
  乘法器532   M2=0000 0000 1100 0000 0111 1110 0010 1000   a6
乘法器将如表6所示提供给它的输入信息位与Walsh码或掩码相乘,并且把它们的结果提供给XOR运算器540。
具体地说,乘法器520逐个码元地将输入信息位a0与Walsh码W1相乘,并且把它的输出提供给XOR运算器540。乘法器522逐个码元地将输入信息位a1与Walsh码W2相乘,并且把它的输出提供给XOR运算器540。乘法器524逐个码元地将输入信息位a2与Walsh码W4相乘,并且把它的输出提供给XOR运算器540。乘法器526逐个码元地将输入信息位a3与Walsh码W8相乘,并且把它的输出提供给XOR运算器540。乘法器528逐个码元地将输入信息位a4与Walsh码W16相乘,并且把它的输出提供给XOR运算器540。乘法器530逐个码元地将输入信息位a5与掩码M1相乘,并且把它的输出提供给XOR运算器540。乘法器532逐个码元地将输入信息位a6与掩码M2相乘,并且把它的输出提供给XOR运算器540。
然后,XOR运算器540以码元为单位对从乘法器520、522、524、526、528、530和532输出的长度为32的码元流进行异或运算,并且把它的输出提供给重复器550。
可以把从XOR运算器540输出的、长度为32的编码码元流Ws定义为:
方程5
Ws=(W1×a0)+(W2×a1)+(W4×a2)+(W8×a3)+(W16×a4)+(M1×a5)+(M2×a6)
此刻,控制器510把在XOR运算器540的输出端上控制重复频率的控制信号提供给重复器550。在(24,7)编码器中,由于从XOR运算器540输出的码元流具有32的长度,重复器550的重复频率是‘0’。因此,控制器510向重复器550提供指令它输出原样输入信号的控制信号。响应该控制信号,重复器550把从XOR运算器540输出的长度为32的原样码元流提供给收缩器560。
此时,控制器510向收缩器560提供指令它收缩与(24,7)代码有关的收缩位置中的码元的控制信号。然后,收缩器560从存储器570接收8个收缩位置,并且从重复器550提供的长度为32的编码码元中收缩8个收缩位置中的编码码元。也就是说,收缩器560收缩重复器550提供的长度为32的编码码元当中,从存储器570读取的收缩位置中的8个码元。例如,当来自存储器570的收缩位置是第0、1、2、3、4、5、6和7码元位置时,收缩器560从长度为32的编码码元中收缩第0、1、2、3、4、5、6和7编码码元,输出24个编码码元。
其次,对编码器用作(24,4)编码器的另一种情况加以描述。把a0、a1、a2和a3的4-位速率指示符施加给编码器,并且,把其余输入信息位a4、a5和a6初始化成‘0’。同时,把指示把4-位速率指示符施加给编码器的位信息提供给控制器510。然后,控制器510向Walsh码发生器500提供指令它生成长度为16的Walsh码的控制信号。一旦接收到控制信号,Walsh码发生器500就生成长度为16的Walsh码W1、W2、W4、W8和W16,并且把生成的Walsh码W1、W2、W4和W8分别提供给相关乘法器。具体地说,把Walsh码W1提供给乘法器520,把Walsh码W2提供给乘法器522,把Walsh码W4提供给乘法器524,和把Walsh码W8提供给乘法器526。表7所示的是由Walsh码发生器500生成的长度为16的Walsh码。
表7
  Walsh码序号   Walsh码
  W1   0101 0101 0101 0101
  W2   0011 0011 0011 0011
  W4   0000 1111 0000 1111
  W8   0000 0000 1111 1111
同时,把速率指示符的4个输入信息位分别提供给相关乘法器。表8所示的是4个输入信息位与相关乘法器之间的关系。
表8
  输入信息位   乘法器
  a0   乘法器520
  a1   乘法器522
  a2   乘法器524
  a3   乘法器526
因此,表9所示的是提供给各个乘法器的输入信息位和Walsh码。
表9
  乘法器   Walsh码/掩码   输入信息位
  乘法器520   W1=0101 0101 0101 0101   a0
  乘法器522   W2=0011 0011 0011 0011   a1
  乘法器524   W4=0000 1111 0000 1111   a2
  乘法器526   W8=0000 0000 1111 1111   a3
乘法器将如表9所示提供给它的输入信息位与Walsh码相乘,并且把它们的结果提供给XOR运算器540。具体地说,乘法器520逐个码元地将输入信息位a0与Walsh码W1相乘,并且把它的输出提供给XOR运算器540。乘法器522逐个码元地将输入信息位a1与Walsh码W2相乘,并且把它的输出提供给XOR运算器540。乘法器524逐个码元地将输入信息位a2与Walsh码W4相乘,并且把它的输出提供给XOR运算器540。乘法器526逐个码元地将输入信息位a3与Walsh码W8相乘,并且把它的输出提供给XOR运算器540。
同时,由于乘法器528、530和532接收初始化成‘0’的输入信息位a4、a5和a6,因此,与来自Walsh码发生器500的Walsh码W16和来自掩码发生器505的掩码M1和M2无关,乘法器528、530和532的输出不影响XOR运算器540的输出。具体地说,与来自Walsh码发生器500的Walsh码W16的值无关,乘法器528输出具有均为值‘0’的编码码元的编码码元流。类似地,与来自掩码发生器505的掩码M1和M2无关,乘法器530和532输出每一个都具有均为值‘0’的编码码元的编码码元流。其结果是,尽管把乘法器528、530和532的输出提供给XOR运算器540,但是,它们不影响XOR运算器540的输出。把输入信息位a4、a5和a6初始化成‘0’等效于切断乘法器528、530和532的输出的切换操作。
然后,XOR运算器540以码元为单位对从乘法器520、522、524、526、528、530和532输出的长度为16的码元流进行异或运算,并且把它的输出提供给重复器550。
可以把从XOR运算器540输出的、长度为16的编码码元流Ws定义为:
方程6
Ws=(W1×a0)+(W2×a1)+(W4×a2)+(W8×a3)
此刻,控制器510把在XOR运算器540的输出端上控制重复频率的控制信号提供给重复器550。在(24,4)编码器中,由于从XOR运算器540输出的码元流具有16的长度,重复器550的重复频率是‘1’。因此,控制器510向重复器550提供指令它重复输入信号一次的控制信号。响应该控制信号,重复器550把从XOR运算器540输出的长度为16的码元流重复一次,并且把长度为32的码元流提供给收缩器560。
此时,控制器510向收缩器560提供指令它收缩与(24,4)代码有关的收缩位置中的码元的控制信号。然后,收缩器560接收从存储器570读取的8个收缩位置,并且从重复器550提供的长度为32的编码码元中收缩8个收缩位置中的编码码元。也就是说,收缩器560收缩重复器550提供的长度为32的编码码元当中,从存储器570读取的收缩位置中的8个码元。例如,当来自存储器570的收缩位置是第0、1、2、3、4、5、6和16码元位置时,收缩器560从长度为32的编码码元中收缩第0、1、2、3、4、5、6和16编码码元,输出24个编码码元。
第二实施例(编码器)
图9显示了用作具有不同长度的(24,4)编码器和(24,7)编码器两者的编码器的另一种结构。也就是说,图9所示的编码器利用长度为32的不同Walsh码或掩码编码4或7个输入信息位,输出具有24个编码码元的编码码元流。与根据第一实施例的编码器不同,根据第二实施例的编码器不包括码元重复器。
参照图9,控制器1110通过确定输入信息位数是4还是7,控制编码操作。也就是说,控制器1110向收缩器1160提供指令它收缩与输入信息位相对应的8个收缩位置中的码元的控制信号。Walsh码发生器1100生成长度为32的Walsh码。例如,一旦接收到输入信息位,Walsh码发生器1100就生成长度为32的5个不同Walsh码。掩码发生器1105生成长度为32的掩码。例如,一旦接收到输入信息位,掩码发生器505就生成长度为32的2个不同掩码。
乘法器1120-1132将4或7个输入信息位与来自Walsh码发生器1100和掩码发生器1105的Walsh码和掩码一一对应地相乘,并且输出每一个都具有32个编码码元的编码码元流。XOR运算器1140对来自乘法器1120-1132的编码码元流进行异或运算,输出具有32个编码码元的一个编码码元流。存储器1170存储与4个输入信息位相对应的8个收缩位置、和与7个输入信息位相对应的8个收缩位置。存储在存储器1170中的、与4个输入信息位相对应的8个收缩位置是第0、1、2、3、4、5、6和16码元位置,而存储在存储器1170中的、与7个输入信息位相对应的8个收缩位置是第0、4、8、12、16、20、24和28码元位置或第0、1、2、3、4、5、6和7码元位置。
收缩器1160从XOR运算器1140接收具有32个编码码元的编码码元流,在控制器1110的控制下,从32个编码码元中收缩从存储器1170中读取的8个收缩位置中的编码码元,输出具有24个编码码元的编码码元流。也就是说,如果输入信息位数是4,收缩器1160在控制器1110的控制下,从XOR运算器1140输出的32个编码码元中收缩第0、1、2、3、4、5、6和16码元,输出具有24个编码码元的编码码元流。但是,如果输入信息位数是7,收缩器1160在控制器510的控制下,从XOR运算器1140输出的32个编码码元中收缩第0、4、8、12、16、20、24和28码元或第0、1、2、3、4、5、6和7码元,输出具有24个编码码元的编码码元流。
下面参照图9,针对编码器用作(24,4)编码器的一种情况和编码器用作(24,7)编码器的另一种情况,分别对编码器加以描述。这里假设施加给编码器的输入信息位构成一个速率指示符。
首先,对编码器用作(24,7)编码器的一种情况加以描述。当把a0、a1、a2、a3、a4、a5和a6的7-位速率指示符施加给编码器时,把指示把7-位速率指示符施加给编码器的位信息提供给控制器1110。然后,Walsh码发生器1100生成长度为32的Walsh码W1、W2、W4、W8和W16。Walsh码发生器1100可以在控制器1110的控制下进行操作,也可以在没有独立控制的情况下进行操作。图9显示了Walsh码发生器1100在没有独立控制的情况下进行操作的例子。把Walsh码发生器1100生成的Walsh码W1、W2、W4、W8和W16分别提供给相关乘法器。具体地说,把Walsh码W1提供给乘法器1120,把Walsh码W2提供给乘法器1122,把Walsh码W4提供给乘法器1124,把Walsh码W8提供给乘法器1126,和把Walsh码W16提供给乘法器1128。表10所示的是由Walsh码发生器1100生成的长度为32的Walsh码。
表10
  Walsh码序号   Walsh码
  W1   0101 0101 0101 0101 0101 0101 0101 0101
  W2   0011 0011 0011 0011 0011 0011 0011 0011
  W4   0000 1111 0000 1111 0000 1111 0000 1111
  W8   0000 0000 1111 1111 0000 0000 1111 1111
  W16   0000 0000 0000 0000 1111 1111 1111 1111
同时,掩码发生器1105生成掩码M1=0111 0111 0010 0100 0110 00000000 0000和M2=0010 0110 0101 0100 0101 0100 0100 0000,并且把生成的掩码M1和M2分别提供给乘法器1130和1132。
同时,把速率指示符的7个输入信息位分别提供给相关乘法器。表11所示的是7个输入信息位与相关乘法器之间的关系。
表11
  输入信息位   乘法器
  a0   乘法器1120
  a1   乘法器1122
  a2   乘法器1124
  a3   乘法器1126
  a4   乘法器1128
  a5   乘法器1130
  a6   乘法器1132
因此,表12所示的是提供给各个乘法器的输入信息位和Walsh码或掩码。
表12
  乘法器   Walsh码/掩码   输入信息位
  乘法器1120   W1=0101 0101 0101 0101 0101 0101 0101 0101   a0
  乘法器1122   W2=0011 0011 0011 0011 0011 0011 0011 0011   a1
  乘法器1124   W4=0000 1111 0000 1111 0000 1111 0000 1111   a2
  乘法器1126   W8=0000 0000 1111 1111 0000 0000 1111 1111   a3
  乘法器1128   W16=0000 0000 0000 0000 1111 1111 1111 1111   a4
  乘法器1130   M1=0111 0111 0010 0100 0110 0000 0000 0000   a5
  乘法器1132   M2=0010 0110 0101 0100 0101 0100 0100 0000   a6
乘法器将如表12所示提供给它的输入信息位与Walsh码或掩码相乘,并且把它们的结果提供给XOR运算器1140。具体地说,乘法器1120逐个码元地将输入信息位a0与Walsh码W1相乘,并且把它的输出提供给XOR运算器1140。乘法器1122逐个码元地将输入信息位a1与Walsh码W2相乘,并且把它的输出提供给XOR运算器1140。乘法器1124逐个码元地将输入信息位a2与Walsh码W4相乘,并且把它的输出提供给XOR运算器1140。乘法器1126逐个码元地将输入信息位a3与Walsh码W8相乘,并且把它的输出提供给XOR运算器1140。乘法器1128逐个码元地将输入信息位a4与Walsh码W16相乘,并且把它的输出提供给XOR运算器1140。乘法器1130逐个码元地将输入信息位a5与掩码M1相乘,并且把它的输出提供给XOR运算器1140。乘法器1132逐个码元地将输入信息位a6与掩码M2相乘,并且把它的输出提供给XOR运算器1140。
然后,XOR运算器1140以码元为单位对从乘法器1120、1122、1124、1126、1128、11130和1132输出的长度为32的码元流进行异或运算,并且把它的输出提供给收缩器1160。
可以把从XOR运算器1140输出的、长度为32的编码码元流Ws定义为:
方程7
Ws=(W1×a0)+(W2×a1)+(W4×a2)+(W8×a3)+(W16×a4)+(M1×a5)+(M2×a6)
此刻,控制器1110向收缩器1160提供指令它收缩与(24,7)代码有关的收缩位置中的码元的控制信号。然后,收缩器1160从存储器1170接收8个收缩位置,并且从XOR运算器1140提供的长度为32的编码码元中收缩8个收缩位置中的编码码元。也就是说,收缩器1160收缩XOR运算器1140提供的长度为32的编码码元当中,从存储器1170读取的收缩位置中的8个码元。例如,当来自存储器1170的收缩位置是第0、4、8、12、16、20、24和28码元位置时,收缩器1160从长度为32的编码码元中收缩第0、4、8、12、16、20、24和28编码码元,输出24个编码码元。
以上针对编码器具有收缩模式{0,4,8,12,16,20,24,28}的一种情况描述了(24,7)编码器的操作。现在,针对为了降低如上所述的硬件复杂度,编码器具有收缩模式{0,1,2,3,4,5,6,7}的另一种情况描述(24,7)编码器的操作。在这种情况下,当把a0、a1、a2、a3、a4、a5和a6的7-位速率指示符施加给编码器时,把指示把7-位速率指示符施加给编码器的位信息提供给控制器1110。然后,Walsh码发生器1100生成长度为32的Walsh码W1、W2、W4、W8和W16。把Walsh码发生器1100生成的Walsh码W1、W2、W4、W8和W16分别提供给相关乘法器。具体地说,把Walsh码W1提供给乘法器1120,把Walsh码W2提供给乘法器1122,把Walsh码W4提供给乘法器1124,把Walsh码W8提供给乘法器1126,和把Walsh码W16提供给乘法器1128。表13所示的是由Walsh码发生器1100生成的长度为32的Walsh码。
表13
  Walsh码序号   Walsh码
  W1   0101 0101 0101 0101 0101 0101 0101 0101
  W2   0011 0011 0011 0011 0011 0011 0011 0011
  W4   0000 1111 0000 1111 0000 1111 0000 1111
  W8   0000 0000 1111 1111 0000 0000 1111 1111
  W16   0000 0000 0000 0000 1111 1111 1111 1111
同时,掩码发生器1105生成掩码M1=0000 0000 1110 1000 1101 10001100 0000和M2=0000 0000 1100 0000 0111 1110 0010 1000,并且把生成的掩码M1和M2分别提供给乘法器1130和1132。
同时,把速率指示符的7个输入信息位分别提供给相关乘法器。表14所示的是7个输入信息位与相关乘法器之间的关系。
表14
  输入信息位   乘法器
  a0   乘法器1120
  a1   乘法器1122
  a2   乘法器1124
  a3   乘法器1126
  a4   乘法器1128
  a5   乘法器1130
  a6   乘法器1132
因此,表15所示的是提供给各个乘法器的输入信息位和Walsh码或掩码。
表15
  乘法器   Walsh码/掩码   输入信息位
  乘法器1120   W1=0101 0101 0101 0101 0101 0101 0101 0101   a0
  乘法器1122   W2=0011 0011 0011 0011 0011 0011 0011 0011   a1
  乘法器1124   W4=0000 1111 0000 1111 0000 1111 0000 1111   a2
  乘法器1126   W8=0000 0000 1111 1111 0000 0000 1111 1111   a3
  乘法器1128   W16=0000 0000 0000 0000 1111 1111 1111 1111   a4
  乘法器1130   M1=0000 0000 1110 1000 1101 1000 1100 0000   a5
  乘法器1132   M2=0000 0000 1100 0000 0111 1110 0010 1000   a6
乘法器将如表15所示提供给它的输入信息位与Walsh码或掩码相乘,并且把它们的结果提供给XOR运算器1140。具体地说,乘法器1120逐个码元地将输入信息位a0与Walsh码W1相乘,并且把它的输出提供给XOR运算器1140。乘法器1122逐个码元地将输入信息位a1与Walsh码W2相乘,并且把它的输出提供给XOR运算器1140。乘法器1124逐个码元地将输入信息位a2与Walsh码W4相乘,并且把它的输出提供给XOR运算器1140。乘法器1126逐个码元地将输入信息位a3与Walsh码W8相乘,并且把它的输出提供给XOR运算器1140。乘法器1128逐个码元地将输入信息位a4与Walsh码W16相乘,并且把它的输出提供给XOR运算器1140。乘法器1130逐个码元地将输入信息位a5与掩码M1相乘,并且把它的输出提供给XOR运算器1140。乘法器1132逐个码元地将输入信息位a6与掩码M2相乘,并且把它的输出提供给XOR运算器1140。
然后,XOR运算器1140以码元为单位对从乘法器1120、1122、1124、1126、1128、1130和1132输出的长度为32的码元流进行异或运算,并且把它的输出提供给收缩器1160。
可以把从XOR运算器1140输出的、长度为32的编码码元流Ws定义为:
方程8
Ws=(W1×a0)+(W2×a1)+(W4×a2)+(W8×a3)+(W16×a4)+(M1×a5)+(M2×a6)
此刻,控制器1110向收缩器1160提供指令它收缩与(24,7)代码有关的收缩位置中的码元的控制信号。然后,收缩器1160从存储器1170接收8个收缩位置,并且从XOR运算器1140提供的长度为32的编码码元中收缩8个收缩位置中的编码码元。也就是说,收缩器1160收缩XOR运算器1140提供的长度为32的编码码元当中,从存储器1170读取的收缩位置中的8个码元。例如,当来自存储器1170的收缩位置是第0、1、2、3、4、5、6和7码元位置时,收缩器1160从长度为32的编码码元中收缩第0、1、2、3、4、5、6和7编码码元,输出24个编码码元。
其次,对编码器用作(24,4)编码器的另一种情况加以描述。把a0、a1、a2和a3的4-位速率指示符施加给编码器,并且,把其余输入信息位a4、a5和a6初始化成‘0’。然后,Walsh码发生器1100就生成长度为16的Walsh码W1、W2、W4和W8,并且把生成的Walsh码W1、W2、W4和W8分别提供给相关乘法器。具体地说,把Walsh码W1提供给乘法器1120,把Walsh码W2提供给乘法器1122,把Walsh码W4提供给乘法器1124,和把Walsh码W8提供给乘法器1126。表7所示的是由Walsh码发生器1100生成的长度为32的Walsh码。
表16
  Walsh码序号   Walsh码
  W1   0101 0101 0101 0101 0101 0101 0101 0101
  W2   0011 0011 0011 0011 0011 0011 0011 0011
  W4   0000 1111 0000 1111 0000 1111 0000 1111
  W8   0000 0000 1111 1111 0000 0000 1111 1111
  W16   0000 0000 0000 0000 1111 1111 1111 1111
同时,把速率指示符的4个输入信息位分别提供给相关乘法器。表17所示的是4个输入信息位与相关乘法器之间的关系。
表17
  输入信息位   乘法器
  a0   乘法器1120
  a1   乘法器1122
  a2   乘法器1124
  a3   乘法器1126
因此,表18所示的是提供给各个乘法器的输入信息位和Walsh码。
表18
  乘法器   Walsh码/掩码   输入信息位
  乘法器1120   W1=0101 0101 0101 0101 0101 0101 0101 0101   a0
  乘法器1122   W2=0011 0011 0011 0011 0011 0011 0011 0011   a1
  乘法器1124   W4=0000 1111 0000 1111 0000 1111 0000 1111   a2
  乘法器1126   W8=0000 0000 1111 1111 0000 0000 1111 1111   a3
乘法器将如表18所示提供给它的输入信息位与Walsh码相乘,并且把它们的结果提供给XOR运算器1140。具体地说,乘法器1120逐个码元地将输入信息位a0与Walsh码W1相乘,并且把它的输出提供给XOR运算器1140。乘法器1122逐个码元地将输入信息位a1与Walsh码W2相乘,并且把它的输出提供给XOR运算器1140。乘法器1124逐个码元地将输入信息位a2与Walsh码W4相乘,并且把它的输出提供给XOR运算器1140。乘法器1126逐个码元地将输入信息位a3与Walsh码W8相乘,并且把它的输出提供给XOR运算器540。
同时,由于乘法器1128、1130和1132接收初始化成‘0’的输入信息位a4、a5和a6,因此,与来自Walsh码发生器1100的Walsh码W16和来自掩码发生器1105的掩码M1和M2无关,乘法器1128、1130和1132的输出不影响XOR运算器1140的输出。具体地说,与来自Walsh码发生器1100的Walsh码W16的值无关,乘法器1128输出具有均为值‘0’的编码码元的编码码元流。类似地,与来自掩码发生器1105的掩码M1和M2无关,乘法器1130和1132输出每一个都具有均为值‘0’的编码码元的编码码元流。其结果是,尽管把乘法器1128、1130和1132的输出提供给XOR运算器1140,但是,它们不影响XOR运算器1140的输出。把输入信息位a4、a5和a6初始化成‘0’等效于切断乘法器1128、1130和1132的输出的切换操作。
然后,XOR运算器1140以码元为单位对从乘法器1120、1122、1124、1126、1128、1130和1132输出的长度为16的码元流进行异或运算,并且把它的输出提供给收缩器1160。
然后,可以把从XOR运算器1140输出的、长度为32的编码码元流Ws定义为:
方程9
Ws=(W1×a0)+(W2×a1)+(W4×a2)+(W8×a3)
此时,控制器1110向收缩器1160提供指令它收缩与(24,4)代码有关的收缩位置中的码元的控制信号。然后,收缩器1160接收从存储器1170读取的8个收缩位置,并且从XOR运算器1140提供的长度为32的编码码元中收缩8个收缩位置中的编码码元。也就是说,收缩器1160收缩XOR运算器1140提供的长度为32的编码码元当中,从存储器1170读取的收缩位置中的8个码元。例如,当来自存储器1170的收缩位置是第0、1、2、3、4、5、6和16码元位置时,收缩器1160从长度为32的编码码元中收缩第0、1、2、3、4、5、6和16编码码元,输出24个编码码元。
实施例(解码器)
图6显示了与图5所示的编码器相对应的解码器的结构。下面针对解码器用作(24,4)解码器的一种情况和解码器用作(24,7)解码器的另一种情况分别对编码器加以描述。
首先,对解码器用作与(24,7)编码器相对应的(24,7)解码器的情况加以描述。(24,7)解码器接收由(24,7)编码器编码的、具有其值为‘+1’或‘-1’的24个编码码元的编码码元流。将接收的编码码元流施加给零(0)***器650。
同时,一旦接收到预定代码长度信息,控制器630就向(24,7)解码器提供指令它把‘0’,即‘+1’与‘-1’之间的中值***与(24,7)编码器有关的收缩位置中的控制信号。在控制器630的控制下,零***器650从存储器660接收有关与7个输入信息位相对应的8个收缩位置的信息。例如,与7个输入信息位相对应的收缩位置0、4、8、12、16、20、24和28码元位置或第0、1、2、3、4、5、6和7码元位置。
因此,零***器650把‘0’***构成接收编码码元流的24个编码码元当中存储器660提供的收缩位置中,并且把具有32个编码码元的零***码元流提供给码元累加器600。然后,控制器630向码元累加器600提供指令它累加重复了(24,7)编码器的重复频率那么多次的码元的控制信号。由于(24,7)编码器没有进行码元重复,码元累加器600输出32个原样接收码元把32个接收码元提供给相关性计算器620,并且还把它提供给乘法器602、604和606。然后,掩码发生器610生成长度均为32的掩码函数M1、M2和M1+M2,并且把掩码函数M1提供给乘法器602,把掩码函数M2提供给乘法器604,和把掩码函数M1+M2提供给乘法器606。掩码函数随收缩位置(或收缩模式)而改变。当使用收缩位置时,使用用在编码器中的掩码函数。然后,乘法器602以码元为单元将接收码元与掩码函数M1相乘,和乘法器604以码元为单元将接收码元与掩码函数M2相乘。此外,乘法器606以码元为单元将接收码元与掩码函数M1+M2相乘。
在控制器630的控制下,切换器652把从乘法器602输出的码元流提供给相关性计算器622。在控制器630的控制下,切换器654把从乘法器604输出的码元流提供给相关性计算器624。在控制器630的控制下,切换器656把从乘法器606输出的码元流提供给相关性计算器626。然后,相关性计算器620计算长度为32的接收码元流与长度为32的Walsh码之间的所有相关性,并且向相关性比较器640提供相关性最高的Walsh码序号、相关值、和指示在前一级没有使用掩码函数的掩码序号‘0’。
相关性计算器622计算将长度为32的接收码元流与掩码函数M1相乘确定的码元流与长度为32的Walsh码之间的所有相关性,并且向相关性比较器640提供相关性最高的Walsh码序号、相关值、和指示在前一级使用了掩码函数的掩码序号‘1’。相关性计算器624计算将长度为32的接收码元流与掩码函数M1相乘确定的码元流与长度为32的Walsh码之间的所有相关性,并且向相关性比较器640提供相关性最高的Walsh码序号、相关值、和指示在前一级使用了掩码函数的掩码序号‘2’。相关性计算器626计算将长度为32的接收码元流与掩码函数M1+M2相乘确定的码元流与长度为32的Walsh码之间的所有相关性,并且向相关性比较器640提供相关性最高的Walsh码序号、相关值、和指示在前一级使用了掩码函数的掩码序号‘3’。然后,相关性比较器640选择从相关性计算器620、622、624和626接收的值当中的最大值,将相应Walsh码序号和掩码序号连接在一起,并且输出连接值作为解码位。
其次,对解码器用作与(24,4)编码器相对应的(24,4)解码器的另一种情况加以描述。(24,4)解码器接收由(24,4)编码器编码的、具有其值为‘+1’或‘-1’的24个编码码元的编码码元流。将接收的编码码元流施加给零***器650。
同时,一旦接收到预定代码长度信息,控制器630就生成指令(24,4)解码器把‘0’,即‘+1’与‘-1’之间的中值***与(24,4)编码器有关的收缩位置中的控制信号,并且把它提供给(24,4)解码器。在控制器630的控制下,零***器650从存储器660接收有关与4个输入信息位相对应的8个收缩位置的信息。例如,与4个输入信息位相对应的收缩位置是第0、1、2、3、4、5、6和16码元位置。因此,零***器650把‘0’***构成接收编码码元流的24个编码码元当中存储器660提供的收缩位置中,并且把具有32个编码码元的零***码元流提供给码元累加器600。然后,控制器630向码元累加器600提供指令它累加重复了(24,4)编码器的重复频率那么多次的码元的控制信号。
由于(24,4)编码器进行了一次码元重复,码元累加器600累加两次32个接收码元当中重复位置中的码元,并且输出长度为16的码元流。把从累加器600输出的16个接收码元提供给相关性计算器620,并且还把它提供给乘法器602、604和606。在控制器630的控制下,与乘法器602、604和606的输出节点相连接的切换器652、654和656断开,致使乘法器602、604和606的输出不起作用。然后,控制器630向相关性计算器620提供指令它计算接收码元流与长度相同的Walsh码(即长度为16的Walsh码)之间的相关性的控制信号。相关性计算器620计算长度为16的接收码元流与长度为16的Walsh码之间的所有相关性,并且向相关性比较器640提供相关性最高的Walsh码序号、相关值、和指示掩码序号的值。相关性比较器640将从相关性计算器620接收的Walsh码序号和掩码序号连接在一起,并且输出连接值作为解码位。
如上所述,本发明不仅实现了性能最佳,以及复杂度最低的速率指示符编码设备和方法,而且通过利用收缩扩充一阶Reed-Muller码的设备和方法,使用了最佳码字。并且,本发明利用收缩扩充一阶Reed-Muller码的设备和方法,致使把快速Hadamard逆变换用在解码过程中,从而可以使硬件复杂度降到最低,和生成在纠错性能方面最佳的代码。最后,本发明支持(24,4)编码器和(24,7)编码器,因此保证了有效的编码。
虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。

Claims (31)

1.一种编码码元***的编码方法,所编码的码元流具有24个编码码元并且通过使用由XOR运算器对编码输入信息位进行异或运算获得的16个编码码元的编码码元流而生成,该编码的输入信息位通过用长度为16的不同Walsh码编码4个输入信息位而生成,该编码方法包括下列步骤:
重复具有16个编码码元的编码码元流一次;和
从32个编码码元中收缩第0、1、2、3、4、5、6和16码元,从而输出具有24个编码码元的编码码元流。
2.一种编码码元***的编码方法,所编码的码元流具有24个编码码元并且通过使用由XOR运算器对编码输入信息位进行异或运算获得的32个编码码元的编码码元流而生成,该编码的输入信息位通过用长度为32的不同Walsh码和长度为32的不同掩码编码7个输入信息位而生成,该编码方法包括下列步骤:
从32个编码码元中收缩第0、4、8、12、16、20、24和28码元,从而输出具有24个编码码元的编码码元流。
3.根据权利要求2所述的编码方法,其中,掩码包括‘0111 0111 0010 01000110 0000 0000 0000’和‘0010 0110 0101 0100 0101 0100 0100 0000’。
4.一种编码码元***的编码设备,所编码的码元流具有24个编码码元并且通过使用由XOR运算器对编码输入信息位进行异或运算获得的16个编码码元的编码码元流而生成,该编码的输入信息位通过用长度为16的不同Walsh码编码4个输入信息位而生成,该编码设备包括:
重复器,用于重复具有16个编码码元的编码码元流一次,从而输出具有32个编码码元的编码码元流;和
收缩器,从编码码元流的32个编码码元中收缩第0、1、2、3、4、5、6和16码元,从而输出具有24个编码码元的编码码元流。
5.根据权利要求4所述的编码设备,还包括存储器,用于存储要被收缩器收缩的收缩位置,其中,收缩位置是第0、1、2、3、4、5、6和16码元位置。
6.一种编码码元***的编码设备,所编码的码元流具有24个编码码元并且通过使用由XOR运算器对编码输入信息位进行异或运算获得的32个编码码元的编码码元流而生成,该编码的输入信息位通过用长度为32的不同Walsh码和长度为32的不同掩码编码7个输入信息位而生成,该编码设备包括:
收缩器,用于从来自XOR运算器的32个编码码元中收缩第0、4、8、12、16、20、24和28码元,从而输出具有24个编码码元的编码码元流。
7.根据权利要求6所述的编码设备,还包括存储器,用于存储要被收缩器收缩的收缩位置,其中,收缩位置是第0、4、8、12、16、20、24和28码元位置。
8.根据权利要求7所述的编码设备,其中,掩码包括‘0111 0111 0010 01000110 0000 0000 0000’和‘0010 0110 0101 0100 0101 0100 0100 0000’。
9.一种编码码元***的编码设备,所编码的码元流具有24个编码码元,该编码的输入信息位通过用长度为16或32的不同Walsh码和长度为16或32的不同掩码编码4或7个输入信息位而生成,该编码设备包括:
控制器,用于确定输入信息位数是4还是7,和根据确定结果控制编码操作;
Walsh码发生器,用于在控制器的控制下,有选择地生成长度为16或32的5个不同Walsh码;
掩码发生器,用于在控制器的控制下,有选择地生成长度为16或32的2个不同掩码;
数个乘法器,用于一一对应地将4或7个输入信息位乘以来自Walsh码发生器的Walsh码和来自掩码发生器的掩码,和输出每一个具有16或32个编码码元的编码码元流;
XOR运算器,用于对来自乘法器的编码码元流进行异或运算,和输出一个编码码元;
重复器,用于在控制器的控制下,重复来自XOR运算器的编码码元流预定次数,和输出具有32个编码码元的编码码元流;
存储器,用于存储与4个信息位相对应的8个收缩位置和与7个信息位相对应的8个收缩位置;和
收缩器,用于从重复器接收具有32个编码码元的编码码元流,在控制器的控制下,从32个编码码元中收缩从存储器读出的8个收缩位置中的编码码元,和输出具有24个编码码元的编码码元流。
10.根据权利要求9所述的编码设备,其中,当输入信息位数是4时,控制器控制Walsh码发生器和掩码发生器生成长度为16的7个不同Walsh码和掩码,把重复器的重复频率设置成‘1’,和控制收缩器收缩与4个输入信息位相对应的8个收缩位置中的编码码元。
11.根据权利要求9所述的编码设备,其中,当输入信息位数是7时,控制器控制Walsh码发生器和掩码发生器生成长度为32的7个不同Walsh码和掩码,把重复器的重复频率设置成‘0’,和控制收缩器收缩与7个输入信息位相对应的8个收缩位置中的编码码元。
12.根据权利要求10所述的编码设备,其中,存储在存储器中的、与4个输入信息位相对应的8个收缩位置是第0、1、2、3、4、5、6和16码元位置。
13.根据权利要求11所述的编码设备,其中,存储在存储器中的、与7个输入信息位相对应的8个收缩位置是第0、4、8、12、16、20、24和28码元位置。
14.根据权利要求11所述的编码设备,其中,存储在存储器中的、与7个输入信息位相对应的8个收缩位置是第0、1、2、3、4、5、6和7码元位置。
15.根据权利要求13所述的编码设备,其中,掩码包括‘0111 0111 00100100 0110 0000 0000 0000’和‘0010 0110 0101 0100 0101 0100 0100 0000’。
16.根据权利要求14所述的编码设备,其中,掩码包括‘0000 0000 11101000 1101 1000 1100 0000’和‘0000 0000 1100 0000 0111 1110 0010 1000’。
17.一种编码码元***的编码方法,所编码的码元流具有24个编码码元,该编码的输入信息位通过用长度为16或32的不同Walsh码和长度为16或32的不同掩码编码4或7个输入信息位而生成,该编码方法包括如下步骤:
(a)确定输入信息位数是4还是7;
(b)当输入信息位数是4时,利用长度为16的不同Walsh码编码4个输入信息位,和利用具有由XOR运算器对编码输入信息位进行异或运算获得的16个编码码元的编码码元流,重复一次具有16个编码码元的编码码元流并输出具有32个编码码元的编码码元流,以及输出具有24个编码码元的编码码元流;和
(c)当输入信息位数是7时,利用长度为32的不同Walsh码编码7个输入信息位,和利用具有由XOR运算器对编码输入信息位进行异或运算获得的32个编码码元的编码码元流,输出具有24个编码码元的编码码元流。
18.根据权利要求17所述的编码方法,其中,步骤(b)包括如下步骤:
从32个编码码元中收缩第0、1、2、3、4、5、6和16码元,和输出具有24个编码码元的编码码元流。
19.根据权利要求17所述的编码方法,其中,步骤(c)包括如下步骤:
从32个编码码元中收缩第0、4、8、12、16、20、24和28码元,和输出具有24个编码码元的编码码元流。
20.根据权利要求17所述的编码方法,其中,步骤(c)包括如下步骤:
从32个编码码元中收缩第0、1、2、3、4、5、6和7码元,和输出具有24个编码码元的编码码元流。
21.一种编码码元***的编码方法,所编码的码元流具有24个编码码元并且通过使用由XOR运算器对编码输入信息位进行异或运算获得的32个编码码元的编码码元流而生成,该编码的输入信息位通过用长度为32的不同Walsh码和长度为32的不同掩码编码7个输入信息位而生成,该编码方法包括如下步骤:
从32个编码码元中收缩第0、1、2、3、4、5、6和7码元,和输出具有24个编码码元的编码码元流。
22.根据权利要求21所述的编码方法,其中,掩码包括‘0111 0111 00100100 0110 0000 0000 0000’和‘0010 0110 0101 0100 0101 0100 0100 0000’。
23.一种编码码元***的编码设备,所编码的码元流具有24个编码码元并且通过使用由XOR运算器对编码输入信息位进行异或运算获得的32个编码码元的编码码元流而生成,该编码的输入信息位通过用长度为32的不同Walsh码和长度为32的不同掩码编码7个输入信息位而生成,该编码设备包括:
收缩器,用于从来自XOR运算器的32个编码码元中收缩第0、1、2、3、4、5、6和7码元,和输出具有24个编码码元的编码码元流。
24.根据权利要求23所述的编码设备,还包括存储器,用于存储要被收缩器收缩的收缩位置,其中,收缩位置是第0、1、2、3、4、5、6和7码元位置。
25.根据权利要求23所述的编码设备,其中,掩码包括‘0111 0111 00100100 0110 0000 0000 0000’和‘0010 0110 0101 0100 0101 0100 0100 0000’。
26.一种编码码元***的编码设备,所编码的码元流具有24个编码码元,该编码的输入信息位通过用长度为32的不同Walsh码和长度为32的不同掩码编码4或7个输入信息位而生成,该编码设备包括:
控制器,用于确定输入信息位数是4还是7,和根据确定结果控制编码操作;
Walsh码发生器,用于有选择地生成长度为32的5个不同Walsh码;
掩码发生器,用于有选择地生成长度为32的2个不同掩码;
数个乘法器,用于一一对应地将4或7个输入信息位乘以来自Walsh码发生器的Walsh码和来自掩码发生器的掩码,和输出每一个具有32个编码码元的编码码元流;
XOR运算器,用于对来自乘法器的编码码元流进行异或运算,和输出一个编码码元;
存储器,用于存储与4个信息位相对应的8个收缩位置和与7个信息位相对应的8个收缩位置;和
收缩器,用于从XOR接收器接收具有32个编码码元的编码码元流,在控制器的控制下,从32个编码码元中收缩从存储器读出的8个收缩位置中的编码码元,和输出具有24个编码码元的编码码元流。
27.根据权利要求26所述的编码设备,其中,当输入信息位数是4时,收缩器收缩与4个输入信息位相对应的第0、1、2、3、4、5、6和16码元。
28.根据权利要求26所述的编码设备,其中,当输入信息位数是7时,收缩器收缩与7个输入信息位相对应的第0、4、8、12、16、20、24和28码元。
29.根据权利要求26所述的编码设备,其中,当输入信息位数是7时,收缩器收缩与7个输入信息位相对应的第0、1、2、3、4、5、6和7码元。
30.一种编码码元***的编码方法,所编码的码元流具有24个编码码元,该编码的输入信息位通过用长度为32的不同Walsh码编码4或7个输入信息位而生成,该编码方法包括如下步骤:
确定输入信息位数是4还是7;
一旦接收到4或7个输入信息位数,就利用长度为32的不同Walsh码或掩码编码4或7个输入信息位,和输出具有由XOR运算器对编码输入信息位进行异或运算获得的32个编码码元的编码码元流;
一旦接收到基于4个输入信息位的编码码元流,就从构成编码码元流的32个编码码元中收缩第0、1、2、3、4、5、6和16码元,输出具有24个编码码元的编码码元流;和
一旦接收到基于7个输入信息位的编码码元流,就从构成编码码元流的32个编码码元中收缩第0、4、8、12、16、20、24和28码元,输出具有24个编码码元的编码码元流。
31.一种编码码元***的编码方法,所编码的码元流具有24个编码码元,该编码的输入信息位通过用长度为32的不同Walsh码或掩码编码4或7个输入信息位而生成,该编码方法包括如下步骤:
确定输入信息位数是4还是7;
一旦接收到4或7个输入信息位数,就利用长度为32的不同Walsh码或掩码编码4或7个输入信息位,和输出具有由XOR运算器对编码输入信息位进行异或运算获得的32个编码码元的编码码元流;
一旦接收到基于4个输入信息位的编码码元流,就从构成编码码元流的32个编码码元中收缩第0、1、2、3、4、5、6和16码元,输出具有24个编码码元的编码码元流;和
一旦接收到基于7个输入信息位的编码码元流,就从构成编码码元流的32个编码码元中收缩第0、1、2、3、4、5、6和7码元,输出具有24个编码码元的编码码元流。
CNB028011953A 2001-03-20 2002-03-20 码分多址移动通信***中的编码/解码设备和方法 Expired - Fee Related CN1262071C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR2001/14418 2001-03-20
KR20010014418 2001-03-20
KR2001/15294 2001-03-23
KR20010015294 2001-03-23
KR2001/15787 2001-03-26
KR10-2001-0015787A KR100464364B1 (ko) 2001-03-20 2001-03-26 부호분할다중접속 이동통신시스템에서 부호화 및 복호화장치 및 방법

Publications (2)

Publication Number Publication Date
CN1461529A CN1461529A (zh) 2003-12-10
CN1262071C true CN1262071C (zh) 2006-06-28

Family

ID=27350429

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028011953A Expired - Fee Related CN1262071C (zh) 2001-03-20 2002-03-20 码分多址移动通信***中的编码/解码设备和方法

Country Status (9)

Country Link
US (1) US7293224B2 (zh)
EP (1) EP1244237B1 (zh)
JP (1) JP3782995B2 (zh)
CN (1) CN1262071C (zh)
AU (1) AU2002241367B2 (zh)
BR (1) BR0204496A (zh)
CA (1) CA2407691C (zh)
DE (1) DE60217428T2 (zh)
WO (1) WO2002075930A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100724847B1 (ko) 2001-05-09 2007-06-04 삼성전자주식회사 부호분할다중접속 이동통신시스템에서 부호화 및 복호화장치 및 방법
US6990626B2 (en) * 2002-03-29 2006-01-24 Lucent Technologies Inc. Method and apparatus for MAP decoding of first-order reed muller codes and related error correction codes
CN1494332A (zh) * 2002-11-01 2004-05-05 北京三星通信技术研究有限公司 一种用于数字通信***的信道编译码方法及其装置
KR20040085545A (ko) * 2003-03-31 2004-10-08 삼성전자주식회사 통신 시스템에서 오류 정정 부호의 복호 장치 및 방법
US8064528B2 (en) 2003-05-21 2011-11-22 Regents Of The University Of Minnesota Estimating frequency-offsets and multi-antenna channels in MIMO OFDM systems
FR2859850B1 (fr) * 2003-09-12 2006-04-28 Thales Sa Procede de codage lineaire pour transmissions erratiques
US7685505B2 (en) * 2004-01-20 2010-03-23 Qualcomm Incorporated Coding apparatus, and associated method, for forming a punctured binary convolutional code for use in a radio communication system
JP4308817B2 (ja) 2004-12-01 2009-08-05 三星電子株式会社 パケットデータの伝送を支援する移動通信システムにおける信頼度の高いデータ送受信方法及び装置
US8788918B2 (en) * 2008-03-20 2014-07-22 Marvell World Trade Ltd. Block encoding with a variable rate block code
TWI430585B (zh) 2008-09-30 2014-03-11 Realtek Semiconductor Corp 區塊碼解碼方法與裝置
JP5235629B2 (ja) * 2008-11-28 2013-07-10 株式会社日立製作所 無線通信装置の符号化及び変調方法、並びに復号方法
CN101777919B (zh) * 2009-01-12 2014-07-16 瑞昱半导体股份有限公司 区块码解码方法
US20230081418A1 (en) * 2021-09-15 2023-03-16 Samsung Display Co., Ltd. Systems and methods for transition encoding compatible pam4 encoding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0918450A (ja) * 1995-06-27 1997-01-17 Sony Corp 符号分割多重化送信装置
US6064663A (en) * 1996-09-10 2000-05-16 Nokia Mobile Phones Limited Cellular CDMA data link utilizing multiplexed channels for data rate increase
US6084904A (en) * 1997-07-25 2000-07-04 Motorola, Inc. Method and apparatus for adjusting a power control setpoint threshold in a wireless communication system
US6347122B1 (en) * 1998-01-13 2002-02-12 Agere Systems Guardian Corp. Optimal complement punctured convolutional codes for use in digital audio broadcasting and other applications
US6147964A (en) * 1998-05-07 2000-11-14 Qualcomm Inc. Method and apparatus for performing rate determination using orthogonal rate-dependent walsh covering codes
EP1742380B1 (en) * 1998-02-19 2010-06-30 Qualcomm Incorporated Forward link power control in a cellular system using signal to noise ratio of a received signal
KR100416987B1 (ko) * 1998-03-19 2004-08-04 삼성전자주식회사 통신시스템의부가정보삽입장치및방법
US6353626B1 (en) * 1998-05-04 2002-03-05 Nokia Mobile Phones Limited Methods and apparatus for providing non-uniform de-multiplexing in a multi-carrier wide band CDMA system
CA2378493C (en) 1999-07-06 2009-11-17 Samsung Electronics Co., Ltd. Apparatus and method for encoding/decoding transport format combination indicator in cdma mobile communication system

Also Published As

Publication number Publication date
AU2002241367B2 (en) 2004-11-25
DE60217428T2 (de) 2007-05-16
DE60217428D1 (de) 2007-02-22
EP1244237B1 (en) 2007-01-10
CN1461529A (zh) 2003-12-10
US20030026224A1 (en) 2003-02-06
EP1244237A2 (en) 2002-09-25
CA2407691A1 (en) 2002-09-26
WO2002075930A1 (en) 2002-09-26
US7293224B2 (en) 2007-11-06
JP2004527949A (ja) 2004-09-09
CA2407691C (en) 2007-10-09
BR0204496A (pt) 2004-06-22
JP3782995B2 (ja) 2006-06-07
EP1244237A3 (en) 2003-12-17

Similar Documents

Publication Publication Date Title
CN1252962C (zh) 用于数据通信***的速率匹配设备和方法
CN1262071C (zh) 码分多址移动通信***中的编码/解码设备和方法
CN1531236A (zh) 通信***中的解码设备及方法
CN1199478C (zh) 在cdma***中执行上行链路速率匹配的方法和移动台
CN1208903C (zh) 用于码分多址移动通信***的信道编码/解码设备和方法
CN1135754C (zh) 减小码分多址通信装置所产生调幅干扰的***和方法
CN1130856C (zh) 码分多址通信***的码率控制装置和方法
CN1402459A (zh) 符号映射传输格式组合指示符位的设备和方法
CN1201626C (zh) 用于通过无线接口的压缩模式通信的方法和设备
CN1223103C (zh) 移动通信***中用于进行发送和接收的设备和方法
CN1461535A (zh) 在异步码分多址通信***中编码/解码传输格式组合指示符位的设备和方法
CN1383622A (zh) 移动通信***中编码和解码传输格式组合指示符的设备和方法
CN1697359A (zh) 用于发送和接收数据的***、装置和方法
CN1394407A (zh) 用于通信***的混合自动重复请求设备和方法
CN1553602A (zh) 移动通信***中***填充比特的设备和方法
CN1507714A (zh) 对存在码间干扰并在多路发送和接收中进行按位交织编码的数字数据流进行编码/解码的方法及相应***
CN1831900A (zh) 解密装置和解密方法
CN1633770A (zh) 速率匹配方法
CN101043251A (zh) 使用码分多址的无线通信***中的物理层处理
CN1555138A (zh) 数据传送信道间速率匹配方法及相应装置、基站和移动站
CN1685621A (zh) 用于解交织通信设备中的交织数据流的方法和装置
CN1395773A (zh) 通过复用信道发送信息符号的处理方法和装置以及相应的接收处理方法和装置
CN1130867C (zh) 在移动通信***中生成准正交码和扩展信道信号的设备和方法
CN1409905A (zh) 传输数据帧的方法和装置以及匹配数据速率的方法和装置
CN1698282A (zh) 通信***中用于解码纠错码的装置及其方法

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: 20060628

Termination date: 20180320

CF01 Termination of patent right due to non-payment of annual fee