Method and device for obtaining metric values of multi-input multi-output constellation points and demodulation accelerator
By performing orthogonal triangle transformation and constellation point segmentation on the channel matrix and signal vectors, and selecting anchor points to calculate the measurement value, solving the problem of high computational complexity in large-scale multi-input and multi-output technology, simplifying the hardware structure and improving the computing efficiency.
Patent Information
- Application Number
- CN202410512894.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-04-26
- Publication Date
- 2025-08-29
- Estimated Expiration
- 2044-04-26
AI Technical Summary
In large-scale multi-input and multi-output technology, the signal detection complexity is high, the calculation complexity and hardware structure complexity are increased, and the calculation complexity of existing algorithms such as QRM-MLD is significantly increased when increasing the number of layers and modulation methods.
By performing orthogonal triangular transformation of the channel matrix and signal vectors to form an upper triangle matrix, segmenting the constellation point groups and selecting anchor points, calculating the measurement value using the anchor point coordinates and upper triangle matrix, reducing the real number multiplication operation, and converting it into real number addition and subtraction operation.
The calculation complexity of the multi-input multi-output constellation point measurement value acquisition process is reduced, the hardware structure is simplified, and the computing efficiency is improved.
Smart Images

Figure CN118214463B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of wireless communication technology, and in particular to a method and device for obtaining multi-input multi-output constellation point metric values, and a demodulation accelerator. Background Art
[0002] With the increasing popularity of mobile devices, people's demand for mobile communications is increasing, further driving the development of 5G technology. Massive Multiple-Input Multiple-Output (MMIO) technology is one of the key technologies of 5G. By configuring multiple antennas at the transmitting and receiving ends, multiple channel paths can be formed between them. Using digital signal processing to precode and detect transmitted and received signals, this technology fully utilizes spatial resources to combat the effects of wireless channel fading without occupying additional bandwidth or increasing transmit power, significantly improving system speed performance and data transmission reliability.
[0003] Signal detection is a crucial component of large-scale multiple-input, multiple-output (MLD) technology. As the number of transmit and receive antennas increases, signal detection complexity rapidly increases. To achieve optimal detection performance, a maximum likelihood (MLD) receiver is generally used. Algorithms based on the maximum likelihood criterion (MLD) criterion are primarily tree-based search algorithms. The most popular is the QRM-MLD algorithm, which uses orthogonal triangular decomposition (QR) and the fast power module algorithm (FM). This algorithm transforms the channel matrix into a triangular matrix through orthogonal triangular decomposition (QR decomposition). This allows for layer-by-layer search during detection, significantly reducing computational complexity and facilitating engineering implementation. However, for the QRM-MLD algorithm to achieve performance comparable to traditional MLD, the number of search points per layer must be as large as possible. Consequently, as the number of layers and modulation schemes increase, the computational and hardware complexity of QRM-MLD increases significantly. Summary of the Invention
[0004] The multi-input multi-output constellation point metric value acquisition method, device and demodulation accelerator provided by the present invention can reduce the computational complexity in the multi-input multi-output constellation point metric value acquisition process and simplify the hardware structure.
[0005] In a first aspect, the present invention provides a method for obtaining metric values of multiple-input multiple-output constellation points, the method comprising:
[0006] performing an orthogonal triangular transformation on a first signal vector formed according to a channel matrix and signals received by a plurality of antennas to form an upper triangular matrix and a second signal vector, and determining estimation points of a plurality of data transmission layers according to the upper triangular matrix and the second signal vector;
[0007] Determine a first search range based on a first preset size and with the current layer estimated point as the center;
[0008] Dividing the constellation points within the first search range into multiple constellation point groups based on a neighboring relationship, and determining a first anchor point in each constellation point group;
[0009] Determining a metric value corresponding to the first anchor point based on the first anchor point coordinates, the second signal vector, and the upper triangular matrix;
[0010] In the same constellation point group, a metric value corresponding to each constellation point is determined based on a coordinate relationship between each constellation point and the first anchor point and a matrix element at a corresponding position in the upper triangular matrix.
[0011] Optionally, determining the metric value corresponding to the first anchor point according to the first anchor point coordinates, the second signal vector, and the upper triangular matrix includes:
[0012] Multiplying the first element corresponding to the maximum row index value and the maximum column index value in the upper triangular matrix by the first anchor point to obtain a first intermediate value;
[0013] Subtracting the first intermediate value from the first vector element corresponding to the maximum row index of the second signal vector to obtain a second intermediate value;
[0014] Perform a square operation on the modulus of the second intermediate value to obtain a metric value corresponding to the first anchor point.
[0015] Optionally, determining, in the same constellation point group, a metric value corresponding to each constellation point based on a coordinate relationship between each constellation point and the first anchor point and a matrix element at a corresponding position in the upper triangular matrix includes:
[0016] Obtain the coordinate difference between each constellation point and the first anchor point in the real and imaginary parts;
[0017] Multiplying the coordinate difference between the real part and the imaginary part by the first element to obtain a first element to be processed corresponding to each constellation point;
[0018] Adding the second intermediate value to the first element to be processed corresponding to each constellation point to obtain a first element to be calculated;
[0019] A square operation is performed on the modulus of the first element to be calculated to obtain a metric value corresponding to each constellation point.
[0020] Optionally, after determining the metric value corresponding to each constellation point in the same constellation point group according to the coordinate relationship between each constellation point and the anchor point and the matrix element at the corresponding position in the upper triangular matrix, the method further includes:
[0021] Update the current layer index, and determine a second search range based on a second preset size with the current layer estimated point as the center;
[0022] Dividing the constellation points within the second search range into a plurality of constellation point groups based on a neighboring relationship, and determining a second anchor point in each constellation point group;
[0023] In the data transmission layer for which the constellation point metric values have been calculated, the constellation points for which the metric values have been calculated are combined by randomly selecting one per layer, and a first path is formed according to the corresponding data transmission layer index;
[0024] Determining a metric value of the second anchor point based on the constellation point in the first path, the second anchor point, a corresponding matrix element in the upper triangular matrix, and a corresponding element in the second signal vector;
[0025] In the same constellation point group, the metric value of each constellation point is determined according to the coordinate relationship between each constellation point and the second anchor point and the matrix element at the corresponding position in the upper triangular matrix, and the step of updating the current layer index is returned.
[0026] Optionally, determining the metric value of the second anchor point according to the constellation point in the first path, the second anchor point, a corresponding matrix element in the upper triangular matrix, and a corresponding element in the second signal vector includes:
[0027] Constructing a constellation point vector based on the constellation points in the first path and the second anchor point; wherein the index order of the constellation points in the constellation point vector is the same as the index order of the layer where the constellation points are located;
[0028] The number of non-zero elements in the upper triangular matrix is the same as the number of elements in the constellation point vector, and the zero elements are removed as the parameter vector;
[0029] Performing a matrix multiplication operation on the parameter vector and the constellation point vector to obtain a third intermediate value;
[0030] Obtaining, in the second signal vector, a second vector element corresponding to the second anchor point, wherein the reverse order of the second anchor point in the constellation point vector is the same as the reverse order of the second vector elements in the second signal vector;
[0031] subtracting the third intermediate value from the second vector element to obtain a fourth intermediate value;
[0032] A square operation is performed on the modulus of the fourth intermediate value to obtain a second anchor point metric value.
[0033] Optionally, determining the metric value of each constellation point in the same constellation point group according to a coordinate relationship between each constellation point and the second anchor point and a matrix element at a corresponding position in the upper triangular matrix includes:
[0034] Obtain the coordinate difference between each constellation point and the second anchor point in the real part and the imaginary part;
[0035] Multiplying the coordinate difference between the real part and the imaginary part by the corresponding second element in the upper triangular matrix to obtain a second element to be processed corresponding to each constellation point;
[0036] Adding the fourth intermediate value to the second to-be-processed element corresponding to each constellation point to obtain a second to-be-calculated element;
[0037] Perform a square operation on the modulus of the second element to be calculated to obtain a metric value corresponding to each constellation point.
[0038] Optionally, the method further includes:
[0039] Randomly select a constellation point at the current layer for which metric calculation has been completed to form a second path together with the first path;
[0040] The metric values of the constellation points in the second path are summed to obtain a metric value of the second path.
[0041] In a second aspect, the present invention further provides a multi-input multi-output constellation point metric value acquisition device, comprising: an estimation module, a segmentation module communicatively connected to the estimation module, and a plurality of first calculation modules communicatively connected to the segmentation module; wherein,
[0042] The estimation module is configured to perform an orthogonal triangular transformation on a first signal vector formed by a channel matrix and signals received by multiple antennas to form an upper triangular matrix and a second signal vector, and determine estimation points of multiple data transmission layers based on the upper triangular matrix and the second signal vector; and determine a first search range centered on the current layer estimation point and based on a first preset size;
[0043] The segmentation module is used to segment the constellation points within the first search range into multiple constellation point groups based on the adjacent relationship, and determine a first anchor point in each constellation point group;
[0044] The plurality of first calculation modules correspond one-to-one to the plurality of constellation point groups, the first calculation modules including a first common item calculation unit, a first modulus calculation unit connected to the first common item calculation unit, and a first addition and subtraction calculation unit communicatively connected to the first common item calculation unit and the first modulus calculation unit;
[0045] Among them, the first common item calculation unit is used to determine the first complex number of the metric value corresponding to the first anchor point before the modulo calculation based on the first anchor point coordinates, the second signal vector and the upper triangular matrix; the first addition and subtraction calculation unit is used to determine the second complex number of the metric value corresponding to each constellation point before the modulo calculation in the same constellation point group based on the coordinate relationship between each constellation point and the first anchor point and the matrix elements at the corresponding positions in the upper triangular matrix; the first modulo calculation unit is used to perform a square operation on the modulus of the first complex number or the modulus of the second complex number to obtain the metric value of the first anchor point or the metric value corresponding to each constellation point in the same constellation point group.
[0046] Optionally,
[0047] The first common item calculation unit is configured to multiply the first element corresponding to the maximum row index value and the maximum column index value in the upper triangular matrix by the first anchor point to obtain a first intermediate value; and subtract the first intermediate value from the first vector element corresponding to the maximum row index of the second signal vector to obtain a second intermediate value; wherein the second intermediate value is the first complex number;
[0048] The first modulus calculation unit is used to perform a square operation on the modulus of the second intermediate value to obtain a metric value corresponding to the first anchor point.
[0049] Optionally,
[0050] The first addition and subtraction calculation unit is configured to obtain the coordinate difference between each constellation point and the first anchor point in the real part and the imaginary part; multiply the coordinate difference between the real part and the imaginary part by the first element to obtain a first element to be processed corresponding to each constellation point; and add the second intermediate value to the first element to be processed corresponding to each constellation point to obtain a first element to be calculated; wherein the first element to be calculated is the second complex number;
[0051] The first modulus calculation unit is further configured to perform a square operation on the modulus of the first element to be calculated to obtain a metric value corresponding to each constellation point.
[0052] Optionally, the estimation module is further configured to update the current layer index and determine a second search range based on a second preset size with the current layer estimation point as the center;
[0053] The segmentation module is further configured to segment the constellation points within the second search range into a plurality of constellation point groups based on a neighboring relationship, and determine a second anchor point in each constellation point group;
[0054] The apparatus further includes a plurality of second calculation modules, the plurality of second calculation modules corresponding one-to-one to the plurality of constellation point groups, the second calculation modules including a second common term calculation unit, a second modulus calculation unit communicatively connected to the second common term calculation unit, a second addition and subtraction calculation unit communicatively connected to the second common term calculation unit and the second modulus calculation unit, and a summation calculation unit communicatively connected to the second modulus calculation unit;
[0055] The second common item calculation unit is configured to combine the constellation points for which the metric values have been calculated in a data transmission layer for which the metric values of the constellation points have been calculated, by randomly selecting one per layer, and forming a first path according to the corresponding data transmission layer index; determine a third complex number of the metric value of the second anchor point before modulo calculation based on the constellation points, the second anchor points, the corresponding matrix elements in the upper triangular matrix, and the corresponding elements in the second signal vector in the first path; the second addition and subtraction calculation unit is configured to determine a fourth complex number of the metric value of each constellation point in the same constellation point group before modulo calculation based on the coordinate relationship between each constellation point and the second anchor point and the matrix elements at corresponding positions in the upper triangular matrix; the second modulo calculation unit is configured to square the modulus of the third complex number or the modulus of the fourth complex number to obtain the metric value of the second anchor point or the metric value corresponding to each constellation point in the same constellation point group; the summation calculation unit is configured to randomly select a constellation point for which the metric value calculation has been completed in the current layer to form a second path together with the first path; and sum the metric values of the constellation points in the second path to obtain the metric value of the second path.
[0056] Optionally, the second common item calculation unit is configured to construct a constellation point vector based on the constellation points and the second anchor point in the first path, wherein the index order of the constellation points in the constellation point vector is the same as the index order of the layer in which the constellation points are located; remove zero elements from a row in the upper triangular matrix having the same number of non-zero elements as the number of elements in the constellation point vector, and use the result as a parameter vector; perform a matrix multiplication operation on the parameter vector and the constellation point vector to obtain a third intermediate value; obtain a second vector element corresponding to the second anchor point in the second signal vector, wherein the reverse order of the second anchor point in the constellation point vector is the same as the reverse order of the second vector elements in the second signal vector; subtract the third intermediate value from the second vector element to obtain a fourth intermediate value; wherein the fourth intermediate value is a third complex number;
[0057] The second modulus calculation unit is configured to perform a square operation on the modulus of the fourth intermediate value to obtain a second anchor point metric value.
[0058] Optionally,
[0059] The second addition and subtraction calculation unit is used to obtain the coordinate difference between each constellation point and the second anchor point in the real part and the imaginary part; multiply the coordinate difference between the real part and the imaginary part by the corresponding second element in the upper triangular matrix to obtain a second element to be processed corresponding to each constellation point; wherein the second element to be processed is a fourth complex number;
[0060] The second modulus calculation unit is further configured to perform a square operation on the modulus of the second element to be calculated to obtain a metric value corresponding to each constellation point.
[0061] In a third aspect, the present invention provides a demodulation accelerator, comprising a demodulation circuit, which can obtain a channel model after orthogonal triangular decomposition from an orthogonal triangular decomposition module in response to a call from a processor and execute the multi-input multi-output constellation point metric value acquisition method as described in any one of the above items to output multiple constellation point metric values to a log-likelihood ratio calculation module.
[0062] In a fourth aspect, the present invention provides a user equipment comprising a demodulation accelerator, a processor, and a memory as described above; wherein the demodulation accelerator, the memory, and the demodulation accelerator are communicatively connected to each other; and the demodulation accelerator performs demodulation processing on a received signal in response to a call from the processor.
[0063] In the technical solution provided by the present invention, the constellation points within the search range are grouped, and an anchor point is selected within each group of constellation points. When calculating the metric value of the constellation point, the metric value of the anchor point in the constellation point group is first calculated, and then the metric value of each constellation point is calculated based on the coordinate difference between each constellation point and the anchor point on the constellation diagram. This calculation method can convert real number multiplication into real number addition and subtraction for operation, thereby reducing the number of real number multiplication operations when calculating the metric value of each constellation point, effectively reducing the computational complexity, and thus simplifying the hardware implementation scheme for calculating the metric value of each constellation point. BRIEF DESCRIPTION OF THE DRAWINGS
[0064] Figure 1 This is a flow chart of a method for obtaining metric values of multi-input multi-output constellation points according to an embodiment of the present invention;
[0065] Figure 2 This is a flowchart of calculating a first anchor point metric value in a method for obtaining metric values of a multi-input multi-output constellation point according to another embodiment of the present invention;
[0066] Figure 3 This is a flowchart of a method for obtaining metric values of multiple-input multiple-output constellation points according to another embodiment of the present invention for calculating the metric value of each constellation point;
[0067] Figure 4 This is a flowchart of a method for obtaining metric values of multiple-input multiple-output constellation points according to another embodiment of the present invention, which updates the metric values of constellation points after the current layer index is updated;
[0068] Figure 5 This is a flowchart of a method for obtaining metric values of multi-input multi-output constellation points according to another embodiment of the present invention, showing a metric value of a second anchor point after updating the current layer index;
[0069] Figure 6 This is a flowchart of a method for obtaining metric values of multi-input multi-output constellation points according to another embodiment of the present invention, showing the metric value of each constellation point after updating the current layer index;
[0070] Figure 7 This is a flowchart of a method for obtaining metric values of multi-input multi-output constellation points according to another embodiment of the present invention, showing a second path metric value after updating the current layer index;
[0071] Figure 8 A schematic diagram of a device for obtaining metric values of multiple-input multiple-output constellation points according to another embodiment of the present invention;
[0072] Figure 9 A schematic diagram of a device for obtaining metric values of multiple-input multiple-output constellation points according to another embodiment of the present invention;
[0073] Figure 10 A schematic diagram of a demodulation accelerator according to another embodiment of the present invention;
[0074] Figure 11 FIG. 1 is a schematic diagram of a user equipment according to another embodiment of the present invention. DETAILED DESCRIPTION
[0075] To make the objectives, technical solutions, and advantages of the embodiments of the present invention more clear, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts shall fall within the scope of protection of the present invention.
[0076] The embodiment of the present invention provides a method for obtaining metric values of multi-input multi-output constellation points, such as Figure 1 As shown, the method includes:
[0077] Step 1: Perform an orthogonal triangular transformation on a first signal vector formed by a channel matrix and signals received by multiple antennas to form an upper triangular matrix and a second signal vector, and determine estimated points of multiple data transmission layers based on the upper triangular matrix and the second signal vector;
[0078] In some embodiments, assuming the channel model: y = Hx + n, the transmitter signal Receiver signal Channel Matrix n is the channel noise, y is the first signal vector formed by the received signal, the number of elements in the first signal vector formed by the received signal is the same as the number of antennas at the receiving end, x is the transmission vector formed by the transmitted signal, the number of elements in the transmission vector is the same as the number of antennas at the transmitting end, and H is the channel matrix. After channel whitening, the channel model is simplified to y w =H w x; where y w is the signal vector formed by the received signal after whitening, H w is the channel matrix after whitening.
[0079] After performing QR decomposition on the whitened H at the receiving end, the MLD metric calculation formula is simplified to:
[0080]
[0081] Let the above formula be equal to 0 and solve the equation to get x1-x L The value of , that is, the estimated point of each data transmission layer. In the above formula, Q is an orthogonal unitary matrix, R is an upper triangular matrix, Q H is the transposed conjugate matrix of Q, and L is the minimum value of R and T. is the second signal vector, x j To send the element with index j in the vector, r i,j is the element with row index i and column index j in the upper triangular matrix.
[0082] Step 2: Determine a first search range based on a first preset size with the current layer estimated point as the center;
[0083] In some embodiments, the first preset size can be determined based on search performance, for example, by simulating the search process using simulation software and selecting the size with the best performance as the preset size. The first search range is the constellation points enclosed by a square with the first preset size as the side length and the current layer estimated point as the center.
[0084] Step 3: Divide the constellation points within the first search range into multiple constellation point groups based on the adjacent relationship, and determine a first anchor point in each constellation point group;
[0085] In some embodiments, constellation points within the search range are segmented based on a neighbor relationship. After segmentation, constellation points within the same constellation point group are relatively close to each other, simplifying the subsequent calculation of metric values for other constellation points within the same constellation point group based on the metric value of the first anchor point. The first anchor point preferentially selects a constellation point whose difference in real and imaginary parts with other constellation points is 1. For example, when the constellation point group is divided into 2*2 groups, i.e., each constellation point group has four constellation points, any constellation point can be selected as the first anchor point. For another example, when the constellation point group is divided into 3*3 groups, i.e., each constellation point group has nine constellation points, the constellation point at the center can be selected as the first anchor point.
[0086] Step 4: determining a metric value corresponding to the first anchor point based on the first anchor point coordinates, the second signal vector, and the upper triangular matrix;
[0087] In some embodiments, according to the equation formed in step 1, the first anchor point is located in the data transmission layer indexed as L. That is, the metric value corresponding to the first anchor point needs to be calculated according to the following formula in the aforementioned equation:
[0088] |y mL -r L,L x L | 2
[0089] When calculating the metric value corresponding to the first anchor point, obtain the value corresponding to y from the second signal vector. mL The vector elements of r are obtained from the upper triangular matrix L,L Parameters, and substitute the coordinate value of the first anchor point in the constellation diagram into x L , you can get the metric value corresponding to the first anchor point.
[0090] Step 5: In the same constellation point group, determine the metric value corresponding to each constellation point according to the coordinate relationship between each constellation point and the first anchor point and the matrix elements at corresponding positions in the upper triangular matrix.
[0091] In some embodiments, since each constellation point in the same constellation point group is adjacent to the first anchor point, that is, the constellation point with a coordinate difference of 1, there is no need to perform real number multiplication. It is only necessary to add or subtract a corresponding parameter to the intermediate value of the first anchor point metric value that is not modulo calculated. The parameter is also the value corresponding to r L,L Parameters.
[0092] As an optional implementation, Figure 2 As shown, in step 4, determining the metric value corresponding to the first anchor point based on the first anchor point coordinates, the second signal vector, and the upper triangular matrix includes:
[0093] Step 41: multiply the first element corresponding to the maximum row index value and the maximum column index value in the upper triangular matrix by the first anchor point to obtain a first intermediate value;
[0094] In some embodiments, when calculating the first metric value, the first anchor point x k Substitute x into the formula in step 4. L , you can get the metric value corresponding to the first anchor point, that is:
[0095] ed(x k )=|(y mL -r L,L x k )| 2
[0096] According to the above formula, we need to first calculate r L,L *x k The value of r L,L is the parameter corresponding to the maximum row index and the maximum column index in the upper triangular matrix, x k The complex number formed by the coordinates of the first anchor point.
[0097] Step 42: subtract the first intermediate value from the first vector element corresponding to the maximum row index of the second signal vector to obtain a second intermediate value;
[0098] In some embodiments, the first vector element corresponding to the maximum row index of the second signal vector, y m,L The corresponding parameter is used to subtract the first intermediate value from the parameter to obtain the second intermediate value, that is, the value of the metric corresponding to the first anchor point before the modulo calculation is performed.
[0099] Step 43: Square the modulus of the second intermediate value to obtain a metric value corresponding to the first anchor point.
[0100] In some embodiments, according to the aforementioned formula, the metric value corresponding to the first anchor point can be obtained by performing a modulo calculation on the second intermediate value.
[0101] As an optional implementation, Figure 3 As shown, in step 5, in the same constellation point group, determining the metric value corresponding to each constellation point based on the coordinate relationship between each constellation point and the first anchor point and the matrix element at the corresponding position in the upper triangular matrix includes:
[0102] Step 51, obtaining the coordinate difference between each constellation point and the first anchor point in the real part and the imaginary part;
[0103] In some embodiments, since each constellation point is defined by real and imaginary coordinates on the constellation diagram, each constellation point may have coordinate differences with the first anchor point in both the real and imaginary parts. For example, the coordinate difference between the real part of a constellation point that is one unit negative relative to the first anchor point and the first anchor point is -1, and the coordinate difference between the imaginary part and the first anchor point is 0. For another example, the coordinate difference between the real part of a constellation point that is one unit positive relative to the first anchor point and the first anchor point is 0, and the coordinate difference between the imaginary part and the first anchor point is 1. Similarly, the coordinate difference between the real part of a constellation point that is one unit negative relative to the first anchor point and the imaginary part of the constellation point that is one unit positive relative to the first anchor point and the first anchor point is -1, and the coordinate difference between the imaginary part and the first anchor point is 1.
[0104] Step 52: multiply the coordinate difference between the real part and the imaginary part by the first element to obtain a first element to be processed corresponding to each constellation point;
[0105] In some embodiments, since the constellation points in the same constellation point group are adjacent to the first anchor point, that is, the coordinate difference thereof is only 0, 1 or -1, the sign of the first element can be directly determined based on the sign of 1 or -1, and then the first element to be processed can be determined, or the first element to be processed can be directly determined as 0.
[0106] Step 53: Add the second intermediate value to the first element to be processed corresponding to each constellation point to obtain a first element to be calculated;
[0107] In some embodiments, the second intermediate value is added to the first element to be processed corresponding to each constellation point, thereby obtaining the complex number of each constellation point before performing the modulo calculation, namely, the first element to be calculated.
[0108] Step 54: Perform a square operation on the modulus of the first element to be calculated to obtain a metric value corresponding to each constellation point.
[0109] In some embodiments, after performing a square operation on the modulus of the first element to be calculated, the resulting data is the metric value corresponding to each constellation point. For example, three constellation points whose coordinate differences from the first anchor point are (-1, 0), (0, 1), and (-1, 1) are used for illustration:
[0110] The metric values of the constellation points whose coordinate difference from the first anchor point is (-1, 0) are as follows:
[0111] ed(x k,(-1,0) )=|(y mL -r L,L x k )+r L,L | 2
[0112] The metric values of the constellation points whose coordinate difference from the first anchor point is (0, 1) are as follows:
[0113] ed(x k,(0,1) )=|(y mL -r L,L x k )-j*r L,L | 2
[0114] The metric values of the constellation points whose coordinate difference from the first anchor point is (-1,1) are as follows:
[0115] ed(x k,(-1,1) )=|(y mL -r L,L x k )+r 22 -j*r L,L | 2
[0116] In the aforementioned embodiments, the process of calculating the constellation point metric values for the lowest data transmission layer during the calculation of constellation point metric values for multiple data transmission layers is described. When calculating the metric values of the constellation points of other layers in the multiple data transmission layers, the upper triangular matrix can be transformed to transform the corresponding data transmission layer to the lowest layer, thereby calculating the metric values of its constellation points. Alternatively, the subsequent embodiments can be used to calculate the metric values of the constellation points in each data transmission layer for which the constellation point metric values have been calculated.
[0117] As an optional implementation, Figure 4 As shown, in step 5, after determining the metric value corresponding to each constellation point in the same constellation point group according to the coordinate relationship between each constellation point and the anchor point and the matrix element at the corresponding position in the upper triangular matrix, the method further includes:
[0118] Step 6: Update the current layer index and determine a second search range based on a second preset size with the current layer estimated point as the center;
[0119] In some embodiments, since the process of solving constellation point metric values in multiple data transmission layers typically begins with the bottommost data transmission layer, in this embodiment, updating the current layer index typically involves subtracting 1 from the current layer index. For example, when there are L transmission layers in the upper triangular matrix, that is, when there are L rows in the upper triangular matrix, the first solution is performed using the Lth row, that is, the constellation point metric values of the Lth transmission layer are solved first, and then the constellation point metric values of the L-1th layer up to the 1st layer are solved in sequence. In this embodiment, the second preset size is set based on empirical values. For example, simulation software can be used to simulate computing performance, and the size with the best computing performance can be selected as the second preset size. The second search range is the constellation point circled in a square with the current layer estimated point as the center and the second preset size as the side length.
[0120] Step 7: Divide the constellation points within the second search range into multiple constellation point groups based on the adjacent relationship, and determine a second anchor point in each constellation point group;
[0121] In some embodiments, constellation points within the search range are segmented based on a neighbor relationship. After segmentation, constellation points within the same constellation point group are relatively close to each other, simplifying the subsequent calculation of metric values for other constellation points within the same constellation point group based on the second anchor point metric value. Second anchor points are preferentially selected as constellation points whose real and imaginary differences with other constellation points are both 1. For example, when the constellation points are segmented into 2*2 groups, i.e., each constellation point group has four constellation points, any constellation point can be selected as the first anchor point. For another example, when the constellation points are segmented into 3*3 groups, i.e., each constellation point group has nine constellation points, the constellation point at the center can be selected as the first anchor point.
[0122] Step 8: In the data transmission layer where the constellation point metric values have been calculated, the constellation points for which the metric values have been calculated are randomly selected from each layer and combined to form a first path according to the corresponding data transmission layer index.
[0123] In some embodiments, when calculating the metric value of the current layer, the calculation depends on the data transmission layer for which the calculation has already been completed. For the data transmission layer for which the calculation has already been completed, when each path extends to a constellation point in the current layer, each constellation point in the current layer has a metric value. Therefore, for a first path, there are multiple paths. For example, if the current layer is the third-to-last layer, the metric values of 16 constellation points are calculated for the first-to-last layer, and the metric values of 16 constellation points are calculated for the second-to-last layer, the number of first paths is 16*16.
[0124] Step 9, determining a metric value of the second anchor point based on the constellation point in the first path, the second anchor point, the corresponding matrix element in the upper triangular matrix, and the corresponding element in the second signal vector;
[0125] In some embodiments, based on the equation formed in step 1, taking the current layer as layer L-1 as an example, the metric value of the second anchor point needs to be calculated according to the following formula:
[0126] |y m,L-1 -r L-1,L x L -r L-1,L-1 x L-1 | 2
[0127] Since the current layer is L-1, the data transmission layer for which calculation has been completed is only the Lth layer. Therefore, the first path only includes one of the constellation points in the Lth layer for which metric value calculation has been completed, that is, x L Among them, x L-1 Identify the constellation points in the L-1 layer.
[0128] When calculating the metric value corresponding to the second anchor point, obtain the value corresponding to y from the second signal vector. mL-1 The vector elements of r are obtained from the upper triangular matrix L-1,L-1 Parameters, and substitute the coordinate value of the second anchor point in the constellation diagram into x L-1 , and substitute the coordinate values of the constellation points in the first path into x L-1 , you can get the metric value corresponding to the first anchor point.
[0129] Step 10: In the same constellation point group, determine the metric value of each constellation point based on the coordinate relationship between each constellation point and the second anchor point and the matrix element at the corresponding position in the upper triangular matrix, and return to the step of updating the current layer index.
[0130] In some embodiments, in some embodiments, since each constellation point in the same constellation point group is adjacent to the second anchor point, that is, the constellation point with a coordinate difference of 1, there is no need to perform real number multiplication. It is only necessary to add or subtract a corresponding parameter to the intermediate value of the second anchor point metric value that is not modulo calculated. The parameter is also corresponding to r L-1,L-1 Parameters.
[0131] In the aforementioned embodiment, since there are multiple constellation points within the search range of the current layer and there are multiple first paths, the first anchor point has a metric value corresponding to each first path. Similarly, the constellation points also have a metric value corresponding to each first path.
[0132] As an optional implementation, Figure 5As shown, in step 9, determining the metric value of the second anchor point based on the constellation point in the first path, the second anchor point, the corresponding matrix element in the upper triangular matrix, and the corresponding element in the second signal vector includes:
[0133] Step 91: construct a constellation point vector based on the constellation points in the first path and the second anchor point; wherein the index order of the constellation points in the constellation point vector is the same as the index order of the layer where the constellation points are located;
[0134] In some embodiments, the constellation points in the first path and the second anchor point are arranged in the order of indices of the data transmission layers in which they are located to construct a constellation point vector.
[0135] Step 92, removing the zero elements from a row in the upper triangular matrix whose number of non-zero elements is the same as the number of elements in the constellation point vector and using the row as the parameter vector;
[0136] In some embodiments, in the upper triangular matrix, a row having the same number of non-zero elements as the number of elements of the constellation point vector is the corresponding multiplied row in the aforementioned matrix equation. Therefore, in this embodiment, this row is selected as the parameter vector.
[0137] Step 93: Perform a matrix multiplication operation on the parameter vector and the constellation point vector to obtain a third intermediate value;
[0138] In some embodiments, a matrix multiplication operation is performed on the parameter vector and the constellation point vector, that is, a value obtained by multiplying the corresponding rows and columns when the original upper triangular matrix is multiplied by the transmission vector matrix is obtained, that is, the third intermediate value.
[0139] Step 94: obtaining a second vector element corresponding to the second anchor point in the second signal vector, wherein the reverse order of the second anchor point in the constellation point vector is the same as the reverse order of the second vector elements in the second signal vector;
[0140] In some embodiments, since the metric value is calculated from the lower layer to the upper layer, that is, from the data transmission layer with a larger index to the data transmission layer with a smaller index, when obtaining the second vector element, it is necessary to obtain it in reverse order.
[0141] Step 95, subtracting the third intermediate value from the second vector element to obtain a fourth intermediate value;
[0142] In some embodiments, the third intermediate value is subtracted from the second vector element to obtain the value of the second anchor point before the modulo calculation is performed.
[0143] Step 96: Square the modulus of the fourth intermediate value to obtain a second anchor point metric value.
[0144] In some embodiments, after the calculation is completed, taking the constellation point in the L-1 layer as an example, the metric value of the second anchor point is as follows:
[0145] ed(x j )=|(y mL-1 -r L-1,L x L-1 -r L-1.L-1 x j )| 2
[0146] Among them, x j is the second anchor point, x L-1 is the constellation point in the first path.
[0147] As an optional implementation, Figure 6 As shown, in step 10, determining the metric value of each constellation point in the same constellation point group according to the coordinate relationship between each constellation point and the second anchor point and the matrix element at the corresponding position in the upper triangular matrix includes:
[0148] Step 101, obtaining the coordinate difference between each constellation point and the second anchor point in the real part and the imaginary part;
[0149] In some embodiments, since each constellation point is defined by real and imaginary coordinates on the constellation diagram, each constellation point may have coordinate differences with the second anchor point in both the real and imaginary parts. For example, the coordinate difference between the real part of a constellation point that is one unit negative relative to the real part of the second anchor point and the second anchor point is -1, and the coordinate difference between the imaginary part and the constellation point is 0. For another example, the coordinate difference between the real part of a constellation point that is one unit positive relative to the imaginary part of the second anchor point and the second anchor point is 0, and the coordinate difference between the imaginary part and the constellation point is 1. Similarly, the coordinate difference between the real part of a constellation point that is one unit negative relative to the real part of the second anchor point and the imaginary part of the constellation point that is one unit positive relative to the imaginary part of the second anchor point and the second anchor point is -1, and the coordinate difference between the imaginary part and the constellation point is 1.
[0150] Step 102: multiply the coordinate difference between the real part and the imaginary part by the corresponding second element in the upper triangular matrix to obtain a second element to be processed corresponding to each constellation point;
[0151] In some embodiments, since the constellation points in the same constellation point group are adjacent to the second anchor point, that is, the coordinate difference thereof is only 0, 1 or -1, the sign of the second element can be directly determined based on the sign of 1 or -1, and then the second element to be processed can be determined, or the second element to be processed can be directly determined to be 0.
[0152] Step 103, adding the fourth intermediate value to the second element to be processed corresponding to each constellation point to obtain a second element to be calculated;
[0153] In some embodiments, the fourth intermediate value is added to the second element to be processed corresponding to each constellation point, thereby obtaining the complex number of each constellation point before performing the modulo calculation, that is, the second element to be calculated.
[0154] Step 104: Perform a square operation on the modulus of the second element to be calculated to obtain a metric value corresponding to each constellation point.
[0155] In some embodiments, after performing a square operation on the modulus of the second element to be calculated, the resulting data is the metric value corresponding to each constellation point. For example, three constellation points whose coordinate differences from the second anchor point are (-1, 0), (0, 1), and (-1, 1) are used for illustration:
[0156] The metric values of the constellation points whose coordinate difference from the second anchor point is (-1, 0) are as follows:
[0157] ed(x j,(-1,0) )=|(y mL-1 -r L-1,L x L-1 -r L-1.L-1 x j )+r L,L | 2
[0158] The metric values of the constellation points whose coordinate difference from the second anchor point is (0, 1) are as follows:
[0159] ed(x j,(0,1) )=|(y mL-1 -r L-1,L x L-1 -r L-1.L-1 x j )-j*r L,L | 2
[0160] The metric values of the constellation points whose coordinate difference from the second anchor point is (-1, 1) are as follows:
[0161] ed(x j,(-1,1) )=|(y mL-1 -r L-1,L x L-1 -r L-1.L-1 x j )+r 22 -j*r L,L | 2 .
[0162] As an optional implementation, Figure 7 As shown, the method further includes:
[0163] Step 11: randomly select a constellation point at the current layer for which metric calculation has been completed, and form a second path together with the first path;
[0164] Step 12: Sum the metric values of the constellation points in the second path to obtain the metric value of the second path.
[0165] In some embodiments, the metric value of the second path is described as follows: taking the first anchor point as the first path, extending to the second anchor point and three constellation points whose coordinate differences from the second anchor point are (-1, 0), (0, 1), and (-1, 1) to form a second path.
[0166] The metric value of the second path corresponding to the second anchor point is:
[0167] ed(x j )=|(y mL -r L,L x k )| 2 +|(y mL-1 -r L-1,L x L-1 -r L-1.L-1 x j )| 2
[0168] The metric value of the second path of the constellation point whose coordinate difference from the second anchor point is (-1, 0) is as follows:
[0169] ed(x j,(-1,0) )=|(y mL -r L,L x k )| 2 +|(y mL-1 -r L-1,L x L-1 -r L-1.L-1 x j )+r L,L | 2
[0170] The metric value of the second path of the constellation point whose coordinate difference from the second anchor point is (0, 1) is as follows:
[0171] ed(x j,(0,1) )=|(y mL -r L,L x k )| 2 +|(y mL-1 -r L-1,L x L-1 -r L-1.L-1 x j )-j*r L,L | 2
[0172] The metric value of the second path of the constellation point whose coordinate difference from the second anchor point is (-1, 1) is as follows:
[0173] ed(x j,(-1,1) )=|(y mL -r L,L x k )| 2 +|(y mL-1 -r L-1,L x L-1 -r L-1.L-1 x j )+r 22 -j*r L,L | 2 .
[0174] The embodiment of the present invention also provides a multi-input multi-output constellation point measurement value acquisition device, such as Figure 8 As shown, it includes: an estimation module, a segmentation module connected to the estimation module in communication with the segmentation module, and a plurality of first calculation modules connected to the segmentation module in communication with the estimation module; wherein,
[0175] The estimation module is configured to perform an orthogonal triangular transformation on a first signal vector formed by a channel matrix and signals received by multiple antennas to form an upper triangular matrix and a second signal vector, and determine estimation points of multiple data transmission layers based on the upper triangular matrix and the second signal vector; and determine a first search range centered on the current layer estimation point and based on a first preset size;
[0176] The segmentation module is used to segment the constellation points within the first search range into multiple constellation point groups based on the adjacent relationship, and determine a first anchor point in each constellation point group;
[0177] The plurality of first calculation modules correspond one-to-one to the plurality of constellation point groups, the first calculation modules including a first common item calculation unit, a first modulus calculation unit connected to the first common item calculation unit, and a first addition and subtraction calculation unit communicatively connected to the first common item calculation unit and the first modulus calculation unit;
[0178] Among them, the first common item calculation unit is used to determine the first complex number of the metric value corresponding to the first anchor point before the modulo calculation based on the first anchor point coordinates, the second signal vector and the upper triangular matrix; the first addition and subtraction calculation unit is used to determine the second complex number of the metric value corresponding to each constellation point before the modulo calculation in the same constellation point group based on the coordinate relationship between each constellation point and the first anchor point and the matrix elements at the corresponding positions in the upper triangular matrix; the first modulo calculation unit is used to perform a square operation on the modulus of the first complex number or the modulus of the second complex number to obtain the metric value of the first anchor point or the metric value corresponding to each constellation point in the same constellation point group.
[0179] As an optional implementation, continue as Figure 8 As shown,
[0180] The first common item calculation unit is configured to multiply the first element corresponding to the maximum row index value and the maximum column index value in the upper triangular matrix by the first anchor point to obtain a first intermediate value; and subtract the first intermediate value from the first vector element corresponding to the maximum row index of the second signal vector to obtain a second intermediate value; wherein the second intermediate value is the first complex number;
[0181] The first modulus calculation unit is used to perform a square operation on the modulus of the second intermediate value to obtain a metric value corresponding to the first anchor point.
[0182] As an optional implementation, continue as Figure 8 As shown,
[0183] The first addition and subtraction calculation unit is configured to obtain the coordinate difference between each constellation point and the first anchor point in the real part and the imaginary part; multiply the coordinate difference between the real part and the imaginary part by the first element to obtain a first element to be processed corresponding to each constellation point; and add the second intermediate value to the first element to be processed corresponding to each constellation point to obtain a first element to be calculated; wherein the first element to be calculated is the second complex number;
[0184] The first modulus calculation unit is further configured to perform a square operation on the modulus of the first element to be calculated to obtain a metric value corresponding to each constellation point.
[0185] As an optional implementation, Figure 9 As shown, the estimation module is further used to update the current layer index and determine a second search range based on a second preset size with the current layer estimation point as the center;
[0186] The segmentation module is further configured to segment the constellation points within the second search range into a plurality of constellation point groups based on a neighboring relationship, and determine a second anchor point in each constellation point group;
[0187] The apparatus further includes a plurality of second calculation modules, the plurality of second calculation modules corresponding one-to-one to the plurality of constellation point groups, the second calculation modules including a second common term calculation unit, a second modulus calculation unit communicatively connected to the second common term calculation unit, a second addition and subtraction calculation unit communicatively connected to the second common term calculation unit and the second modulus calculation unit, and a summation calculation unit communicatively connected to the second modulus calculation unit;
[0188] The second common item calculation unit is configured to combine the constellation points for which the metric values have been calculated in a data transmission layer for which the metric values of the constellation points have been calculated, by randomly selecting one per layer, and forming a first path according to the corresponding data transmission layer index; determine a third complex number of the metric value of the second anchor point before modulo calculation based on the constellation points, the second anchor points, the corresponding matrix elements in the upper triangular matrix, and the corresponding elements in the second signal vector in the first path; the second addition and subtraction calculation unit is configured to determine a fourth complex number of the metric value of each constellation point in the same constellation point group before modulo calculation based on the coordinate relationship between each constellation point and the second anchor point and the matrix elements at corresponding positions in the upper triangular matrix; the second modulo calculation unit is configured to square the modulus of the third complex number or the modulus of the fourth complex number to obtain the metric value of the second anchor point or the metric value corresponding to each constellation point in the same constellation point group; the summation calculation unit is configured to randomly select a constellation point for which the metric value calculation has been completed in the current layer to form a second path together with the first path; and sum the metric values of the constellation points in the second path to obtain the metric value of the second path.
[0189] As an optional implementation, continue as Figure 9 As shown,
[0190] The second common item calculation unit is configured to construct a constellation point vector based on the constellation points and the second anchor point in the first path, wherein the index order of the constellation points in the constellation point vector is the same as the index order of the layer in which the constellation points are located; remove zero elements from a row in the upper triangular matrix having the same number of non-zero elements as the number of elements in the constellation point vector as a parameter vector; perform a matrix multiplication operation on the parameter vector and the constellation point vector to obtain a third intermediate value; obtain a second vector element corresponding to the second anchor point in the second signal vector, wherein the reverse order of the second anchor point in the constellation point vector is the same as the reverse order of the second vector elements in the second signal vector; subtract the third intermediate value from the second vector element to obtain a fourth intermediate value; wherein the fourth intermediate value is a third complex number;
[0191] The second modulus calculation unit is configured to perform a square operation on the modulus of the fourth intermediate value to obtain a second anchor point metric value.
[0192] As an optional implementation, continue as Figure 9 As shown,
[0193] The second addition and subtraction calculation unit is used to obtain the coordinate difference between each constellation point and the second anchor point in the real part and the imaginary part; multiply the coordinate difference between the real part and the imaginary part by the corresponding second element in the upper triangular matrix to obtain a second element to be processed corresponding to each constellation point; wherein the second element to be processed is a fourth complex number;
[0194] The second modulus calculation unit is further configured to perform a square operation on the modulus of the second element to be calculated to obtain a metric value corresponding to each constellation point.
[0195] The embodiment of the present invention also provides a demodulation accelerator, such as Figure 10 As shown, a demodulation circuit is included, which can obtain the channel model after orthogonal triangular decomposition from the orthogonal triangular decomposition module in response to the call of the processor and execute the multi-input multi-output constellation point metric value acquisition method as described in any one of the above items to output multiple constellation point metric values to the log-likelihood ratio calculation module.
[0196] The embodiment of the present invention further provides a user equipment, such as Figure 11 As shown, it includes the demodulation accelerator, processor and memory as mentioned above; wherein, the demodulation accelerator, memory and demodulation accelerator are communicatively connected with each other; the demodulation accelerator performs demodulation processing on the received signal in response to the call of the processor.
[0197] Those skilled in the art will appreciate that all or part of the processes in the above method embodiments can be implemented by instructing related hardware through a computer program. The program can be stored in a computer-readable storage medium, and when executed, the program can include the processes in the above method embodiments. The storage medium can be a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).
[0198] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in the present invention should be included in the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be based on the scope of protection of the claims.
Claims
1. A method for obtaining metric values of multi-input multi-output constellation points, characterized in that: The method comprises: Performing an orthogonal triangular transformation on a first signal vector formed by a channel matrix and signals received by multiple antennas to form an upper triangular matrix and a second signal vector, and determining estimated points of multiple data transmission layers based on the upper triangular matrix and the second signal vector; Determine a first search range based on a first preset size and with the current layer estimated point as the center; Dividing the constellation points within the first search range into multiple constellation point groups based on a neighboring relationship, and determining a first anchor point in each constellation point group; Determining a metric value corresponding to the first anchor point based on the first anchor point coordinates, the second signal vector, and the upper triangular matrix; In the same constellation point group, determining a metric value corresponding to each constellation point based on a coordinate relationship between each constellation point and the first anchor point and a matrix element at a corresponding position in the upper triangular matrix; The determining, based on the first anchor point coordinates, the second signal vector, and the upper triangular matrix, of a metric value corresponding to the first anchor point includes: Multiplying the first element corresponding to the maximum row index value and the maximum column index value in the upper triangular matrix by the first anchor point to obtain a first intermediate value; Subtracting the first intermediate value from the first vector element corresponding to the maximum row index of the second signal vector to obtain a second intermediate value; Performing a square operation on the modulus of the second intermediate value to obtain a metric value corresponding to the first anchor point; The step of determining, in the same constellation point group, a metric value corresponding to each constellation point based on a coordinate relationship between each constellation point and the first anchor point and a matrix element at a corresponding position in the upper triangular matrix includes: Obtain the coordinate difference between each constellation point and the first anchor point in the real and imaginary parts; Multiplying the coordinate difference between the real part and the imaginary part by the first element to obtain a first element to be processed corresponding to each constellation point; Adding the second intermediate value to the first element to be processed corresponding to each constellation point to obtain a first element to be calculated; A square operation is performed on the modulus of the first element to be calculated to obtain a metric value corresponding to each constellation point.
2. The method according to claim 1, characterized in that After determining the metric value corresponding to each constellation point in the same constellation point group according to the coordinate relationship between each constellation point and the anchor point and the matrix element at the corresponding position in the upper triangular matrix, the method further includes: Update the current layer index, and determine a second search range based on a second preset size with the current layer estimated point as the center; Dividing the constellation points within the second search range into a plurality of constellation point groups based on a neighboring relationship, and determining a second anchor point in each constellation point group; In the data transmission layer for which the constellation point metric values have been calculated, the constellation points for which the metric values have been calculated are combined by randomly selecting one per layer, and a first path is formed according to the corresponding data transmission layer index; Determining a metric value of the second anchor point based on the constellation point in the first path, the second anchor point, a corresponding matrix element in the upper triangular matrix, and a corresponding element in the second signal vector; In the same constellation point group, the metric value of each constellation point is determined according to the coordinate relationship between each constellation point and the second anchor point and the matrix element at the corresponding position in the upper triangular matrix, and the step of updating the current layer index is returned.
3. The method according to claim 2, characterized in that Determining the metric value of the second anchor point according to the constellation point in the first path, the second anchor point, the corresponding matrix element in the upper triangular matrix, and the corresponding element in the second signal vector includes: Constructing a constellation point vector based on the constellation points in the first path and the second anchor point; wherein the index order of the constellation points in the constellation point vector is the same as the index order of the layer where the constellation points are located; The number of non-zero elements in the upper triangular matrix is the same as the number of elements in the constellation point vector, and the zero elements are removed as the parameter vector; Performing a matrix multiplication operation on the parameter vector and the constellation point vector to obtain a third intermediate value; Obtaining, in the second signal vector, a second vector element corresponding to the second anchor point, wherein the reverse order of the second anchor point in the constellation point vector is the same as the reverse order of the second vector elements in the second signal vector; subtracting the third intermediate value from the second vector element to obtain a fourth intermediate value; A modulus of the fourth intermediate value is squared to obtain a second anchor point metric value.
4. The method according to claim 3, characterized in that The determining, in the same constellation point group, of the metric value of each constellation point according to the coordinate relationship between each constellation point and the second anchor point and the matrix element at the corresponding position in the upper triangular matrix includes: Obtain the coordinate difference between each constellation point and the second anchor point in the real part and the imaginary part; Multiplying the coordinate difference between the real part and the imaginary part by the corresponding second element in the upper triangular matrix to obtain a second element to be processed corresponding to each constellation point; Adding the fourth intermediate value to the second to-be-processed element corresponding to each constellation point to obtain a second to-be-calculated element; Perform a square operation on the modulus of the second element to be calculated to obtain a metric value corresponding to each constellation point.
5. The method according to claim 4, characterized in that The method further comprises: Randomly select a constellation point at the current layer for which metric calculation has been completed to form a second path together with the first path; The metric values of the constellation points in the second path are summed to obtain a metric value of the second path.
6. A multi-input multi-output constellation point measurement value acquisition device, characterized in that: include: An estimation module, a segmentation module in communication with the estimation module, and a plurality of first calculation modules in communication with the segmentation module; wherein, The estimation module is configured to perform an orthogonal triangular transformation on a first signal vector formed by a channel matrix and signals received by multiple antennas to form an upper triangular matrix and a second signal vector, and determine estimation points of multiple data transmission layers based on the upper triangular matrix and the second signal vector; and determine a first search range centered on the current layer estimation point and based on a first preset size; The segmentation module is used to segment the constellation points within the first search range into multiple constellation point groups based on the adjacent relationship, and determine a first anchor point in each constellation point group; The plurality of first calculation modules correspond one-to-one to the plurality of constellation point groups, the first calculation modules including a first common item calculation unit, a first modulus calculation unit connected to the first common item calculation unit, and a first addition and subtraction calculation unit communicatively connected to the first common item calculation unit and the first modulus calculation unit; The first common item calculation unit is used to determine a first complex number of the metric value corresponding to the first anchor point before modulo calculation based on the first anchor point coordinates, the second signal vector, and the upper triangular matrix; the first addition and subtraction calculation unit is used to determine a second complex number of the metric value corresponding to each constellation point before modulo calculation in the same constellation point group based on the coordinate relationship between each constellation point and the first anchor point and the matrix element at the corresponding position in the upper triangular matrix; the first modulo calculation unit is used to perform a square operation on the modulus of the first complex number or the modulus of the second complex number to obtain the metric value of the first anchor point or the metric value corresponding to each constellation point in the same constellation point group; The determining, based on the first anchor point coordinates, the second signal vector, and the upper triangular matrix, of a metric value corresponding to the first anchor point includes: Multiplying the first element corresponding to the maximum row index value and the maximum column index value in the upper triangular matrix by the first anchor point to obtain a first intermediate value; Subtracting the first intermediate value from the first vector element corresponding to the maximum row index of the second signal vector to obtain a second intermediate value; Performing a square operation on the modulus of the second intermediate value to obtain a metric value corresponding to the first anchor point; In the same constellation point group, determining the metric value corresponding to each constellation point according to the coordinate relationship between each constellation point and the first anchor point and the matrix element at the corresponding position in the upper triangular matrix includes: Obtain the coordinate difference between each constellation point and the first anchor point in the real and imaginary parts; Multiplying the coordinate difference between the real part and the imaginary part by the first element to obtain a first element to be processed corresponding to each constellation point; Adding the second intermediate value to the first element to be processed corresponding to each constellation point to obtain a first element to be calculated; A square operation is performed on the modulus of the first element to be calculated to obtain a metric value corresponding to each constellation point.
7. The MIMO constellation point metric acquisition device according to claim 6, characterized in that: The estimation module is further configured to update the current layer index and determine a second search range based on a second preset size with the current layer estimation point as the center; The segmentation module is further configured to segment the constellation points within the second search range into a plurality of constellation point groups based on a neighboring relationship, and determine a second anchor point in each constellation point group; The apparatus further includes a plurality of second calculation modules, the plurality of second calculation modules corresponding one-to-one to the plurality of constellation point groups, the second calculation modules including a second common term calculation unit, a second modulus calculation unit communicatively connected to the second common term calculation unit, a second addition and subtraction calculation unit communicatively connected to the second common term calculation unit and the second modulus calculation unit, and a summation calculation unit communicatively connected to the second modulus calculation unit; The second common item calculation unit is configured to combine the constellation points for which the metric values have been calculated in a data transmission layer for which the metric values of the constellation points have been calculated, by randomly selecting one per layer, and form a first path based on the corresponding data transmission layer index; determine a third complex number of the metric value of the second anchor point before modulo calculation based on the constellation points, the second anchor points, the corresponding matrix elements in the upper triangular matrix, and the corresponding elements in the second signal vector in the first path; the second addition and subtraction calculation unit is configured to determine a fourth complex number of the metric value of each constellation point in the same constellation point group before modulo calculation based on the coordinate relationship between each constellation point and the second anchor point and the matrix elements at corresponding positions in the upper triangular matrix; the second modulo calculation unit is configured to square the modulus of the third complex number or the modulus of the fourth complex number to obtain the metric value of the second anchor point or the metric value corresponding to each constellation point in the same constellation point group; the sum calculation unit is configured to randomly select a constellation point for which the metric value calculation has been completed in the current layer to form a second path together with the first path; and sum the metric values of the constellation points in the second path to obtain the metric value of the second path.
8. A demodulation accelerator, characterized in that: The demodulation circuit includes a demodulation circuit, which can obtain a channel model after orthogonal triangular decomposition from an orthogonal triangular decomposition module in response to a call of a processor and execute the multi-input multi-output constellation point metric value acquisition method according to any one of claims 1 to 5, and then output multiple constellation point metric values to a log-likelihood ratio calculation module.
9. A user equipment, characterized in that: The demodulation accelerator comprises the demodulation accelerator, the processor and the memory as claimed in claim 8; wherein the demodulation accelerator, the memory and the demodulation accelerator are communicatively connected with each other; and the demodulation accelerator performs demodulation processing on the received signal in response to the call of the processor.
Citation Information
Patent Citations
Method and device for determining constellation points required to be detected in signal detection process
CN101741514A
Method and device for realizing sphere decoding of multi-input multi-output antenna system
CN101902310A