Convolutional coding method and device based on channel state, equipment and medium

Through the dynamic filtering mechanism of channel state between the base station and the device terminal, the target convolutional encoder is determined, which solves the problem that the convolutional encoding parameters cannot be adapted, and improves the system performance of massive machine-type communications and the Internet of Things.

CN120474665AInactive Publication Date: 2025-08-12CHENGDU ARRAYCOMM WIRELESS TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510550895.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-29
Publication Date
2025-08-12
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

In the prior art, convolutional coding parameters cannot be adaptively adjusted, resulting in high bit error rates or waste of spectrum resources in massive machine-type communications and Internet of Things scenarios.

Method used

By performing layered dynamic screening on the base station based on the SNR value and bit error rate BER of the channel, the target index value is determined, and sent to the device terminal through the downlink control information DCI. The device terminal parses the index value to determine the target convolution encoder and encodes the data to be encoded.

Benefits of technology

Real-time dynamic adaptation of convolutional encoder parameters is realized, reducing bit error rate and spectrum resource waste, and improving system performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120474665A_ABST
    Figure CN120474665A_ABST
Patent Text Reader

Abstract

The invention discloses a convolutional coding method and device based on a channel state, equipment and a medium, relates to the technical field of network communication, and is used for solving the problem that indexes such as bit error rate and resource waste are large due to the fact that convolutional coding parameters cannot be adaptively adjusted in the prior art. The method comprises the following steps: on a base station, according to an SNR value and a bit error rate BER of a current channel, performing layered screening on a plurality of index values in a preset convolutional encoder dictionary by adopting a preset layered dynamic screening mechanism, and determining a target index value; the base station sends downlink control information (DCI) carrying the target index value to the equipment terminal; analyzing the DCI by adopting the equipment terminal to obtain a target index value, and determining a target convolutional encoder according to the target index value; according to the target convolutional encoder, the device terminal is adopted to encode the to-be-encoded data to obtain the encoded data, so that the convolutional encoding parameters are adaptively adjusted according to the real-time channel state to reduce the bit error rate and resource waste.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network communication technology and provides a channel state-based convolutional coding method, apparatus, device and medium. Background Art

[0002] Convolutional coding is a well-known and important channel coding technique. It improves data transmission reliability and noise immunity by adding redundant information to detect and correct errors that may occur during transmission. For this reason, convolutional coding can be used in scenarios such as real-time control in industrial automation, IoT sensor networks, and smart home security to effectively support large-scale device connections while maintaining low power consumption and computational complexity. Therefore, convolutional coding remains indispensable in traditional wireless communication systems (for example, 4G LTE control channels) and certain specific scenarios.

[0003] However, in massive machine-type communication (mMTC) and Internet of Things (IoT) scenarios, the number of devices is enormous and channel conditions are dynamically changing. Using traditional convolutional coding schemes with fixed parameters (such as fixed bit rate and fixed constraint length) can lead to system stability degradation when encountering sudden interference or rapidly changing channels, as the fixed coding parameters cannot respond in a timely manner. For example, when the channel has a low signal-to-interference plus noise ratio (SNR), a high-rate encoder will suffer from insufficient redundancy, leading to an increased bit error rate (BER). Conversely, when the channel has a high SNR, a low-rate encoder will waste spectrum resources and reduce throughput due to excessive redundancy.

[0004] Therefore, how to adaptively adjust the convolutional coding parameters according to the real-time channel status has become an important issue that needs to be solved urgently. Summary of the Invention

[0005] The present application provides a channel state-based convolutional coding method, apparatus, device and medium, which are used to solve the problem that the existing technology cannot adaptively adjust the convolutional coding parameters, resulting in high bit error rate and resource waste.

[0006] In one aspect, a convolutional coding method based on a channel state is provided, the method comprising:

[0007] On the base station, a preset hierarchical dynamic screening mechanism is used to perform hierarchical screening on multiple index values in a preset convolutional encoder dictionary according to the SNR value and the bit error rate (BER) of the current channel to determine a target index value; wherein the preset hierarchical dynamic screening mechanism is used to perform preliminary screening according to the SNR value and then perform secondary screening according to the bit error rate (BER);

[0008] Using the base station to send downlink control information DCI carrying the target index value to the device terminal; wherein the downlink control information DCI is used to schedule downlink data transmission and uplink data transmission;

[0009] Parsing the DCI using the device terminal to obtain the target index value, and determining a target convolutional encoder based on the target index value;

[0010] According to the target convolution encoder, the device terminal is used to encode the data to be encoded to obtain encoded data.

[0011] Optionally, before determining the target index value by hierarchically screening multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism based on the SNR value and bit error rate (BER) of the current channel, the method further includes:

[0012] Constructing the preset convolutional encoder dictionary on the device terminal and the base station respectively according to the code rate, constraint length and generator polynomial;

[0013] According to the preset convolution encoder dictionary and the modulo-2 convolution operation, basic coding tables and state coding tables corresponding to different convolution encoders are generated on the device terminal.

[0014] Optionally, the step of constructing the preset convolutional encoder dictionary on the device terminal and the base station respectively according to the code rate, constraint length, and generator polynomial includes:

[0015] Configure multiple bit rates;

[0016] Configurations include three levels of restraint length: short, medium, and long;

[0017] Based on the free distance, ergodic algorithm and Viterbi decoding, multiple generating polynomials are determined; wherein the free distance refers to the minimum Hamming distance between all non-zero code words in the convolutional code;

[0018] Constructing a plurality of preset convolution encoders according to the various code rates, the three-level constraint lengths, and the plurality of generator polynomials;

[0019] The preset convolution encoder dictionary is generated according to the multiple preset convolution encoders; wherein the preset convolution encoder dictionary classifies the multiple preset convolution encoders according to the signal-to-noise ratio, and a preset convolution encoder in the preset convolution encoder dictionary is associated with an index value, and the index value is composed of two parts: code rate and constraint length.

[0020] Optionally, the step of generating, on the device terminal, a basic coding table and a state coding table corresponding to different convolutional encoders according to the preset convolutional encoder dictionary and the modulo-2 convolution operation includes:

[0021] Construct input bit sequence and state bit sequence;

[0022] For any convolutional encoder, perform a modulo-2 convolution operation on all combinations corresponding to the input bit sequence and multiple generating polynomials corresponding to the any convolutional encoder to generate a basic coding table corresponding to the any convolutional encoder;

[0023] Perform a modulo-2 convolution operation on all combinations corresponding to the state bit sequence and multiple generating polynomials corresponding to any convolutional encoder to generate a state coding table corresponding to any convolutional encoder.

[0024] Optionally, the step of performing hierarchical screening on multiple index values in a preset convolutional encoder dictionary based on the SNR value and bit error rate (BER) of the current channel using a preset hierarchical dynamic screening mechanism to determine the target index value includes:

[0025] On the device terminal, using a default convolutional encoder, periodically sending a reference signal to the base station through an uplink channel;

[0026] At the base station, performing channel estimation on the received reference signal to calculate an SNR value and a bit error rate (BER) of a current channel;

[0027] According to the SNR value and the BER, a preset hierarchical dynamic screening mechanism is used to perform hierarchical screening on multiple index values in a preset convolution encoder dictionary to determine a target index value.

[0028] Optionally, the step of performing hierarchical screening on multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism according to the SNR value and the BER to determine a target index value includes:

[0029] If it is determined that the SNR value is less than a preset first SNR threshold value, determining that the current scene is a low SNR scene;

[0030] Preliminarily screening multiple index values in the preset convolutional encoder dictionary, and determining multiple index values corresponding to low SNR scenarios as a first index value candidate set;

[0031] According to the BER, a second screening is performed on multiple index values in the first index value candidate set to obtain a target index value.

[0032] Optionally, the step of performing hierarchical screening on multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism according to the SNR value and the BER to determine a target index value includes:

[0033] If it is determined that the SNR value is greater than a preset second SNR threshold value, determining that the current scene is a high SNR scene;

[0034] Preliminarily screening multiple index values in the preset convolutional encoder dictionary, and determining multiple index values corresponding to high SNR scenarios as a second index value candidate set;

[0035] According to the BER, multiple index values in the second index value candidate set are screened twice to obtain a target index value.

[0036] Optionally, the step of performing hierarchical screening on multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism according to the SNR value and the BER to determine a target index value includes:

[0037] If it is determined that the SNR value is not less than a preset first SNR threshold value, and the SNR value is not greater than a preset second SNR threshold value, determining that the current scene is a medium SNR scene;

[0038] Preliminarily screening multiple index values in the preset convolutional encoder dictionary, and determining multiple index values corresponding to the medium SNR scene as a third index value candidate set;

[0039] According to the BER, multiple index values in the third index value candidate set are screened twice to obtain a target index value.

[0040] Optionally, the step of determining a target convolution encoder according to the target index value includes:

[0041] Determine whether the target index value is consistent with the current index value;

[0042] If it is determined that the target index value is inconsistent with the current index value, the current convolution encoder is switched to a target convolution encoder corresponding to the target index value.

[0043] Optionally, the step of encoding the data to be encoded using the device terminal according to the target convolutional encoder to obtain encoded data includes:

[0044] Determining a target basic coding table and a target state coding table corresponding to the target convolutional encoder;

[0045] Perform a modulo-2 addition operation on the basic code in the target basic coding table and the state code in the target state coding table to obtain the encoded data.

[0046] Optionally, after encoding the data to be encoded using the device terminal according to the target convolutional encoder to obtain the encoded data, the method further includes:

[0047] Using the base station to receive PUSCH data sent by the device terminal; wherein the PUSCH data includes the encoded data;

[0048] On the base station, channel estimation is performed on the PUSCH data to obtain an SNR value and a BER value of the current channel.

[0049] In one aspect, a channel state-based convolutional coding apparatus is provided, the apparatus comprising:

[0050] An index value determination unit is configured to, on a base station, perform hierarchical screening of multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism based on the SNR value and bit error rate (BER) of the current channel to determine a target index value; wherein the preset hierarchical dynamic screening mechanism is configured to perform preliminary screening based on the SNR value and then perform secondary screening based on the bit error rate (BER);

[0051] A data sending unit, configured to use the base station to send downlink control information DCI carrying the target index value to the device terminal; wherein the downlink control information DCI is used to schedule downlink data transmission and uplink data transmission;

[0052] a convolutional encoder determining unit, configured to parse the DCI using the device terminal, obtain the target index value, and determine a target convolutional encoder based on the target index value;

[0053] The data encoding unit is used to encode the data to be encoded using the device terminal according to the target convolution encoder to obtain encoded data.

[0054] On the one hand, an electronic device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements any one of the above methods when executing the computer program.

[0055] In one aspect, a storage medium is provided, on which computer program instructions are stored, and when the computer program instructions are executed by a processor, any of the above methods is implemented.

[0056] Compared with the prior art, the present invention has the following advantages:

[0057] In the present application, first, on the base station, a preset hierarchical dynamic screening mechanism can be used to perform hierarchical screening on multiple index values in a preset convolution encoder dictionary according to the SNR value and bit error rate BER of the current channel to determine the target index value; wherein, the preset hierarchical dynamic screening mechanism is used to perform preliminary screening according to the SNR value, and then perform secondary screening according to the bit error rate BER; then, the base station can be used to send downlink control information DCI carrying the target index value to the device terminal; wherein, the downlink control information DCI is used to schedule downlink data transmission and uplink data transmission; next, the device terminal can be used to parse the DCI to obtain the target index value, and determine the target convolution encoder based on the target index value; finally, the device terminal can be used to encode the data to be encoded based on the target convolution encoder to obtain the encoded data.

[0058] Based on this, in this application, the target index value is determined through a hierarchical dynamic screening mechanism that combines SNR and BER, thereby achieving real-time dynamic adaptation of the convolution encoder parameters. Based on this, at low SNRs, this application can prioritize improving error correction capabilities to reduce BER; at high SNRs, it can maximize spectrum efficiency, reduce spectrum resource waste, and increase throughput to balance system performance. Therefore, this technical solution can be applied to scenarios such as large-scale machine-type communications, the Internet of Things, the Internet of Vehicles, and low-power, ultra-reliable, and low-latency communications. BRIEF DESCRIPTION OF THE DRAWINGS

[0059] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following briefly introduces the drawings required for use in the embodiments or related technical descriptions. Obviously, the drawings described below are only embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.

[0060] Figure 1 An electronic device provided in an embodiment of the present application;

[0061] Figure 2 A schematic diagram of a channel state-based convolutional coding method provided in an embodiment of the present application;

[0062] Figure 3 A schematic diagram of the structure of a convolutional encoder provided in an embodiment of the present application;

[0063] Figure 4A schematic diagram of a process flow of fast convolution coding provided in an embodiment of the present application;

[0064] Figure 5 Another structural diagram of a convolutional encoder provided in an embodiment of the present application;

[0065] Figure 6 Another schematic diagram of a fast convolutional coding process according to an embodiment of the present invention;

[0066] Figure 7 A schematic diagram of a process for index value screening provided in an embodiment of the present application;

[0067] Figure 8 Another schematic diagram of a flow chart for index value screening provided in an embodiment of the present application;

[0068] Figure 9 Another schematic diagram of a flow chart for index value screening provided in an embodiment of the present application;

[0069] Figure 10 A schematic diagram of a channel state-based convolutional coding device provided in an embodiment of the present application.

[0070] Markings in the figure: 10-convolutional coding device based on channel state, 101-processor, 102-memory, 103-I / O interface, 104-database, 100-convolutional coding device based on channel state, 1001-index value determination unit, 1002-data sending unit, 1003-convolutional encoder determination unit, 1004-data encoding unit, 1005-dictionary and coding table construction unit. DETAILED DESCRIPTION

[0071] In order to make the purpose, technical solutions and advantages of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of this application. In the absence of conflict, the embodiments in the present application and the features in the embodiments can be combined with each other in any way. In addition, although a logical order is shown in the flow chart, in some cases, the steps shown or described can be performed in an order different from that here.

[0072] Convolutional coding is a well-known and important channel coding technique. It improves data transmission reliability and noise immunity by adding redundant information to detect and correct errors that may occur during transmission. For this reason, convolutional coding can be used in scenarios such as real-time control in industrial automation, IoT sensor networks, and smart home security to effectively support large-scale device connections while maintaining low power consumption and computational complexity. Therefore, convolutional coding remains indispensable in traditional wireless communication systems (for example, 4G LTE control channels) and certain specific scenarios.

[0073] However, in massive machine-type communications and IoT scenarios, the number of devices is enormous and channel conditions are dynamically changing. Using traditional fixed-parameter convolutional coding schemes (such as fixed bit rate and fixed constraint length) can lead to system stability degradation when encountering sudden interference or rapidly changing channels, as the fixed coding parameters cannot respond in a timely manner. For example, when the channel has a low signal-to-noise ratio (SNR), a high-rate encoder will suffer from insufficient redundancy, leading to an increased BER. Conversely, when the channel has a high SNR, a low-rate encoder will waste spectrum resources and reduce throughput due to excessive redundancy.

[0074] Based on this, an embodiment of the present application provides a convolutional coding method based on channel state, in which, first, on the base station, a preset hierarchical dynamic screening mechanism can be used to perform hierarchical screening on multiple index values in a preset convolutional encoder dictionary according to the SNR value and bit error rate BER of the current channel to determine the target index value; wherein, the preset hierarchical dynamic screening mechanism is used to perform preliminary screening according to the SNR value, and then perform secondary screening according to the bit error rate BER; then, the base station can be used to send downlink control information DCI carrying the target index value to the device terminal; wherein, the downlink control information DCI is used to schedule downlink data transmission and uplink data transmission; next, the device terminal can be used to parse the DCI to obtain the target index value, and determine the target convolutional encoder based on the target index value; finally, the device terminal can be used to encode the data to be encoded based on the target convolutional encoder to obtain the encoded data. Based on this, in the present application, since the target index value is determined by a hierarchical dynamic screening mechanism that combines SNR and BER, the real-time dynamic adaptation of the convolutional encoder parameters is achieved. Based on this, at low SNRs, this application prioritizes improving error correction capabilities to reduce BER; at high SNRs, it maximizes spectrum efficiency, reduces spectrum resource waste, and improves throughput to balance system performance. Therefore, this technical solution can be applied to scenarios such as large-scale machine-type communications, the Internet of Things, the Internet of Vehicles, and low-power, ultra-reliable, and low-latency communications.

[0075] After introducing the design concepts of the embodiments of the present application, the following briefly introduces the application scenarios to which the technical solutions of the embodiments of the present application can be applied. It should be noted that the application scenarios introduced below are only used to illustrate the embodiments of the present application and are not limiting. In the specific implementation process, the technical solutions provided by the embodiments of the present application can be flexibly applied according to actual needs.

[0076] like Figure 1 As shown, an electronic device provided in an embodiment of the present application is shown, and the electronic device may specifically be a convolutional coding device 10 based on a channel state.

[0077] The channel state-based convolutional coding device 10 can be used to perform adaptive fast convolutional coding based on real-time channel states. For example, it can be a personal computer (PC), a server, or a laptop. The channel state-based convolutional coding device 10 may include one or more processors 101, a memory 102, an I / O interface 103, and a database 104. Specifically, the processor 101 may be a central processing unit (CPU) or a digital processing unit. The memory 102 may be a volatile memory, such as a random-access memory (RAM); a non-volatile memory, such as a read-only memory, flash memory, a hard disk drive (HDD), or a solid-state drive (SSD); or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory 102 may be a combination of the above-mentioned memories. The memory 102 may store some program instructions for the channel state-based convolutional coding method provided in an embodiment of the present application. When these program instructions are executed by the processor 101, they can be used to implement the steps of the channel state-based convolutional coding method provided in an embodiment of the present application, so as to adaptively adjust the convolutional coding parameters according to the real-time channel state. The database 104 may be used to store data such as the SNR value, bit error rate BER, downlink control information DCI, data to be encoded, encoded data, a preset convolutional encoder dictionary, a basic coding table, and a state coding table involved in the solution provided in an embodiment of the present application.

[0078] In the embodiment of the present application, the channel state-based convolutional coding device 10 can obtain convolutional coding instructions through the I / O interface 103. Then, the processor 101 of the channel state-based convolutional coding device 10 will adaptively adjust the convolutional coding parameters according to the real-time channel state according to the program instructions of the channel state-based convolutional coding method provided in the embodiment of the present application in the memory 102. In addition, data such as the SNR value, the bit error rate BER, downlink control information DCI, data to be encoded, encoded data, a preset convolutional encoder dictionary, a basic coding table, and a state coding table can also be stored in the database 104.

[0079] Of course, the method provided in the embodiment of the present application is not limited to Figure 1 The application scenarios shown can also be used in other possible application scenarios, and the embodiments of this application are not limited thereto. Figure 1 The functions that can be realized by each device in the application scenario shown will be described in the subsequent method embodiments, and will not be described in detail here.

[0080] like Figure 2 FIG. 1 is a schematic diagram of a convolutional coding method based on channel state provided by an embodiment of the present application. The method can be performed by Figure 1 The method is performed by the channel state-based convolutional coding device 10. Specifically, the process of the method is described as follows.

[0081] Step 1: Pre-store a preset convolutional encoder dictionary on the device terminal and the base station.

[0082] Because a preset convolutional encoder dictionary is used during convolutional encoding, in embodiments of the present application, a preset convolutional encoder dictionary needs to be constructed before convolutional encoding is performed, and the preset convolutional encoder dictionary is pre-stored on the device terminal and the base station. Specifically, the preset convolutional encoder dictionary can be constructed on the device terminal and the base station respectively based on the bit rate, constraint length, and generator polynomial. In actual applications, the device terminal will pre-store a preset convolutional encoder dictionary that is consistent with the base station when it leaves the factory.

[0083] Furthermore, the specific construction process of the preset convolutional encoder dictionary is as follows:

[0084] ①Configure multiple bit rates (R).

[0085] Specifically, a dynamic bit rate configuration mechanism with multiple adjustable levels of 1 / 3, 1 / 2, 2 / 3, 3 / 4, 5 / 6, and 7 / 8 can be used to configure multiple bit rates.

[0086] ② The configuration includes three levels of constraint length (m): short, medium and long.

[0087] Specifically, the short constraint length m can be configured to 5, the medium constraint length m can be configured to 7, and the long constraint length m can be configured to 9 to meet different complexity requirements.

[0088] ③ According to the free distance, traversal algorithm and Viterbi decoding, multiple generating polynomials are determined.

[0089] The free distance refers to the minimum Hamming distance between all non-zero codewords in a convolutional code. This free distance is a key indicator for measuring the error correction capability of a convolutional code. The larger the free distance, the stronger the error correction capability of the convolutional code.

[0090] ④ Construct multiple preset convolutional encoders based on various code rates, three-level constraint lengths, and multiple generating polynomials.

[0091] ⑤ Based on multiple preset convolutional encoders, generate a preset convolutional encoder dictionary.

[0092] In an embodiment of the present application, as shown in Table 1, it is a schematic table of a preset convolutional encoder dictionary provided in an embodiment of the present application.

[0093] Table 1 Preset convolutional encoder dictionary

[0094]

[0095]

[0096] That is, the preset convolutional encoder dictionary can be represented by an index mapping table, wherein the preset convolutional encoder dictionary classifies multiple preset convolutional encoders according to the signal-to-noise ratio. A preset convolutional encoder in the preset convolutional encoder dictionary is associated with an index value. In practical applications, an 8-bit (1-byte) index value (value range: 0x00 to 0xFF) can be used to quickly find the corresponding convolutional encoder, and the index value consists of two parts: code rate and constraint length. The specific examples are as follows:

[0097] High 4 bits (Bit7~4): code rate (0000: R=1 / 3, 0001: R=1 / 2, 0010: R=2 / 3, 0011: R=3 / 4, 0100: R=5 / 6, 0101: R=7 / 8).

[0098] Lower 4 bits (Bit 3 to 0): constraint length (0000: m = 5, 0001: m = 7, 0010: m = 9).

[0099] Step 2: On the device terminal, generate the basic coding table and state coding table corresponding to all convolutional encoders.

[0100] In an embodiment of the present application, basic coding tables and state coding tables corresponding to different convolutional encoders can be generated on the device terminal based on a preset convolutional encoder dictionary and a modulo-2 convolution operation.

[0101] Specifically, first, we can construct a 1-byte input bit sequence C = [c0, c1, c2, c3, c4, c5, c6, c7] and a state bit sequence S = [s m-2 ,s m-3 ,...,s1,s0], where m is the constraint length of the convolutional encoder.

[0102] Then, for any convolutional encoder, all combinations corresponding to the input bit sequence can be convolved modulo 2 with multiple generator polynomials G corresponding to any convolutional encoder to generate a basic coding table Tb_base corresponding to any convolutional encoder with a length of n*256 bytes, that is, Tb_base = C*G. This basic coding table Tb_base pre-calculates and stores all possible results of C*G corresponding to a 1-byte (i.e., 8-bit) input bit sequence C.

[0103] Finally, for the convolutional encoder (n, k, m), since its output bit sequence D is not only related to the input byte bit sequence C, but also to the current state of the (m-1) shift registers, the shift register state (state bit sequence) is expressed as S = [s m-2 ,s m-3 ,...,s1,s0]. Based on this, all combinations corresponding to the state bit sequence S can be convolved modulo 2 with multiple generating polynomials G corresponding to any convolutional encoder to generate a length of n*2 m-1 The state encoding table Tb_state corresponding to any convolutional encoder of the byte is Tbl_state=S*G. The state encoding table Tb_state pre-calculates and stores all possible results of S*G corresponding to (m-1) register state bit sequences S.

[0104] Furthermore, for all the convolutional encoders in Table 1 above, only 3312 bytes of memory space can be used to store all basic coding tables and state coding tables, as shown in Table 2, which is a schematic diagram of the coding tables provided in the embodiment of the present application. Among them, the constraint length m and the generating polynomials G0 and G1 of the convolutional encoder with an index value > 0x11 are the same as those of the convolutional encoder with an index value of 0x01, so there is no need to generate an additional coding table.

[0105] Table 2 Statistics of the encoding table of the convolutional encoder

[0106]

[0107] Step 3: On the base station, based on the SNR value and bit error rate (BER) of the current channel, a preset hierarchical dynamic screening mechanism is used to perform hierarchical screening on multiple index values in the preset convolutional encoder dictionary to determine the target index value.

[0108] In the embodiment of the present application, the preset hierarchical dynamic screening mechanism is used to perform preliminary screening based on the SNR value and then perform secondary screening based on the bit error rate BER.

[0109] Specifically, first, on the device terminal, the default convolution encoder (for example, the convolution encoder (3, 1, 7) corresponding to the index value 0x01) can be used to periodically (the period is configurable, for example, 1ms) send a reference signal to the base station through the uplink channel; then, on the base station, channel estimation can be performed on the received reference signal to calculate the SNR value and bit error rate BER of the current channel; finally, based on the SNR value and BER, a preset hierarchical dynamic screening mechanism can be used to perform hierarchical screening on multiple index values in the preset convolution encoder dictionary to determine the target index value.

[0110] Furthermore, in an embodiment of the present application, when a preset hierarchical dynamic screening mechanism is used to hierarchically screen multiple index values in a preset convolutional encoder dictionary according to the SNR value and BER to determine a target index value, there are specifically three index value determination processes for different SNR scenarios:

[0111] The first one: low SNR scenario

[0112] If it is determined that the SNR value is less than a preset first SNR threshold value (for example, 5dB), the current scene is determined to be a low SNR scene; then, the multiple index values in the preset convolution encoder dictionary can be preliminarily screened to determine the multiple index values corresponding to the low SNR scene as the first index value candidate set. For example, based on the above Table 1, the first index value candidate set = {0x01, 0x02} can be determined; then, the multiple index values in the first index value candidate set can be secondary screened according to the BER to obtain the target index value.

[0113] Second: High SNR scenario

[0114] If it is determined that the SNR value is greater than a preset second SNR threshold value (for example, 10dB), the current scene is determined to be a high SNR scene; furthermore, the multiple index values in the preset convolution encoder dictionary can be preliminarily screened to determine the multiple index values corresponding to the high SNR scene as the second index value candidate set. For example, based on the above Table 1, the second index value candidate set = {0x31, 0x41, 0x51} can be determined; then, the multiple index values in the second index value candidate set can be secondary screened according to the BER to obtain the target index value.

[0115] The third type: medium SNR scenario

[0116] If it is determined that the SNR value is not less than the preset first SNR threshold value (for example, 5dB) and the SNR value is not greater than the preset second SNR threshold value (for example, 10dB), the current scene is determined to be a medium SNR scene; then, the multiple index values in the preset convolution encoder dictionary can be preliminarily screened to determine the third index value candidate set for the multiple index values corresponding to the medium SNR scene. For example, based on Table 1 above, the third index value candidate set = {0x10, 0x11, 0x21} can be determined; then, the multiple index values in the third index value candidate set can be secondary screened according to the BER to obtain the target index value.

[0117] Step 3: Use the base station to send downlink control information DCI carrying the target index value to the device terminal.

[0118] In the embodiment of the present application, downlink control information (DCI) is used to schedule downlink data transmission and uplink data transmission, for example, resource allocation, modulation and coding scheme, HARQ information, etc.

[0119] In actual applications, after determining the target index value, the base station can send the 1-byte target index value to the device terminal via downlink control information DCI. The downlink control information DCI is control information transmitted via the Physical Downlink Control Channel (PDCCH).

[0120] Step 4: Use the device terminal to parse the DCI, obtain the target index value, and determine the target convolution encoder based on the target index value.

[0121] Specifically, after the device terminal parses the target index value from the DCI information of the PDCCH, it can determine whether the target index value is consistent with the current index value; if it is determined that the target index value is inconsistent with the current index value, the current convolution encoder can be switched to the target convolution encoder corresponding to the target index value.

[0122] Step 5: According to the target convolution encoder, the device terminal is used to encode the data to be encoded to obtain the encoded data.

[0123] Specifically, first, the target basic coding table and the target state coding table corresponding to the target convolution encoder can be determined; then, since the convolution code is a linear code and satisfies the basic properties of linear coding, the basic code (C*G) in the target basic coding table and the state code (C*G) in the target state coding table can be added modulo 2 to obtain 1 byte of encoded data D, that is, D=C*G+S*G, D=[d0,d1,d2,d3,d4,d5,d6,d7].

[0124] Furthermore, since the convolution results of C*G and S*G are quickly obtained by querying the basic coding table Tbl_base and the state coding table Tbl_state stored in the device memory, rather than through real-time complex calculations or logical judgments, the execution efficiency is greatly improved.

[0125] Step 6: On the base station, perform channel estimation on the PUSCH data sent by the device terminal to obtain the SNR value and BER value of the current channel.

[0126] Specifically, after encoding the data to be encoded using a device terminal according to a target convolutional encoder and obtaining the encoded data, a base station can be used to receive PUSCH data sent by the device terminal. The PUSCH data includes the encoded data. The base station can then perform channel estimation on the PUSCH data to obtain the SNR and BER values of the current channel. Furthermore, the same target index value can be used to query a preset convolutional encoder dictionary to obtain specific convolutional encoder parameters for decoding, count the number of CRC check failures, and update the BER value for use in selecting the next index value. Specific embodiment 1:

[0128] like Figure 3 As shown in FIG. 1 , a structural diagram of a convolutional encoder provided in an embodiment of the present application is shown, wherein the code rate of the convolutional encoder (3,1,7) is 1 / 3, the constraint length is 7, and c k is the current input bit data of the encoder, d k (0) d k (1) d k (2) They represent the first, second, and third groups of bit data of the coded output respectively. G0, G1, and G2 correspond to the generated sequences of the three groups of coded output respectively.

[0129] Based on this convolutional encoder, the following 1 / 3 code rate fast convolutional coding can be performed, such as Figure 4 As shown, it is a flowchart of the fast convolution coding provided by an embodiment of the present application.

[0130] Step 1: From the coding table statistics table, query the basic coding tables Tbl_base_d0, Tbl_base_d1 and Tbl_base_d2.

[0131] In actual application, the process of generating the basic coding table Tbl_base_d0 is as follows:

[0132] Calculate the modulo-2 convolution of all possible combinations (2^8=256 possibilities) of the 1-byte input bit sequence C=[c0,c1,c2,c3,c4,c5,c6,c7] and the generating sequence G0 to generate a basic coding table Tbl_base_d0 with a length of 256 bytes, that is, Tbl_base_d0=C*G0.

[0133] The process of generating the basic coding table Tbl_base_d1 is as follows:

[0134] Calculate the modulo-2 convolution of all possible combinations (2^8=256 possibilities) of the 1-byte input bit sequence C=[c0,c1,c2,c3,c4,c5,c6,c7] and the generating sequence G1 to generate a basic coding table Tbl_base_d1 with a length of 256 bytes, that is, Tbl_base_d1=C*G1.

[0135] The process of generating the basic coding table Tbl_base_d2 is as follows:

[0136] Calculate the modulo-2 convolution of all possible combinations (2^8=256 possibilities) of the 1-byte input bit sequence C=[c0,c1,c2,c3,c4,c5,c6,c7] and the generated sequence G2 to generate a basic coding table Tbl_base_d2 with a length of 256 bytes, that is, Tbl_base_d2=C*G2.

[0137] Step 2: From the coding table statistics table, query the state coding tables Tbl_state_d0, Tbl_state_d1 and Tbl_state_d2.

[0138] In actual application, the process of generating the state coding table Tbl_state_d0 is as follows:

[0139] Calculate the modulo-2 convolution of all possible combinations (2^6=64 possibilities) of the state bit sequence S=[s5, s4, s3, s2, s1, s0] and the generation sequence G0 to generate a state encoding table Tbl_state_d0 with a length of 64 bytes, that is, Tbl_state_d0=S*G0.

[0140] The process of generating the state coding table Tbl_state_d1 is as follows:

[0141] Calculate the modulo-2 convolution of all possible combinations (2^6=64 possibilities) of the state bit sequence S=[s5, s4, s3, s2, s1, s0] and the generation sequence G1 to generate a state encoding table Tbl_state_d1 with a length of 64 bytes, that is, Tbl_state_d1=S*G1.

[0142] The process of generating the state coding table Tbl_state_d2 is as follows:

[0143] Calculate the modulo-2 convolution of all possible combinations (2^6=64 possibilities) of the state bit sequence S=[s5, s4, s3, s2, s1, s0] and the generation sequence G2 to generate a state encoding table Tbl_state_d2 with a length of 64 bytes, that is, Tbl_state_d2=S*G2.

[0144] Step 3: Perform a modulo-2 addition operation on the basic coding table and the state coding table to obtain the coded output bit sequence D.

[0145] In the embodiment of the present application, 1 byte (i.e., 8 bits) of data is encoded at a time, using bytes as units. That is, a 1-byte actual input bit sequence C = [c0, c1, c2, c3, c4, c5, c6, c7] is obtained, and three sets of output bit sequences D0, D1, and D2 are calculated respectively.

[0146] In practical applications, the first output bit sequence D0 is calculated as [d0 (0) ,d1 (0) ,d2 (0) ,d3 (0) ,d4 (0) ,d5 (0) ,d6 (0) ,d7 (0) The process of ] is as follows:

[0147] By querying the basic coding table Tbl_base_d0, the corresponding basic code d0_base = C*G0 is obtained. Then, by querying the state coding table Tbl_state_d0, the corresponding state code d0_state = S*G0 is obtained. A modulo-2 addition operation is performed on the two table lookup results of the basic code d0_base and the state code d0_state to obtain the 1-byte output bit sequence D0, that is, D0 = d0_base + d0_state = C*G0 + S*G0.

[0148] Calculate the second output bit sequence D1 = [d0 (1) ,d1 (1) ,d2 (1) ,d3 (1) ,d4 (1) ,d5 (1) ,d6(1) ,d7 (1) The process of ] is as follows:

[0149] By querying the basic coding table Tbl_base_d1, the corresponding basic code d1_base = C*G1 is obtained. Then, by querying the state coding table Tbl_state_d1, the corresponding state code d1_state = S*G1 is obtained. A modulo-2 addition operation is performed on the two table lookup results of the basic code d1_base and the state code d1_state to obtain the 1-byte output bit sequence D1, that is, D1 = d1_base + d1_state = C*G1 + S*G1.

[0150] Calculate the third output bit sequence D2 = [d0 (2) ,d1 (2) ,d2 (2) ,d3 (2) ,d4 (2) ,d5 (2) ,d6 (2) ,d7 (2) The process of ] is as follows:

[0151] By querying the basic coding table Tbl_base_d2, the corresponding basic code d2_base = C*G2 is obtained. Then, by querying the state coding table Tbl_state_d2, the corresponding state code d2_state = S*G2 is obtained. A modulo-2 addition operation is performed on the two table lookup results of the basic code d2_base and the state code d2_state to obtain the 1-byte output bit sequence D2: D2 = d2_base + d2_state = C*G2 + S*G2.

[0152] Furthermore, for a 1-byte input bit sequence C = [c0, c1, c2, c3, c4, c5, c6, c7], the final output data is D = [D0, D1, D2] = [d0 (0) ,d1 (0) ,d2 (0) ,d3 (0) ,d4 (0) ,d5 (0) ,d6 (0) ,d7 (0) ,d0 (1) ,d1 (1) ,d2 (1) ,d3 (1) ,d4 (1) ,d5 (1) ,d6 (1) ,d7 (1) ,d0 (2) ,d1 (2) ,d2 (2),d3 (2) ,d4 (2) ,d5 (2) ,d6 (2) ,d7 (2) ].

[0153] As can be seen, since the present application only needs to pre-calculate and generate three 64-byte state coding tables and three 256-byte basic coding tables, and then perform a simple modulo-2 addition operation after querying the results of the two coding tables to obtain the output data, compared with the prior art, the memory space required for the present application is not only significantly reduced (the required memory size is only 320*3=9100 bytes), but the computational efficiency is also much higher than that of serial coding. As can be seen from this, the fast convolutional coding method of the present application is particularly suitable for low-cost, memory-constrained systems, and is not restricted by the system architecture and is easy to implement. Specific embodiment 2:

[0155] like Figure 5 FIG. 1 is another structural diagram of a convolutional encoder provided in an embodiment of the present application, wherein the code rate of the convolutional encoder (2,1,7) is 1 / 2, the constraint length is 7, and c k is the current input bit data of the encoder, d k (0) d k (1) They represent the first and second groups of bit data of the coded output respectively. G0 and G1 correspond to the generated sequences of the two groups of coded output respectively.

[0156] Based on this convolutional encoder, fast convolutional encoding with a code rate of 2 / 3 can be performed. In an embodiment of the present application, a convolutional encoder with a code rate of 2 / 3 generally refers to converting an original encoder with a high code rate (such as a code rate of 1 / 2) into a code rate of 2 / 3 by puncturing. A puncturing matrix is used to selectively delete certain encoded bits to reduce redundancy and increase the code rate. For example, the original 1 / 2 encoder outputs 2 bits for every 1 bit input, and the code rate is 1 / 2. If 1 of every 4 output bits is punctured and 3 of them are retained, the code rate becomes 2 / 3. As Figure 6 As shown, it is another flowchart of the fast convolution coding provided by an embodiment of the present application.

[0157] Step 1: Query the basic coding tables Tbl_base_d0 and Tbl_base_d1 from the coding table statistics table.

[0158] In actual application, the process of generating the basic coding table Tbl_base_d0 is as follows:

[0159] Calculate the modulo-2 convolution of all possible combinations (2^8=256 possibilities) of the 1-byte input bit sequence C=[c0,c1,c2,c3,c4,c5,c6,c7] and the generating sequence G0 to generate a basic coding table Tbl_base_d0 with a length of 256 bytes, that is, Tbl_base_d0=C*G0.

[0160] The process of generating the basic coding table Tbl_base_d1 is as follows:

[0161] Calculate the modulo-2 convolution of all possible combinations (2^8=256 possibilities) of the 1-byte input bit sequence C=[c0,c1,c2,c3,c4,c5,c6,c7] and the generating sequence G1 to generate a basic coding table Tbl_base_d1 with a length of 256 bytes, that is, Tbl_base_d1=C*G1.

[0162] Step 2: Query the state coding tables Tbl_state_d0 and Tbl_state_d1 from the coding table statistics table.

[0163] In actual application, the process of generating the state coding table Tbl_state_d0 is as follows:

[0164] Calculate the modulo-2 convolution of all possible combinations (2^6=64 possibilities) of the state bit sequence S=[s5, s4, s3, s2, s1, s0] and the generation sequence G0 to generate a state encoding table Tbl_state_d0 with a length of 64 bytes, that is, Tbl_state_d0=S*G0.

[0165] The process of generating the state coding table Tbl_state_d1 is as follows:

[0166] Calculate the modulo-2 convolution of all possible combinations (2^6=64 possibilities) of the state bit sequence S=[s5, s4, s3, s2, s1, s0] and the generation sequence G1 to generate a state encoding table Tbl_state_d1 with a length of 64 bytes, that is, Tbl_state_d1=S*G1.

[0167] Step 3: Perform a modulo-2 addition operation on the basic coding table and the state coding table to obtain the coded output bit sequence D.

[0168] In the embodiment of the present application, 1 byte (i.e., 8 bits) of data is encoded each time in units of bytes. That is, a 1-byte actual input data bit sequence C = [c0, c1, c2, c3, c4, c5, c6, c7] is obtained, and two sets of output bit sequences D0 and D1 are calculated respectively.

[0169] In practical applications, the first output bit sequence D0 is calculated as [d0 (0) ,d1 (0) ,d2 (0) ,d3 (0) ,d4 (0) ,d5 (0) ,d6 (0) ,d7 (0) The process of ] is as follows:

[0170] By querying the basic coding table Tbl_base_d0, the corresponding basic code d0_base = C*G0 is obtained. Then, by querying the state coding table Tbl_state_d0, the corresponding state code d0_state = S*G0 is obtained. A modulo-2 addition operation is performed on the two table lookup results of the basic code d0_base and the state code d0_state to obtain the 1-byte output bit sequence D0, that is, D0 = d0_base + d0_state = C*G0 + S*G0.

[0171] Calculate the second output bit sequence D1 = [d0 (1) ,d1 (1) ,d2 (1) ,d3 (1) ,d4 (1) ,d5 (1) ,d6 (1) ,d7 (1) The process of ] is as follows:

[0172] By querying the basic coding table Tbl_base_d1, the corresponding basic code d1_base = C*G1 is obtained. Then, by querying the state coding table Tbl_state_d1, the corresponding state code d1_state = S*G1 is obtained. A modulo-2 addition operation is performed on the two table lookup results of the basic code d1_base and the state code d1_state to obtain the 1-byte output bit sequence D1, that is, D1 = d1_base + d1_state = C*G1 + S*G1.

[0173] Then, a puncturing matrix P can be applied. In the embodiment of the present application, the puncturing matrix P is a two-dimensional binary matrix, where the rows correspond to the output branches of the original encoder and the columns correspond to the time periods. The elements in the matrix indicate whether the corresponding bit is retained. A 1 in the puncturing matrix indicates that the bit is retained, and a 0 indicates that the bit is deleted.

[0174] In this embodiment 2, the puncturing matrix The rows represent the output branches (e.g., D0 and D1) corresponding to the two generating polynomials of the original encoder, and the columns correspond to the inputs at two time points. The specific operations are as follows:

[0175] Input c0: original encoder generates d0(0) and d0 (1) , because the elements in the first column of the puncturing matrix P are all 1, these two bits are retained.

[0176] Input c1: original encoder generates d1 (0) and d1 (1) , because the element in the 2nd column and 1st row of the corresponding puncturing matrix P is 1, retain d1 (0) ; The element in the 2nd column and 2nd row of the corresponding puncturing matrix P is 0, and d1 is deleted (1) .

[0177] Output: d0 (0) 、d0 (1) and d1 (0) There are 3 bits in total, corresponding to 2 input bits c0 and c1, and the code rate = 2 / 3.

[0178] For a 1-byte input bit sequence C = [c0, c1, c2, c3, c4, c5, c6, c7], the final output data is D = [d0 (0) ,d1 (0) ,d2 (0) ,d3 (0) ,d4 (0) ,d5 (0) ,d6 (0) ,d7 (0) ,d0 (1) d2 (1) ,d4 (1) ,d6 (1) ].

[0179] It can be seen that since the present application only needs to pre-calculate and generate three state coding tables with a length of 64 bytes and three basic coding tables with a length of 256 bytes, and perform a simple modulo-2 addition operation after querying the results of these two coding tables to obtain the output data, compared with the existing technology, the memory space required for the present application is not only significantly reduced (the required memory size is only 320*2=640 bytes), but the computational efficiency is also much higher than serial coding. Specific embodiment 3:

[0181] Perform screening of index values for low SNR scenarios (assuming SNR = 4dB), such as Figure 7 The figure shows a flow chart of index value screening provided in an embodiment of the present application.

[0182] First, the base station periodically performs channel estimation on the uplink reference signal to obtain the SNR measurement value of the current channel, and counts the number of CRC check failures to update the BER value.

[0183] Then, check whether the current time window is locked.

[0184] Next, if the current time window is in a locked state, the original index value is maintained unchanged.

[0185] Then, if the current time window is in the unlocked state, the SNR and BER of the index value are combined for multi-level screening. The specific strategy is as follows:

[0186] Assuming the measured SNR value is 4dB, since 4dB is less than the threshold of 5dB, it can be determined that the SNR is low. Referring to the preset convolutional encoder dictionary in Table 1, the base station preliminarily screens the candidate index set based on the channel SNR value, obtaining the candidate index set of {0x01, 0x02}.

[0187] Then, the base station performs a secondary screening of the index value candidate set based on the current bit error rate (BER) measurement value. Specifically, if the BER measurement values for three consecutive times are all greater than the threshold value BER_high(1e-3) (for example, the BER is 2e-3 at this time, and the BERs of the two previous consecutive measurements were 1.9e-3 and 2.1e-3, respectively, both greater than the threshold value 1e-3), it indicates that a large number of erroneous bits occurred during the transmission process, and it is necessary to switch to a convolutional encoder with a higher error correction capability. Referring to the predefined convolutional encoder dictionary in Table 1, an encoder with a lower bit rate than the current encoder is selected from the index value candidate set {0x01, 0x02}.

[0188] If the current convolutional encoder bit rate is greater than 1 / 3, you need to reduce the bit rate and select the fixed bit rate of 1 / 3 in this scenario, that is, filter out the index value 0x01.

[0189] If the code rate of the current convolutional encoder is equal to 1 / 3, and the corresponding code rates in the index value candidate set are all 1 / 3, and there is no encoder with a lower code rate, then the encoder with a longer constraint length (9) is selected, that is, the index value 0x02 is filtered out.

[0190] If the BER measurement values for three consecutive times are all less than the threshold value BER_low(1e-5) (for example, BER = 1e-6 at this time, and the BER values for the two previous consecutive measurements were 1.3e-6 and 1.2e-6, respectively, both less than the threshold value 1e-5), it indicates that the data transmission is stable and reliable, and the number of bit errors is small. You can try a convolutional encoder with a higher code rate or a smaller constraint length to improve system efficiency. Since the code rates corresponding to the candidate index values are all 1 / 3 and there are no encoders with higher code rates, you should choose an encoder with a smaller constraint length (4), that is, filter out the index value 0x01.

[0191] If the BER measurement values do not meet the above conditions for three consecutive times, it means that the data transmission is in a relatively stable state, the number of erroneous bits is normal, and there is no need to switch the encoding mode.

[0192] Finally, if the final filtered index value matches the currently used index value, no index update is required. If the final filtered index value differs from the currently used index value, a switch to a different convolutional encoder is required, and the current index value is updated to the filtered index value. Once a convolutional encoder switch occurs (i.e., an index update), a time window (e.g., 10ms) is locked after the switch, prohibiting further switching. This smooths BER fluctuations and prevents erroneous switching caused by transient interference. Specific embodiment 4:

[0194] Screen the index value of the high SNR scene (assuming SNR = 12dB), such as Figure 8 As shown, it is another flowchart of index value screening provided in an embodiment of the present application.

[0195] First, the base station periodically performs channel estimation on the uplink reference signal to obtain the SNR measurement value of the current channel, and counts the number of CRC check failures to update the BER value.

[0196] Then, check whether the current time window is locked.

[0197] Next, if the current time window is in a locked state, the original index value is maintained unchanged.

[0198] Then, if the current time window is in the unlocked state, the SNR and BER of the index value are combined for multi-level screening. The specific strategy is as follows:

[0199] Assuming the measured SNR value is 12dB, since 12dB is greater than the threshold value of 10dB, it can be determined that this is a high SNR scenario. Referring to the preset convolutional encoder dictionary in Table 1, the base station preliminarily screens the candidate index value set based on the channel SNR value, obtaining the candidate index value set = {0x31, 0x41, 0x51}.

[0200] Then, the base station performs a secondary screening of the index value candidate set based on the current bit error rate (BER) measurement value. Specifically, if the BER measurement values for three consecutive times are all greater than the threshold value BER_high(1e-3) (for example, the BER is 2e-3 at this time, and the BERs of the two previous consecutive measurements were 1.9e-3 and 2.1e-3, respectively, both greater than the threshold value 1e-3), it indicates that a large number of erroneous bits occurred during the transmission process, and it is necessary to switch to a convolutional encoder with a higher error correction capability. Referring to the predefined convolutional encoder dictionary in Table 1, an encoder with a lower bit rate than the current encoder is selected from the index value candidate set {0x31, 0x41, 0x51}.

[0201] If the bit rate of the current convolutional encoder is less than or equal to 5 / 6, the bit rate needs to be reduced and the minimum bit rate of 3 / 4 in this scenario is selected, that is, the index value 0x31 is filtered out.

[0202] If the code rate of the current convolutional encoder is greater than 5 / 6, you need to reduce the code rate and select an encoder with a code rate of 5 / 6, that is, filter out the index value 0x41.

[0203] If the BER measurement values for three consecutive times are all less than the threshold value BER_low(1e-5) (for example, BER = 1e-6 at this time, and the BER values for the two previous consecutive measurements were 1.3e-6 and 1.2e-6, respectively, both less than the threshold value 1e-5), it indicates that the data transmission is stable and reliable, and the number of erroneous bits is small. You can try a convolutional encoder with a higher bit rate or a smaller constraint length to improve system efficiency.

[0204] If the code rate of the current convolutional encoder is less than 3 / 4, the code rate can be increased to 3 / 4, that is, the index value 0x31 is filtered out.

[0205] If the current convolution encoder's code rate is equal to 3 / 4, the code rate can be increased to 5 / 6, that is, the index value 0x41 is filtered out.

[0206] If the current convolutional encoder bit rate is greater than 3 / 4, it may be 5 / 6 or 7 / 8. If it is 5 / 6, the bit rate needs to be increased. The highest bit rate in the current scenario, 7 / 8, should be selected, that is, the index value should be filtered out as 0x51. If the current bit rate is already the highest bit rate, 7 / 8, the current highest bit rate should be maintained, that is, the index value should be filtered out as 0x51.

[0207] If the BER measurement values do not meet the above conditions for three consecutive times, it means that the data transmission is in a relatively stable state, the number of erroneous bits is normal, and there is no need to switch the encoding mode.

[0208] Finally, if the final filtered index value matches the currently used index value, no index update is required. If the final filtered index value differs from the currently used index value, a switch to a different convolutional encoder is required, and the current index value is updated to the filtered index value. Once a convolutional encoder switch occurs (i.e., an index update), a time window (e.g., 10ms) is locked after the switch, prohibiting further switching. This smooths BER fluctuations and prevents erroneous switching caused by transient interference. Specific embodiment 5:

[0210] The index value screening of the ongoing SNR scenario (assuming SNR = 8dB) is as follows: Figure 9 As shown, it is another flowchart of index value screening provided in an embodiment of the present application.

[0211] First, the base station periodically performs channel estimation on the uplink reference signal to obtain the SNR measurement value of the current channel, and counts the number of CRC check failures to update the BER value.

[0212] Then, check whether the current time window is locked.

[0213] Next, if the current time window is in a locked state, the original index value is maintained unchanged.

[0214] Then, if the current time window is in the unlocked state, the SNR and BER of the index value are combined for multi-level screening. The specific strategy is as follows:

[0215] Assume that the measured SNR value is 8dB. Since the threshold value of 10dB is greater than 8dB and the threshold value of 5dB, this is a medium SNR scenario. Referring to the preset convolutional encoder dictionary in Table 1, the base station performs a preliminary screening of the index value candidate set based on the channel SNR value, obtaining the index value candidate set = {0x10, 0x11, 0x21}.

[0216] Then, the base station performs a secondary screening of the index value candidate set based on the current bit error rate (BER) measurement value. Specifically, if the BER measurement values for three consecutive times are all greater than the threshold value BER_high(1e-3) (for example, the BER at this time is 2e-3, and the BERs of the two previous consecutive measurements were 1.9e-3 and 2.1e-3, respectively, both greater than the threshold value 1e-3), it indicates that a large number of erroneous bits occurred during the transmission process, and it is necessary to switch to a convolutional encoder with a higher error correction capability. Refer to the predefined convolutional encoder dictionary in Table 1, = {0x10, 0x11, 0x21} to select an encoder with a lower bit rate than the current encoder.

[0217] If the bit rate of the current convolutional encoder is less than or equal to 1 / 2, select the encoder with the minimum bit rate of 1 / 2 and the minimum constraint length of 5 in this scenario, that is, filter out the index value of 0x10.

[0218] If the current convolutional encoder's code rate is 2 / 3, you need to reduce the code rate and select an encoder with a code rate of 1 / 2 and a minimum constraint length of 7, that is, filter out the index value 0x11.

[0219] If the code rate of the current convolutional encoder is greater than 2 / 3, the code rate needs to be reduced and an encoder with a code rate of 2 / 3 is selected, that is, the index value is 0x21.

[0220] If the BER measurement values for three consecutive times are all less than the threshold value BER_low(1e-5) (for example, BER = 1e-6 at this time, and the BER values for the two previous consecutive measurements were 1.3e-6 and 1.2e-6, respectively, both less than the threshold value 1e-5), it indicates that the data transmission is stable and reliable, and the number of erroneous bits is small. You can try a convolutional encoder with a higher bit rate or a smaller constraint length to improve system efficiency.

[0221] If the code rate of the current convolutional encoder is less than 1 / 2, the code rate can be increased to 1 / 2, that is, the index value 0x10 is filtered out.

[0222] If the bit rate of the current convolutional encoder is greater than or equal to 1 / 2, the bit rate can be increased to 2 / 3 of the highest bit rate in this scenario, that is, the index value 0x21 is filtered out.

[0223] If the BER measurement values do not meet the above conditions for three consecutive times, it means that the data transmission is in a relatively stable state, the number of erroneous bits is normal, and there is no need to switch the encoding mode.

[0224] Finally, if the final filtered index value matches the currently used index value, no index update is required. If the final filtered index value differs from the currently used index value, a switch to a different convolutional encoder is required, and the current index value is updated to the filtered index value. Once a convolutional encoder switch occurs (i.e., an index update), a time window (e.g., 10ms) is locked after the switch, prohibiting further switching. This smooths BER fluctuations and prevents erroneous switching caused by transient interference.

[0225] In summary, under dynamic channel conditions, since the present application can achieve real-time dynamic adaptation of encoder parameters through a multi-level screening mechanism combining SNR and BER, it can prioritize improving error correction capabilities at low SNRs, and maximize spectrum efficiency at high SNRs, thereby balancing system performance. In addition, since the present application also proposes a fast convolutional coding method that can quickly encode through a preset coding table, it greatly reduces the terminal computing burden and base station signaling overhead. Based on this, the present technical solution can be applied to scenarios such as large-scale machine-type communications, the Internet of Things, the Internet of Vehicles, and low-power, ultra-reliable, and low-latency communications.

[0226] Based on the same inventive concept, the embodiment of the present application provides a convolutional coding device 100 based on channel state, such as Figure 10 As shown, the channel state-based convolutional coding apparatus 100 includes:

[0227] An index value determining unit 1001 is configured to, at a base station, perform hierarchical screening of multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism based on the SNR value and bit error rate (BER) of a current channel to determine a target index value; wherein the preset hierarchical dynamic screening mechanism is configured to perform a preliminary screening based on the SNR value and then perform a secondary screening based on the bit error rate (BER);

[0228] The data sending unit 1002 is configured to send downlink control information (DCI) carrying a target index value to the device terminal using a base station; wherein the downlink control information (DCI) is used to schedule downlink data transmission and uplink data transmission;

[0229] The convolutional encoder determination unit 1003 is configured to parse the DCI using the device terminal to obtain a target index value, and determine a target convolutional encoder based on the target index value;

[0230] The data encoding unit 1004 is configured to encode the data to be encoded using a device terminal according to a target convolutional encoder to obtain encoded data.

[0231] Optionally, the channel state-based convolutional coding apparatus 100 includes a dictionary and coding table construction unit 1005, configured to:

[0232] Based on the code rate, constraint length, and generator polynomial, a preset convolutional encoder dictionary is constructed on the device terminal and base station respectively;

[0233] According to the preset convolution encoder dictionary and the modulo-2 convolution operation, the basic coding table and state coding table corresponding to different convolution encoders are generated on the device terminal.

[0234] Optionally, the dictionary and coding table construction unit 1005 is further configured to:

[0235] Configure multiple bit rates;

[0236] Configurations include three levels of restraint length: short, medium, and long;

[0237] Based on the free distance, ergodic algorithm and Viterbi decoding, multiple generating polynomials are determined; wherein the free distance refers to the minimum Hamming distance between all non-zero code words in the convolutional code;

[0238] Construct multiple preset convolutional encoders based on various code rates, three-level constraint lengths, and multiple generator polynomials;

[0239] A preset convolutional encoder dictionary is generated based on multiple preset convolutional encoders; wherein the preset convolutional encoder dictionary classifies the multiple preset convolutional encoders according to the signal-to-noise ratio, and a preset convolutional encoder in the preset convolutional encoder dictionary is associated with an index value, and the index value is composed of two parts: code rate and constraint length.

[0240] Optionally, the dictionary and coding table construction unit 1005 is further configured to:

[0241] Construct input bit sequence and state bit sequence;

[0242] For any convolutional encoder, all combinations corresponding to the input bit sequence are respectively subjected to modulo-2 convolution operations with multiple generating polynomials corresponding to any convolutional encoder to generate a basic coding table corresponding to any convolutional encoder;

[0243] All combinations corresponding to the state bit sequence are subjected to a modulo-2 convolution operation with a plurality of generating polynomials corresponding to any convolutional encoder to generate a state coding table corresponding to any convolutional encoder.

[0244] Optionally, the index value determining unit 1001 is further configured to:

[0245] On the device terminal, the default convolutional encoder is used to periodically send a reference signal to the base station through the uplink channel;

[0246] At the base station, the channel is estimated based on the received reference signal to calculate the SNR value and bit error rate (BER) of the current channel.

[0247] According to the SNR value and BER, a preset hierarchical dynamic screening mechanism is used to perform hierarchical screening on multiple index values in the preset convolution encoder dictionary to determine the target index value.

[0248] Optionally, the index value determining unit 1001 is further configured to:

[0249] If it is determined that the SNR value is less than the preset first SNR threshold value, the current scene is determined to be a low SNR scene;

[0250] Preliminarily screening multiple index values in a preset convolutional encoder dictionary, and determining multiple index values corresponding to low SNR scenarios as a first index value candidate set;

[0251] According to the BER, multiple index values in the first index value candidate set are screened twice to obtain a target index value.

[0252] Optionally, the index value determining unit 1001 is further configured to:

[0253] If it is determined that the SNR value is greater than a preset second SNR threshold value, the current scene is determined to be a high SNR scene;

[0254] Preliminarily screening multiple index values in a preset convolutional encoder dictionary, and determining multiple index values corresponding to high SNR scenarios as a second index value candidate set;

[0255] According to the BER, multiple index values in the second index value candidate set are screened twice to obtain a target index value.

[0256] Optionally, the index value determining unit 1001 is further configured to:

[0257] If it is determined that the SNR value is not less than the preset first SNR threshold value, and the SNR value is not greater than the preset second SNR threshold value, then the current scene is determined to be a medium SNR scene;

[0258] Preliminarily screening multiple index values in a preset convolutional encoder dictionary, and determining a third index value candidate set from multiple index values corresponding to a medium SNR scenario;

[0259] According to the BER, multiple index values in the third index value candidate set are screened twice to obtain a target index value.

[0260] Optionally, the convolution encoder determining unit 1003 is further configured to:

[0261] Determine whether the target index value is consistent with the current index value;

[0262] If it is determined that the target index value is inconsistent with the current index value, the current convolution encoder is switched to a target convolution encoder corresponding to the target index value.

[0263] Optionally, the data encoding unit 1004 is further configured to:

[0264] Determine a target basic coding table and a target state coding table corresponding to a target convolutional encoder;

[0265] Perform a modulo-2 addition operation on the basic code in the target basic coding table and the state code in the target state coding table to obtain the encoded data.

[0266] Optionally, the data sending unit 1002 is further configured to:

[0267] A base station receives PUSCH data sent by a device terminal; wherein the PUSCH data includes encoded data;

[0268] On the base station, channel estimation is performed on the PUSCH data to obtain the SNR value and BER value of the current channel.

[0269] The channel state-based convolutional coding apparatus 100 can be used to perform Figure 2-Figure 9 The method implemented in the embodiment shown in FIG. 1 is a method implemented in the embodiment shown in FIG. 1 , and therefore, the functions that can be implemented by each functional module of the channel state-based convolutional coding device 100 can be referred to. Figure 2-Figure 9 The description of the illustrated embodiment is omitted for brevity.

[0270] In some possible implementations, various aspects of the method provided in the present application may also be implemented in the form of a program component, which includes program code. When the program component is run on a computer device, the program code is used to enable the computer device to execute the steps of the method according to various exemplary embodiments of the present application described above in this specification. For example, the computer device may execute the following steps: Figure 2-Figure 9 The method performed in the illustrated embodiment.

[0271] Those skilled in the art will understand that all or part of the steps of the above-mentioned method embodiments can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above-mentioned method embodiments; and the aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, read-only memory (ROM), random access memory (RAM), magnetic disks or optical disks. Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent part, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application, or the part that contributes to the prior art, can be embodied in the form of a software part, which is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, server or network device, etc.) to execute all or part of the methods described in each embodiment of the present application. And the aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROM, RAM, magnetic disks or optical disks.

[0272] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the present application.

[0273] Obviously, those skilled in the art may make various changes and modifications to this application without departing from the spirit and scope of this application. Thus, if these modifications and variations of this application fall within the scope of the claims of this application and their equivalents, this application is intended to include these modifications and variations.

Claims

1. A convolutional coding method based on channel state, characterized in that: The method comprises: On the base station, a preset hierarchical dynamic screening mechanism is used to perform hierarchical screening on multiple index values in a preset convolutional encoder dictionary according to the SNR value and the bit error rate (BER) of the current channel to determine a target index value; wherein the preset hierarchical dynamic screening mechanism is used to perform preliminary screening according to the SNR value and then perform secondary screening according to the bit error rate (BER); Using the base station to send downlink control information DCI carrying the target index value to the device terminal; wherein the downlink control information DCI is used to schedule downlink data transmission and uplink data transmission; Parsing the DCI using the device terminal to obtain the target index value, and determining a target convolutional encoder based on the target index value; According to the target convolution encoder, the device terminal is used to encode the data to be encoded to obtain encoded data.

2. The method according to claim 1, wherein Before determining the target index value by hierarchically screening multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism based on the SNR value and the bit error rate (BER) of the current channel, the method further includes: Constructing the preset convolutional encoder dictionary on the device terminal and the base station respectively according to the code rate, constraint length and generator polynomial; According to the preset convolution encoder dictionary and the modulo-2 convolution operation, basic coding tables and state coding tables corresponding to different convolution encoders are generated on the device terminal.

3. The method according to claim 2, wherein The step of constructing the preset convolutional encoder dictionary on the device terminal and the base station respectively according to the code rate, constraint length and generator polynomial includes: Configure multiple bit rates; Configurations include three levels of restraint length: short, medium, and long; Based on the free distance, ergodic algorithm and Viterbi decoding, multiple generating polynomials are determined; wherein the free distance refers to the minimum Hamming distance between all non-zero code words in the convolutional code; Constructing a plurality of preset convolution encoders according to the various code rates, the three-level constraint lengths, and the plurality of generator polynomials; The preset convolution encoder dictionary is generated according to the multiple preset convolution encoders; wherein the preset convolution encoder dictionary classifies the multiple preset convolution encoders according to the signal-to-noise ratio, and a preset convolution encoder in the preset convolution encoder dictionary is associated with an index value, and the index value is composed of two parts: code rate and constraint length.

4. The method according to claim 2, wherein The step of generating, on the device terminal, basic coding tables and state coding tables corresponding to different convolutional encoders according to the preset convolutional encoder dictionary and the modulo-2 convolution operation includes: Construct input bit sequence and state bit sequence; For any convolutional encoder, perform a modulo-2 convolution operation on all combinations corresponding to the input bit sequence and multiple generating polynomials corresponding to the any convolutional encoder to generate a basic coding table corresponding to the any convolutional encoder; Perform a modulo-2 convolution operation on all combinations corresponding to the state bit sequence and multiple generating polynomials corresponding to any convolutional encoder to generate a state coding table corresponding to any convolutional encoder.

5. The method according to claim 1, wherein The step of using a preset hierarchical dynamic screening mechanism to perform hierarchical screening on multiple index values in a preset convolutional encoder dictionary according to the SNR value and bit error rate (BER) of the current channel to determine the target index value includes: On the device terminal, using a default convolutional encoder, periodically sending a reference signal to the base station through an uplink channel; At the base station, performing channel estimation on the received reference signal to calculate an SNR value and a bit error rate (BER) of a current channel; According to the SNR value and the BER, a preset hierarchical dynamic screening mechanism is used to perform hierarchical screening on multiple index values in a preset convolution encoder dictionary to determine a target index value.

6. The method according to claim 5, wherein The step of performing hierarchical screening on multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism according to the SNR value and the BER to determine a target index value includes: If it is determined that the SNR value is less than a preset first SNR threshold value, determining that the current scene is a low SNR scene; Preliminarily screening multiple index values in the preset convolutional encoder dictionary, and determining multiple index values corresponding to low SNR scenarios as a first index value candidate set; According to the BER, a second screening is performed on multiple index values in the first index value candidate set to obtain a target index value.

7. The method according to claim 5, wherein The step of performing hierarchical screening on multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism according to the SNR value and the BER to determine a target index value includes: If it is determined that the SNR value is greater than a preset second SNR threshold value, determining that the current scene is a high SNR scene; Preliminarily screening multiple index values in the preset convolutional encoder dictionary, and determining multiple index values corresponding to high SNR scenarios as a second index value candidate set; According to the BER, multiple index values in the second index value candidate set are screened twice to obtain a target index value.

8. The method according to claim 5, wherein The step of performing hierarchical screening on multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism according to the SNR value and the BER to determine a target index value includes: If it is determined that the SNR value is not less than a preset first SNR threshold value, and the SNR value is not greater than a preset second SNR threshold value, determining that the current scene is a medium SNR scene; Preliminarily screening multiple index values in the preset convolutional encoder dictionary, and determining multiple index values corresponding to the medium SNR scene as a third index value candidate set; According to the BER, multiple index values in the third index value candidate set are screened twice to obtain a target index value.

9. The method according to claim 1, wherein The step of determining a target convolution encoder according to the target index value includes: Determine whether the target index value is consistent with the current index value; If it is determined that the target index value is inconsistent with the current index value, the current convolution encoder is switched to a target convolution encoder corresponding to the target index value.

10. The method according to claim 1, wherein The step of encoding the data to be encoded using the device terminal according to the target convolution encoder to obtain the encoded data includes: Determining a target basic coding table and a target state coding table corresponding to the target convolutional encoder; Perform a modulo-2 addition operation on the basic code in the target basic coding table and the state code in the target state coding table to obtain the encoded data.

11. The method according to claim 1, wherein: After encoding the data to be encoded using the device terminal according to the target convolutional encoder to obtain the encoded data, the method further includes: Using the base station to receive PUSCH data sent by the device terminal; wherein the PUSCH data includes the encoded data; On the base station, channel estimation is performed on the PUSCH data to obtain an SNR value and a BER value of the current channel.

12. A convolutional coding device based on channel state, characterized in that: The device comprises: An index value determination unit is configured to, on a base station, perform hierarchical screening of multiple index values in a preset convolutional encoder dictionary using a preset hierarchical dynamic screening mechanism based on the SNR value and bit error rate (BER) of the current channel to determine a target index value; wherein the preset hierarchical dynamic screening mechanism is configured to perform preliminary screening based on the SNR value and then perform secondary screening based on the bit error rate (BER); A data sending unit, configured to use the base station to send downlink control information DCI carrying the target index value to the device terminal; wherein the downlink control information DCI is used to schedule downlink data transmission and uplink data transmission; a convolutional encoder determining unit, configured to parse the DCI using the device terminal, obtain the target index value, and determine a target convolutional encoder based on the target index value; The data encoding unit is used to encode the data to be encoded using the device terminal according to the target convolution encoder to obtain encoded data.

13. An electronic device, characterized in that: The device comprises: a memory for storing program instructions; A processor is configured to call the program instructions stored in the memory and execute the method according to any one of claims 1 to 11 according to the obtained program instructions.

14. A storage medium, characterized in that The storage medium stores computer-executable instructions, and the computer-executable instructions are used to enable a computer to execute the method according to any one of claims 1 to 11.