技术领域
[0001] 本申请涉及通信技术领域,尤其涉及一种编码方法及装置。
相关背景技术
[0002] 通信系统通常采用信道编码提高数据传输的可靠性,保证通信的质量。当前,5G移动通信系统包括三大应用场景增强型移动宽带(Enhanced Mobile Broad Band,eMBB)、URLLC以及大规模机器通信(Massive Machine-Type Communications,mMTC),对数据通信提出了新的要求,polar(极化)码是第一种能够被严格证明“达到”信道容量的信道编码方法,可以适用于5G通信以及未来的通信系统。
具体实施方式
[0090] Polar码是一种线性块码,其生成矩阵为GN,其编码过程为是一个二进制的行矢量,长度为N(即码长);且 这里 定义
N
为log2 N个矩阵F2的克罗内克(Kronecker)乘积,x1是编码后的比特(也叫码字), 与生成矩阵GN相乘后就得到编码后的比特,相乘的过程就是编码的过程。在polar码的编码过程中, 中的一部分比特用来携带信息,称为信息比特,信息比特的索引的集合记作 中另外的一部分比特置为收发端预先约定的固定值,称之为冻结比特,其索引的集合用 的补集 表示。冻结比特通常被设为0,只需要收发端预先约定,冻结比特序列可以被任意设置。
[0091] 为了进一步提高系统的编码性能,可以在polar外级联具有校验能力的外码,例如级联循环冗余校验(英文:Cyclic Redundancy Check,CRC)码。在采用串行抵消列表(Serial Cancellation List)译码等译码方式时,通常在译码结束后根据循环冗余校验对幸存路径进行挑选,以提升系统信道编码的性能。当polar码用于控制信道,那么除了误块率(block error rate,BLER)这一常规的技术指标,还需要满足虚警率(false alarm rate,简写为FAR)指标。例如,若CRC比特数为L,采用串行抵消列表译码等译码方式,译码结束后利用循环冗余校验,对幸存路径中的T条路径进行校验,则FAR一般要求低于(2^(-L+log2(T)))。注意到,数值T的选择,不依赖于循环冗余校验多项式及长度,而是依赖于译码实现复杂度、译码性能等。这样就需要考虑如何根据FAR的要求找到合适的CRC校验与polar码的级联方式。本申请着重于根据L的取值确定合适的CRC多项式,以满足系统需求,保证通信的正常进行。
[0092] 本申请实施例可以应用于无线通信系统,需要说明的是,本申请实施例提及的无线通信系统包括但不限于:长期演进系统(Long Term Evolution,LTE)以及下一代5G移动通信系统的三大应用场景增强型移动宽带(Enhanced Mobile Broad Band,eMBB)、URLLC以及大规模机器通信(Massive Machine-Type Communications,mMTC)。或者该无线通信系统还可以是终端对终端(Device to Device,D2D)通信系统,其它的通信系统,或者未来的通信系统等。
[0093] 本申请涉及的通信装置可以配置在通信设备中,而通信设备主要包括网络设备或者终端设备。本申请中的发送端如果为网络设备,则接收端为终端设备;本申请中的发送端如果为终端设备,则接收端为网络设备。
[0094] 在本申请实施例中,如图1(a)所示,通信系统100包括网络设备110和终端112。当无线通信网络100包括核心网时,该网络设备110还可以与核心网相连。网络设备101还可以与IP网络200进行通信,例如,因特网(internet),私有的IP网,或其它数据网等。网络设备为覆盖范围内的终端提供服务。例如,参见图1(a)所示,网络设备110为网络设备110覆盖范围内的一个或多个终端提供无线接入。除此之外,网络设备之间的覆盖范围可以存在重叠的区域,例如网络设备110和120。网络设备之间还可以可以互相通信,例如,网络设备110可以与网络设备120之间进行通信。
[0095] 由于网络设备110或终端112发送信息或数据时均可以使本申请实施例中描述的编码方法,为方便描述,本申请实施例将通信系统100简化为如图1(b)所示的包括发送端101和接收端102的系统。发送端101可以为网络设备110,接收端102为终端112;或者,发送端101为终端112,接收端102为网络设备110。网络设备110可以是用于与终端设备进行通信的设备。例如,可以是LTE系统中的演进型基站(Evolved Node B,eNB或eNodeB),5G网络中的网络侧设备,其它网络中与终端进行通信的网络侧设备,或者未来网络中的网络侧设备等。或者该网络设备还可以是中继站、接入点、车载设备等。在终端对终端(Device to Device,D2D)通信系统中,该网络设备还可以是担任基站功能的终端。终端可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS)等。
[0096] 本申请涉及的编码流程大致为:对待编码信息进行CRC校验,如有需要,对CRC校验后的比特序列进行交织等操作,然后再进行Polar码编码。除此之外,还可以对Polar码编码后的编码比特按照目标码长M进行包括但不限于速率匹配、调制、数模变换、变频等中的一种或几种。
[0097] 图2为一种通信系统的流程示意图,如图2所示,在发送端,信源依次经过信源编码、信道编码、速率匹配(可选步骤)和调制后发出。在接收端,依次通过解调、解速率匹配(可选步骤)、信道译码和信源译码输出到信宿。本申请的实施例主要涉及信道编码和信道译码(简称为信道编译码),下面将通过具体的例子来进行介绍。本申请实施例中的信道编译码可以采用级联了CRC校验的Polar码。
[0098] 本申请提供一种编码方法及装置,以满足FAR要求,本申请涉及的方法及装置既适用于控制信道,也适用于数据信道,既适用于上行,也适用于下行。下面结合附图详细说明本申请提供的编码方法及装置。
[0099] 图3为本申请提供的一种编码方法实施例的流程图,如图3所示,本实施例的执行主体为发送端,本实施例的方法可以包括:
[0100] S101、发送端对A个待编码信息比特根据CRC多项式进行CRC编码,得到第一比特序列,第一比特序列包括L个CRC比特和A个信息比特,L、A为正整数。L也常被称为CRC长度。
[0101] 考虑到FAR的要求,当L=11,所述CRC多项式为以下任意一个多项式:
[0102] D^11+D^10+D^9+D^5+1;或
[0103] D^11+D^7+D^6+D^2+1;或
[0104] D^11+D^10+D^9+D^6+D^4+D^2+1;或
[0105] D^11+D^10+D^9+D^7+D^5+D+1;或
[0106] D^11+D^9+D^8+D^6+D^5+D+1;或
[0107] D^11+D^10+D^9+D^8+D^7+D^5+D^4+D+1;或
[0108] D^11+D^10+D^3+D+1;或
[0109] D^11+D^5+D^3+D+1;或
[0110] D^11+D^10+D^9+D^8+D^6+D^5+D^3+D+1;或
[0111] D^11+D^10+D^8+D^7+D^6+D^5+D^3+D+1;或
[0112] D^11+D^9+D^7+D^6+D^5+D^4+D^3+D+1;或
[0113] D^11+D^10+D^9+D^7+D^6+D^3+D^2+D+1;或
[0114] D^11+D^8+D^6+D^5+D^4+D^3+D^2+D+1
[0115] 根据所选多项式进行CRC编码的具体过程与目前通行的CRC编码并无不同。
[0116] 具体地,发送端接收到A个待编码信息比特后,根据CRC多项式添加L个CRC比特,得到第一比特序列。
[0117] 上述A个待编码信息比特可以是对待发送的信息比特进行顺序排列或逆序排列的,也有可能是对信息比特进行其它的处理后得到的,此处不做限定。
[0118] CRC编码的一种实现方式为移位寄存器形式。例如,图4为一种常用的移位寄存器(简称寄存器)形式实现CRC编码的方式,寄存器的反馈抽头由CRC多项式D^4+D^2+1决定,寄存器内容初始化为预设值。编码时,待编码信息比特逐比特从一侧移入寄存器,反馈抽头与寄存器对应状态进行比特异或运算,从而寄存器状态发生变化。当所有待编码比特移入寄存器后,再移入与CRC长度相等位数的比特0,然后读取寄存器状态,将寄存器状态作为CRC比特,作为CRC编码码字。第一比特序列中的L个CRC比特可以位于A个待编码信息比特之后,也可以位于A个待编码信息比特之前,或者任意收发两端约定的位置。
[0119] S102、发送端对第一比特序列进行交织,得到第二比特序列。
[0120] 上述交织的步骤可以是对第一比特序列中的部分比特进行交织,也可以是对第一比特序列中的所有比特进行交织。需要注意的是,本步骤为可选步骤:当需要对信息比特和/或CRC校验比特的位置进行调整的时候,本步骤才有必要;如果没有这方面的需要,那么本步骤在实际的编码过程中是可以省略的,这种情况下,步骤S103中的第二比特序列即为第一比特序列。具体的交织方案并非本申请的内容,不再赘述。
[0121] S103、发送端对第二比特序列进行极化编码,得到第三比特序列。当S102步骤省略时,本步骤为发送端对第一比特序列进行极化编码,得到第三比特序列。
[0122] 其中,发送端对第二比特序列进行极化编码的编码方法可采用现有的极化编码方法,此处不再赘述。
[0123] S104(图中未画出),发送端对第三比特序列执行包括但不限于速率匹配、调制、模数变换、变频等中的部分或全部步骤后发送。
[0124] 需要说明的是,步骤S104中的速率匹配步骤是可选的,如果编码的码长与目标码的码长相同,则不需要速率匹配。由于本发明实施例的重点不在于步骤S104,因此,此处不再详细描述,例如,在一种可能的实现方式中,本领域的技术人员也可以参见现有技术中的做法。
[0125] 本实施例提供的编码方法,通过发送端对A个待编码信息比特根据本申请中提出的CRC多项式进行CRC编码,得到第一比特序列,接着对第一比特序列进行交织(如有需要)和polar编码。从而使得在级联CRC后,所采用的极化编码方式能够满足FAR的需求。
[0126] 需要说明的是,接收端(译码侧)接收到待译码信息比特后,也要根据同样的CRC多项式进行CRC校验,此处不再赘述。
[0127] 本申请实施例在译码端的译码操作大致为:接收待译码序列,根据CRC多项式对获得的待译码序列进行Polar码译码。
[0128] 基于图3所示的编码方法的同一发明构思,如图5所示,本申请实施例中还提供一种装置700,该编码装置700用于执行图3所示的编码方法。图3所示的编码方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,编码装置700包括:输入接口701,用于获取待编码的比特序列;逻辑电路702,用于执行上述图3所示的编码方法,具体请见前面方法实施例中的描述,此处不再赘述;输出接口703,用于输出编码后的比特序列。
[0129] 可选的,编码装置700在具体实现时可以是芯片或者集成电路。
[0130] 可选的,当上述实施例的编码方法中的部分或全部通过软件来实现时,如图6所示,编码装置800包括:存储器801,用于存储程序;处理器802,用于执行存储器801存储的程序,当程序被执行时,使得编码装置800可以实现上述图3实施例提供的编码方法。
[0131] 可选的,上述存储器801可以是物理上独立的单元,也可以与处理器802集成在一起。
[0132] 可选的,当上述图3实施例的编码方法中的部分或全部通过软件实现时,编码装置800也可以只包括处理器802。用于存储程序的存储器801位于编码装置800之外,处理器802通过电路/电线与存储器801连接,用于读取并执行存储器801中存储的程序。
[0133] 处理器802可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
[0134] 处理器802还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
[0135] 存储器801可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器801也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器801还可以包括上述种类的存储器的组合。
[0136] 基于图3所示的编码方法的同一发明构思,如图7所示,本申请实施例中还提供一种编码装置实施例的结构示意图,该装置可以包括:第一编码模块901、交织模块902和第二编码模块903,第一编码模块901用于对A个待编码信息比特根据CRC多项式进行循环冗余校验CRC编码,得到第一比特序列,所述第一比特序列包括L个CRC比特和A个信息比特,L、A为正整数。其中L=11,所述CRC多项式为以下任意一个多项式:
[0137] D^11+D^10+D^9+D^5+1;或
[0138] D^11+D^7+D^6+D^2+1;或
[0139] D^11+D^10+D^9+D^6+D^4+D^2+1;或
[0140] D^11+D^10+D^9+D^7+D^5+D+1;或
[0141] D^11+D^9+D^8+D^6+D^5+D+1;或
[0142] D^11+D^10+D^9+D^8+D^7+D^5+D^4+D+1;或
[0143] D^11+D^10+D^3+D+1;或
[0144] D^11+D^5+D^3+D+1;或
[0145] D^11+D^10+D^9+D^8+D^6+D^5+D^3+D+1;或
[0146] D^11+D^10+D^8+D^7+D^6+D^5+D^3+D+1;或
[0147] D^11+D^9+D^7+D^6+D^5+D^4+D^3+D+1;或
[0148] D^11+D^10+D^9+D^7+D^6+D^3+D^2+D+1;或
[0149] D^11+D^8+D^6+D^5+D^4+D^3+D^2+D+1。
[0150] 一般地,CRC编码采用的CRC多项式通过移位寄存器实现。第一比特序列中的L个CRC比特可以位于A个待编码信息比特之后,也可以位于A个待编码信息比特之前,或者任意收发两端约定的位置。交织模块902为可选模块,用于对所述第一比特序列进行交织操作,得到第二比特序列。当需要采用分布式CRC等方式需要对信息比特和/或CRC校验比特的位置进行调整的时候,本模块才有必要。如果没有这方面的需要,那么本模块在实际的编码过程中是可以省略的,这种情况下,第二比特序列即为第一比特序列。第二编码模块903用于对所述第二比特序列进行极化编码,当没有交织模块902时,第二编码模块903用于对第一比特序列进行极化编码。
[0151] 需要注意的是,图7中并未画出速率匹配模块、调制模块、发送模块等模块,其中发送模块用于发送编码后的序列,当然,在发送之前,还要进行速率匹配(如果需要)、调制等操作。
[0152] 基于与上述实施例提供的译码方法同一发明构思,如图8所示,本申请实施例还提供一种译码装置1000,译码装置1000可用于执行本申请实施例提供的译码方法,译码装置1000包括:
[0153] 获取模块1001,用于获取待译码的比特序列;
[0154] 译码模块1002,用于按照译码方法对所述待译码的比特序列进行译码操作,所述译码方法是根据CRC多项式和polar编码方法确定的。
[0155] 基于上述实施例提供的译码方法的同一发明构思,如图9所示,本申请实施例中还提供一种译码装置1100,该译码装置1100用于执行上述译码方法。上述译码方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,译码装置1100包括:输入接口1101,用于获取待译码的比特序列;逻辑电路1102,用于执行上述译码方法;输出接口1103,用于输出译码后的序列。
[0156] 可选的,译码装置1100在具体实现时可以是芯片或者集成电路。
[0157] 可选的,当上述实施例的译码方法中的部分或全部通过软件来实现时,如图10所示,译码装置1200包括:存储器1201,用于存储程序;处理器1202,用于执行存储器1201存储的程序,当程序被执行时,使得译码装置1200可以实现上述实施例提供的译码方法。
[0158] 可选的,上述存储器1201可以是物理上独立的单元,也可以与处理器1202集成在一起。
[0159] 可选的,当上述实施例的译码方法中的部分或全部通过软件实现时,译码装置1200也可以只包括处理器1202。用于存储程序的存储器1201位于译码装置1200之外,处理器1202通过电路/电线与存储器1201连接,用于读取并执行存储器1201中存储的程序。
[0160] 处理器1202可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
[0161] 处理器1202还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
[0162] 存储器1201可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1201也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1201还可以包括上述种类的存储器的组合。
[0163] 本申请实施例还提供了一种网络设备,参见图11所示,上述编码装置和/或译码装置可以被安装在网络设备110中。除了上述编码装置和译码装置外,网络设备110还可以包括一个收发器1302,编码装置编码后的比特序列经过后续的变化或处理后通过收发器1302发送给终端112,或者该收发器1302还用于接收来自于终端112的信息/数据,这些信息/数据经过一系列处理被转换成待译码的序列,经过译码装置的处理后得到译码后的序列。当网络设备110还可以包括网络接口1304,用于与其它的网络设备进行通信。
[0164] 同理,上述编码装置和/或译码装置可以被配置在终端112中。除了上述编码装置和/或译码装置外,终端112还可以包括一个收发器1312,编码装置编码后的比特序列经过后续的变化或处理后(包括但不限于速率匹配、调制、数模变换、变频等中的一部分或全部)通过收发器1312发送给网络设备110,或者该收发器1312还用于接收来自于网络设备110的信息/数据,这些信息/数据经过一系列处理被转换成待译码的序列(包括但不限于变频、模数变换、解调、解速率匹配等中的一部分或全部),经过译码装置的处理后得到译码后的序列。终端112还可以包括用于输入输出接口1314,用于接收用户输入的信息,对于需要发送给网络设备110的信息,则需要经过编码器的处理后再通过收发器1312发送给网络设备110。译码器译码后的数据经过后续处理后也可以通过输入输出接口1314呈现给用户。
[0165] 本申请实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行图3及上述实施例所示的编码方法和上述实施例提供的译码方法。
[0166] 本申请实施例还提供了一种Polar码编码装置,包括上述图5~图7任一种编码装置和图8~图10任一种译码装置。
[0167] 本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行图3所示的编码方法以及上述实施例提供的译码方法。
[0168] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0169] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0170] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0171] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0172] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0173] 显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。