Coding and decoding device and related method
Through the combination of spatial coupling matrix and transform square matrix, adding and subtraction operations are used to encode and decode sparse signals, solving the problem of hardware resource consumption and deployment difficulty in SSC coding, and achieving more efficient hardware implementation and performance promote.
Patent Information
- Application Number
- CN202310700199.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-13
- Publication Date
- 2024-12-13
AI Technical Summary
The Gaussian encoding matrix used in sparse superposition coding (SSC) coding involves multiple matrix multiplication, resulting in a large amount of hardware resource consumption and difficult deployment.
The spatial coupling matrix and transformed square matrix are used to encode and decode sparse signals, and matrix multiplication is realized through addition and subtraction operations to avoid the deployment of multipliers, and the interleaver is used to reduce data correlation and improve the efficiency of hardware implementation.
It reduces the overhead of hardware resources and the difficulty of coding/decoding hardware implementation, and improves the efficiency and performance of coding and decoding.
Smart Images

Figure CN119135191A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of signal processing, and in particular to an encoding and decoding device and related methods. Background Art
[0002] Sparse superposition code (SSC) is a coding method that uses sparse vectors. The encoding and decoding process of SSC is as follows: at the transmitting end, the encoding device converts the "01" bit information into a sparse signal, and obtains the encoded codeword by multiplying the Gaussian coding matrix with the sparse signal, and sends the codeword to the channel; at the receiving end, the decoding device obtains the channel observation value, and uses the approximate message passing algorithm based on the channel observation value to estimate the sparse signal, thereby obtaining the estimated bit information.
[0003] The Gaussian coding matrix used in SSC coding involves the multiplication of multiple matrices. The current hardware implementation of SSC coding consumes a lot of hardware resources and is difficult to deploy. Summary of the invention
[0004] The present application discloses a coding and decoding device and related methods, which can reduce the hardware deployment difficulty and hardware resource overhead of SSC coding and decoding.
[0005] In the first aspect, the present application provides a coding device, which includes: a generation module, which is used to generate a first sparse signal according to received bit information, the first sparse signal is a sparse signal corresponding to the wth non-zero element in the cth column of a spatial coupling matrix, c is a positive integer less than or equal to the number of columns of the spatial coupling matrix, w is a positive integer less than or equal to W, and W is the number of non-zero elements in each column of the spatial coupling matrix; a first interleaver, which is used to interleave the first sparse signal to obtain a second sparse signal; a matrix multiplication module, which is used to perform addition and subtraction operations on the second sparse signal using a first transformation matrix to obtain a first transformation result, the elements of the first transformation matrix include +1 and -1; a second interleaver, which is used to interleave the first transformation result to obtain a second transformation result; an output module, which is used to process the second transformation result corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result.
[0006] Here, the spatial coupling matrix is composed of "0" and non-zero elements "1", and the non-zero elements in the spatial coupling matrix are distributed diagonally. The size of the spatial coupling matrix is R×C, where the coupling width is W, that is, each column of the spatial coupling matrix contains W consecutive non-zero elements.
[0007] Exemplarily, in the spatial coupling matrix, non-zero elements in different columns correspond to different sparse signals, and non-zero elements in the same column correspond to the same sparse signals.
[0008] For example, the bit information is L*b bits, and every b bits can generate a sparse signal with a length of B through the generation module. The size of the spatial coupling matrix is R*C. If the sparse signals corresponding to the non-zero elements in the same column of the spatial coupling matrix are the same, then the length of the first sparse signal is L*B / C, where B is 2 to the power of b.
[0009] In the above method, the encoding of sparse signals based on the spatial coupling matrix is realized. The matrix multiplication module in the encoding device realizes the matrix multiplication operation by addition and subtraction operations through the transformation matrix containing elements 1 and -1. Compared with the traditional Gaussian matrix multiplication method for encoding sparse signals, the deployment of multipliers can be avoided in hardware implementation, which greatly reduces the computational complexity and the difficulty of implementing the encoding hardware. In addition, the encoding device reduces the correlation between the input data by deploying an interleaver before and after the data performs the transformation matrix operation, which is conducive to improving the efficiency and performance of subsequent decoding.
[0010] Optionally, the first transformation matrix is composed of elements +1 and -1, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e -dimensional unit matrix, e is a positive integer, and the second transformed matrix is the transposed matrix of the first transformed matrix.
[0011] For example, 2 e The unit matrix of dimension 2 can also be called the unit matrix of order e, which means that the size of the unit matrix is 2. e ×2 e .
[0012] By implementing the above implementation, the first transformation matrix can be applied to the encoding of sparse signals in the real number domain, which can avoid the deployment of multipliers in hardware implementation and reduce the overhead of hardware resources.
[0013] Optionally, the first transformation matrix is composed of elements +1, -1, complex number -i and complex number i, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e -dimensional unit matrix, e is a positive integer greater than 1, and the second transformed matrix is the conjugate transposed matrix of the first transformed matrix.
[0014] By implementing the above implementation, the first transformation matrix can be applied to the coding of sparse signals in the complex domain, which can avoid the deployment of multipliers in hardware implementation and reduce the overhead of hardware resources.
[0015] Optionally, the first interleaver and the second interleaver adopt a Banyan network.
[0016] Exemplarily, when the interleaver interleaves the sparse signals corresponding to the non-zero elements at different row and column positions in the spatial coupling matrix, different switch information is used.
[0017] In the implementation manner described above, the interleaver uses a Banyan network, which can not only reduce the correlation between input data, but also has a simple and modular structure and high scalability.
[0018] Optionally, the non-zero terms in the first sparse signal come from constellation points in K phase shift keying (PSK). When K is 1, the encoding of the first sparse signal is performed in the real domain; when K is greater than 1, the encoding of the first sparse signal is performed in the complex domain. For example, the non-zero terms in the first sparse signal come from constellation points of four-phase shift keying 4PSK modulation, which is conducive to improving the transmission rate of subsequent encoding results.
[0019] Optionally, the number of clocks required for the device to perform one encoding is associated with the number of non-zero elements in the spatial coupling matrix.
[0020] For example, the size of the spatial coupling matrix is R×C, and the coupling width is W. If the sparse signal corresponding to each column of the spatial coupling matrix is directly input into the matrix multiplication module for processing, the number of clocks required for the encoding device to perform one encoding is C*W+Δ, where Δ is the additional number of clocks required due to control.
[0021] By implementing the above implementation, the encoding device adopts a pipeline working mode when encoding the sparse signal based on the spatial coupling matrix, which can reduce the data transmission delay to a certain extent and is conducive to improving the throughput.
[0022] Optionally, the output module includes an accumulation module and a multiplication module, and the output module is used to process the second transformation result corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result, including: the accumulation module is used to perform an accumulation operation on the second transformation result corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain the accumulation result corresponding to each row of the spatial coupling matrix; the multiplication module is used to multiply the accumulation result corresponding to each row of the spatial coupling matrix by a power coefficient to obtain a coding result.
[0023] By implementing the above implementation method, the encoding of sparse signals based on the spatial coupling matrix is realized.
[0024] Optionally, the first sparse signal includes g groups of first sub-sparse signals, then the second sparse signal includes g groups of second sub-sparse signals, the first transformation result includes g groups of first sub-transformation results, and the second transformation result includes g groups of second sub-transformation results, wherein the jth group of first sub-sparse signals corresponds to the jth group of second sub-sparse signals, the jth group of second sub-sparse signals corresponds to the jth group of first sub-transformation results, and the jth group of first sub-transformation results corresponds to the jth group of second sub-transformation results, and j is a positive integer less than or equal to g; the accumulation module is used to perform an accumulation operation on the second transformation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain the accumulation results corresponding to each row of the spatial coupling matrix, including: the accumulation module is used to: perform an accumulation operation on the g groups of second sub-transformation results corresponding to each non-zero element in the spatial coupling matrix to obtain the first accumulation result corresponding to each non-zero element in the spatial coupling matrix; perform an accumulation operation on the first accumulation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain the accumulation result corresponding to each row of the spatial coupling matrix.
[0025] By implementing the above-mentioned implementation method and performing group processing on the sparse signals corresponding to each non-zero element in the spatial coupling matrix, the dimension of the transformation matrix of the above-mentioned matrix multiplication module after the group processing can be made much smaller than the dimension of the transformation matrix of the above-mentioned matrix multiplication module without the group processing. In this way, the wiring difficulty of the hardware implementation of the matrix multiplication module is further reduced.
[0026] In the second aspect, the present application provides a decoding device, which includes: a receiving module, used to obtain a channel observation value, the channel observation value is the value after noise is added to the encoding result, and the encoding result is a sparse superposition code obtained based on a spatial coupling matrix; an iterative decoding module, used to iteratively decode the channel observation value based on the spatial coupling matrix, a first transformation matrix, and a second transformation matrix. When a preset iteration condition is met, the decoding ends and the sparse signal estimated by the iterative decoding is output; wherein the first transformation matrix is used to implement matrix multiplication operations through addition and subtraction operations, and the second transformation matrix is used to implement the inverse operation of matrix multiplication operations through addition and subtraction operations, the elements of the first transformation matrix include +1 and -1, and the first transformation matrix multiplied by the second transformation matrix is a unit matrix of a power-dimensional unit matrix.
[0027] Here, the spatial coupling matrix can refer to the description of the corresponding content in the first aspect.
[0028] In the above method, the decoding device implements iterative decoding of channel observation values based on the spatial coupling matrix, the first transformation matrix and the second transformation matrix. The hardware implementation of the first transformation matrix and the second transformation matrix can be constructed by adders and subtractors. Compared with the decoding hardware implementation of the traditional sparse superposition code, the deployment of multipliers is avoided, which not only reduces the wiring difficulty of the decoding hardware, but also helps to reduce the computational complexity of decoding. In addition, the deployment of an interleaver in the decoding device can also reduce the correlation between the input data, which can improve the efficiency and performance of decoding.
[0029] Optionally, the first transformation matrix is composed of elements +1 and -1, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e -dimensional unit matrix, e is a positive integer, and the second transformed matrix is the transposed matrix of the first transformed matrix.
[0030] By implementing the above implementation, the first transformation matrix and the second transformation matrix can be applied to decoding of channel observation values in the real number domain, which can avoid the deployment of multipliers in hardware implementation and reduce the overhead of hardware resources.
[0031] Optionally, the first transformation matrix is composed of elements +1, -1, complex number -i and complex number i, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e dimensional unit matrix, e is a positive integer greater than 1, and the second transformation matrix is the conjugate transposed matrix of the first transformation matrix.
[0032] By implementing the above implementation, the first transformation matrix and the second transformation matrix can be applied to decoding of channel observation values in the complex domain, which can avoid the deployment of multipliers in hardware implementation and reduce the overhead of hardware resources.
[0033] Optionally, the iterative decoding module includes a first interleaver, a second interleaver, a first matrix multiplication module, a second matrix multiplication module, a first mean variance module and a second mean variance module, wherein the first interleaver is used to interleave the sparse signal of the t-th iteration estimation output by the first mean variance module to obtain a first result of the t-th iteration estimation, t is a positive integer, and the sparse signal of the t-th iteration estimation corresponds to the spatial coupling matrix; the first matrix multiplication module is used to perform addition and subtraction operations on the first result using the first transformation matrix to obtain a second result of the t-th iteration estimation; the second mean square The difference module is used to obtain the third result of the t-th iteration estimation based on the channel observation value and the second result; the second matrix multiplication module is used to use the second transformation matrix to perform addition and subtraction operations on the third result to obtain the fourth result of the t-th iteration estimation; the second interleaver is used to interleave the fourth result to obtain the fifth result of the t-th iteration estimation; the first mean variance module is used to obtain the sparse signal of the t+1-th iteration estimation based on the fifth result, and when the preset iteration condition is not met, the sparse signal of the t+1-th iteration estimation is output to the first interleaver to perform the next iteration, otherwise the decoding is terminated.
[0034] Exemplarily, the first mean-variance module adopts nonlinear estimation, and the second mean-variance module adopts linear estimation, wherein the nonlinear estimation may be Bayesian posterior estimation.
[0035] Optionally, the first interleaver and the second interleaver adopt a Banyan network. For the beneficial effects of the interleaver adopting the Banyan network, reference may be made to the description of the corresponding contents of the first aspect above, which will not be repeated here.
[0036] Here, the number of clocks required for the decoding device to perform one decoding operation is associated with the number of non-zero elements in the spatial coupling matrix. For example, if the size of the spatial coupling matrix is R×C and the coupling width is W, the number of clocks required for the decoding device to perform one decoding operation is C*W+Δ, where Δ is the number of additional clocks required due to control.
[0037] By implementing the above implementation, the iterative decoding module adopts a pipeline working mode to implement cyclic iterative decoding of each module in the iterative decoding module, which is beneficial to reducing data transmission delay and also beneficial to improving throughput.
[0038] In the third aspect, the present application provides a coding method, which includes: a generation module generates a first sparse signal according to the received bit information, the first sparse signal is a sparse signal corresponding to the wth non-zero element in the cth column of the spatial coupling matrix, c is a positive integer less than or equal to the number of columns of the spatial coupling matrix, w is a positive integer less than or equal to W, and W is the number of non-zero elements in each column of the spatial coupling matrix; a first interleaver interleaves the first sparse signal to obtain a second sparse signal; a matrix multiplication module uses a first transformation matrix to perform addition and subtraction operations on the second sparse signal to obtain a first transformation result, and the elements of the first transformation matrix include +1 and -1; a second interleaver interleaves the first transformation result to obtain a second transformation result; and an output module processes the second transformation result corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result.
[0039] Optionally, the first transformation matrix is composed of elements +1 and -1, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e -dimensional unit matrix, e is a positive integer, and the second transformed matrix is the transposed matrix of the first transformed matrix.
[0040] Optionally, the first transformation matrix is composed of elements +1, -1, complex number -i and complex number i, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e -dimensional unit matrix, e is a positive integer greater than 1, and the second transformed matrix is the conjugate transposed matrix of the first transformed matrix.
[0041] Optionally, the first interleaver and the second interleaver adopt a Banyan network.
[0042] Optionally, the method is applied to a coding device, and the number of clocks required by the coding device to perform one encoding is associated with the number of non-zero elements in the spatial coupling matrix.
[0043] Optionally, the output module includes an accumulation module and a multiplication module, and the output module processes the second transformation result corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result, including: the accumulation module performs an accumulation operation on the second transformation result corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain the accumulation result corresponding to each row of the spatial coupling matrix; the multiplication module multiplies the accumulation result corresponding to each row of the spatial coupling matrix by a power coefficient to obtain a coding result.
[0044] Optionally, the first sparse signal includes g groups of first sub-sparse signals, then the second sparse signal includes g groups of second sub-sparse signals, the first transformation result includes g groups of first sub-transformation results, and the second transformation result includes g groups of second sub-transformation results, wherein the jth group of first sub-sparse signals corresponds to the jth group of second sub-sparse signals, the jth group of second sub-sparse signals corresponds to the jth group of first sub-transformation results, and the jth group of first sub-transformation results corresponds to the jth group of second sub-transformation results, and j is a positive integer less than or equal to g; the accumulation module performs an accumulation operation on the second transformation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain the accumulation results corresponding to each row of the spatial coupling matrix, including: the accumulation module performs an accumulation operation on the g groups of second sub-transformation results corresponding to each non-zero element in the spatial coupling matrix to obtain the first accumulation result corresponding to each non-zero element in the spatial coupling matrix; and performs an accumulation operation on the first accumulation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain the accumulation results corresponding to each row of the spatial coupling matrix.
[0045] In a fourth aspect, the present application provides a decoding method, which includes: a receiving module obtains a channel observation value, which is a value after noise is added to the encoding result, and the encoding result is a sparse superposition code obtained based on a spatial coupling matrix; an iterative decoding module iteratively decodes the channel observation value based on the spatial coupling matrix, a first transformation matrix, and a second transformation matrix. When a preset iteration condition is met, the decoding ends and a sparse signal estimated by the iterative decoding is output; wherein the first transformation matrix is used to implement matrix multiplication operations through addition and subtraction operations, and the second transformation matrix is used to implement the inverse operation of matrix multiplication operations through addition and subtraction operations, the elements of the first transformation matrix include +1 and -1, and the first transformation matrix multiplied by the second transformation matrix is a unit matrix of a power-dimensional unit matrix.
[0046] Optionally, the first transformation matrix is composed of elements +1 and -1, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e -dimensional unit matrix, e is a positive integer, and the second transformed matrix is the transposed matrix of the first transformed matrix.
[0047] Optionally, the first transformation matrix is composed of elements +1, -1, complex number -i and complex number i, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e -dimensional unit matrix, e is a positive integer greater than 1, and the second transformed matrix is the conjugate transposed matrix of the first transformed matrix.
[0048] Optionally, the iterative decoding module includes a first interleaver, a second interleaver, a first matrix multiplication module, a second matrix multiplication module, a first mean variance module and a second mean variance module, and the process of the iterative decoding module performing one iterative decoding includes: the first interleaver interleaves the sparse signal of the t-th iteration estimation output by the first mean variance module to obtain a first result of the t-th iteration estimation, t is a positive integer, and the sparse signal of the t-th iteration estimation corresponds to the spatial coupling matrix; the first matrix multiplication module uses the first transformation matrix to perform addition and subtraction operations on the first result to obtain the t-th iteration estimation The second mean-variance module obtains the third result of the t-th iteration estimation according to the channel observation value and the second result; the second matrix multiplication module uses the second transformation matrix to perform addition and subtraction operations on the third result to obtain the fourth result of the t-th iteration estimation; the second interleaver interleaves the fourth result to obtain the fifth result of the t-th iteration estimation; the first mean-variance module obtains the sparse signal of the t+1-th iteration estimation according to the fifth result, and when the preset iteration condition is not met, the sparse signal of the t+1-th iteration estimation is output to the first interleaver to perform the next iteration, otherwise the decoding is terminated.
[0049] Optionally, the first interleaver and the second interleaver adopt a Banyan network.
[0050] Exemplarily, the first mean-variance module adopts nonlinear estimation, and the second mean-variance module adopts linear estimation.
[0051] In a fifth aspect, the present application provides a communication device, which includes the encoding device in the above-mentioned first aspect or any possible implementation of the first aspect, or includes the decoding device in the above-mentioned second aspect or any possible implementation of the second aspect.
[0052] In a sixth aspect, the present application provides a coding system, which includes a first device and a second device, wherein the first device is used to execute the encoding method in the above-mentioned third aspect or any possible implementation of the third aspect, and the second device is used to execute the above-mentioned fourth aspect or any possible implementation of the fourth aspect.
[0053] In the seventh aspect, the present application provides a computer-readable storage medium, including computer instructions, which, when executed by a processor, implement the encoding method in the above-mentioned third aspect or any possible implementation of the third aspect, or are used to implement the above-mentioned fourth aspect or any possible implementation of the fourth aspect.
[0054] In an eighth aspect, the present application provides a computer program product, which, when executed by a processor, implements the method in the third aspect or any possible embodiment of the third aspect, or is used to implement the method in the fourth aspect or any possible embodiment of the fourth aspect.
[0055] Exemplarily, the computer program product is a software installation package. BRIEF DESCRIPTION OF THE DRAWINGS
[0056] Figure 1 It is a replacement schematic diagram of a Banyan network provided in an embodiment of the present application;
[0057] Figure 2 It is a structural diagram of a coding system provided in an embodiment of the present application;
[0058] Figure 3 is a schematic diagram of a butterfly computing structure based on a transformation matrix provided in an embodiment of the present application;
[0059] Figure 4 is a flowchart of an encoding method provided in an embodiment of the present application;
[0060] Figure 5 is a schematic diagram of a spatial coupling matrix provided in an embodiment of the present application;
[0061] Figure 6 It is a schematic diagram of an architecture of a coding hardware implementation provided by an embodiment of the present application;
[0062] Figure 7 is a flowchart of a decoding method provided in an embodiment of the present application;
[0063] Figure 8 is a flowchart of an iterative decoding method of an iterative decoding module provided in an embodiment of the present application;
[0064] Fig. 9 It is a schematic diagram of an architecture of a decoding hardware implementation provided by an embodiment of the present application;
[0065] Fig.10 This is a schematic diagram of the decoding performance of some sparse superposition codes provided in the embodiments of the present application. DETAILED DESCRIPTION
[0066] It should be noted that the prefixes such as "first" and "second" used in this application are only used to distinguish different description objects, and have no limiting effect on the position, order, priority, quantity or content of the described objects. For example, if the described object is a "field", the ordinal number before the "field" in the "first field" and the "second field" does not limit the position or order between the "fields". "First" and "second" do not limit whether the "fields" they modify are in the same message, nor do they limit the order of the "first field" and the "second field". For another example, if the described object is a "level", the ordinal number before the "level" in the "first level" and the "second level" does not limit the priority between the "levels". For another example, the number of described objects is not limited by the prefix and can be one or more. Taking "first device" as an example, the number of "devices" can be one or more. In addition, the objects modified by different prefixes can be the same or different. For example, if the object being described is a "device", then the "first device" and the "second device" can be the same device, the same type of device, or different types of devices; for another example, if the object being described is "information", then the "first information" and the "second information" can be information of the same content or information of different contents. In short, the use of prefixes used to distinguish the described objects in the embodiments of the present application does not constitute a limitation on the described objects. For the statement of the described objects, refer to the description in the context of the claims or embodiments, and no unnecessary limitation should be constituted due to the use of such prefixes.
[0067] It should be noted that the description methods such as "at least one of a1, a2, ... and an" used in the embodiments of the present application include the situation where any one of a1, a2, ... and an exists alone, and also include any combination of any multiple of a1, a2, ... and an, and each situation can exist alone. For example, the description method of "at least one of a, b and c" includes the situation where a is alone, b is alone, c is alone, a combination of a and b, a combination of a and c, b and c, or a combination of abc.
[0068] To facilitate understanding, the following first introduces relevant terms that may be involved in the embodiments of the present application.
[0069] (1) Assembly line technology
[0070] Take the interpretation process of an instruction as an example. The interpretation process of an instruction is further subdivided into five sub-processes: fetch, decode, execute, access memory, and write back to register. Each sub-process is processed separately by five independent functional components. Then, just like the assembly line in a factory, the five sub-components can simultaneously operate the corresponding sub-processes in five different instructions. In other words, the pipeline structure refers to the decomposition of a repetitive process into several sub-processes, each of which can be carried out simultaneously with other sub-processes. Therefore, the pipeline technology meets the following characteristics: 1) A pipeline consists of multiple pipeline sections; 2) Each pipeline section has a dedicated functional component to perform some processing on the instruction; 3) The time required for each pipeline section is the same; 4) Ideally, on the pipeline, a result will flow out of the pipeline at the same time interval.
[0071] (2) Banyan Network
[0072] Banyan network is a switching network or permutation network that can perform random permutations of input data. For example, a Banyan network consists of log2 P levels, where P represents the number of inputs to the Banyan network. Each level includes The binary switching elements, and the wiring between the different stages, are placed in a specific way to ensure a path from each input to each output.
[0073] For example, see Figure 1 , Figure 1 This is a permutation diagram of a Banyan network provided by this application. Figure 1 In this example, P = 8, that is, the input of the Banyan network is {a0, a1, a2, a3, a4, a5, a6, a7}, Figure 1 The Banyan network shown has three stages. Take the first two switch elements (called switch element 1 and switch element 2) in the first stage on the left as an example. The inputs of switch element 1 are a0 and a4, and the inputs of switch element 2 are a1 and a5. It can be seen that when the state of switch element 1 is "1", the position order of inputs a0 and a4 is changed after passing through switch element 1; when the state of switch element 2 is "0", the position order of inputs a1 and a5 remains unchanged after passing through switch element 1. In this way, the input {a0, a1, a2, a3, a4, a5, a6, a7} passes through Figure 1 The final output of the Banyan network is {a6, a1, a7, a4, a3, a0, a2, a5}, which is helpful to reduce the correlation between data.
[0074] here, Figure 1From left to right in the Banyan network shown, the states of the four switch elements in the first stage, the states of the four switch elements in the second stage, and the states of the four switch elements in the third stage constitute a set of switch information of the Banyan network.
[0075] The technical solutions in the embodiments of the present application will be described below in conjunction with the accompanying drawings.
[0076] See also Figure 2 , Figure 2 The schematic diagram of the structure of a coding system provided by an embodiment of the present application is as follows. The coding system includes a coding device and a decoding device, wherein the coding device and the decoding device can communicate in a wired or wireless manner.
[0077] Exemplarily, the encoding device and / or the decoding device can be deployed in a terminal device or a network device. Here, the terminal device can be understood as a user device, a terminal, a user station, a mobile station, a mobile station, a mobile device, a user agent or a user device, etc. The terminal device can be, for example, a handheld device with wireless communication function, a computing device or other processing device connected to a wireless modem, a vehicle-mounted device, a wearable device, etc. The network device can be, for example, a base station in various communication systems, and the communication system can be, for example, a global system of mobile communication (GSM) system, code division multiple access (CDMA), wideband code division multiple access (WCDMA), LTE system, etc., or a wireless controller in a cloud radio access network (CRAN) scenario, or a relay station, access point, vehicle-mounted device, wearable device, etc.
[0078] exist Figure 2 In the embodiment, the coding device includes a generation module, an interleaver 1, a matrix multiplication module, an interleaver 2 and an output module, wherein the interleaver (i.e., the interleaver 1 or the interleaver 2) is used to reduce the correlation between the data input to the interleaver, and the interleaver can adopt a Banyan network, for example, and the matrix multiplication module uses a first transformation matrix to realize the multiplication operation of the matrix by addition and subtraction operations, wherein the elements of the first transformation matrix include 1 and -1. Further, the output module includes an accumulation module and a multiplication module.
[0079] Exemplarily, the generation module generates a sparse signal according to the bit information, the interleaver 1 interleaves the sparse signal and outputs the interleaved result to the matrix multiplication module, the matrix multiplication module uses the first transformation matrix to process the output of the interleaver 1 and outputs the processed result to the interleaver 2, the interleaver 2 interleaves the output of the matrix multiplication module and outputs the interleaved result to the output module, the output module performs accumulation and multiplication operations on the output of the interleaver 2 to obtain the encoding result, and sends the encoding result to the channel (for example, an additive white noise Gaussian channel). The encoding process of the encoding device can be specifically referred to as follows Figure 4 The relevant description of the embodiment will not be repeated here.
[0080] The first transformation matrix is described in detail below.
[0081] In one implementation, when the first transformation matrix is applied to the hardware design of the sparse superposition code in the complex domain, the elements of the first transformation matrix also include complex numbers -i and complex numbers i. Exemplarily, the first transformation matrix is composed of elements +1, -1, complex numbers -i and complex numbers i, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is a 2e-dimensional unit matrix (that is, the size of the unit matrix is 2 e ×2 e ), e is a positive integer greater than 1. In this case, the second transformation matrix is the conjugate transposed matrix of the first transformation matrix.
[0082] The first transformation matrix can be written as When e is 2, as an example, the second-order first transformation matrix H4 can be expressed as the following formula (1):
[0083]
[0084] Based on the second-order first transformation matrix H4, other higher-order first transformation matrices can be constructed through the recursive method shown in the following formula (2): Wherein, e is a positive integer greater than 2. It can be understood that the above formula (1) is only an example of the second-order first transformation matrix H4, and does not limit the second-order first transformation matrix H4 to only be shown in formula (1).
[0085]
[0086] For example, a third-order first transformation matrix H8 can be constructed based on the above formula (2). Accordingly, a butterfly computing structure with 8 points (assuming that it is the number of data in the sparse signal input to the matrix multiplication module) can be realized based on H8. Figure 3 As shown, Figure 3 is a schematic diagram of a butterfly computing structure based on a transformation matrix provided in an embodiment of the present application, that is, H8×a=b, wherein Figure 3In the figure, a = {a0, a1, a2, a3, a4, a5, a6, a7} is the input of the matrix multiplication module, and b = {b0, b1, b2, b3, b4, b5, b6, b7} is the output of the matrix multiplication module.
[0087] based on Figure 3 It can be seen that the first transformation matrix decomposes the matrix multiplication into addition and subtraction to achieve it, thereby avoiding the use of complex multipliers in hardware implementation, thereby reducing the difficulty of hardware implementation.
[0088] In another implementation, when the first transformation matrix is applied to the hardware design of sparse superposition code in the real number field, the first transformation matrix is composed of elements +1 and -1, and satisfies that the product of the first transformation matrix and the second transformation matrix is a 2e-dimensional unit matrix, where e is a positive integer. In this case, the second transformation matrix is the transposed matrix of the first transformation matrix.
[0089] The first transformation matrix can be written as When e is 1, as an example, the first order first transformation matrix H2 can be expressed as the following formula (3):
[0090]
[0091] Based on H2 shown in formula (3), other high-order first transformation matrices can be constructed through the recursive method shown in the following formula (2): Wherein, e is a positive integer greater than 1. It can be understood that the above formula (3) is only an example of the first-order first transformation matrix H2, and does not limit the first-order first transformation matrix H2 to only be as shown in formula (3). When the first transformation matrix is applied to the hardware design of the sparse superposition code in the real number field, the butterfly calculation structure based on the first transformation matrix can also refer to the above Figure 3 Similar representations are made, and for the sake of brevity of the specification, they will not be repeated here.
[0092] exist Figure 2 In the above, the decoding device includes a receiving module and an iterative decoding module. The receiving module is used to obtain channel observation values. The channel observation values are the values after adding noise (such as additive white noise Gaussian channel) to the encoding result. The encoding result is a sparse superposition code obtained based on the spatial coupling matrix; the iterative decoding module is used to iteratively decode the channel observation values based on the spatial coupling matrix, the first transformation matrix and the second transformation matrix. When the preset iteration condition is met, the decoding ends and the sparse signal estimated by the iterative decoding is output. The first transformation matrix is used to realize the matrix multiplication operation through addition and subtraction operations, and the second transformation matrix is used to realize the inverse operation of the matrix multiplication operation through addition and subtraction operations. The second transformation matrix is the conjugate transposed matrix of the first transformation matrix. Here, the first transformation matrix can refer to the description of the corresponding content above, which will not be repeated here.
[0093] Exemplarily, the iterative decoding module includes two interleavers (i.e., interleaver 3 and interleaver 4), two matrix multiplication modules (i.e., matrix multiplication module 1 and matrix multiplication module 2) and two modules for calculating mean variance (i.e., mean variance module 1 and mean variance module 2). Taking the t-th iteration decoding of the iterative decoding module as an example, the interleaver 3 interleaves the sparse signal of the t-th iteration estimation output by the mean variance module 1, obtains the first result of the t-th iteration estimation, and outputs it to the matrix multiplication module 1; the matrix multiplication module 1 uses the first transformation matrix to perform addition and subtraction operations on the data in the first result, obtains the second result of the t-th iteration estimation and outputs it to the mean variance module 2; the mean variance module 2 obtains the third result of the t-th iteration estimation based on the second result and the channel observation value obtained by the receiving module, and outputs it to the matrix multiplication module 1. Matrix multiplication module 2; matrix multiplication module 2 uses the second transformation matrix to perform addition and subtraction operations on the data in the third result, obtains the fourth result of the t-th iteration estimate and outputs it to the interleaver 4; the interleaver 4 interleaves the fourth result to obtain the fifth result of the t-th iteration estimate, and outputs it to the mean variance module 1; the mean variance module 1 obtains the sparse signal of the t+1-th iteration estimate according to the fifth result, and when the preset iteration condition is not met, outputs the sparse signal of the t+1-th iteration estimate to the interleaver 3 to perform the next iteration, otherwise the decoding is terminated.
[0094] Exemplarily, the preset iteration condition may be that the current iterative decoding times reaches a preset maximum times, or the variance calculated by the mean variance module 1 in the current iteration process is zero.
[0095] Here, the mean-variance module 1 adopts nonlinear estimation, and the mean-variance module 2 adopts linear estimation. The nonlinear estimation may be, for example, Bayesian posterior estimation.
[0096] The encoding method provided by the above encoding device can be specifically referred to as follows Figure 4 The description of the embodiment, based on the encoding method provided by the above decoding device, can refer to the following Figure 8 The description of the embodiments will not be repeated here.
[0097] Figure 2The coding system shown can be applied to various network types, for example, one or more of the following network types: global system for mobile communication (GSM), general packet radio service (GPRS), such as wideband code division multiple access (WCDMA), time division-synchronous code division multiple access (TS-SCDMA), code division multiple access (CDMA), long term evolution (LTE) network, fifth generation mobile communication technology (5G), new wireless (NR), etc.
[0098] It should be noted that Figure 2 This is only an exemplary architecture diagram, but not limited to Figure 2 In some possible embodiments, the coding system may also include more than Figure 2 More or fewer modules are shown, for example, Figure 2 The interleaver 1 and the interleaver 2 in the coding device shown can be omitted. Figure 2 Interleaver 3 and interleaver 4 in the decoding device shown may also be omitted.
[0099] Based on the above Figure 2 The encoding device in the encoding and decoding system is shown, and the encoding method provided by the embodiment of the present application is introduced below.
[0100] See also Figure 4 , Figure 4 is a flowchart of an encoding method provided in an embodiment of the present application. The method can be applied to Figure 2 The method includes but is not limited to the following steps:
[0101] S401: The generating module generates a sparse signal 1 according to the received bit information, where the sparse signal 1 is a sparse signal corresponding to the wth non-zero element in the cth column of the spatial coupling matrix.
[0102] Wherein, c is a positive integer less than or equal to the number of columns of the spatial coupling matrix, w is a positive integer less than or equal to W, and W is the number of non-zero elements in each column of the spatial coupling matrix.
[0103] In order to improve the subsequent decoding performance of the sparse superposition code, the embodiment of the present application adopts encoding and decoding of the sparse signal based on the spatial coupling matrix. Here, the spatial coupling matrix is composed of "0" and non-zero elements "1", and the non-zero elements in the spatial coupling matrix are distributed diagonally. The size of the spatial coupling matrix is R×C, where the coupling width is W, that is, each column of the spatial coupling matrix contains W continuous non-zero elements.
[0104] See also Figure 5 , Figure 5 is a schematic diagram of a spatial coupling matrix provided in an embodiment of the present application. Figure 5 In , the size of the spatial coupling matrix is R×C. It can be seen that each column contains 6 consecutive 1s, that is, W=6, and the element "1" in the spatial coupling matrix is distributed diagonally.
[0105] In an embodiment of the present application, the sparse signals corresponding to the non-zero elements in the same column of the spatial coupling matrix are the same, that is, the above-mentioned sparse signal 1 is also equivalent to the sparse signal corresponding to the c-th column of the spatial coupling matrix. In an embodiment of the present application, the sparse signal corresponding to each non-zero element in the spatial coupling matrix will be processed by the following S402-S404. Here, the sparse signal corresponding to the w-th non-zero element in the c-th column of the spatial coupling matrix (i.e., sparse signal 1) is used as an example to illustrate the scheme. It can be understood that when processing the sparse signal corresponding to each non-zero element in the spatial coupling matrix, it can be based on the order of rows first and then columns, or it can be based on the order of columns first and then rows, and no specific limitation is made here.
[0106] In one implementation, a sparse signal 1 corresponding to the bit information may be generated based on the bit information, and then the sparse signal 1 may be determined based on the sparse signal 1 and the number of columns of the spatial coupling matrix.
[0107] For example, assuming that the bit information is L*b bits, every b bits can generate a sparse signal of length B through the generation module, then the total length of the sparse signal one obtained based on the bit information can be recorded as L*B, and the sparse signal one can be regarded as consisting of L vectors of length B, where each vector of length B contains only one non-zero item and (B-1) zeros.
[0108] Exemplarily, if each non-zero item in the sparse signal one is selected from K constellation points in phase shift keying (PSK), when K is 1, it means that the coding is performed in the real number domain; when K is greater than 1, it means that the coding is performed in the complex number domain.
[0109] For example, when K=4, the non-zero items in the sparse signal 1 come from the constellation points in 4PSK. Here, the constellation points in 4PSK include: s0=(1,0), s1=(0,i), s2=(-1,0) and s3=(0,-i), that is, the non-zero items can be 1, -1, complex number i, complex number -i.
[0110] It can be understood that the above-mentioned sparse signal 1 corresponds to the spatial coupling matrix, and the sparse signal 1 is divided based on the number of columns of the spatial coupling matrix to obtain the sparse signal corresponding to each column of the spatial coupling matrix.
[0111] Here, the length of the sparse signal corresponding to each column of the spatial coupling matrix is the same. Since the length of the sparse signal 1 is L*B, and the number of columns of the spatial coupling matrix is C, each column of the spatial coupling matrix corresponds to a sparse signal in the sparse signal 1, and the length of the sparse signal corresponding to each column of the spatial coupling matrix is It can be understood that different columns in the spatial coupling matrix correspond to different sparse signals.
[0112] For example, assuming that the bit information is 960*7 (i.e., L*b) bits, where every 7 bits generate a sparse signal with a length B of 32, then the length L*B of the sparse signal one is 960*32, and the size of the spatial coupling matrix is 37*32, then the length of the sparse signal corresponding to each column of the spatial coupling matrix is 960, then the sparse signal one is divided into β1, β2, ..., β c , ..., β 32 , where the sparse signal β c The length of is 960, c = 1, 2, 3, ..., 32, and the sparse signal β c It corresponds to the cth column of the spatial coupling matrix. It can be understood that the sparse signal 1 is the sparse signal corresponding to the wth non-zero element in the cth column of the spatial coupling matrix. Since the sparse signals corresponding to the non-zero elements in the same column of the spatial coupling matrix are the same, the sparse signal 1 can also be expressed as β c .
[0113] In another implementation method, since the sparse signals corresponding to the non-zero elements in the same column of the spatial coupling matrix are the same, the bit information corresponding to the c-th column of the spatial coupling matrix in the bit information can be determined first, and then the above-mentioned sparse signal 1 is generated according to the bit information corresponding to the c-th column of the spatial coupling matrix.
[0114] For example, assuming that the bit information is 960*7 (i.e., L*b) bits, and the number of columns of the spatial coupling matrix is 32, that is, the bit information corresponding to each column of the spatial coupling matrix is 30*7 bits, then the bit information corresponding to the c-th column of the spatial coupling matrix can be known, and a sparse signal of length 32 is generated for every 7 bits, thereby obtaining a sparse signal 1.
[0115] S402: Interleaver 1 interleaves sparse signal 1 to obtain sparse signal 2.
[0116] Here, the correlation between the data in sparse signal 2 is smaller than the correlation between the data in sparse signal 1.
[0117] Exemplarily, the interleaver 1 adopts a Banyan network. For details about the Banyan network, reference may be made to the aforementioned description of the “Banyan network”, which will not be described in detail here.
[0118] Exemplarily, the interleaver 1 is configured with multiple groups of switch information, and each group of switch information is randomly generated. For each input sparse signal, the interleaver 1 can use different switch information to interleave the input sparse signal.
[0119] In one implementation, since the sparse signals corresponding to the non-zero elements in the same column of the spatial coupling matrix are the same, when the sparse signals corresponding to the non-zero elements "1" in the same column of the spatial coupling matrix are respectively input into the interleaver 1, the interleaver 1 can use different switching information to interleave them to reduce the correlation between the data.
[0120] For example, when the sparse signal corresponding to the first non-zero element in the c-th column of the spatial coupling matrix is input to the interleaver 1, the interleaver 1 uses the first set of switch information to interleave the sparse signal; when the sparse signal corresponding to the second non-zero element in the c-th column of the spatial coupling matrix is input to the interleaver 1, the interleaver 1 uses the second set of switch information to interleave the sparse signal. The first set of switch information is different from the second set of switch information.
[0121] Exemplarily, when sparse signals corresponding to non-zero elements in different columns of the spatial coupling matrix are input to the interleaver 1, the interleaver 1 may also use different switch information to interleave them to reduce the correlation between the data.
[0122] For example, when the sparse signal corresponding to the first non-zero element in the first column of the spatial coupling matrix is input to the interleaver 1, the interleaver 1 uses the third set of switch information to interleave the sparse signal; when the sparse signal corresponding to the first non-zero element in the second column of the spatial coupling matrix is input to the interleaver 1, the interleaver 1 uses the fourth set of switch information to interleave the sparse signal. The third set of switch information is different from the fourth set of switch information.
[0123] In some possible embodiments, in order to reduce the wiring difficulty of hardware implementation, the sparse signals corresponding to each non-zero element "1" in the spatial coupling matrix can also be grouped and processed. Compared with the sparse signal 1 being directly input into the interleaver 1, the sparse signal 1 will be input into the interleaver 1 multiple times after grouping. In this way, the length of the sparse signal input into the interleaver 1 each time is reduced, which can reduce the hardware implementation difficulty of the interleaver 1 and subsequent matrix multiplication modules, the interleaver 2, etc.
[0124] For example, the above sparse signal 1 is represented as follows: Assuming that the length of sparse signal 1 is 960, sparse signal 1 is further divided into g groups, then sparse signal 1 includes g sub-sparse signals 1, which are β c0 , β c1 , ..., β c(g-1) , where the length of sub-sparse signal 1 is 96.
[0125] In one implementation, the sparse signal 1 is divided into g groups, that is, the sparse signal 1 includes g groups of sub-sparse signals 1, then the above-mentioned sparse signal 2 includes g groups of sub-sparse signals 2, and the j-th group of sub-sparse signal 1 corresponds to the j-th group of sub-sparse signal 2, and j is a positive integer less than or equal to g.
[0126] Here, the i-th group of sub-sparse signals 1 corresponds to the j-th group of sub-sparse signals 2, which means that the interleaver 1 interleaves the j-th group of sub-sparse signals 1 to obtain the j-th group of sub-sparse signals 2.
[0127] In some possible embodiments, considering that in hardware implementation, in order to match the input requirement of the subsequent matrix multiplication module, that is, the length of the data input to the matrix multiplication module is required to be a power of 2, the sparse signal can be padded with zeros before the sparse signal is input to the interleaver 1. Here, the sparse signal can be the above-mentioned β c , or it can be the above-mentioned sub-sparse signal 1.
[0128] For example, β c As a whole, it is directly input to interleaver 1, assuming that β c The length of β is 960, which does not meet the input requirements of the subsequent matrix multiplication module. c Perform zero padding to make β c The length of is 1024. Thus, interleaver 1 is used for β with a length of 1024. c Interweave.
[0129] For another example, sub-sparse signal 1 is input to interleaver 1. Assuming that the length of sub-sparse signal 1 is 96, which does not meet the input requirement of the subsequent matrix multiplication module, the sub-sparse signal 1 can be padded with zeros to make the length of sub-sparse signal 1 128. In this way, interleaver 1 interleaves sub-sparse signal 1 of length 128.
[0130] In some possible embodiments, parameters may be adjusted so that the length of the sparse signal corresponding to each column of the spatial coupling matrix is a power of 2, so as to avoid performing a zero-padding operation.
[0131] S403: The matrix multiplication module uses the first transformation matrix to perform addition and subtraction operations on the sparse signal 2 to obtain a transformation result 1.
[0132] Here, the first transformation matrix is used to implement matrix multiplication operations through addition operations and subtraction operations. The first transformation matrix and the structure based on the first transformation matrix can refer to Figure 2 The relevant description of the "first transformation matrix" will not be repeated here.
[0133] Here, the first transformation matrix The structure of is related to the length of the sparse signal output by interleaver 1 to the matrix multiplication module.
[0134] For example, the sparse signal 2 is the β after being interleaved by the interleaver 1. c , where the length of sparse signal 2 is 1024, and sparse signal 2 is input to the matrix multiplication module as a whole. The first transformation matrix is H 1024 .
[0135] For another example, assume that the sparse signal corresponding to each non-zero element in the spatial coupling matrix is divided into g groups. In this case, the sparse signal 2 includes g groups of sub-sparse signals 2, which means that the sparse signal 2 is input into the matrix multiplication module g times, and the length of the sub-sparse signal 2 input into the matrix multiplication module each time is 128. The first transformation matrix is H 128 , thus further reducing the difficulty of hardware wiring layout.
[0136] In one implementation, when the sparse signal corresponding to each non-zero element in the spatial coupling matrix is divided into g groups, the sparse signal 2 includes g groups of sub-sparse signals 2, and the above-mentioned transformation result 1 includes g groups of sub-transformation results 1, wherein the j-th group of sub-sparse signals 2 corresponds to the j-th group of transformation result 1, and j is a positive integer less than or equal to g.
[0137] Here, the jth group of sub-sparse signals 2 corresponding to the jth group of sub-transformation results 1 means that: the matrix multiplication module uses the first transformation matrix to perform addition and subtraction operations on the jth group of sub-sparse signals 2 to obtain the jth group of sub-transformation results 1.
[0138] It can be understood that the data in the transformation result 1 output by the matrix multiplication module can be called symbol symbol, where the number of symbols in the transformation result 1 is L*B, for example, L=960 and B=32, then the number of symbols in the transformation result 1 is 30720.
[0139] S404: Interleaver 2 interleaves transformation result 1 to obtain transformation result 2.
[0140] Here, the correlation between the data in the transformation result 2 is smaller than the correlation between the data in the transformation result 1.
[0141] Exemplarily, the interleaver 2 adopts a Banyan network. For details about the Banyan network, reference may be made to the related description of the aforementioned “Banyan network”, which will not be repeated here.
[0142] Here, interleaver 2 is configured with multiple sets of switch information, and the switch information of interleaver 2 is different from the switch information of interleaver 1. For the use of switch information by interleaver 2, reference can be made to the description of the use of switch information by interleaver 1 in S402, which will not be repeated here.
[0143] In one implementation, when the sparse signal corresponding to each non-zero element in the spatial coupling matrix is divided into g groups, the transformation result 1 includes g groups of sub-transformation results 1, and the transformation result 2 includes g groups of sub-transformation results 2, where the j-th group of sub-transformation result 1 corresponds to the j-th group of sub-transformation result 2, and j is a positive integer less than or equal to g.
[0144] Here, the j-th group of sub-transformation results 1 corresponds to the j-th group of sub-transformation results 2, which means that interleaver 2 interleaves the j-th group of sub-transformation results 1 to obtain the j-th group of sub-transformation results 2.
[0145] In some possible embodiments, in order to reduce the amount of data of the encoding result finally transmitted, the preset number of symbols corresponding to the spatial coupling matrix can be determined as n, the number of rows of the spatial coupling matrix is R, and the number of symbols corresponding to each row of the spatial coupling matrix is In this case, after the interleaver 2 interleaves the output of the matrix multiplication module each time, it can also be based on the number of symbols corresponding to each row in the spatial coupling matrix. Perform a puncture operation on the result after interleaving itself, for example, select A symbol participates in the processing in the subsequent output module.
[0146] For example, if the sparse signal 1 is directly processed as a whole, after performing the puncturing operation on the above transformation result 2, a set of If the sparse signal 1 is divided into g groups for processing, after performing the puncturing operation on the above transformation result 2, g groups can be obtained. symbol.
[0147] S405: The output module processes the transformation result 2 corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result.
[0148] In an embodiment of the present application, the output module includes an accumulation module and a multiplication module. The output module processes the transformation result 2 corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result, including: the accumulation module performs an accumulation operation on the transformation result 2 corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain the accumulation result corresponding to each row of the spatial coupling matrix; the multiplication module multiplies the accumulation result corresponding to each row of the spatial coupling matrix by a power coefficient to obtain a coding result.
[0149] In some possible embodiments, if the transformation result 2 has been punctured, the accumulation module performs an accumulation operation on the transformation result 2 corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows. Specifically, the accumulation module performs an accumulation operation on the symbols corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain an accumulation result corresponding to each row of the spatial coupling matrix, wherein the number of symbols corresponding to each non-zero element in the spatial coupling matrix is
[0150] For example, when the sparse signals corresponding to each non-zero element in the spatial coupling matrix are not grouped, each non-zero element in the spatial coupling matrix corresponds to symbols, each non-zero element corresponds to Symbols can be uniformly represented by row vectors or column vectors. Figure 5 The spatial coupling matrix shown in Taking 57 as an example, it can be seen that there is only one non-zero element in the first row, so there is no need to perform an accumulation operation. The 57 symbols corresponding to the first row are the 57 symbols corresponding to the non-zero element (that is, the accumulation result corresponding to the first row); there are two non-zero elements in the second row, and their row and column position information are (2,1) and (2,2) respectively. The accumulation module performs an accumulation operation on the 57 symbols corresponding to the non-zero element with row and column position information (2,1) and the 57 symbols corresponding to the non-zero element with row and column position information (2,2), and obtains the 57 symbols corresponding to the second row (that is, the accumulation result corresponding to the second row); there are three in the third row. The non-zero elements, whose row and column position information are (3,1), (3,2) and (3,3) respectively, the accumulation module performs two accumulation operations on them. For example, first, the 57 symbols corresponding to the non-zero elements with row and column position information (3,1) and the 57 symbols corresponding to the non-zero elements with row and column position information (3,2) are accumulated, and the obtained results are then accumulated with the 57 symbols corresponding to the non-zero elements with row and column position information (3,3) to obtain 57 symbols corresponding to the third row (that is, the accumulation result corresponding to the third row); ..., this operation is repeated until the accumulation result corresponding to the last row of the spatial coupling matrix is calculated.
[0151] In some possible embodiments, when group processing is performed on the sparse signal corresponding to each non-zero element in the spatial coupling matrix, the accumulation module performs an accumulation operation on the transformation results 2 corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain the accumulation results corresponding to each row of the spatial coupling matrix, including: the accumulation module performs an accumulation operation on the g groups of sub-transformation results 2 corresponding to each non-zero element in the spatial coupling matrix to obtain the first accumulation result corresponding to each non-zero element in the spatial coupling matrix; and performs an accumulation operation on the first accumulation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain the accumulation result corresponding to each row of the spatial coupling matrix.
[0152] For example, when the sparse signals corresponding to each non-zero element in the spatial coupling matrix are divided into g groups, then each non-zero element in the spatial coupling matrix corresponds to g groups. symbols, each group The symbols are uniformly represented by row vectors or column vectors. The accumulation module must first determine the first accumulation result corresponding to each non-zero element in the spatial coupling matrix before further obtaining the accumulation result corresponding to each row of the spatial coupling matrix. Figure 5 The spatial coupling matrix shown in FIG. 1 illustrates the process of obtaining the first cumulative result corresponding to the non-zero elements in the spatial coupling matrix: g is 10, Taking 57 as an example, it can be seen that there is only one non-zero element in the first row, and the non-zero element corresponds to 10 groups of symbols, and the number of symbols in each group is 57. These 10 groups of symbols are accumulated to obtain 57 symbols corresponding to the first row (that is, the first accumulation result corresponding to the first row); the second row has two non-zero elements, and their row and column position information is (2, 1) and (2, 2) respectively, and each non-zero element corresponds to 10 groups of symbols, which means that the accumulation module needs to complete the accumulation of 20 groups of symbols. For example, the 10 groups of symbols corresponding to the non-zero elements with row and column position information (2, 1) can be accumulated in sequence to obtain accumulation result 1, and the 10 groups of symbols corresponding to the non-zero elements with row and column position information (2, 2) can be accumulated in sequence to obtain accumulation result 2, and finally the accumulation result 1 and the accumulation result 2 are accumulated to obtain 57 symbols corresponding to the second row (that is, the first accumulation result corresponding to the second row); ..., and this operation is repeated until the first accumulation result corresponding to the last row of the spatial coupling matrix is calculated.
[0153] Exemplarily, after the multiplication module obtains the above encoding result, it sends the encoding result to the channel. For example, the accumulation module performs an accumulation operation on the transformation result 2 corresponding to each non-zero element in the rth row of the spatial coupling matrix to obtain the accumulation result corresponding to the rth row of the spatial coupling matrix, where r is a positive integer less than or equal to R, and outputs the accumulation result corresponding to the rth row of the spatial coupling matrix to the multiplication module, which multiplies the accumulation result corresponding to the rth row by the power coefficient and then outputs it.
[0154] In some possible embodiments, the output module may also only include an accumulation module. After the accumulation module completes the above accumulation operation, the accumulation module may directly use the accumulation result corresponding to each row of the spatial coupling matrix as the encoding result and send the encoding result to the channel.
[0155] In an embodiment of the present application, the number of clocks required to perform one encoding is related to the number of non-zero elements in the spatial coupling matrix. Wherein, the size of the spatial coupling matrix is R×C, the coupling width is W, and if the sparse signal corresponding to each column of the spatial coupling matrix is divided into g groups for processing by the matrix multiplication module, the number of clocks required to perform one encoding is g*C*W+Δ, where Δ is the number of additional clocks required due to control. For example, using a spatial coupling matrix of size 37×32 and a coupling width of 6, the sparse signal of length 960 corresponding to each column of the spatial coupling matrix is divided into g=10 groups, and the first transformation matrix is H 128 Compared with using a spatial coupling matrix of size 74×64 and a coupling width of 6, with other parameters unchanged, the ratio of the number of clocks required to perform one encoding when using a 37×32 spatial coupling matrix to the number of clocks required to perform one encoding when using a 74×64 spatial coupling matrix is approximately the ratio of the number of elements "1" in the 37×32 spatial coupling matrix to the number of elements "1" in the 74×64 spatial coupling matrix.
[0156] It can be seen that by implementing the embodiments of the present application, the encoding device can realize the encoding of sparse signals based on the spatial coupling structure in the complex domain. The encoding device realizes the matrix multiplication operation by addition and subtraction operations through the transformation matrix. Compared with the traditional Gaussian matrix multiplication, it can avoid the deployment of multipliers, greatly reducing the computational complexity and the difficulty of implementing the encoding hardware. In addition, before and after the encoding device executes the transformation matrix operation on the data, the correlation between the input data is reduced by deploying an interleaver such as a Banyan network, which is beneficial to improving the efficiency and performance of subsequent decoding.
[0157] See also Figure 6 , Figure 6 It is a schematic diagram of the architecture of an encoding hardware implementation provided in an embodiment of the present application. Figure 6 The encoding hardware architecture shown can achieve Figure 4 The encoding method described in the embodiment. Figure 6 In the embodiment, the encoding hardware architecture includes a controller, multiple memories (eg, ROM1, ROM2, ROM3, RAM1, and RAM2), a generation module, a matrix multiplication module, and multiple interleavers (ie, interleaver 1 and interleaver 2).
[0158] The functions of each module are described below:
[0159] Controller: used to coordinate the encoding work to run normally in a pipeline manner. For example, it can execute the sending of work enable signals, control the writing of RAM1 to start bit information, control the read and write functions of RAM2, and send output indication signals to inform the decoding device to prepare to receive the encoding results, etc.
[0160] ROM1: used to control the reading of bit information by RAM1;
[0161] RAM1: used to store bit information and read a preset number of bit information according to a read command sent by ROM1.
[0162] Generation module: used to generate a corresponding sparse signal according to the received bit information.
[0163] Interleaver 1: used to randomly permute the sparse signal output by the generation module to reduce the correlation between data, for example, a Banyan network can be used.
[0164] Matrix multiplication module: used to perform addition and subtraction operations on the output of interleaver 1 through the first transformation matrix, and the result obtained is the result of multiplying the input data with the first transformation matrix. The first transformation matrix can refer to the description of the corresponding content above, and will not be repeated here.
[0165] Interleaver 2: used to randomly permute the data output by the matrix multiplication module to reduce the correlation between the data, for example, a Banyan network can be used.
[0166] Accumulation module: used to perform accumulation on the output of interleaver 2 based on the spatial coupling matrix. Each time the accumulation module obtains the accumulation result corresponding to one row of the spatial coupling matrix, it performs a clearing operation based on the clearing signal sent by ROM1 to prepare for calculating and obtaining the accumulation result corresponding to the next row of the spatial coupling matrix.
[0167] Multiplication module: used to multiply the output of the accumulation module by the power coefficient.
[0168] RAM2: stores the encoding result output by the multiplication module based on the write command sent by the controller, and can also read and output the corresponding encoding result according to the read command sent by the controller.
[0169] ROM2: stores control information of interleaver 1, used to instruct interleaver 1 to select corresponding switch information.
[0170] ROM3: stores control information of interleaver 2, used to instruct interleaver 2 to select corresponding switch information.
[0171] here, Figure 6 The schematic diagram of the architecture of the encoding hardware implementation shown is only an example, and does not limit the hardware implementation of the above encoding device to only Figure 6 As shown, in some possible embodiments, the hardware implementation of the encoding device may also include Figure 6 The greater or lesser number of devices shown is not specifically limited herein.
[0172] Based on the above Figure 2 The decoding device in the encoding and decoding system is shown, and the decoding method provided by the embodiment of the present application is introduced below.
[0173] See also Figure 7 , Figure 7 A flowchart of a decoding method provided in an embodiment of the present application. The method can be applied to Figure 2 The method includes but is not limited to the following steps:
[0174] S701: The receiving module obtains channel observation values.
[0175] In one implementation, the receiving module receives the channel observation value on the weighted white Gaussian noise AwGN channel. Here, the channel observation value can be understood as the value after the coding result is added with noise, and the coding result is a sparse superposition code obtained based on the spatial coupling matrix. The coding result can be referred to above Figure 4 The description of S405 in the embodiment will not be repeated here.
[0176] S702: The iterative decoding module iteratively decodes the channel observation values based on the spatial coupling matrix, the first transformation matrix and the second transformation matrix. When the preset iteration condition is met, the decoding ends and the sparse signal estimated by the iterative decoding is output. The first transformation matrix and the second transformation matrix multiplied by the first transformation matrix are a unit matrix of dimension that is a power of 2.
[0177] Here, the elements of the first transformation matrix include +1 and -1, the first transformation matrix is used to implement matrix multiplication operation through addition and subtraction operations, and the second transformation matrix is used to implement the inverse operation of matrix multiplication operation through addition and subtraction operations.
[0178] In one implementation, when the encoding and decoding of the sparse superposition code is performed in the complex domain, the first transformation matrix is composed of elements +1, -1, complex number -i and complex number i. In this case, the first transformation matrix and the second transformation matrix can refer to the above Figure 2 The description of the first transform matrix and the second transform matrix in the hardware design of the sparse superposition code in the complex domain in the embodiment will not be repeated here.
[0179] In another implementation, when the encoding and decoding of the sparse superposition code is performed on the real number field, the first transformation matrix is composed of elements +1 and -1. In this case, the first transformation matrix and the second transformation matrix can refer to the above Figure 2The description of the first transform matrix and the second transform matrix in the hardware design of the sparse superposition code in the real number field when the first transform matrix is applied in the embodiment is not repeated here.
[0180] Here, the iterative decoding module includes Figure 2 The mean variance module 1, interleaver 3, matrix multiplication module 1, mean variance module 2, matrix multiplication module 2 and interleaver 4 in the. Compared with Figure 2 In the coding device shown, interleaver 4 corresponds to interleaver 1 in the coding device, and interleaver 3 corresponds to interleaver 2 in the coding device. In other words, interleaver 3 is a deinterleaver of interleaver 2, and interleaver 4 is a deinterleaver of interleaver 1.
[0181] The iterative decoding process of the iterative decoding module in S702 is described in detail below in conjunction with each module in the iterative decoding module. Figure 8 Description of the embodiments, Figure 8 1 is a flowchart of an iterative decoding method of an iterative decoding module provided in an embodiment of the present application. The method includes but is not limited to the following steps:
[0182] S801: Start t=1th iterative decoding.
[0183] S802: The interleaver 3 interleaves the sparse signal of the t-th iterative estimation output by the mean variance module 1 to output the first result of the t-th iterative estimation, wherein when t=1, the sparse signal of the first iterative estimation is the initial sparse signal.
[0184] Here, the sparse signal estimated at the tth iteration output by the mean variance module 1 is expressed as β t , then the first result of the t-th iteration estimation output by interleaver 3 is the β after interleaving by interleaver 3 t , which may also be recorded as β t .
[0185] For example, t = 1, β 1 is the initial sparse signal.
[0186] S803: The matrix multiplication module 1 uses the first transformation matrix to perform addition and subtraction operations on the first result of the t-th iteration estimation to output the second result of the t-th iteration estimation.
[0187] Exemplarily, the first transformation matrix used by the matrix multiplication module is represented as H, and the second result estimated at the t-th iteration can be recorded as Hβ t .
[0188] S804: The mean-variance module 2 processes the channel observation value and the second result of the t-th iterative estimation to output a third result of the t-th iterative estimation.
[0189] Exemplarily, the mean variance module 2 adopts linear estimation, and the calculation formulas involved in the mean variance module 2 in this iterative decoding process are the following formulas (4) to (8):
[0190]
[0191] in, represents the first variance of the t-th iteration estimate corresponding to the r-th row of the spatial coupling matrix, L is the number of segments of the sparse signal (equivalent to the sparse signal 1 corresponding to the bit information in S401), C is the number of columns of the spatial coupling matrix, and W rc is the constant for power allocation, i.e., the power coefficient used by the multiplication module in the encoding device, represents the sparse signal estimated at the tth iteration corresponding to the cth column of the spatial coupling matrix.
[0192]
[0193] in, represents the second variance of the (t-1)th iteration estimate corresponding to the rth row of the spatial coupling matrix, represents the third difference estimated at the tth iteration corresponding to the rth row of the spatial coupling matrix, Please refer to the description of the above formula (4).
[0194]
[0195] Among them, σ 2 represents the variance of the noise, As described in formula (4), n is the code length, that is, the number of preset symbols to be transmitted by the above encoding device, R is the number of rows of the spatial coupling matrix, represents the first mean estimated at the tth iteration corresponding to the rth row of the spatial coupling matrix, represents the second variance of the t-th iteration estimate corresponding to the r-th row of the spatial coupling matrix.
[0196] Among them, when t = 1, is 2 .
[0197] Z t =y-Aβ t +v t ⊙Z t-1 Formula (7)
[0198] Among them, Z t represents the first mean value of the t-th iteration estimate corresponding to the spatial coupling matrix, y is the received channel observation value, H represents the first transformation matrix used by the matrix multiplication module 1, β tis the sparse signal estimated at the tth iteration corresponding to the spatial coupling matrix, v t is the third error estimated at the tth iteration corresponding to the spatial coupling matrix, and ⊙ is the point multiplication operation. From S803, we know that Hβ t is the output of matrix multiplication module 1.
[0199]
[0200] in, represents the fourth variance of the t-th iteration estimate corresponding to the c-th column of the spatial coupling matrix, n, R, Please refer to the description of formula (6) above, W rc Please refer to the description of formula (4).
[0201] Exemplarily, the mean variance module 2 performs a multiplication of the channel observation value y and the Hβ output by the matrix multiplication module 1. t After processing, the third result of the t-th iteration estimation can be recorded as Based on the description of the above formula (6) and formula (7), we can know that φ t represents the second variance of the t-th iteration estimate corresponding to the spatial coupling matrix, Z t represents the first mean estimated at the tth iteration corresponding to the spatial coupling matrix.
[0202] S805: The matrix multiplication module 2 uses the second transformation matrix to perform addition and subtraction operations on the third result of the t-th iteration estimation to output a fourth result of the t-th iteration estimation.
[0203] Exemplarily, the third result of the t-th iteration estimation output by the mean variance module 2 is Then the matrix multiplication module 2 uses the second transformation matrix pair After addition and subtraction operations, the fourth result of the tth iteration can be written as Among them, H * is the conjugate transpose of the above H.
[0204] S806: The interleaver 4 interleaves the fourth result of the t-th iterative estimation to output a fifth result of the t-th iterative estimation.
[0205] Exemplarily, the fourth result of the t-th iteration estimation is Then the fifth result of the t-th iteration estimation is the interleaved result after interleaving by interleaver 4. Might as well remember it as
[0206] S807: The mean-variance module 1 processes the fifth result of the t-th iteration to obtain a sparse signal estimated for the t+1-th iteration.
[0207] Here, the calculation of the mean variance module 1 needs to be based on the following formula (9)-formula (11):
[0208]
[0209] in, represents the function based on Bayesian posterior estimation, q k represents the constellation point in KPSK, R(x) represents the real part of x, s represents the mean, is the conjugate of s, and K is the number of PSK modulation phases.
[0210]
[0211] Among them, β t+1 represents the sparse signal estimated at the (t+1)th iteration, β t represents the signal estimated at the tth iteration, η t (x) represents the function based on Bayesian posterior estimation corresponding to the t-th iteration, represents the fourth variance of the t-th iteration estimate corresponding to the spatial coupling matrix, H * is the conjugate transpose of H, H, Z t Please refer to the description of formula (7) above.
[0212]
[0213] in, represents the fifth variance of the t-th iteration estimate corresponding to the c-th column of the spatial coupling matrix, L and C can refer to the description of the above formula (4), which will not be repeated here.
[0214] S808: The mean variance module 1 determines whether this iteration meets the preset iteration condition.
[0215] When the preset iteration condition is not met, the mean variance module 1 outputs the sparse signal estimated by the t+1th iteration to the interleaver 3 to execute S809; when the preset iteration condition is met, S810 is executed.
[0216] For example, the preset iteration condition may be satisfied when the current iteration number reaches the preset maximum iteration number, or when the current iteration reaches the early stopping condition, where the early stopping condition is the mean variance module 1 calculated in S807. The values of are all 0.
[0217] S809: The number of iterative decoding times t is incremented by 1, and the process jumps to S802.
[0218] It can be understood that when the mean variance module 1 determines that the current iteration does not meet the preset iteration condition, it will start the next iteration decoding, that is, t is incremented by 1 and jumps to S802.
[0219] S810: The decoding is completed and the mean-variance module 1 outputs the sparse signal estimated by the t+1th iteration.
[0220] It can be seen that by implementing the embodiment of the present application, the decoding device can implement iterative decoding of channel observation values in the complex domain based on the spatial coupling matrix, the first transformation matrix and the second transformation matrix. The first transformation matrix is used to implement matrix multiplication operations through addition and subtraction operations, and the second transformation matrix implements the inverse operation of matrix multiplication operations through addition and subtraction operations. Compared with the decoding of traditional sparse superposition codes, the wiring difficulty of the decoding hardware is reduced, and it is also conducive to reducing the computational complexity of decoding. In addition, deploying an interleaver such as a Banyan network in the decoding device reduces the correlation between input data and can improve the efficiency and performance of decoding.
[0221] See also Fig. 9 , Fig. 9 Schematic diagram of a decoding hardware implementation provided by an embodiment of the present application. Fig. 9 In the figure, the decoding hardware architecture consists of multiple computing modules and storage modules, wherein the computing module is represented by a solid rectangular box, the storage module is represented by a dotted rectangular box, and the arrows connecting the modules represent the direction of data transmission.
[0222] exist Fig. 9 The parameters in each rectangular box can refer to the above Figure 8 Description of the corresponding parameters in formula (4) to formula (11) in the embodiment, such as parameter Z t represents the first mean of the t-th iteration estimate corresponding to the spatial coupling matrix, parameter y represents the channel observation value received by the above receiving module, parameter Hβ t is the second result estimated at the tth iteration of the above matrix multiplication module 1, etc.
[0223] exist Fig. 9 In Z t The calculation module where Z is located is used as an example to illustrate t The relationship between the computing module and other surrounding modules: It can be seen that Z t The modules connected to the input end of the calculation module are: the storage module where y is located, Hβ t The computing module where it is located, V t The calculation module and Z t-1 The storage module where Z is located t The calculation module is based on the obtained parameters y, Hβ t 、Vt and Z t-1 Z can be calculated t ; Z t The output end of the calculation module is connected to the following modules: Z t-1 The storage module and The calculation module where Z t The calculation module where it is located obtains Z t Then store it in Z t-1 The storage module where it is located is used for the next iteration, Z t You can also participate The calculation within the calculation module.
[0224] For example, Fig. 9 The modules shown can be deployed independently to achieve the above Figure 8 The decoding method shown in the embodiment can also be fully or partially integrated to implement the above Figure 8 The decoding method shown in the embodiment.
[0225] by Figure 2 The decoding device shown is used as an example Fig. 9 An integration method of various modules in . Fig. 9 In the example, the storage module where y is located can be integrated into the receiving module in the above decoding device, and Z t The computing module where it is located, Z t-1 The storage module where it is located, The computing module where it is located, The storage module where it is located, The computing module where it is located, V t The calculation module and The calculation module can be integrated into the mean variance module 2 in the above decoding device. The calculation module where Hβ is located can be integrated into the matrix multiplication module 2 in the above decoding device. t The calculation module where n is located can be integrated into the matrix multiplication module 1 in the above decoding device, t The calculation module where it is located, ||β t || 2 The calculation module where it is located, t The computing module where it is located, β t The storage module and the calculation module for determining the preset iteration condition can be integrated into the mean-variance module 1 in the above-mentioned decoding device.
[0226] Based on the encoding method and decoding method described in the above embodiments, the embodiments of the present application also provide a coding and quantization scheme when the fixed-point performance is close to the floating-point performance.
[0227] For example, assuming that the parameter conditions are: the information is 960*7 (i.e., L*b) bits, and every 7 bits generate a sparse signal with a length B of 32, then the total length of the sparse signal corresponding to the bit information is 960*32 (i.e., L*B), the size of the spatial coupling matrix is 37*32 (i.e., R×C), the length of the sparse signal corresponding to each column of the spatial coupling matrix is 960, the sparse signals corresponding to each column of the spatial coupling matrix are grouped, for example, the number of groups g=10, and the first transformation matrix used by the matrix multiplication module is H 128 Assuming that the number of symbols corresponding to each row of the spatial coupling matrix is 57, the total number of symbols to be sent is 2109 (i.e., 37*57), and the code rate is 3.1836 (i.e., 960*7 / 2109). In this case, when the fixed-point performance is close to the floating-point performance, the encoding quantization scheme can be seen in Table 1 below, and the decoding quantization scheme can be seen in Table 2 below.
[0228] Based on the coding quantization scheme shown in Table 1, it can be seen that in the coding device, the bit width of the above-mentioned generation module is set to 2 bits, including 1 sign bit and 1 integer bit; the bit width of the interleaver 1 is set to 2 bits, including 1 sign bit and 1 integer bit; the bit width of the matrix multiplication module is set to 3 bits, including 1 sign bit and 2 integer bits; the bit width of the interleaver 2 is set to 3 bits, including 1 sign bit and 2 integer bits; the bit width of the accumulation module is set to 9 bits, including 1 sign bit and 8 integer bits; the bit width of the multiplication module is set to 11 bits, including 1 sign bit, 1 integer bit and 9 decimal bits.
[0229] Table 1
[0230] Bit width Sign bit Integer digit Decimal Places Generate Module 2 1 1 0 Interleaver 1 2 1 1 0 Matrix multiplication module 3 1 2 0 Interleaver 2 3 1 2 0 Accumulation module 9 1 8 0 Multiplication module 11 1 1 9
[0231] Here, Table 1 is an example of a coding quantization scheme, which is only for the purpose of clearly showing the quantization scheme of the above-mentioned coding device, and should not constitute a limitation on the quantization scheme of the coding device.
[0232] Based on the decoding quantization scheme shown in Table 2, it can be known that the bit width, number of sign bits, number of integer bits and number of decimal places of each of the 15 parameters in the above decoding process are listed in Table 2. For example, the bit width of the above parameter β is set to 11 bits, which includes 1 sign bit, 1 integer bit and 9 decimal places; the bit width of the parameter y is set to 11 bits, which includes 1 sign bit, 1 integer bit and 9 decimal places; the bit width of the parameter z is set to 11 bits, which includes 1 sign bit, 1 integer bit and 9 decimal places; ..., the bit width, number of sign bits, number of integer bits and number of decimal places of other parameters can be specifically referred to Table 2, which will not be repeated here.
[0233] Table 2
[0234] Bit width Sign bit Integer digit Decimal Places β 11 1 1 9 y 11 1 1 9 Z 11 1 1 9 γ 10 1 0 9 (5 to 13 are possible) σ 10 1 0 9 (5 to 13 are possible) <![CDATA[Φ -1 ]]> 13 1 11 1 V 11 1 1 9 v×Z 11 1 1 9 τ 11 1 0 10 <![CDATA[τ -1 ]]> 10 1 7 2 s 13 1 2 10 Aβ 12 1 2 9 <![CDATA[H * z×Φ -1 ]]> 17 1 6 10 <![CDATA[τ×H * z×Φ -1 ]]> 13 1 2 10 Ψ 11 1 1 9
[0235] Here, Table 2 is an example of a decoding quantization scheme, which is only for the purpose of clearly showing the quantization scheme of the above decoding device, and should not constitute a limitation on the quantization scheme of the decoding device.
[0236] Based on the coding and decoding quantization schemes provided in Table 1 and Table 2 above, the present application embodiment also provides a decoding performance diagram of a sparse superposition code. Fig.10 , Fig.10 This is a schematic diagram of the decoding performance of some sparse superposition codes provided in an embodiment of the present application, where the maximum number of iterations is set to 70, for example.
[0237] exist Fig.10 In (1), the vertical axis represents the floating point frame error rate (FER), and the horizontal axis represents the ratio of each bit energy to the noise power spectral density. Fig.10 (1) shows three curves. The curve where the square data points are located is a floating-point FER curve drawn based on software simulation, the curve where the circular data points are located is a fixed-point FER curve drawn based on software simulation, and the curve where the triangular data points are located is a fixed-point FER curve obtained by testing on hardware FPGA. It can be seen that compared with the floating-point performance, when the FER value is 1e-3, the fixed-point performance has a loss of about 0.45dB.
[0238] exist Fig.10 In (2), the vertical axis represents the bit error rate (BER), and the horizontal axis represents the ratio of each bit energy to the noise power spectral density. Fig.10 (2) shows three curves. The curve where the square data points are located is the floating-point BER curve drawn based on software simulation, the curve where the circular data points are located is the fixed-point BER curve drawn based on software simulation, and the curve where the triangular data points are located is the fixed-point BER curve obtained by testing on hardware FPGA. It can be seen that compared with the floating-point performance, when the BER value is 1e-4, the fixed-point performance has a loss of about 0.45dB.
[0239] In summary, Fig.10 It can be seen that compared with the floating-point performance under the same parameters, the quantization scheme provided in the embodiment of the present application (ie, as shown in Table 1 and Table 2) achieves a fixed-point performance with a performance loss of less than 0.6 dB.
[0240] It should be understood that the division of each module in the above device (such as a compiling device or a decoding device) can be a division of logical functions, which can be fully or partially integrated into one physical entity or physically separated in actual implementation. In addition, the modules in the device can be implemented in the form of a processor calling software; the modules in the device can be implemented in the form of a hardware circuit, and the functions of some or all units can be realized by designing the hardware circuit, and the hardware circuit can be understood as one or more processors; for example, in one implementation, the hardware circuit is an application-specific integrated circuit (ASIC), and the functions of some or all of the above units are realized by designing the logical relationship of the components in the circuit; for example, in another implementation, the hardware circuit can be implemented by a programmable logic device (PLD), taking a field programmable gate array (FPGA) as an example, which can include a large number of logic gate circuits, and the connection relationship between the logic gate circuits is configured through a configuration file, so as to realize the functions of some or all of the above units. Alternatively, the device includes a processor, which is connected to a memory, in which instructions are stored, and the processor calls the instructions stored in the memory to implement any of the above methods or implement the functions of each module of the device, wherein the processor is, for example, a general-purpose processor, such as a central processing unit (CPU) or a microprocessor, and the memory is a memory inside the device or a memory outside the device.
[0241] Exemplarily, all modules of the above apparatus may be implemented entirely by a processor calling software, or entirely by a hardware circuit, or partially by a processor calling software and the rest by a hardware circuit.
[0242] In the embodiment of the present application, the processor is a circuit with signal processing capability. In one implementation, the processor can be a circuit with instruction reading and running capability, such as a central processing unit (CPU), a microprocessor, a graphics processing unit (GPU) (which can be understood as a microprocessor), or a digital signal processor (DSP), etc.; in another implementation, the processor can realize certain functions through the logical relationship of the hardware circuit, and the logical relationship of the hardware circuit is fixed or reconfigurable, such as a hardware circuit implemented by a processor as an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), such as an FPGA. In a reconfigurable hardware circuit, the processor loads a configuration document to implement the process of hardware circuit configuration, which can be understood as the process of the processor loading instructions to implement the functions of some or all of the above units. In addition, it can also be a hardware circuit designed for artificial intelligence, which can be understood as an ASIC, such as a neural network processing unit (NPU), a tensor processing unit (TPU), a deep learning processing unit (DPU), etc.
[0243] It can be seen that each module in the above device can be one or more processors (or processing circuits) configured to implement the above method, such as: CPU, GPU, NPU, TPU, DPU, microprocessor, DSP, ASIC, FPGA, or a combination of at least two of these processor forms.
[0244] In addition, the modules in the above device can be fully or partially integrated together, or can be implemented independently. In one implementation, these modules are integrated together and implemented in the form of a system-on-a-chip (SOC). The SOC may include at least one processor for implementing any of the above methods or implementing the functions of the modules of the device. The type of the at least one processor may be different, for example, including a CPU and an FPGA, a CPU and an artificial intelligence processor, a CPU and a GPU, etc.
[0245] In the above-mentioned embodiments of this invention, the description of each embodiment has its own emphasis. For the part that is not described in detail in a certain embodiment, please refer to the relevant description of other embodiments. In addition, in the various embodiments of this application, if there is no special explanation and logical conflict, the terms and / or descriptions between the various embodiments are consistent and can be referenced to each other. The technical features in different embodiments can be combined to form a new embodiment according to their internal logical relationship.
[0246] It should be noted that, a person skilled in the art can see that all or part of the steps in the various methods of the above embodiments can be completed by instructing related hardware through a program, and the program can be stored in a computer-readable storage medium, and the storage medium includes a read-only memory (ROM), a random access memory (RAM), a programmable read-only memory (PROM), an erasable programmable read only memory (EPROM), a one-time programmable read-only memory (OTPROM), an electrically-erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, magnetic disk storage, magnetic tape storage, or any other computer-readable medium that can be used to carry or store data.
[0247] The essence of the technical solution of the present application or the part that makes the contribution or all or part of the technical solution can be embodied in the form of a software product. The computer program product is stored in a storage medium and includes a number of instructions for enabling a device (which can be a personal computer, a server, or a network device, a robot, a single-chip microcomputer, a chip, a robot, etc.) to execute all or part of the steps of the method described in each embodiment of the present application.
Claims
1. A coding device, characterized in that: The device comprises: A generating module, configured to generate a first sparse signal according to the received bit information, wherein the first sparse signal is a sparse signal corresponding to the wth non-zero element in the cth column of the spatial coupling matrix, where c is a positive integer less than or equal to the number of columns of the spatial coupling matrix, w is a positive integer less than or equal to W, and W is the number of the non-zero elements in each column of the spatial coupling matrix; A first interleaver, configured to interleave the first sparse signal to obtain a second sparse signal; a matrix multiplication module, configured to perform addition and subtraction operations on the second sparse signal using a first transformation matrix to obtain a first transformation result, wherein the elements of the first transformation matrix include +1 and -1; A second interleaver, used for interleaving the first transformation result to obtain a second transformation result; The output module is used to process the second transformation result corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result.
2. The device according to claim 1, characterized in that The first transformation matrix is composed of elements +1 and -1, and the multiplication of the first transformation matrix and the second transformation matrix is 2 e dimensional unit matrix, e is a positive integer, and the second transformed matrix is the transposed matrix of the first transformed matrix.
3. The device according to claim 1, characterized in that The first transformation matrix is composed of elements +1, -1, complex number -i and complex number i, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e dimensional unit matrix, e is a positive integer greater than 1, and the second transformation matrix is the conjugate transposed matrix of the first transformation matrix.
4. The device according to any one of claims 1 to 3, characterized in that: The first interleaver and the second interleaver adopt a Banyan network.
5. The device according to any one of claims 1 to 4, characterized in that: The number of clocks required for the device to perform one encoding is associated with the number of non-zero elements in the spatial coupling matrix.
6. The device according to any one of claims 1 to 5, characterized in that: The output module includes an accumulation module and a multiplication module, and the output module is used to process the second transformation result corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result, including: The accumulation module is used to perform an accumulation operation on the second transformation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain an accumulation result corresponding to each row of the spatial coupling matrix; The multiplication module is used to multiply the accumulated result corresponding to each row of the spatial coupling matrix by the power coefficient to obtain the encoding result.
7. The device according to claim 6, characterized in that The first sparse signal includes g groups of first sub-sparse signals, the second sparse signal includes g groups of second sub-sparse signals, the first transform result includes g groups of first sub-transform results, and the second transform result includes g groups of second sub-transform results, wherein the j-th group of first sub-sparse signals corresponds to the j-th group of second sub-sparse signals, the j-th group of second sub-sparse signals corresponds to the j-th group of first sub-transform results, the j-th group of first sub-transform results corresponds to the j-th group of second sub-transform results, and j is a positive integer less than or equal to g; The accumulation module is used to perform an accumulation operation on the second transformation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain an accumulation result corresponding to each row of the spatial coupling matrix, including: The accumulation module is used to: perform an accumulation operation on g groups of second sub-transformation results corresponding to each non-zero element in the spatial coupling matrix to obtain a first accumulation result corresponding to each non-zero element in the spatial coupling matrix; perform an accumulation operation on the first accumulation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain an accumulation result corresponding to each row of the spatial coupling matrix.
8. A decoding device, characterized in that: The device comprises: A receiving module, used to obtain a channel observation value, where the channel observation value is a value after noise is added to the coding result, and the coding result is a sparse superposition code obtained based on a spatial coupling matrix; An iterative decoding module, configured to iteratively decode the channel observation value based on the spatial coupling matrix, the first transformation matrix, and the second transformation matrix, and when a preset iteration condition is met, the decoding ends and a sparse signal estimated by the iterative decoding is output; Among them, the first transformation matrix is used to implement matrix multiplication operations through addition operations and subtraction operations, and the second transformation matrix is used to implement the inverse operation of the matrix multiplication operation through addition operations and subtraction operations. The elements of the first transformation matrix include +1 and -1, and the first transformation matrix and the second transformation matrix multiplied by the second transformation matrix are a unit matrix of a power-of-2 dimension.
9. The device according to claim 8, characterized in that The first transformation matrix is composed of elements +1 and -1, and the multiplication of the first transformation matrix and the second transformation matrix is 2 e dimensional unit matrix, e is a positive integer, and the second transformed matrix is the transposed matrix of the first transformed matrix.
10. The device according to claim 8, characterized in that The first transformation matrix is composed of elements +1, -1, complex number -i and complex number i, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e dimensional unit matrix, e is a positive integer greater than 1, and the second transformation matrix is the conjugate transposed matrix of the first transformation matrix.
11. The device according to any one of claims 8 to 10, characterized in that: The iterative decoding module includes a first interleaver, a second interleaver, a first matrix multiplication module, a second matrix multiplication module, a first mean variance module and a second mean variance module, wherein: The first interleaver is used to interleave the sparse signal of the t-th iteration estimation output by the first mean variance module to obtain a first result of the t-th iteration estimation, where t is a positive integer, and the sparse signal of the t-th iteration estimation corresponds to the spatial coupling matrix; The first matrix multiplication module is used to perform addition and subtraction operations on the first result using the first transformation matrix to obtain a second result of the t-th iteration estimation; The second mean variance module is used to obtain a third result of the t-th iteration estimation according to the channel observation value and the second result; The second matrix multiplication module is used to perform addition and subtraction operations on the third result using the second transformation matrix to obtain a fourth result of the t-th iteration estimation; The second interleaver is used to interleave the fourth result to obtain a fifth result of the t-th iteration estimation; The first mean variance module is used to obtain the sparse signal estimated by the t+1th iteration according to the fifth result, and when the preset iteration condition is not met, output the sparse signal estimated by the t+1th iteration to the first interleaver to perform the next iteration, otherwise the decoding ends.
12. The device according to claim 11, characterized in that The first interleaver and the second interleaver adopt a Banyan network.
13. A coding method, characterized in that: The method comprises: The generating module generates a first sparse signal according to the received bit information, where the first sparse signal is a sparse signal corresponding to the wth non-zero element in the cth column of the spatial coupling matrix, where c is a positive integer less than or equal to the number of columns of the spatial coupling matrix, w is a positive integer less than or equal to W, and W is the number of the non-zero elements in each column of the spatial coupling matrix; A first interleaver interleaves the first sparse signal to obtain a second sparse signal; The matrix multiplication module uses a first transformation matrix to perform addition and subtraction operations on the second sparse signal to obtain a first transformation result, wherein the elements of the first transformation matrix include +1 and -1; A second interleaver interleaves the first transformation result to obtain a second transformation result; The output module processes the second transformation result corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result.
14. The method according to claim 13, characterized in that The first transformation matrix is composed of elements +1 and -1, and the multiplication of the first transformation matrix and the second transformation matrix is 2. e dimensional unit matrix, e is a positive integer, and the second transformed matrix is the transposed matrix of the first transformed matrix.
15. The method according to claim 13, characterized in that The first transformation matrix is composed of elements +1, -1, complex number -i and complex number i, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e dimensional unit matrix, e is a positive integer greater than 1, and the second transformation matrix is the conjugate transposed matrix of the first transformation matrix.
16. The method according to any one of claims 13 to 15, characterized in that: The first interleaver and the second interleaver adopt a Banyan network.
17. The method according to any one of claims 13 to 16, characterized in that: The method is applied to a coding device, and the number of clocks required by the coding device to perform one encoding is associated with the number of non-zero elements in the spatial coupling matrix.
18. The method according to any one of claims 13 to 17, characterized in that: The output module includes an accumulation module and a multiplication module, and the output module processes the second transformation result corresponding to each non-zero element in each column of the spatial coupling matrix to obtain a coding result, including: The accumulation module performs an accumulation operation on the second transformation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain an accumulation result corresponding to each row of the spatial coupling matrix; The multiplication module multiplies the accumulated result corresponding to each row of the spatial coupling matrix by the power coefficient to obtain the encoding result.
19. The method according to claim 18, characterized in that The first sparse signal includes g groups of first sub-sparse signals, the second sparse signal includes g groups of second sub-sparse signals, the first transform result includes g groups of first sub-transform results, and the second transform result includes g groups of second sub-transform results, wherein the j-th group of first sub-sparse signals corresponds to the j-th group of second sub-sparse signals, the j-th group of second sub-sparse signals corresponds to the j-th group of first sub-transform results, the j-th group of first sub-transform results corresponds to the j-th group of second sub-transform results, and j is a positive integer less than or equal to g; The accumulation module performs an accumulation operation on the second transformation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain an accumulation result corresponding to each row of the spatial coupling matrix, including: The accumulation module performs an accumulation operation on g groups of second sub-transformation results corresponding to each non-zero element in the spatial coupling matrix to obtain a first accumulation result corresponding to each non-zero element in the spatial coupling matrix; and performs an accumulation operation on the first accumulation results corresponding to the non-zero elements in each column of the spatial coupling matrix in units of rows to obtain an accumulation result corresponding to each row of the spatial coupling matrix.
20. A decoding method, characterized in that: The method comprises: The receiving module obtains a channel observation value, where the channel observation value is a value after noise is added to the coding result, and the coding result is a sparse superposition code obtained based on a spatial coupling matrix; The iterative decoding module iteratively decodes the channel observation value based on the spatial coupling matrix, the first transformation matrix and the second transformation matrix, and when a preset iteration condition is met, the decoding ends and the sparse signal estimated by the iterative decoding is output; Among them, the first transformation matrix is used to implement matrix multiplication operations through addition operations and subtraction operations, and the second transformation matrix is used to implement the inverse operation of the matrix multiplication operation through addition operations and subtraction operations. The elements of the first transformation matrix include +1 and -1, and the first transformation matrix and the second transformation matrix multiplied by the second transformation matrix are a unit matrix of a power-of-2 dimension.
21. The method according to claim 20, characterized in that The first transformation matrix is composed of elements +1 and -1, and the multiplication of the first transformation matrix and the second transformation matrix is 2 e dimensional unit matrix, e is a positive integer, and the second transformed matrix is the transposed matrix of the first transformed matrix.
22. The method according to claim 20, characterized in that The first transformation matrix is composed of elements +1, -1, complex number -i and complex number i, and satisfies that the multiplication of the first transformation matrix and the second transformation matrix is 2 e dimensional unit matrix, e is a positive integer greater than 1, and the second transformation matrix is the conjugate transposed matrix of the first transformation matrix.
23. The method according to any one of claims 20 to 22, characterized in that: The iterative decoding module includes a first interleaver, a second interleaver, a first matrix multiplication module, a second matrix multiplication module, a first mean variance module and a second mean variance module. The process of the iterative decoding module performing one iterative decoding includes: The first interleaver interleaves the sparse signal of the t-th iteration estimation output by the first mean variance module to obtain a first result of the t-th iteration estimation, where t is a positive integer, and the sparse signal of the t-th iteration estimation corresponds to the spatial coupling matrix; The first matrix multiplication module uses the first transformation matrix to perform addition and subtraction operations on the first result to obtain a second result estimated at the tth iteration; The second mean variance module obtains a third result of the t-th iteration estimation according to the channel observation value and the second result; The second matrix multiplication module uses the second transformation matrix to perform addition and subtraction operations on the third result to obtain a fourth result of the t-th iteration estimation; The second interleaver interleaves the fourth result to obtain a fifth result of the t-th iteration estimation; The first mean variance module obtains the sparse signal estimated at the t+1th iteration according to the fifth result, and when the preset iteration condition is not met, outputs the sparse signal estimated at the t+1th iteration to the first interleaver to perform the next iteration, otherwise decoding ends.
24. The method according to claim 23, characterized in that The first interleaver and the second interleaver adopt a Banyan network.
25. A communication device, characterized in that: The communication device comprises a memory and a processor, the memory stores computer program instructions, and the processor runs the computer program instructions to enable the device to perform the encoding method as described in any one of claims 13-19, or perform the decoding method as described in claims 20-24.
26. A coding system, characterized in that: The coding system comprises a coding device as claimed in any one of claims 1 to 7 and a decoding device as claimed in any one of claims 8 to 12.
27. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores program instructions, and the program instructions are used to implement the encoding method described in any one of claims 13-19, or to implement the decoding method described in any one of claims 20-24.
