Convolutional code-based data transmission method and communication apparatus and system
By using preconfigured fill data in the convolutional code communication system to generate additional code groups, providing error correction protection for the end service data, the problems of complex zero-return sequence design and low time-domain shutdown efficiency in the prior art are solved. Achieve more efficient energy consumption management.
Patent Information
- Application Number
- PCT/CN2024/077599
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-29
- Filing Date
- 2024-02-19
- Publication Date
- 2025-01-02
AI Technical Summary
The existing convolutional code encoder needs to design complex zeroing sequences at the end of the service data flow, resulting in increased coding difficulty and reduced time domain shutdown efficiency, and unable to effectively reduce the energy consumption of the communication system.
Pre-configured fill data is used to generate additional code groups, providing error correction protection for the end service data, shortening the length of the encoding sequence that needs to be sent, and improving the efficiency of time domain shutdown.
The design of the end coding sequence is simplified, the difficulty of encoding and decoding is reduced, the time for transmission and reception of service data is shortened, and the energy consumption management efficiency of the communication system is improved.
Smart Images

Figure CN2024077599_02012025_PF_FP_ABST
Abstract
Description
Data transmission method, communication device and system based on convolutional code
[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on June 29, 2023, with application number 202310790610.5 and application name “Data transmission method, communication device and system based on convolutional code”, all contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of communication technology, and in particular to a data transmission method, communication device and system based on convolutional code. Background Art
[0003] Convolutional codes are a type of coding scheme with error correction capabilities used in current communication systems. Convolutional codes are error-correcting codes with memory. The encoding of a convolutional code depends not only on the current input but also on a certain number of previous inputs. Therefore, in a convolutional code system, the input information segment can be used to generate parity bits not only for the currently encoded code group, but also for parity bits for subsequently encoded code groups. Consequently, the subsequently encoded information can provide error correction protection for the previously encoded information.
[0004] In communication systems, data traffic is often unevenly distributed over time. Communication system designs must be able to handle peak traffic flows while also reducing power consumption when no data is being sent. In one implementation, when no data is being transmitted, the system can be shut down in the time domain (i.e., the transmitting device stops encoding and transmitting signals, and the receiving device stops receiving and decoding signals) to reduce power consumption.
[0005] In the prior art, before the convolutional code encoder stops working, it is necessary to encode an additional return-to-zero bit sequence after the end of the service data to ensure that the entire service data stream has the same error correction protection level and to return the convolutional code encoder to the return-to-zero state.
[0006] However, the increasingly complex encoding structure of convolutional codes makes encoding and decoding more difficult. In addition, the length of the return-to-zero sequence is also increasing, which causes it to occupy a longer time in the time domain shutdown, thereby reducing the efficiency of the time domain shutdown.
[0007] Summary of the Invention
[0008] The present application provides a data transmission method, communication device and system based on convolutional codes, which are used to solve the problems in the prior art that the complex design of the return-to-zero sequence at the end increases the difficulty of encoding and decoding, and the increase in the length of the return-to-zero sequence leads to a decrease in the efficiency of time domain shutdown.
[0009] In a first aspect, a convolutional code-based data transmission method is provided. The method can be performed by a transmitting device, or by a component of the transmitting device, such as a processor, chip, or chip system of the transmitting device. It can also be implemented by a logic module or software that implements all or part of the functions of the transmitting device. The method can include: the transmitting device performing convolutional coding to generate a first tail code sequence. The first tail code sequence includes N code groups, wherein the first code group of the N code groups includes tail service data and a check bit of 1, and the xth code group of the N code groups includes first padding data and a check bit of x, where x is an integer from 2 to N. The first padding data is a fixed sequence agreed upon by the transmitting device and the receiving device. At least one code group from the second to the Nth code groups of the N code groups provides error correction protection for the first code group of the N code groups. Subsequently, the transmitting device transmits a second tail code sequence to the receiving device. The second tail code sequence is a portion extracted from the first tail code sequence and does not include the first padding data.
[0010] Based on this solution, the transmitting device can use the pre-agreed first padding data to generate an additional code group after the code group corresponding to the last service data. The additional code group can provide error correction protection for the code group corresponding to the last service data, thereby ensuring that the error correction protection level of the entire service data stream is consistent. Compared with the return-to-zero sequence of the prior art, this method is less difficult to implement, and the length of the last sequence will not be too long. In addition, the second last coding sequence sent by the transmitting device does not include the first padding data, thereby shortening the length of the additional information that needs to be sent after the last service data, and allowing the transmitting device to complete the transmission operation faster. For scenarios where the convolutional code communication system performs time domain shutdown, the faster the transmitting device completes the transmission operation of the last service data, the faster it can shut down, thereby improving the efficiency of the time domain shutdown.
[0011] In conjunction with the first aspect above, in one possible implementation, check bit 1 is encoded based on the trailing service data and historical information preceding the first code group, and check bit x is encoded based on the first padding data and historical information preceding the xth code group. The historical information used to encode the check bits in at least one of the second to Nth code groups, which is used to provide error correction protection for the first code group, includes all information in the first code group.
[0012] Based on this solution, the convolutional code type used in this application is a systematic convolutional code. The information preceding the check bit in the code group is the information currently input to the encoder. The check bit in the code group is encoded based on the information preceding the check bit and historical information. The information in the first code group can be used as the historical information corresponding to the check bit in at least one of the second to Nth code groups, so that at least one of the second to Nth code groups can provide error correction protection for the first code group.
[0013] In conjunction with the first aspect, in one possible implementation, the first code group further includes first padding data. Check digit 1 is encoded based on the last service data and historical information before the first code group. Specifically, check digit 1 is encoded based on the last service data, the first padding data, and historical information before the first code group.
[0014] Based on this solution, when the length of the last service data does not reach the length of the information bits in the coding window, the first padding data can be supplemented as the current coded information bits so that the coding of the last service data can be performed correctly.
[0015] In combination with the above first aspect, in a possible implementation, the second tail coding sequence includes tail service data and a check bit in each code group of the N code groups.
[0016] Based on this solution, since the first padding data is a fixed sequence agreed upon by the transmitting and receiving devices, the transmitting device can skip sending the first padding data in the final coded sequence, thereby shortening the length of data to be sent. This reduces device energy consumption and improves the efficiency of time-domain shutdown.
[0017] In combination with the first aspect above, in a possible implementation, the check bits in some code groups among the N code groups include a random part and a fixed part, and the second end coding sequence includes the end service data, the random part of the check bits in some code groups among the N code groups, and all the check bits in the code groups among the N code groups except the above-mentioned some code groups.
[0018] Based on this solution, the non-random portion of the check bit can be restored using the encoding relationship based on the first padding data. The transmitting device can then not send the non-random portion of the check bit, thereby shortening the length of the data to be sent. This reduces device energy consumption and improves the efficiency of time-domain shutdown.
[0019] In conjunction with the first aspect above, in one possible implementation, the transmitting device transmits the second terminal code sequence. The method may further include: the transmitting device generates a second code sequence based on the first code sequence. The structure of the second code sequence may refer to the description of the previous two implementations.
[0020] Based on this solution, after encoding, the transmitting end device simplifies the coded sequence and then sends the simplified coded sequence, thereby shortening the length of the coded sequence to be sent.
[0021] In combination with the above first aspect, in a possible implementation, the convolutional code used in the convolutional coding may include an open forward error correction (OFEC) code and a staircase code.
[0022] In a second aspect, a convolutional code-based data transmission method is provided. The method can be performed by a receiving device, or by a component of the receiving device, such as a processor, chip, or chip system of the receiving device. It can also be implemented by a logic module or software that implements all or part of the functions of the receiving device. The method may include: first, the receiving device receives a second tail code sequence from a transmitting device. Thereafter, the receiving device determines a first tail code sequence based on the second tail code sequence and first padding data. The first tail code sequence includes N code groups, wherein the first code group of the N code groups includes tail service data and a check bit of 1, and the xth code group of the N code groups includes first padding data and a check bit of x, where x is an integer from 2 to N. The first padding data is a fixed sequence agreed upon by the transmitting and receiving devices. At least one code group from the second to Nth code groups of the N code groups provides error correction protection for the first code group of the N code groups. Then, the receiving device performs convolutional code decoding on the first tail code sequence.
[0023] Based on this solution, although the second end coding sequence carrying the end service data received by the receiving device is not the complete first end coding sequence encoded by the transmitting device for the end service data, the receiving device can still correctly restore the first end coding sequence and decode it. Therefore, this method can shorten the length of the additional information received after the end service data, and can enable the receiving device to complete the receiving operation faster. For the scenario where the convolutional code communication system performs time domain shutdown, the faster the receiving device completes the receiving operation of the end service data, the faster it can shut down, thereby improving the efficiency of the time domain shutdown. In addition, the additional code group after the code group to which the end service data belongs is obtained by encoding based on the first padding data. Compared with the return-to-zero sequence of the prior art, this method can be implemented with lower difficulty, and the length of the end sequence will not be too long.
[0024] In conjunction with the second aspect above, in one possible implementation, check bit 1 is encoded based on the trailing service data and historical information preceding the first code group, and check bit x is encoded based on the first padding data and historical information preceding the xth code group. The historical information used to encode the check bits in at least one of the second to Nth code groups, which is used to provide error correction protection for the first code group, includes all information in the first code group.
[0025] In conjunction with the second aspect, in one possible implementation, the first code group further includes first padding data. Check digit 1 is encoded based on historical information preceding the first code group of the last service data. Specifically, check digit 1 is encoded based on the last service data, the first padding data, and historical information preceding the first code group.
[0026] In combination with the above second aspect, in a possible implementation, the second tail coding sequence includes tail service data and a check bit in each of the N code groups.
[0027] In combination with the above-mentioned second aspect, in a possible implementation method, the check bits in some code groups among the N code groups include a random part and a fixed part, and the second end coding sequence includes the end business data, the random part of the check bits in some code groups among the N code groups, and all the check bits in the code groups among the N code groups except the above-mentioned some code groups.
[0028] In combination with the above second aspect, in a possible implementation, the convolutional code used in the convolutional coding may include an open forward error correction (OFEC) code and a staircase code.
[0029] In a third aspect, a convolutional code-based data transmission method is provided. This method can be performed by a transmitting device, or by a component of the transmitting device, such as a processor, chip, or chip system of the transmitting device. It can also be implemented by a logic module or software that implements all or part of the functions of the transmitting device. The method may include: the transmitting device performing convolutional coding to generate an initial code group, where the initial code group is a code group carrying initial service data, which is the service data first input into the encoder for encoding in the service data stream; and second padding data, which is historical information relied upon for encoding the initial code group, where the second padding data is a preconfigured fixed sequence. The transmitting device then sends the initial code group to the receiving device.
[0030] Based on this solution, the transmitting device can use the pre-configured second padding data as historical information to convolutionally encode the initial service data, thereby successfully enabling or resuming service data transmission. Because the pre-configured second padding data is used as historical information, the encoding process is relatively simple, allowing service data to be efficiently enabled or resumed.
[0031] In a fourth aspect, a convolutional code-based data transmission method is provided. This method can be performed by a receiving device, or by a component of the receiving device, such as a processor, chip, or chip system of the receiving device. It can also be implemented by a logic module or software that implements all or part of the functions of the receiving device. The method may include: the receiving device receiving an initial code group from a transmitting device, where the initial code group is a code group carrying initial service data, which is the service data first input into an encoder for encoding in a service data stream; and second padding data, which is historical information relied upon for encoding the initial code group, where the second padding data is a preconfigured fixed sequence. The receiving device performs convolutional code decoding on the initial code group based on the second padding data.
[0032] Based on this solution, the receiving device can use the pre-configured second filler data as historical information to decode the coded sequence corresponding to the initial service data, thereby successfully enabling or resuming service data transmission. Because the pre-configured second filler data is used as historical information, the decoding process is relatively simple, allowing service data to be efficiently enabled or resumed.
[0033] In a fifth aspect, a communication device is provided, which includes: an encoder and a transmitter. The encoder can be used to perform convolutional coding to generate a first end coding sequence. The first end coding sequence includes N code groups, the first code group in the N code groups includes end service data and check bit 1, the xth code group in the N code groups includes first padding data and check bit x, x is an integer from 2 to N, and the first padding data is a fixed sequence agreed upon by the transmitting device and the receiving device. At least one code group from the second to Nth code groups in the N code groups provides error correction protection for the first code group in the N code groups. The transmitter can be used to send a second end coding sequence to the receiving device, the second end coding sequence is a portion of the content extracted from the first end coding sequence, and the second end coding sequence does not include the first padding data.
[0034] In combination with the fifth aspect above, in a possible implementation, the communication device may further include a processor, and the processor may be configured to generate a second coding sequence according to the first coding sequence.
[0035] In conjunction with the fifth aspect, in one possible implementation, check bit 1 is encoded based on the trailing service data and historical information preceding the first code group, and check bit x is encoded based on the first padding data and historical information preceding the xth code group. The historical information used to encode the check bits in at least one of the second to Nth code groups that provides error correction protection for the first code group includes all information in the first code group.
[0036] In conjunction with the fifth aspect, in one possible implementation, the first code group further includes first padding data. Check digit 1 is encoded based on the last service data and historical information before the first code group. Specifically, check digit 1 may be encoded based on the last service data, the first padding data, and historical information before the first code group.
[0037] In combination with the fifth aspect above, in a possible implementation, the second tail coding sequence includes tail service data and a check bit of each code group in the N code groups.
[0038] In combination with the above-mentioned fifth aspect, in a possible implementation method, the check bits in some code groups among the N code groups include a random part and a fixed part, and the second end coding sequence includes the end business data, the random part of the check bits in some code groups among the N code groups, and all the check bits in the code groups among the N code groups except the above-mentioned some code groups.
[0039] In combination with the fifth aspect above, in a possible implementation, the convolutional code used in the convolutional coding may include an open forward error correction (OFEC) code and a staircase code.
[0040] In a sixth aspect, a communication device is provided, comprising: a receiver, a processor, and a decoder. The receiver can be used for a second end coding sequence from a transmitting device. The processor can be used to determine a first end coding sequence based on the second end coding sequence and first padding data. The first end coding sequence includes N code groups, the information bits of the first code group in the N code groups include end service data and check bit 1, the xth code group in the N code groups includes first padding data and check bit x, x is an integer from 2 to N, and the first padding data is a fixed sequence agreed upon by the transmitting device and the receiving device. At least one code group from the second to Nth code groups in the N code groups provides error correction protection for the first code group in the N code groups. The decoder can be used to perform convolutional coding on the first end coding sequence.
[0041] In conjunction with the sixth aspect, in one possible implementation, check bit 1 is encoded based on the trailing service data and historical information preceding the first code group, and check bit x is encoded based on the first padding data and historical information preceding the xth code group. The historical information used to encode the check bits in at least one of the second to Nth code groups that provides error correction protection for the first code group includes all information in the first code group.
[0042] In conjunction with the sixth aspect, in one possible implementation, the first code group further includes first padding data. Check digit 1 is encoded based on the last service data and historical information before the first code group. Specifically, check digit 1 may be encoded based on the last service data, the first padding data, and historical information before the first code group.
[0043] In combination with the sixth aspect above, in a possible implementation, the second tail coding sequence includes tail service data and a check bit of each code group in the N code groups.
[0044] In combination with the above-mentioned sixth aspect, in a possible implementation method, the check bits in some code groups among the N code groups include a random part and a fixed part, and the second end coding sequence includes the end business data, the random part of the check bits in some code groups among the N code groups, and all the check bits in the code groups among the N code groups except the above-mentioned some code groups.
[0045] In combination with the sixth aspect above, in a possible implementation, the convolutional code used in the convolutional coding may include an open forward error correction (OFEC) code and a staircase code.
[0046] In a seventh aspect, a communication device is provided, comprising: a processor and a communication interface; the communication interface can be used to perform the receiving or transmitting operations in the convolutional code-based data transmission method of the first or third aspect, and the processor is used to perform the processing or control operations in the convolutional code-based data transmission method of the first or third aspect. Alternatively, the communication interface is used to perform the receiving and transmitting operations in the convolutional code-based data transmission method of the second or fourth aspect, and the processor is used to perform the processing or control operations in the convolutional code-based data transmission method of the second or fourth aspect.
[0047] In an eighth aspect, a communication device is provided, comprising: a processor and a memory; the memory is used to store computer instructions, and when the communication device is running, the processor executes the computer instructions stored in the memory to enable the communication device to perform a convolutional code-based data transmission method as described in any one of the first, second, third or fourth aspects above.
[0048] In conjunction with the eighth aspect, in one possible implementation, the communication device further includes a communication interface; the communication interface is used for the communication device to communicate with other devices. Exemplarily, the communication interface can be a transceiver, an input / output interface, an interface circuit, an output circuit, an input circuit, a pin, or related circuits.
[0049] In the ninth aspect, a chip is provided, comprising: a processor, the processor being coupled to a memory, the memory being used to store programs or instructions, and when the programs or instructions are executed by the processor, the chip executes the convolutional code-based data transmission method described in any one of the first, second, third or fourth aspects above.
[0050] In the tenth aspect, a computer-readable storage medium is provided, which stores instructions. When the computer-readable storage medium is run on a computer, the computer can execute the convolutional code-based data transmission method described in any one of the first, second, third or fourth aspects above.
[0051] In the eleventh aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the computer to execute the convolutional code-based data transmission method described in any one of the first, second, third or fourth aspects above.
[0052] In the twelfth aspect, a communication system is provided, which may include a transmitting device and a receiving device. The transmitting device may execute any of the convolutional code-based data transmission methods described in the first aspect, and the receiving device may execute any of the convolutional code-based data transmission methods described in the first aspect.
[0053] Among them, the technical effects brought about by any design method in the fifth to twelfth aspects can refer to the technical effects brought about by different design methods in the first, second, third or fourth aspects, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] FIG1 is a schematic diagram of a group code encoding relationship provided in an embodiment of the present application;
[0055] FIG2 is a schematic diagram of a convolutional code encoding relationship provided in an embodiment of the present application;
[0056] FIG3 is a schematic diagram of frequency domain shutdown in a multi-subcarrier communication system provided by an embodiment of the present application;
[0057] FIG4 is a schematic diagram of a communication system provided in an embodiment of the present application;
[0058] FIG5 is a schematic structural diagram of a communication device provided in an embodiment of the present application;
[0059] FIG6 is a flow chart of a data transmission method based on convolutional codes provided in an embodiment of the present application;
[0060] FIG7 is a schematic diagram of the structure of a first end coding sequence provided in an embodiment of the present application;
[0061] FIG8 is a schematic diagram of an encoding process of a first end encoding sequence provided in an embodiment of the present application;
[0062] FIG9 is a schematic diagram of a data frame carrying a second tail coding sequence provided by an embodiment of the present application;
[0063] FIG10 is a schematic diagram of another data frame carrying a second tail coding sequence provided by an embodiment of the present application;
[0064] FIG11 is a schematic diagram of a data structure of convolutional coding performed by an OFEC code encoder provided in an embodiment of the present application;
[0065] FIG12 is a schematic diagram of a data structure of convolutional coding performed by another OFEC code encoder provided in an embodiment of the present application;
[0066] FIG13 is a schematic diagram of a data structure of a Staircase code encoder performing convolutional code encoding according to an embodiment of the present application;
[0067] FIG14 is a flowchart of another data transmission method based on convolutional codes provided in an embodiment of the present application;
[0068] FIG15 is a schematic diagram of a coding window corresponding to an initial code group provided in an embodiment of the present application;
[0069] FIG16 is a schematic diagram of a transmitting end device acquiring a service data stream in the time domain according to an embodiment of the present application;
[0070] FIG17 is a schematic diagram of time-domain shutdown control in a convolutional code optical communication system provided in an embodiment of the present application;
[0071] FIG18 is a schematic structural diagram of another communication device provided in an embodiment of the present application;
[0072] FIG19 is a schematic structural diagram of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0073] To facilitate understanding, first, a brief introduction is given to the technical terms and related technologies involved in this application.
[0074] To achieve better transmission performance, forward error correction (FEC) technology is widely used in communication systems. FEC adds overhead information to the bitstream before transmission, enabling the receiving device to detect and correct some errors that may exist in the bitstream, thereby improving data transmission performance.
[0075] FEC codes can include two types: block codes and convolutional codes.
[0076] Block codes require the encoder to pre-group the input data and then encode it according to the groups. The output of a block code is only relevant to the currently encoded data group. Block codes are described by (n, k), where n is the total number of bits in the encoded code group, also known as the code group length (code length), k is the length of the information code element (also known as the information bit) in the code group, and nk is the length of the parity code element (also known as the check bit) in the code group. Therefore, the coding window of a convolutional code can include the current k information bits of the input and the encoded nk check bits.
[0077] For example, Figure 1 is a schematic diagram of a block code encoding relationship. As shown in Figure 1, in the encoding window of the block code, the encoder can encode the currently input k-bit information bits to obtain nk bits as check bits, and the k-bit information bits and nk-bit check bits can be output as a code group.
[0078] Convolutional codes are error-correcting codes with memory. Their encoding depends not only on the current input but also on a certain number of previous inputs. A convolutional code can be represented by (n, k, L), where n is the length of the output code block and k is the length of the input information bits. L is the code constraint length, which represents the number of mutually constrained code blocks during the encoding process. The n code elements in the output code block are not only dependent on the k information blocks of the current output, but also on the L-1 previous code blocks. The error correction performance of a convolutional code increases with increasing L, while the error rate decreases exponentially with increasing n.
[0079] Convolutional codes can be divided into systematic and non-systematic convolutional codes. If the first k bits of information in the n-bit code group output by the convolutional code encoder are the same as the information originally input to the convolutional code encoder, then the convolutional code is considered a systematic convolutional code. Otherwise, it is considered a non-systematic convolutional code.
[0080] For systematic convolutional codes, the encoder can encode nk bits of check bits based on the currently input k bits of information and the historical information in several previous code groups. The final output code group can include k bits of currently input information and nk bits of check bits.
[0081] For example, FIG2 is a schematic diagram of a convolutional code encoding relationship. As shown in FIG2, the encoding window of the convolutional code may include several bits of historical information of the previous several bits, k bits of information of the current input, and nk bits of check bits. The nk bits of check bits are encoded by the encoder based on the several bits of historical information of the previous several bits and the k bits of information of the current input. The code group output by the encoder may include k bits of information bits and nk bits of check bits.
[0082] Because convolutional codes rely on historical information from previous code groups, it can be assumed that later-encoded information can provide error correction protection for previously-encoded information. When decoding, a convolutional code decoder extracts decoded information not only from the code elements in the currently received code group, but also from code groups received several times in the future.
[0083] In the prior art, convolutional code encoders typically add a trailing bit sequence at the end of encoding a service data stream to return the encoder to an all-zero state. This trailing bit sequence is also known as a return-to-zero bit sequence. In addition to returning the encoder to an all-zero state, this return-to-zero bit sequence also provides error correction protection for at least one segment of service data at the end, ensuring that the entire service data stream has the same level of error correction protection.
[0084] As the number of services carried by communication systems increases exponentially, energy consumption is increasing. Saving energy in communication systems is a long-standing research topic. Devices can reduce energy consumption by shutting down certain components, such as symbol shutoff, channel shutoff, carrier shutoff, or even deep sleep.
[0085] Symbol shutdown means that when the network device determines that some symbols have no data to send, it turns off the power amplifier during these "no data to send" symbol periods.
[0086] Channel shutdown means that network equipment shuts down certain channel RF units and power amplifiers in a timely manner based on changes in business volume.
[0087] Carrier shutdown means that network equipment identifies low-service carriers in the capacity layer by judging the coverage and capacity status of the carrier, and then migrates a small number of users with low-service carrier load and then shuts down the carrier.
[0088] For example, Figure 3 shows a schematic diagram of frequency domain shutdown in a multi-subcarrier communication system. As shown in Figure 3, initially, the communication system may include n subcarriers, from subcarrier 1 to subcarrier n. The service data transmitted in the channel is divided into n parts, each corresponding to a subcarrier. When the amount of service data transmitted in the channel decreases by more than 1 / n, a subcarrier can be shut down in the frequency domain. After the frequency domain is shut down, the n-1 subcarriers can still transmit service data normally.
[0089] It should be understood that both channel and carrier shutdowns described above rely on changes in traffic volume, have limited applicable scenarios, and contribute only slightly to reducing communication system energy consumption. Furthermore, device wake-up cycles are long, making shutdown inefficiency moderate.
[0090] Symbol-based shutdown is a time-domain shutdown technique that determines whether data is being transmitted in that time domain. This method has a wide range of applications and is a key method for reducing communication system energy consumption. Furthermore, it shortens the device wake-up cycle, making shutdown execution more efficient.
[0091] In an embodiment of the present application, a time domain shutdown technology that goes one step further than symbol shutdown is proposed. It can shut down the encoder / decoder and receiver / transmitter of the device during the period when there is no data transmission, which can reduce energy consumption to a greater extent.
[0092] However, in a convolutional code communication system that performs time-domain shutdown, if time-domain shutdown is performed directly after encoding valid service data, the last encoded service data will not have the error correction protection provided by the subsequently encoded information, resulting in lower error correction performance than the previously encoded service data. Since the entire service data stream in a communication system requires the same level of error correction performance, when a convolutional code communication system performs time-domain shutdown, the transmitting device must additionally encode and transmit the last bit sequence before shutting down the encoder and transmitter. The receiving device must additionally receive and decode the last bit sequence before shutting down the decoder and receiver.
[0093] As a possible implementation, in a time-domain shutdown scenario, the tail bit sequence sent by the transmitting device can be the aforementioned return-to-zero bit sequence. However, as the coding structure of convolutional codes becomes increasingly complex, the design of return-to-zero sequences becomes increasingly difficult, and the sequence length continues to increase, which reduces the efficiency of time-domain shutdown.
[0094] This application provides a convolutional code-based data transmission method that uses preconfigured padding data to encode and decode additional code sequences following service data, thereby ensuring consistent error correction protection across the entire service data stream. Furthermore, the transmitting and receiving devices can omit the padding data in the additional code sequences, thereby shortening the length of the code sequences that require additional transmission and improving the efficiency of time-domain shutdown.
[0095] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application. Among them, in the description of the present application, unless otherwise specified, " / " indicates that the objects associated before and after are in an "or" relationship. For example, A / B can represent A or B; "and / or" in the present application is only a description of the association relationship of the associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. In addition, in the description of the present application, unless otherwise specified, "multiple" refers to two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, c can be single or multiple. In addition, in order to facilitate the clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, words such as "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. Those skilled in the art will understand that words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not necessarily limit differences. At the same time, in the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or design schemes. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete way for easy understanding.
[0096] In addition, the network architecture and business scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Ordinary technicians in this field can know that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0097] Before introducing the convolutional code-based data transmission method provided in the embodiment of the present application, the communication system / service scenario to which the convolutional code-based data transmission method of the present application is applied is first introduced.
[0098] Figure 4 is a schematic diagram of a communication system provided in an embodiment of the present application. As shown in Figure 4, the communication system may include a transmitting device 401 and a receiving device 402, and the encoding method used by the transmitting device 401 and the receiving device 402 for communication is convolutional code.
[0099] The data transmission method based on convolutional code provided in the embodiment of the present application can be applied to the transmitting end device 401 and the receiving end device 402 in the communication system shown in Figure 4. The specific implementation can refer to the following method embodiment, which will not be repeated here.
[0100] It should be understood that the network architecture and business scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Ordinary technicians in this field can know that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0101] Optionally, the transmitting device and the receiving device in the embodiment of the present application may be a communication device, and the transmitting device and the receiving device may adopt the composition structure shown in Figure 5 or include the components shown in Figure 5. Figure 5 is a structural diagram of a communication device provided in an embodiment of the present application. As shown in Figure 5, the communication device 50 includes one or more processors 501, a communication line 502, and at least one communication interface (Figure 5 is only exemplary and takes the inclusion of a communication interface 503 and a processor 501 as an example for explanation). Optionally, a memory 504 may also be included.
[0102] The processor 501 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the present application.
[0103] Communication line 502 may include a pathway for communication between different components.
[0104] The communication interface 503 may be a transceiver module for communicating with other devices or communication networks, such as Ethernet, RAN, or wireless local area networks (WLAN). For example, the transceiver module may be a device such as a transceiver or a transceiver. Alternatively, the communication interface 503 may be a transceiver circuit within the processor 501, configured to implement signal input and output to the processor.
[0105] The memory 504 may be a device having a storage function. For example, it may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, an optical disc storage (including a compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory may exist independently and be connected to the processor via a communication line 502. The memory may also be integrated with the processor.
[0106] The memory 504 is used to store computer-executable instructions for executing the solution of the present application, and the execution is controlled by the processor 501. The processor 501 is used to execute the computer-executable instructions stored in the memory 504, thereby implementing the multi-hop transmission method provided in the embodiment of the present application.
[0107] Alternatively, optionally, in an embodiment of the present application, the processor 501 may also perform processing-related functions in the multi-hop transmission method provided in the following embodiments of the present application, and the communication interface 503 is responsible for communicating with other devices or communication networks, which is not specifically limited in the embodiments of the present application.
[0108] Optionally, the computer-executable instructions in the embodiments of the present application may also be referred to as application code, which is not specifically limited in the embodiments of the present application.
[0109] In a specific implementation, as an embodiment, the processor 501 may include one or more CPUs, such as CPU0 and CPU1 in FIG. 5 .
[0110] In a specific implementation, as an embodiment, the communication device 50 may include multiple processors, such as the processor 501 and the processor 507 in FIG5 . Each of these processors may be a single-core processor or a multi-core processor. The processors here may include, but are not limited to, at least one of the following: a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a microcontroller unit (MCU), or an artificial intelligence processor, and other types of computing devices that run software. Each computing device may include one or more cores for executing software instructions to perform calculations or processing.
[0111] In a specific implementation, as an embodiment, the communication device 50 may further include an output device 505 and an input device 506. The output device 505 communicates with the processor 501 and can display information in a variety of ways. For example, the output device 505 can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device 506 communicates with the processor 501 and can receive user input in a variety of ways. For example, the input device 506 can be a mouse, a keyboard, a touch screen device, or a sensor device.
[0112] The communication device 50 described above may also sometimes be referred to as a communication device, which may be a general-purpose device or a dedicated device. For example, the communication device 50 may be a network device such as a router, a switch, or a gateway, or a terminal device, or a controller in a network, or a device having a similar structure to that shown in FIG5 . The embodiments of the present application do not limit the type of the communication device 50.
[0113] The following describes the data transmission method based on convolutional code provided by the embodiment of the present application in conjunction with Figures 1 to 5. The actions, terms, etc. involved in the various embodiments of the present application can refer to each other without limitation. The message names or parameter names in the embodiments of the present application are only examples, and other names can also be used in specific implementations without limitation.
[0114] The transmitting device and the receiving device in the embodiment of the present application use convolutional codes for encoding and decoding. The convolutional codes used in the embodiment of the present application are system convolutional codes, which are described uniformly here.
[0115] FIG6 is a flow chart of a data transmission method based on a convolutional code according to an embodiment of the present application. As shown in FIG6 , the data transmission method based on a convolutional code may include the following steps:
[0116] Step 601: The transmitting device performs convolutional coding to generate a first tail code sequence. The first tail code sequence includes N code groups. The first code group of the N code groups includes tail service data and a check bit of 1. The xth code group of the N code groups includes first padding data and a check bit of x, where x is an integer from 2 to N. The first padding data is a fixed sequence agreed upon by the transmitting device and the receiving device. At least one code group from the second to the Nth code groups of the N code groups provides error correction protection for the first code group of the N code groups.
[0117] For example, FIG7 shows a schematic diagram of the structure of a first tail coding sequence. The N code groups in the first tail coding sequence may include code group 1 to code group N. Code group 1 includes tail service data, first padding data, and check bit 1, code group 2 includes first padding data and check bit 2, ..., and code group N includes first padding data and check bit N.
[0118] It should be noted that data transmission is performed at the physical layer of the transmitting device. The physical layer of the transmitting device obtains service data from the upper layer and then encodes and transmits it. For continuously obtained service data streams, the transmitting device can continuously encode and transmit them. In this embodiment of the present application, the service data that is last input to the encoder for encoding in a continuous service data stream is called the end service data.
[0119] In addition, the convolutional code used in the embodiment of the present application is a systematic convolutional code. The content in the code group output by the encoder can be divided into information bits and check bits. The information bits are the information bits originally input to the encoder, and the check bits are encoded by the encoder based on the input information bits and the historical information in the previous code group.
[0120] For example, the last service data in the first code group among the N code groups mentioned above belongs to the information bits in the code group, and the check bit 1 can be obtained by encoding based on the last service data and some historical information before the first code group. The first padding data in the xth code group among the N code groups mentioned above belongs to the information bits in the code group, and the check bit x can be obtained by encoding based on the first padding data and some historical information before the xth code group. Optionally, the historical data on which the encoded check bit 1 depends can be referred to as historical data 1, and historical information 1 can include information in at least one code group encoded before the first code group. And, the historical data on which the encoded check bit x depends can be referred to as historical data x, and historical information x can include information in at least one code group before the xth code group.
[0121] It should be understood that if the historical information on which the check bits in the subsequent code group are convolutionally encoded depends on the information in a previous code group, then the subsequent code group can be considered to provide error correction protection for the previous code group corresponding to the historical information.
[0122] Optionally, among the N code groups in the first coding sequence, the parity bits in at least one code group among the second to Nth code groups that provides error correction protection for the first code group rely on historical information that includes all information in the first code group. Based on this, all information in the first code group can receive error correction protection from the at least one code group.
[0123] As one possible implementation, the historical information relied upon by the parity bit encoding in one of the second to Nth code groups includes all the information of the first code group, so that the first code group can provide error correction protection for the first code group. For example, using the first tail code sequence shown in FIG7 , if the historical data relied upon by the parity bit encoding in code group 2 includes all the information of code group 1, then code group 2 can provide error correction protection for code group 1.
[0124] As another possible implementation, the historical information relied upon by the multiple check bit codes in multiple code groups from the second to the Nth code groups includes the entire information of the first code group, so that the multiple code groups can jointly provide error correction protection for the first code group. The historical information relied upon by each check bit code in the multiple code groups may only include a portion of the information of the first code group, but the sum of the historical information relied upon by the multiple check bits can include the entire information of the first code group. For example, taking the first end code sequence shown in FIG7 as an example, if the historical data relied upon by the check bit 2 code in code group 2 includes the first half of the information in code group 1, and the historical information relied upon by the check bit 3 code in code group 3 includes the second half of the information in code group 1, so that the sum of the historical information relied upon by the check bit codes in code groups 2 and 3 includes the entire information in code group 1, then code group 2 and code group 3 can jointly provide error correction protection for code group 1.
[0125] According to the coding principle of convolutional codes, error correction protection provided by subsequent code groups to previous code groups occurs continuously during the encoding process. If the first code group in N code groups has already been error-corrected by subsequent code groups, then the first code group in N code groups and the code groups preceding it are also error-corrected. The first code group in N code groups corresponds to the last service data, which means that the last service data and the service data preceding it are also error-corrected. Therefore, the additionally encoded code groups after the code group corresponding to the last service data ensure a consistent level of error correction protection for the entire service data stream.
[0126] Optionally, the first code group of the N code groups may further include first padding data, and the last service data and the first padding data are information bits in the code group. In this case, the check bit 1 may be specifically encoded based on the last service data, the first padding data, and historical information before the first code group.
[0127] It should be understood that the length of the information bit that the convolutional code encoder needs to input is fixed. The position where the continuous business data is terminated is random, so the length of the last business data input to the encoder can be equal to or less than the length of the information bit. If the length of the last business data is exactly equal to the length of the information bit, then the encoder can use only the last business data as the encoded information bit, and then combine it with the historical information encoding before the first code group to obtain the check bit 1. If the length of the last business data is less than the length of the information bit, the solution of the embodiment of the present application is to supplement the first padding data as the information bit after the last business data, and the encoder can use the last business data and the first padding data as the encoded information bits, and then combine it with the historical information encoding before the first code group to obtain the check bit 1.
[0128] Optionally, the encoder may use all information from at least one code group preceding the currently encoded code group as historical information, or may use partial information from at least one code group preceding the currently encoded code group as historical information, which is not limited in this application. Furthermore, the historical information on which the current code group depends may belong to one or more previous code groups, which is not limited in this application.
[0129] In an embodiment of the present application, the number N of code groups in the first end coding sequence is related to the coding constraint of the convolutional code, that is, it is related to the depth of the historical information selection. The farther the code group to which the historical information belongs is from the code group currently encoded, the larger N is. For example, assuming that the historical information in the convolutional code encoding window belongs to the third code group before the currently encoded code group, this means that a code group can provide error correction protection for the third code group before it. In other words, a code group can extract decoding information based on the third code group after it. In order to ensure that the entire segment of transmitted business data has the same level of error correction protection, at least three additional code groups need to be encoded after the code group corresponding to the end business data, so that N≥3.
[0130] As a possible implementation method, the historical information in the convolutional code encoding window of the present application can be the previous code group of the current code group. That is to say, the code group encoded by the convolutional code encoder is associated with the previous code group, and each code group provides error correction protection for the previous code group. In this case, the encoding of the first end coding sequence by the transmitting device can specifically include: first, the encoder obtains check bit 1 based on the input end business data and the previous code group of code group 1, and code group 1 includes the end business data and check bit 1. Alternatively, the encoder obtains check bit 1 based on the input end business data, the supplemented first padding data, and the previous code group of code group 1, and code group 1 includes the end business data, the first padding data, and check bit 1. Afterwards, the encoder can obtain check bit x based on the first padding data and the previous code group of code group x, and code group x includes the first padding data and check bit x.
[0131] For example, Figure 8 shows a schematic diagram of the encoding process of a first end coding sequence. As shown in Figure 8, in coding window 1, the encoder can encode check bit 1 based on historical information, end service data, and first padding data. Coding window 1 corresponds to code group 1, which includes the end service data, first padding data, and check bit 1. In coding window 2, the encoder uses code group 1 as historical information and can encode it in combination with the first padding data to obtain check bit 2. Coding window 2 corresponds to code group 2, which includes the first padding data and check bit 2. In coding window 3, the encoder uses code group 2 as historical information and can encode it in combination with the first padding data to obtain check bit 3. Coding window 3 corresponds to code group 3, which includes the first padding data and check bit 3. Similarly, in coding window N, the encoder uses code group 2 as historical information and can encode it in combination with the first padding data to obtain check bit N. Coding window N corresponds to code group N, which includes the first padding data and check bit N.
[0132] In the embodiment of the present application, the number N of code groups included in the first end coding sequence can be agreed upon by the transmitting device and the receiving device according to the capabilities of the codec.
[0133] The first tail coding sequence described above is a new encoding method for tail service data proposed in this application. This first tail coding sequence can be used to provide error correction protection for tail service data. Furthermore, compared to existing return-to-zero bit sequences, the transmitting device can directly encode based on pre-configured first padding data, eliminating the need to calculate a complex return-to-zero sequence, making this a much simpler method.
[0134] Step 602: The transmitting device sends a second end code sequence to the receiving device. Accordingly, the receiving device receives the second end code sequence from the transmitting device. The second end code sequence is a portion of the content extracted from the first end code sequence and does not include the first padding data.
[0135] It should be understood that the first padding data is agreed upon between the transmitting device and the receiving device, so the transmitting device does not need to send the first padding data in the first end code sequence to the receiving device. This method can shorten the length of data that the transmitting device needs to send, thereby reducing the operating time and energy consumption of devices related to signal transmission.
[0136] As a possible implementation manner, the second end coding sequence may include the end service data and each check bit in the N code groups.
[0137] As another possible implementation, the check bits in some of the N code groups may include a random portion and a fixed portion. For these check bits including the random portion and the fixed portion, the second end code sequence may include only the random portion of these check bits. Furthermore, the second end code sequence may also include the end service data in the first end code sequence and all check bits in code groups other than the aforementioned partial code groups.
[0138] It should be understood that the N code groups in the first end coding sequence can all include the first padding data. If, during the coding process, a previous code group is used as historical information in the coding window corresponding to a subsequent code group, then the part of the check bit in the subsequent code group is obtained by encoding the first padding data in the historical information and the first padding data in the code group. Since the first padding data is a fixed sequence agreed upon by the transmitting device and the receiving device, the first padding data and the value encoded by the first padding data are a fixed sequence and are not random. The non-random part of the check bit can be restored through the coding relationship based on the first padding data, and the transmitting device can not send the non-random part of the check bit (i.e., the fixed part), thereby shortening the length of the data to be sent.
[0139] For example, as shown in FIG8 , in encoding window 3, the encoder uses the first padding data and check bit 2 in code group 2 as historical information, and encodes the first padding data in code group 3 to obtain check bit 3 in code group 3. Part of check bit 3 is obtained by encoding the first padding data and the first padding data, and this part of the value is not random.
[0140] Optionally, before the transmitting device sends the second end coding sequence to the receiving device, the method may further include: the transmitting device determining the second end coding sequence according to the first end coding sequence, and encapsulating the second end coding sequence into a data frame.
[0141] For example, taking the example of a second tail code sequence including the tail service data and N check bits in the first tail code sequence, Figure 9 is a schematic diagram of a data frame carrying the second tail code sequence. As shown in Figure 9, the data frame includes a frame header and a payload, and the payload can carry the tail service data, check bits 1, ..., and check bits N. Check bits 1 to N refer to the N check bits in the first tail code sequence.
[0142] For example, taking the example of a second tail coding sequence comprising the tail service data in the first tail coding sequence and a random portion of N parity bits, Figure 10 is a schematic diagram of another data frame carrying the second tail coding sequence. As shown in Figure 10, the data frame includes a frame header and a payload, and the payload can carry the tail service data, the random portion of parity bit 1, ..., and the random portion of parity bit N. Parity bits 1 to N refer to the N parity bits in the first tail coding sequence.
[0143] Step 603: The receiving end device determines the first end coding sequence according to the second end coding sequence and the first padding data.
[0144] Optionally, the receiving device determines the first end coding sequence based on the second end coding sequence and the first filling data. It can be considered that the receiving device restores the first end coding sequence encoded by the sending device based on the second end coding sequence and the first filling data.
[0145] As a possible implementation, the receiving device may determine the first tail code sequence based on the first padding data and the second tail code sequence. This may include: the receiving device may restore a fixed portion of the check digit based on the coding relationship, thereby restoring the complete check digit. Furthermore, the receiving device may add the first padding data to a corresponding position based on the positional relationship of the first tail code sequence. After the receiving device restores the complete check digit and adds the first padding data to the corresponding position, the first tail code sequence is determined.
[0146] Step 604: The receiving end device performs convolutional code decoding on the first tail coding sequence.
[0147] The process of performing convolutional code decoding on the first end code sequence is the inverse process of the process of generating the first end code sequence by convolutional code encoding, and this application will not describe it in detail.
[0148] Optionally, if the historical information used for the check bit encoding in the first end coding sequence belongs to the code group before the first end coding sequence, the receiving device can also check and correct the information in the previous code group according to the first end coding sequence.
[0149] Optionally, if the preceding code group among the N code groups is used as historical information in the coding window corresponding to the succeeding code group, the receiving end device may further perform verification and error correction on the preceding code group according to the succeeding code group.
[0150] In summary, according to the data transmission method based on convolutional codes described above, the transmitting end device can use the pre-agreed first padding data to generate an additional code group after the code group to which the last service data belongs, so as to ensure that the error correction protection level of the entire last service data stream is consistent. Compared with the return-to-zero sequence of the prior art, this method can be implemented with lower difficulty, and the length of the last sequence will not be too long. In addition, the second last coding sequence sent by the transmitting end device does not include the first padding data, thereby shortening the length of the additional information that needs to be sent after the last service data, and enabling the transmitting end device to complete the transmission operation faster. For the scenario where the convolutional code communication system performs time domain shutdown, the transmitting end device can complete the transmission operation of the last service data faster and shut down faster, thereby improving the efficiency of the time domain shutdown.
[0151] Furthermore, the check bits in the additional code group following the code group described by the trailing service data can include a fixed portion corresponding to the first padding data. The transmitting device may not transmit the fixed portion of the check bits, but only the random portion. This can further shorten the length of the additional information required to be sent after the trailing service data, allowing the transmitting device to complete transmission operations more quickly. This further improves the efficiency of time-domain shutdown in scenarios where a convolutional code communication system performs time-domain shutdown.
[0152] Optionally, the convolutional codes used by the transmitting device and the receiving device for encoding and decoding in the embodiment of the present application may include open forward error correction (OFEC) codes and staircase codes.
[0153] Figure 11 is a schematic diagram of the data structure of an OFEC encoder performing convolutional encoding. The data can be divided into squares, each representing 16 x 16 bits. Each column can contain 8 squares, extending from left to right. Two consecutive columns of squares, one odd and one even, can be considered an OFEC frame. An OFEC frame is a code group encoded by the OFEC encoder. The 22 columns of squares from left to right in Figure 11 represent the 11 OFEC frames output by the OFEC encoder, with the further right you go, the later the OFEC frame was encoded.
[0154] The encoding principle of the OFEC code encoder is described below with reference to FIG11. In FIG11, squares filled with left-slashed lines represent service data, squares filled with grid lines represent check digits, and squares filled with right-slashed lines represent historical information used for encoding. The 22 columns of squares correspond, from left to right, to OFEC frames 1 through 11. As shown in FIG11, rows 1 through 7 of OFEC frame 11 are service data, and row 8 of OFEC frame 11 is the check digit. The historical information used to encode and generate the check digit in OFEC frame 11 may include row 1 of data in OFEC frame 1, row 2 of data in OFEC frame 2, row 3 of data in OFEC frame 3, row 4 of data in OFEC frame 4, row 5 of data in OFEC frame 5, row 6 of data in OFEC frame 6, row 7 of data in OFEC frame 7, and row 8 of data in OFEC frame 8.
[0155] According to the historical information selection method in Figure 11, the historical information corresponding to a code group includes part of the information (one row of information) from the 3rd to 10th code groups preceding it (8 code groups in total). Therefore, a code group can provide error correction protection for part of the information from the 3rd to 10th code groups preceding it. From another perspective, all the information (8 rows of information) in a code group needs to be error-corrected for the 3rd to 10th code groups following it (8 code groups in total).
[0156] In an embodiment of the present application, the above-mentioned tail service data encoding can also be implemented using OFEC code. Figure 12 is a schematic diagram of the data structure of another OFEC code encoder performing convolutional code encoding, which includes an OFEC frame for the encoded tail service data. The meaning and arrangement principle of the squares in Figure 12 are the same as those in Figure 11 and will not be repeated here. The encoding principle of the tail service data will be described below in conjunction with Figure 12. In Figure 12, the squares filled with left diagonal lines represent the tail service data, the squares filled with horizontal lines represent the first padding data, the squares filled with grid lines represent the check digits, and the squares filled with right diagonal lines represent the historical information used for encoding. The 24 columns of squares from left to right can correspond to OFEC frames_1 to OFEC frames_12. As shown in Figure 12, rows 1 to 4 in OFEC frame_11 are the tail service data, rows 5 to 7 in OFEC frame_11 are the first padding data, and row 8 in OFEC frame_11 is the check digit. The historical information used to encode and generate the check bit in OFEC frame 11 may include the first row of data in OFEC frame 1, the second row of data in OFEC frame 2, the third row of data in OFEC frame 3, the fourth row of data in OFEC frame 4, the fifth row of data in OFEC frame 5, the sixth row of data in OFEC frame 6, the seventh row of data in OFEC frame 7, and the eighth row of data in OFEC frame 8. Rows 1 to 7 in OFEC frame 12 are first padding data, and row 8 in OFEC frame 12 is the check bit. The historical information used to encode and generate the parity bits in OFEC frame_12 may include the first row of data in OFEC frame_2, the second row of data in OFEC frame_3, the third row of data in OFEC frame_4, the fourth row of data in OFEC frame_5, the fifth row of data in OFEC frame_6, the sixth row of data in OFEC frame_7, the seventh row of data in OFEC frame_8, and the eighth row of data in OFEC frame_9. FIG12 illustrates an example where the length of the trailing service data is insufficient and the first padding data is used to supplement it. For example, the information bits in OFEC frame_11 include the trailing service data and the first padding data.
[0157] It should be understood that OFEC frame 11 is the code group corresponding to the last service data. OFEC frame 11 can be considered the first code group in the first last coding sequence described above. Accordingly, OFEC frame 12 can be considered the second code group in the first last coding sequence described above. Optionally, N-2 OFEC frames can be encoded after OFEC frame 12. According to the encoding structure of the OFEC code shown in Figure 12, all information in OFEC frame 11 needs to be error-corrected in the third to tenth code groups, so N = 10. In other words, 10 additional OFEC frames can be encoded after OFEC frame 11.
[0158] Figure 13 is a schematic diagram of the data structure of a Staircase code encoder for convolutional coding. The coded data can be represented in the form of a block matrix. One block matrix represents bits, and n is the length of the code group encoded by the convolutional code. As shown in Figure 13, block matrix 1 can include the end business data, the first padding data, and the check bit 1. In the coding window corresponding to block matrix 1, block matrix 0 before block matrix 1 can be used as historical information, the end business data and the first padding data can be used as information bits, and the encoding obtains the check bit 1. Block matrix 2 can include the first padding data and the check bit 2. In the coding window corresponding to block matrix 2, block matrix 1 before block matrix 2 can be used as historical information, the first padding data can be used as information bits, and the encoding obtains the check bit 2. Block matrix 3 can include the first padding data and the check bit 3. In the coding window corresponding to block matrix 3, block matrix 2 before block matrix 3 can be used as historical information, the first padding data can be used as information bits, and the encoding obtains the check bit 3.
[0159] As shown in Figure 13, check bit 1 can be obtained by encoding the information in block matrix 0 with the tail service data and first padding data in block matrix 1. The information in block matrix 0 can be random, and thus check bit 1 can be random information. Check bit 2 can be obtained by encoding the information in block matrix 1 with the first padding data in block matrix 2. The first padding data is a fixed sequence, so the first padding data in block matrix 1 and the first padding data in block matrix 2 can be encoded to obtain the fixed portion of check bit 2. In addition, check bit 1 in block matrix 1 and the first padding data in block matrix 2 can be encoded to obtain the random portion of check bit 2. Check bit 3 can be obtained by encoding the information in block matrix 2 with the first padding data in block matrix 3. The first padding data is a fixed sequence, so the first padding data in block matrix 2 and the first padding data in block matrix 3 can be encoded to obtain the fixed portion of check bit 3. In addition, check bit 2 in block matrix 2 and the first padding data in block matrix 3 can be encoded to obtain the random portion of check bit 3.
[0160] It should be understood that in FIG13 , block matrix 1 may correspond to the first code group in the final coding sequence described above, block matrix 2 may correspond to the second code group in the final coding sequence described above, and block matrix 3 may correspond to the third code group in the final coding sequence described above. Optionally, block matrix 3 may be followed by N-3 block matrices, corresponding to the fourth through Nth code groups in the final coding sequence described above, respectively. Subsequent block matrices are similar to block matrix 3.
[0161] It should be understood that based on the structure shown in FIG13 , when sending information in a block matrix, the transmitting device may choose to send a random portion of the check bit, such as the random portion of check bit 2 or the random portion of check bit 3.
[0162] The above convolutional code-based data transmission method is suitable for scenarios where the current service data stream is interrupted and the last service data is transmitted. In this scenario, the transmitting and receiving devices can perform time-domain power-down during the period of no data transmission to reduce device energy consumption.
[0163] Optionally, the above-mentioned data transmission method based on convolutional code may further include the following steps:
[0164] Step 604: After the transmitting end device generates the first end code sequence through convolutional coding, it turns off the coding-related devices.
[0165] It should be understood that the tail service data is the last part of the current service flow that the transmitting device encodes and sends. For a period of time after this tail service data, the transmitting device will not encode and send any new service data. After encoding the tail service data, the transmitting device shuts down the encoding-related components, saving energy without impacting services.
[0166] Optionally, the encoding-related devices may include a digital signal processing (DSP) chip and a convolutional code encoder.
[0167] Step 605: After the transmitting end device completes sending the second end code sequence, it turns off the components related to signal transmission.
[0168] It should be understood that the tail service data is the last part of the current service flow that the transmitting device encodes and transmits. For a period of time after this tail service data, the transmitting device will not encode and transmit any new service data. After the transmitting device completes sending the tail service data, it shuts down the signal transmission-related components, saving energy without impacting services.
[0169] Optionally, components related to signal transmission may include radio frequency and power amplifier, etc.
[0170] Step 606: After the receiving end device completes receiving the second end code sequence, it turns off components related to signal reception.
[0171] It should be understood that the last service data is the portion of the current service stream that is received and decoded by the receiving device. For a period of time after this last service data, the receiving device will not receive any new service data. After receiving the second last code sequence containing the last service data, the receiving device shuts down its signal reception-related components, saving energy without impacting service.
[0172] Optionally, the signal receiving related devices may include a detector and an analog-to-digital converter (ADC), etc.
[0173] Step 607: After completing the decoding of the convolutional code of the second tail code sequence, the receiving end device turns off the decoding-related components.
[0174] It should be understood that the last service data is the portion of the current service stream that is received and decoded by the receiving device last. For a period of time after this last service data, the receiving device will not receive any new service data. After decoding the second last code sequence containing the last service data, the receiving device shuts down its signal reception-related components, saving energy without impacting service.
[0175] Optionally, decoding-related devices may include a DSP and a convolutional code decoder, etc.
[0176] The data transmission method based on convolutional codes described in the embodiment corresponding to FIG6 above describes how to transmit the tail end of the service data when the service data stream is interrupted. Next, in conjunction with the embodiment corresponding to FIG14 , how to resume the transmission of service data when the service data stream resumes transmission will be described. FIG14 is a flowchart of another data transmission method based on convolutional codes provided by the present application. As shown in FIG14 , the method may include the following steps:
[0177] Step 1401: The transmitting device uses convolutional code encoding to generate an initial code group. The initial code group is a code group that carries initial business data. The initial business data is the business data that is first input into the encoder for encoding in the business data stream. The second padding data is historical information that the encoding depends on to generate the initial code group. The second padding data is a preconfigured fixed sequence.
[0178] It should be noted that the transmitting end device may start to obtain the service data stream from a certain moment. In this application, the service data that is first input into the encoder for encoding in the obtained service data stream may be referred to as initial service data.
[0179] Optionally, the initial code group may include initial service data and check bits, and the initial service data is the information bit in the initial code group.
[0180] For example, Figure 15 shows a schematic diagram of an initial code group and its corresponding coding window. As shown in Figure 15, the initial code group includes initial business data and check bits. The historical information in the coding window corresponding to the initial code group is the second filling data. The second filling data and the initial business data can be encoded to obtain the check bits in the initial code group.
[0181] It should be understood that a convolutional code encoder relies on historical information from previous encodings during encoding. However, before encoding the initial service data, the encoder does not have any previously encoded data and therefore has no stored historical information. In this embodiment of the present application, the initial service data is encoded using pre-configured second padding data as historical information, allowing the initial service data to be correctly encoded using a convolutional code.
[0182] Step 1402: The transmitting device sends an initial code group to the receiving device. Correspondingly, the receiving device receives the initial code group from the transmitting device.
[0183] Step 1403: The receiving end device performs convolutional code decoding on the initial code group according to the second padding data.
[0184] Optionally, when decoding the initial code group, the receiving end device uses the second filling data as historical information in the decoding window. Decoding is the inverse process of encoding, and its principles are similar, so this application will not elaborate on this in detail.
[0185] Based on the above method, the transmitting device can use the pre-configured second padding data as historical information to encode and transmit the initial service data, and the receiving device can use the pre-configured second padding data as historical information to decode the initial service data. This method can be used to start or resume the transmission of service data.
[0186] Optionally, the data transmission methods based on convolutional codes corresponding to FIG6 and FIG14 can be applied to the time domain shutdown scenario, and the transmitting end device and the receiving end device can also obtain and exchange control information of the time domain shutdown. Optionally, the data transmission methods based on convolutional codes corresponding to FIG6 and FIG14 can also include the following steps:
[0187] Step X: The transmitting device obtains time domain shutdown control information, which includes a first moment and a first duration. The first moment is the moment when the transmitting device stops obtaining service data, and the first duration is the duration during which the transmitting device suspends obtaining service data after the first moment.
[0188] It should be understood that data transmission is carried out at the physical layer of the transmitting device. The physical layer of the transmitting device obtains the service data stream from the upper layer and then encodes and sends it. In the case of continuous transmission of service data, the physical layer of the transmitting device will continuously obtain the service data from the upper layer. If the service data obtained by the physical layer of the transmitting device from the upper layer is terminated, there will be no subsequent data transmission. The first moment indicates the moment when the continuous service data stream obtained by the physical layer of the transmitting device from the upper layer is terminated. Within the first time period after the first moment, the physical layer of the transmitting device will not obtain the service data from the upper layer. After the first time period after the first moment, the physical layer of the transmitting device will re-acquire the service data from the upper layer.
[0189] For example, Figure 16 is a schematic diagram of a transmitting device acquiring a service data stream in the time domain. As shown in Figure 16, the continuous service data stream acquired by the transmitting device is interrupted at time a and continues at time b, and no service data is acquired between time a and time b. The first time in the time domain shutdown control information acquired by the transmitting device can be time a, and the first duration in the time domain shutdown control information can be the duration of the interval between time a and time b.
[0190] Optionally, referring to Figure 16, the above-mentioned end business data can be the business data that is last input into the encoder for encoding in the business data stream before time a, and the above-mentioned initial business data can be the business data that is first input into the encoder for encoding in the business data stream after time b.
[0191] Optionally, the transmitting end device may determine to reacquire the service data at a second moment according to the time domain shutdown control information, where the second moment = the first moment + the first duration.
[0192] Optionally, the transmitting device may determine, based on the time-domain shutdown control information, to shut down the encoding-related components after encoding the tail service data, and to reopen the encoding-related components after a second duration. The second duration is calculated as follows: the first duration minus the duration consumed by the encoding-related components to encode the tail service data. The second duration is the time-domain shutdown duration of the encoding-related components in the transmitting device.
[0193] Optionally, the transmitting device may further determine, based on the time-domain shutdown control information, whether to shut down components related to signal transmission after the last service data is transmitted, and to re-enable the components related to signal transmission after a third duration. The third duration is calculated as follows: the first duration minus the duration consumed by the components related to signal transmission to transmit the last service data. The third duration is the time-domain shutdown duration of the components related to signal transmission in the transmitting device.
[0194] Step Y: The transmitting device sends the time domain shutdown control information to the receiving device. Correspondingly, the receiving device receives the time domain shutdown control information from the transmitting device.
[0195] Optionally, the time domain shutdown control information is sent to the receiving end device before the first moment. In the embodiment of the present application, data is sent via a data channel, and the time domain shutdown control information is sent via a control channel.
[0196] Optionally, the receiving device may also determine, based on the time-domain shutdown control information, whether to shut down components related to signal reception after the last service data is received, and to re-enable the components related to signal reception after a fourth duration. The fourth duration is calculated as follows: the first duration minus the duration spent by the components related to signal reception receiving the last service data. The fourth duration is the time-domain shutdown duration of the components related to signal transmission in the receiving device.
[0197] Optionally, the receiving device may further determine, based on the time-domain shutdown control information, whether to shut down decoding-related components after decoding the tail service data is complete, and to re-enable the decoding-related components after a fifth duration. The fifth duration is calculated as follows: the first duration minus the duration consumed by the decoding-related components to decode the tail service data. The fifth duration is the time-domain shutdown duration of the decoding-related components in the receiving device.
[0198] FIG17 is a schematic diagram of time domain shutdown control in a convolutional code optical communication system. As shown in FIG17 , the transmitting device can obtain the time domain shutdown control information before the end of the service data and send the time domain shutdown control information to the receiving device. The currently transmitted service data stream will be terminated at time a, and the transmitting device can send the end service data of the current service data stream to the receiving device after time a. Within the duration t1 after time a, the transmitting device will not obtain any service data. Thereafter, a new service data stream will start at time b, and the transmitting device can send the initial service data of the new service data stream to the receiving device after time b. t1 is the first duration mentioned above. The transmitting device can perform time domain shutdown after sending the end service data, and the receiving device can perform time domain shutdown after receiving the end service data.
[0199] In the above-mentioned method embodiment, the action of the sending device can be performed by the processor 501 in the communication device 50 shown in Figure 5 calling the application code stored in the memory 504 to instruct the sending device to execute, and the action of the receiving device can be performed by the processor 501 in the communication device 50 shown in Figure 5 calling the application code stored in the memory 504 to instruct the receiving device to execute.
[0200] It can be understood that in the above embodiments, the methods and / or steps implemented by the transmitting device can also be implemented by components (such as chips or circuits) that can be used for the transmitting device, and the methods and / or steps implemented by the receiving device can also be implemented by components (such as chips or circuits) that can be used for the receiving device.
[0201] Optionally, embodiments of the present application further provide a communication device for implementing the various methods described above. The communication device may be the transmitting device in the above method embodiments, or a device including the above transmitting device, or a component that can be used in the transmitting device. The communication device may also be the receiving device in the above method embodiments, or a device including the above receiving device, or a component that can be used in the receiving device. It is understood that, in order to implement the above functions, the communication device includes hardware structures and / or software modules corresponding to performing each function. Those skilled in the art should readily appreciate that, in conjunction with the various exemplary units and algorithm steps described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is implemented in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0202] In the embodiment of the present application, the functional modules of the communication device can be divided according to the above method embodiment. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated modules can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical functional division. In actual implementation, there may be other division methods.
[0203] Figure 18 shows a schematic structural diagram of another communication device provided by the present application. As shown in Figure 18, the communication device 180 includes an encoder 1801 and a transmitter 1802. The communication device 180 can be the transmitting device in the above-mentioned method embodiment. The encoder 1801 can be used to perform convolutional coding to generate a first end code sequence. The first end code sequence includes N code groups, the first code group of the N code groups includes the end service data and a check bit 1, the xth code group of the N code groups includes first padding data and a check bit x, where x is an integer from 2 to N, and the first padding data is a fixed sequence agreed upon by the transmitting device and the receiving device. At least one code group from the second to Nth code groups of the N code groups provides error correction protection for the first code group of the N code groups. The transmitter 1802 can be used to send a second end code sequence to the receiving device. The second end code sequence is a portion of the content extracted from the first end code sequence, and the second end code sequence does not include the first padding data.
[0204] Optionally, the communication device 180 may further include a processor 1803, and the processor 1803 may be configured to generate a second coding sequence according to the first coding sequence.
[0205] Optionally, encoder 1801 may also be configured to perform convolutional coding to generate an initial code group. The initial code group is a code group carrying initial service data. The initial service data is the service data first input to the encoder for encoding in the service data stream. The second padding data is historical information relied upon for encoding and generating the initial code group. The second padding data is a preconfigured fixed sequence. Transmitter 1802 may also be configured to send the initial code group to a receiving device.
[0206] FIG19 shows a schematic structural diagram of another communication device provided by the present application. As shown in FIG19 , the communication device 190 includes a receiver 1901, a processor 1902, and a decoder 1903. The communication device 190 may be the receiving end device in the above method embodiment.
[0207] Receiver 1901 can be used to receive a second end coding sequence from a transmitting device. Processor 1902 can be used to determine a first end coding sequence based on the second end coding sequence and first padding data. The first end coding sequence includes N code groups, the information bits of the first code group in the N code groups include the end service data and the check bit 1, the xth code group in the N code groups includes the first padding data and the check bit x, where x is an integer from 2 to N, and the first padding data is a fixed sequence agreed upon by the transmitting device and the receiving device. At least one code group from the second to Nth code groups in the N code groups provides error correction protection for the first code group in the N code groups. Decoder 1903 can be used to perform convolutional coding on the first end coding sequence.
[0208] Optionally, receiver 1901 may also be configured to receive an initial code group from a transmitting device. The initial code group is a code group carrying initial service data. The initial service data is the service data first input to the encoder for encoding in the service data stream. The second padding data is historical information relied upon for encoding and generating the initial code group. The second padding data is a preconfigured fixed sequence. Decoder 1903 may also be configured to perform convolutional decoding on the initial code group based on the second padding data.
[0209] It should be noted that all relevant content of each step involved in the above method embodiment can be referenced to the functional description of the corresponding functional module and will not be repeated here. Since the communication device 180 and the communication device 190 provided in this embodiment can perform the above-mentioned convolutional code-based data transmission method, the technical effects that can be achieved can be referred to the above method embodiment and will not be repeated here.
[0210] In this embodiment, communication devices 180 and 190 are presented in the form of integrated functional modules. "Module" here can refer to a specific ASIC, circuit, processor and memory executing one or more software or firmware programs, integrated logic circuit, and / or other device capable of providing the aforementioned functionality. In a simple embodiment, those skilled in the art will appreciate that communication devices 180 and 190 can take the form of communication device 50 shown in FIG. 5 .
[0211] For example, the functions / implementation processes of the encoder 1801 and processor 1803 in FIG18 may be implemented by the processor 501 in the communication device 50 shown in FIG5 calling computer-executable instructions stored in the memory 504, and the functions / implementation processes of the transmitter 1802 in FIG18 may be implemented by the communication interface 503 in the communication device 50 shown in FIG5. The functions / implementation processes of the processor 1902 and decoder 1903 in FIG19 may be implemented by the processor 501 in the communication device 50 shown in FIG5 calling computer-executable instructions stored in the memory 504, and the functions / implementation processes of the receiver 1901 in FIG19 may be implemented by the communication interface 503 in the communication device 50 shown in FIG5.
[0212] Since the communication device 180 provided in this embodiment can execute the above-mentioned data transmission method based on convolutional code, the technical effects that can be obtained can refer to the above-mentioned method embodiment and will not be repeated here.
[0213] It should be understood that in the various embodiments of the present application, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0214] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0215] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0216] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0217] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0218] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0219] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using a software program, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loading and executing computer program instructions on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website, computer, server or data center by wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) mode to another website, computer, server or data center. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that contains one or more media that can be integrated. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium (eg, a solid state disk (SSD)).
[0220] As used in this application, the terms "component", "module", "system" and the like are intended to refer to a computer-related entity, which can be hardware, firmware, a combination of hardware and software, software, or software in operation. For example, a component can be, but is not limited to: a process running on a processor, a processor, an object, an executable file, a thread in execution, a program and / or a computer. As an example, both an application running on a computing device and the computing device can be a component. One or more components can exist in an executing process and / or thread, and a component can be located in a computer and / or distributed between two or more computers. In addition, these components can be executed from various computer-readable media having various data structures thereon. These components can communicate in the form of local and / or remote processes, such as based on signals having one or more data packets (e.g., data from a component that interacts with another component in a local system, a distributed system, and / or interacts with other systems in the form of signals over a network such as the Internet).
[0221] The present application presents various aspects, embodiments, or features in the context of systems that may include multiple devices, components, modules, etc. It should be understood and appreciated that each system may include additional devices, components, modules, etc., and / or may not include all of the devices, components, modules, etc. discussed in conjunction with the figures. Furthermore, combinations of these aspects may also be used.
[0222] Additionally, in the embodiments of this application, the word "exemplary" is used to indicate an example, illustration, or description. Any embodiment or design described in this application as "exemplary" should not be construed as preferred or advantageous over other embodiments or designs. Rather, the use of the word "exemplary" is intended to present concepts in a concrete way.
[0223] In the embodiments of the present application, information, signal, message, and channel may sometimes be used interchangeably. It should be noted that when the distinction between them is not emphasized, the meanings they intend to convey are the same. "of," "corresponding," and "corresponding" may sometimes be used interchangeably. It should be noted that when the distinction between them is not emphasized, the meanings they intend to convey are the same. "System" and "network" may sometimes be used interchangeably. When the distinction between them is not emphasized, the meanings they intend to convey are the same. For example, "communication network" also refers to "communication system."
[0224] The network architecture and business scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Ordinary technicians in this field will know that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0225] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A data transmission method based on convolutional code, characterized in that: The method comprises: The transmitting end device performs convolutional coding to generate a first tail coding sequence; the first tail coding sequence includes N code groups, the first code group of the N code groups includes tail service data and a check bit 1, the xth code group of the N code groups includes first padding data and a check bit x, where x is an integer from 2 to N, and the first padding data is a fixed sequence agreed upon by the transmitting end device and the receiving end device; at least one code group of the second to Nth code groups of the N code groups provides error correction protection for the first code group of the N code groups; The transmitting end device transmits a second end coding sequence to the receiving end device, where the second end coding sequence is a portion of content extracted from the first end coding sequence, and the second end coding sequence does not include the first filling data.
2. The method according to claim 1, characterized in that: The check bit 1 is obtained by encoding the historical information before the end business data and the first code group, and the check bit x is obtained by encoding the historical information before the first padding data and the x-th code group; the historical information on which the check bit encoding in at least one code group depends includes all the information in the first code group.
3. The method according to claim 2, characterized in that The first code group also includes the first padding data; the check bit 1 is obtained by encoding the tail service data and the historical information before the first code group, including: The check bit 1 is obtained by encoding the tail service data, the first padding data, and the historical information before the first code group.
4. The method according to any one of claims 1 to 3, characterized in that: The second end coding sequence includes the end service data and a check bit in each code group of the N code groups.
5. The method according to any one of claims 1 to 3, characterized in that: The check bits of some code groups among the N code groups include a random part and a fixed part, and the second end coding sequence includes the end service data, the random part of the check bits in the some code groups, and all the check bits in the code groups among the N code groups except the some code groups.
6. The method according to any one of claims 1 to 5, characterized in that: The convolutional codes include open forward error correction (OFEC) codes and staircase codes.
7. A data transmission method based on convolutional code, characterized in that: The method comprises: The receiving device receives the second end code sequence from the sending device; The receiving end device determines a first end coding sequence according to the second end coding sequence and the first padding data; the first end coding sequence includes N code groups, the information bits of the first code group of the N code groups include end service data and a check bit 1, the xth code group of the N code groups includes first padding data and a check bit x, where x is an integer from 2 to N, and the first padding data is a fixed sequence agreed upon by the sending end device and the receiving end device; at least one code group of the second to Nth code groups of the N code groups provides error correction protection for the first code group of the N code groups; The receiving end device performs convolutional code decoding on the first tail coding sequence.
8. The method according to claim 7, characterized in that The check bit 1 is obtained by encoding the historical information before the end business data and the first code group, and the check bit x is obtained by encoding the historical information before the first padding data and the x-th code group; the historical information on which the check bit encoding in at least one code group depends includes all the information in the first code group.
9. The method according to claim 8, characterized in that The first code group also includes the first padding data; the check bit 1 is obtained by encoding the tail service data and the historical information before the first code group, including: The check bit 1 is obtained by encoding the tail service data, the first padding data, and the historical information before the first code group.
10. The method according to any one of claims 7 to 9, characterized in that: The second end coding sequence includes the end service data and a check bit in each code group of the N code groups.
11. The method according to any one of claims 7 to 9, characterized in that: The check bits in some of the N code groups include a random part and a fixed part, and the second end coding sequence includes the end service data, the random part of the check bits in the some of the code groups, and all the check bits in the code groups other than the some of the N code groups.
12. The method according to any one of claims 7 to 12, characterized in that: The convolutional codes include open forward error correction (OFEC) codes and staircase codes.
13. A communication device, characterized in that: The communication device comprises: an encoder and a transmitter; The encoder is used to perform convolutional coding to generate a first tail coding sequence; the first tail coding sequence includes N code groups, the first code group of the N code groups includes tail service data and check bit 1, and the xth code group of the N code groups includes a first filling number The first padding data is a fixed sequence agreed upon by the transmitting end device and the receiving end device; at least one code group from the second to the Nth code groups in the N code groups provides error correction protection for the first code group in the N code groups; The transmitter is used to send a second end coding sequence to the receiving end device, where the second end coding sequence is part of the content extracted from the first end coding sequence, and the second end coding sequence does not include the first filling data.
14. The communication device according to claim 13, characterized in that: The check bit 1 is obtained by encoding the historical information before the end business data and the first code group, and the check bit x is obtained by encoding the historical information before the first padding data and the x-th code group; the historical information on which the check bit encoding in at least one code group depends includes all the information in the first code group.
15. The communication device according to claim 14, characterized in that: The first code group also includes the first padding data; the check bit 1 is obtained by encoding the tail service data and the historical information before the first code group, including: The check bit 1 is obtained by encoding the tail service data, the first padding data, and the historical information before the first code group.
16. The communication device according to any one of claims 13 to 15, characterized in that: The second end coding sequence includes the end service data and a check bit in each code group of the N code groups.
17. The communication device according to any one of claims 13 to 15, characterized in that: The check bits of some code groups among the N code groups include a random part and a fixed part, and the second end coding sequence includes the end service data, the random part of the check bits in the some code groups, and all the check bits in the code groups among the N code groups except the some code groups.
18. A communication device, characterized in that: The communication device comprises: a receiver, a processor and a decoder; The receiver is for a second terminal coded sequence from a transmitting end device; The processor is used to determine a first end coding sequence according to the second end coding sequence and the first padding data; the first end coding sequence includes N code groups, the information bits of the first code group in the N code groups include end service data and check bit 1, the xth code group in the N code groups includes first padding data and check bit x, x is an integer from 2 to N, and the first padding data is a fixed sequence agreed upon by the transmitting end device and the receiving end device; at least one code group in the second to Nth code groups in the N code groups provides error correction protection for the first code group in the N code groups; The decoder is used for performing convolutional code decoding on the first tail coding sequence.
19. The communication device according to claim 18, characterized in that: The check bit 1 is obtained by encoding the historical information before the end business data and the first code group, and the check bit x is obtained by encoding the historical information before the first padding data and the x-th code group; the historical information on which the check bit encoding in at least one code group depends includes all the information in the first code group.
20. The communication device according to claim 19, characterized in that The first code group also includes the first padding data; the check bit 1 is obtained by encoding the tail service data and the historical information before the first code group, including: The check bit 1 is obtained by encoding the tail service data, the first padding data, and the historical information before the first code group.
21. The communication device according to any one of claims 18 to 20, characterized in that: The second end coding sequence includes the end service data and a check bit in each code group of the N code groups.
22. The communication device according to any one of claims 18 to 20, characterized in that: The check bits of some code groups among the N code groups include a random part and a fixed part, and the second end coding sequence includes the end service data, the random part of the check bits in the some code groups, and all the check bits in the code groups among the N code groups except the some code groups.
23. A computer-readable storage medium, characterized in that: The method comprises instructions which, when executed on a computer, enable the computer to execute the data transmission method based on convolutional code as described in any one of claims 1 to 6 or 7 to 12.
24. A communication system, characterized in that: Including sending equipment and receiving equipment, The transmitting end device is used to execute the data transmission method based on convolutional code as described in any one of claims 1-6, and the receiving end device is used to execute the data transmission method based on convolutional code as described in any one of claims 7-12.
Citation Information
Patent Citations
Recovery of outburst packet lose in wireless network based on Internet protocol using interleaving play and crossover packet forward error correction
CN101512989A
System and method for processing wireless high definition video data using a shortened last codeword
CN101675631A
Encoder, decoder, and encoding method
CN102342025A
Data encoding method and apparatus
CN105991227A
Burst-error correction methods and apparatuses for wireless digital communications systems
US20100293433A1
