降低多载波调制中的峰值功率的系统和方法 【发明领域】
本发明涉及多载波调制系统和方法。
【发明背景】
用于多谐波调制的常规系统和方法针对多个中心频率中的每一个中心频率采用信号星座,其中唯一地表示数据元素(如比特)的每种可能排列。
多谐波信号包括调制到每个中心频率信号星座上的数据元素。这种调制可以按频率来执行,也可以采用例如IFFT技术以并行方式执行。
不利的方面在于,频率星座点的某些排列会导致多谐波信号中的高峰值功率。频率星座点的其他排列会导致多谐波信号中的低峰值功率。
图1中显示了此情况的一个实例,其中标号10处所示地是例如OFDM中可能采用的多载波配置。在此实例中,有八个载波。多载波信号的振幅通过将这些多载波所用星座点以复数形式相加得到。通常,这种复数加法将会得到靠近某个平均值的值,因为正在合并的值通常具有某种程度上的随机性。某种程度上随机的复数加法的实例如标号12处所示,而合并的振幅如标号14处所示。
在其他情况中,复数加法将会导致很大的峰值,因为这些值全部以相加方式合并。此情况的实例如标号16处所示,其中合并的振幅如18所示。
最好有一种不存在上述这些缺点的多载波调制方法。
发明概述
本发明的一个宽的方面提供了一种多谐波调制方法。该方法包括针对多个中心频率中的每一个中心频率定义包括多个星座点的相应的信号星座;针对每个谐波和M个数据元素值的每种排列,定义具有至少一个星座点的相应集合(其中任何一个星座点可用于表示M个数据元素值的排列),从而提供用于表示M个数据元素值的排列的可供选择的星座点;至少一个具有至少一个星座点的所述集合具有一个以上的星座点;通过如下步骤来生成多谐波信号:将数据元素映射到多个信号星座,并且在有可供选择的星座点的情况下,选择可使多谐波信号的峰值对平均功率比降低的星座点。
在一些实施例中,在有可供选择的星座点的情况下,选择使所述多谐波信号的峰值功率降低的星座点的步骤包括:搜索可选星座点的所有可能排列,以获得使可能的峰值对平均功率比绝对最小的星座点集合。
在一些实施例中,在有可供选择的星座点的情况下,选择使所述多谐波信号的峰值功率降低的星座点的步骤包括:搜索可选星座点的所有可能排列,以获得使可能峰值对平均功率比小于预定阈值的星座点集合。
在一些实施例中,具有至少一个星座点的每个集合包括两个星座点。
本发明的另一个宽的方面是提供一种用于将M×K个数据元素集调制到多谐波信号上的方法;其中将K个数据元素调制到M个中心频率中的每一个中心频率上,K>=1和M>=2。该方法包括,针对M个中心频率中的每一个中心频率和K个数据元素值的每种排列,定义相应的可用于表示该中心频率上K个数据元素值的排列的多个星座点;对于M×K个数据元素的特定集合,针对M个中心频率中的每一个中心频率定义K个数据元素值的特定排列;针对M个中心频率中的每一个中心频率确定特定的不同的多个星座点;从每组特定的不同的多个星座点中选择一个星座点,以使多谐波信号的峰值对平均功率比降低。
在一些实施例中,搜索单个星座点的组合包括随机地从每个特定的不同的多个星座点中选择星座点;利用随机选择的星座点估算峰值对平均功率比;如果峰值对平均功率比小于预定阈值,则停止搜索;重复执行如下步骤直到峰值对平均功率比小于预定阈值为止:将随机选择的星座点中的至少一个改为该其所属特定的相应星座点集合中的另一个星座点,并重新估算峰值对平均功率比。
在一些实施例中,针对各信号星座,确定用于表示M个数据元素值给定排列的至少一个星座点包括针对M个数据元素和至少一个伪数据元素的每种排列执行星座整形;对于各信号星座,针对伪数据元素值的每种排列执行星座整形,以生成相应的整形输出;给定信号星座的相应的整形输出共同包括用于表示M个数据元素值排列的至少一个星座点。
本发明的另一个宽的方面提供一种对包括多个星座点的信号星座执行星座整形的方法。所述方法包括将某个成本与多个星座点中的各星座点相关联;定义块的分层结构,所述分层结构具有包括至少第一和最后一层的多个层;各层具有的块比其前一层少;其中第一层是通过如下步骤形成的:按照成本将所有星座点排序,然后将最低成本的星座点组分配给第一整形分割(shaping partition),如果划分包括多个整形分割,则继续将次低成本的星座点组分配给第二整形分割,并依此类推直到将最高成本的星座点组分配给最后一个整形分割,其中根据各整形分割中星座点的成本来为该整形分割分配成本,以及每个整形分割是第一层块;其中,其他每个层上的元素是通过合并前一层的两个块形成的,且其成本根据该前一层的两个块的成本来进行分配,每一层的块根据成本由一个所述元素或一组所述元素组成;最后一层只有一个包括多个元素的块;整形增益通过只映射到最后一层的元素的子集来取得。
在一些实施例中,分配给每个星座点的成本是其能量。
在一些实施例中,至少一些层块(layer block)只是前一层块的重新排序合并。
在一些实施例中,对于其中的块是前一层的块重新排序合并得到的块组的层,所有组都具有相同的大小。
在一些实施例中,在其中的块是前一层的块重新排序合并得到的块组的至少一层上,所述组具有不同的大小。
该方法还可以包括按如下步骤执行寻址:应用输入比特集合的第一子集来识别最高层的块中的元素;应用输入比特集合的后续子集来识别后续层上的块,其中在第一层识别特定的整形分割;在第一层,应用输入比特的最后一个子集来识别在第一层上识别的特定整形分割中的特定的信号星座点。
在一些实施例中,采用基于霍夫曼树的寻址方法。在其他实施例中,采用基于固定树的寻址方法。
在一些实施例中,采用了256个点星座;层1有16个分割,各包括16个星座点;层2有8个块,各包括16个元素;层3有4个块,各包括8个元素,这8个元素的大小为{16、16、32、32、32、32、32、64};层4有2个块,各包括64个元素;以及层5只有一个块,包括4096个元素。
在一些实施例中,输入比特包括多个数据比特和至少一个伪比特,以及该方法还包括对该至少一个伪比特的值的每种排列重复执行16的方法。
在一些实施例中,该方法对多个信号星座中的每一个重复执行,以生成每个信号星座的相应的多个整形输出。然后通过从每组相应的多个整形输出中适当地选择可使峰值均值功率降低的一个整形输出。
本发明的另一个宽的方面提供一种多谐波调制器,它包括:信号发生器,适于针对多个中心频率中的每一个中心频率生成包括多个星座点的相应信号星座的信号;星座映射器,适于针对每个谐波和M个数据元素值的每种排列,定义具有至少一个星座点的相应集合,其中任何一个星座点可用于表示M个数据元素值的排列,从而提供可选择用于表示M个数据元素值排列的星座点,至少一个具有至少一个星座点的所述集合具有一个以上的星座点;峰值平均功率降低功能(PAPR功能),适于针对每个中心频率,从通过所述星座映射器映射到的至少一个星座点中选择一个星座点,以使所述多谐波信号的峰值对平均功率比降低;其中,所生成的信号利用该峰值平均功率降低功能选择的星座点发送。
本发明的另一个宽的方面提供一种调制器,它具有:整形装置,用于对多个信号星座中的每一个多次执行星座整形,以生成相应的多个整形输出;以及峰值平均功率降低装置,用于从每组多个整形输出中选择不同的单个整形输出,以使通过合并各单个整形输出形成的信号的峰值功率降低。
要注意,本发明的其他实施例提供一种计算机可读媒体和/或处理平台,例如适于实现上述或下文描述的方法/系统中的任何一项的通用目的处理器、定制的处理器、FPGA、DSP、ASIC。
附图简述
下文将参考附图详细说明本发明的优选实施例,附图中:
图1是说明采用常规多载波调制方法可如何导致高峰值功率的实例;
图2是说明采用本发明实施例提供的方法可如何将36QAM用于降低峰值功率的实例;
图3是选择使PAPR降低的星座点的第一方法的流程图;
图4是选择使PAPR降低的星座点的第二方法的流程图;
图5是采用星座整形(constellation shaping)和PAPR降低算法的OFDM发射机结构的方框图;
图6是图5的星座整形算法的简化方框图;
图7a、图7b和图7c分解说明在图5的星座整形算法中可如何执行寻址操作;
图8、图9和图10是说明采用各种星座整形算法的图5所示系统的性能结果的图示。
优选实施例的详细说明
根据本发明的实施例,在多载波系统中使用信号星座,其中采用了针对至少一些数据元素组合的冗余星座点。数据元素可以是比特,但并非必须。多载波系统可以是例如OFDM或其他形式的多谐波调制系统。
针对多载波的每个载波频率,定义具有多个星座点的信号星座。在每个符号持续期间,在多个载波的每个载波上发送星座点之一。
参考图2,其中显示了一个有N个载波的实例,其中每个载波具有一个相关的36-QAM星座。第一个、第二个和第N个载波分别具有各自相关的36-QAM星座,一般地用标号20、22和30表示,第三个载波至第N-1个载波的细节则未显示。每个星座点代表在载波频率上发送的一对I和Q振幅分量。但是,对于每个载波,并不按每符号log236个比特(约每符号5.2个比特)映射到这样的星座上,而是每符号映射数量减少的比特,在本实例中,每符号只映射两个比特。因为通常只需要四个星座点来表示两个比特,但有36个星座点可用,所以可以将36个可用星座点中的9个不同星座点分配用于表示各两比特组合。
这在图2的实例中用不同的阴影图案来表示。在第一个载波的星座20中,有九个带右斜条纹的星座点30,它们分配来表示两个比特的四种可能排列的第一种排列;有九个带左斜条纹的星座点32,它们分配来表示两个比特的四种可能排列的第二种排列;有九个带网格填充的星座点34,它们分配来表示两个比特的四种可能排列的第三种排列;以及有九个无填充的星座点,它们分配来表示两个比特的四种可能排列的第四种排列。其他载波的星座22和30类似于图2所示的星座。九个星座点中的任何一个可用于表示相同的两个比特。
不必为每对比特定义相同数量的星座点,但优选实施例中却是如此。同时也不必如以上示例一样用星座点来表示等间隔的给定比特对,但优选这样做,因为这为降低峰值功率提供了最大的灵活性。当然应理解,可将任意星座用于N个载波中的每一个载波,它们甚至无需是同一个星座。而重要的是,每个星座包括一些冗余映射,更一般地说,至少一个星座需要包括一些冗余映射。冗余映射数量越多,则越容易降低峰值功率,如下文所述。
就图2的示例而言,多载波信号将由从与要在第一载波上传输的两个比特相关的第一载波的九个星座点组中选择的一个星座点,加上从第二载波的九个星座点组中选择的一个星座点等类推得到的星座点组成。因此有9N种不同的方式来表示相同的2N比特序列。
再次参考图1,回顾一下,假定瞬间发射的多载波信号的峰值功率是通过对每个载波执行复振幅的复加法而确定u的。对于给定的N比特序列,如果采用图2的星座,则用于表示相同N比特序列的9N种不同的可能方式中的每一种会导致相应不同的多谐波信号复数加,从而会得到不同的峰值功率。选择一种得到可接受的且多数情况下降低了的峰值功率的特定表示。
在以图3的流程图说明的有可供选择的星座点的第一实施例中,说明了一种方法,此方法包括:对所有排列估算峰值与均值功率比(步骤3-1),然后搜索可供选择的星座点的所有可能排列,以得到产生最小可能的峰值对平均功率比的一组星座点(步骤3-2)。在上述实例中,这包括搜索所有所述的9N种不同的可能的映射方式,以得到具有最小峰值功率的一种。在一个实现方案中,这种搜索步骤是在每次要调制一组给定的2N个比特时以实时方式执行的。在另一个实现方案中,假定答案总是相同,则如果2N足够小,就可以先验地对每个长度为2N的可能的比特序列进行搜索,以得到一个查找表,用以将每个2N比特序列映射到可能使峰值功率绝对最小的对应排列。
在另一个实施例中,并不搜索所有可能的映射方式,而是建立一个预定阈值来表示可接受的峰值功率。然后以实时方式对可能满足此阈值的任何可能的映射方式执行搜索。当找到具有小于阈值的峰值功率的可能的映射方式时,停止搜索。
任何适合的搜索技术都可以用于搜寻针对给定输入的、将导致可接受的峰值功率的适当的特定映射。图4的流程图说明一种例示搜索技术。在此示例中,搜索单星座点的组合从步骤4-1开始,在此步骤随机地从每组特定的不同的多个星座点中选择一个星座点。接下来在步骤4-2,利用随机选择的星座点估算峰值对平均功率比。在步骤4-3,如果峰值功率比小于预定阈值,则停止搜索。如果峰值功率比大于预定阈值,则在步骤4-4重复执行如下步骤直到峰值对平均功率比小于预定阈值为止:将随机选择的星座点中的至少一个星座点改为其所属的特定的不同星座点的集合中的另一个星座点,并重新估算峰值对平均功率比。此步骤重复执行,直到峰值对平均功率比低于阈值为止。
采用星座整形和峰值对平均功率比降低算法的OFDM发射机结构
下文将在OFDM发射机上下文中描述上述峰值对平均功率比降低算法的详细实例。此实施例的另一个特征还在于提供一种星座整形的创新方法。
本发明此实施例提供的OFDM发射机结构如图5所示。该发射机具有作为比特装入器500的输入的输入比特流498,其中数据比特分成J组,一般地用501表示。假定有J个不同子载波组。在图5中,块502和504表示对J个不同子载波组中的两组子载波执行的星座整形算法,对其他子载波组也设有类似的算法块。各星座整形算法502和504快的输入由两个比特集组成,即由比特装入器500形成的J组比特501之一的数据比特以及(一般地用506表示)PAPR降低算法生成的一个或多个伪比特。PAPR降低算法506生成的伪比特一般地用508表示。PAPR降低算法506确定这些伪比特的值,如下所述。
星座整形算法块500和502的输出确定各子载波组的二维(2-D)符号。进一步地详细说明本实例,其中,为J个比特组中的每组分配16个子载波,在此情况下共有16×J个子载波。对每个子载波组,单独使用星座整形算法。
就此实例而言,每个星座整形算法块对16个子载波中的每一个载波定义2-D符号。第一个星座整形算法块502的输出用503表示,最后一个星座整形算法块504的输出用505表示。所有星座整形算法块的输出都输入到IDFT(反离散傅立叶变换)功能块510。因此在本例中,对IDFT 510的输入是N=16×J维复矢量,其中N表示发射机中所用载波(谐波)的数量。每个载波从2-DQAM星座发送一个点。
调制由IDFT 510来执行。IDFT 511的输出通过一个并串转换器512,并对每个OFDM符号添加循环前缀以生成总输出。
采用星座整形算法将伪比特508和数据比特501映射到星座点,下文将对此予以说明。
星座整形算法
整形是一种用于使发送数据所需功率相对于未整形的(立方形)星座所需功率降低、同时使星座点之间的最小距离保持相同的方法。整形增益是通过采用比未整形星座更大的星座大小来实现的,其中星座大小的增加由星座扩展比(CER)给出。CER定义为整形星座的每2维符号的点数与在未整形星座中取得相同总速率所需的每2维符号最少点数之比。
在图5的示例结构中,针对每个32维矢量(16维的复维数)提供了独立的星座整形算法。每个载波发送一个2维点,因此一组16个2维载波表示32维矢量。每个这样的组将被称为“帧”,而每个2维点将被称为“符号”。
在图6中显示了一个非常简单的星座整形示意图。如上所述,每个星座被分为M个符号环或符号壳。一个壳编号定义这样一个壳,壳中的一点定义一个符号。例如,对于每个帧,可以利用壳映射器602将K个整形比特600映射到十六个壳{m1、m2...m16},而u个未编码的数据比特604利用信号点映射606选择各壳中的点。由图5的PAPR降低算法506输出产生的伪比特被用作K个整形比特600之一。假定B是每个整形帧发送的比特数,可以发现B=K+16u(因为每个帧有16个符号)。壳映射600的作用在于为16个子载波中的每一个载波选择16个壳之一。于是,对于这样选择的每个环,u个未编码比特选择壳内的一个特定点。
假定M是每符号壳数量,换言之为星座所划分成的壳数量。于是,一个符号所用的星座点数量L则由如下公式给出:L=M×2U。可以确定CER,(每符号实际星座点数)/(每符号最小星座点数)。因为每个符号承载u个数据比特+K/16个整形比特,所以最小的星座大小为2u+K/16。实际星座大小是M×2u。因此CER为Mx2u2u+K/16=M2K/16.]]>
在优选实施例中,选择M应使2维CER至少为1.35,即M≥1.35×2K/16。
举例说明,对应于各种K值,为达到1.35的CER所需的最小M值如表1所示。 K M≥1.35*2K/16 25 M≥3.99 41 M≥7.97 57 M≥15.95
表1不同的k和M值
符号的L个星座点按如下排序:壳0包括2U个最小能量点、壳1包括2U个次最小能量点以及依次类推直到壳M-1。为每个壳i分配成本ci,成本ci与壳i中点的平均能量成比例。
各种将K个整形比特映射到环(图6的壳映射602)的树结构图602均可以采用。接下来,说明另外两个可以采用的树结构实例,一个是基于霍夫曼树的,而另一个是基于固定树的。
霍夫曼树
下文给出在每个子载波采用一个QAM-64星座的上下文中的一个实例。映射执行以“层1”为底部而以“层5”为顶部。参考图7A,层1总体用标号700来表示,它由16个块702组成,其中每个块表示一个发送的符号,一个符号是来自QAM-64星座的一个点。块标记为QAM64-1(层_1-1)、...、QAM64-16(层_1-16)。可用于每个2维符号的64个点按其能量非降序排序,并编组成16个环,每个环4个点。(环0由4个能量最低的点组成,而环15由4个能量最大的点组成)。环的能量是该环中4个点的平均能量。层1上给定块的每个环是Qi,i=0、...、15。
层2(总体用标号704表示)由八个块706构成。两个相邻层1上的块合并成一个层2上的块。层2上的每个元素具有指向层1上不同块中的两个环的指针。换言之,层2上的每个元素对一定i和j为QiQj。如同层1一样,将层2上的每个块的元素组成16个环。因为层1上的环有256种不同的可能组合,所以每个层2块具有256个元素。层2上每个元素的能量是层1上层2元素所指向的那两个环的平均能量。同样,这256个元素根据它们的能量排序,并编组成各具有16个元素的16个壳。(壳0由16个具有最低能量的点组成,壳15由16个具有最大能量的点组成)。这样就为各包含十六个QiQj组合的每个层2块定义了十六个壳Si,i=0、...、15。
层3(总体用标号710表示)由4个块712组成。两个相邻层2块706合并成一个层3块712。层3块中的每个元素具有指向层2上不同块中的两个壳的指针。换言之,层3上的元素对一定i和j为SiSj。层2上的壳有256种不同的可能组合,所以每个层3块具有256个元素。这256个元素根据它们的能量排序,并编组成8个壳Ti,i=1,8。为了降低寻址的复杂性,此阶段的合并操作利用数量不等的元素来实现。一个具有良好性能的特定实例是,选择大小为{16、16、32、32、32、32、32、64}的壳。具有最小能量的元素置于较小的壳中。壳0由16个具有最低能量的点组成,壳7由64个具有最大能量的点组成。这样就为每个层3块定义了8个壳Ti,i=0、8,每个层3块包含数量可变的SiSj个组合。
总体用标号714表示的层4由两个块716组成,其中两个相邻的层3块712合并成一个层4块716。层4块中的每个元素具有指向层3上的不同块中的两个壳的指针。因为在层3每个块具有8个壳,层3上的壳有64种不同的可能组合,所以每个层4块具有64个元素TiTj(对于任意i和j)。元素按它们的能量排序,但在层4不分组。因此,层4具有64个按能量排序的元素Ui。
总体用标号718表示的层5由一个块720组成,该块由两个层4块718组成。层5块中的每个元素具有指向层4上的不同块中的两个元素的指针。因为在层4每个块具有64个元素,所以层4上的元素有4096种不同的可能组合UiUj(i和j任意),因此层5块具有4096个元素。层5元素根据它们的能量排序而不进行任何分组,得到一个层5元素Vi(i=1、...、4096)的集合。
在没有整形的情况下,在层5选择一个元素需要12比特。整形增益是通过将少于12的比特映射到层5,以使映射到给定比特集合的点有冗余来实现的。层5上的子集按最小能量来选择。
在由一组R个比特组成的输入中,其前x个比特在层5用来选择元素。需要12个比特来选择一个元素,但是为了实现整形增益,要采用少于12的比特,最好用7、8或9个比特来选择层5上的元素。
层5上的每个元素指向层4上的两个元素,而层4上的每个元素指向层3上的两个壳。因此在层5选择的元素指向4个层3上的壳。在层4没有进行分组,所以不需要额外的比特来选择层4上的元素。选择层3上的每个壳中的元素以下至层2。因为每个壳中的元素数量不相同,所以在层3需要从输入中读取数量可变的比特。为了从大小为16、32或64的壳中选择元素,分别需要4、5或6个比特。因此,从输入读取4、5或6个比特,以在层3选择每个块的壳中的元素(根据壳大小)。
在层3选择的每个元素指向层2上的两个壳,其中每个壳具有16个元素。为下至层1,需要选择层2每个壳中的元素。对于层2上的每个块,从输入读取4个比特,以选择壳中的16个元素之一。在层2选择的元素指向层1上的两个环,其中每个环具有4个点。从输入读取2个比特,以选择层1上的环中的4个点之一。
假定Rn是从层n下至层n-1所需从输入读取的比特数量,n=1至5。在层1,对于每个块,要从一组4个点中选择一个点,即每个块需要2个比特。因为有16个层1块,所以R1=16×2=32。在层2,对于每个块,要从一组16个元素中选择一个元素,所以每个块需要4个比特。因为有8个层2块,所以R2=8×4=32。层3所需的比特数量有所不同,因为该层的壳大小是不相同的。R3可以在16(对应于所有层3块中具有16个元素的每个壳)和24(对应于所有层3块中具有64个元素的每个壳)之间变动。R4为0,因为在层4不进行分组。R5选择按如下要求变化,即使寻址中所用的比特数量为固定的,且Rn的和(n=1至5)为输入的大小R。
假定层5具有2x个元素,这样在层5使用x个比特来选择一个元素。由此得到指向两个层4元素的指针,注意在层4不需要任何比特。从层4往下,由指针提供对壳的引用,所以需要一定数量的比特来选择该给定壳内的元素。所需的比特取决于壳的大小。因为层3上的壳大小各不相同,所以该层所需的比特不是常量,因此每个壳必须指定所需比特,并相应地从输入中捕获它们。层2和1具有16的固定壳大小,因此需要4个比特用于选择。如下条件是必需的:信号星座所用的总比特数应该是常数值,又因为层3所需的比特有所不同,所以必须引入一种方法来调整在顶层选择所用比特,以便比特的总和始终为常数。
假定在顶层,可能有总计I(=4096)个元素,需要大小为i的子集来容纳总数固定为R的输入比特。这表示只采用了1个元素中的i个。i值的选择是通过试验来确定的,即对不同的值进行尝试,直到R=输入的大小、K=整形比特的数量都为整数为止。正如以下将要说明的那样,121个输入比特中的57个比特用作整形比特,需要4096个元素中的i=194个元素。请注意R=K+16u,因此u=4意味着用四个信息比特来从层1壳中16个元素选择点。
为了确定适当的i,K按如下公式计算:
K=log2[Σn=1i2Rn′]]]>
其中Rn′是从顶层元素n沿树形结构向下寻址所需的整形比特数量,而K-Rn′则是在顶层用于选择元素n的比特数量。
图7C是用于寻址的示例霍夫曼树结构,图7B则显示用于寻址的树层次结构。图7C显示4096个可能的元素中的总计194个元素。前70个用于层5上的7位寻址。其余58个7位地址中的54个用作8位地址的前7位,即有54×2=108个可能的8位层5地址。58个7位地址的其余4个用作9位地址的前7位,即有4×4=16个可能的16位层5地址。因此,我们有Rn′=48、49、50和(70×2^(50))+(108×2^(49))+(16×2^(48))=2^(57)=2K=可能的整形映射数量。
如上所述,计算不同的i值,直到R和K为整数为止。再者,应该选择R和K以提供所需的CER值,即:
2562R/16≅1.35]]>
假定b=K-Rn′,则b∈{b1,...,bj=b1+j-1},其中b1是b的最小值,j是b可取的不同值的数量。子集中的顶层元素根据b的值分组。然后利用霍夫曼树结构为每个元素分配代码。将具有从b1至bj的值的元素从左到右置于树的底部的不同层上。将每个元素以精确的高度b放置于树中,这意味着该元素可以用长度为b的代码来表示。这等效于为具有值b1的元素分配来自从0到s1-1的第一组元素的代码,s1、s2...sj分别是值各为b1、...、bj的各个集合中的元素的总数。对于具有值b2的元素,添加一个最小位(significant bit),这样,代码从2×s1开始到(2×s1+s2-1)。同样地,具有值b3的元素从2×(2×s1+s2)开始到[2×(2×s1+s2)]+S3-1,并依此类推。
层3壳的优化配置之一是{16、16、32、32、32、32、32、64}(参考图7C)。已发现,为发送R=121个比特,i应为194。在i个元素的子集内,只有j=3个不同的b值,它们是7、8或9。因此,在层5,将194个元素分成3个集合,且可以通过算法操作定位指定的元素。在层4有两个各包括64个元素的块。最后,层3至层1上的所有块各有256个元素,只是壳分组方式有所不同。
因此,在层5,只选择映射输入所需的4096个元素的子集。在本例中,因为将在层5使用7、8或9个比特,所以只需要4096元素的前194个元素,它们是层5中具有最小能量的194个元素。这194个元素是根据层3所需比特数量确定的。这194个元素由三组组成,即分别具有18、17和16个比特的R3值、大小分别为S1=70,S2=108和S3=16的组1、组2和组3。因此,R5对于组1、组2或组3必须分别为7、6或9,以使R3和R5中总计使用25个比特。
然后将霍夫曼树结构用于对层3、4和5寻址。从输入中读取7位。如果7位的值小于70,则选择组1中的元素。由于组1中的所有元素在层3需要18个比特,所以满足R3+R5=25个比特。
如果7位的值大于或等于70,则从输入再提取一个比特,并将8位的值与248比较。如果8位的值小于248,则选择组2中的元素。否则,从输入又提取一个比特,并根据9位的值选择组3的元素。结果,本算法以将固定数量的输入比特映射到16个环以形成一帧而结束。
为了作进一步的说明,以下将以不同方式来说明上述实例。假定2维子空间中有16个壳,则4维子空间中2维子星座的笛卡儿积中有16×16=256个元素。4维元素根据它们的平均能量排序,16个后续元素合并成一个4维壳。由此得到在4维子空间中基数相等的16个壳。同样地,4维壳的笛卡儿积(在每个8维子空间中得到256个元素)根据它们的平均能量来排序,将后续元素合并到8维壳中。为了降低寻址的复杂性,此阶段的合并操作是利用后续8维壳中不等数量的元素来实现的,具体来说,合并到后续8维壳中的元素(按平均能量递增排序)的数量分别等于{16、16、32、32、32、32、32、64}。这得到8维子空间中的8个壳。接着,我们得到16维子空间中的64个元素(未合并)和32维空间中的4096个元素(未合并)。注意,16维和32维元素的基数不相等(这些基数全部是2的整数幂)。最终的星座从具有最低能量的32维元素中选择,以使总比特率为57。注意在未整形的情况下,比特率将是16×4=64。这意味着整形冗余度等于7比特/32维,因此得到:
CER=16/(257/16)-1.35
在分层结构的最高层上寻址是利用如图7B和7C所示的霍夫曼树来实现的。第一步是确定所选32维元素属于组I、组II还是组III。这是通过假定将“0”分配给该树每个节点的左分支,将“1”分配给右分支而获得的二进制数来标记194个元素来实现的。然后,通过将每个最终节点(对应于一个元素)的分支的二进制标号级联而得到其标号(其中最高有效位对应较接近树顶层的值)。这将使最终节点的标号按从左到右递增排序。注意,最终节点的标号由7比特(对应组I)、8比特(对应组II)以及9比特(对应III)组成。在此情况下,要选择32维元素,我们就从输入流中提取7比特,并将其数值与阈值T1比较(即组I中最后一个元素的标号)。如果该标号小于或等于T1,则属于组I,于是还有57-7=50个比特要继续在所选元素内进行寻址处理。否则我们从输入流中再提取一个比特,得到8位标号。我们将所得到的8位标号的数值与阈值T2(即组II中最后一个节点的标号)比较。同样地,如果该标号小于或等于阈值T2,则我们利用剩余的比特在组II内继续进行寻址处理(在本例中,剩余49个比特)。如果该标号大于T2,则我们从输入流再提取一个比特,并利用得到的9位在组III内选择元素(在本例中,剩余48个比特可供选择组III内的元素)。
在(如上所述)选择32维中194个元素之一后,继续在所选元素内寻址,提供了设有194个存储位置且各存储位置为4×3=12位的查找表,其中3位地址段指向构建给定的32维元素的8维壳(注意每个32维元素只是四个8维壳的笛卡儿积)。这样得到194×12=2328位的ROM。
为了继续在8维壳中寻址,注意到所选的8维壳由16,32或64个3维元素(分别对应于4、5、6个比特)组成。在此情况下,我们(为每个8维子空间)从输入提取另外4、3或2个比特,以将每8维的比特总数增加为8个比特。我们使用这些8位地址选择每个8维子空间中的一个8维元素。为此,提供了设有256个存储位置且各存储位置存储位置为4×2=8位的查找表,其中这些8位地址的每个4位地址段指向构造给定8维元素的4维壳。这些位用于选择每个4维子空间中的一个4维壳。
为了继续在4维壳内寻址,提供了设有256个存储位置且各存储位置存储位置为4×2=8位的查找表,其中这些8位地址的每个4位地址段指向组成给定4维元素的2维壳。这些位用于选择每个2维子空间中的一个2维壳。如上所述,(根据每个2维壳内的信号点的数量)将采用另一组输入比特来选择每个2维子星座内的最终点。这样最终结束寻址。
所建议的寻址方案的总存储需求等于:
M总计=2328+2048+2048=6424个比特~0.73K
注意除非两个作为组成部分的较低维分量相同,如A×A,否则笛卡儿积中的元素始终以(能量相等的)对出现,即A×B和B×A。此特性可用于使所需存储空间大小减少约2倍,而代价是非常少的比较次数(将标号与具有相同分量的元素的标号所对应的某些锚点作比较)。仿真结果表明所建议的星座达到约1分贝的整形增益。
作为一个特定实例,假定每个2维子星座由划分成16个壳、各壳含16个点的256个点组成。输入由57个整形比特加另外的64个比特组成。这57个整形比特在所提出的整个寻址方案过程中参与2维壳的选择,并将用于在每个2维子星座中选择一个唯一的2维壳。其余64个比特将分成16个部分,各部分具有4个比特,这4个比特中的每一个将在随后用于从所选2维壳的每一个2维壳中可选的点中选择唯一的一个点。我们只需要关注利用57个整形比特选择2维壳的操作。在这些2维壳内选择最终的2维点属于次要任务。此过程同样可应用于任何其他2维点的数量非256、而2维壳的数量为16的实例情况。例如,如果2维子星座由64个点组成,则有16个2维壳(各具有4个点)以及输入比特总数将是57比特(用于整形)加用于选择最终2维点的32个比特(所述57个整形比特的寻址过程对缩放2维子星座大小的所有情况都完全相同)。下文中,我们假定2维子星座由256个点组成。有57+64=121个输入比特,我们选择其中的前57比特用作寻址(整形比特)。我们现在来考虑57个整形比特的如下情况:
情况I:0010010....
前7位是0010010,其值为18(小于T1=69)。在此情况下,将在图7C所示的组I中进行选择。值18将指向相应查找表中的某个位置,该查找表包含4个各为3位的指针,用于指定相关的8维元素(此类8维元素有4个)。在知道这些8维元素之后,通过从剩余输入比特中顺序提取适当数量的比特并利用这些比特查询用于在4维和2维子空间内定址的相关查找表,以选择4维和2维内它们的相关元素,这样继续在那些8维元素内的每一个8维元素内寻址。
情况II:1010010 0 100100
前7位是1010010,其值等于82且大于T1=69。继续处理,我们从输入中再提取一个比特,它等于0。然后将前8位,即值为164的10100100T2=247作比较。因为该标号小于T2,所以在组II内进行选择。这时,还剩下49个整形比特可用于继续选择8维元素。
情况III:1111011 1 100100
前7位是1111011,其值为123,大于69,而前8位即11110111的值是247,所以在组II内进行选择,并将此前8位用于在组II中寻址。
情况IV:1111110 1 100100
前7位的值大于T1=69,且前8位的值大于T2=247,所以在组III内进行选择,因此提取前9位用于在组III内寻址。
固定树
下文将描述固定树实现方案的实例。固定树指以统一方式(将相等数量的元素合并成壳)来实现分层结构中所有层上元素的合并。这样就导致搜索相应的存储器查找表需要较大的存储空间、较少的计算次数。就层1和层2而言,固定树的结构与霍夫曼树相同。层3由4个块组成。两个相邻层2块合并成一个层3块。层3块中的每个元素具有指向层2上不同块中的两个壳的指针。与在层2一样,每个块具有16个壳,层2上的壳具有256种不同的可能组合,所以每个层3块具有256个元素。这256个元素按照它们的能量排序,并划分成16个壳,各壳有16个元素。
层4由2个块组成,其中两个相邻层3块合并成一个层4块。层4块的每个元素具有指向层3上的不同块中的两个壳的指针。与在层3一样,每个块具有16个壳,层3上的壳具有256种不同的可能组合,所以每个层4块具有256个元素。这256个元素按照它们的能量排序,并划分成128个壳,每个壳具有2个元素。
层5由1个块组成,该块由两个层4块组成。层5块的每个元素具有指向层4上的不同块中的两个元素的指针。与在层4一样,每个块具有128个壳,层4上的壳具有16384种不同的可能组合,所以层5块具有16384个元素。在层5,元素根据它们的能量排序,但不进行任何分组。
89个比特的输入中,前7位用于选择层5上的元素。因为7个比特可以选择128个不同的元素,所以在层5,只使用前128个元素。层5上的每个元素指向层4上的两个壳。在层4,需要在每个壳中选择元素以下至层3。对于层4上的每个块,从输入读取一个比特,以选择某个壳中的两个元素之一。在层4所选的元素指向层3上的两个壳,其中每个壳具有16个元素。对于层3上的每个元素,从输入读取4个比特来选择层3上的16个元素之一。在层3所选的元素指向层2上的两个壳,其中每个壳具有16个元素。同样地,对于层2上的每个块,从输入读取4个比特来选择层2上的16个元素之一。在层2所选的元素指向层1上的两个环,其中每个环具有4个元素。对于层1上的每个块,从输入读取2个比特来选择层1上某个环中4个点之一。
各层从输入读取的比特总数如下:在层5读取7个比特;在层4读取2×1=2个比特;在层3读取4×4=16个比特;在层2读取8×4=32个比特;以及在层1读取16×2=32个比特,总计89个比特。
也可采用不同的固定树结构。表2显示了另一种固定树结构,该固定树结构在层1具有4个环。固定树结构1固定树结构2壳数量每个壳中点的数量读取的比特数壳数量每个壳中点的数量读取的比特数层11642×16=324164×16=64层216164×8=321610×8=0层316164×4=1616164×4=16层412821×2=212821×2=2层51638417×1=71638417×1=7
表2两种可能的固定树结构
PAPR降低算法
现在可以调整先前描述的PAPR算法,以适用于上述星座整形算法。再次参考图5,每个星座整形算法502和504的输出由是B个比特生成的32维矢量。在本实施例中,这B个比特由从输入比特流提取的B-1个数据比特和由PAPR算法506选择的一个伪比特508组成。当伪比特是0或1时,由星座整形算法502和504执行两次B比特寻址(addressing of B bits),分别对应于伪比特等于0或1的情况。这样每个32维矢量就有两种选择。对于采用N个谐波的OFDM系统,调制器的输入是通过使J个32维矢量级联而生成的,使得J×16=N,每个载波发送一个2维点。对于J个32维矢量中的每一个32维矢量,我们可以从一组2个32维矢量中选择一个32维矢量,这样,根据伪比特的值可以以2J种不同方式生成2N维矢量。因此,此上下文中PAPR降低算法506的目的是,从一组2J个矢量中选择2N维矢量,此2N维矢量在调制之后产生最低峰值振幅。一般来说,2J是一个使穷举搜索因计算高度复杂而无法执行的大数值。
所述每星座两种选择与参考图2讨论的所述每星座多种(9种)选择相似。在本例中,采用一个伪比特就得到每星座两种选择。更一般地说,可以采用较大数量的伪比特以得到每星座更多种选择。但是,为找到具有最低峰值功率的特定排列需要进行更多的搜索。
在一个实施例中,采用迭代搜索算法在32维矢量的两种选择之间进行选择。最初设置每个32维矢量的伪比特的值,使2N维矢量具有最低能量。注意,最低能量特性并不意味着经过调制后就会得到最低峰值振幅。接着,从第一32维矢量开始,使伪比特的值反转(即选择第一个32维矢量的另一种选择),同时保持其他伪比特的值不变。然后执行调制,并计算峰值振幅。如果在峰值振幅有所下降,则保留伪比特的新值;否则舍弃该新值。对所有J个32维矢量重复此过程,如此迭代多次。
该迭代搜索算法不是最优的,因为无法保证得到的结果给出全局最小的峰值振幅。一般从不同初始条件开始或以不同方式执行搜索算法将得到不同的结果。一种提高算法性能的方法,是从相同的初始条件开始但更改搜索模式来获得多个解。第一解可以通过从第一个32维矢量开始并更改第一、第二、第三等32维矢量的伪比特来获得。另一个解则可以通过从第J-1个32维矢量开始,并以降序方式更改32维矢量的伪比特,即顺次更改第J-1、第J-2等32维矢量的伪比特而获得。可以采用不同的搜索模式,不同的搜索模式得到不同的解。最后,从所获得的解中选择给出最小峰值振幅的解。
结果
已经获得N=1024个载波(其中每个载波发送一个64QAM星座点)的仿真结果。仿真结果已通过发送105个OFDM符号得到。对于每个符号,存储具有最大峰值振幅和OFDM符号功率的样本。通过峰值振幅除以所有OFDM符号的平均功率而获得峰值对平均功率比。通过计算PAPR大于给定PAPR的符号的出现次数来绘制PAPR结果。
对于星座整形算法,每16个载波发送一个伪比特和88个数据比特,即R=88+1=89。描绘了与霍夫曼树和固定树结构对应的结果。对于固定树,采用了表2中提供的两种结构。在图8中,描绘了采用和不采用星座整形算法时的PAPR。迭代次数设为12,只得到一个解。在图9中,迭代的次数设为3,在该迭代搜索算法中得到4个解,并采用这4个解中最优的解。
对于获得的结果,如果对应某些伪比特组合的OFDM符号的PAPR小于7分贝,则不执行额外的迭代以及搜索另一个解。迭代搜索算法中所用IDFT的次数由(解的个数)×(迭代次数)得到,因此其结果与图8和图9所绘制的结果一样。
从这些附图中,可以观察到,星座整形算法中所用的树结构对结果有轻微影响。利用迭代搜索算法,得到一个解的仿真在符号削波概率为10-4下获得了7.9分贝的PAPR,而得到四个解的仿真在10-4获得了7.4分贝的PAPR。因此增加所得解的数量在一定程度上提高PAPR算法性能。
还取得了整形算法另一种版本(将8个而非16载波成组)的仿真结果。采用具有4个层次的固定树结构,表5中显示了该树结构。层1、2、3和4分别包括8、4、2和1个块。
固定树结构3壳数量每个壳中点的数量读取的比特数层11642层216164层312821层416384111
表3固定数结构3
在此情况下,通过8个载波发送的比特总数是45,即每载波5.625个比特,CER=16/2K/8=1.30。
图10中给出了不同树结构的结果。固定树结构3在符号削波概率(symbolclipping probability)为10-4下将PAPR提高0.4分贝。已证明采用此星座整形算法的OFDM符号的平均功率比未采用整形算法的OFDM符号少2.17分贝。
所述算法的吞吐量比将16个载波成组的算法的性能略高(5.625比特/每载波对5.5625比特/每载波)。因为每符号伪比特数比将16个载波成组的树结构多两倍,所以所用IDFT的数量是迭代搜索算法中的两倍。将比特寻址到环的复杂性较低,因为树结构较简单。
根据以上论述,对本发明作各种修改和变化是可能地。因此应理解,在所附权利要求书的范围内,可以以不同于本说明书中所描述的方式来实施。
参考文献:
[1]G.D.Forney,Jr.and L. P.Wei的“Multidimensional constellations--Part I;Introduction,figures of merit,and generalized cross constellations”,IEEE J.Select.Areas Coitimun.,vol.SAC--7,pp.877-892,August 1989。
[2]A,K.Khandani and P.Kabal的“Shaping multi-ctim&nsional signalspaces-Part I:Optimum shaping,shell mapping”,IEEE Trans.Inform.Theory,vol.IT-39,pp.1799-1808,Nov.1993。
[3]A.K.Khandani and P.Kabal,“Shaping multi-dimensional signal spaces-PartII:shell-addressed constellatiohs”IEEE Trans.Inform.Theory,vol.IT-39,pp.1809-1819,Nov.1993。
[4]F.R.Kschischang and S.pasupathy,“Optimal shaping properties of thetruncated polydisc”IEEE Trans.Inform.Theory,vol.40,pp.892--903,May 1994.