Decoding methods, decoders and devices
By calculating the Euclidean distance of the analog signal to determine the surviving path of the convolutional coding register, the analog signal is directly decoded, which solves the decoding loss problem caused by quantization and improves decoding accuracy and efficiency.
Patent Information
- Application Number
- CN202211242902.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-11
- Publication Date
- 2025-12-02
- Estimated Expiration
- 2042-10-11
AI Technical Summary
In existing convolutional decoding methods, there is a decoding loss problem caused by analog signal quantization during hard-decision and soft-decision decoding processes.
By calculating the Euclidean distance of the analog signal, the surviving path of the convolutional coding register is determined, and the analog signal is directly decoded, avoiding the quantization process.
It effectively avoids decoding loss caused by analog signal quantization, and improves decoding accuracy and efficiency.
Smart Images

Figure CN115567063B_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of data decoding technology, and in particular relates to a decoding method, decoder and device. Background Technology
[0002] Convolutional decoding is the process of decoding the convolutional code obtained from convolutional encoding. Viterbi decoding is one type of convolutional decoding. Viterbi decoding uses both hard-decision and soft-decision decision methods.
[0003] In hard-decision decoding, the demodulator determines the received analog signal as either 0 or 1 (i.e., quantizes it to 0 or 1) based on a decision threshold and then outputs the result to the decoder for decoding. In contrast, in soft-decision decoding, the demodulator outputs the multi-level quantized result to the decoder for decoding. Quantizing the analog signal introduces decoding losses. Summary of the Invention
[0004] This application provides a decoding method, decoder, and device that can solve the problem of decoding loss.
[0005] In a first aspect, embodiments of this application provide a decoding method, including:
[0006] Obtain the sequence to be decoded, where the sequence to be decoded is a sequence of analog signals of length N+L, where N and L are positive integers, and L is the backtracking depth;
[0007] For the i-th analog signal, calculate the Euclidean distance between the i-th analog signal and the (i+L+1)-th analog signal and the branch metric from time i to time i+L+1, where i is a positive integer less than or equal to N, and the branch metric is in the form of an analog signal.
[0008] Based on the Euclidean distance, determine the survival path corresponding to entering state S at time T, where T is greater than or equal to i and less than or equal to i+L+1, and state S is any one of the states corresponding to the register used for convolutional coding;
[0009] Based on the surviving path, the i-th analog signal is decoded.
[0010] Secondly, embodiments of this application provide a decoder, including:
[0011] The acquisition module is used to acquire the sequence to be decoded, wherein the sequence to be decoded is a sequence of analog signals of length N+L, where N and L are positive integers and L is the backtracking depth;
[0012] The calculation module is used to calculate the Euclidean distance between the i-th analog signal and the branch metric from time i to time i+L+1 for the i-th analog signal, where i is a positive integer less than or equal to N, and the branch metric is in the form of an analog signal.
[0013] The first determining module is used to determine the survival path corresponding to entering state S at time T based on the Euclidean distance, where T is greater than or equal to i and less than or equal to i+L+1, and state S is any one of the states corresponding to the register used for convolutional coding.
[0014] The decoding module is used to decode the i-th bit of the analog signal based on the surviving path.
[0015] Thirdly, embodiments of this application provide an electronic device, which includes: a processor and a memory storing computer program instructions; the processor implements the decoding method of the first aspect when executing the computer program instructions.
[0016] Fourthly, embodiments of this application provide a computer-readable storage medium storing computer program instructions, which, when executed by a processor, implement the decoding method of the first aspect.
[0017] Fifthly, embodiments of this application provide a computer program product in which instructions, when executed by a processor of an electronic device, cause the electronic device to perform the decoding method as described in the first aspect.
[0018] In this embodiment, a sequence of analog signals of length N+L to be decoded is obtained. For the i-th analog signal, the Euclidean distances between the i-th to (i+L+1)-th analog signals and the branch metrics from time i to time i+L+1 are calculated. Based on the Euclidean distances, the surviving path corresponding to the state S of the register used for convolutional coding at time T is determined. The i-th analog signal is then decoded based on this surviving path. This method allows decoding of the sequence of analog signals without quantization, avoiding the decoding loss caused by quantizing the analog signal. Attached Figure Description
[0019] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments of this application will be briefly introduced below. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0020] Figure 1 This is a flowchart illustrating the decoding method provided in an embodiment of this application;
[0021] Figure 2This is a schematic diagram of the convolutional code mesh diagram provided in the embodiments of this application;
[0022] Figure 3 This is a schematic diagram of the survival path provided in the embodiments of this application;
[0023] Figure 4 This is a schematic diagram of the decoder provided in the embodiments of this application;
[0024] Figure 5 This is a schematic diagram of the structure of the electronic device provided in the embodiments of this application. Detailed Implementation
[0025] The features and exemplary embodiments of various aspects of this application will be described in detail below. To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are only intended to explain this application and not to limit it. For those skilled in the art, this application can be implemented without some of these specific details. The following description of the embodiments is merely to provide a better understanding of this application by illustrating examples.
[0026] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising..." does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes said element.
[0027] The decoding method, decoder, and device provided in this application will be described in detail below with reference to the accompanying drawings and through specific embodiments and application scenarios.
[0028] Figure 1 This is a flowchart illustrating the decoding method provided in an embodiment of this application. Figure 1 As shown, decoding methods may include:
[0029] S101: Obtain the sequence to be decoded, where the sequence to be decoded is a sequence of analog signals of length N+L, where N and L are positive integers, and L is the backtracking depth;
[0030] S102: For the i-th analog signal, calculate the Euclidean distance between the i-th analog signal and the (i+L+1)-th analog signal and the branch metric from time i to time i+L+1, where i is a positive integer less than or equal to N, and the branch metric is in the form of an analog signal.
[0031] S103: Based on the Euclidean distance, determine the survival path corresponding to state S at time T, where T is greater than or equal to i and less than or equal to i+L+1, and state S is any one of the states corresponding to the register used for convolutional coding;
[0032] S104: Decode the i-th analog signal according to the surviving path.
[0033] The specific implementation methods of each of the above steps will be described in detail below.
[0034] In this embodiment, a sequence of analog signals of length N+L to be decoded is obtained. For the i-th analog signal, the Euclidean distances between the i-th to (i+L+1)-th analog signals and the branch metrics from time i to time i+L+1 are calculated. Based on the Euclidean distances, the surviving path corresponding to the state S of the register used for convolutional coding at time T is determined. The i-th analog signal is then decoded based on this surviving path. This method allows decoding of the sequence of analog signals without quantization, avoiding the decoding loss caused by quantizing the analog signal.
[0035] In some possible implementations of the embodiments of this application, S101 may include: receiving a first sequence in the form of an analog signal of length M, where M is a positive integer; when the encoding code rate is not 1 / R, padding the first sequence with zeros according to the puncturing pattern during encoding to obtain a second sequence in the form of an analog signal of length N, and adding L bits of 0 sequence after the second sequence to obtain a sequence to be decoded, where R is a positive integer; when the encoding code rate is 1 / R, adding L bits of 0 sequence after the first sequence to obtain a sequence to be decoded.
[0036] It is understandable that, with an encoding code rate of 1 / R, M equals N.
[0037] For example, assuming the backtracking depth L is 16, the first sequence obtained as an analog signal of length 3 is: 1.6094+0.9103i, -1.3060+1.4443i, -0.8523+0.5669i. The encoding code rate is 2 / 3, and the puncturing pattern is 1110, where puncturing pattern 1110 means that in the encoded output, every consecutive 4-bit binary sequence retains the first 3 bits and deletes the last bit.
[0038] The first sequence is padded with zeros to obtain a second sequence of length 4 in the form of an analog signal: 1.6094+0.9103i, -1.3060+0.0000i, 1.4443i-0.8523i, 0.5669+0.0000i. This second sequence is then padded with 16 bits of zeros to obtain a 20-bit sequence to be decoded: 1.6094+0.9103i, -1.3060+0.0000i, 1.4443i-0.8523i, 0.5669+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000 +0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0 000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i.
[0039] For another example, suppose the backtracking depth L is 16; the first sequence obtained in the form of an analog signal of length 3 is: 1.6094+0.9103i, -1.3060+1.4443i, -0.8523+0.5669i. The encoding code rate is 1 / 3.
[0040] Then, appending a 16-bit sequence of zeros to the first sequence yields a 19-bit sequence to be decoded: 1.6094+0.9103i, -1.3060+1.4443i, -0.8523+0.5669i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000 i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000 +0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i.
[0041] In some possible implementations of the embodiments of this application, before S101, the decoding method provided in the embodiments of this application may further include: determining the state of the register at the next moment and the branch metric corresponding to the state transition path in digital form according to the number of states of the register and a preset generator polynomial; and mapping the branch metric in digital form to the branch metric in analog signal form.
[0042] For example, assuming the number of registers is 2, then the number of register states is 2.2 =4, with the four register states being S0, S1, S2, and S3 respectively. The default generator polynomial is (101, 111).
[0043] Based on the number of register states and the preset generator polynomial, the digital branch metrics of the register's next state and the state transition path are shown in Tables 1 and 2, respectively.
[0044] Table 1
[0045]
[0046] Table 2
[0047] State transition path Branching metrics S0 to S0 state 0 S0 to S2 state 3 S1 to S0 state 3 S1 to S2 state 0 S2 to S1 state 1 S2 to S3 state 2 S3 to S1 state 2 S3 to S3 state 1
[0048] The branch measures 0, 1, 2, and 3 are mapped to 1+1i, 1-1i, -1+1i, and -1-1i, respectively.
[0049] The convolutional code mesh diagram corresponding to the branch metric is as follows: Figure 2 As shown, the state transition after time t=3 is the same as the state transition from time t=2 to t=3.
[0050] In some possible implementations of the embodiments of this application, in S102, the Euclidean distance between the analog signal and the branch metric can be calculated using the following formula (1).
[0051]
[0052] In formula (1), d represents the Euclidean distance between the analog signal and the branch metric, i represents the input analog signal, symbol represents the branch metric, real(X) function represents taking the real part of X, and imag(X) function represents taking the imaginary part of X.
[0053] For the above-mentioned decoding sequence of length 20: 1.6094+0.9103i, -1.3060+0.0000i, 1.4443i-0.8523i, 0.5669+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000 i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000 +0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i, 0.0000+0.0000i.
[0054] For the first analog signal “1.6094+0.9103i”, calculate its Euclidean distance with the branch metrics “1+1i” and “-1-1i” respectively. The Euclidean distances of the first analog signal “1.6094+0.9103i” with the branch metrics “1+1i” and “-1-1i” are “0.6160” and “3.2339” respectively.
[0055] For the second analog signal "-1.3060+0.0000i", calculate its Euclidean distance with the branch metrics "1+1i", "-1-1i", "1-1i" and "-1+1i" respectively. The Euclidean distances of the second analog signal "-1.3060+0.0000i" with the branch metrics "1+1i", "-1-1i", "1-1i" and "-1+1i" are "2.5135", "1.0458", "2.5135" and "1.0458" respectively.
[0056] For the third analog signal "1.4443i-0.8523", calculate its Euclidean distance with the branch metrics "1+1i", "1-1i", "-1+1i" and "-1-1i" respectively. The Euclidean distances of the third analog signal "1.4443i-0.8523" with the branch metrics "1+1i", "1-1i", "-1+1i" and "-1-1i" are "1.9048", "0.4682", "3.0669" and "2.4488" respectively.
[0057] For the fourth analog signal "0.5669+0.0000i", calculate its Euclidean distance with the branch metrics "1+1i", "1-1i", "-1+1i" and "-1-1i" respectively. The Euclidean distances of the fourth analog signal "0.5669+0.0000i" with the branch metrics "1+1i", "1-1i", "-1+1i" and "-1-1i" are "1.0898", "1.0898", "1.8588" and "1.8588" respectively.
[0058] For the 5th to 20th analog signal “0.0000+0.0000i”, calculate its Euclidean distance with the branch metrics “1+1i”, “1-1i”, “-1+1i”, and “-1-1i” respectively. The Euclidean distances of the 5th to 20th analog signal “0.0000+0.0000i” with the branch metrics “1+1i”, “1-1i”, “-1+1i”, and “-1-1i” are “1.4142”, “1.4142”, and “1.4142” respectively.
[0059] The Euclidean distance between the analog signal and the branch metric at each time point is shown in Table 3.
[0060] Table 3
[0061] t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8 t=9 t=10 1+1i 0.6160 2.5135 1.9048 1.0898 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1-1i none 2.5135 0.4682 1.0898 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 -1+1i none 1.0458 3.0669 1.8588 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 -1-1i 3.2339 1.0458 2.4488 1.8588 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 t=11 t=12 t=13 t=14 t=15 t=16 t=17 t=18 t=19 t=20 1+1i 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1-1i 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 -1+1i 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 -1-1i 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142 1.4142
[0062] In some possible implementations of the embodiments of this application, S103 may include: determining the path with the smallest cumulative offset distance among the paths from time T to state S as the surviving path corresponding to time T to state S, wherein the cumulative offset distance is the sum of the Euclidean distances corresponding to the paths from time T to state S.
[0063] At time t=1, there is only one path to enter state S0, which is S0->S0, with a cumulative offset distance of 0.6160. The surviving path to enter state S0 at time t=1 is S0->S0. There is only one path to enter state S2, which is S0->S2, with a cumulative offset distance of 3.2339. The surviving path to enter state S2 at time t=1 is S0->S2. There are no paths to enter states S1 and S3.
[0064] At time t=2, there is only one path to enter state S0: S0->S0->S0, with a cumulative offset distance of 0.6160 + 2.5135 = 3.1295. The surviving path to enter state S0 at time t=2 is S0->S0->S0. Similarly, there is only one path to enter state S1: S0->S2->S1, with a cumulative offset distance of 3.2339 + 2.5135 = 5.7474. The surviving path to enter state S1 at time t=2 is S0->S2->S1. >S1; There is only one path to enter state S2, which is S0—>S0—>S2, with a cumulative offset distance of 0.6160+1.0458=1.6618. The surviving path to enter state S2 at time t=2 is S0—>S0—>S2; There is only one path to enter state S3, which is S0—>S2—>S3, with a cumulative offset distance of 3.2339+1.0458=4.2797. The surviving path to enter state S3 at time t=2 is S0—>S2—>S3.
[0065] At time t=3, there are two paths to enter state S0: S0->S0->S0->S0 and S0->S2->S1->S0. The cumulative offset distance for the path "S0->S0->S0->S0" is 3.1295 + 1.9048 = 5.0343, and the cumulative offset distance for the path "S0->S2->S1->S0" is 5.7474 + 2.4488 = 8.1961. Therefore, the surviving path to enter state S0 at time t=3 is S0->S0->S1. There are two paths to enter state S1: S0 → S0 → S2 → S1 and S0 → S2 → S3 → S1. The cumulative offset distance for the path "S0 → S0 → S2 → S1" is 1.6618 + 0.4682 = 2.1300, and the cumulative offset distance for the path "S0 → S2 → S3 → S1" is 4.2797 + 3.0669 = 7.3466. Therefore, the surviving path to enter state S1 at time t = 3 is S0 → S0 → S2 → S1. >S1; There are two paths to enter state S2: S0—>S0—>S0—>S2 and S0—>S2—>S1—>S2. The cumulative offset distance for the path “S0—>S0—>S0—>S2” is 3.1295+2.4488=5.0343, and the cumulative offset distance for the path “S0—>S2—>S1—>S2” is 5.7474+1.9048=7.6522. Therefore, the surviving path to enter state S2 at time t=3 is S0—>S0—>S0—>S 2. There are two paths to enter state S3: S0—>S0—>S2—>S3 and S0—>S2—>S3—>S3. The cumulative offset distance for the path “S0—>S0—>S2—>S3” is 1.6618+3.0669=4.7286, and the cumulative offset distance for the path “S0—>S2—>S3—>S3” is 4.2797+0.4682=4.7479. Therefore, the surviving path to enter state S3 at time t=3 is S0—>S0—>S2—>S3.
[0066] Similarly, the survival paths to states S0 to S3 from time t=4 to time t=20 can be calculated.
[0067] In some possible implementations of the embodiments of this application, when the cumulative offset distances of the two paths entering state S at time T are equal, either path can be used as the surviving path for entering state S at time T.
[0068] Survival path diagram as follows Figure 3 As shown.
[0069] In some possible implementations of the embodiments of this application, S104 may include: selecting the survivor path with the smallest cumulative offset distance from the num survivor paths corresponding to time i+L, where num is the number of states corresponding to the register; and decoding the i-th analog signal according to the survivor path with the smallest cumulative offset distance.
[0070] In some possible implementations of the embodiments of this application, when decoding the first analog signal "1.6094+0.9103i", path backtracking starts from time t=1 + backtracking depth L=1+16=17; when decoding the second analog signal "-1.3060+0.0000i", path backtracking starts from time t=18; when decoding the third analog signal "1.4443i-0.8523i", path backtracking starts from time t=19; and when decoding the fourth analog signal "0.5669+0.0000i", path backtracking starts from time t=20.
[0071] When performing path backtracking at a certain moment, the surviving path with the smallest cumulative offset distance among the four surviving paths corresponding to that moment is selected, and path backtracking is performed on that surviving path to decode the analog signal at bit -L at that moment.
[0072] In some possible implementations of the embodiments of this application, decoding the i-th analog signal based on the surviving path with the smallest cumulative offset distance may include: finding the starting point of the surviving path with the smallest cumulative offset distance; and decoding the i-th analog signal based on the state of the register corresponding to the starting point.
[0073] In some possible implementations of this application, finding the starting point of the surviving path with the minimum cumulative offset distance includes: finding the row number j where the minimum cumulative offset distance is located from the (L+1)th column of the first matrix used to store the cumulative offset distance; starting from the (L+1)th column and the jth row of the second matrix used to store path values, recursively searching for the value of the kth row of the second column, wherein the row number corresponding to the mth column in the second matrix is obtained by recursively searching for the value in the nth row of the (m+1)th column in the second matrix; and taking the value of the kth row of the second column as the starting point of the surviving path with the minimum cumulative offset distance.
[0074] The first matrix used to store the cumulative offset distance and the second matrix used to store the path values both consist of 4 rows and L+1 columns. The first matrix storing the cumulative offset distance can be called the cumulative offset distance matrix (u), and the second matrix used to store the path values can be called the path change matrix (survive). The four rows of the cumulative offset distance matrix and the path change matrix correspond to the four register states.
[0075] For example, let's take the decoding of the first analog signal "1.6094+0.9103i" as an example. At time t=17, the cumulative offset distance matrix u is shown in Table 4, and the path change matrix survive is shown in Table 5.
[0076] Table 4
[0077]
[0078] Table 5
[0079] 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 null 3 3 4 3 4 3 3 3 3 3 3 3 3 3 3 3 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 null 3 3 4 3 4 3 3 3 3 3 3 3 3 3 3 3
[0080] In Table 5, 1 indicates that the path starts in state S0, 2 indicates that the path starts in state S1, 3 indicates that the path starts in state S2, and 4 indicates that the path starts in state S3.
[0081] At time t=17, find the minimum value in the 17th column of the cumulative offset distance matrix u shown in Table 4 above. Since the values in the 17th column of the cumulative offset distance matrix u shown in Table 4 are equal, you can select any row number containing a value. For example, select row 1. Find the value in the 1st row and 17th column of the path change matrix survival shown in Table 5: 1. Then find the value in the 1st row and 16th column of the path change matrix survival shown in Table 5: 1. Then find the value in the 1st row and 14th column of the path change matrix survival shown in Table 5: 1, ..., and so on. Find the value 2 in the 1st row and 6th column of the path change matrix survival shown in Table 5 above. Then find the value 3 in the 2nd row and 5th column of the path change matrix survival shown in Table 5 above. Then find the value 2 in the 3rd row and 4th column of the path change matrix survival shown in Table 5 above. Then find the value 3 in the 2nd row and 3rd column of the path change matrix survival shown in Table 5 above. Then find the value 1 in the 3rd row and 2nd column of the path change matrix survival shown in Table 5 above. Take "1" as the starting point of the surviving path with the smallest cumulative offset distance for decoding the first analog signal "1.6094+0.9103i".
[0082] As another example, consider decoding the second analog signal "-1.3060+0.0000i". At time t=18, the cumulative offset distance matrix u is shown in Table 6, and the path change matrix survive is shown in Table 7.
[0083] Table 6
[0084]
[0085] Table 7
[0086] 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 3 3 4 3 4 3 3 3 3 3 3 3 3 3 3 3 3 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 3 3 4 3 4 3 3 3 3 3 3 3 3 3 3 3 3
[0087] At time t=18, the minimum value in column 17 of the cumulative offset distance matrix u shown in Table 6 is obtained. Since all values in column 17 of the cumulative offset distance matrix u shown in Table 6 are equal, any row number containing a given value can be selected. For example, selecting row 1, the value in column 17 of row 1 is found in the path change matrix survival shown in Table 7: 1. Then, the value in column 16 of row 1 is found in the path change matrix survival shown in Table 7: 1. Then, the value in column 15 of row 1 is found in the path change matrix survival shown in Table 7: 1, and so on. Find the value 2 in the 1st row and 5th column of the path change matrix survival shown in Table 7 above. Then find the value 3 in the 2nd row and 4th column of the path change matrix survival shown in Table 7 above. Then find the value 2 in the 3rd row and 3rd column of the path change matrix survival shown in Table 7 above. Then find the value 3 in the 2nd row and 2nd column of the path change matrix survival shown in Table 7 above. Take "1" as the starting point of the surviving path with the smallest cumulative offset distance for decoding the second analog signal "-1.3060+0.0000i".
[0088] As another example, consider decoding the third analog signal "1.4443i-0.8523i". At time t=19, the cumulative offset distance matrix u is shown in Table 8, and the path change matrix survive is shown in Table 9.
[0089] Table 8
[0090]
[0091] Table 9
[0092] 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 3 4 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 3 4 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3
[0093] At time t=19, the minimum value in column 17 of the cumulative offset distance matrix u shown in Table 8 is selected. Since the values in column 17 of the cumulative offset distance matrix u shown in Table 8 are equal, any row number containing a value can be selected. For example, if row 1 is selected, the value in column 17 of row 1 is found in the path change matrix survival shown in Table 9: 1. Then, the value in column 16 of row 1 is found in the path change matrix survival shown in Table 9: 1. Then, the value in column 15 of row 1 is found in the path change matrix survival shown in Table 9: 1. ... Then, the value in column 4 of row 1 is found in the path change matrix survival shown in Table 9: 2. Then, the value in column 3 of row 2 is found in the path change matrix survival shown in Table 9: 3. Then, the value in column 2 of row 3 is found in the path change matrix survival shown in Table 9: 2. "1" is taken as the starting point of the surviving path with the minimum cumulative offset distance for decoding the third analog signal "1.4443i-0.8523i".
[0094] As another example, consider decoding the fourth analog signal "0.5669+0.0000i". At time t=20, the cumulative offset distance matrix u is shown in Table 10, and the path change matrix survive is shown in Table 11.
[0095] Table 10
[0096]
[0097] Table 11
[0098] 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3
[0099] At time t=20, the minimum value in column 17 of the cumulative offset distance matrix u shown in Table 10 is obtained. Since the values in column 17 of the cumulative offset distance matrix u shown in Table 10 are equal, any row number containing a value can be selected. For example, if row 1 is selected, the value in column 17 of row 1 is found in the path change matrix survival shown in Table 11: 1. Then, the value in column 16 of row 1 is found in the path change matrix survival shown in Table 11: 1. Then, the value in column 14 of row 1 is found in the path change matrix survival shown in Table 11: 1. ... Then, the value in column 3 of row 1 is found in the path change matrix survival shown in Table 11: 2. Then, the value in column 2 of row 3 is found in the path change matrix survival shown in Table 11: 3. "3" is taken as the starting point of the surviving path with the minimum cumulative offset distance for decoding the fourth analog signal "0.5669+0.0000i".
[0100] In some possible implementations of the embodiments of this application, the i-th analog signal is decoded according to the state of the register corresponding to the starting point, including: when the value of the second column k-th row is greater than or equal to 1 and less than or equal to num / 2, the i-th analog signal is decoded as 0; when the value of the second column k-th row is greater than num / 2 and less than or equal to num, the i-th analog signal is decoded as 1.
[0101] For example, the starting point of the surviving path with the smallest cumulative offset distance for decoding the first analog signal "1.6094+0.9103i" is "1", and "1.6094+0.9103i" is decoded as 0.
[0102] The starting point of the surviving path with the smallest cumulative offset distance used to decode the second analog signal "-1.3060+0.0000i" is "3", which decodes "-1.3060+0.0000i" as 1.
[0103] The starting point of the surviving path with the smallest cumulative offset distance used to decode the 3rd analog signal "1.4443i-0.8523i" is "2", which decodes "1.4443i-0.8523i" as 0.
[0104] The starting point value of the surviving path with the smallest cumulative offset distance used to decode the 4th analog signal "0.5669+0.0000i" is "3", which decodes "0.5669+0.0000i" as 1.
[0105] The final decoding result is 0101.
[0106] This application also provides a decoder, such as... Figure 4 As shown. Figure 4 This is a schematic diagram of the decoder provided in an embodiment of this application. The decoder 400 may include:
[0107] The acquisition module 401 is used to acquire the sequence to be decoded, wherein the sequence to be decoded is a sequence of analog signals of length N+L, where N and L are positive integers and L is the backtracking depth;
[0108] Calculation module 402 is used to calculate, for the i-th analog signal, the Euclidean distance between the i-th analog signal and the (i+L+1)-th analog signal and the branch metric from time i to time i+L+1, where i is a positive integer less than or equal to N, and the branch metric is in the form of an analog signal.
[0109] The first determining module 403 is used to determine the survival path corresponding to entering state S at time T based on the Euclidean distance, where T is greater than or equal to i and less than or equal to i+L+1, and state S is any one of the states corresponding to the register used for convolutional coding.
[0110] Decoding module 404 is used to decode the i-th bit analog signal based on the surviving path.
[0111] In this embodiment, a sequence of analog signals of length N+L to be decoded is obtained. For the i-th analog signal, the Euclidean distances between the i-th to (i+L+1)-th analog signals and the branch metrics from time i to time i+L+1 are calculated. Based on the Euclidean distances, the surviving path corresponding to the state S of the register used for convolutional coding at time T is determined. The i-th analog signal is then decoded based on this surviving path. This method allows decoding of the sequence of analog signals without quantization, avoiding the decoding loss caused by quantizing the analog signal.
[0112] In some possible implementations of the embodiments of this application, the determining module 403 may specifically be used for:
[0113] The path with the smallest cumulative offset distance among the paths from time T to state S is determined as the surviving path for entering state S at time T. The cumulative offset distance is the sum of the Euclidean distances corresponding to the paths from time T to state S.
[0114] In some possible implementations of embodiments of this application, the decoding module 404 includes:
[0115] The selection submodule is used to select the survival path with the smallest cumulative offset distance from the num survival paths corresponding to time i+L, where num is the number of states corresponding to the registers;
[0116] The decoding submodule is used to decode the i-th bit analog signal based on the surviving path with the smallest cumulative offset distance.
[0117] In some possible implementations of embodiments of this application, the decoding submodule includes:
[0118] The search unit is used to find the starting point of the surviving path with the smallest cumulative offset distance;
[0119] The decoding unit is used to decode the i-th bit analog signal according to the state of the register corresponding to the starting point.
[0120] In some possible implementations of the embodiments of this application, the search unit is specifically used for:
[0121] Find the row number j containing the minimum cumulative offset distance from the (L+1)th column of the first matrix used to store the cumulative offset distance;
[0122] Starting from the (L+1)th column and jth row of the second matrix used to store path values, recursively search forward column by column for the value in the kth row of the second column. The row number corresponding to the mth column in the second matrix is obtained by recursively searching for the value in the (m+1)th column and nth row of the second matrix.
[0123] The value in the second column and the kth row is taken as the starting point of the surviving path with the smallest cumulative offset distance.
[0124] In some possible implementations of the embodiments of this application, the decoding unit is specifically used for:
[0125] If the value in the second column, kth row is greater than or equal to 1 and less than or equal to num / 2, the i-th analog signal is decoded as 0;
[0126] If the value in the second column, k-th row is greater than num / 2 and less than or equal to num, the i-th analog signal is decoded as 1.
[0127] In some possible implementations of embodiments of this application, the acquisition module 401 includes:
[0128] The receiving submodule is used to receive a first sequence of analog signals of length M, where M is a positive integer;
[0129] The first zero-padding submodule is used to pad the first sequence with zeros according to the puncturing pattern during encoding when the encoding code rate is not 1 / R, to obtain a second sequence in the form of an analog signal of length N. The second sequence is then padded with L bits of 0 to obtain the sequence to be decoded, where R is a positive integer.
[0130] The second zero-padding submodule is used to pad the first sequence with L bits of zeros when the coding code rate is 1 / R, so as to obtain the sequence to be decoded.
[0131] In some possible implementations of the embodiments of this application, the decoder 400 further includes:
[0132] The second determining module is used to determine the state of the register at the next moment and the branch metric in digital form corresponding to the state transition path based on the number of states of the register and the preset generator polynomial.
[0133] The mapping module is used to map branch metrics in digital form to branch metrics in analog signal form.
[0134] Figure 5 This is a schematic diagram of the structure of the electronic device provided in the embodiments of this application.
[0135] The electronic device may include a processor 501 and a memory 502 storing computer program instructions.
[0136] Specifically, the processor 501 may include a central processing unit (CPU), an application specific integrated circuit (ASIC), or one or more integrated circuits that can be configured to implement the embodiments of this application.
[0137] Memory 502 may include mass storage for data or instructions. For example, and not limitingly, memory 502 may include a hard disk drive (HDD), floppy disk drive, flash memory, optical disk, magneto-optical disk, magnetic tape, or Universal Serial Bus (USB) drive, or a combination of two or more of these. Where suitable, memory 502 may include removable or non-removable (or fixed) media. Where suitable, memory 502 may be internal or external to an electronic device. In some specific embodiments, memory 502 is a non-volatile solid-state memory.
[0138] In some specific embodiments, the memory may include read-only memory (ROM), random access memory (RAM), disk storage media devices, optical storage media devices, flash memory devices, and electrical, optical, or other physical / tangible memory storage devices. Therefore, generally, memory includes one or more tangible (non-transitory) computer-readable storage media (e.g., memory devices) encoded with software including computer-executable instructions, and when the software is executed (e.g., by one or more processors), it is operable to perform the operations described with reference to the decoding method according to this application.
[0139] The processor 501 implements the decoding method provided in this application embodiment by reading and executing computer program instructions stored in the memory 502.
[0140] In one example, the electronic device may also include a communication interface 503 and a bus 510. Wherein, as... Figure 5 As shown, the processor 501, memory 502, and communication interface 503 are connected through bus 510 and complete communication with each other.
[0141] The communication interface 503 is mainly used to realize communication between various modules, devices, units and / or equipment in the embodiments of this application.
[0142] Bus 510 includes hardware, software, or both, that couples components of an electronic device together. For example, and not limitingly, the bus may include an Accelerated Graphics Port (AGP) or other graphics bus, an Extended Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hyper Transport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an Infinite Bandwidth Interconnect, a Low Pin Count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local Bus (VLB) bus, or other suitable buses, or a combination of two or more of these. Where appropriate, bus 510 may include one or more buses. Although specific buses are described and illustrated in the embodiments of this application, this application considers any suitable bus or interconnection.
[0143] The electronic device can execute the decoding method provided in the embodiments of this application, thereby achieving the corresponding technical effects of the decoding method provided in the embodiments of this application.
[0144] In addition, in conjunction with the decoding method in the above embodiments, this application also provides a computer-readable storage medium for implementation. This computer-readable storage medium stores computer program instructions; when these computer program instructions are executed by a processor, they implement the decoding method provided in this application. Examples of computer-readable storage media include non-transitory computer-readable media, such as ROM, RAM, magnetic disks, or optical disks.
[0145] This application provides a computer program product. When the instructions in the computer program product are executed by the processor of an electronic device, the electronic device executes the decoding method provided in this application and achieves the same technical effect. To avoid repetition, it will not be described again here.
[0146] It should be clarified that this application is not limited to the specific configurations and processes described above and shown in the figures. For the sake of brevity, detailed descriptions of known methods are omitted here. In the above embodiments, several specific steps are described and shown as examples. However, the method process of this application is not limited to the specific steps described and shown. Those skilled in the art can make various changes, modifications, and additions, or change the order of steps, after understanding the spirit of this application.
[0147] The functional blocks shown in the above-described block diagram can be implemented as hardware, software, firmware, or a combination thereof. When implemented in hardware, they can be, for example, electronic circuits, application-specific integrated circuits (ASICs), appropriate firmware, plug-ins, function cards, etc. When implemented in software, the elements of this application are programs or code segments used to perform the required tasks. Programs or code segments can be stored on a machine-readable medium or transmitted over a transmission medium or communication link via data signals carried on a carrier wave. "Machine-readable medium" can include any medium capable of storing or transmitting information. Examples of machine-readable media include electronic circuits, semiconductor memory devices, ROM, flash memory, erasable read-only memory (EROM), floppy disks, compact disc read-only memory (CD-ROM), optical disks, hard disks, fiber optic media, radio frequency (RF) links, etc. Code segments can be downloaded via computer networks such as the Internet, intranets, etc.
[0148] It should also be noted that the exemplary embodiments mentioned in this application describe methods or systems based on a series of steps or apparatus. However, this application is not limited to the order of the above steps; that is, the steps can be performed in the order mentioned in the embodiments, or in a different order, or several steps can be performed simultaneously.
[0149] The aspects of this disclosure have been described above with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block in the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that these instructions, executable via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions / actions specified in one or more blocks of the flowchart illustrations and / or block diagrams. Such a processor can be, but is not limited to, a general-purpose processor, a special-purpose processor, a special application processor, or a field-programmable logic circuit. It is also understood that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can also be implemented by special-purpose hardware performing the specified functions or actions, or can be implemented by a combination of special-purpose hardware and computer instructions.
[0150] The above description is merely a specific implementation of this application. Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, modules, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here. It should be understood that the protection scope of this application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and these modifications or substitutions should all be covered within the protection scope of this application.
Claims
1. A decoding method, characterized in that, The method includes: Obtain the sequence to be decoded, wherein the sequence to be decoded is a sequence of analog signals of length N+L, where N and L are positive integers and L is the backtracking depth; For the i-th analog signal, calculate the Euclidean distance between the i-th analog signal and the (i+L+1)-th analog signal and the branch metric from time i to time i+L+1, where i is a positive integer less than or equal to N, and the branch metric is in analog signal form. Based on the Euclidean distance, the surviving path corresponding to entering state S at time T is determined. Among the paths from time T to state S, the path with the smallest cumulative offset distance is determined as the surviving path from time T to state S. T is greater than or equal to i and less than or equal to i+L+1. State S is any one of the states corresponding to the register used for convolutional coding. The cumulative offset distance is the sum of the Euclidean distances corresponding to the paths from time T to state S. Based on the surviving path, the i-th analog signal is decoded.
2. The method according to claim 1, characterized in that, The decoding of the i-th analog signal based on the surviving path includes: From the num surviving paths corresponding to time i+L, select the surviving path with the smallest cumulative offset distance, where num is the number of states corresponding to the register; The i-th analog signal is decoded based on the surviving path with the smallest cumulative offset distance.
3. The method according to claim 2, characterized in that, The step of decoding the i-th analog signal based on the surviving path with the smallest cumulative offset distance includes: Find the starting point of the surviving path with the smallest cumulative offset distance; The i-th analog signal is decoded according to the state of the register corresponding to the starting point.
4. The method according to claim 3, characterized in that, Finding the starting point of the surviving path with the smallest cumulative offset distance includes: Find the row number j containing the minimum cumulative offset distance from the (L+1)th column of the first matrix used to store the cumulative offset distance; Starting from the (L+1)th column and jth row of the second matrix used to store path values, the value of the second column and kth row is searched forward column by column. The row number corresponding to the mth column in the second matrix is obtained by recursively searching for the value in the (m+1)th column and nth row of the second matrix. The value in the second column and the kth row is taken as the starting point of the surviving path with the smallest cumulative offset distance.
5. The method according to claim 4, characterized in that, The step of decoding the i-th analog signal according to the state of the register corresponding to the starting point includes: If the value in the second column, kth row is greater than or equal to 1 and less than or equal to num / 2, the i-th analog signal is decoded as 0; If the value in the second column, k-th row is greater than num / 2 and less than or equal to num, the i-th analog signal is decoded as 1.
6. The method according to claim 1, characterized in that, The process of obtaining the sequence to be decoded includes: Receive a first sequence of analog signals of length M, where M is a positive integer; When the encoding code rate is not 1 / R, the first sequence is padded with zeros according to the puncturing pattern during encoding to obtain a second sequence in the form of an analog signal of length N. The second sequence is then padded with L bits of 0 to obtain the sequence to be decoded, where R is a positive integer. When the encoding code rate is 1 / R, L bits of 0 are added after the first sequence to obtain the sequence to be decoded.
7. The method according to claim 1, characterized in that, Before obtaining the sequence to be decoded, the method further includes: Based on the number of states of the register and the preset generator polynomial, determine the next state of the register and the branch metric in digital form corresponding to the state transition path; The digital branch metric is mapped to the analog signal branch metric.
8. A decoder, characterized in that, The decoder includes: The acquisition module is used to acquire the sequence to be decoded, wherein the sequence to be decoded is a sequence of analog signals of length N+L, where N and L are positive integers and L is the backtracking depth; The calculation module is used to calculate, for the i-th analog signal, the Euclidean distance between the i-th analog signal and the (i+L+1)-th analog signal and the branch metric from time i to time i+L+1, respectively, where i is a positive integer less than or equal to N, and the branch metric is in the form of an analog signal. The first determining module is used to determine the surviving path corresponding to entering state S at time T based on the Euclidean distance, wherein the path with the smallest cumulative offset distance among the paths for entering state S at time T is determined as the surviving path corresponding to entering state S at time T, where T is greater than or equal to i and less than or equal to i+L+1, state S is any one of the states corresponding to the register used for convolutional coding, and the cumulative offset distance is the sum of the Euclidean distances corresponding to the paths for entering state S at time T; The decoding module is used to decode the i-th analog signal according to the surviving path.
9. An electronic device, characterized in that, The electronic device includes: a processor and a memory storing computer program instructions; The processor reads and executes the computer program instructions to implement the decoding method as described in any one of claims 1-7.
Citation Information
Patent Citations
Viterbi decoding method, equipment and storage medium
CN109462407A