[go: up one dir, main page]

CN110768748B - Convolutional Code Decoder and Convolutional Code Decoding Method - Google Patents

Convolutional Code Decoder and Convolutional Code Decoding Method Download PDF

Info

Publication number
CN110768748B
CN110768748B CN201810845860.3A CN201810845860A CN110768748B CN 110768748 B CN110768748 B CN 110768748B CN 201810845860 A CN201810845860 A CN 201810845860A CN 110768748 B CN110768748 B CN 110768748B
Authority
CN
China
Prior art keywords
data
error detection
detection data
circuit
bits
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.)
Active
Application number
CN201810845860.3A
Other languages
Chinese (zh)
Other versions
CN110768748A (en
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.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
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
Application filed by Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN201810845860.3A priority Critical patent/CN110768748B/en
Publication of CN110768748A publication Critical patent/CN110768748A/en
Application granted granted Critical
Publication of CN110768748B publication Critical patent/CN110768748B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开一种回旋码解码器及回旋码解码方法。本发明的回旋码解码器及回旋码解码方法利用预测的信息进行解码,因此能够更快速地解调/解码出信号。提早解调/解码出信号可以提早结束运算状态,达到省电的效果。回旋码解码器根据一接收数据及一辅助数据进行解码以得到一目标数据,且包含一第一误差检测数据产生电路、一通道编码电路、一第一选择电路、一第一维特比解码电路、一第二误差检测数据产生电路、一比较电路、一第二选择电路以及一第二维特比解码电路。

Figure 201810845860

The invention discloses a convolution code decoder and a convolution code decoding method. The convolutional code decoder and the convolutional code decoding method of the present invention use the predicted information for decoding, so that the signal can be demodulated/decoded more quickly. The early demodulation/decoding of the signal can end the operation state early to achieve the effect of power saving. The convolutional code decoder performs decoding according to a received data and an auxiliary data to obtain a target data, and includes a first error detection data generation circuit, a channel encoding circuit, a first selection circuit, a first Viterbi decoding circuit, A second error detection data generation circuit, a comparison circuit, a second selection circuit and a second Viterbi decoding circuit.

Figure 201810845860

Description

回旋码解码器及回旋码解码方法Convolutional Code Decoder and Convolutional Code Decoding Method

技术领域technical field

本发明涉及无线通信系统,尤其涉及无线通信系统的解码器及解码方法。The present invention relates to a wireless communication system, and in particular, to a decoder and a decoding method of the wireless communication system.

背景技术Background technique

在低功率广域网络(Low-Power Wide-Area Network,LPWAN)中,使用 者对于低功耗的需求越来越重视。因此,如何在有限的系统资源内,达到涵 盖范围延伸(coverageenhancement)的效果,是近年来各家业者瞩目的目标。 在市场趋势下,物联网的概念已渐臻成熟。大量的使用装置都需要连上网络, 其中部分装置的需求是需要低数据量的传输,搭配长时间的等待。在此情况 下,由于追求低耗能、低复杂度、低成本、高覆盖率等特性,且可能需要在 信噪比(Signal-to-Noise Ratio,SNR)很差的环境(例如:在小区边缘(celledge) 或地下室)中操作,因此传送端(例如:基地台)会以重复传送信号的方式 来帮助接收端正确地解出信号。而为了有效地提高解调的正确率,接收端必 须花费够长的时间等待,并接收这些重复传送的信号。然而,这个延长的运 算时间,将使得耗电增加。In Low-Power Wide-Area Network (LPWAN), users pay more and more attention to the requirement of low power consumption. Therefore, how to achieve the effect of coverage extension within limited system resources has been the focus of various industry players in recent years. Under the market trend, the concept of the Internet of Things has gradually matured. A large number of devices need to be connected to the network, and some of the devices require low-volume data transmission with long wait times. In this case, due to the pursuit of characteristics such as low energy consumption, low complexity, low cost, and high coverage, it may be necessary to operate in an environment with poor Signal-to-Noise Ratio (SNR) (for example, in a cell cell edge or basement), so the transmitting end (eg: base station) will help the receiving end to correctly decipher the signal by repeatedly transmitting the signal. In order to effectively improve the accuracy of demodulation, the receiving end must wait long enough to receive these repeatedly transmitted signals. However, this extended operation time will increase the power consumption.

因此,如何达到提升接收端的误码率(bit error rate,BER)效能,进而达 到节省耗电与降低成本,以增长电池的使用寿命便成为重要的议题。Therefore, how to improve the bit error rate (BER) performance of the receiving end, thereby saving power consumption, reducing costs, and increasing the service life of the battery has become an important issue.

发明内容SUMMARY OF THE INVENTION

鉴于现有技术的不足,本发明的一目的在于提供一种回旋码解码器及回 旋码解码方法。In view of the deficiencies of the prior art, an object of the present invention is to provide a convolutional code decoder and a convolutional code decoding method.

本发明还公开一种回旋码解码器,根据一接收数据及一辅助数据进行解 码以得到一目标数据。该回旋码解码器包含一第一误差检测数据产生电路、 一通道编码电路、一第一选择电路、一第一维特比解码电路、一第二误差检 测数据产生电路、一比较电路、一第二选择电路以及一第二维特比解码电路。 该第一误差检测数据产生电路对该辅助数据进行误差检测运算以得到一误差 检测数据。该通道编码电路耦接该第一误差检测数据产生电路,用来对该辅 助数据及该误差检测数据进行通道编码以得到一中间数据。该第一选择电路 耦接该通道编码电路,用来根据该接收数据及该中间数据产生一第一待解码 数据。该第一维特比解码电路耦接该第一选择电路,用来解码该第一待解码 数据以得到一中间解码数据,其中该中间解码数据包含一估测数据及一中间 误差检测数据。该第二误差检测数据产生电路耦接该第一维特比解码电路, 用来对该估测数据进行误差检测运算以得到一参考误差检测数据。该比较电 路耦接该第二误差检测数据产生电路及该第一维特比解码电路,用来比较该 中间误差检测数据及该参考误差检测数据。该第二选择电路耦接该通道编码 电路、该第二误差检测数据产生电路及该比较电路,用来根据该中间误差检 测数据与该参考误差检测数据的其中之一、该接收数据及该中间数据产生一 第二待解码数据。该第二维特比解码电路耦接该第二选择电路,用来解码该 第二待解码数据以得到该目标数据。The invention also discloses a convolutional code decoder, which performs decoding according to a received data and an auxiliary data to obtain a target data. The convolutional code decoder includes a first error detection data generation circuit, a channel encoding circuit, a first selection circuit, a first Viterbi decoding circuit, a second error detection data generation circuit, a comparison circuit, a second selection circuit and a second Viterbi decoding circuit. The first error detection data generating circuit performs an error detection operation on the auxiliary data to obtain error detection data. The channel encoding circuit is coupled to the first error detection data generating circuit, and is used for channel encoding the auxiliary data and the error detection data to obtain an intermediate data. The first selection circuit is coupled to the channel encoding circuit for generating a first data to be decoded according to the received data and the intermediate data. The first Viterbi decoding circuit is coupled to the first selection circuit for decoding the first data to be decoded to obtain intermediate decoded data, wherein the intermediate decoded data includes an estimated data and an intermediate error detection data. The second error detection data generating circuit is coupled to the first Viterbi decoding circuit for performing error detection operations on the estimated data to obtain a reference error detection data. The comparison circuit is coupled to the second error detection data generating circuit and the first Viterbi decoding circuit, and is used for comparing the intermediate error detection data with the reference error detection data. The second selection circuit is coupled to the channel encoding circuit, the second error detection data generation circuit and the comparison circuit, and is used for the received data and the intermediate error detection data according to one of the intermediate error detection data and the reference error detection data, the received data and the intermediate error detection data. The data generates a second data to be decoded. The second Viterbi decoding circuit is coupled to the second selection circuit for decoding the second to-be-decoded data to obtain the target data.

本发明还公开一种回旋码解码方法,根据一接收数据及一辅助数据进行 解码以得到一目标数据。该回旋码解码方法包含:对该辅助数据进行误差检 测运算以得到一误差检测数据;对该辅助数据及该误差检测数据进行通道编 码以得到一中间数据;根据该接收数据及该中间数据产生一第一待解码数据; 解码该第一待解码数据以得到一中间解码数据,其中该中间解码数据包含一 估测数据及一中间误差检测数据;对该估测数据进行误差检测运算以得到一 参考误差检测数据;比较该中间误差检测数据及该参考误差检测数据;根据 该中间误差检测数据与该参考误差检测数据的其中之一、该接收数据及该中 间数据产生一第二待解码数据;以及解码该第二待解码数据以得到该目标数 据。The invention also discloses a convolutional code decoding method, which decodes according to a received data and an auxiliary data to obtain a target data. The convolutional code decoding method includes: performing an error detection operation on the auxiliary data to obtain an error detection data; performing channel coding on the auxiliary data and the error detection data to obtain an intermediate data; and generating a data according to the received data and the intermediate data. the first data to be decoded; decode the first data to be decoded to obtain intermediate decoded data, wherein the intermediate decoded data includes an estimated data and an intermediate error detection data; perform an error detection operation on the estimated data to obtain a reference error detection data; compare the intermediate error detection data and the reference error detection data; generate a second data to be decoded according to one of the intermediate error detection data and the reference error detection data, the received data and the intermediate data; and Decode the second data to be decoded to obtain the target data.

本发明的回旋码解码器及回旋码解码方法利用预测的信息进行解码。相 较于传统技术,本发明的回旋码解码器及回旋码解码方法能够更快速地解调/ 解码出信号。提早解调/解码出信号可以提早结束运算状态,达到省电的效果。The convolutional code decoder and the convolutional code decoding method of the present invention perform decoding using predicted information. Compared with the conventional technology, the convolutional code decoder and the convolutional code decoding method of the present invention can demodulate/decode the signal faster. The early demodulation/decoding of the signal can end the operation state early to achieve the effect of power saving.

有关本发明的特征、实作与技术效果,兹配合附图作实施例详细说明如 下。The features, implementations and technical effects of the present invention are described in detail as follows with reference to the accompanying drawings.

附图说明Description of drawings

图1为无线通信系统的数据调制和/或编码的流程及数据结构的示意图;1 is a schematic diagram of a data modulation and/or coding process and data structure of a wireless communication system;

图2为本发明的无线通信接收端的解调制/解码装置的功能方框图;Fig. 2 is the functional block diagram of the demodulation/decoding apparatus of the wireless communication receiving end of the present invention;

图3为本发明回旋码解码器的一实施例的功能方框图;3 is a functional block diagram of an embodiment of a convolutional code decoder of the present invention;

图4为本发明回旋码解码方法的一实施例的流程图;4 is a flowchart of an embodiment of a convolutional code decoding method according to the present invention;

图5为本发明回旋码解码器的另一实施例的功能方框图;5 is a functional block diagram of another embodiment of the convolutional code decoder of the present invention;

图6为本发明回旋码解码方法的另一实施例的流程图;6 is a flowchart of another embodiment of a convolutional code decoding method according to the present invention;

图7为图6的步骤S610的细节流程图;Fig. 7 is the detailed flow chart of step S610 of Fig. 6;

图8为维特比演算法的示意图;8 is a schematic diagram of a Viterbi algorithm;

图9为本发明回旋码解码器的另一实施例的功能方框图;以及FIG. 9 is a functional block diagram of another embodiment of the convolutional code decoder of the present invention; and

图10为本发明回旋码解码方法的另一实施例的流程图。FIG. 10 is a flowchart of another embodiment of a convolutional code decoding method according to the present invention.

符号说明Symbol Description

210 通道估测210 Channel Estimation

220 信号检测220 Signal detection

230 解扰器230 descrambler

240 解速率匹配240 De-Rate Matching

250 回旋码解码器250 convolutional code decoder

260 误差检测电路260 error detection circuit

310、920 误差检测数据产生电路310, 920 error detection data generation circuit

320 通道编码电路320-channel encoding circuit

330、930 选择电路330, 930 selection circuit

340、510、940 维特比解码电路340, 510, 940 Viterbi decoding circuit

910、915 数据抽取电路910, 915 data extraction circuit

950 比较电路950 Comparison Circuit

S410~S440、S610、S710~S760、S1010~S1090 步骤S410~S440, S610, S710~S760, S1010~S1090 Steps

具体实施方式Detailed ways

以下说明内容的技术用语是参照本技术领域的习惯用语,如本说明书对 部分用语有加以说明或定义,该部分用语的解释以本说明书的说明或定义为 准。The technical terms in the following description refer to the common terms in the technical field. If this specification describes or defines some terms, the interpretation of this part of the terms shall be subject to the descriptions or definitions in this specification.

本发明的公开内容包含回旋码解码器及回旋码解码方法。由于本发明的 回旋码解码器所包含的部分元件单独而言可能为已知元件,因此在不影响该 装置发明的充分公开及可实施性的前提下,以下说明对于已知元件的细节将 予以省略。此外,本发明的回旋码解码方法的部分或全部流程可以是软件和/ 或固件的形式,并且可通过本发明的回旋码解码器或其等效装置来执行,在 不影响该方法发明的充分公开及可实施性的前提下,以下方法发明的说明将 着重于步骤内容而非硬件。The present disclosure includes a convolutional code decoder and a convolutional code decoding method. Since some of the elements included in the convolutional code decoder of the present invention may be known elements individually, the details of the known elements will be described below without affecting the full disclosure and practicability of the invention of the device. Omit. In addition, part or all of the flow of the convolutional code decoding method of the present invention may be in the form of software and/or firmware, and may be executed by the convolutional code decoder of the present invention or an equivalent device thereof, without affecting the adequacy of the method and invention. Under the premise of disclosure and practicability, the following description of the method invention will focus on the content of the steps rather than the hardware.

以下关于维特比(Viterbi)架构的说明是以(2,1,2)的回旋码(convolutionalcode)编码及硬决策(hard decision)为例,然而本技术领域技术人员于了解 本发明的实施方式后可以将本发明应用于不同的回旋码编码及软决策(soft decision)。The following description of the Viterbi architecture takes (2, 1, 2) convolutional code encoding and hard decision as an example, however, those skilled in the art will understand the implementation of the present invention after The present invention can be applied to different convolutional codes and soft decisions.

本发明的接收端的解调制和/或解码机制适用于以一般调制技术为基础 的通信系统,例如采用回旋码编码/解码器的通信系统。此类的通信系统例如 是物联网(Internetof Thing,IoT)、机器对机器系统(Machine to Machine, M2M)、无线区域网络(WirelessFidelity,无线保真,Wi-Fi)的802.11ah HaLow…等。以下的说明是以窄频物联网(NarrowBand Internet of Thing, NB-IoT)接收机为例,但本发明不限于此通信系统。The demodulation and/or decoding mechanism of the receiving end of the present invention is suitable for a communication system based on a general modulation technique, such as a communication system using a convolutional code encoder/decoder. Such communication systems are, for example, Internet of Things (IoT), Machine to Machine (M2M), 802.11ah HaLow, etc. of Wireless Fidelity (Wireless Fidelity, Wi-Fi). The following description takes a NarrowBand Internet of Thing (NB-IoT) receiver as an example, but the present invention is not limited to this communication system.

在网络系统中,数据传输常常有传送重复数据的需求,或者是传送部分 相同、部分未知的数据,但解调时却必须把所有数据一起做处理,导致有些 非必要的错误发生,同时也增加不必要的耗电量。因此本发明提出一个利用 已知数据来帮助解调制和/或解码的机制。此已知数据的来源是接收端通过较 长时间的统计与分析先前的传送数据,来预测出当下信号某些位元的数值。 此已知数据的产生方法可以参考中国台湾专利申请案案号107104854,但不 以此为限。In network systems, data transmission often needs to transmit duplicate data, or transmit part of the same and part of the unknown data, but all data must be processed together during demodulation, resulting in some unnecessary errors. Unnecessary power consumption. The present invention therefore proposes a mechanism that utilizes known data to assist in demodulation and/or decoding. The source of this known data is that the receiving end predicts the value of certain bits of the current signal through statistics and analysis of the previous transmission data for a long time. For the generation method of this known data, reference may be made to Taiwan Patent Application No. 107104854, but it is not limited thereto.

图1为无线通信系统的数据调制和/或编码的流程及数据结构的示意图。 原始数据A为一个长度(位元数)为NA×1的向量,在经过添加误差检测(error detection)数据(例如添加循环冗余校验(cyclic redundancy check,以下简 称CRC))的步骤S110后,成为数据C(长度为NC×1的向量)。如图所示, 在步骤S110中,长度为NB的误差检测数据B(冗余位元)被添加至原始数 据A的尾端而形成数据C(即NC=NA+NB)。长度为NB的误差检测数据B 用于检验原始数据A的正确性。在步骤S120中数据C经过通道编码(channel coding)来对抗通道效应。此处假设通道编码为码率(code rate)1/3的去尾 回旋码(Tail-BitingConvolutional Code,TBCC),而编码完后产生数据Z(长 度为3NC×1的向量)。最后在步骤S130中,数据Z经过速率匹配(rate matching)和/或扰码(scrambling)来把数据均匀地分配到所有可使用的资源 单位(resource element,RE),而形成调制后/编码后的待传送数据Y(长度为 NRM×1的向量)。FIG. 1 is a schematic diagram of a data modulation and/or coding process and a data structure in a wireless communication system. The original data A is a vector with a length (number of bits) of N A ×1. After adding error detection data (for example, adding a cyclic redundancy check (CRC)) in step S110 Then, it becomes data C (a vector of length N C × 1). As shown in the figure, in step S110, error detection data B (redundant bits) with a length of NB is added to the end of the original data A to form data C (ie, NC=NA + NB). The error detection data B of length NB is used to check the correctness of the original data A. In step S120, the data C is subjected to channel coding to combat the channel effect. It is assumed here that the channel coding is a Tail-Biting Convolutional Code (TBCC) with a code rate of 1/3, and data Z (a vector with a length of 3NC × 1) is generated after coding. Finally, in step S130, the data Z undergoes rate matching and/or scrambling to evenly distribute the data to all available resource elements (REs) to form a post-modulation/encoding process. The to-be-transmitted data Y (a vector of length N RM × 1 ).

由于基于CRC的误差检测数据B和原始数据A的任何一个位元都相关, 所以当原始数据A有一段未知的位元出现在灰色标记处时,数据C最后面的 NB位元的误差检测数据B都被归类为未知的位元(同样标记为灰色)。接下 来,回旋码的特性会使得数据Z中的未知位元增多,未知位元的数量与回旋 码的码率及制约长度(constraint length)有关。速率匹配及扰码则不会影响 未知位元和已知位元个数的比例,只会影响未知位元在待传送数据Y中的位 置。Since the CRC-based error detection data B is related to any bit of the original data A, when an unknown bit of the original data A appears at the gray mark, the error detection of the last N B bits of the data C Data B are all classified as unknown bits (again marked in grey). Next, the characteristics of the convolutional code will increase the number of unknown bits in the data Z, and the number of the unknown bits is related to the code rate and the constraint length of the convolutional code. Rate matching and scrambling will not affect the ratio of the unknown bits to the number of known bits, but only affect the position of the unknown bits in the data Y to be transmitted.

图2为本发明的无线通信接收端的解调制/解码装置的功能方框图。接收 信号SR经过通道估测210后通道效应可获得补偿,且不同子帧(subframe) 间的重复性质可以用来做结合,以提高信噪比。信号检测220的主要功能为 解调制。接下来针对一个窄频物理下行共享信道(Narrowband Physical Downlink Shared Channel,NPDSCH)的所有资源单位做完排列后,可以得到 一个估测数据

Figure BDA0001746608870000051
估测数据
Figure BDA0001746608870000052
经过解扰器(descrambler)230与解速率匹配240 后,可得接收数据
Figure BDA0001746608870000053
(长度为NTB=3NC×1的向量)。回旋码解码器250参考 辅助数据A'解码接收数据
Figure BDA0001746608870000054
后输出目标数据
Figure BDA0001746608870000055
目标数据
Figure BDA0001746608870000056
为数据C的估测。 目标数据
Figure BDA0001746608870000057
包含估测数据
Figure BDA0001746608870000058
及中间误差检测数据
Figure BDA0001746608870000059
估测数据
Figure BDA00017466088700000510
为原始数据 A的估测。误差检测电路260根据中间误差检测数据
Figure BDA00017466088700000511
来验证估测数据
Figure BDA00017466088700000512
是 否为合法的码字。误差检测电路260的验证结果正确代表估测数据
Figure BDA00017466088700000513
等于原 始数据A。FIG. 2 is a functional block diagram of the demodulation/decoding apparatus of the wireless communication receiving end according to the present invention. After the received signal SR is subjected to the channel estimation 210, the channel effect can be compensated, and the repetition property between different subframes can be used for combining to improve the signal-to-noise ratio. The main function of signal detection 220 is demodulation. Next, after arranging all resource units of a Narrowband Physical Downlink Shared Channel (NPDSCH), an estimated data can be obtained.
Figure BDA0001746608870000051
estimated data
Figure BDA0001746608870000052
After descrambler (descrambler) 230 and descrambler rate matching 240, the received data can be obtained
Figure BDA0001746608870000053
(Vector of length N TB = 3NC x 1). The convolutional code decoder 250 decodes the received data with reference to the auxiliary data A'
Figure BDA0001746608870000054
output target data
Figure BDA0001746608870000055
target data
Figure BDA0001746608870000056
is an estimate of data C. target data
Figure BDA0001746608870000057
Contains estimated data
Figure BDA0001746608870000058
and intermediate error detection data
Figure BDA0001746608870000059
estimated data
Figure BDA00017466088700000510
is an estimate of the original data A. The error detection circuit 260 detects the data based on the intermediate error
Figure BDA00017466088700000511
to verify the estimated data
Figure BDA00017466088700000512
Whether it is a valid codeword. The verification result of the error detection circuit 260 correctly represents the estimated data
Figure BDA00017466088700000513
is equal to the original data A.

在进行回旋码解码时,一般会采用维特比架构。图3为本发明回旋码解 码器的一实施例的功能方框图。图4为本发明回旋码解码方法的一实施例的 流程图。回旋码解码器250包含误差检测数据产生电路310、通道编码电路 320、选择电路330以及维特比解码电路340。首先,误差检测数据产生电路 310对辅助数据A'进行误差检测运算以产生误差检测数据B'(步骤S410)。 举例来说,误差检测数据产生电路310可以对辅助数据A'进行循环冗余校验 的运算,而产生误差检测数据B'。对窄频物联网而言,误差检测数据B'可以 是24位元的CRC码。接着通道编码电路320对辅助数据A'及误差检测数据 B'进行通道编码,而得到中间数据Z'(步骤S420)。通道编码电路320进行 与传送端同样编码机制的通道编码,例如进行回旋码编码。辅助数据A'为原 始数据A的预测数据,代表辅助数据A'与原始数据A的长度实质上相同, 且辅助数据A'包含原始数据A的全部或部分数据。也就是说,当预测正确时,辅助数据A'的已知位元(即预测的位元)与原始数据A对应的位元相同。因 为辅助数据A'与原始数据A具有实质上相同的长度,所以中间数据Z'的长度 与接收数据

Figure BDA0001746608870000061
的长度亦实质上相同。辅助数据A'中至少有一位元为已知(经 预测),而其他的位元为未知(未经预测)。当辅助数据A'中的所有位元皆为 已知时,误差检测数据B'及中间数据Z'的所有位元亦皆为已知。当辅助数据 A'中有未知的位元时,误差检测数据B'的所有位元皆为未知,而中间数据Z' 的位元则为部分已知且部分未知。接下来选择电路330根据接收数据
Figure BDA0001746608870000062
及中 间数据Z'产生待解码数据E(步骤S430)。控制信号Prek指示目前输入选 择电路330的中间数据Z'为已知的位元或未知的位元。步骤S430包含子步 骤S435:选择电路330根据控制信号Prek以中间数据Z'的已知位元取代接 收数据
Figure BDA0001746608870000063
的相对应位元以产生待解码数据E。也就是说,经过选择电路330 后,接收数据
Figure BDA0001746608870000064
的部分位元(对应中间数据Z'已知的部分)被中间数据Z'中 相对应的位元取代,而其他位元(对应中间数据Z'未知的部分)则保留原数 值。在一些实施例中,当待解码数据E为软数值(soft value)时,选择电路 330及步骤S435还包含将已知位元转换成极值(extremum)。最后维特比解 码电路340利用维特比解码运算解码待解码数据E以得到目标数据
Figure BDA0001746608870000065
(步骤 S440)。选择电路330可用多工器实作。When performing convolutional code decoding, a Viterbi architecture is generally used. FIG. 3 is a functional block diagram of an embodiment of a convolutional code decoder of the present invention. FIG. 4 is a flowchart of an embodiment of a convolutional code decoding method according to the present invention. The convolutional code decoder 250 includes an error detection data generation circuit 310 , a channel encoding circuit 320 , a selection circuit 330 and a Viterbi decoding circuit 340 . First, the error detection data generation circuit 310 performs an error detection operation on the auxiliary data A' to generate error detection data B' (step S410). For example, the error detection data generating circuit 310 may perform a cyclic redundancy check operation on the auxiliary data A' to generate the error detection data B'. For the narrowband Internet of Things, the error detection data B' can be a 24-bit CRC code. Next, the channel coding circuit 320 performs channel coding on the auxiliary data A' and the error detection data B' to obtain the intermediate data Z' (step S420). The channel encoding circuit 320 performs channel encoding with the same encoding scheme as the transmitting end, such as convolutional code encoding. The auxiliary data A' is the prediction data of the original data A, which means that the auxiliary data A' and the original data A have substantially the same length, and the auxiliary data A' includes all or part of the original data A. That is, when the prediction is correct, the known bits (ie, predicted bits) of the auxiliary data A' are the same as the bits corresponding to the original data A'. Since the auxiliary data A' has substantially the same length as the original data A, the length of the intermediate data Z' is the same as that of the received data
Figure BDA0001746608870000061
are also substantially the same length. At least one bit of the auxiliary data A' is known (predicted), and the other bits are unknown (unpredicted). When all the bits in the auxiliary data A' are known, all the bits of the error detection data B' and the intermediate data Z' are also known. When there are unknown bits in the auxiliary data A', all the bits of the error detection data B' are unknown, and the bits of the intermediate data Z' are partially known and partially unknown. Next, the selection circuit 330 according to the received data
Figure BDA0001746608870000062
and intermediate data Z' to generate data E to be decoded (step S430). The control signal Prek indicates that the intermediate data Z' currently input to the selection circuit 330 is a known bit or an unknown bit. Step S430 includes sub-step S435: the selection circuit 330 replaces the received data with the known bits of the intermediate data Z' according to the control signal Prek
Figure BDA0001746608870000063
to generate the data E to be decoded. That is, after passing through the selection circuit 330, data is received
Figure BDA0001746608870000064
Part of the bits (corresponding to the known part of the intermediate data Z') are replaced by the corresponding bits in the intermediate data Z', while other bits (corresponding to the unknown part of the intermediate data Z') keep the original value. In some embodiments, when the data E to be decoded is a soft value, the selection circuit 330 and step S435 further include converting the known bits into extremums. Finally, the Viterbi decoding circuit 340 uses the Viterbi decoding operation to decode the data E to be decoded to obtain the target data
Figure BDA0001746608870000065
(step S440). Selection circuit 330 may be implemented with a multiplexer.

因为待解码数据E的部分数据为已知(作为对比,接收数据

Figure BDA0001746608870000071
的全部数 据皆为未知,亦即无法确定接收数据
Figure BDA0001746608870000072
的位元值是否正确),所以维特比解码 电路340可以更准确地解码出目标数据
Figure BDA0001746608870000073
因此,本发明的回旋码解码器250 的效能可以获得提升,有助于缩短无线通信系统的接收端的解调制和/或解码 时间,以节省无线装置的耗电量。Because part of the data E to be decoded is known (for comparison, the received data
Figure BDA0001746608870000071
All data for is unknown, i.e. it is not possible to determine receipt
Figure BDA0001746608870000072
Is the bit value of ? is correct), so the Viterbi decoding circuit 340 can decode the target data more accurately
Figure BDA0001746608870000073
Therefore, the performance of the convolutional code decoder 250 of the present invention can be improved, which helps to shorten the demodulation and/or decoding time of the receiving end of the wireless communication system, so as to save the power consumption of the wireless device.

图5为本发明回旋码解码器的另一实施例的功能方框图。图6为本发明 回旋码解码方法的另一实施例的流程图。回旋码解码器250包含误差检测数 据产生电路310、通道编码电路320、选择电路330以及维特比解码电路510。 图5的误差检测数据产生电路310、通道编码电路320与选择电路330以及 图6的步骤S410~S435已详述于图3及图4的公开内容,故不再赘述。本实 施例的维特比解码电路510参考辅助数据A'对待解码数据E进行维特比解码 运算以得到目标数据

Figure BDA0001746608870000074
(步骤S610)。图3的维特比解码电路340是对维特比 演算法中的所有分支(branch)进行计算和判断,然而图5的维特比解码电 路510是在预知位元的情况下,预先排除确定错误的分支,因此可以得到优 选的效能。FIG. 5 is a functional block diagram of another embodiment of the convolutional code decoder of the present invention. FIG. 6 is a flowchart of another embodiment of a convolutional code decoding method according to the present invention. The convolutional code decoder 250 includes an error detection data generation circuit 310 , a channel encoding circuit 320 , a selection circuit 330 and a Viterbi decoding circuit 510 . The error detection data generation circuit 310 , the channel encoding circuit 320 , the selection circuit 330 in FIG. 5 and the steps S410 - S435 in FIG. 6 have been described in detail in the disclosure of FIG. 3 and FIG. 4 , so they will not be repeated. The Viterbi decoding circuit 510 of this embodiment performs a Viterbi decoding operation on the data E to be decoded with reference to the auxiliary data A' to obtain the target data
Figure BDA0001746608870000074
(step S610). The Viterbi decoding circuit 340 in FIG. 3 calculates and judges all the branches in the Viterbi algorithm, while the Viterbi decoding circuit 510 in FIG. 5 excludes the branch that determines the error in advance in the case of predicting the bits , so the optimal performance can be obtained.

图7为步骤S610的细节流程图。图8为维特比演算法的示意图。图8 以(2,1,2)的回旋码编码的解码为例,但本发明不以此为限。如图8所示, 维特比解码电路510在各阶段(t=0,1,2,…,k-1,k,k+1,…,k为正整数,t=0 为初始阶段)处理四个状态(state):S00、S01、S10、S11。当维特比解码电路 510处理某阶段的目标状态时(例如处理阶段k的状态S01),会先找出与这 个目标状态连接的两个分支(即进入此目标状态S01的两个分支b0及b1), 并判断各分支所对应的前置累积度量(previously accumulated metric)mprev是 否为预设值mpreset(步骤S710)。每个分支具有一个目前过程度量(current metric),目前过程度量的计算方法为本技术领域技术人员所熟知,故不再赘 述。对应分支b0的累积度量(accumulatedmetric)maccum,0及对应分支b1 的累积度量maccum,1可分别由以下的算式(1)及算式(2)得到。FIG. 7 is a detailed flowchart of step S610. FIG. 8 is a schematic diagram of the Viterbi algorithm. Fig. 8 takes the decoding of the convolutional code of (2, 1, 2) as an example, but the present invention is not limited to this. As shown in FIG. 8 , the Viterbi decoding circuit 510 processes at each stage (t=0, 1, 2, ..., k-1, k, k+1, ..., k is a positive integer, t=0 is the initial stage) Four states: S 00 , S 01 , S 10 , S 11 . When the Viterbi decoding circuit 510 processes the target state of a certain stage (eg, the state S 01 of the processing stage k), it will first find two branches connected to the target state (that is, the two branches b0 that enter the target state S 01 ). and b1), and determine whether the previously accumulated metric (previously accumulated metric) m prev corresponding to each branch is the preset value m preset (step S710 ). Each branch has a current process metric (current metric), and the calculation method of the current process metric is well known to those skilled in the art, so it will not be repeated here. The accumulated metric m accum,0 corresponding to the branch b0 and the accumulated metric m accum,1 corresponding to the branch b1 can be obtained by the following equations (1) and (2), respectively.

maccum,0=mprev,0+mcur,0 (1)m accum,0 =m prev,0 +m cur,0 (1)

maccum,1=mprev,1+mcur,1 (2)m accum,1 =m prev,1 +m cur,1 (2)

其中mcur,0及mcur,1分别为对应分支b0及分支b1的目前过程度量, mprev,0及mprev,1分别为对应分支b0及分支b1的前置累积度量。Wherein m cur,0 and m cur,1 are the current process metrics corresponding to the branch b0 and the branch b1, respectively, and m prev,0 and m prev,1 are the pre-accumulated metrics corresponding to the branch b0 and the branch b1, respectively.

预设值mpreset与维特比解码电路510如何决定分支(步骤S760)有关。 在步骤S760中,维特比解码电路510选择目标状态的两个分支的其中之一 作为留存路径(survivorpath),并记录这个分支的来源(例如以一个位元0 或位元1表示),最后再把累积度量更新成下一阶段的前置累积度量。如果预 设值mpreset为一个极大值(例如+2N-1,N为预设值mpreset的位元数),则维 特比解码电路510在步骤S760中选取对应累积度量较小的分支;反之,如果预设值mpreset为一个极小值(例如-2N-1),则维特比解码电路510在步骤 S760中选取对应累积度量较大的分支。The preset value m preset is related to how the Viterbi decoding circuit 510 decides the branch (step S760). In step S760, the Viterbi decoding circuit 510 selects one of the two branches of the target state as the survivor path, and records the source of this branch (for example, represented by a bit 0 or a bit 1), and finally Update the cumulative metric to the preceding cumulative metric for the next stage. If the preset value m preset is a maximum value (for example, +2 N-1 , N is the number of bits of the preset value m preset ), the Viterbi decoding circuit 510 selects the branch corresponding to the smaller cumulative metric in step S760 On the contrary, if the preset value m preset is a minimum value (for example, -2 N-1 ), the Viterbi decoding circuit 510 selects the branch with a larger corresponding accumulated metric in step S760.

如图8所示,如果mprev,0或mprev,1等于预设值mpreset(即步骤S710为 是),则代表其对应的分支b0或b1将不会被选取,因此维特比解码电路510 进一步将对应于目标分支(此时目标分支为为目标状态的所有分支b0及b1 的其中一者)的累积度量(即maccum,0或maccum,1)设为预设值mpreset(步骤 S715),然后决定分支(步骤S760)。若只有一个分支等于上述预设值mpreset, 则维特比解码电路510在步骤S760中将选择另一条分支;若两分支所对应 的累积度量相等,维特比解码电路510在步骤S760中可选择任一分支。As shown in FIG. 8 , if m prev,0 or m prev,1 is equal to the preset value m preset (that is, step S710 is Yes), it means that the corresponding branch b0 or b1 will not be selected, so the Viterbi decoding circuit 510 Further set the accumulated metric (ie m accum,0 or m accum,1 ) corresponding to the target branch (the target branch is one of all branches b0 and b1 in the target state) as the preset value m preset ( Step S715), and then decide to branch (step S760). If there is only one branch equal to the above preset value m preset , the Viterbi decoding circuit 510 will select another branch in step S760; if the accumulated metrics corresponding to the two branches are equal, the Viterbi decoding circuit 510 can select any branch in step S760. a branch.

当步骤S710为否,则流程进入步骤S720。步骤S720判断辅助数据A' 的信息位元是否为已知。举例来说,假设辅助数据A'有多个信息位元(A′0, A′1,A′2,…,A′k-1,A′k,A′k+1,…),分支b0及分支b1是否有可能被选取与 信息位元A′k-1的值息息相关。When step S710 is NO, the flow goes to step S720. Step S720 determines whether the information bits of the auxiliary data A' are known. For example, assuming that the auxiliary data A' has multiple information bits (A' 0 , A' 1 , A' 2 ,..., A' k-1 , A' k , A' k+1 ,...), branch Whether b0 and branch b1 are likely to be selected is closely related to the value of the information bit A' k-1 .

当信息位元A′k-1为未知时(步骤S720为否),维特比解码电路510计算 各分支的目前过程度量(步骤S740),接着根据算式(1)及算式(2)计算累积度 量(步骤S750),然后决定分支(步骤S760)。步骤S760结束后,维特比解 码电路510再次执行图7的流程以处理同一阶段的尚未处理的状态,或是进 到下一阶段。When the information bit A'k -1 is unknown (No in step S720), the Viterbi decoding circuit 510 calculates the current process metric of each branch (step S740), and then calculates the cumulative metric according to the formula (1) and the formula (2). (step S750), and then decide to branch (step S760). After step S760 ends, the Viterbi decoding circuit 510 executes the flow of FIG. 7 again to process the unprocessed state of the same stage, or to proceed to the next stage.

当信息位元A′k-1为已知时(步骤S720为是),维特比解码电路510判断 目标状态是否为候选状态(步骤S730)。假设图8中的虚线分支对应逻辑值 0且实线分支对应逻辑值1,则当信息位元A′k-1为逻辑值0时,状态S00及S01为候选状态(步骤S730为是,因为目前的目标状态为状态S01),而且当信 息位元A′k-1为逻辑值1时,状态S10及S11为候选状态(步骤S730为否,因 为目前的目标状态为状态S01)。也就是说,维特比解码电路510可以根据辅 助数据A'的信息位元的值,排除某个阶段中一半的状态。When the information bit A' k-1 is known (Yes in step S720), the Viterbi decoding circuit 510 determines whether the target state is a candidate state (step S730). Assuming that the dotted line branch in FIG. 8 corresponds to the logic value 0 and the solid line branch corresponds to the logic value 1, then when the information bit A′ k-1 is the logic value 0 , the states S00 and S01 are candidate states (Yes in step S730 ) , because the current target state is the state S 01 ), and when the information bit A′ k-1 is the logical value 1, the states S 10 and S 11 are candidate states (No in step S730 because the current target state is the state S 01 ). That is, the Viterbi decoding circuit 510 can exclude half of the states in a certain stage according to the value of the information bit of the auxiliary data A'.

当目标状态为候选状态时(步骤S730为是),则维特比解码电路510执 行步骤S740~S760;当目标状态非为候选状态时(步骤S730为否),则维特 比解码电路510执行步骤S715。更明确地说,当维特比解码电路510确定目 标状态不会被选取(即目标状态非候选状态),维特比解码电路510将对应于 目标分支(此时目标分支为目标状态的所有分支b0及b1)的累积度量设为 预设值mpreset(步骤S715),然后在步骤S760中维特比解码电路510可以选 择分支b0或b1作为状态k的目标状态S01的分支。无论维特比解码电路510 在步骤S760中选择分支b0或b1,因为目标状态S01的所有分支的累积度量 已被设为预设值mpreset,所以最终维特比演算法不会选择包含状态S01的留 存路径(亦即此状态S01的两个分支b0及b1皆可视为已被排除)。When the target state is a candidate state (Yes in step S730), the Viterbi decoding circuit 510 executes steps S740-S760; when the target state is not a candidate state (No in step S730), the Viterbi decoding circuit 510 executes step S715 . More specifically, when the Viterbi decoding circuit 510 determines that the target state will not be selected (ie, the target state is not a candidate state), the Viterbi decoding circuit 510 will correspond to the target branch (at this time, the target branch is all branches b0 and b0 of the target state). The accumulated metric of b1) is set to a preset value m preset (step S715), and then in step S760 the Viterbi decoding circuit 510 can select branch b0 or b1 as the branch of the target state S 01 of state k. Regardless of whether the Viterbi decoding circuit 510 selects the branch b0 or b1 in step S760, because the cumulative metrics of all branches of the target state S 01 have been set to the preset value m preset , the final Viterbi algorithm will not choose to include the state S 01 (that is, the two branches b0 and b1 of this state S01 can be regarded as having been excluded).

在图5~图7的实施例中,维特比解码电路510参考辅助数据A'进行解码。 当辅助数据A'的信息位元为已知时,维特比解码电路510有机会(视目标状 态是否为候选状态而定)依据信息位元直接将目标状态的所有分支的累积度 量设为预设值mpreset(亦即执行步骤S715)以减少计算量(亦即略过步骤 S740~S760)。作为比较,图3的维特比解码电路340对每个状态皆需执行步 骤S740~S760。因为图7的步骤S710、S715、S720及S730是执行简单的判 别或设定值的操作,所以图5的回旋码解码器250的复杂度与图3的回旋码 解码器250相似。相较于图3~图4的实施例,图5~图7的实施例可更加提 升回旋码解码器250的效能,以进一步缩短无线通信系统的接收端的解调制 和/或解码时间。In the embodiments of FIGS. 5-7 , the Viterbi decoding circuit 510 performs decoding with reference to the auxiliary data A'. When the information bits of the auxiliary data A' are known, the Viterbi decoding circuit 510 has the opportunity (depending on whether the target state is a candidate state) to directly set the cumulative metrics of all branches of the target state as a preset according to the information bits The value m preset (ie, step S715 is executed) to reduce the amount of calculation (ie, steps S740 to S760 are skipped). For comparison, the Viterbi decoding circuit 340 of FIG. 3 needs to perform steps S740 - S760 for each state. Because steps S710 , S715 , S720 and S730 of FIG. 7 are operations to perform simple discrimination or setting values, the complexity of the convolutional code decoder 250 of FIG. 5 is similar to that of the convolutional code decoder 250 of FIG. 3 . Compared with the embodiments of FIGS. 3 to 4 , the embodiments of FIGS. 5 to 7 can further improve the performance of the convolutional code decoder 250 to further shorten the demodulation and/or decoding time at the receiving end of the wireless communication system.

图9为本发明回旋码解码器的另一实施例的功能方框图。图10为本发明 回旋码解码方法的另一实施例的流程图。回旋码解码器250包含误差检测数 据产生电路310、通道编码电路320、选择电路330、维特比解码电路340、 数据抽取电路910、数据抽取电路915、误差检测数据产生电路920、选择电 路930、维特比解码电路940以及比较电路950。误差检测数据产生电路310、 通道编码电路320、选择电路330及维特比解码电路340分别执行步骤S1010、 S1020、S1030及S1040;所述元件及所述步骤的详细内容已于图3及图4的 实施例中做过说明,故不再赘述。维特比解码电路340产生的中间解码数据

Figure BDA0001746608870000091
包含估测数据
Figure BDA0001746608870000101
及中间误差检测数据
Figure BDA0001746608870000102
中间误差检测数据
Figure BDA0001746608870000103
可以用来验 证估测数据
Figure BDA0001746608870000104
是否为合法的码字。数据抽取电路910及数据抽取电路915分 别从中间解码数据
Figure BDA0001746608870000105
中取出估测数据
Figure BDA0001746608870000106
及中间误差检测数据
Figure BDA0001746608870000107
(步骤S1050)。 因为中间误差检测数据
Figure BDA0001746608870000108
具有预设的长度且添加于估测数据
Figure BDA0001746608870000109
的尾端,所以 数据抽取电路910及数据抽取电路915可以简单地通过分割中间解码数据
Figure BDA00017466088700001010
即可完成步骤S1050。FIG. 9 is a functional block diagram of another embodiment of the convolutional code decoder of the present invention. FIG. 10 is a flowchart of another embodiment of a convolutional code decoding method according to the present invention. The convolutional code decoder 250 includes an error detection data generation circuit 310, a channel encoding circuit 320, a selection circuit 330, a Viterbi decoding circuit 340, a data extraction circuit 910, a data extraction circuit 915, an error detection data generation circuit 920, a selection circuit 930, and a Viterbi decoding circuit 910. than the decoding circuit 940 and the comparison circuit 950 . The error detection data generation circuit 310, the channel encoding circuit 320, the selection circuit 330 and the Viterbi decoding circuit 340 execute steps S1010, S1020, S1030 and S1040 respectively; the details of the components and the steps are shown in FIGS. 3 and 4 . It has been described in the embodiment, so it will not be repeated. Intermediate decoded data generated by the Viterbi decoding circuit 340
Figure BDA0001746608870000091
Contains estimated data
Figure BDA0001746608870000101
and intermediate error detection data
Figure BDA0001746608870000102
Intermediate error detection data
Figure BDA0001746608870000103
Can be used to verify estimated data
Figure BDA0001746608870000104
Whether it is a valid codeword. The data extraction circuit 910 and the data extraction circuit 915 decode the data from the intermediate
Figure BDA0001746608870000105
extract the estimated data
Figure BDA0001746608870000106
and intermediate error detection data
Figure BDA0001746608870000107
(step S1050). Because of the intermediate error detection data
Figure BDA0001746608870000108
Has a preset length and is added to the estimated data
Figure BDA0001746608870000109
, so the data extraction circuit 910 and the data extraction circuit 915 can simply divide the intermediate decoded data by dividing
Figure BDA00017466088700001010
Step S1050 can be completed.

由于第一待解码数据E中对应于误差检测数据的位元都是未知的位元 (除非辅助数据A'的所有位元皆为已知),且为连续分布,而维特比架构对 连续的错误有较差的抵抗性,所以与估测数据

Figure BDA00017466088700001011
相比,中间误差检测数据
Figure BDA00017466088700001012
的误码率较高。也就是说,可以利用估测数据
Figure BDA00017466088700001013
的较高的正确性来帮助误差 检测数据的解码。所以接下来误差检测数据产生电路920对估测数据
Figure BDA00017466088700001014
进行 误差检测运算以产生参考误差检测数据
Figure BDA00017466088700001015
(步骤S1060)。误差检测数据产 生电路920的功能与误差检测数据产生电路310相同,故不再赘述。由于参 考误差检测数据
Figure BDA00017466088700001016
是根据估测数据
Figure BDA00017466088700001017
重建(rebuild)所得,所以一般而言参 考误差检测数据
Figure BDA00017466088700001018
的正确率比中间误差检测数据
Figure BDA00017466088700001019
高。参考误差检测数 据
Figure BDA00017466088700001020
与中间误差检测数据
Figure BDA00017466088700001021
具有相同的位元数。Since the bits corresponding to the error detection data in the first to-be-decoded data E are unknown bits (unless all the bits of the auxiliary data A' are known), and are continuously distributed, the Viterbi architecture does not Errors are less resistant to errors, so with estimated data
Figure BDA00017466088700001011
compared to the intermediate error detection data
Figure BDA00017466088700001012
The bit error rate is higher. That is, the estimated data can be used
Figure BDA00017466088700001013
higher correctness to help the decoding of error detection data. Therefore, the error detection data generating circuit 920 then performs the estimation data
Figure BDA00017466088700001014
Perform error detection operations to generate reference error detection data
Figure BDA00017466088700001015
(step S1060). The function of the error detection data generation circuit 920 is the same as that of the error detection data generation circuit 310 , and thus will not be repeated here. Due to reference error detection data
Figure BDA00017466088700001016
based on estimates
Figure BDA00017466088700001017
Rebuild (rebuild), so generally refer to error detection data
Figure BDA00017466088700001018
The correct rate is higher than the intermediate error detection data
Figure BDA00017466088700001019
high. Reference error detection data
Figure BDA00017466088700001020
with intermediate error detection data
Figure BDA00017466088700001021
have the same number of bits.

比较电路950比较参考误差检测数据

Figure BDA00017466088700001022
及中间误差检测数据
Figure BDA00017466088700001023
并 且产生控制信号Ctrl。在一个实施例中,控制信号Ctrl的位元数与参考误差 检测数据
Figure BDA00017466088700001024
及中间误差检测数据
Figure BDA00017466088700001025
的位元数相同,而比较电路950可以 将参考误差检测数据
Figure BDA00017466088700001026
及中间误差检测数据
Figure BDA00017466088700001027
相同数值的位元设定成已 知的信息位元(例如将控制信号Ctrl中对应的位元设为逻辑值1),以及将不 同数值的位元设定成未知的信息位元(例如将控制信号Ctrl中对应的位元设 为逻辑值0)(步骤S1070)。当参考误差检测数据
Figure BDA00017466088700001028
与中间误差检测数据
Figure BDA00017466088700001029
的相异的位元数小于某个阈值时(例如控制信号Ctrl中逻辑值为0的位元数 小于该阈值),代表维特比解码电路340解码中间误差检测数据
Figure BDA00017466088700001030
时可能因 为噪声而产生了错误,因此接下来选择电路930参考控制信号Ctrl及控制信 号Prek,并根据中间误差检测数据
Figure BDA00017466088700001031
与参考误差检测数据
Figure BDA00017466088700001032
的其中之一、 接收数据
Figure BDA00017466088700001033
及中间数据Z'产生第二待解码数据E'(步骤S1080)。而当参考误 差检测数据
Figure BDA00017466088700001034
与中间误差检测数据
Figure BDA00017466088700001035
的相异的位元数不小于该阈值时(例如控制信号Ctrl中逻辑值为0的位元数不小于该阈值),选择电路930 仅根据接收数据
Figure BDA0001746608870000111
及中间数据Z'产生第二待解码数据E'。The comparison circuit 950 compares the reference error detection data
Figure BDA00017466088700001022
and intermediate error detection data
Figure BDA00017466088700001023
And the control signal Ctrl is generated. In one embodiment, the number of bits of the control signal Ctrl is related to the reference error detection data
Figure BDA00017466088700001024
and intermediate error detection data
Figure BDA00017466088700001025
The number of bits is the same, and the comparison circuit 950 can compare the reference error detection data
Figure BDA00017466088700001026
and intermediate error detection data
Figure BDA00017466088700001027
Bits with the same value are set as known information bits (for example, setting the corresponding bit in the control signal Ctrl to logic value 1), and bits with different values are set as unknown information bits (for example, setting the corresponding bit in the control signal Ctrl to logic value 1) The corresponding bit in the control signal Ctrl is set to logic value 0) (step S1070). When referencing error detection data
Figure BDA00017466088700001028
with intermediate error detection data
Figure BDA00017466088700001029
When the number of different bits of , is less than a certain threshold (for example, the number of bits with a logic value of 0 in the control signal Ctrl is less than the threshold), it means that the Viterbi decoding circuit 340 decodes the intermediate error detection data
Figure BDA00017466088700001030
Errors may occur due to noise, so the selection circuit 930 refers to the control signal Ctrl and the control signal Prek, and detects the data according to the intermediate error
Figure BDA00017466088700001031
Error detection data with reference
Figure BDA00017466088700001032
One of them, receive data
Figure BDA00017466088700001033
and the intermediate data Z' to generate the second to-be-decoded data E' (step S1080). And when the reference error detection data
Figure BDA00017466088700001034
with intermediate error detection data
Figure BDA00017466088700001035
When the number of different bits is not less than the threshold (for example, the number of bits whose logic value is 0 in the control signal Ctrl is not less than the threshold), the selection circuit 930 only selects the received data according to the received data.
Figure BDA0001746608870000111
and the intermediate data Z' to generate the second to-be-decoded data E'.

在一些实施例中,控制信号Prek、控制信号Ctrl、中间数据Z'及接收数 据

Figure BDA0001746608870000112
具有相同的位元数。控制信号Prek以逻辑值1代表中间数据Z'中对应的 位元为已知,以逻辑值0代表中间数据Z'中对应的位元为未知。控制信号Ctrl 以逻辑值1代表中间误差检测数据
Figure BDA0001746608870000113
及参考误差检测数据
Figure BDA0001746608870000114
中对应的位 元为已知,以逻辑值0代表中间误差检测数据
Figure BDA0001746608870000115
及参考误差检测数据
Figure BDA0001746608870000116
中 对应的位元为未知。更明确地说,根据控制信号Prek及控制信号Ctrl的内容 (例如根据两者的逐位元(bitwise)或运算(OR operation)的结果),对接 收数据
Figure BDA0001746608870000117
中对应误差检测数据的位元而言,选择电路930以中间误差检测数 据
Figure BDA0001746608870000118
及参考误差检测数据
Figure BDA0001746608870000119
的相同位元取代接收数据
Figure BDA00017466088700001110
的相对应位元;对 接收数据
Figure BDA00017466088700001111
中非对应误差检测数据的位元而言,选择电路930以中间数据Z' 的已知位元取代接收数据
Figure BDA00017466088700001112
的相对应位元。最后选择电路930产生第二待解 码数据E'。换句话说,如果控制信号Ctrl和/或控制信号Prek指示接收数据
Figure BDA00017466088700001113
的 部分位元为已知,则选择电路930以已知的数值0或1取代接收数据
Figure BDA00017466088700001114
中的 相对应位元;如果控制信号Ctrl和/或控制信号Prek指示接收数据
Figure BDA00017466088700001115
的部分位 元为未知,则选择电路930选择接收数据
Figure BDA00017466088700001116
的数值。In some embodiments, the control signal Prek, the control signal Ctrl, the intermediate data Z' and the received data
Figure BDA0001746608870000112
have the same number of bits. In the control signal Prek, a logic value of 1 indicates that the corresponding bit in the intermediate data Z' is known, and a logic value of 0 indicates that the corresponding bit in the intermediate data Z' is unknown. The control signal Ctrl represents the intermediate error detection data with a logic value of 1
Figure BDA0001746608870000113
and reference error detection data
Figure BDA0001746608870000114
The corresponding bits in are known, and the logic value 0 represents the intermediate error detection data
Figure BDA0001746608870000115
and reference error detection data
Figure BDA0001746608870000116
The corresponding bit in is unknown. More specifically, according to the content of the control signal Prek and the control signal Ctrl (for example, according to the result of a bitwise OR operation of the two), the received data is
Figure BDA0001746608870000117
For the bits corresponding to the error detection data in the middle, the selection circuit 930 uses the middle error detection data
Figure BDA0001746608870000118
and reference error detection data
Figure BDA0001746608870000119
The same bits of the received data are replaced
Figure BDA00017466088700001110
The corresponding bit of the received data;
Figure BDA00017466088700001111
For the bits that do not correspond to the error detection data, the selection circuit 930 replaces the received data with the known bits of the intermediate data Z'
Figure BDA00017466088700001112
the corresponding bits of . Finally, the selection circuit 930 generates the second data E' to be decoded. In other words, if the control signal Ctrl and/or the control signal Prek indicate to receive data
Figure BDA00017466088700001113
If some of the bits are known, the selection circuit 930 replaces the received data with the known value 0 or 1
Figure BDA00017466088700001114
The corresponding bit in
Figure BDA00017466088700001115
part of the bits is unknown, then the selection circuit 930 selects the received data
Figure BDA00017466088700001116
value of .

最后,维特比解码电路940解码第二待解码数据E'以得到目标数据

Figure BDA00017466088700001117
(步骤S1090)。选择电路930可用多工器实作。请注意,在其他的实施例中 可采用分时的技术,使得图9的回旋码解码器250可以只使用一个误差检测 数据产生电路、一个选择电路及一个维特比解码电路。Finally, the Viterbi decoding circuit 940 decodes the second to-be-decoded data E' to obtain target data
Figure BDA00017466088700001117
(step S1090). Selection circuit 930 may be implemented with a multiplexer. Please note that in other embodiments, a time-sharing technique can be used, so that the convolutional code decoder 250 in FIG. 9 can only use one error detection data generation circuit, one selection circuit and one Viterbi decoding circuit.

因为重建的参考误差检测数据

Figure BDA00017466088700001118
具有较高的正确率,所以图9及图10 的实施例可以利用此特征减少待解码数据中的连续错误位元。因此,维特比 演算法的解码效能可以获得提升,有助于缩短无线通信系统的接收端的解调 制和/或解码时间。Because of the reconstructed reference error detection data
Figure BDA00017466088700001118
It has a higher accuracy rate, so the embodiments of FIG. 9 and FIG. 10 can use this feature to reduce consecutive erroneous bits in the data to be decoded. Therefore, the decoding performance of the Viterbi algorithm can be improved, which helps to shorten the demodulation and/or decoding time of the receiving end of the wireless communication system.

前述的电路(亦即图3、图5及图9的各功能方块)亦可由数字信号处 理器(digitalsignal processor,DSP)实作。在此情况下,数字信号处理器以 多个功能模块来分别实现前述的电路的功能,且数字信号处理器通过执行存 储在存储存储器中的程序码或程序指令以完成所述功能模块的功能。本发明 亦可以是硬件与软/固件的组合。The aforementioned circuits (namely, the functional blocks of Fig. 3, Fig. 5 and Fig. 9) can also be implemented by a digital signal processor (DSP). In this case, the digital signal processor implements the functions of the aforementioned circuits with a plurality of functional modules, and the digital signal processor performs the functions of the functional modules by executing the program codes or program instructions stored in the storage memory. The present invention may also be a combination of hardware and software/firmware.

由于本技术领域技术人员可通过本公开的装置发明的公开内容来了解本 公开的方法发明的实施细节与变化,因此,为避免赘文,在不影响该方法发 明的公开要求及可实施性的前提下,重复的说明在此予以省略。请注意,前 揭图示中,元件的形状、尺寸、比例以及步骤的顺序等仅为示意,是供本技 术领域技术人员了解本发明之用,非用以限制本发明。再者,前揭实施例虽 以窄频物联网为例,然此并非对本发明的限制,本技术领域人士可依本发明 的公开适当地将本发明应用于其它类型的通信系统。Since those skilled in the art can understand the implementation details and changes of the method invention of the present disclosure through the disclosure of the device invention of the present disclosure, in order to avoid redundant repetition, the disclosure requirements and practicability of the method invention are not affected. On the premise, repeated descriptions are omitted here. Please note that the shapes, sizes, ratios and steps of the components in the preceding figures are only for illustration, and are for those skilled in the art to understand the present invention, and are not intended to limit the present invention. Furthermore, although the narrow-band Internet of Things is used as an example in the foregoing embodiments, this is not a limitation of the present invention, and those skilled in the art can appropriately apply the present invention to other types of communication systems according to the disclosure of the present invention.

虽然本发明的实施例如上所述,然而所述实施例并非用来限定本发明, 本技术领域技术人员可依据本发明的明示或隐含的内容对本发明的技术特征 施以变化,凡此种种变化均可能属于本发明所寻求的专利保护范围,换言之, 本发明的专利保护范围须视本说明书的权利要求所界定者为准。Although the embodiments of the present invention are described above, the embodiments are not intended to limit the present invention, and those skilled in the art can make changes to the technical features of the present invention according to the explicit or implicit contents of the present invention. Changes may all belong to the scope of patent protection sought by the present invention, in other words, the scope of patent protection of the present invention shall be determined by the claims in this specification.

Claims (8)

1. A convolutional code decoder for decoding according to a received data and an auxiliary data to obtain a target data, the convolutional code decoder comprising:
a first error detection data generation circuit for performing error detection operation on the auxiliary data to obtain an error detection data;
a channel coding circuit coupled to the first error detection data generating circuit for performing channel coding on the auxiliary data and the error detection data to obtain an intermediate data;
a first selection circuit, coupled to the channel coding circuit, for generating a first data to be decoded according to the received data and the intermediate data;
a first viterbi decoding circuit, coupled to the first selection circuit, for decoding the first data to be decoded to obtain an intermediate decoded data, wherein the intermediate decoded data includes an estimated data and an intermediate error detection data;
a second error detection data generating circuit coupled to the first Viterbi decoding circuit for performing error detection operation on the estimated data to obtain a reference error detection data;
a comparison circuit coupled to the second error detection data generation circuit and the first Viterbi decoding circuit for comparing the intermediate error detection data with the reference error detection data;
a second selection circuit, coupled to the channel coding circuit, the second error detection data generation circuit and the comparison circuit, for generating a second data to be decoded according to one of the intermediate error detection data and the reference error detection data, the received data and the intermediate data; and
a second viterbi decoding circuit, coupled to the second selection circuit, for decoding the second data to be decoded to obtain the target data, wherein the error detection data is a first error detection data, the received data is a data obtained by performing convolutional coding on an original data and a second error detection data, the second error detection data is used for checking the correctness of the original data, and a plurality of known bits of the auxiliary data are the same as corresponding bits of the original data.
2. The convolutional code decoder of claim 1, wherein the length of the intermediate data is the same as the length of the received data.
3. The convolutional code decoder of claim 1, wherein the intermediate data comprises a plurality of known bits, and the first selection circuit replaces corresponding bits of the received data with the known bits to generate the first data to be decoded.
4. The convolutional code decoder of claim 1, wherein the middle error detection data and the reference error detection data have the same number of bits, and when the number of bits of the middle error detection data and the reference error detection data different from each other is less than a predetermined value, the second selection circuit replaces the corresponding bits of the received data with bits of the same value of the middle error detection data and the reference error detection data to generate the second data to be decoded.
5. A convolutional code decoding method for decoding according to a received data and an auxiliary data to obtain a target data, the convolutional code decoding method comprising:
performing error detection operation on the auxiliary data to obtain error detection data;
performing channel coding on the auxiliary data and the error detection data to obtain intermediate data;
generating a first data to be decoded according to the received data and the intermediate data;
decoding the first data to be decoded to obtain intermediate decoded data, wherein the intermediate decoded data comprises estimation data and intermediate error detection data;
performing error detection operation on the estimated data to obtain reference error detection data;
comparing the intermediate error detection data with the reference error detection data;
generating second data to be decoded according to the received data, the intermediate data and one of the intermediate error detection data and the reference error detection data; and
decoding the second data to be decoded to obtain the target data, wherein the error detection data is a first error detection data, the received data is a data obtained by performing convolutional coding on an original data and a second error detection data, the second error detection data is used for checking the correctness of the original data, and a plurality of known bits of the auxiliary data are the same as corresponding bits of the original data.
6. The convolutional code decoding method of claim 5, wherein the length of the intermediate data is the same as the length of the received data.
7. The convolutional code decoding method of claim 5, wherein the intermediate data comprises a plurality of known bits, and the step of generating the first data to be decoded according to the received data and the intermediate data replaces corresponding bits of the received data with the known bits to generate the first data to be decoded.
8. The convolutional code decoding method of claim 5, wherein the middle error detection data and the reference error detection data have the same number of bits, and when the number of bits of the middle error detection data and the reference error detection data different from each other is less than a predetermined value, the step of generating the second data to be decoded replaces the corresponding bits of the received data with the same number of bits of the middle error detection data and the reference error detection data to generate the second data to be decoded.
CN201810845860.3A 2018-07-27 2018-07-27 Convolutional Code Decoder and Convolutional Code Decoding Method Active CN110768748B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810845860.3A CN110768748B (en) 2018-07-27 2018-07-27 Convolutional Code Decoder and Convolutional Code Decoding Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810845860.3A CN110768748B (en) 2018-07-27 2018-07-27 Convolutional Code Decoder and Convolutional Code Decoding Method

Publications (2)

Publication Number Publication Date
CN110768748A CN110768748A (en) 2020-02-07
CN110768748B true CN110768748B (en) 2022-05-17

Family

ID=69327044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810845860.3A Active CN110768748B (en) 2018-07-27 2018-07-27 Convolutional Code Decoder and Convolutional Code Decoding Method

Country Status (1)

Country Link
CN (1) CN110768748B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113839680B (en) * 2020-06-23 2024-04-02 瑞昱半导体股份有限公司 Decoding circuit and decoding method based on Viterbi algorithm
CN115278769A (en) * 2021-04-30 2022-11-01 华为技术有限公司 Data transmission method, device and system and readable storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1165440A (en) * 1996-01-30 1997-11-19 索尼公司 Data decording apparatus
US6714596B1 (en) * 1998-05-22 2004-03-30 Kabushiki Kaisha Kenwood BS digital broadcast receiver
CN1557063A (en) * 2001-09-20 2004-12-22 �ʼҷ����ֵ��ӹɷ����޹�˾ Frame error rate estimation in a receiver
CN1698300A (en) * 2000-10-31 2005-11-16 诺基亚有限公司 Method and apparatus for providing optimized bit protection against transmission errors
CN101247203A (en) * 2007-02-16 2008-08-20 联发科技股份有限公司 Apparatus and method for detecting punctured positions in punctured convolutional codes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8050363B2 (en) * 2007-05-04 2011-11-01 Amicos Wireless Technology Ltd. Turbo decoder and method for turbo decoding a double-binary circular recursive systematic convolutional encoded signal
US7719444B2 (en) * 2007-11-16 2010-05-18 International Business Machines Corporation Modulation coding
EP2738944B1 (en) * 2011-07-27 2017-08-30 Sun Patent Trust Encoding and decoding of tail-biting rate (n-1)/n low-density parity check convolutional codes (ldpc-cc)
US20170359146A1 (en) * 2016-06-13 2017-12-14 Qualcomm Incorporated Enhanced lva decoding using iterative comparison trellis construction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1165440A (en) * 1996-01-30 1997-11-19 索尼公司 Data decording apparatus
US6714596B1 (en) * 1998-05-22 2004-03-30 Kabushiki Kaisha Kenwood BS digital broadcast receiver
CN1698300A (en) * 2000-10-31 2005-11-16 诺基亚有限公司 Method and apparatus for providing optimized bit protection against transmission errors
CN1557063A (en) * 2001-09-20 2004-12-22 �ʼҷ����ֵ��ӹɷ����޹�˾ Frame error rate estimation in a receiver
CN101247203A (en) * 2007-02-16 2008-08-20 联发科技股份有限公司 Apparatus and method for detecting punctured positions in punctured convolutional codes

Also Published As

Publication number Publication date
CN110768748A (en) 2020-02-07

Similar Documents

Publication Publication Date Title
US11025278B2 (en) Polar coding encoding/decoding method and apparatus
RU2677589C2 (en) Method and device for hybrid polar code generating
KR101551261B1 (en) Decoding scheme using multiple hypotheses about transmitted messages
US11990921B2 (en) List decoding of polarization-adjusted convolutional codes
KR102547476B1 (en) Method for controlling decoding process based on path metric value and computing apparatus and mobile device for controlling the same
CN110768748B (en) Convolutional Code Decoder and Convolutional Code Decoding Method
US8843811B2 (en) Apparatus and method for decoding in communication system
CN107809303A (en) A kind of polarization code coding method based on the optimization of AWGN subchannels
CA2709681A1 (en) Decoding scheme using a-priori information about transmitted messages
TWI681639B (en) Convolutional code decoder and convolutional code decoding method
US10720944B2 (en) Convolutional code decoder and convolutional code decoding method
CN114430279B (en) List Viterbi decoding method, device, decoder and storage medium
US6452984B1 (en) Metric biasing for maximum likelihood sequence estimators
CN110768747B (en) Convolutional code decoder and convolutional code decoding method
US8156412B2 (en) Tree decoding method for decoding linear block codes
TWI760898B (en) Data decoding circuit and method
CN114499548B (en) A decoding method, device and storage medium
TWI731441B (en) Successive cancellation list-based decoder and decoding method thereof
CN110460339B (en) Method and device for detecting convolutional code decoding, storage medium and electronic equipment
WO2024091727A1 (en) Decoding correlated received multi-symbol data by guessing noise effect
Suhaimi et al. THE EFFECT OF DIFFERENT DECODING TECHNIQUES WITH GAUSSIAN APPROXIMATION ON THE PERFORMANCE OF POLAR CODES
CN115516786A (en) Enhanced decoding for polar codes
WO2006106377A1 (en) Blind transport format detection based on decoder metric
CN113381771A (en) Polar code decoding method and system for receiving end multi-code receiving sequence

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant