A data processing method and data processing device in a passive optical network system
By employing interleaving coding technology in the PON system, the problems of bit error propagation and downlink synchronization in high-speed PON systems are solved, achieving accurate deinterleaving and synchronization of data streams and improving data transmission quality.
Patent Information
- Application Number
- CN202510253304.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-09-30
- Publication Date
- 2026-01-06
- Estimated Expiration
- 2040-09-30
AI Technical Summary
Error propagation and downlink synchronization difficulties exist in high-speed PON systems, which are difficult to solve effectively with existing technologies.
Interleaving coding technology is used to process the data stream. By distributing synchronization information at intervals in the data stream and obtaining data information at the decoding end according to the value interval and length, the deinterleaving and synchronization of the data stream are achieved.
It effectively solves the problem of bit error propagation in high-speed PON systems, achieves rapid downlink synchronization, and improves the accuracy and efficiency of data transmission.
Smart Images

Figure CN120263344B_ABST
Abstract
Description
[0001] This application is a divisional application. The original application has the application number 202011063398.5 and the original application date is September 30, 2020. The entire contents of the original application are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communication technology, and in particular to a data processing method and data processing device in a passive optical network system. Background Technology
[0003] A passive optical network (PON) system may include: an optical line terminal (OLT) located at the central office, optical network units (ONUs) on the user side, and an optical distribution network (ODN). The OLT provides the network-side interface for the PON system and connects to one or more ODNs. The ONU provides the user-side interface for the PON system and connects to the ODN.
[0004] In a PON system, data transmission from the OLT to the ONU is called downlink transmission, and conversely, data transmission from the ONU to the OLT is called uplink transmission. In a PON system, the ONU's uplink operating clock and transmission time slots are obtained from the downlink data stream. After power-on, the ONU enters its first operating state, in which it needs to perform downlink data frame synchronization. During this process, the ONU needs to complete downlink clock synchronization, downlink data stream synchronization, and downlink data frame synchronization.
[0005] Current PON systems have various implementations, such as the current XG(S)PON system, the current 10G EPON system, and the 2*25G EPON system. Different PON systems employ different data processing mechanisms and downlink synchronization mechanisms. As PON systems continue to evolve, even faster PON systems, such as 50G PON systems, will emerge. High-speed PON systems face issues such as bit error propagation and the inability to perform downlink synchronization. Summary of the Invention
[0006] This application provides a data processing method and data processing device in a passive optical network system to solve the bit error propagation problem in a high-speed PON system and to achieve downlink synchronization in a high-speed PON system.
[0007] To address the aforementioned technical problems, this application provides the following technical solutions:
[0008] In a first aspect, embodiments of this application provide a data processing method in a passive optical network system, comprising: receiving a data stream transmitted by an encoding end, wherein the data stream is a bit stream using interleaved coding, the data stream includes synchronization information, the synchronization information being distributed in the data stream according to a first arrangement interval; obtaining first data information from the data stream according to a first value interval and a first value length, wherein the first value interval is equal to the first arrangement interval, and the difference between the first value length and the length of the synchronization information is less than or equal to a preset error value; and deinterleaving the data stream according to the starting position of the first data information when the similarity between the first data information and the synchronization information exceeds a preset similarity threshold. In the above embodiments of this application, the synchronization information and data blocks are interleaved in the data stream sent by the encoding end, and the synchronization information is distributed at intervals in the data stream. Therefore, the data stream can be sampled according to the first value interval and the value length to obtain the first data information. The first data information is obtained from the data stream according to the value length and the value interval. When the similarity between the first data information and the synchronization information exceeds the similarity threshold, the starting position of the first data information can be used to deinterleave the data stream, and finally the synchronization information in the data stream can be obtained. The embodiments of this application are applicable to the scenario of data stream interleaving encoding in high-speed PON systems, and solve the problem that downlink synchronization cannot be determined when the data stream adopts interleaving encoding.
[0009] In one possible implementation, obtaining first data information from the data stream according to a first value interval and a first value length includes: obtaining a first data substream of length P×N bits from the data stream, where P is the length of the synchronization information, N is the number of code blocks for the interleaving coding, and the code block includes at least one codeword; obtaining first data information including P bits of data from the first data substream according to the first value interval and the first value length, where the value interval is (N-1)×k bits, k is the granularity of the interleaving coding, and × represents a multiplication operation. In the above embodiments of this application, the decoding end obtains k bits of data from the first data substream at one time according to the interval corresponding to the first value interval. According to the first value interval, k bits of data can be obtained from the first data substream multiple times. Then, all the obtained k bits of data can be concatenated to obtain p bits of data. For example, if the value interval is (N-1)×k bits, then each time the interval is "(N-1)×k bits", k bits of data are taken out, and then all the obtained k bits of data are combined together to obtain P bits of first data information. The first data information can be used to determine whether it is similar to the synchronization information. In the embodiments of this application, the decoding end can obtain the first data information of the same length as the synchronization information in the above manner.
[0010] In one possible implementation, obtaining the first data information comprising P bits of data from the first data substream according to a first value interval and a first value length includes: dividing the first data substream into P / k data sets, wherein each data set includes N×k bits of data, and the / represents a division operation; obtaining k bits of data from each of the P / k data sets, wherein the first data information includes: the P bits of data obtained from the P / k data sets in total. In the above embodiments of this application, after the decoding end determines the P / k data sets, if k bits of data are obtained from each data set, then for the P / k data sets, a total of P bits of data can be obtained, and these P bits of data constitute the aforementioned first data information, the length of which is P bits. In the embodiments of this application, the decoding end can obtain the first data information of the same length as the synchronization information in the above manner.
[0011] In one possible implementation, when the similarity between the first data information and the synchronization information does not exceed the similarity threshold, the method further includes: obtaining a second data sub-stream of length P×N bits from the data stream, wherein at least one different bit exists in the second data sub-stream and the first data sub-stream; obtaining second data information including P bits from the second data sub-stream according to a first value interval and a first value length; and deinterleaving the data stream according to the starting position of the second data information when the similarity between the second data information and the synchronization information exceeds the similarity threshold. In the above embodiments of this application, the decoding end adopts a polling processing method. When the similarity between the first data information and the synchronization information exceeds the similarity threshold, the synchronization information is obtained from the data stream; when the similarity between the first data information and the synchronization information does not exceed the similarity threshold, the synchronization information is obtained from the data stream. Similarly, if it is determined that the similarity between the second data information and the synchronization information does not exceed the similarity threshold, the decoding end can also obtain a third data sub-stream from the data stream until data information similar to the synchronization information is obtained.
[0012] In one possible implementation, after deinterleaving the data stream according to the starting position of the first data information, the method further includes: determining the starting position of the first data information as the first bit in the first data information; using the first bit as the starting boundary for downlink synchronization, and performing forward error correction (FEC) decoding on the data stream. In the above embodiments of this application, after the decoding end deinterleaves the data stream according to the starting position of the first data information, the decoding end determines the starting position of the first data information as the first bit in the first data information, that is, the decoding end finds the first bit in the first data information. This first bit is the boundary for downlink synchronization performed by the decoding end. The decoding end uses the first bit as the starting boundary for downlink synchronization and performs FEC decoding on the data stream, thus realizing FEC decoding of the received data stream by the decoding end. Therefore, the decoding end can obtain the original data block before the encoding end performs FEC encoding, and the decoding end obtains the content of the encoded transmission data block.
[0013] In one possible implementation, after performing FEC decoding on the data stream using the first bit as the starting boundary for downlink synchronization, the method further includes: if the FEC decoding of the data stream is successful, determining the first bit in the first data information as the starting boundary for downlink synchronization. In the above embodiments of this application, FEC decoding at the decoding end can be implemented using an FEC decoder, which can output a flag indicating whether decoding was successful. If the FEC decoding of the data stream is successful, it indicates that the first bit of the first data information determined by the decoding end as the starting position of the synchronization information is correct. At this time, the decoding end determines the first bit in the first data information as the starting boundary for downlink synchronization, further verifying the correctness of the downlink synchronization obtained by the decoding end when interleaving coding is used in the PON system.
[0014] In one possible implementation, after deinterleaving the data stream according to the starting position of the first data information, the method further includes: determining the starting position of the first data information as the first bit in the first data information; using the first bit as the starting boundary of downlink synchronization, and descrambling the data stream using a preset scrambling code. In the above embodiments of this application, if the data stream needs to be scrambled before being sent to the decoding end, the encoding end can determine a preset scrambling code and then use that scrambling code to scramble the data stream; the scrambling process and the algorithm used are not limited. In this embodiment, since the encoding end scrambles the data stream, the decoding end can also descramble the data stream after determining the position of the synchronization information in the data stream. In this embodiment, correct descrambling by the decoding end also requires correct downlink synchronization to achieve descrambling of the received data stream.
[0015] Secondly, embodiments of this application also provide a data processing method in a passive optical network system, comprising: performing FEC encoding on data blocks to obtain encoded data blocks; performing interleaving encoding on the encoded data blocks and synchronization information to obtain a data stream to be transmitted, wherein the synchronization information is distributed in the data stream according to a first arrangement interval; and transmitting the data stream to a decoding end. In the above embodiments of this application, the FEC-encoded data blocks and synchronization information can be interleaved to obtain a data stream to be transmitted. This data stream is a bit stream using interleaving encoding, and the data stream includes synchronization information distributed in the data stream according to a first arrangement interval. This achieves uniform distribution of data blocks in the data stream and effectively solves the bit error propagation problem in high-speed PON systems.
[0016] In one possible implementation, the interleaving encoding of the encoded data block and synchronization information includes: determining N code blocks for interleaving encoding; and encoding the data block and the synchronization information into the N code blocks according to the granularity k of the interleaving encoding, wherein the length of the synchronization information is P bits. In the above embodiments of this application, the encoding end first determines the value of N, where N represents the number of code blocks used for interleaving encoding. One code block may include one or more codewords; in subsequent embodiments, one code block is used as one codeword for illustrative purposes. The synchronization information has a length of P bits, and the synchronization information and data block will be interleaved together. The encoding end encodes the data block and synchronization information into the N code blocks according to the granularity k of the interleaving encoding, where the granularity k refers to the number of bits used in each interleaving operation. For example, the encoder first sends k bits of data from codeword 1 (e.g., k can be 1), then k bits from codeword 2, followed by k bits from codeword 3, codeword 4, ..., codeword n, and so on, until all k bits of data from n codewords have been sent. This process is repeated for codewords n+1 to 2n until the entire data frame has been sent. After interleaving encoding, the synchronization information used for delimitation is distributed across multiple locations in the data stream; therefore, the decoder needs to be able to determine the location of the synchronization information within the data stream.
[0017] In one possible implementation, before sending the data stream to the decoding end, the method further includes: scrambling the data stream using a preset scrambling code. In the above embodiments of this application, if the data stream needs to be scrambled before being sent to the decoding end, the encoding end can determine a preset scrambling code and then use that code to scramble the data stream; the scrambling process and the algorithm used are not limited. In this embodiment, since the encoding end scrambles the data stream, the decoding end can also descramble the data stream after determining the position of the synchronization information in the data stream.
[0018] Thirdly, embodiments of this application provide a data processing method in a PON system, comprising: acquiring N code blocks to be encoded, wherein the first code block among the N code blocks includes synchronization information, and N is the number of code blocks to be interleaved; interleaving and encoding the data in the N code blocks other than the synchronization information, but not interleaving and encoding the synchronization information; generating a data stream based on the interleaved and encoded data and the synchronization information, wherein the synchronization information is located before the interleaved and encoded data in the data stream. In the above embodiments of this application, the encoding end generates a data stream based on the interleaved and encoded data and the synchronization information. The synchronization information is located before the interleaved and encoded data in the data stream, and the synchronization information is not interleaved in the data stream, so that the decoding end can obtain the synchronization information from the header of the data stream. The decoding end deinterleaves the data in the data stream located after the synchronization information, thereby obtaining the data stream sent by the encoding end. By interleaving the data blocks, the problem of bit error propagation in the PON system is solved. In addition, by not interleaving the synchronization information in the data stream, the decoding end can quickly determine the synchronization information in the data stream, solving the problem of downlink synchronization not being possible in the PON system.
[0019] In some embodiments of this application, the step of interleaving and encoding the data other than the synchronization information in the N code blocks, without interleaving and encoding the synchronization information, includes: not interleaving and encoding the synchronization information of length P bits in the first code block, and interleaving and encoding the first P bits of data in the second to Nth code blocks of the N code blocks; and interleaving and encoding the data other than the synchronization information in the first code block, and the data other than the P bits of data in the second to Nth code blocks. In the above embodiments of this application,
[0020] Fourthly, embodiments of this application provide a data processing method in a PON system, comprising: receiving a data stream sent by an encoding end; obtaining synchronization information from the data stream, wherein the synchronization information is located before the interleaved encoded data in the data stream and is not interleaved; and deinterleaving the data in the data stream located after the synchronization information. In the above embodiments of this application, the encoding end generates a data stream based on the interleaved encoded data and the synchronization information. The synchronization information is located before the interleaved encoded data in the data stream and is not interleaved, allowing the decoding end to obtain the synchronization information from the header of the data stream. The decoding end deinterleaves the data in the data stream located after the synchronization information, thereby obtaining the data stream sent by the encoding end. By interleaving the data blocks, the problem of bit error propagation in the PON system is solved. In addition, by not interleaving the synchronization information in the data stream, the decoding end can quickly determine the synchronization information in the data stream, solving the problem of downlink synchronization not being possible in the PON system.
[0021] In some embodiments of this application, the deinterleaving of data following the synchronization information in the data stream includes: acquiring (N-1)×P bits of data following the synchronization information in the data stream, where N is the number of code blocks for interleaving and decoding, and P is the length of the synchronization information; deinterleaving the (N-1)×P bits of data into the second to the Nth code blocks; and deinterleaving the data following the (N-1)×P bits of data in the data stream into the first to the Nth code blocks. In the above embodiments of this application,
[0022] Fifthly, embodiments of this application provide a data processing device, comprising: a receiving module for receiving a data stream sent by an encoding end, wherein the data stream is a bit stream using interleaved coding, the data stream includes synchronization information, and the synchronization information is distributed in the data stream according to a first arrangement interval; a processing module for obtaining first data information from the data stream according to a first value interval and a first value length, wherein the first value interval is equal to the first arrangement interval, and the difference between the first value length and the length of the synchronization information is less than or equal to a preset error value; and a processing module for deinterleaving the data stream according to the starting position of the first data information when the similarity between the first data information and the synchronization information exceeds a preset similarity threshold.
[0023] In one possible implementation, the processing module is configured to obtain a first data substream of length P×N bits from the data stream, wherein P is the length of the synchronization information, N is the number of code blocks for the interleaving coding, and the code block includes at least one codeword; and to obtain first data information including P bits of data from the first data substream according to a first value interval and a first value length, wherein the value interval is (N-1)×k bits, k is the granularity of the interleaving coding, and × represents a multiplication operation.
[0024] In one possible implementation, the processing module is configured to divide the first data substream into P / k data sets, wherein each data set includes N×k bits of data, and the / represents a division operation; and to obtain k bits of data from each of the P / k data sets, wherein the first data information includes: P bits of data obtained from the P / k data sets in total.
[0025] In one possible implementation, when the similarity between the first data information and the synchronization information does not exceed the similarity threshold, the processing module is configured to obtain a second data sub-stream of length P×N bits from the data stream, wherein at least one bit of data differs between the second data sub-stream and the first data sub-stream; obtain second data information including P bits of data from the second data sub-stream according to a first value interval and a first value length; and when the similarity between the second data information and the synchronization information exceeds the similarity threshold, de-interleave the data stream according to the starting position of the second data information.
[0026] In one possible implementation, the processing module is configured to deinterleave the data stream according to the starting position of the first data information, determine the starting position of the first data information as the first bit in the first data information, and use the first bit as the starting boundary of downlink synchronization to perform forward error correction (FEC) decoding on the data stream.
[0027] In one possible implementation, the processing module is configured to use the first bit as the starting boundary of downlink synchronization, and after performing FEC decoding on the data stream, if the FEC decoding on the data stream is successful, determine the first bit in the first data information as the starting boundary of downlink synchronization.
[0028] In one possible implementation, the processing module is configured to deinterleave the data stream according to the starting position of the first data information, determine the starting position of the first data information as the first bit in the first data information, use the first bit as the starting boundary of downlink synchronization, and descramble the data stream using a preset scrambling code.
[0029] In the fifth aspect of this application, the constituent modules of the data processing device may also perform the steps described in the first aspect and various possible implementations, as detailed in the foregoing description of the first aspect and various possible implementations.
[0030] In a sixth aspect, embodiments of this application provide a data processing device, comprising: a processing module for performing FEC encoding on a data block to obtain an encoded data block; the processing module for interleaving the encoded data block and synchronization information to obtain a data stream to be sent, wherein the synchronization information is distributed in the data stream at a first arrangement interval; and a sending module for sending the data stream to a decoding end.
[0031] In one possible implementation, the processing module is configured to determine N code blocks for interleaving coding; and to encode the data block and the synchronization information into the N code blocks according to the granularity k of the interleaving coding, wherein the length of the synchronization information is P bits.
[0032] In one possible implementation, the processing module is used to scramble the data stream using a preset scrambling code before the sending module sends the data stream to the decoding end.
[0033] In a sixth aspect of this application, the constituent modules of the data processing device may also perform the steps described in the second aspect and various possible implementations described above, as detailed in the foregoing description of the second aspect and various possible implementations.
[0034] In a seventh aspect, embodiments of this application provide a data processing device, comprising: a processing module, configured to acquire N code blocks to be encoded, wherein the first code block among the N code blocks includes synchronization information, and N is the number of code blocks to be interleaved; the processing module is configured to perform interleaving encoding on the data in the N code blocks other than the synchronization information, and not to perform interleaving encoding on the synchronization information; and the processing module is configured to generate a data stream based on the interleaved data and the synchronization information, wherein the synchronization information is located before the interleaved data in the data stream.
[0035] In some embodiments of this application, the processing module is configured to not interleave and encode the synchronization information of length P bits in the first code block, and to interleave and encode the first P bits of data in the second to Nth code blocks of N code blocks; and to interleave and encode the data other than the synchronization information in the first code block and the data other than the P bits of data in the second to Nth code blocks.
[0036] In the seventh aspect of this application, the constituent modules of the data processing device may also perform the steps described in the third aspect and various possible implementations, as detailed in the foregoing description of the third aspect and various possible implementations.
[0037] Eighthly, embodiments of this application provide a data processing device, comprising: a receiving module for receiving a data stream sent by an encoding end; a processing module for obtaining synchronization information from the data stream, wherein the synchronization information is located before interleaved encoded data in the data stream and the synchronization information is not interleaved; and a processing module for deinterleaving data located after the synchronization information in the data stream.
[0038] In some embodiments of this application, the processing module is configured to acquire (N-1)×P bits of data in the data stream following the synchronization information, where N is the number of code blocks for interleaving and decoding, and P is the length of the synchronization information; deinterleave the (N-1)×P bits of data into the second to the Nth code blocks; and deinterleave the data in the data stream following the (N-1)×P bits of data into the first to the Nth code blocks.
[0039] In the eighth aspect of this application, the constituent modules of the data processing device may also perform the steps described in the fourth aspect and various possible implementations, as detailed in the foregoing description of the fourth aspect and various possible implementations.
[0040] Ninthly, embodiments of this application provide a computer-readable storage medium storing instructions that, when executed on a computer, cause the computer to perform the method described in any one of the first to fourth aspects.
[0041] In a tenth aspect, embodiments of this application provide a computer program product containing instructions that, when run on a computer, cause the computer to perform the method described in any one of the first to fourth aspects.
[0042] Eleventhly, embodiments of this application provide a communication device, which may include entities such as terminal devices or chips. The communication device includes: a processor and a memory; the memory is used to store instructions; the processor is used to execute the instructions in the memory, causing the communication device to perform the method as described in any one of the first to fourth aspects above.
[0043] In a twelfth aspect, this application provides a chip system including a processor for supporting a data processing device in implementing the functions involved in the foregoing aspects, such as transmitting or processing data and / or information involved in the foregoing methods. In one possible design, the chip system further includes a memory for storing program instructions and data necessary for the data processing device. This chip system may be composed of chips or may include chips and other discrete devices. Attached Figure Description
[0044] Figure 1 A schematic diagram of the composition architecture of a passive optical network system provided in this application embodiment;
[0045] Figure 2 This application provides a schematic diagram of the interaction process between the encoding and decoding ends in a data processing method for a passive optical network system, as illustrated in an embodiment of the present application.
[0046] Figure 3 This application provides a schematic diagram of the interaction process between the encoding and decoding ends in a data processing method for a passive optical network system, as illustrated in an embodiment of the present application.
[0047] Figure 4 This is a schematic diagram of the data arrangement before interleaving encoding provided in an embodiment of this application;
[0048] Figure 5 A schematic diagram illustrating the interleaving of synchronization information among four codewords provided in an embodiment of this application;
[0049] Figure 6 A schematic diagram of the value retrieval window provided in an embodiment of this application;
[0050] Figure 7 A schematic diagram showing the value window shifted backward by one bit in the embodiments of this application;
[0051] Figure 8 This is a schematic diagram illustrating that the encoding end of this application does not interleave synchronization information;
[0052] Figure 9 This is a schematic diagram of the composition structure of a data processing device provided in an embodiment of this application. Detailed Implementation
[0053] This application provides a data processing method and data processing device in a passive optical network system to solve the bit error propagation problem in a high-speed PON system and to achieve downlink synchronization in a high-speed PON system.
[0054] The embodiments of this application will now be described with reference to the accompanying drawings.
[0055] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms are interchangeable where appropriate; this is merely a way of distinguishing objects with the same attributes in the embodiments of this application. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion, so that a process, method, system, product, or apparatus that comprises a series of elements is not necessarily limited to those elements, but may include other elements not explicitly listed or inherent to those processes, methods, products, or apparatuses.
[0056] Figure 1 The diagram shown is a system architecture diagram of a PON system, which may include an encoding end 101 and a decoding end 102.
[0057] The encoding end 101 and the decoding end 102 can communicate with each other, for example, the encoding end 101 sends a data stream to the decoding end 102. The encoding end 101 can be implemented by a data processing device, and it can use interleaving coding to solve the bit error problem in the current PON system. The decoding end 102 can be implemented by another data processing device, and it obtains the first data information according to a preset value interval and value length, and then obtains the synchronization information through the first data information. For example, the encoding end 101 can be an OLT device, and the decoding end 102 can be an ONU device.
[0058] For example, an ONU device can provide a user-side interface for a PON system, and the ONU device is connected to an ODN device. If the ONU device directly provides user port functionality, such as an Ethernet user port used by a personal computer to access the internet, then the ONU device can be called an optical network terminal (ONT). In subsequent embodiments, "ONU device" can refer to both ONU devices and ONT devices.
[0059] The PON system provided in this application embodiment can be a high-speed PON system, such as a 50G PON system. In the PON system provided in this application embodiment, in addition to enhanced forward error correction (FEC) such as low-density parity check code (LDPC), digital equalization technology can also be introduced to compensate for the performance cost caused by insufficient optical device bandwidth and transmission dispersion. For some digital equalizers, such as decision feedback equalization (DFE) or maximum likelihood sequence estimation (MLSE), while compensating for link performance, error propagation or burst errors may be introduced. That is, if an error occurs at the receiver (i.e., the decoder), this error may cause multiple subsequent bits to have errors or associated errors. Error propagation will be used as an example for explanation later. The phenomenon of burst errors may cause the distribution of errors in the data stream to be insufficiently random, and some FEC codewords may contain a large number of errors, causing FEC to be unable to correct the erroneous bits. In the PON system provided in this application embodiment, interleaving coding can be introduced, for example, bit interleaving coding can be used to distribute the error propagation caused by the equalizer (or burst errors, correlated errors, etc.) into different FEC codewords at the receiving end. While bit interleaving is used at the encoding end, when deinterleaving is performed at the decoding end, it is necessary to identify the boundaries of the interleaved synchronization information and the size of the data block in advance. The decoding end can solve the problems of data processing and synchronization at the transmitting and receiving ends after the introduction of interleaving in the PON system.
[0060] like Figure 2 As shown in the figure, this application provides a data processing method in a passive optical network system, including:
[0061] 201. The encoding end performs FEC encoding on the data block to obtain the encoded data block.
[0062] The encoding end can perform FEC encoding on one or more data blocks to obtain encoded data blocks. The specific process of FEC encoding will not be detailed here. A data block may include one or more FEC codewords.
[0063] 202. The encoding end performs interleaving encoding on the encoded data blocks and synchronization information to obtain the data stream to be sent. The synchronization information is distributed in the data stream according to the first arrangement interval.
[0064] The encoding end can also obtain synchronization information, which can also be called synchronization sequence (Psync). In order to solve the code spread problem generated in the PON system, this application embodiment introduces interleaving coding before downlink transmission. That is, the FEC-coded data block and the synchronization information can be interleaved to obtain the data stream to be sent. The synchronization information is distributed in the data stream according to a first arrangement interval. For example, the first arrangement interval is related to the depth of interleaving coding. The first arrangement interval can be a preset arrangement interval, or an arrangement interval determined by the encoding end and the decoding end after negotiation, or the first arrangement interval is an arrangement interval determined by the encoding end. Then the encoding end notifies the decoding end of the arrangement interval.
[0065] Before interleaving coding, synchronization information can be located before the FEC-coded data block; that is, the synchronization information can be the header data of the FEC-coded data block. For example, interleaving coding is based on FEC codewords. Before interleaving, the synchronization information is located in the first codeword, and the FEC-coded data block and the synchronization information are interleaved between multiple codewords. Through interleaving coding, the generated bit errors are randomly distributed in the data stream, and the bit errors within multiple FEC codewords are relatively even, avoiding the problem of FEC failing to correct erroneous bits.
[0066] In some embodiments of this application, step 202, the encoding end performs interleaving encoding on the encoded data block and synchronization information, including:
[0067] The encoding end determines N code blocks for interleaving coding;
[0068] The encoding end encodes the data block and synchronization information into N code blocks according to the granularity k of interleaving coding, and the length of the synchronization information is P bits.
[0069] The encoding end first determines the value of N, which represents the number of code blocks used for interleaving encoding. One code block can include one or more codewords; in subsequent embodiments, one code block is used as one codeword for illustration. The synchronization information has a length of P bits. The synchronization information and data blocks are interleaved together. The encoding end encodes the data blocks and synchronization information into N code blocks according to the granularity k of the interleaving encoding, where the granularity k refers to the number of bits used in each interleaving. For example, the encoding end first sends k bits of data from codeword 1 (e.g., k can be 1), then k bits from codeword 2, then k bits from codeword 3, codeword 4, ..., codeword n, and so on, cycling through all k bits of data from the n codewords. The same process is then used for codewords n+1 to 2n until the entire data frame is sent. After interleaving encoding, the synchronization information used for delimitation will be distributed to multiple locations in the data stream, so the decoding end needs to be able to determine the location of the synchronization information in the data stream.
[0070] 203. The encoding end sends a data stream to the decoding end.
[0071] After the encoding end performs interleaving encoding and obtains the data to be sent, the encoding end and the receiving end can communicate with each other, and the encoding end sends the data stream to the decoding end.
[0072] In some embodiments of this application, before step 203 where the encoding end sends the data stream to the decoding end, the data processing method provided in this application embodiment further includes the following steps:
[0073] The data stream is scrambled using a preset scrambling code.
[0074] If the data stream needs to be scrambled before being sent to the decoding end, the encoding end can determine a preset scrambling code and then use that code to scramble the data stream. The scrambling process and the algorithm used are not limited. In this embodiment, since the encoding end scrambles the data stream, the decoding end can also descramble the data stream after determining the position of the synchronization information within it.
[0075] In this embodiment of the application, the encoding end performs interleaved encoding on both the synchronization information and the data block, which results in the synchronization information being distributed in the data stream according to the arrangement interval. At this time, the decoding end needs to be able to extract the synchronization information in the received data stream. Specifically, the decoding end can execute subsequent steps 204 to 206.
[0076] 204. The decoding end receives the data stream sent by the encoding end, wherein the data stream is a bit stream using interleaved encoding, and the data stream includes synchronization information, which is distributed in the data stream according to a first arrangement interval.
[0077] The encoding and receiving ends can communicate with each other. The encoding end sends a data stream to the decoding end, and the decoding end can receive the data stream from the encoding end. This data stream carries synchronization information and data blocks, which are interleaved and encoded. The synchronization information is distributed in the data stream according to a first permutation interval. The synchronization information and data blocks in the data stream are interleaved and encoded by the encoding end, so the data stream is a bit stream using interleaving encoding. For example, the first permutation interval is related to the depth of interleaving encoding. The first permutation interval can be a preset permutation interval, or a permutation interval determined after negotiation between the encoding and decoding ends, or the first permutation interval is a permutation interval determined by the encoding end, and then the encoding end notifies the decoding end of the permutation interval.
[0078] 205. The decoding end obtains the first data information from the data stream according to the first value interval and the first value length. The size of the value interval is equal to the size of the arrangement interval, and the difference between the value length and the length of the synchronization information is less than or equal to the preset error value.
[0079] The decoding end acquires the first value interval and the first value length. The first value interval (hereinafter referred to as the value interval) refers to the interval size used by the decoding end when sampling data from the data stream. The value of the value interval can be equal to the arrangement interval of the synchronization information in the data stream. For example, the first value interval is related to the depth of interleaving coding. The first value interval can be a preset value interval, or a value interval determined after negotiation between the encoding end and the decoding end, or the first value interval is determined by the encoding end. Then, the encoding end notifies the decoding end of the value interval. The first value length (hereinafter referred to as the value length) refers to the total data length that the decoding end needs to collect from the data stream. In addition, the first value length can be a preset value length, or a value length determined after negotiation between the encoding end and the decoding end, or the first value length is determined by the encoding end. Then, the encoding end notifies the decoding end of the value length. The difference between the length of the value and the length of the synchronization information is less than or equal to a preset error value. This error value can be determined according to the specific application scenario. For example, the error value can be t bits, such as t can be 0 or 1. There is no limit to the size of the error value. For example, if the length of the synchronization information can be P bits, then the length of the value can be P bits, or the length of the value can be P-1 or P+1 bits.
[0080] In this embodiment, the decoding end obtains a preset value interval and a first value length. After receiving the data stream, the decoding end obtains the first data information from the data stream according to the first value interval and the first value length. The decoding end can sample the data stream according to two parameters (value interval and value length) stored locally to obtain the first data information. The length of the first data information is the value length. The constituent data in the first data information is obtained by sampling the data stream according to the value interval, and the size of the value interval is equal to the size of the arrangement interval. The difference between the value length and the length of the synchronization information is less than or equal to a preset error value.
[0081] It should be noted that, in the embodiments of this application, the first data information includes data collected by the decoding end from the received data stream. The first data information can be obtained by sampling the synchronization information carried in the data stream. The first data information can be used to determine whether it is used for downlink synchronization. For example, the decoding end can determine whether the similarity between the first data information and the synchronization information exceeds a preset similarity threshold. Here, similarity refers to the degree of similarity between the first data information and the synchronization information. For example, the number of bits with the same data in the first data information and the synchronization information can be used as the similarity. The similarity threshold is a threshold of the degree of similarity between the first data information and the synchronization information. If the similarity between the first data information and the synchronization information exceeds the preset similarity threshold, it means that the first data information and the synchronization information are similar, and the first data information can be used as the synchronization information determined by the decoding end from the data stream. If the similarity between the first data information and the synchronization information does not exceed the preset similarity threshold, it means that the first data information and the synchronization information are not similar, and the first data information cannot be used as the synchronization information determined by the decoding end from the data stream. For example, the similarity threshold can be the number of absolutely similar bits or a similarity ratio. For example, if the synchronization information has P bits of data, the similarity threshold can be Pm, where m can be 2, 3, 4, etc. Or, the similarity threshold can be (Pm) / P, where m can be 2, 3, 4, etc. For example, the similarity threshold can be 95% or 96%, depending on the values of m and P.
[0082] Without limitation, in the embodiments of this application, the decoding end can also determine whether the difference between the first data information and the synchronization information is less than or equal to a preset difference threshold. Through this determination, it can also be determined whether the similarity between the first data information and the synchronization information exceeds a preset similarity threshold. Here, the difference refers to the degree of dissimilarity between the first data information and the synchronization information. Similarity and difference are two opposite parameters that measure the degree of similarity between the first data information and the synchronization information, which will not be explained in detail here.
[0083] In some embodiments of this application, step 205, where the decoding end obtains first data information from the data stream according to a first value interval and a first value length, includes:
[0084] A1. The decoding end obtains a first data sub-stream of length P×N bits from the data stream, where P is the length of the synchronization information and N is the number of code blocks to be interleaved and encoded. Each code block includes at least one codeword.
[0085] The decoding end determines the value window based on the value interval and value length. The value window is P×N bits. The decoding end can then obtain a first data sub-stream of length P×N bits from the data stream according to the value window. The first data sub-stream refers to a data sequence extracted from the data stream received by the decoding end. The specific extraction method depends on the value window determined by the decoding end. Here, P is the length of the synchronization information, and N is the number of code blocks to be interleaved. Each code block includes at least one codeword.
[0086] A2. The decoding end extracts first data information from the first data substream, including P bits of data, according to the first value interval and the first value length. The value interval is (N-1)×k bits, where k is the granularity of interleaving coding and × represents multiplication operation.
[0087] In this embodiment, the decoding end obtains k bits of data from the first data substream at one interval according to the interval corresponding to the first value interval. The first value interval can be used to obtain k bits of data from the first data substream multiple times. Then, all the obtained k bits of data can be concatenated to obtain p bits of data. For example, if the value interval is (N-1)×k bits, then each time the interval is "(N-1)×k bits", k bits of data are taken out. Then, all the obtained k bits of data are combined together to obtain P bits of first data information. This first data information can be used to determine whether it is similar to the synchronization information. In this embodiment, the decoding end can obtain the first data information of the same length as the synchronization information in the above manner.
[0088] For example, N is the number of code blocks in the interleaving coding. N multiplied by the code block size is the interleaving coding depth. For example, the size of each code block is 1 FEC codeword. If k equals 1, the decoder will extract 1 bit of data from the first data substream every N-1 bits. Since the length of the first data substream is N×P, the first data information including P bits of data can be obtained.
[0089] Furthermore, in some embodiments of this application, step A2, the decoding end obtains first data information including P bits of data from the first data sub-stream according to the first value interval and the first value length, including:
[0090] A21. The decoding end divides the first data sub-stream into P / k data sets, where each data set includes N×k bits of data, and / represents a division operation;
[0091] The first data substream has a length of N×P. The decoding end truncates the first data substream according to an interleaving coding granularity of k, thus obtaining P / k data sets. Each data set contains N×k bits of data. The ' / ' operator represents a division operation. If k equals 1, p data sets are obtained. If k equals 2, P / 2 data sets are obtained, and so on.
[0092] A22. The decoding end obtains k bits of data from each of the P / k data sets, wherein the first data information includes: P bits of data obtained from the P / k data sets in total.
[0093] In this embodiment, after the decoding end determines P / k data sets, it obtains k bits of data from each data set. Therefore, for P / k data sets, a total of P bits of data can be obtained. These P bits constitute the aforementioned first data information, and the length of this first data information is P bits. In this embodiment, the decoding end can obtain the first data information of the same length as the synchronization information in the above manner.
[0094] 206. When the similarity between the first data information and the synchronization information exceeds the preset similarity threshold, the decoding end deinterleaves the data stream according to the starting position of the first data information.
[0095] In this embodiment, after the decoding end obtains the first data information according to step 205, the decoding end can determine whether the similarity between the first data information and the synchronization information exceeds a preset similarity threshold. When the similarity between the first data information and the synchronization information exceeds the preset similarity threshold, it indicates that the first data information and the synchronization information are very similar. The first data information can be used as the synchronization information determined by the decoding end from the data stream. The decoding end deinterleaves the data stream according to the starting position of the first data information to obtain the original data stream after deinterleaving. That is, the decoding end can use the starting position of the first data information as the boundary of downlink synchronization to determine the synchronization information in the data stream, which solves the problem that downlink synchronization cannot be determined when interleaving coding is used in PON system.
[0096] In some embodiments of this application, when the similarity between the first data information and the synchronization information does not exceed a similarity threshold, the data processing method executed by the decoding end further includes the following steps:
[0097] B1. The decoding end obtains a second data sub-stream of length P×N bits from the data stream, wherein the second data sub-stream and the first data sub-stream contain at least one different bit of data;
[0098] B2. The decoding end obtains second data information, including P bits of data, from the second data sub-stream according to the first value interval and the first value length;
[0099] B3. When the similarity between the second data information and the synchronization information exceeds the similarity threshold, the decoding end deinterleaves the data stream according to the starting position of the second data information.
[0100] The decoding end employs a polling process. When the similarity between the first data information and the synchronization information exceeds a similarity threshold, the synchronization information is obtained from the data stream through step 206. When the similarity between the first data information and the synchronization information does not exceed the similarity threshold, the synchronization information is obtained from the data stream through steps B1 to B3. Similarly, if steps B1 to B2 determine that the similarity between the second data information and the synchronization information does not exceed the similarity threshold, the decoding end can also obtain a third data sub-stream from the data stream until data information similar to the synchronization information is obtained. The implementation of steps B1 to B3 is similar to the processing of the first data information in the aforementioned embodiment, and will not be repeated here.
[0101] In some embodiments of this application, after the decoding end deinterleaves the data stream according to the starting position of the first data information in step 206, the data processing method executed by the decoding end further includes the following steps:
[0102] C1. The decoding end determines the starting position of the first data information as the first bit in the first data information;
[0103] C2. The decoding end uses the first bit as the starting boundary for downlink synchronization and performs forward error correction (FEC) decoding on the data stream.
[0104] In this process, after the decoding end deinterleaves the data stream according to the starting position of the first data information, the decoding end determines the starting position of the first data information as the first bit in the first data information. That is, the decoding end finds the first bit in the first data information. This first bit is the delimiter for the decoding end to perform downlink synchronization. The decoding end uses the first bit as the starting boundary of downlink synchronization to perform FEC decoding on the data stream. This realizes the FEC decoding of the received data stream by the decoding end. Thus, the decoding end can obtain the original data block before the encoding end performs FEC encoding, and the decoding end obtains the content of the encoded transmission data block.
[0105] In some embodiments of this application, after the decoding end uses the first bit as the starting boundary for downlink synchronization and performs FEC decoding on the data stream in step C2, the data processing method executed by the decoding end further includes the following steps:
[0106] If the FEC decoding of the data stream is successful, the decoding end determines the first bit in the first data information as the starting boundary of downlink synchronization.
[0107] The FEC decoding at the decoding end can be achieved through an FEC decoder, which can output a flag indicating whether the decoding was successful. If the FEC decoding of the data stream is successful, it means that the first bit of the first data information determined by the decoding end as the starting position of the synchronization information is correct. At this time, the decoding end determines the first bit in the first data information as the starting boundary of downlink synchronization, which further verifies the correctness of the decoding end in obtaining the downlink synchronization when interleaving coding is used in the PON system.
[0108] In some embodiments of this application, after the decoding end deinterleaves the data stream according to the starting position of the first data information in step 206, the data processing method executed by the decoding end further includes the following steps:
[0109] The decoding end determines the starting position of the first data information as the first bit in the first data information;
[0110] The decoding end uses the first bit as the starting boundary for downlink synchronization and uses a preset scrambling code to descramble the data stream.
[0111] In this embodiment, if the data stream needs to be scrambled before being sent to the decoding end, the encoding end can determine a preset scrambling code and then use this code to scramble the data stream. The scrambling process and algorithm used are not limited. Since the encoding end scrambles the data stream in this embodiment, the decoding end can also descramble the data stream after determining the position of the synchronization information within it. In this embodiment, correct descrambling by the decoding end also requires correct downlink synchronization to achieve descrambling of the received data stream.
[0112] As illustrated by the examples in the foregoing embodiments, the data stream sent by the encoding end is first received. This data stream is a bit stream using interleaved coding. The data stream includes synchronization information, which is distributed in the data stream according to a first arrangement interval. Then, first data information is obtained from the data stream according to a first value interval and a first value length. The size of the value interval is equal to the size of the arrangement interval, and the difference between the value length and the length of the synchronization information is less than or equal to a preset error value. When the similarity between the first data information and the synchronization information exceeds a preset similarity threshold, the data stream is deinterleaved according to the starting position of the first data information. In this embodiment, the synchronization information and data blocks are interleaved in the data stream sent by the encoding end, and the synchronization information is distributed at intervals in the data stream. Therefore, the data stream can be sampled according to the first value interval and the value length to obtain the first data information. The first data information is obtained from the data stream according to the value length and the value interval. When the similarity between the first data information and the synchronization information exceeds the similarity threshold, the starting position of the first data information can be used to deinterleave the data stream, and finally the synchronization information in the data stream can be obtained. This embodiment is applicable to the scenario of data stream interleaving encoding in high-speed PON systems, and solves the problem that downlink synchronization cannot be determined when the data stream adopts interleaving encoding.
[0113] like Figure 3 As shown in the embodiments of this application, a data processing method in a PON system is also provided, including:
[0114] 301. The encoding end obtains N code blocks to be encoded. The first code block among the N code blocks includes synchronization information, and N is the number of code blocks to be interleaved.
[0115] The encoding end can perform FEC encoding on multiple data blocks, and then add synchronization information to the front of the FEC-encoded data blocks. For example, the synchronization information and data blocks can be divided into N code blocks, and the first code block in the N code blocks includes the synchronization information.
[0116] 302. The encoding end performs interleaving encoding on the data in N code blocks except for the synchronization information, and does not perform interleaving encoding on the synchronization information.
[0117] In this process, the encoder performs interleaving encoding on the data in N code blocks, but does not interleave encoding on the synchronization information. This allows the decoder to quickly determine the synchronization information. In other words, the encoder can skip interleaving encoding on the synchronization information in the first code block of the N code blocks, thereby reducing the complexity of the decoder in determining the synchronization information.
[0118] 303. The encoding end generates a data stream based on the interleaved and encoded data and the synchronization information. The synchronization information is located before the interleaved and encoded data in the data stream.
[0119] In this embodiment of the application, after the encoding end performs interleaving encoding, the encoding end places the synchronization information before the interleaved encoded data to generate a data stream. Then the encoding end sends the data stream to the decoding end. Since the synchronization information is located before the interleaved encoded data in the data stream, it is beneficial for the decoding end to quickly determine the synchronization information.
[0120] In some embodiments of this application, interleaving encoding is performed on data other than synchronization information in N code blocks, but the synchronization information is not interleaved, including:
[0121] The synchronization information of length P bits in the first code block is not interleaved, and the data of the first P bits in the second code block to the Nth code block are interleaved.
[0122] The data in the first code block, excluding synchronization information, and the data in the second to Nth code blocks, excluding P bits of data, are interleaved and encoded.
[0123] In this system, for N code blocks, each code block contains the first P bits of data, followed by the data after those P bits. The first P bits of the first code block are synchronization information, and the first P bits of the second to Nth code blocks are the data content. The interleaving method for the first N code blocks of each data frame differs from that of the subsequent N code blocks. Specifically, the first P bits of the first code block are not interleaved, while the first P bits of the remaining N-1 code blocks are interleaved. The other data in the first N code blocks are still interleaved among the N code blocks. This interleaving method ensures that the synchronization information in the N code blocks is not interleaved, which helps the decoder quickly determine the synchronization information. In other words, the encoder can skip the interleaving encoding of the synchronization information in the first code block of the N code blocks, reducing the complexity of determining the synchronization information at the decoder.
[0124] 304. The decoding end receives the data stream sent by the encoding end.
[0125] The encoding end and the receiving end can communicate with each other. The encoding end sends a data stream to the decoding end, and the decoding end can receive the data stream from the encoding end. The data stream carries synchronization information and data blocks. The synchronization information is not interleaved, but the data blocks are interleaved. The synchronization information is distributed at the beginning of the data stream.
[0126] 305. The decoding end obtains synchronization information from the data stream, wherein the synchronization information is located before the interleaved and encoded data in the data stream, and the synchronization information is not interleaved and encoded.
[0127] The synchronization information is distributed at the beginning of the data stream. For example, the synchronization information uses special values so that the decoding end can quickly detect the synchronization information from the beginning of the data stream.
[0128] 306. The decoding end deinterleaves the data in the data stream that is located after the synchronization information.
[0129] In this process, the decoding end performs deinterleaving according to the starting position of the synchronization information, which means that the decoding end can determine the synchronization information in the data stream, thus solving the problem that downlink synchronization cannot be determined when interleaving coding is used in PON systems.
[0130] In some embodiments of this application, deinterleaving of data following synchronization information in the data stream includes:
[0131] Get (N-1)×P bits of data following the synchronization information in the data stream, where N is the number of code blocks to be interleaved and decoded, and P is the length of the synchronization information;
[0132] Deinterleave (N-1)×P bits of data into the second to Nth code blocks;
[0133] Deinterleave the data following (N-1)×P bits in the data stream into the first to Nth code blocks.
[0134] The decoding end employs the opposite processing method to the encoding end. First, the decoding end locates the synchronization information. Then, it deinterleaves the (N-1)×P bits following the synchronization information in the data stream to obtain the 2nd to Nth code blocks. Next, it deinterleaves the data after the (N-1)×P bits into the 1st to Nth code blocks. This process completes the deinterleaving. It is not limited to the decoding end performing FEC decoding or descrambling after deinterleaving; this is not specified here.
[0135] As illustrated by the examples in the foregoing embodiments, in this application embodiment, the encoding end generates a data stream based on the interleaved encoded data and synchronization information. The synchronization information is located before the interleaved encoded data in the data stream. This synchronization information is not interleaved in the data stream, allowing the decoding end to obtain the synchronization information from the header of the data stream. The decoding end deinterleaves the data in the data stream that is located after the synchronization information, thereby obtaining the data stream sent by the encoding end. By interleaving the data blocks, the problem of bit error propagation in the PON system is solved. In addition, the synchronization information in the data stream is not interleaved, allowing the decoding end to quickly determine the synchronization information in the data stream, thus solving the problem of downlink synchronization not being possible in the PON system.
[0136] To facilitate a better understanding and implementation of the above-described solutions in the embodiments of this application, specific examples of corresponding application scenarios are provided below.
[0137] The following section uses a 50G PON system as an example to introduce the downlink data processing flow in a 50G PON system. To address the error propagation problem, this embodiment introduces interleaving coding in the downlink. Interleaving is performed in units of FEC codewords, with data interleaving occurring between multiple FEC codewords. The format of the data frame after FEC coding is as follows: Figure 4 As shown, each data frame consists of n FEC codewords (CWs), for example, n = 4. The first codeword contains a synchronization sequence (Psync) used for frame delimitation. Without interleaving coding, the decoder searches for the Psync sequence in the received data stream, and the frame delimitation and FEC codeword delimitation are completed through the Psync. When interleaving coding is introduced, interleaving may break up the Psync originally used for delimitation, and the synchronization sequence is distributed in different positions in the data stream, meaning that there are no longer continuous Psync codes in the data stream.
[0138] For example, the encoding end can adopt the following block interleaving encoding method, the process of which is as follows: Figure 5 As shown, taking four-codeword interleaving as an example, the four codewords after FEC encoding are treated as a whole. The data transmitted in the line layer is no longer transmitted in the order of the FEC-encoded data, but rather the data from these codewords is interleaved. For example... Figure 6 As shown, Figure 6 The encoding is performed using an interleaving depth of 4 codewords. Figure 6 The box shows the data after interleaving. Each gray area represents a portion of the Psync that has been scattered due to interleaving, depending on the granularity of the interleaving coding. First, k bits of codeword 1 (k can be 1) are sent, then k bits of codeword 2 are sent, followed by codeword 3, codeword 4, and then the second k bits of codeword 1 are sent, and so on, until all four codewords have been sent. Then, 5 to 8 codewords are processed in the same way until the entire frame has been sent.
[0139] After interleaving coding at the encoding end, the synchronization sequence used for delimitation will be distributed throughout the data stream. The continuous synchronization sequence used for frame delimitation will be discretely distributed throughout the data stream due to the introduction of interleaving coding, such as... Figure 6 As shown, the decoding end can no longer use a continuous synchronization sequence to complete the delimitation.
[0140] To define the boundaries of the synchronization sequence in the data stream, in this embodiment, the decoding end can use interpolation to extract values over a wider range, and achieve matching between the obtained first data information and the preset synchronization sequence. The specific implementation process is as follows: Figure 7 As shown, in the downlink data stream, the value window is N multiplied by P, where P is the length of the synchronization sequence and N is the number of codewords in the interleaving code. For example, P is 64 and N is 4. Within the value window, one bit is taken from every N bits at a fixed interval, for a total of P bits. The value interval depends on the interleaving code depth. If the interleaving code depth is 4 codewords, the fixed interval can be equal to 4 bits, meaning one bit of data is taken from the data stream every 4 bits, for a total of P bits. The phase difference between these P bits of data and the preset synchronization sequence is obtained. This involves comparing and matching the P bits of data with the preset synchronization sequence. If the number of different bits is less than m, they are considered a match; otherwise, they are considered a mismatch. Here, m can be 2, 3, or 4, etc.
[0141] When the retrieved P bits of data do not match the preset synchronization sequence, such as Figure 7 As shown, the value window is shifted one bit backward, and the previous matching process is repeated until a matching synchronization sequence is found in the downlink data stream. Once the decoder finds a matching synchronization sequence in the downlink data stream, the first bit of the entire value window is used as the starting boundary of the data frame and codewords. Deinterleaving is performed based on this boundary to recover the continuous FEC codewords. The FEC codewords are then decoded. If the FEC codeword decoding is successful, the decoder can consider the delimitation and synchronization of the downlink data stream complete. If several consecutive FEC codewords fail to decode, the synchronization process above may be due to a coincidental occurrence of a synchronization sequence pattern in the downlink data stream, leading to an incorrect match. The decoder still needs to retrieve data from the data stream using a value window of N multiplied by P and use a sliding window for matching verification. The sliding method can be sliding towards the direction of the newly received data stream until the correct downlink frame delimitation and synchronization are completed.
[0142] As can be seen from the foregoing examples, the embodiments of this application provide the downlink data processing flow of the aforementioned high-speed PON system, realize downlink synchronization delimitation of the high-speed PON system, solve the associated bit error or burst bit error caused by the digital equalizer in the PON system by introducing an interleaving scheme, and realize downlink data matching in the case of interleaving by adopting a value window and interpolation value matching method.
[0143] To ensure a continuous synchronization sequence, this embodiment still uses the same interleaving method as the previous embodiments. However, at the beginning of each frame, a slightly different interleaving method is used compared to the other parts, such as... Figure 8As shown, synchronization information does not participate in interleaving coding. During interleaving, the synchronization sequence is retained as a whole in the transmitted data stream. When the decoding end receives data, it still uses the complete synchronization sequence for matching. After matching, frame delimitation is completed, and the frame boundary part adopts a different interleaving method than other parts of the frame.
[0144] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions and modules involved are not necessarily essential to this application.
[0145] To facilitate better implementation of the above-described solutions in the embodiments of this application, related apparatus for implementing the above-described solutions is also provided below.
[0146] For example, both the encoding end and the decoding end in the above embodiment can be provided by, for example... Figure 9 This is achieved using the device shown, which can specifically be a data processing device.
[0147] The device 1000 includes at least one processor 1001, a communication bus 1002, a memory 1003, and at least one communication interface 1004. The device 1000 may be a general-purpose computer or server, or a special-purpose computer or server.
[0148] The processor 1001 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 invention.
[0149] The communication bus 1002 may include a path for transmitting information between the aforementioned components.
[0150] The communication interface 1004 can be any transceiver, IP port, or bus interface, used to communicate with internal or external devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area network (WLAN), etc.
[0151] The memory 1003 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital versatile optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory may exist independently and be connected to the processor via a bus. The memory may also be integrated with the processor.
[0152] The memory 1003 stores the application code that executes the present invention, and its execution is controlled by the processor 1001. The processor 1001 executes the application code stored in the memory 1003, thereby realizing the functions of the encoding end and the decoding end in the embodiments of the application.
[0153] In a specific implementation, as one example, the processor 1001 may include one or more CPUs, for example... Figure 9 CPU0 and CPU1 in the CPU.
[0154] In a specific implementation, as one embodiment, the device 1000 may include multiple processors, for example... Figure 9 Processors 1001 and 1008 are mentioned. Each of these processors can be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. A processor here can refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).
[0155] In a specific implementation, as one embodiment, device 1000 may further include an output device 1005 and an input device 1006. The output device 1005 communicates with the processor 1001 and can display information in various ways. For example, the output device 1005 may be a liquid crystal display (LCD), a light-emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device 1006 communicates with the processor 1001 and can accept user input in various ways. For example, the input device 1006 may be a mouse, keyboard, touchscreen device, or sensing device, etc.
[0156] when Figure 9 When the device shown is a chip, the function / implementation process of the communication interface 1004 can also be implemented through pins or circuits, etc. The memory is a storage unit inside the chip, such as a register or cache, etc. The storage unit can also be a storage unit located outside the chip.
[0157] It should be noted that the information interaction and execution process between the modules / units of the above-mentioned device are based on the same concept as the method embodiments of this application, and the resulting technical effects are the same as those of the method embodiments of this application. For details, please refer to the description in the method embodiments shown above in this application, and will not be repeated here.
[0158] This application also provides a computer storage medium storing a program that performs some or all of the steps described in the above method embodiments.
[0159] It should also be noted that the device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. In addition, in the device embodiment drawings provided in this application, the connection relationship between modules indicates that they have a communication connection, which can be implemented as one or more communication buses or signal lines.
[0160] Through the above description of the embodiments, those skilled in the art can clearly understand that this application can be implemented by means of software plus necessary general-purpose hardware, or it can be implemented by special-purpose hardware including application-specific integrated circuits, special-purpose CPUs, special-purpose memory, special-purpose components, etc. Generally, any function performed by a computer program can be easily implemented by corresponding hardware, and the specific hardware structure used to implement the same function can also be diverse, such as analog circuits, digital circuits, or special-purpose circuits. However, for this application, software program implementation is more often the preferred implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a readable storage medium, such as a computer floppy disk, USB flash drive, mobile hard disk, ROM, RAM, magnetic disk, or optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments of this application.
[0161] In the above embodiments, the implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, in the form of a computer program product.
[0162] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can store or a data storage device such as a server or data center that integrates one or more available media. The available medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).
Claims
1. A method of data processing in a passive optical network (PON) system, the method comprising: The PON system is a 50G PON system, and the method comprises: receiving a data frame sent by an encoding end, wherein the data frame sent by the encoding end is obtained based on interleaving encoding of a plurality of forward error correction (FEC) code words, an interleaving depth of the interleaving encoding is 4 code words, and an interleaving granularity is 1 bit; a first FEC code word in the plurality of FEC code words comprises a synchronization sequence, and a length of the synchronization sequence is 64 bits; finding a matched synchronization sequence in the received data frame to find a boundary of the data frame.
2. The method of claim 1, wherein, The synchronization sequence is distributed in the data frame sent by the encoding end according to a first arrangement interval.
3. The method of claim 2, wherein, The first arrangement interval is 4 bits.
4. The method according to any one of claims 1 to 3, characterized in that, The method further comprises: performing forward error correction (FEC) decoding on the received data frame.
5. The method according to any one of claims 1 to 3, characterized in that, The method further comprises: using a scrambling code to descramble the received data frame.
6. A data processing method in a passive optical network (PON) system, the method comprising: The PON system is a 50G PON system, and the method comprises: performing FEC encoding on a data block to obtain a plurality of forward error correction (FEC) code words, wherein a first FEC code word in the plurality of FEC code words comprises a synchronization sequence, and a length of the synchronization sequence is 64 bits; performing interleaving encoding on the plurality of FEC code words to obtain a data frame to be sent, wherein an interleaving depth of the interleaving encoding is 4 code words, and an interleaving granularity is 1 bit; sending the data frame.
7. The method of claim 6, wherein, The synchronization sequence is distributed in the data frame according to a first arrangement interval.
8. The method of claim 6, wherein, Before the data frame is sent, the method further comprises: using a scrambling code to scramble the plurality of FEC code words.
9. The method according to any one of claims 6-8, characterized in that, The plurality of FEC code words comprises 4 FEC code words, and the data stream to be sent comprises a plurality of interleaving blocks, each interleaving block corresponds to 4 FEC code words, and the 4 FEC code words are interleaving encoded, comprising: put the bit 1,..., S in the first FEC codeword into the bit position 1, D+1,..., D×S of the corresponding interleaving block in the data stream to be transmitted D respectively D D+1; put the bit 1,..., S in the second FEC codeword into the bit position 2, D+2,..., D×S of the corresponding interleaving block in the data stream to be transmitted D respectively D D+2; put the bit 1,... S in the third FEC codeword into the bit position 3, D+3,..., D x S in the corresponding interleaving block in the data stream to be transmitted D respectively D D+3; the bits 1,..,S in the fourth FEC codeword are placed in the bit positions 4, D+4,..,D×S of the corresponding interleaving block in the data stream to be transmitted D the bits 1,..,S in the fourth FEC codeword are placed in the bit positions 4, D+4,..,D×S of the corresponding interleaving block in the data stream to be transmitted D D+4; wherein, D is 4, S D is an integer greater than 1.
10. A data processing device in a passive optical network (PON) system, characterized in that, The PON system is a 50G PON system, and the device comprises a receiving module and a processing module, The receiving module is configured to receive a data frame sent by an encoding end, wherein the data frame sent by the encoding end is obtained based on interleaving encoding of a plurality of forward error correction (FEC) code words, an interleaving depth of the interleaving encoding is 4 code words, and an interleaving granularity is 1 bit; a first FEC code word in the plurality of FEC code words comprises a synchronization sequence, and a length of the synchronization sequence is 64 bits; The processing module is configured to find a matched synchronization sequence in the received data frame to find a boundary of the data frame.
11. The apparatus of claim 10, wherein, The synchronization sequence is distributed in the received data frame according to a first arrangement interval.
12. The apparatus of claim 11, wherein, The first arrangement interval is 4 bits.
13. The apparatus of any one of claims 10 to 12, wherein, The processing module is further configured to perform forward error correction (FEC) decoding on the received data frame.
14. The apparatus of any one of claims 10 to 12, wherein, The processing module is further configured to use a scrambling code to descramble the received data frame.
15. A data processing device in a passive optical network (PON) system, characterized in that, The PON system is a 50G PON system, and the device comprises a processing module and a sending module, The processing module is configured to perform FEC encoding on the data block to obtain a plurality of forward error correction (FEC) codewords, wherein a first FEC codeword in the plurality of FEC codewords comprises a synchronization sequence with a length of 64 bits; and perform interleaving encoding on the plurality of FEC codewords to obtain a data frame to be sent, wherein an interleaving depth of the interleaving encoding is 4 codewords, and an interleaving granularity is 1 bit. The sending module is configured to send the data frame.
16. The apparatus of claim 15, wherein, The synchronization sequence is distributed in the data frame according to a first arrangement interval.
17. The apparatus of claim 15, wherein, The processing module is further configured to: scramble the plurality of FEC codewords using a scrambling code.
18. The apparatus of any one of claims 15-17, wherein, The plurality of FEC codewords comprises 4 FEC codewords, and the data stream to be sent comprises a plurality of interleaving blocks, each interleaving block corresponding to 4 FEC codewords, and the processing module is further configured to: put the bit 1,..., S in the first FEC codeword into the bit position 1, D+1,..., D×S of the corresponding interleaving block in the data stream to be transmitted D respectively D D+1; put the bit 1,..., S in the second FEC codeword into the bit position 2, D+2,..., D x S in the corresponding interleaving block in the data stream to be transmitted D respectively D D+2; put the bit 1,... S in the third FEC codeword into the bit position 3, D+3,..., D x S in the corresponding interleaving block in the data stream to be transmitted D respectively D D+3; the bits 1,..,S in the fourth FEC codeword are placed in the bit positions 4, D+4,..,D×S of the corresponding interleaving block in the data stream to be transmitted D the bits 1,..,S in the fourth FEC codeword are placed in the bit positions 4, D+4,..,D×S of the corresponding interleaving block in the data stream to be transmitted D D+4; wherein, D is 4, S D is an integer greater than 1.
19. A chip, characterized by The chip is configured to perform the data processing method according to any one of claims 1-9.
Citation Information
Patent Citations
Data weaving method, data weaver
CN101340259A