Codebook determination method, device and storage medium
By establishing a factor graph matrix in the SCMA system, determining the rotation angle and amplitude parameters, and optimizing the mother codebook, the problem of lack of optimal codebook in the existing technology is solved, and the channel gain and performance of the system are improved.
Patent Information
- Application Number
- CN202310613115.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-05-26
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2043-05-26
AI Technical Summary
The existing technology lacks a method for designing an optimal codebook to improve the system performance of the SCMA system, resulting in a decrease in the performance of the SCMA system.
By establishing a first factor graph matrix with K rows and J columns based on the channel gains of J users in the system on K REs, the system's rotation angle, amplitude parameters and mother codebook are determined, and the codebook is optimized using the Latin matrix principle to improve system performance.
The codebook is optimized while minimizing the system block error rate, thereby improving the channel gain and system performance of the SCMA system.
Smart Images

Figure CN116599554B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of emergency communication technology, and in particular to a codebook determination method, device, and storage medium. Background Art
[0002] Among the related technologies, the Internet of Things technology has been widely used. Currently, the SCMA technology is usually used for communication transmission in the Internet of Things technology. In order to improve the system performance of the SCMA system, the codebook optimization method is usually used to improve the system performance of the SCMA system. However, there is currently a lack of technical solutions for designing the optimal codebook to improve the system performance of the SCMA system. Summary of the Invention
[0003] The present application provides a codebook determination method, device, and storage medium, which can improve system performance by determining an optimal codebook.
[0004] To solve the above technical problems, this application adopts the following technical solutions:
[0005] In a first aspect, a codebook determination method is provided, the method comprising: establishing a first factor graph matrix with K rows and J columns based on the channel gains of J users in the system on K REs respectively; wherein each column in the first factor graph matrix includes N non-zero elements, and each row includes L non-zero elements; wherein J and K are both positive integers; N is a positive integer less than J, and L is a positive integer less than K; determining L rotation angles of the system, and a first amplitude parameter and a second amplitude parameter of the system when the block error rate of the system is less than a preset value; wherein the first amplitude parameter is used to determine a constellation point in an N-dimensional constellation diagram of the system, and the second amplitude parameter is used to determine each one-dimensional constellation in the N-dimensional constellation diagram of the system; based on The first amplitude parameter and the second amplitude parameter determine the system's mother codebook; according to the Latin matrix principle, L rotation angles are assigned to the non-zero elements in each row of the first factor graph matrix to obtain the second factor graph matrix; based on the second factor graph matrix, the target rotation matrix of the x-th user is determined; the target rotation matrix is a matrix with K rows and N columns, and each column of the target rotation matrix includes a non-zero element assigned to the rotation angle. The number and value of the non-zero elements in the y-th row of the target rotation matrix are the same as the y-th non-zero element in the x-th column of the second factor graph; where x is a positive integer less than J, and y is a positive integer less than K; based on the mother codebook and the target rotation matrix, the codebook of the x-th user is determined.
[0006] In combination with the first aspect above, in a possible implementation, based on the channel gains of J users in the system on K REs, respectively, a first factor graph matrix with K rows and J columns is established, including: establishing a first matrix with K rows and J columns; wherein the x-th user corresponds to the x-th column in the first matrix, and the y-th RE corresponds to the y-th row in the first matrix; determining the channel gain of each user in the J users on each RE of the K REs; performing the following target operation on each user in the J users to determine the non-zero elements of the first matrix and the first factor graph matrix; the target operation includes: converting the K channel gain values of the x-th user into Sort in descending order; select the channel gain value based on the sorting and execute the following steps 1, 2 and 3: Step 1, determine whether there are L non-zero elements in the row corresponding to the RE corresponding to the currently selected channel gain value; Step 2, if there are not L non-zero elements, assign a non-zero element to the position of the column corresponding to the RE corresponding to the current channel gain value in the x-th column of the first matrix; Step 3, if there are L non-zero elements, determine that the next channel gain value in the sorting is the currently selected channel gain value and execute Steps 1, 2 and 3 until it is determined that N elements in the x-th column are assigned to non-zero elements.
[0007] In combination with the above-mentioned first aspect, in a possible implementation method, determining the L rotation angles of the system and the first amplitude parameter and the second amplitude parameter of the system when the block error rate of the system is less than a preset value includes: establishing a reinforcement learning model of the L rotation angles of the system and the first amplitude parameter and the second amplitude parameter of the system with minimizing the block error rate of the system as a constraint condition; wherein the action vector of the reinforcement learning model includes: the L rotation angles of the system and the first amplitude parameter and the second amplitude parameter of the system; the elements of the state vector of the reinforcement learning model include: J, M, K, N, and the previous action vector; based on the reinforcement learning model and the simulation value of the block error rate of the system, determining the L rotation angles of the system and the first amplitude parameter and the second amplitude parameter of the system.
[0008] In combination with the foregoing first aspect, in a possible implementation, determining a mother codebook of the system based on the first amplitude parameter and the second amplitude parameter includes: determining a one-dimensional basic constellation and the first amplitude parameter, where the one-dimensional basic constellation satisfies the following formula:
[0009] z1=[z 1,1 , z 1,2 ,...,z 1,M ]=[-r M / 2 , -r M / 2-1 ,...,-r1,r1,...,r M / 2 ], the first amplitude parameter satisfies the following formula: α m =r m+1 / r1, m = 1, 2, ..., M / 2-1, where Z1 is the one-dimensional basic constellation, M is the number of constellation points of the one-dimensional basic constellation, m is the constellation point number, and r is the amplitude parameter of the one-dimensional basic constellation; α m is the first amplitude parameter, α m The value of is greater than 1; based on the second amplitude parameter and the one-dimensional basic constellation, determining a non-interleaved mother codebook; wherein the second amplitude parameter β includes (1, ..., e-1, ..., N-1); the non-interleaved mother codebook satisfies the following formula: C = [z1, ..., β e-1 z1,...,β N-1 z1] T , where e is a positive integer less than N; interleave the non-interleaved mother codebook to determine the mother codebook; where the mother codebook satisfies the following formula: C MC =[z1,...,β n-1 z n ,...,β N-1 z N ] T Among them, z n is the nth one-dimensional constellation, n is a positive integer less than or equal to N; when n is an odd number, z n Equal to z1; when n is an even number, z n is equal to z1', z1' satisfies the following formula:
[0010] z'1=[z 1,T ,z 1,2T ,z 1,T-1 ,...,z 1,T+2 ,z 1,1 ,z 1,T+1 ],T=M / 2.。
[0011] In combination with the first aspect above, in a possible implementation, the codebook of the x-th user satisfies the following formula:
[0012]
[0013] Among them, CB x is the codebook of the xth user, V' x The target rotation matrix for the xth user.
[0014] In a second aspect, a codebook determination device is provided, which includes: a processing unit; the processing unit is used to establish a first factor graph matrix with K rows and J columns based on the channel gains of J users in the system on K REs respectively; wherein each column in the first factor graph matrix includes N non-zero elements, and each row includes L non-zero elements; wherein J and K are both positive integers; N is a positive integer less than J, and L is a positive integer less than K; the processing unit is also used to determine the L rotation angles of the system, and the first amplitude parameter and the second amplitude parameter of the system when the block error rate of the system is less than a preset value; wherein the first amplitude parameter is used to determine the constellation point in the N-dimensional constellation diagram of the system, and the second amplitude parameter is used to determine each one-dimensional constellation in the N-dimensional constellation diagram of the system; the processing unit is also used to Based on the first amplitude parameter and the second amplitude parameter, the system's mother codebook is determined; the processing unit is also used to assign L rotation angles to the non-zero elements in each row of the first factor graph matrix according to the Latin matrix principle to obtain the second factor graph matrix; the processing unit is also used to determine the target rotation matrix of the x-th user based on the second factor graph matrix; the target rotation matrix is a matrix with K rows and N columns, and each column of the target rotation matrix includes a non-zero element assigned to the rotation angle, and the number of rows and values of the non-zero elements in the y-th row of the target rotation matrix are the same as the y-th non-zero element in the x-th column of the second factor graph; wherein x is a positive integer less than J, and y is a positive integer less than K; the processing unit is also used to determine the codebook of the x-th user based on the mother codebook and the target rotation matrix.
[0015] In combination with the above-mentioned second aspect, in a possible implementation method, the processing unit is specifically used to: establish a first matrix with K rows and J columns; wherein the x-th user corresponds to the x-th column in the first matrix, and the y-th RE corresponds to the y-th row in the first matrix; respectively determine the channel gain of each user in the J users on each RE of the K REs; perform the following target operations based on each user in the J users to determine the non-zero elements of the first matrix and the first factor graph matrix; the target operation includes: sorting the K channel gain values of the x-th user in descending order; selecting the channel gain values in sequence based on the sorting to perform the following steps 1, 2 and 3: Step 1, determine whether there are L non-zero elements in the row corresponding to the RE corresponding to the currently selected channel gain value; Step 2, if there are no L non-zero elements, assign a non-zero element to the position of the column corresponding to the RE corresponding to the current channel gain value in the x-th column of the first matrix; Step 3, if there are L non-zero elements, determine the next channel gain value in the sorting to be the currently selected channel gain value and perform steps 1, 2 and 3 until it is determined that N elements in the x-th column are assigned to non-zero elements.
[0016] In combination with the above-mentioned second aspect, in a possible implementation method, the processing unit is specifically used to: establish a reinforcement learning model of the system's L rotation angles, and the system's first amplitude parameter and second amplitude parameter, with minimizing the system's block error rate as a constraint condition; wherein the action vector of the reinforcement learning model includes: the system's L rotation angles, and the system's first amplitude parameter and second amplitude parameter; the elements of the reinforcement learning model's state vector include: J, M, K, N, and the previous action vector; based on the reinforcement learning model and the simulation value of the system's block error rate, determine the system's L rotation angles, and the system's first amplitude parameter and second amplitude parameter.
[0017] In combination with the above second aspect, in a possible implementation, the processing unit is specifically configured to: determine a one-dimensional basic constellation and a first amplitude parameter, wherein the one-dimensional basic constellation satisfies the following formula: z1=[z 1,1 , z 1,2 ,...,z 1,M ]=[-r M / 2 , -r M / 2-1 ,...,-r1,r1,...,r M / 2 ], the first amplitude parameter satisfies the following formula: α m =r m+1 / r1, m = 1, 2, ..., M / 2-1, where Z1 is the one-dimensional basic constellation, M is the number of constellation points of the one-dimensional basic constellation, m is the constellation point number, and r is the amplitude parameter of the one-dimensional basic constellation; α m is the first amplitude parameter α m The value of is greater than 1; based on the second amplitude parameter and the one-dimensional basic constellation, determining a non-interleaved mother codebook; wherein the second amplitude parameter β includes (1, ..., e-1, ..., N-1); the non-interleaved mother codebook satisfies the following formula: C = [z1, ..., β e-1 z1,...,β N-1 z1] T , where e is a positive integer less than N; interleave the non-interleaved mother codebook to determine the mother codebook; where the mother codebook satisfies the following formula: C MC =[z1,...,β n-1 z n ,...,β N-1 z N ] T Among them, z n is the nth one-dimensional constellation, n is a positive integer less than or equal to N; when n is an odd number, z n Equal to z1; when n is an even number, z n is equal to z1', z1' satisfies the following formula:
[0018] z'1=[z1,T ,z 1,2T ,z 1,T-1 ,...,z 1,T+2 ,z 1,1 ,z 1,T+1 ],T=M / 2.。
[0019] In conjunction with the second aspect above, in a possible implementation, the codebook of the x-th user satisfies the following formula:
[0020]
[0021] Among them, CB x is the codebook of the xth user, V' x The target rotation matrix for the xth user.
[0022] In a third aspect, the present application provides a codebook determination device, comprising: a processor and a communication interface; the communication interface and the processor are coupled, and the processor is used to run a computer program or instruction to implement the codebook determination method described in the first aspect and any possible implementation of the first aspect.
[0023] In a fourth aspect, the present application provides a computer-readable storage medium, which stores instructions. When the instructions are executed on a terminal, the terminal executes the codebook determination method described in the first aspect and any possible implementation of the first aspect.
[0024] In a fifth aspect, an embodiment of the present application provides a computer program product comprising instructions. When the computer program product is run on a codebook determination device, the codebook determination device performs the codebook determination method as described in the first aspect and any possible implementation manner of the first aspect.
[0025] In a sixth aspect, an embodiment of the present application provides a chip, the chip including a processor and a communication interface, the communication interface and the processor are coupled, and the processor is used to run a computer program or instruction to implement the codebook determination method as described in the first aspect and any possible implementation of the first aspect.
[0026] Specifically, the chip provided in the embodiment of the present application also includes a memory for storing computer programs or instructions.
[0027] In this disclosure, the name of the codebook determination device does not limit the device or functional module itself. In actual implementation, these devices or functional modules may appear with other names. As long as the functions of each device or functional module are similar to those disclosed in this disclosure, they are within the scope of the claims of this disclosure and their equivalents.
[0028] These and other aspects of the present disclosure will become more apparent from the following description.
[0029] The above scheme brings at least the following beneficial effects: the codebook determination device establishes a first factor graph matrix with K rows and J columns based on the channel gains of J users on K REs in the system; wherein each column in the first factor graph matrix includes N non-zero elements, and each row includes L non-zero elements; wherein J and K are both positive integers; N is a positive integer less than J, and L is a positive integer less than K; when the block error rate of the system is less than a preset value, the L rotation angles of the system, as well as the first amplitude parameter and the second amplitude parameter of the system are determined; wherein the first amplitude parameter is used to determine the constellation point in the N-dimensional constellation diagram of the system, and the second amplitude parameter is used to determine each one-dimensional constellation in the N-dimensional constellation diagram of the system; based on the The first amplitude parameter and the second amplitude parameter determine the mother codebook of the system; according to the Latin matrix principle, L rotation angles are assigned to the non-zero elements in each row of the first factor graph matrix to obtain the second factor graph matrix; based on the second factor graph matrix, the target rotation matrix of the x-th user is determined; the target rotation matrix is a matrix with K rows and N columns, and each column of the target rotation matrix includes a non-zero element assigned to the rotation angle. The number and value of the non-zero elements in the y-th row of the target rotation matrix are the same as the y-th non-zero element in the x-th column of the second factor graph; where x is a positive integer less than J, and y is a positive integer less than K; based on the mother codebook and the target rotation matrix, the codebook of the x-th user is determined.
[0030] Thus, the codebook determination device in the present application first determines a factor graph matrix with K rows and J columns, and then obtains an optimized mother codebook and a rotation angle of the factor graph matrix with the goal of minimizing the system block error rate. Then, based on this angle, a rotation is performed to obtain a user rotation matrix with the minimum block error rate. Finally, the user codebook is obtained based on the user rotation matrix and the mother codebook, so that the final codebook can meet the highest channel gain and the minimum system block error rate. The beneficial effect of improving the system performance of the SCMA system is achieved. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 A flowchart of a codebook determination method provided in this application;
[0032] Figure 2 A flowchart of another codebook determination method provided by this application;
[0033] Figure 3 A flowchart of the training and prediction process of a reinforcement learning module provided in this application;
[0034] Figure 4 This is a schematic diagram of an exemplary distribution of constellation points of a first dimension and constellation points of a second dimension provided by the present application;
[0035] Figure 5A schematic diagram of the structure of a codebook determination device provided in this application;
[0036] Figure 6 A schematic diagram of the hardware structure of a codebook determination device provided in this application;
[0037] Figure 7 A schematic diagram of the structure of a chip provided in this application. DETAILED DESCRIPTION
[0038] The codebook determination method and apparatus provided in the embodiments of the present application are described in detail below with reference to the accompanying drawings.
[0039] The term "and / or" in this article is merely a description of the association relationship between associated objects, indicating that three relationships may exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone.
[0040] The terms "first" and "second" and the like in the specification and drawings of this application are used to distinguish different objects, or to distinguish different processing of the same object, rather than to describe a specific order of objects.
[0041] Furthermore, the terms "including," "having," and any variations thereof, as used in the description of this application are intended to cover non-exclusive inclusions. For example, a process, method, system, product, or apparatus comprising a series of steps or units is not limited to the listed steps or units, but may optionally include other steps or units not listed, or may optionally include other steps or units inherent to the process, method, product, or apparatus.
[0042] It should be noted that in the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of this application should not be interpreted as being more preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.
[0043] In the description of the present application, unless otherwise specified, “plurality” means two or more.
[0044] Among related technologies, the Internet of Things (IoT) is becoming increasingly widespread. This technology, through large-scale wireless access, creates a fully connected world. However, the sheer number of connected devices in the IoT poses significant challenges to the capacity, connectivity, and reliability of wireless systems.
[0045] In order to improve the system capacity, connectivity and reliability of wireless systems, a non-orthogonal multiple access (NOMA) technology is currently proposed. NOMA technology supports multi-user transmission through superposition coding and successive interference cancellation technology.
[0046] Sparse code multiple access (SCMA) technology is an implementation of NOMA. SCMA embeds modulation and spread spectrum into codebook mapping to achieve non-orthogonal transmission of multi-user signals. Currently, SCMA technology can be applied to large-scale distributed access systems. The system architecture of SCMA systems can be based on visible light communication, ultra-dense networks, and NOMA for sixth-generation mobile networks (6G) wireless communication systems.
[0047] To support a peak throughput of 30 Gbit / s, SCMA and Multi-User Multiple-Input Multiple-Output (MU-MIMO) will be implemented as enhancements to the next generation of Wi-Fi (Extreme Throughput, Institute of Electrical and Electronics Engineers (IEE) 802.11be). SCMA is also being combined with other technologies to further improve spectral efficiency, such as reconfigurable smart surface-assisted SCMA and spatial modulation-assisted SCMA.
[0048] With the application of SCMA technology, how to improve the system performance of SCMA has become a technical problem that needs to be solved urgently.
[0049] In current SCMA schemes, codebook optimization schemes are usually adopted to improve the performance of SCMA.
[0050] The related art adopts a suboptimal method to obtain the SCMA codebook, specifically including: optimizing the mapping matrix design, multi-dimensional mother codebook and multi-user codebook function operator.
[0051] In addition, there is also a scheme that proposes a codebook that maximizes the minimum Euclidean distance and adopts star-shaped quadrature amplitude modulation (Star-QAM) in order to optimize the mother codebook. The SCMA codebook design is achieved by solving the optimization problem of maximizing the minimum Euclidean distance (MED) of the superimposed codewords under power constraints and power imbalance. However, maximizing the minimum Euclidean distance is a suboptimal method for the NOMA scheme. Both the product distance and the Euclidean distance are key to the design of the SCMA codebook. This scheme only considers the Euclidean distance but not the product distance. Therefore, this method can only be used for suboptimal SCMA codebook design in multi-channel environments. Due to its characteristics, the rotation angle, multi-dimensional codebook and marking rules are designed separately, which will lead to a decrease in codebook performance. At present, the relevant technology has not proposed a method that can construct an optimal codebook to improve the system performance of the SCMA system.
[0052] To solve the above technical problems, the present application provides a codebook determination method, which includes: a codebook determination device establishes a first factor graph matrix with K rows and J columns based on the channel gains of J users on K REs in the system; wherein each column in the first factor graph matrix includes N non-zero elements, and each row includes L non-zero elements; wherein J and K are both positive integers; N is a positive integer less than J, and L is a positive integer less than K; determining L rotation angles of the system, as well as a first amplitude parameter and a second amplitude parameter of the system when the block error rate of the system is less than a preset value; wherein the first amplitude parameter is used to determine the constellation point in the N-dimensional constellation diagram of the system, and the second amplitude parameter is used to determine each of the N-dimensional constellation diagram of the system. A one-dimensional constellation; based on the first amplitude parameter and the second amplitude parameter, a mother codebook of the system is determined; according to the Latin matrix principle, L rotation angles are assigned to the non-zero elements of each row in the first factor graph matrix to obtain a second factor graph matrix; based on the second factor graph matrix, a target rotation matrix of the x-th user is determined; the target rotation matrix is a matrix with K rows and N columns, and each column of the target rotation matrix includes a non-zero element assigned to the rotation angle, and the number and value of the non-zero elements in the y-th row of the target rotation matrix are the same as the y-th non-zero element in the x-th column of the second factor graph; wherein x is a positive integer less than J, and y is a positive integer less than K; based on the mother codebook and the target rotation matrix, a codebook of the x-th user is determined.
[0053] Thus, the present application first designs a factor graph matrix with K rows and J columns. Then, with the goal of minimizing the system block error rate, an optimized mother codebook and a rotation angle of the factor graph matrix are obtained. A rotation is then performed based on this angle to obtain a user rotation matrix with the minimum block error rate. Finally, the user codebook is obtained based on the user rotation matrix and the mother codebook, so that the resulting codebook can meet the highest channel gain and the lowest system block error rate. This achieves the beneficial effect of improving the system performance of the SCMA system.
[0054] like Figure 1 As shown, the codebook determination method provided in the embodiment of the present application can be specifically implemented by following steps 101 to 106, which are described in detail below:
[0055] Step 101: The codebook determining device establishes a first factor graph matrix with K rows and J columns based on the channel gains of J users in the system on K REs.
[0056] Wherein, each column of the first factor graph matrix includes N non-zero elements, and each row includes L non-zero elements. J and K are both positive integers; N is a positive integer less than J, and L is a positive integer less than K;
[0057] In one possible implementation, the codebook determination device determines the current number of users J and the number of available REs K in the system, and establishes a matrix with K rows and J columns based on the values of J and K. Each user corresponds to an element in a column of the matrix, and each RE corresponds to an element in a row of the matrix. The gain value of a user in an RE matrix corresponds to the element at the intersection of the column where the user resides and the row where the RE resides.
[0058] Afterwards, the codebook determining device sorts the gain values of each user on each RE and selects N×L gain values from the gain values according to the principle of selecting N elements per row and L elements per column. The codebook determining device assigns 1 to the element positions in the matrix corresponding to the N×L gain values and assigns 0 to the other positions in the matrix, thereby obtaining the first factor graph matrix.
[0059] In one possible implementation, L is the product of N and the overload factor, where the overload factor is the ratio of J to K. For example, when J = 6, K = 4, and N = 2, the overload factor is 150%, and L = 150% × N = 3. When J = 10, K = 5, and N = 2, the overload factor is 2000%, and L = 200% × N = 4.
[0060] Step 102: The codebook determining device determines L rotation angles of the system, and a first amplitude parameter and a second amplitude parameter of the system when a block error rate of the system is less than a preset value.
[0061] The first amplitude parameter is used to determine a constellation point in the N-dimensional constellation diagram of the system, and the second amplitude parameter is used to determine each constellation in the N-dimensional constellation diagram of the system.
[0062] In one possible manner, the codebook determination device may use machine learning, network model prediction, and the like to determine the L rotation angles of the system, as well as the first amplitude parameter and the second amplitude parameter of the system, which is not limited in this application.
[0063] Step 103: The codebook determining device determines a mother codebook of the system based on the first amplitude parameter and the second amplitude parameter.
[0064] In one possible implementation, the codebook determination device first determines a one-dimensional constellation based on the first amplitude parameter, then adjusts the energy of the one-dimensional constellation based on the second amplitude parameter to obtain an uninterleaved mother codebook. Subsequently, the codebook determination device rotationally interleaves the uninterleaved mother codebook to obtain the system's mother codebook.
[0065] Step 104: The codebook determining device assigns L rotation angles to the non-zero elements of each row in the first factor graph matrix according to the Latin matrix principle to obtain a second factor graph matrix.
[0066] It should be pointed out that, using the Latin matrix principle, the codebook determination device assigns L rotation angles to the non-zero elements of each row in the first factor graph matrix, so that the non-zero elements of each row in the first factor graph matrix are assigned different rotation angles, and the non-zero elements of each column in the first factor graph matrix are also assigned different rotation angles, thereby obtaining the second factor graph matrix.
[0067] Step 105: The codebook determining device determines a target rotation matrix for the x-th user based on the second factor graph matrix.
[0068] The target rotation matrix is a matrix with K rows and N columns, each column of the target rotation matrix includes a non-zero element assigned to the rotation angle, and the number and value of the non-zero elements in the y-th row of the target rotation matrix are the same as the y-th non-zero element in the x-th column of the second factor graph; wherein x is a positive integer less than J, and y is a positive integer less than K;
[0069] Optionally, the codebook determination device first determines the positions of the zero elements in the x-th column of the second factor graph matrix based on the second factor graph matrix, and then inserts the 0 vectors of the positions of these zero elements into the unit matrix to obtain the target rotation matrix of the x-th user.
[0070] Step 106: The codebook determining device determines the codebook of the xth user based on the mother codebook and the target rotation matrix.
[0071] In a possible implementation, the codebook determining device multiplies the mother codebook and the target rotation matrix to obtain the codebook of the xth user.
[0072] In addition, the codebook determining device may also determine the codebook of the xth user based on the mother codebook and the target rotation matrix in other ways, which is not limited in this application.
[0073] The above scheme brings at least the following beneficial effects: the codebook determination device establishes a first factor graph matrix with K rows and J columns based on the channel gains of J users on K REs in the system; wherein each column in the first factor graph matrix includes N non-zero elements and each row includes L non-zero elements; when the block error rate of the system is less than a preset value, the L rotation angles of the system, as well as the first amplitude parameter and the second amplitude parameter of the system are determined; wherein the first amplitude parameter is used to determine the constellation point in the N-dimensional constellation diagram of the system, and the second amplitude parameter is used to determine each constellation in the N-dimensional constellation diagram of the system; based on the first amplitude parameter , the second amplitude parameter, determines the mother codebook of the system; according to the Latin matrix principle, assigns L rotation angles to the non-zero elements of each row in the first factor graph matrix to obtain the second factor graph matrix; based on the second factor graph matrix, determines the target rotation matrix of the x-th user; the target rotation matrix is a matrix with K rows and N columns, and each column of the target rotation matrix includes a non-zero element assigned to the rotation angle, and the number and value of the non-zero elements in the y-th row of the target rotation matrix are the same as the y-th non-zero element in the x-th column of the second factor graph; based on the mother codebook and the target rotation matrix, determines the codebook of the x-th user.
[0074] Thus, the codebook determination device in the present application first determines a factor graph matrix with K rows and J columns, and then obtains an optimized mother codebook and a rotation angle of the factor graph matrix with the goal of minimizing the system block error rate. Then, based on this angle, a rotation is performed to obtain a user rotation matrix with the minimum block error rate. Finally, the user codebook is obtained based on the user rotation matrix and the mother codebook, so that the final codebook can meet the highest channel gain and the minimum system block error rate. The beneficial effect of improving the system performance of the SCMA system is achieved.
[0075] Combine Figure 1 ,like Figure 2 As shown, in one possible implementation, the codebook determination device in step 101 establishes a first factor graph matrix with K rows and J columns based on the channel gains of J users in the system on K REs, which can be specifically implemented by the following steps 201 to 203. The following is a detailed description:
[0076] Step 201: The codebook determination device establishes a first matrix with K rows and J columns.
[0077] The xth user corresponds to the xth column in the first matrix, and the yth RE corresponds to the yth row in the first matrix.
[0078] Step 202: The codebook determining device determines the channel gain of each of the J users on each of the K REs.
[0079] Step 203: The codebook determining device performs the following target operation based on each of the J users to determine the non-zero elements of the first matrix and the first factor graph matrix.
[0080] In one possible implementation, the target operation in this step includes:
[0081] Sort the K channel gain values of the x-th user in descending order.
[0082] The following steps 1, 2 and 3 are performed by selecting the channel gain values in sequence based on the ranking.
[0083] Step 1: Determine whether there are L non-zero elements in the row corresponding to the RE corresponding to the currently selected channel gain value;
[0084] Step 2: If there are no L non-zero elements, assign the position of the column corresponding to the RE corresponding to the current channel gain value in the x-th column of the first matrix to a non-zero element;
[0085] Step 3: If there are L non-zero elements, determine that the next channel gain value in the sort is the currently selected channel gain value and execute steps 1, 2, and 3 until N elements in the x-th column are determined to be non-zero elements.
[0086] In one example, the number of users in the current system is 6 and the number of REs is 4. At this time, the first factor graph matrix determined by the codebook determination device is as follows:
[0087]
[0088] In another example, the number of users in the current system is 10 and the number of REs is 5. At this time, the first factor graph matrix determined by the codebook determination device is as follows:
[0089]
[0090] It should be pointed out that the above-mentioned first factor graph matrix is only for exemplary purposes. In specific applications, the codebook determination device can design a corresponding first factor graph matrix based on the actual number of users and REs in the system, as well as the gain value of each user on each RE. This application does not limit this.
[0091] The above solution brings at least the following beneficial effects: When designing the first factor graph matrix, the codebook determination device establishes the first matrix based on the number of users and the number of REs in the system. Then, based on the channel gains of the users on the REs, when allocating REs to the users, each user is allocated the RE with the maximum channel gain value. Thus, the first factor graph matrix determined by the codebook determination device in this application can significantly improve the channel gain values of the users, thereby improving system performance.
[0092] In one possible implementation, Figure 2 As shown, the codebook determination device in step 102 determines the L rotation angles of the system and the first amplitude parameter and the second amplitude parameter of the system when the block error rate of the system is less than a preset value. This can be specifically implemented through the following steps 204-205.
[0093] Step 204: The codebook determination device establishes a reinforcement learning model of the system's L rotation angles and the system's first amplitude parameter and second amplitude parameter, with minimizing the system's block error rate as a constraint condition.
[0094] The action vector of the reinforcement learning model includes: L rotation angles of the system, and the first amplitude parameter and the second amplitude parameter of the system; the elements of the state vector of the reinforcement learning model include: J, M, K, N, and the previous action vector.
[0095] In one possible implementation, each user in the system can be treated equally, so the codebook determination device can select any received signal for subsequent analysis. In this case, the constraints of minimizing the system block error rate can be expressed as the following optimization problem:
[0096]
[0097] Among them, θ i is the i-th rotation angle among the L rotation angles of the system, which is a positive integer less than or equal to L; α m is the mth amplitude parameter in the first amplitude parameter, β n is the nth second amplitude parameter among the second amplitude parameters. i , α m and β n The value of satisfies the following formula:
[0098] 0≤θ i ≤π,i=1,...,L,
[0099] α m >1,m=1,...,M / 2-1,
[0100] β n >1,n=1,...N-1.
[0101] Optionally, in the embodiment of the present application, the codebook determination device may adopt a reinforcement learning method to pre-train a deep deterministic policy gradient algorithm (DDPG) network to optimize the above (θ i ,α m ,βn ) thereby minimizing the system's block error rate.
[0102] During the reinforcement learning process, the codebook determination device can predefine the basic features of reinforcement learning: state, action, and reward, which are described below respectively.
[0103] (1) Action: At each time slot, the agent in the reinforcement learning algorithm observes the current state and then selects an appropriate action from the action space to determine the value of the optimization variable. If the variable is a discrete variable, it means that the action space is limited. The codebook determination device can use a DQN network to estimate the Q value of each state-action pair and then select the action with the largest Q value as the optimal action for the current state.
[0104] It should be noted that, in the embodiment of the present application, θ i , α m and β n All of them are continuous variables. In this case, the action space of the action is also continuous (equivalent to an infinite number of actions in the action space). At this time, the codebook determination device cannot exhaust the Q value of each state-action pair. To solve this problem, the codebook determination device can directly use the DDPG algorithm to calculate the action space and calculate a certain action to reduce the solution complexity.
[0105] For example, an action can be defined as the following formula:
[0106] a t ={α t ,β t ,θ t}
[0107] where α t ={α m,t}, β t ={β n,t}, θ t ={θ i,t}.
[0108] (2) State: When optimizing the codebook, it is necessary to i , α m and β n For optimization, the state can be expressed by the following formula:
[0109] s={J,M,K,N,a t-1}
[0110] (3) Reward: After determining the action of the reinforcement learning model, it is necessary to set a specific reward and punishment function for the action to evaluate the action performance and improve the decision-making ability of the reinforcement learning model. The reward of the action can be positioned as the value of the reward and punishment function under the action. After this, the codebook determination device can calculate the actual Q value of the action based on the Bellman equation, and then use the minimum mean square error function to train the reinforcement learning model so that the reinforcement learning model can more accurately predict the Q value of different actions.
[0111] Step 205: The codebook determining device determines L rotation angles of the system, and a first amplitude parameter and a second amplitude parameter of the system based on the reinforcement learning model and a simulation value of the block error rate of the system.
[0112] Optionally, the reinforcement learning model optimizes θ i , α m and β n In the process of , we can combine other parameters in the SCMA system and obtain the value of the minimum block error rate through multiple simulation experiments.
[0113] For example, the training and prediction process of the reinforcement learning model is as follows Figure 3 As shown:
[0114] In this process, the codebook determination device first initializes the Actor network and Critic network of the reinforcement learning model as well as their respective target networks and experience pool R.
[0115] After that, the codebook determination device inputs a t ={α t ,β t ,θ t}, the codebook determination device uses DDPG to add random noise to achieve exploration, so as to better determine the potential most suitable SCMD codebook matrix.
[0116] Furthermore, the codebook determination device uses the experience playback method to convert the data of the agent's interaction with the environment into t+1 ,s t ,a t ,c t} is stored in R. Then p mini-batches are randomly sampled from it during each training. The parameter s represents the state, a represents the action, and c represents the Q value.
[0117] Furthermore, the codebook determining device determines the codebook according to {s t+1 ,s t ,c t}, the actual Q value can be calculated by the Bellman equation, which satisfies the following formula:
[0118] dt =c t +γQ'(s t+1 ,μ'(s t+1 ))
[0119] In this process, the Actor network updates the network parameters through policy gradient; according to the mean square error function between the actual Q value and the predicted Q value, the Critic network uses the gradient descent method to update the Critic network parameters.
[0120] Finally, the codebook determination device generates the optimal codebook through multiple iterations.
[0121] It should be pointed out that the above is only an exemplary process of the L rotation angles obtained by combining the reinforcement learning model training, as well as the first amplitude parameter and the second amplitude parameter of the system. In actual application, other implementation methods can also be adopted in combination with specific scenarios, and this application does not limit this.
[0122] The above scheme brings at least the following beneficial effects: the codebook determination device is based on the idea of reinforcement learning, with the goal of minimizing the system block error rate, and establishes a reinforcement learning model, so that the codebook determination device can calculate the rotation angle, the first amplitude parameter, and the second amplitude parameter when the system block error rate is minimized according to the reinforcement learning model.
[0123] In one possible implementation, Figure 2 As shown, the codebook determination device in the above step 103 determines the system's mother codebook based on the first amplitude parameter and the second amplitude parameter. This can be specifically implemented through the following steps 206 to 208.
[0124] Step 206: The codebook determining device determines a one-dimensional basic constellation and a first amplitude parameter.
[0125] Among them, the one-dimensional basic constellation satisfies the following formula:
[0126] z1=[z 1,1 , z 1,2 ,...,z 1,M ]=[-r M / 2 , -r M / 2-1 ,...,-r1,r1,...,r M / 2 ],
[0127] The first amplitude parameter satisfies the following formula: α m =r m+1 / r1,m=1,2,...,M / 2-1,
[0128] Wherein, Z1 is the one-dimensional basic constellation, M is the number of constellation points of the one-dimensional basic constellation, m is the constellation point number, and r is the amplitude parameter of the one-dimensional basic constellation; αm is the first amplitude parameter α m The value of is greater than 1.
[0129] It should be noted that, when the codebook determining device determines the first amplitude parameter, a single parameter is used to represent the increase in the amplitude of each constellation point in the one-dimensional basic constellation.
[0130] Step 207: The codebook determining device determines a non-interleaved mother codebook based on the second amplitude parameter and the one-dimensional basic constellation.
[0131] The second amplitude parameter β includes (1, ..., e-1, ..., N-1); the mother codebook without interleaving satisfies the following formula: C = [z1, ..., β e-1 z1,...,β N-1 z1] T , where e is a positive integer less than N.
[0132] It should be noted that the codebook determining device may determine other non-zero dimensions of the mother codebook by scaling and interleaving, and introduce a second amplitude parameter to ensure that the capabilities of the various dimensions of the mother codebook are different.
[0133] Step 208: The codebook determining device interleaves the non-interleaved mother codebook to determine the mother codebook.
[0134] Among them, the mother codebook satisfies the following formula: C MC =[z1,...,β n-1 z n ,...,β N-1 z N ] T .
[0135] When n is an odd number, z n Equal to z1; when n is an even number, z n = z1', z1' satisfies the following formula: z'1 = [z 1,T ,z 1,2T ,z 1,T-1 ,...,z 1,T+2 ,z 1,1 ,z 1,T+1 ],T=M / 2.。
[0136] It should be noted that, in the interleaving process, in order to increase the minimum Euclidean distance between codewords, the codebook determining device determines the even dimensions of the mother codebook as the interleaved version z1' of the above-mentioned one-dimensional basic constellation.
[0137] The elements in the odd positions of the vector are z 1,T ,z 1,T-1 ,z 1,T-2 ,…,z 1,1, the elements in the even positions of the vector are z 1,2T ,z 1,2T-1 ,z 1,2T-2 ,…,z 1,T-1 . The nth basic constellation z n Satisfies the following formula:
[0138]
[0139] It should be noted that, in the process of determining the mother codebook by the above codebook determination device, r2=α1r1, r2′=α1r1′, and r1′=β1r1.
[0140] An example, such as Figure 4 , which is an exemplary distribution of the constellation points of the first dimension and the constellation points of the second dimension proposed in this application.
[0141] The above solution brings at least the following beneficial effects: the codebook determination device uses the constellation method to determine the mother codebook. The codebook determination device first creates a one-dimensional basic constellation, and then scales the one-dimensional basic constellation in combination with the first amplitude parameter and the second amplitude parameter obtained under the minimum block error rate of the system to obtain multiple basic constellations. The multiple basic constellations are interleaved to obtain a mother codebook under the minimum Euclidean distance, so that the mother codebook can meet the minimum Euclidean distance and minimize the block error rate of the system.
[0142] In one possible implementation, Figure 2 As shown, after the codebook determination device determines the first factor graph matrix and the rotation angle under the system minimum block error rate, the above steps 104, 105 and 106 can be specifically implemented in the following manner:
[0143] Step 104: The codebook determining device assigns L rotation angles to the non-zero elements of each row in the first factor graph matrix according to the Latin matrix principle to obtain a second factor graph matrix.
[0144] It should be noted that in the second factor graph matrix, the rotation angle of each row is different, so that the system can obtain a larger shaping gain.
[0145] In one example, combined with the example in step 203 above, the codebook determining device assigns L rotation angles to the first factor graph matrix when the number of users in the system is 6 and the number of REs is 4 according to the Latin matrix principle. The second factor graph matrix obtained is as follows:
[0146]
[0147] In another example, in combination with the example in step 203 above, the codebook determining device assigns L rotation angles to the first factor graph matrix when the number of users in the system is 10 and the number of REs is 5 according to the Latin matrix principle. The second factor graph matrix obtained is as follows:
[0148]
[0149] Step 105: The codebook determining device determines a target rotation matrix for the x-th user based on the second factor graph matrix.
[0150] Specifically, the codebook determination device establishes an identity matrix and then determines the positions of zero elements and non-zero elements in the column of the xth user. Thereafter, the codebook determination device inserts the all-zero row vector after the identity matrix to obtain the target rotation matrix of the xth user.
[0151] In one example, in combination with the second factor graph matrix R1, the target rotation matrix of the Xth user determined by the codebook determination device is:
[0152]
[0153] In another example, in combination with the second factor graph matrix R2, the target rotation matrix of the Xth user determined by the codebook determination device is:
[0154]
[0155] Step 106: The codebook determining device determines the codebook of the xth user based on the mother codebook and the target rotation matrix.
[0156] Exemplarily, the codebook determining device determines that the codebook of the x-th user satisfies the following formula:
[0157]
[0158] The above scheme brings at least the following beneficial effects: the codebook determination device determines the optimal factor graph matrix of the user based on the rotation angle, and then determines the optimal codebook of the user based on the optimal factor graph matrix of the user and the mother codebook, so that the user can use the optimal codebook for data transmission, thereby improving the system performance of the system.
[0159] In the embodiment of the present application, the codebook determination device can be divided into functional modules or functional units according to the above method example. For example, each functional module or functional unit can be divided corresponding to each function, or two or more functions can be integrated into one processing module. The above-mentioned integrated module can be implemented in the form of hardware or in the form of software functional modules or functional units. Among them, the division of modules or units in the embodiment of the present application is schematic and is only a logical functional division. There may be other division methods in actual implementation.
[0160] like Figure 5 , which is a structural diagram of a codebook determination device 50 provided in an embodiment of the present application, the device includes: a processing unit 501.
[0161] The processing unit 501 is used to establish a first factor graph matrix with K rows and J columns based on the channel gains of J users on K REs in the system; wherein each column in the first factor graph matrix includes N non-zero elements, and each row includes L non-zero elements; wherein J and K are both positive integers; N is a positive integer less than J, and L is a positive integer less than K; the processing unit 501 is also used to determine the L rotation angles of the system, and the first amplitude parameter and the second amplitude parameter of the system when the block error rate of the system is less than a preset value; wherein the first amplitude parameter is used to determine the constellation point in the N-dimensional constellation diagram of the system, and the second amplitude parameter is used to determine each one-dimensional constellation in the N-dimensional constellation diagram of the system; the processing unit 501 is also used to determine the first amplitude parameter, the second amplitude parameter, and the first rotation angle of the system based on the first amplitude parameter and the second amplitude parameter. number, determining the mother codebook of the system; the processing unit 501 is further used to assign L rotation angles to the non-zero elements of each row in the first factor graph matrix according to the Latin matrix principle, to obtain a second factor graph matrix; the processing unit 501 is further used to determine the target rotation matrix of the x-th user based on the second factor graph matrix; the target rotation matrix is a matrix with K rows and N columns, and each column of the target rotation matrix includes a non-zero element assigned to the rotation angle, and the number of rows and values of the non-zero elements in the y-th row of the target rotation matrix are the same as the y-th non-zero element in the x-th column of the second factor graph; wherein x is a positive integer less than J, and y is a positive integer less than K; the processing unit 501 is further used to determine the codebook of the x-th user based on the mother codebook and the target rotation matrix.
[0162] In one possible implementation, the processing unit 501 is specifically configured to: establish a first matrix with K rows and J columns; wherein the x-th user corresponds to the x-th column in the first matrix, and the y-th RE corresponds to the y-th row in the first matrix; determine the channel gain of each of the J users on each of the K REs; perform the following target operations based on each of the J users to determine the non-zero elements of the first matrix and the first factor graph matrix; the target operations include: sorting the K channel gain values of the x-th user in descending order; selecting the channel gain values in sequence based on the sorting to perform the following steps 1, 2, and 3: Step 1: Determine whether there are L non-zero elements in the row corresponding to the RE corresponding to the currently selected channel gain value; Step 2: If there are no L non-zero elements, assign a non-zero element to the position of the column corresponding to the RE corresponding to the current channel gain value in the x-th column of the first matrix; Step 3: If there are L non-zero elements, determine that the next channel gain value in the sorting is the currently selected channel gain value and perform Steps 1, 2, and 3 until N elements in the x-th column are assigned non-zero elements.
[0163] In one possible implementation, the processing unit 501 is specifically configured to establish a reinforcement learning model of the system's L rotation angles, and the system's first amplitude parameter and second amplitude parameter, with minimizing the system's block error rate as a constraint; wherein the action vector of the reinforcement learning model includes the system's L rotation angles, and the system's first amplitude parameter and second amplitude parameter; and the elements of the reinforcement learning model's state vector include J, M, K, N, and a previous action vector; and determine the system's L rotation angles, and the system's first amplitude parameter and second amplitude parameter based on the reinforcement learning model and a simulation value of the system's block error rate.
[0164] In a possible implementation, the processing unit 501 is specifically configured to determine a one-dimensional basic constellation and a first amplitude parameter, where the one-dimensional basic constellation satisfies the following formula:
[0165] z1=[z 1,1 , z 1,2 ,...,z 1,M ]=[-r M / 2 , -r M / 2-1 ,...,-r1,r1,...,r M / 2 ], the first amplitude parameter satisfies the following formula: α m =r m+1 / r1, m = 1, 2, ..., M / 2-1, where Z1 is the one-dimensional basic constellation, M is the number of constellation points of the one-dimensional basic constellation, m is the constellation point number, and r is the amplitude parameter of the one-dimensional basic constellation; α m is the first amplitude parameter α mThe value of is greater than 1; based on the second amplitude parameter and the one-dimensional basic constellation, determining a non-interleaved mother codebook; wherein the second amplitude parameter β includes (1, ..., e-1, ..., N-1); the non-interleaved mother codebook satisfies the following formula: C = [z1, ..., β e-1 z1,...,β N-1 z1] T , where e is a positive integer less than N; interleave the non-interleaved mother codebook to determine the mother codebook; where the mother codebook satisfies the following formula: C MC =[z1,...,β n-1 z n ,...,β N-1 z N ] T Among them, z n is the nth one-dimensional constellation, n is a positive integer less than or equal to N; when n is an odd number, z n Equal to z1; when n is an even number, z n is equal to z1', z1' satisfies the following formula:
[0166] z'1=[z 1,T ,z 1,2T ,z 1,T-1 ,...,z 1,T+2 ,z 1,1 ,z 1,T+1 ],T=M / 2.。
[0167] In one possible implementation, the codebook of the xth user satisfies the following formula:
[0168]
[0169] Among them, CB x is the codebook of the xth user, V' x The target rotation matrix for the xth user.
[0170] Optionally, the codebook determining device 50 may further include a communication unit 502 , and the codebook determining device 50 may communicate with other devices through the communication unit 502 .
[0171] When implemented by hardware, the communication unit 502 in the embodiment of the present application can be integrated on the communication interface, and the processing unit 501 can be integrated on the processor. Figure 6 shown.
[0172] Figure 6A schematic diagram of another possible structure of the codebook determination apparatus involved in the above embodiments is shown. The codebook determination apparatus includes: a processor 602 and a communication interface 603. The processor 602 is configured to control and manage the operations of the codebook determination apparatus, for example, executing the steps performed by the processing unit 601 and / or performing other processes of the technology described herein. The communication interface 603 is configured to support communication between the codebook determination apparatus and other network entities, for example, executing the steps performed by the communication unit 602. The codebook determination apparatus may also include a memory 601 and a bus 604. The memory 601 is configured to store program code and data of the codebook determination apparatus.
[0173] The memory 601 may be a memory in a codebook determination device, etc. The memory may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a read-only memory, a flash memory, a hard disk, or a solid-state drive; the memory may also include a combination of the above types of memory.
[0174] The processor 602 may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array, or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. The processor may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, or a combination of a DSP and a microprocessor.
[0175] The bus 604 may be an Extended Industry Standard Architecture (EISA) bus or the like. The bus 604 may be divided into an address bus, a data bus, a control bus, or the like. For ease of representation, Figure 6 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.
[0176] Figure 7 FIG. 7 is a schematic diagram of the structure of a chip 70 provided in an embodiment of the present application. The chip 70 includes one or more (including two) processors 710 and a communication interface 730 .
[0177] Optionally, the chip 70 further includes a memory 740, which may include a read-only memory and a random access memory, and provides operation instructions and data to the processor 710. A portion of the memory 740 may also include a non-volatile random access memory (NVRAM).
[0178] In some embodiments, the memory 740 stores the following elements, execution modules or data structures, or a subset thereof, or an extended set thereof.
[0179] In the embodiment of the present application, the corresponding operation is performed by calling the operation instruction stored in the memory 740 (the operation instruction may be stored in the operating system).
[0180] The processor 710 can implement or execute the various exemplary logic blocks, units, and circuits described in conjunction with the disclosure of this application. The processor can be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array, or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. It can implement or execute the various exemplary logic blocks, units, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
[0181] The memory 740 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as read-only memory, flash memory, hard disk or solid-state drive; the memory may also include a combination of the above types of memory.
[0182] The bus 720 may be an Extended Industry Standard Architecture (EISA) bus or the like. The bus 720 may be divided into an address bus, a data bus, a control bus, or the like. For ease of representation, Figure 7 The fact that only one line is used does not mean that there is only one bus or one type of bus.
[0183] Through the description of the above embodiments, those skilled in the art will clearly understand that for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. The specific working processes of the above-described systems, devices, and units can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0184] An embodiment of the present application provides a computer program product comprising instructions. When the computer program product is run on a computer, the computer is caused to execute the codebook determination method in the above method embodiment.
[0185] An embodiment of the present application further provides a computer-readable storage medium, in which instructions are stored. When the instructions are executed on a computer, the computer executes the codebook determination method in the method flow shown in the above method embodiment.
[0186] Among them, the computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination thereof. More specific examples of computer-readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a register, a hard disk, an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above, or any other form of computer-readable storage medium known in the art. An exemplary storage medium is coupled to a processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and the storage medium can be located in an application-specific integrated circuit (ASIC). In the embodiments of the present application, a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0187] An embodiment of the present invention provides a computer program product comprising instructions, which, when executed on a computer, causes the computer to perform the following Figures 1 to 2 The codebook determination method described in .
[0188] Since the codebook determination device, computer-readable storage medium, and computer program product in the embodiments of the present invention can be applied to the above method, the technical effects that can be obtained can also refer to the above method embodiments, and the embodiments of the present invention will not be repeated here.
[0189] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0190] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0191] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0192] The above are only specific embodiments of the present application, but the scope of protection of the present application is not limited thereto. Any changes or replacements within the technical scope disclosed in this application should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.
Claims
1. A codebook determination method, characterized in that: include: Based on the channel gains of J users in the system on K REs, a first factor graph matrix with K rows and J columns is established; wherein each column of the first factor graph matrix includes N non-zero elements and each row includes L non-zero elements; wherein J and K are both positive integers; N is a positive integer less than J, and L is a positive integer less than K; Determining L rotation angles of the system and a first amplitude parameter and a second amplitude parameter of the system when a block error rate of the system is less than a preset value; wherein the first amplitude parameter is used to determine a constellation point in an N-dimensional constellation diagram of the system, and the second amplitude parameter is used to determine each one-dimensional constellation in the N-dimensional constellation diagram of the system; determining a mother codebook of the system based on the first amplitude parameter and the second amplitude parameter; According to the Latin matrix principle, the L rotation angles are assigned to the non-zero elements of each row in the first factor graph matrix to obtain a second factor graph matrix; Determine a target rotation matrix for the x-th user based on the second factor graph matrix; the target rotation matrix is a matrix with K rows and N columns, each column of the target rotation matrix includes a non-zero element assigned to the rotation angle, and the number and value of the non-zero elements in the y-th row of the target rotation matrix are the same as the y-th non-zero element in the x-th column of the second factor graph; wherein x is a positive integer less than J, and y is a positive integer less than K; A codebook for the x-th user is determined based on the mother codebook and the target rotation matrix.
2. The method according to claim 1, characterized in that The step of establishing a first factor graph matrix with K rows and J columns based on the channel gains of J users in the system on K REs respectively includes: Establish a first matrix with K rows and J columns; wherein the x-th user corresponds to the x-th column in the first matrix, and the y-th RE corresponds to the y-th row in the first matrix; Determine a channel gain for each of the J users on each of the K REs; Perform the following target operation on each of the J users to determine the non-zero elements of the first matrix and the first factor graph matrix; The target operations include: Sort the K channel gain values of the x-th user in descending order; Based on the ranking, the channel gain values are sequentially selected to perform the following steps 1, 2, and 3: Step 1: Determine whether there are L non-zero elements in the row corresponding to the RE corresponding to the currently selected channel gain value; Step 2: If there are no L non-zero elements, assign the position of the column corresponding to the RE corresponding to the currently selected channel gain value in the x-th column of the first matrix to a non-zero element; Step 3: If there are L non-zero elements, determine that the next channel gain value in the sort is the currently selected channel gain value and execute steps 1, 2, and 3 until N elements in the x-th column are determined to be non-zero elements.
3. The method according to claim 1 or 2, characterized in that The determining, when a block error rate of the system is less than a preset value, L rotation angles of the system, and a first amplitude parameter and a second amplitude parameter of the system, comprises: Establishing a reinforcement learning model of the system's L rotation angles, and the system's first and second amplitude parameters, with minimizing the system's block error rate as a constraint; wherein the action vector of the reinforcement learning model includes the system's L rotation angles, and the system's first and second amplitude parameters; and the elements of the reinforcement learning model's state vector include J, M, K, N, and a previous action vector; Based on the reinforcement learning model and a simulation value of a block error rate of the system, L rotation angles of the system, and a first amplitude parameter and a second amplitude parameter of the system are determined.
4. The method according to any one of claims 1 to 3, characterized in that The determining, based on the first amplitude parameter and the second amplitude parameter, a mother codebook of the system includes: A one-dimensional basic constellation and the first amplitude parameter are determined, wherein the one-dimensional basic constellation satisfies the following formula: The first amplitude parameter satisfies the following formula: Wherein, Z1 is the one-dimensional basic constellation, M is the number of constellation points of the one-dimensional basic constellation, m is the constellation point number, and r is the amplitude parameter of the one-dimensional basic constellation; α m is the first amplitude parameter, α m The value of is greater than 1; Based on the second amplitude parameter and the one-dimensional basic constellation, a non-interleaved mother codebook is determined; wherein the second amplitude parameter Including (1, ..., e-1, ..., N-1); the non-interleaved mother codebook satisfies the following formula: Wherein, e is a positive integer less than N; Interleaving the non-interleaved mother codebook to determine the mother codebook; wherein the mother codebook satisfies the following formula: Among them, z n is the nth one-dimensional constellation, n is a positive integer less than or equal to N; when n is an odd number, z n Equal to z1; when n is an even number, z n is equal to z1', z1' satisfies the following formula: .
5. The method according to claim 4, characterized in that The codebook of the x-th user satisfies the following formula: in, is the codebook of the x-th user, is the target rotation matrix for the x-th user.
6. A codebook determination device, characterized in that: include: processing unit; The processing unit is configured to establish a first factor graph matrix having K rows and J columns based on the channel gains of J users in the system on K REs, wherein each column of the first factor graph matrix includes N non-zero elements and each row includes L non-zero elements; wherein J and K are both positive integers; N is a positive integer less than J, and L is a positive integer less than K; The processing unit is further configured to determine L rotation angles of the system, and a first amplitude parameter and a second amplitude parameter of the system when a block error rate of the system is less than a preset value; wherein the first amplitude parameter is used to determine a constellation point in an N-dimensional constellation diagram of the system, and the second amplitude parameter is used to determine each one-dimensional constellation in the N-dimensional constellation diagram of the system; The processing unit is further configured to determine a mother codebook of the system based on the first amplitude parameter and the second amplitude parameter; The processing unit is further configured to assign the L rotation angles to the non-zero elements of each row in the first factor graph matrix according to the Latin matrix principle to obtain a second factor graph matrix; The processing unit is further configured to determine a target rotation matrix for the x-th user based on the second factor graph matrix; the target rotation matrix is a matrix with K rows and N columns, each column of the target rotation matrix includes a non-zero element assigned to the rotation angle, and the number and value of the non-zero elements in the y-th row of the target rotation matrix are the same as the y-th non-zero element in the x-th column of the second factor graph; wherein x is a positive integer less than J, and y is a positive integer less than K; The processing unit is further configured to determine a codebook for the x-th user based on the mother codebook and the target rotation matrix.
7. The device according to claim 6, characterized in that The processing unit is specifically configured to: Establish a first matrix with K rows and J columns; wherein the x-th user corresponds to the x-th column in the first matrix, and the y-th RE corresponds to the y-th row in the first matrix; Determine a channel gain for each of the J users on each of the K REs; Perform the following target operation on each of the J users to determine the non-zero elements of the first matrix and the first factor graph matrix; The target operations include: Sort the K channel gain values of the x-th user in descending order; Based on the ranking, the channel gain values are sequentially selected to perform the following steps 1, 2, and 3: Step 1: Determine whether there are L non-zero elements in the row corresponding to the RE corresponding to the currently selected channel gain value; Step 2: If there are no L non-zero elements, assign the position of the column corresponding to the RE corresponding to the currently selected channel gain value in the x-th column of the first matrix to a non-zero element; Step 3: If there are L non-zero elements, determine that the next channel gain value in the sort is the currently selected channel gain value and execute steps 1, 2, and 3 until N elements in the x-th column are determined to be non-zero elements.
8. The device according to claim 6 or 7, characterized in that The processing unit is specifically configured to: Establishing a reinforcement learning model of the system's L rotation angles, and the system's first and second amplitude parameters, with minimizing the system's block error rate as a constraint; wherein the action vector of the reinforcement learning model includes the system's L rotation angles, and the system's first and second amplitude parameters; and the elements of the reinforcement learning model's state vector include J, M, K, N, and a previous action vector; Based on the reinforcement learning model and a simulation value of a block error rate of the system, L rotation angles of the system, and a first amplitude parameter and a second amplitude parameter of the system are determined.
9. The device according to any one of claims 6 to 8, characterized in that The processing unit is specifically configured to: A one-dimensional basic constellation and the first amplitude parameter are determined, wherein the one-dimensional basic constellation satisfies the following formula: The first amplitude parameter satisfies the following formula: Wherein, Z1 is the one-dimensional basic constellation, M is the number of constellation points of the one-dimensional basic constellation, m is the constellation point number, and r is the amplitude parameter of the one-dimensional basic constellation; α m is the first amplitude parameter α m The value of is greater than 1; Based on the second amplitude parameter and the one-dimensional basic constellation, a non-interleaved mother codebook is determined; wherein the second amplitude parameter Including (1, ..., e-1, ..., N-1); the non-interleaved mother codebook satisfies the following formula: Wherein, e is a positive integer less than N; Interleaving the non-interleaved mother codebook to determine the mother codebook; wherein the mother codebook satisfies the following formula: Among them, z n is the nth one-dimensional constellation, n is a positive integer less than or equal to N; when n is an odd number, z n Equal to z1; when n is an even number, z n is equal to z1', z1' satisfies the following formula: .
10. The device according to claim 9, characterized in that The codebook of the x-th user satisfies the following formula: in, is the codebook of the x-th user, is the target rotation matrix for the x-th user.
11. A codebook determination device, characterized in that: include: A processor and a communication interface; the communication interface is coupled to the processor, and the processor is configured to run a computer program or instruction to implement the codebook determination method according to any one of claims 1 to 5.
12. A computer-readable storage medium storing instructions, characterized in that: When a computer executes the instruction, the computer executes the codebook determination method described in any one of claims 1 to 5.
Citation Information
Patent Citations
SCMA code book design method, SCMA coder and SCMA system
CN107204832A
Efficient uplink SCMA codebook design
CN112350814A