Convolutional code-based data transmission method, communication device 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 device shutdown and data transmission.
Patent Information
- Application Number
- CN202310790610.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-29
- Publication Date
- 2024-12-31
AI Technical Summary
Existing convolutional code encoders need to design complex zeroing sequences at the end of the service data stream, resulting in increased coding difficulty and reduced time-domain shutdown efficiency.
Use pre-configured fill data to generate additional code groups, provide error correction protection for the end service data, shorten the length of the encoding sequence that needs to be sent, and perform corresponding encoding and decoding processes in the sending and receiving devices to improve time Efficiency of domain shutdown.
The end sequence design is simplified, the encoding and decoding difficulty is reduced, the equipment shutdown time after service data transmission is shortened, and the time domain shutdown efficiency is improved.
Smart Images

Figure CN119232319A_ABST
Abstract
Description
Technical Field
[0001] 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 codes. Background Art
[0002] Convolutional code is a coding method with error correction capability used in current communication systems. Convolutional code is a memory-based error correction code. The encoding of convolutional code depends not only on the current input, but also on a certain number of previous inputs. Therefore, in a convolutional code encoding system, the input information segment can be used not only to generate the check bits in the current encoded code group, but also to generate the check bits of the code group encoded later. Then, the information encoded later can provide error correction protection for the information encoded previously.
[0003] In a communication system, the distribution of data traffic in time is usually uneven. The design of the communication system requires the ability to handle peak traffic and reduce processing power consumption when there is no data to be sent. In one implementation, when there is no business data transmission in the communication system, the system can be shut down in the time domain (i.e., the transmitting device stops encoding and sending signals, and the receiving device stops receiving signals and decoding) to reduce power consumption.
[0004] 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.
[0005] However, the coding structure of convolutional codes is becoming increasingly complex, making the encoding more difficult. In addition, the length of the return-to-zero sequence is also increasing, which will cause it to occupy a longer time in the time domain shutdown, thereby reducing the efficiency of the time domain shutdown. Summary of the invention
[0006] The present application provides a data transmission method, communication device and system based on convolutional code, which are used to solve the problems in the prior art that the design of the return-to-zero sequence at the end is complex, which 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.
[0007] In a first aspect, a data transmission method based on a convolutional code is provided, which can be executed by a transmitting device, or by a component of the transmitting device, such as a processor, a chip, or a chip system of the transmitting device, or can be implemented by a logic module or software that can realize all or part of the functions of the transmitting device. The method may include: the transmitting device performs convolutional code encoding to generate a first end coding sequence. The first end coding sequence includes N code groups, the first code group of the N code groups includes 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, 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 the Nth code groups of the N code groups provides error correction protection for the first code group of the N code groups. Afterwards, the transmitting device sends a second end coding sequence to the receiving device, the second end coding sequence is a part of the content extracted from the first end coding sequence, and the second end coding sequence does not include the first padding data.
[0008] 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 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 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 device to complete the transmission operation faster. For the scenario where the convolutional code communication system performs time domain shutdown, the transmitting 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.
[0009] In combination with the first aspect, in a possible implementation, the check bit 1 is obtained by encoding the historical information before the end service 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 xth code group. The historical information on which the check bits in at least one code group from the second to the Nth code groups that is used to provide error correction protection for the first code group includes all the information in the first code group.
[0010] Based on this scheme, the convolutional code type used in this application is a systematic convolutional code, the information before the check bit in the code group is the information currently input to the encoder, and the check bit in the code group is encoded based on the information before the check bit and the 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.
[0011] In combination with the first aspect, in a possible implementation, the first code group further includes first padding data. Check bit 1 is obtained by encoding the end service data and historical information before the first code group, which may specifically include: Check bit 1 is obtained by encoding the end service data, the first padding data, and historical information before the first code group.
[0012] Based on this solution, when the length of the tail 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 tail service data can be performed correctly.
[0013] In combination with the above first aspect, in a possible implementation manner, the second tail coding sequence includes tail service data and a check bit in each code group of the N code groups.
[0014] Based on this solution, since the first padding data is a fixed sequence agreed upon by the transmitting device and the receiving device, the transmitting device may not send the first padding data in the last coding sequence, thereby shortening the length of data to be sent. Based on this, the energy consumption of the device can be reduced, and the efficiency of time domain shutdown can be improved.
[0015] In combination with the above-mentioned first 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.
[0016] Based on this solution, the non-random part of the check bit can be restored through the coding relationship according to the first padding data, and the sending end device can not send the non-random part of the check bit, thereby shortening the length of the data to be sent. Based on this, the energy consumption of the device can be reduced, and the efficiency of time domain shutdown can be improved.
[0017] In combination with the first aspect above, in a possible implementation, when the transmitting end device sends the second end coding sequence, the method may further include: the transmitting end device generates a second coding sequence according to the first coding sequence. The structure of the second coding sequence may refer to the description of the first two implementations.
[0018] Based on this solution, after encoding, the transmitting end device condenses the coded sequence once, and then sends the condensed coded sequence, thereby shortening the length of the coded sequence to be sent.
[0019] In combination with the above first aspect, in a possible implementation manner, the convolutional code used in the convolutional code encoding may include an open forward error correction OFEC code and a staircase code.
[0020] In a second aspect, a data transmission method based on a convolutional code is provided. The method can be executed by a receiving device, or by a component of the receiving device, such as a processor, a chip, or a chip system of the receiving device, or can be implemented by a logic module or software that can realize all or part of the functions of the receiving device. The method may include: first, the receiving device receives a second end coding sequence from the sending device. Afterwards, the receiving 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 first code group of the N code groups includes 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, x is an integer from 2 to N, and the first padding data is a fixed sequence agreed upon by the sending 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. Then, the receiving device performs convolutional code decoding on the first end coding sequence.
[0021] 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 receiving device can complete the receiving operation of the end service data faster and shut down faster, thereby improving the efficiency of time domain shutdown. In addition, the additional code group after the code group to which the end service data belongs is obtained according to the first padding data encoding. 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.
[0022] In combination with the second aspect, in a possible implementation, the check bit 1 is obtained by encoding the historical information before the end service 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 xth code group. The historical information on which the check bits in at least one code group from the second to the Nth code groups that is used to provide error correction protection for the first code group includes all the information in the first code group.
[0023] In combination with the above second aspect, in a possible implementation, the first code group also includes first padding data. Check bit 1 is obtained by encoding based on historical information before the first code group of the last service data, which may specifically include: check bit 1 is obtained by encoding based on the last service data, the first padding data, and the historical information before the first code group.
[0024] In combination with the above second aspect, in a possible implementation manner, the second tail coding sequence includes tail service data and a check bit in each code group of the N code groups.
[0025] 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.
[0026] In combination with the above second aspect, in a possible implementation manner, the convolutional code used in the convolutional code encoding may include an open forward error correction OFEC code and a staircase code.
[0027] In a third aspect, a data transmission method based on a convolutional code is provided, which can be executed by a transmitting device, or by a component of the transmitting device, such as a processor, a chip, or a chip system of the transmitting device, or can be implemented by a logic module or software that can realize all or part of the functions of the transmitting device. The method may include: the transmitting device performs convolutional code encoding 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 into the encoder for encoding in the service data stream, the second padding data is the historical information that the encoding to generate the initial code group depends on, and the second padding data is a preconfigured fixed sequence. Afterwards, the transmitting device sends the initial code group to the receiving device.
[0028] Based on this solution, the transmitting end device can use the pre-configured second filling data as historical information to convolutionally encode the initial service data, so that the transmission of the service data can be successfully started or resumed. Since the pre-configured second filling data is used as historical information, the encoding process is relatively simple, and the service data can be efficiently started or resumed.
[0029] In a fourth aspect, a data transmission method based on a convolutional code is provided, which can be executed by a receiving device, or by a component of the receiving device, such as a processor, a chip, or a chip system of the receiving device, or can be implemented by a logic module or software that can realize all or part of the functions of the receiving device. The method may include: the receiving device receives an initial code group from the transmitting device, the initial code group is a code group carrying initial service data, the initial service data is the service data first input into the encoder for encoding in the service data stream, the second filling data is the historical information that the encoding generates the initial code group, and the second filling data is a preconfigured fixed sequence. The receiving device decodes the initial code group using a convolutional code according to the second filling data.
[0030] Based on this solution, the receiving end device can use the pre-configured second filling data as historical information to decode the coding sequence corresponding to the initial service data, so that the transmission of the service data can be successfully started or resumed. Since the pre-configured second filling data is used as historical information, the decoding process is relatively simple, and the service data can be efficiently started or resumed.
[0031] In a fifth aspect, a communication device is provided, which includes: an encoder and a transmitter. The encoder can be used to perform convolutional code encoding to generate a first end coding sequence. The first end coding sequence includes N code groups, the first code group of the N code groups includes end service data and check bit 1, the xth code group of 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 of the N code groups provides error correction protection for the first code group of 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.
[0032] In combination with the fifth aspect above, in a possible implementation manner, 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.
[0033] In combination with the fifth aspect, in a possible implementation, the check bit 1 is obtained by encoding the historical information before the end service 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 xth code group. The historical information on which the check bits in at least one code group from the second to the Nth code groups that is used to provide error correction protection for the first code group includes all the information in the first code group.
[0034] In combination with the fifth aspect, in a possible implementation, the first code group further includes first padding data. The check bit 1 is obtained by encoding the end service data and the historical information before the first code group, which may specifically include: the check bit 1 is obtained by encoding the end service data, the first padding data, and the historical information before the first code group.
[0035] In combination with the fifth aspect above, in a possible implementation manner, the second tail coding sequence includes tail service data and a check bit of each code group in the N code groups.
[0036] 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.
[0037] In combination with the fifth aspect above, in a possible implementation manner, the convolutional code used in the convolutional code encoding may include an open forward error correction OFEC code and a staircase code.
[0038] In a sixth aspect, a communication device is provided, which includes: a receiver, a processor, and a decoder. The receiver can be used for a second end coding sequence from a transmitting end device. The processor can be used to determine a first end coding sequence based on 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 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, 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 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 decoder can be used to perform convolutional code decoding on the first end coding sequence.
[0039] In combination with the sixth aspect, in a possible implementation, the check bit 1 is obtained by encoding the tail service data and the historical information before the first code group, and the check bit x is obtained by encoding the first padding data and the historical information before the x-th code group. The historical information on which the check bits in at least one code group from the second to the Nth code groups that is used to provide error correction protection for the first code group includes all the information in the first code group.
[0040] In combination with the sixth aspect, in a possible implementation, the first code group further includes first padding data. The check bit 1 is obtained by encoding the end service data and the historical information before the first code group, which may specifically include: the check bit 1 is obtained by encoding the end service data, the first padding data, and the historical information before the first code group.
[0041] In combination with the sixth aspect above, in a possible implementation manner, the second tail coding sequence includes tail service data and a check bit of each code group in the N code groups.
[0042] 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.
[0043] In combination with the sixth aspect above, in a possible implementation, the convolutional code used in the convolutional code encoding may include an open forward error correction OFEC code and a staircase code.
[0044] 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 sending operations in the data transmission method based on convolutional code described in the first aspect or the third aspect, and the processor is used to perform the processing or control operations in the data transmission method based on convolutional code described in the first aspect or the third aspect. Alternatively, the communication interface is used to perform the receiving and sending operations in the data transmission method based on convolutional code described in the second aspect or the fourth aspect, and the processor is used to perform the processing or control operations in the data transmission method based on convolutional code described in the second aspect or the fourth aspect.
[0045] 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 aspect, the second aspect, the third aspect or the fourth aspect above.
[0046] In conjunction with the eighth aspect, in a 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 a related circuit, etc.
[0047] 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 data transmission method based on convolutional codes described in any one of the first aspect, the second aspect, the third aspect or the fourth aspect.
[0048] In the tenth aspect, a computer-readable storage medium is provided, which stores instructions, and 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 aspect, the second aspect, the third aspect or the fourth aspect.
[0049] 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 aspect, the second aspect, the third aspect or the fourth aspect.
[0050] 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.
[0051] 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
[0052] Figure 1 A schematic diagram of a group code encoding relationship provided in an embodiment of the present application;
[0053] Figure 2 A schematic diagram of a convolutional code encoding relationship provided in an embodiment of the present application;
[0054] Figure 3 A schematic diagram of frequency domain shutdown in a multi-subcarrier communication system provided in an embodiment of the present application;
[0055] Figure 4 A schematic diagram of a communication system provided in an embodiment of the present application;
[0056] Figure 5 A schematic diagram of the structure of a communication device provided in an embodiment of the present application;
[0057] Figure 6 A flowchart of a data transmission method based on a convolutional code provided in an embodiment of the present application;
[0058] Figure 7 A schematic diagram of the structure of a first end coding sequence provided in an embodiment of the present application;
[0059] Figure 8 A schematic diagram of an encoding process of a first end encoding sequence provided in an embodiment of the present application;
[0060] Fig. 9 A schematic diagram of a data frame carrying a second end coding sequence provided in an embodiment of the present application;
[0061] Fig.10 A schematic diagram of another data frame carrying a second end coding sequence provided in an embodiment of the present application;
[0062] Fig.11 A schematic diagram of a data structure of an OFEC code encoder for convolutional coding provided in an embodiment of the present application;
[0063] Fig.12 A schematic diagram of a data structure of another OFEC code encoder for convolutional coding provided in an embodiment of the present application;
[0064] Fig.13 A schematic diagram of a data structure of a Staircase code encoder for convolutional code encoding provided in an embodiment of the present application;
[0065] Fig.14 A flowchart of another data transmission method based on convolutional code provided in an embodiment of the present application;
[0066] Fig.15 A schematic diagram of a coding window corresponding to an initial code group provided in an embodiment of the present application;
[0067] Fig.16 A schematic diagram of a transmitting end device acquiring a service data stream in the time domain provided in an embodiment of the present application;
[0068] Fig.17 A schematic diagram of time domain shutdown control in a convolutional code optical communication system provided in an embodiment of the present application;
[0069] Fig.18 A schematic diagram of the structure of another communication device provided in an embodiment of the present application;
[0070] Fig.19 A schematic diagram of the structure of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0071] To facilitate understanding, first, a brief introduction is given to the technical terms and related technologies involved in this application.
[0072] In order to obtain better transmission performance, forward error correction (FEC) technology is widely used in communication systems. FEC technology adds overhead information to the bit stream before transmission, allowing the receiving device to detect and correct some errors that may exist in the bit stream, thereby improving data transmission performance.
[0073] FEC codes can include two types: block codes and convolutional codes.
[0074] Block code means that the encoder needs to group the input data in advance and then encode it according to the groups. The output of the block code is only related to the currently encoded group data. The block code is described by (n, k), where n is the total number of bits of the encoded code group, also known as the length of the code group (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 supervision code element (also known as the check bit) in the code group. Therefore, the coding window of the convolutional code can include the current input k information bits and the encoded nk check bits.
[0075] For example, Figure 1 is a schematic diagram of a group code encoding relationship, such as Figure 1 As shown, in the coding 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.
[0076] Convolutional code is a memory-based error correction code. The encoding of the convolutional code depends not only on the current input, but also on a certain number of previous inputs. Convolutional code can be represented by (n, k, L), where n is the length of the output code group and k is the length of the input information bit. L is the coding constraint length, which indicates the number of mutually constrained code groups during the coding process. The n code elements in the output code group are not only related to the current k information output, but also to the previous L-1 groups of information. The error correction performance of the convolutional code increases with the increase of L, while the error rate decreases exponentially with the increase of n.
[0077] Convolutional codes can be divided into systematic convolutional codes 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 information originally input to the convolutional code encoder, then the convolutional code can be considered a systematic convolutional code. Otherwise, it is considered a non-systematic convolutional code.
[0078] For a systematic convolutional code, the encoder may encode nk bits of check bits based on the currently input k bits of information and the historical information in several previous code groups, and the final output code group may include k bits of currently input information and nk bits of check bits.
[0079] For example, Figure 2is a schematic diagram of a convolutional code encoding relationship, such as Figure 2 As shown, the coding window of the convolutional code may include several bits of historical information before, k bits of information currently input, and nk bits of check bits. The nk bits of check bits are obtained by the encoder according to the several bits of historical information before and the k bits of information currently input, and the code group output by the encoder may include k bits of information bits and nk bits of check bits.
[0080] Since the encoding of convolutional codes depends on the historical information in the previous code group, it can be considered that the information encoded later can provide error correction protection for the information encoded earlier. When decoding, the convolutional code decoder not only extracts the decoding information based on the code elements in the currently received code group, but also extracts the decoding information based on the code groups received at several moments in the future.
[0081] In the prior art, when the convolutional code encoder finishes encoding the service data stream, it usually adds a tail bit sequence to return the encoder to an all-zero state. The tail bit sequence can also be called a return-to-zero bit sequence. In addition to returning the encoder to an all-zero state, the return-to-zero bit sequence can also provide error correction protection for at least one segment of service data at the end, so that the entire service data stream has the same error correction protection level.
[0082] As the services carried by communication systems grow exponentially, communication systems are faced with an increase in energy consumption. How to save energy in communication systems has been a research issue. As an implementation method, devices can use symbol shutdown, channel shutdown, carrier shutdown, or even deep sleep to shut down some devices in the device to achieve the purpose of reducing energy consumption.
[0083] 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.
[0084] 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.
[0085] Carrier shutdown means that the network equipment identifies the low-service carrier at 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.
[0086] For example, Figure 3 FIG. 4 shows a schematic diagram of frequency domain shutdown in a multi-subcarrier communication system. Figure 3As shown, 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, and each part of the service data corresponds to a subcarrier. When the amount of service data transmitted in the channel decreases by more than 1 / n, a subcarrier can be turned off in the frequency domain. After the frequency domain is turned off, the n-1 subcarriers can still transmit service data normally.
[0087] It should be understood that the above channel shutdown and carrier shutdown both need to rely on the change of business volume, and can be applied in few scenarios, and their contribution to reducing the energy consumption of the communication system is relatively limited. In addition, the device wake-up cycle is long, and the efficiency of shutdown execution is average.
[0088] Symbol shutdown is a shutdown technology in the time domain. It is shut down according to whether there is data transmission in the time domain. This shutdown method has many application scenarios and is the main way to reduce the energy consumption of communication systems. In addition, the device wake-up cycle is short and the shutdown execution efficiency is high.
[0089] In an embodiment of the present application, a time domain shutdown technology that is one step further than symbol shutdown is proposed, which can shut down the encoder / decoder and receiver / transmitter of the device during a period of time when there is no data transmission, thereby reducing energy consumption to a greater extent.
[0090] However, in the scenario where a convolutional code-encoded communication system performs time domain shutdown, if the time domain shutdown is performed directly after the effective service data is encoded, the service data encoded at the end will not have the subsequent encoded information to provide error correction protection, making the error correction performance of the service data encoded at the end lower than that of the previously encoded service data. In the communication system, the entire service data stream needs to have the same level of error correction performance, so when the convolutional code-encoded communication system performs time domain shutdown, the transmitting device needs to additionally encode and send the end bit sequence before sleeping the encoder and transmitter, and the receiving device needs to additionally receive and decode the end bit sequence before sleeping the decoder and receiver.
[0091] As a possible implementation method, in the time domain shutdown scenario, the end bit sequence sent by the transmitting device can be the above-mentioned return-to-zero bit sequence. However, the coding structure of the convolutional code is becoming more and more complex, the design of the return-to-zero sequence is becoming more and more difficult, and the sequence length is also increasing, which will lead to a decrease in the efficiency of time domain shutdown.
[0092] The present application provides a data transmission method based on convolutional codes, which can use pre-configured padding data to encode and decode additional coding sequences after service data, thereby ensuring that the error correction protection level of the entire service data stream is consistent. In addition, the transmitting device and the receiving device may not transmit the padding data in the additional coding sequence, thereby shortening the length of the coding sequence that needs to be additionally transmitted, thereby improving the efficiency of time domain shutdown.
[0093] 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 kind of association relationship describing 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. And, 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 its similar expressions refers to any combination of these items, including any combination of single items 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, the words "first", "second" and the like are used to distinguish the same items or similar items with substantially the same functions and effects. Those skilled in the art will understand that the words "first", "second" and the like do not limit the quantity and execution order, and the words "first", "second" and the like do not necessarily limit the differences. At the same time, in the embodiments of the present application, the words "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 solutions. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete manner for ease of understanding.
[0094] 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.
[0095] Before introducing the convolutional code-based data transmission method provided in the embodiment of the present application, the communication system / business scenario to which the convolutional code-based data transmission method of the present application is applied is first introduced.
[0096] Figure 4 A schematic diagram of a communication system provided in an embodiment of the present application is shown in FIG. Figure 4 As shown, 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.
[0097] The data transmission method based on convolutional code provided in the embodiment of the present application can be applied to the above Figure 4 The transmitter device 401 and the receiver device 402 in the communication system are shown. For specific implementation, reference may be made to the following method embodiment, which will not be described in detail here.
[0098] 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.
[0099] Optionally, the transmitting end device and the receiving end device in the embodiment of the present application may be a communication device, and the transmitting end device and the receiving end device may adopt Figure 5 The structure shown may include Figure 5 Parts shown. Figure 5 A schematic diagram of the structure of a communication device provided in an embodiment of the present application is shown in FIG. Figure 5 As shown, the communication device 50 includes one or more processors 501, a communication line 502, and at least one communication interface ( Figure 5 The communication interface 503 and a processor 501 are used as examples for illustration only. Optionally, a memory 504 may also be included.
[0100] 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.
[0101] Communication link 502 may include a pathway for communication between different components.
[0102] The communication interface 503 may be a transceiver module for communicating with other devices or communication networks, such as Ethernet, RAN, wireless local area networks (WLAN), etc. For example, the transceiver module may be a device such as a transceiver or a transceiver. Optionally, the communication interface 503 may also be a transceiver circuit located in the processor 501 to implement signal input and signal output of the processor.
[0103] The memory 504 may be a device with 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, optical disc storage (including compressed optical 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 the 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.
[0104] 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 realizing the multi-hop transmission method provided in the embodiment of the present application.
[0105] 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.
[0106] 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.
[0107] In a specific implementation, as an embodiment, the processor 501 may include one or more CPUs, such as Figure 5 CPU0 and CPU1 in.
[0108] In a specific implementation, as an embodiment, the communication device 50 may include multiple processors, such as Figure 5501 and processor 507 in the embodiment. 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 computing devices running software, each of which may include one or more cores for executing software instructions to perform calculations or processing.
[0109] 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 may display information in a variety of ways. For example, the output device 505 may 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 may receive user input in a variety of ways. For example, the input device 506 may be a mouse, a keyboard, a touch screen device, or a sensor device.
[0110] The communication device 50 may also be referred to as a communication device, which may be a general device or a dedicated device. For example, the communication device 50 may be a network device such as a router, a switch, a gateway, or a terminal device, or a controller in a network, or a device having Figure 5 The embodiment of the present application does not limit the type of the communication device 50.
[0111] The following will be combined Figures 1 to 5 , describes the data transmission method based on convolutional code provided in the embodiment of the present application. The actions, terms, etc. involved in the various embodiments of the present application can refer to each other without limitation. The message name or parameter name in the message in the embodiment of the present application is only an example, and other names can also be used in the specific implementation without limitation.
[0112] 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 uniformly described here.
[0113] Figure 6 A flowchart of a data transmission method based on a convolutional code is provided in an embodiment of the present application, such as Figure 6As shown, the data transmission method based on convolutional code may include the following steps:
[0114] Step 601: 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 check bit 1, the xth code group of 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 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.
[0115] For example, Figure 7 A schematic diagram of the structure of a first tail coding sequence is shown, and 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, ..., code group N includes first padding data and check bit N.
[0116] It should be noted that data transmission is performed at the physical layer of the transmitting device, and the physical layer of the transmitting device obtains the service data from the upper layer and then encodes and transmits it. For the continuously obtained service data stream, the transmitting device can continuously encode and transmit it. In the embodiment of the present application, the part of the service data that is last input into the encoder for encoding in the continuous service data stream is called the end service data.
[0117] 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.
[0118] 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 encoding 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 encoding 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.
[0119] It should be understood that if the historical information relied upon for convolutional coding of the check bits in the subsequent code group is 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.
[0120] Optionally, among the N code groups of the first coding sequence, the historical information on which the parity bits in at least one code group among the second to Nth code groups that provide error correction protection for the first code group are encoded includes all information in the first code group. Based on this, all information in the first code group can obtain error correction protection for the at least one code group.
[0121] As a possible implementation, the historical information on which the check bit encoding in one of the second to Nth code groups depends includes all the information of the first code group, so that the one code group can provide error correction protection for the first code group. Figure 7 Taking the first end coding sequence shown as an example, if the historical data on which the parity bit 2 coding in code group 2 depends includes all the information of code group 1, then code group 2 can provide error correction protection for code group 1.
[0122] As another possible implementation, the historical information on which the multiple check bit codes in the multiple code groups from the second to the Nth code groups depend includes all the 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 on which each check bit code in the multiple code groups depends may only include part of the information of the first code group, but the sum of the historical information on which the multiple check bits depend may include all the information of the first code group. For example, Figure 7 Taking the first end coding sequence shown as an example, if the historical data on which the check bit 2 coding in code group 2 depends includes the first half of the information in code group 1, and the historical information on which the check bit 3 coding in code group 3 depends includes the second half of the information in code group 1, so that the sum of the historical information on which the check bit coding in code group 2 and code group 3 depends includes all the information in code group 1, then code group 2 and code group 3 can jointly provide error correction protection for code group 1.
[0123] According to the coding principle of convolutional codes, the error correction protection provided by the following code groups for the preceding code groups is performed continuously during the coding process. If the first code group among N code groups has been provided with error correction protection by the following code groups, then the first code group among N code groups and the code groups before it are all protected by error correction. The first code group among N code groups is the code group corresponding to the last service data, which means that the last service data and the service data before it are all protected by error correction. Therefore, the code group encoded additionally after the code group corresponding to the last service data can ensure the same level of error correction protection for the entire service data stream.
[0124] Optionally, the first code group of the N code groups may also include first padding data, and the end 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 end service data, the first padding data, and the historical information before the first code group.
[0125] 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 only use 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.
[0126] Optionally, the encoder may use all information in at least one code group before the currently encoded code group as historical information, or may use part of information in at least one code group before the currently encoded code group as historical information, which is not limited in this application. In addition, the historical information on which the current code group depends may belong to a previous code group, or may belong to multiple previous code groups, which is not limited in this application.
[0127] 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 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.
[0128] As a possible implementation method, the historical information in the convolutional code encoding window of the present application may 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 may specifically include: first, the encoder obtains check bit 1 according to the input end service data and the previous code group of code group 1, and code group 1 includes the end service data and check bit 1. Alternatively, the encoder obtains check bit 1 according to the input end service data, the supplemented first padding data, and the previous code group of code group 1, and code group 1 includes the end service data, the first padding data, and check bit 1. Afterwards, the encoder may obtain check bit x according to 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.
[0129] For example, Figure 8 A schematic diagram of the encoding process of a first end encoding sequence is shown. Figure 8 As shown, in coding window 1, the encoder can encode the check bit 1 according to the historical information, the end service data and the first padding data. Coding window 1 corresponds to code group 1, and code group 1 includes the end service data, the first padding data and the check bit 1. In coding window 2, the encoder uses code group 1 as historical information and can encode the check bit 2 in combination with the first padding data. Coding window 2 corresponds to code group 2, and code group 2 includes the first padding data and the check bit 2. In coding window 3, the encoder uses code group 2 as historical information and can encode the check bit 3 in combination with the first padding data. Coding window 3 corresponds to code group 3, and code group 3 includes the first padding data and the check bit 3. By analogy, in coding window N, the encoder uses code group 2 as historical information and can encode the check bit N in combination with the first padding data. Coding window N corresponds to code group N, and code group N includes the first padding data and the check bit N.
[0130] 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.
[0131] The first end coding sequence described above is a new coding method for the end service data proposed by the present application, and the first end coding sequence can be used to provide error correction protection for the end service data. Moreover, compared with the existing return-to-zero bit sequence, the transmitting end device can directly encode according to the pre-configured first padding data without calculating a complex return-to-zero sequence, which is simpler.
[0132] Step 602: The transmitting device transmits a second end coding sequence to the receiving device, and accordingly, the receiving device receives the second end coding sequence from the transmitting device. 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 padding data.
[0133] It should be understood that the first padding data is agreed upon by the transmitting device and the receiving device, so the transmitting device does not need to send the first padding data in the first end coding sequence to the receiving device. This method can shorten the length of data that the transmitting device needs to send, thereby reducing the working time and energy consumption of devices related to signal transmission.
[0134] As a possible implementation manner, the second tail coding sequence may include tail service data and each check bit in the N code groups.
[0135] As another possible implementation, the check bits in some code groups among the N code groups may include a random part and a fixed part. For these check bits including the random part and the fixed part, the second end coding sequence may only include the random part of these check bits. In addition, the second end coding sequence may also include the end service data in the first end coding sequence, and all check bits in other code groups except the above-mentioned part of the code groups.
[0136] 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 encoded based on 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 sending 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 part of the check bit that does not have randomness can be restored through the coding relationship based on the first padding data, and the sending device may not send the part of the check bit that does not have randomness (i.e., the fixed part), thereby shortening the length of the data to be sent.
[0137] For example, Figure 8 As shown, in the coding 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 the check bit 3 in code group 3. Part of the check bit 3 is obtained by encoding the first padding data and the first padding data, and this part of the value does not have randomness.
[0138] Optionally, before the transmitting device sends the second end coding sequence to the receiving device, the method may further include: the transmitting device determines the second end coding sequence according to the first end coding sequence, and encapsulates the second end coding sequence into a data frame.
[0139] For example, taking the second tail coding sequence including the tail service data and N check bits in the first tail coding sequence as an example, Fig. 9 FIG. 1 is a schematic diagram of a data frame carrying a second end coding sequence. Fig. 9 As shown, the data frame includes a frame header and a payload, and the payload can carry tail service data, check bit 1, ..., and check bit N. Among them, check bit 1 to check bit N refer to N check bits in the first tail coding sequence.
[0140] For example, taking the second tail coding sequence including the tail service data in the first tail coding sequence and the random part of the N check bits as an example, Fig.10 FIG. 1 is a schematic diagram of another data frame carrying a second end coding sequence. Fig.10 As shown, the data frame includes a frame header and a payload, and the payload can carry the end service data, the random part of the check bit 1, ..., and the random part of the check bit N. Among them, the check bit 1 to the check bit N refer to the N check bits in the first end coding sequence.
[0141] Step 603: The receiving end device determines the first end coding sequence according to the second end coding sequence and the first padding data.
[0142] Optionally, the receiving device determines the first end coding sequence according to the second end coding sequence and the first filling data, which can be considered that the receiving device restores the first end coding sequence encoded by the sending device according to the second end coding sequence and the first filling data.
[0143] As a possible implementation, the receiving end device determines the first tail coding sequence according to the first padding data and the second tail coding sequence, which may include: the receiving end device can restore the fixed part of the check bit according to the coding relationship, and then restore the complete check bit. And the receiving end device can supplement the first padding data to the corresponding position according to the position relationship of the first tail coding sequence. After the receiving end device restores the complete check bit and supplements the first padding data to the corresponding position, the first tail coding sequence can be determined.
[0144] Step 604: The receiving end device performs convolutional code decoding on the first tail coding sequence.
[0145] The process of convolutionally decoding the first end coding sequence is the inverse process of the process of generating the first end coding sequence by convolutional coding, and this application will not go into details.
[0146] 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 end device can also check and correct the information in the previous code group according to the first end coding sequence.
[0147] Optionally, if the previous code group among the N code groups is used as the historical information in the coding window corresponding to the subsequent code group, the receiving end device can also perform verification and error correction on the previous code group according to the subsequent code group.
[0148] 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 additional code groups after the code group to which the tail business data belongs, so as to ensure that the error correction protection level of the entire tail business 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 tail sequence will not be too long. In addition, the second tail 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 tail business 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 tail business data faster and shut down faster, thereby improving the efficiency of the time domain shutdown.
[0149] In addition, the check bit in the additional code group after the code group described in the tail service data may include a fixed part corresponding to the first padding data, and the transmitting end device may not send the fixed part in the check bit, but only send the random part in the check bit. This can further shorten the length of the additional information that needs to be sent after the tail service data, so that the transmitting end device can complete the transmission operation faster. For the scenario of time domain shutdown of the convolutional code communication system, the efficiency of time domain shutdown is further improved.
[0150] 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.
[0151] Fig.11 This is a data structure diagram of an OFEC code encoder for convolutional coding. The data can be divided into squares, each square represents 16*16 bits, and each column can include 8 squares, extending from left to right. Two consecutive columns of squares, one odd and one even, can be considered as an OFEC frame. An OFEC frame refers to a code group encoded by the OFEC code encoder. Fig.11The 22 columns of squares from left to right in the figure can represent the 11 OFEC frames output by the OFEC code encoder. The further to the right, the later the OFEC frames are encoded.
[0152] Combine the following Fig.11 Introduce the encoding principle of OFEC code encoder. Fig.11 In the figure, the squares filled with left slashes represent service data, the squares filled with grids represent check bits, and the squares filled with right slashes represent historical information used for encoding. The 22 columns of squares correspond from left to right to OFEC frame_1 to OFEC frame_11. Fig.11 As shown, the 1st to 7th rows in OFEC frame_11 are service data, and the 8th row in OFEC frame_11 is a check bit. The historical information used to encode and generate the check bit in OFEC frame_11 may include the 1st row of data in OFEC frame_1, the 2nd row of data in OFEC frame_2, the 3rd row of data in OFEC frame_3, the 4th row of data in OFEC frame_4, the 5th row of data in OFEC frame_5, the 6th row of data in OFEC frame_6, the 7th row of data in OFEC frame_7, and the 8th row of data in OFEC frame_8.
[0153] according to Fig.11 In the selection method of historical information, the historical information corresponding to one code group includes part of the information (one line of information) in the 3rd to 10th code groups (a total of 8 code groups) before the code group, so one code group can provide error correction protection for part of the information in the 3rd to 10th code groups before the code group. From another perspective, all the information (8 lines of information) in one code group needs to provide error correction protection in the 3rd to 10th code groups (a total of 8 code groups) after it.
[0154] In the embodiment of the present application, the above-mentioned end service data encoding can also be implemented using OFEC code. Fig.12 A schematic diagram of a data structure of another OFEC code encoder performing convolutional code encoding, including an OFEC frame of encoded tail service data. Fig.12 The meaning and arrangement principle of the square Fig.11 The same, no further description. Fig.12 To introduce the encoding principle of the end business data, Fig.12 In the figure, the squares filled with left slashes represent the end service data, the squares filled with horizontal lines represent the first filling data, the squares filled with grids represent the check bits, and the squares filled with right slashes represent the historical information used for encoding. From left to right, the 24 columns of squares can correspond to OFEC frame_1 to OFEC frame_12. Fig.12As shown, the first to fourth rows in OFEC frame_11 are tail service data, the fifth to seventh rows in OFEC frame_11 are first padding data, and the eighth row in OFEC frame_11 is a check bit. 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. The first to seventh rows in OFEC frame_12 are first padding data, and the eighth row in OFEC frame_12 is a check bit. The historical information used to encode and generate the check bits in OFEC frame_12 may include the 1st row of data in OFEC frame_2, the 2nd row of data in OFEC frame_3, the 3rd row of data in OFEC frame_4, the 4th row of data in OFEC frame_5, the 5th row of data in OFEC frame_6, the 6th row of data in OFEC frame_7, the 7th row of data in OFEC frame_8, and the 8th row of data in OFEC frame_9. Fig.12 In the example, the length of the tail 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 tail service data and the first padding data.
[0155] It should be understood that OFEC frame_11 is the code group corresponding to the last service data, and the OFEC frame_11 can be considered as the first code group in the first last coding sequence above. Correspondingly, OFEC frame_12 can be considered as the second code group in the first last coding sequence above. Optionally, N-2 OFEC frames can be encoded after the OFEC frame_12. Fig.12 In the coding structure of the OFEC code shown, all information of OFEC frame_11 needs to provide error correction protection in the subsequent 3rd to 10th code groups, so N = 10. That is, 10 additional OFEC frames can be encoded after OFEC frame_11.
[0156] Fig.13 A schematic diagram of the data structure of a Staircase code encoder for convolutional coding. The encoded data can be represented in the form of a block matrix. One block matrix represents bits, n is the length of the code group encoded by the convolutional code. Fig.13As shown, the block matrix 1 may include the end service data, the first padding data and the check bit 1. In the coding window corresponding to the block matrix 1, the block matrix 0 before the block matrix 1 may be used as historical information, the end service data and the first padding data may be used as information bits, and the check bit 1 is obtained by encoding. The block matrix 2 may include the first padding data and the check bit 2. In the coding window corresponding to the block matrix 2, the block matrix 1 before the block matrix 2 may be used as historical information, the first padding data may be used as information bits, and the check bit 2 is obtained by encoding. The block matrix 3 may include the first padding data and the check bit 3. In the coding window corresponding to the block matrix 3, the block matrix 2 before the block matrix 3 may be used as historical information, the first padding data may be used as information bits, and the check bit 3 is obtained by encoding.
[0157] like Fig.13 As shown, check bit 1 can be obtained by encoding the information in block matrix 0 and the tail business data and the first padding data in block matrix 1. The information in block matrix 0 can be random, so check bit 1 can be random information. Check bit 2 can be obtained by encoding the information in block matrix 1 and 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 part 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 part of check bit 2. Check bit 3 can be obtained by encoding the information in block matrix 2 and 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 part 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 part of check bit 3.
[0158] It should be understood that Fig.13 In the above, block matrix 1 may correspond to the first code group in the last coding sequence, block matrix 2 may correspond to the second code group in the last coding sequence, and block matrix 3 may correspond to the third code group in the last coding sequence. Optionally, block matrix 3 may be followed by N-3 block matrices, which correspond to the fourth to Nth code groups in the last coding sequence, respectively, and the subsequent block matrices are similar to block matrix 3.
[0159] It should be understood that based on Fig.13 In the structure shown, when sending information in the block matrix, the sending end device can choose to send the random part of the check bit, such as the random part of the check bit 2 and the random part of the check bit 3.
[0160] The above-mentioned data transmission method based on convolutional code corresponds to the scenario where the current service data flow is terminated and the end service data is sent. In this scenario, the transmitting end device and the receiving end device can perform time domain shutdown during the period when there is no data transmission to reduce device energy consumption.
[0161] Optionally, the above-mentioned data transmission method based on convolutional code may further include the following steps:
[0162] Step 604: After the transmitting end device generates the first end coding sequence through convolutional coding, it turns off the coding-related devices.
[0163] It should be understood that the last service data is the part of the current service flow that is encoded and sent by the sending end device last. For a period of time after the last service data, the sending end device will temporarily not have new service data to be encoded and sent. After the sending end device completes encoding of the last service data, it turns off the encoding-related devices, which can save energy without affecting the service.
[0164] Optionally, the encoding-related devices may include a digital signal processing (DSP) chip and a convolutional code encoder, etc.
[0165] Step 605: After the sending end device completes sending the second end coding sequence, it turns off the components related to signal sending.
[0166] It should be understood that the last service data is the last part of the current service flow that is encoded and sent by the sending end device. For a period of time after the last service data, the sending end device will temporarily not have new service data to be encoded and sent. After the sending end device completes sending the last service data, it turns off the signal sending related devices, which can save energy and not affect the service.
[0167] Optionally, the signal transmission related devices may include radio frequency and power amplifier, etc.
[0168] Step 606: After the receiving end device completes receiving the second end coding sequence, it turns off the components related to signal reception.
[0169] It should be understood that the last service data is the part of the current service stream that is received and decoded by the receiving device at the end. For a period of time after the last service data, the receiving device will not receive new service data temporarily. After the receiving device completes receiving the second last coding sequence including the last service data, it turns off the signal receiving related devices, which can save energy and not affect the service.
[0170] Optionally, the signal receiving related devices may include a detector and an analog-to-digital converter (ADC), etc.
[0171] Step 607: After completing the decoding of the convolutional code of the second tail coding sequence, the receiving end device turns off the decoding-related devices.
[0172] It should be understood that the last service data is the part of the current service stream that is received and decoded by the receiving device at the end. For a period of time after the last service data, the receiving device will not receive new service data temporarily. After the receiving device completes decoding of the second last coding sequence including the last service data, it turns off the signal receiving related devices, which can save energy and not affect the service.
[0173] Optionally, decoding-related devices may include DSP and convolutional code decoder, etc.
[0174] Previous Figure 6 The data transmission method based on convolutional code introduced in the corresponding embodiment describes how to transmit the end service data in the scenario where the service data flow is interrupted. Fig.14 The corresponding embodiment introduces how to resume the transmission of business data in a scenario where the business data flow resumes transmission. Fig.14 A flowchart of another data transmission method based on convolutional code provided by this application, such as Fig.14 As shown, the method may include the following steps:
[0175] Step 1401: The transmitting end 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 to generate the initial code group depends on. The second padding data is a preconfigured fixed sequence.
[0176] It should be noted that the transmitting end device can start to obtain the service data stream from a certain moment. In the present application, the part of the service data in the obtained service data stream that is first input into the encoder for encoding may be referred to as initial service data.
[0177] 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.
[0178] For example, Fig.15 A schematic diagram of an initial code group and its corresponding coding window is shown, such as Fig.15As shown, 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, and the second filling data and the initial business data can be encoded to obtain the check bits in the initial code group.
[0179] It should be understood that the convolutional code encoder needs to rely on the historical information of the previous encoding when encoding. However, before the encoder encodes the initial service data, there is no encoded data, so there is no stored historical information. In the embodiment of the present application, the pre-configured second filling data is used as the historical information to encode the initial service data, so that the initial service data can be correctly encoded by the convolutional code.
[0180] 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.
[0181] Step 1403: The receiving end device performs convolutional code decoding on the initial code group according to the second padding data.
[0182] Optionally, when decoding the initial code group, the receiving end device uses the second filling data as the historical information in the decoding window. Decoding is the reverse process of encoding, and its principle is similar, so this application will not elaborate on it.
[0183] Based on the above method, the transmitting end device can use the pre-configured second filling data as the historical information to encode and send the initial service data, and the receiving end device can use the pre-configured second filling data as the historical information to decode the initial service data. This method can be used to start or resume the transmission of service data.
[0184] Optionally, the above Figure 6 and Fig.14 The corresponding data transmission methods based on convolutional codes can be applied in the scenario of time domain shutdown, and the transmitting end device and the receiving end device can also obtain and exchange control information of time domain shutdown. Figure 6 and Fig.14 The corresponding data transmission method based on convolutional code may also include the following steps:
[0185] Step X, the transmitting device obtains time domain shutdown control information, the time domain shutdown control information 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 for which the transmitting device suspends obtaining service data after the first moment.
[0186] It should be understood that data transmission is carried out at the physical layer of the transmitting device, and 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 termination moment of the continuous service data stream obtained by the physical layer of the transmitting device from the upper layer. 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.
[0187] For example, Fig.16 It is a schematic diagram of a transmitting device obtaining a service data stream in the time domain, such as Fig.16 As shown, the continuous service data stream obtained by the transmitting end device is terminated at a and continued at b, and no service data is obtained between time a and time b. The first moment in the time domain shutdown control information obtained by the transmitting end device may be time a, and the first duration in the time domain shutdown control information may be the duration of the interval between a and b.
[0188] Optionally, refer to Fig.16 The above-mentioned tail 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.
[0189] 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.
[0190] Optionally, the transmitting end device can determine to turn off the encoding-related device after the encoding of the tail service data is completed according to the time domain shutdown control information, and to reopen the encoding-related device after the second time period. The second time period = the first time period - the time period consumed by the encoding-related device to encode the tail service data, and the second time period is the time domain shutdown time period of the encoding-related device in the transmitting end device.
[0191] Optionally, the transmitting end device may also determine to shut down the signal transmission related device after the end service data is sent, and to reopen the signal transmission related device after the third time period, based on the time domain shutdown control information. The third time period = the first time period - the time period consumed by the signal transmission related device to send the end service data, and the third time period is the time domain shutdown time period of the signal transmission related device in the transmitting end device.
[0192] Step Y: The transmitting device sends the time domain shutdown control information to the receiving device, and correspondingly, the receiving device receives the time domain shutdown control information from the transmitting device.
[0193] 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.
[0194] Optionally, the receiving end device may also determine, based on the time domain shutdown control information, to shut down the signal receiving related device after the end service data is received, and to reopen the signal receiving related device after the fourth time duration. The fourth time duration = the first time duration - the time duration consumed by the signal receiving related device to receive the end service data, and the fourth time duration is the time domain shutdown duration of the signal sending related device in the receiving end device.
[0195] Optionally, the receiving end device may also determine to shut down the decoding-related devices after decoding the tail service data according to the time domain shutdown control information, and to reopen the decoding-related devices after the fifth time duration. The fifth time duration = the first time duration - the time duration consumed by the decoding-related devices to decode the tail service data, and the fifth time duration is the time domain shutdown duration of the decoding-related devices in the receiving end device.
[0196] Fig.17 FIG. 1 is a schematic diagram of time domain shutdown control in a convolutional code optical communication system. Fig.17 As shown, the transmitting device can obtain the time domain shutdown control information before the end 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 the service data. After that, the new service data stream will start from 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.
[0197] In the above method embodiment, the action of the sending end device can be Figure 5 The processor 501 in the communication device 50 shown in the figure calls the application code stored in the memory 504 to instruct the sending end device to execute, and the action of the receiving end device can be performed by Figure 5 The processor 501 in the communication device 50 shown calls the application code stored in the memory 504 to instruct the receiving device to execute.
[0198] 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.
[0199] Optionally, the embodiment of the present application further provides a communication device, which is used to implement the above-mentioned various methods. The communication device can be a transmitting end device in the above-mentioned method embodiment, or a device including the above-mentioned transmitting end device, or a component that can be used for the transmitting end device. The communication device can also be a receiving end device in the above-mentioned method embodiment, or a device including the above-mentioned receiving end device, or a component that can be used for the receiving end device. It can be understood that in order to implement the above-mentioned functions, the communication device includes a hardware structure and / or software module corresponding to each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of each example 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 executed in the form of hardware or computer software driving hardware 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 to exceed the scope of the present application.
[0200] The embodiment of the present application can divide the functional modules of the communication device 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 module 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 function division. There may be other division methods in actual implementation.
[0201] Fig.18 A schematic diagram of the structure of another communication device provided by the present application is shown. Fig.18As shown, the communication device 180 includes an encoder 1801 and a transmitter 1802. The communication device 180 can be a transmitting end device in the above method embodiment. The encoder 1801 can be used to perform convolutional code encoding 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 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, 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 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 1802 can be used to send a second end coding sequence to the receiving end device, the second end coding sequence is a part of the content extracted from the first end coding sequence, and the second end coding sequence does not include the first padding data.
[0202] 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.
[0203] Optionally, the encoder 1801 can also be used 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 into the encoder for encoding in the service data stream, the second filling data is the historical information that the encoding and generation of the initial code group depends on, and the second filling data is a preconfigured fixed sequence. The transmitter 1802 can also be used to send the initial code group to the receiving end device.
[0204] Fig.19 A schematic diagram of the structure of another communication device provided by the present application is shown. Fig.19 As shown, the communication device 190 includes a receiver 1901, a processor 1902, and a decoder 1903. The communication device 190 may be a receiving end device in the above method embodiment.
[0205] Receiver 1901 can be used for the second end coding sequence from the transmitting device. Processor 1902 can be used to determine the 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 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, 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 the 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 code decoding on the first end coding sequence.
[0206] Optionally, the receiver 1901 can also be used to receive an initial code group from a transmitting end device, the initial code group is a code group carrying initial service data, the initial service data is the service data first input into the encoder for encoding in the service data stream, the second filling data is the historical information that the encoding generates the initial code group, and the second filling data is a preconfigured fixed sequence. The decoder 1903 can also be used to perform convolutional code decoding on the initial code group according to the second filling data.
[0207] It should be noted that all relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module, which will not be repeated here. Since the communication device 180 and the communication device 190 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 method embodiment, which will not be repeated here.
[0208] In this embodiment, the communication device 180 and the communication device 190 are presented in the form of dividing each functional module in an integrated manner. The "module" here may refer to a specific ASIC, a circuit, a processor and a memory that executes one or more software or firmware programs, an integrated logic circuit, and / or other devices that can provide the above functions. In a simple embodiment, those skilled in the art can imagine that the communication device 180 and the communication device 190 can be used Figure 5 The form of the communication device 50 is shown.
[0209] for example, Fig.18 The functions / implementation processes of the encoder 1801 and the processor 1803 can be achieved by Figure 5 The processor 501 in the communication device 50 shown calls the computer execution instructions stored in the memory 504 to implement, Fig.18 The function / implementation process of the transmitter 1802 can be achieved by Figure 5 It is implemented by the communication interface 503 in the communication device 50 shown in FIG. Fig.19 The functions / implementation processes of the processor 1902 and the decoder 1903 can be Figure 5 The processor 501 in the communication device 50 shown calls the computer execution instructions stored in the memory 504 to implement, Fig.19 The function / implementation process of the receiver 1901 can be achieved by Figure 5 It is implemented by the communication interface 503 in the communication device 50 shown in FIG.
[0210] 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.
[0211] 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.
[0212] Those of ordinary skill 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 to be beyond the scope of this application.
[0213] Those skilled in the art can 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.
[0214] In the several embodiments provided in the present 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. There may be other division methods in actual implementation, 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.
[0215] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0216] 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.
[0217] 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 a computer program instruction on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may 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 may be transmitted from a website site, a computer, a server or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (Digital Subscriber Line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or may contain one or more servers, data centers and other data storage devices that can be integrated with a medium. 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)).
[0218] As used in this application, the terms "component", "module", "system", etc. 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, an application running on a computing device and the computing device can both be components. One or more components can exist in a process and / or thread in execution, 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 with various data structures thereon. These components can communicate in a local and / or remote process manner, such as according to a signal with one or more data packets (for example, data from a component that interacts with another component in a local system, a distributed system, and / or interacts with other systems in a signal manner through a network such as the Internet).
[0219] The present application presents various aspects, embodiments, or features around a system 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. In addition, combinations of these schemes may also be used.
[0220] In addition, in the embodiments of the present application, the word "exemplary" is used to indicate an example, illustration or description. Any embodiment or design described as "exemplary" in the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of the word "exemplary" is intended to present concepts in a concrete way.
[0221] In the embodiments of the present application, information, signal, message, and channel can sometimes be used interchangeably. It should be noted that when the distinction between them is not emphasized, the meanings they intend to express are consistent. "of", "corresponding, relevant" and "corresponding" can sometimes be used interchangeably. It should be noted that when the distinction between them is not emphasized, the meanings they intend to express are consistent. "System" and "network" can sometimes be used interchangeably. When the distinction between them is not emphasized, the meanings they intend to express are consistent. For example, "communication network" also refers to "communication system".
[0222] 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. A person of ordinary skill in the art can appreciate that with the evolution of the 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.
[0223] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope 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 code encoding 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 1, the xth code group of the N code groups includes first padding data and a 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 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 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.
