Spherical decoding method and device
By setting the calculation unit based on the multiple of the number of received antennas in the spherical decoding device, forward and inverse bit path search is realized, and the problems of low flexibility, high complexity and poor scalability of traditional spherical decoders are solved, and high efficiency is achieved. Flexible spherical decoding method.
Patent Information
- Application Number
- CN202310962437.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-31
- Publication Date
- 2025-02-18
AI Technical Summary
Traditional spherical decoders have problems such as low flexibility, high implementation complexity and poor scalability, and it is difficult to achieve performance close to maximum likelihood estimation within acceptable complexity.
The forward path search is realized based on A first calculation unit of C calculation units in the spherical decoding device, and the inverse bit path search is realized based on B second calculation units in the C calculation unit, A and B are Receive multiples of the number of antennas, and flexibly set the number of calculation units to improve flexibility and scalability.
The spherical decoding method and device with high flexibility, low complexity and good scalability are realized, and the system spectrum efficiency can be improved without increasing the spectrum resources and total transmission power.
Smart Images

Figure CN119483810A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of communication technology, and in particular to a sphere decoding method and device. Background Art
[0002] Massive MIMO (Massive Multiple Input Multiple Output) technology has attracted widespread attention from academia and industry because it can significantly improve system spectrum efficiency without increasing spectrum resources and total transmit power. The concept of Massive MIMO was first proposed by Professor Marzetta of Bell Labs in 2010. The theory assumes that the base station is equipped with a large-scale array antenna to simultaneously serve multiple single-antenna users on the same time-frequency resources.
[0003] For signal recovery schemes, commonly used equalization detection schemes can be divided into two categories. Linear equalization generally has low complexity but average performance; nonlinear equalization schemes include self-interference cancellation (SIC), maximum likelihood estimation (ML), and sphere decoding (SD). Among them, the ML scheme has the best performance in theory, but its computational complexity increases exponentially with the increase of modulation order and number of data streams. When the number of data streams exceeds 3 layers and the modulation order exceeds 16 quadrature amplitude modulation (16QAM), the ML scheme is almost not feasible to implement. In order to obtain a detector with performance close to ML within an acceptable complexity, the academic community has proposed a detection algorithm called sphere decoding. Sphere decoding is essentially to construct the MIMO-ML detection problem on a source signal constellation point tree to search for an optimal path, and continuously strengthen the constraints during the search process.
[0004] However, the traditional sphere decoder still has the problems of low flexibility, high implementation complexity and poor scalability. Summary of the invention
[0005] Embodiments of the present application provide a sphere decoding method and device.
[0006] In a first aspect, an embodiment of the present application provides a spherical decoding device, comprising: an input interface for receiving a spherical decoding task; a task processing unit for determining, according to the spherical decoding task, A first computing units for forward path search and B second computing units for reverse bit path search among C computing units; wherein A and B are multiples of the number of receiving antennas, and C is the total number of computing units; according to the spherical decoding task, a forward path search task corresponding to each of the A first computing units is generated respectively, and the forward path search task is sequentially sent to the corresponding first computing unit; according to the spherical decoding task, B second computing units are generated respectively. The inverse bit path search task corresponding to each second computing unit in the computing unit sends the inverse bit path search task to the corresponding second computing unit in sequence; A first computing units are used to perform forward path search according to the forward path search task sent by the task processing unit; B second computing units are used to perform inverse bit path search according to the inverse bit path search task sent by the task processing unit; a storage unit is used to store the relatively small Euclidean distance corresponding to the soft bit information according to the forward path search results and the inverse bit path search results; an output interface is used to output the relatively small Euclidean distance corresponding to the soft bit information.
[0007] In a second aspect, an embodiment of the present application provides a spherical decoding method, comprising: receiving a spherical decoding task; determining A first computing units for forward path search and B second computing units for inverse bit path search among C computing units according to the spherical decoding task; wherein A and B are multiples of the number of receiving antennas, and C is the total number of computing units; generating a forward path search task corresponding to each of the A first computing units according to the spherical decoding task, and sending the forward search task to the corresponding first computing unit in sequence; performing a forward path search through the A first computing units according to the corresponding forward path search task sent; generating an inverse bit path search task corresponding to each of the B second computing units according to the spherical decoding task, and sending the inverse bit path search task to the corresponding second computing unit in sequence; performing an inverse bit path search through the B second computing units according to the corresponding inverse bit path search task sent; storing a relatively small Euclidean distance corresponding to the soft bit information according to the forward path search results and the inverse bit path search results; and outputting the relatively small Euclidean distance corresponding to the soft bit information.
[0008] The spherical decoding device provided in the embodiment of the present application implements forward path search based on A first computing units among C computing units, and implements reverse bit path search based on B second computing units among C computing units, where A and B are multiples of the number of receiving antennas, that is, the required number of computing units C can be set in the spherical decoding device according to the actual application scenario, with high flexibility, low implementation complexity and good scalability. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 A block diagram of a spherical decoding device provided in one embodiment of the present application;
[0010] Figure 2 A block diagram of the composition of a computing unit provided in an embodiment of the present application;
[0011] Figure 3 N provided in the embodiment of the present application R A schematic diagram of input and output connections of a first computing unit;
[0012] Figure 4 N provided in the embodiment of the present application R A schematic diagram of the input and output connections of a second computing unit;
[0013] Figure 5 A flowchart of a sphere decoding method provided by another embodiment of the present application. DETAILED DESCRIPTION
[0014] In order to enable those skilled in the art to better understand the technical solution of the present application, the sphere decoding method and device provided by the present application are described in detail below with reference to the accompanying drawings.
[0015] Example embodiments will be described more fully below with reference to the accompanying drawings, but the example embodiments may be embodied in different forms and should not be construed as limited to the embodiments set forth herein. On the contrary, the purpose of providing these embodiments is to make this application thorough and complete and to enable those skilled in the art to fully understand the scope of this application.
[0016] In the absence of conflict, the embodiments of the present application and the features therein may be combined with each other.
[0017] As used herein, the term "and / or" includes any and all combinations of at least one of the associated listed items.
[0018] The terms used herein are only used to describe specific embodiments and are not intended to limit the present application. As used herein, the singular forms "a", "an" and "the" are also intended to include the plural forms, unless the context clearly indicates otherwise. It will also be understood that when the terms "comprising" and / or "made of" are used in this specification, the presence of the features, wholes, steps, operations, elements and / or components is specified, but the presence or addition of at least one other feature, whole, step, operation, element, component and / or its group is not excluded.
[0019] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by those of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant art and this application, and will not be interpreted as having an idealized or overly formal meaning unless explicitly defined herein.
[0020] Before introducing the sphere decoding method and device according to the embodiment of the present application, the sphere decoding algorithm adopted by the sphere decoding device according to the embodiment of the present application is first introduced.
[0021] Assume that the number of transmitting antennas is N t , the number of receiving antennas is N R , the channel is a flat fading channel, then the communication system receives information can be expressed as: y = H × s + n; where y is N R ×1 received signal vector, s is N t ×1 transmitted signal vector, n is N R ×1 noise vector, H is N R ×N t The channel matrix.
[0022] The sphere decoding algorithm is as follows:
[0023] 1. Perform noise whitening processing; this step is optional and can be performed or not;
[0024] 2. Reorder the channel matrix H according to the modulation order and the received signal power, placing the data streams most susceptible to interference at the top and the rest in order from the most robust to the most susceptible to interference.
[0025] 3. Perform QR decomposition on the reordered channel matrix to obtain the Q matrix and R matrix.
[0026] 4. Multiply the conjugate transpose of the Q matrix by the received signal vector to obtain the equalized signal vector of the received signal vector.
[0027] 5. Perform maximum likelihood ML path detection on the equalized signal vector, i.e., forward path search.
[0028] Specifically, all top-level nodes are divided into Na groups, each group includes a representative constellation point and several first extended constellation points, and path search is performed on all representative constellation points to obtain Nb representative constellation points with relatively small metrics, wherein Na and Nb are both natural numbers and Na>Nb; path search is performed on the first extended constellation points adjacent to the Nb representative constellation points, and Nc branches with relatively small metrics are selected as retained paths, where Nc is a natural number.
[0029] Here, the metric may be the Euclidean distance.
[0030] 6. Select Nd remaining paths with relatively small metrics from the Nc remaining paths.
[0031] 7. Perform ML complement path detection on the Nd remaining paths to obtain the ML complement path, that is, the inverse bit path search.
[0032] Specifically, for each layer of constellation point in each of the Nd remaining paths, Ne second extended constellation points corresponding to the constellation point are determined, and path search is performed on the Ne second extended constellation points to obtain Nf paths with relatively small metrics as ML complement paths of the remaining path.
[0033] Figure 1 A block diagram of a sphere decoding device provided in accordance with an embodiment of the present application.
[0034] First, refer to Figure 1 An embodiment of the present application provides a spherical decoding device, comprising: an input interface 101, for receiving a spherical decoding task; a task processing unit 102, for determining, according to the spherical decoding task, A first computing units for forward path search and B second computing units for reverse bit path search in C computing units 103; wherein A and B are multiples of the number of receiving antennas, and C is the total number of computing units; according to the spherical decoding task, a forward path search task corresponding to each of the A first computing units is generated respectively, and the forward path search task is sequentially issued to the corresponding first computing unit; according to the spherical decoding task, B second computing units are generated respectively A reverse bit path search task corresponding to each second computing unit in the task processing unit is sent to the corresponding second computing unit in sequence; A first computing unit 1031 is used to perform a forward path search according to the forward path search task sent by the task processing unit; B second computing units 1032 are used to perform a reverse bit path search according to the reverse bit path search task sent by the task processing unit; a storage unit 104 is used to store a relatively small Euclidean distance corresponding to the soft bit information according to the forward path search results and the reverse bit path search results; an output interface 105 is used to output the relatively small Euclidean distance corresponding to the soft bit information.
[0035] In some exemplary embodiments, the input interface 101 is specifically used to: determine whether a spherical decoding task is received, and if so, send the spherical decoding task to the task processing unit 102; if not, continue to determine whether a spherical decoding task is received.
[0036] In some exemplary embodiments, the task processing unit 102 is also used to: determine whether the A first computing units are in an idle state; when the A first computing units are in an idle state, continue to execute the step of performing a forward path search through the A first computing units according to the corresponding forward path search tasks issued; when the A first computing units are in a non-idle state, wait for the A first computing units to be in an idle state, and then execute the step of performing a forward path search through the A first computing units according to the corresponding forward path search tasks issued.
[0037] In the process of performing the forward path search by the A first computing units according to the corresponding forward path search tasks issued, the A first computing units are set to be in a non-idle state.
[0038] In some exemplary embodiments, the sphere decoding apparatus includes: C computing units 103 , A first computing units 1031 are part or all of the C computing units 103 , and B second computing units 1032 are part or all of the C computing units 103 .
[0039] In some exemplary embodiments, some or all of the A first computing units 1031 and the B second computing units 1032 are the same, or some or all of the computing units are different.
[0040] For example, the spherical decoding device includes: 8 computing units, namely computing unit 1, computing unit 2, computing unit 3, computing unit 4, computing unit 5, computing unit 6, computing unit 7, and computing unit 8. A first computing units can be computing unit 1, computing unit 2, computing unit 3, and computing unit 4, and B second computing units can be computing unit 5, computing unit 6, computing unit 7, and computing unit 8; that is, all the computing units in the A first computing units and the B second computing units are different; or, the A first computing units can be computing unit 1, computing unit 2, computing unit 3, computing unit 4, computing unit 5, computing unit 6, computing unit 7, and computing unit 8, and the B second computing units can be computing unit 1, computing unit 2, computing unit 3, computing unit 4, computing unit 5, computing unit 6, computing unit 7, and computing unit 8; that is, all the computing units in the A first computing units and the B second computing units are the same.
[0041] In some exemplary embodiments, Figure 2 As shown, the computing unit includes: an input module, a computing module and an output module.
[0042] In some exemplary embodiments, the input module and the output module may be implemented using a multiplexer to control the direction of input data and output data of the computing unit.
[0043] In some exemplary embodiments, the sphere decoding task includes: a channel matrix H, a received signal vector y, a modulation order, and Nd; wherein Nd refers to selecting Nd remaining paths from Nc remaining paths obtained by performing a forward path search.
[0044] In some exemplary embodiments, the task processing unit 102 is also used to: reorder the channel matrix according to the modulation order and the received signal power; perform QR decomposition on the reordered channel matrix to obtain a Q matrix and an R matrix; and multiply the conjugate transpose of the Q matrix by the received signal vector to obtain an equalized signal vector of the received signal vector.
[0045] In some exemplary embodiments, the task processing unit 102 is also used to: perform noise whitening processing; reorder the channel matrix according to the modulation order and the received signal power; perform QR decomposition on the reordered channel matrix to obtain a Q matrix and an R matrix; and multiply the conjugate transpose of the Q matrix by the received signal vector to obtain an equalized signal vector of the received signal vector.
[0046] In some exemplary embodiments, the sphere decoding task includes: equalizing the signal vector Q H y, R matrix, modulation order, Nd.
[0047] In some exemplary embodiments, the task processing unit 102 is further used to: determine Nb, Nc, Ne, and Nf according to the modulation order; wherein Nb refers to Nb representative constellation points selected from Na representative constellation points, Nc is the number of retained paths obtained by performing a forward path search, Ne is the number of second extended constellation points when performing an inverse bit path search, and Nf is the number of paths with a relatively small Euclidean distance obtained by performing a path search based on Ne second extended constellation points.
[0048] In some exemplary embodiments, the sphere decoding task also includes at least one of Nb, Nc, Ne, and Nf; wherein Nb refers to Nb representative constellation points selected from Na representative constellation points, Nc is the number of retained paths obtained by performing a forward path search, Ne is the number of second extended constellation points when performing a reverse bit path search, and Nf is the number of paths with relatively small Euclidean distances obtained by performing a path search based on Ne second extended constellation points.
[0049] In some exemplary embodiments, the A first computing units 1031 include A / N R first groups; each first group includes N R First computing units 1031, namely N R The first computing unit 1031 of the layer; wherein N R is the number of receiving antennas.
[0050] The task processing unit 102 is further configured to: control the N in the first group according to the sphere decoding task R The input and output connection relationship of the first computing unit.
[0051] The Nth in the first group R The first computing unit of the layer is used to receive the corresponding forward path search task sent by the task processing unit, and calculate the Nth forward path search task according to the received forward path search task. R The Euclidean distance corresponding to the layer, the Nth R The Euclidean distance corresponding to the layer is output to the Nth R -1 layer first computing unit.
[0052] When i is less than N R and is greater than 1, the first computing unit of the i-th layer in the first group is used to receive the corresponding forward path search task issued by the task processing unit and the Euclidean distance output by the first computing unit of the i+1-th layer, calculate the Euclidean distance corresponding to the i-th layer according to the received forward path search task, and output the sum of the Euclidean distance corresponding to the i-th layer and the Euclidean distance output by the first computing unit of the i+1-th layer to the first computing unit of the i-1-th layer.
[0053] The first calculation unit of the first layer in the first group is used to receive the corresponding forward path search task issued by the task processing unit and the Euclidean distance output by the first calculation unit of the second layer, calculate the Euclidean distance corresponding to the first layer according to the received forward path search task, add the Euclidean distance corresponding to the first layer and the Euclidean distance output by the first calculation unit of the second layer as the sum of the Euclidean distance of the current search path, and output the Euclidean distance of the current search path as the forward path search result to the storage unit.
[0054] In some exemplary embodiments, N R The first computing unit of the layer performs at least one of bit width adjustment and big-endian adjustment on the processed intermediate data during the forward path search process.
[0055] In some exemplary embodiments, Figure 3 As shown, the task processing unit 102 controls the N in the first group according to the sphere decoding task. RThe output of the first computing unit of the i-th layer among the first computing units is connected to the input of the first computing unit of the i-1-th layer; where i is 1 to N R Any integer between .
[0056] In some exemplary embodiments, the Nth R The forward path search task corresponding to the first calculation unit of the layer includes: bit representation representing the constellation point, corresponding row data in the R matrix, corresponding row elements in the equalized signal vector, and the time interval between two adjacent calculations.
[0057] The first computing unit of the first layer in the first group R The forward path search task corresponding to the first calculation unit of the -1 layer includes: the corresponding row data in the R matrix, the corresponding row elements in the equalized signal vector, the time interval between two adjacent calculations, the number of paths calculated each time, and the bit representation of the constellation point corresponding to this layer in the path of each calculation.
[0058] In some exemplary embodiments, the Nth R The corresponding row data in the R matrix included in the forward path search task corresponding to the first computing unit of the layer may be the first row data in the R matrix.
[0059] In some exemplary embodiments, the Nth R The corresponding row data in the equalized signal vector included in the forward path search task corresponding to the first calculation unit of the layer may be the first row data in the equalized signal vector.
[0060] In some exemplary embodiments, the corresponding row data in the R matrix included in the forward path search task corresponding to the first computing unit of the i-th layer may be the Nth row in the R matrix. R -i+1 rows of data; where i is 1 to N R Any integer between -1.
[0061] In some exemplary embodiments, the corresponding row element in the equalized signal vector included in the forward path search task corresponding to the first computing unit of the i-th layer may be the Nth row element in the equalized signal vector. R -i+1 row elements; where i is 1 to N R Any integer between -1.
[0062] In some exemplary embodiments, the task processing unit 102 sends the Nth R The number of forward path search tasks issued by the first computing unit of the layer is Nb, and each time it is issued to the Nth R The bit representation of the constellation point in the forward path search task corresponding to the first computing unit of the layer is the bit representation of one constellation point among the Nb constellation points.
[0063] In some exemplary embodiments, the task processing unit 102 sends the first computing unit of the first layer to the Nth computing unit. R The number of forward path search tasks sent by the first computing unit of the first layer is determined according to the modulation order, and each time it is sent to the first computing unit of the first layer to the Nth computing unit, R The bit representation of the constellation point in the forward path search task of the first calculation unit of the -1 layer is the bit representation of at least one constellation point among all the constellation points corresponding to the modulation order.
[0064] In some exemplary embodiments, the task processing unit 102 is further used to: obtain Nc remaining paths obtained by the forward path search, determine an extended remaining path based on the Nc remaining paths, and send the bit representation of the constellation points in the extended remaining path to the second computing unit of the corresponding layer.
[0065] In some exemplary embodiments, the task processing unit 102 is further used to: obtain Nc remaining paths obtained by the forward path search, and generate a reverse bit path search task corresponding to each of the B second computing units according to the Nc remaining paths and the spherical decoding task.
[0066] In some exemplary embodiments, the task processing unit 102 is specifically configured to obtain the Nc remaining paths obtained by the forward path search in the following manner: obtaining the Nc remaining paths obtained by the forward path search from A first computing units.
[0067] In some exemplary embodiments, the task processing unit 102 is also used to: determine whether the B second computing units are in an idle state; when the B second computing units are in an idle state, continue to execute the step of performing an inverse bit path search through the B second computing units according to the corresponding inverse bit path search task issued; when the B second computing units are in a non-idle state, wait for the B second computing units to be in an idle state, and then execute the step of performing an inverse bit path search through the B second computing units according to the corresponding inverse bit path search task issued.
[0068] In the process of performing the inverse bit path search according to the corresponding inverse bit path search task issued by the B second computing units, the B second computing units are set to be in a non-idle state.
[0069] In some exemplary embodiments, the B second computing units include B / N R second groups; each second group includes N R The second computing unit, N R The second computing unit of the layer; where N R is the number of receiving antennas.
[0070] The task processing unit 102 is further used to: control the N in the second group according to the sphere decoding task R The input and output connection relationship of the second computing unit.
[0071] The Nth R The second computing unit of the layer is used to receive the corresponding inverse bit path search task sent by the task processing unit, and calculate the Nth inverse bit path search task according to the received inverse bit path search task. R The Euclidean distance corresponding to the layer, the Nth R The Euclidean distance corresponding to the layer is output to the Nth R -1 layer second computing unit.
[0072] When i is less than N R If N is greater than 1, R The i-th second computing unit in the layer second computing unit is used to receive the corresponding inverse bit path search task issued by the task processing unit and the Euclidean distance output by the i+1-th second computing unit, calculate the Euclidean distance corresponding to the i-th layer according to the received inverse bit path search task, and output the sum of the Euclidean distance corresponding to the i-th layer and the Euclidean distance output by the i+1-th second computing unit to the i-1-th second computing unit.
[0073] N R The first-layer second computing unit in the second-layer computing unit is used to receive the corresponding inverse bit path search task issued by the task processing unit and the Euclidean distance output by the second-layer computing unit, calculate the Euclidean distance corresponding to the first layer according to the received inverse bit path search task, add the Euclidean distance corresponding to the first layer and the Euclidean distance output by the second-layer computing unit as the Euclidean distance of the current search path, and output the Euclidean distance of the current search path as the inverse bit path search result to the storage unit.
[0074] In some exemplary embodiments, Figure 4 As shown, the task processing unit 102 controls the N in the second group according to the sphere decoding task. R The output of the second computing unit of the i-th layer among the second computing units is connected to the input of the second computing unit of the i-1-th layer; wherein i is 1 to N R Any integer between .
[0075] In some exemplary embodiments, the Nth R The inverse bit path search task corresponding to the second computing unit of the layer 1 to the second computing unit of the Dth layer includes: the corresponding row data in the R matrix, the corresponding row elements in the equalized signal vector, and the time interval between two adjacent calculations; wherein the D layer is an extended layer.
[0076] The inverse bit path search tasks corresponding to the second calculation unit of the 1st layer to the second calculation unit of the D-1th layer in the second group include: the corresponding row data in the R matrix, the corresponding row elements in the equalized signal vector, the time interval between two adjacent calculations, the number of paths calculated each time, and the bit representation of the constellation point corresponding to this layer in the path of each calculation.
[0077] In some exemplary embodiments, the Nth R The inverse bit path search task corresponding to the second computing unit of the layer 1 to the second computing unit of the Dth layer also includes: the bit representation of the constellation point of this layer in the currently extended retained path.
[0078] In some exemplary embodiments, when i is less than N R and is greater than or equal to D, the second calculation unit of the i-th layer is specifically used to calculate the Euclidean distance corresponding to the i-th layer according to the received inverse bit path search task in the following manner, including: receiving the bit representation of the i-th layer constellation point in the currently extended retained path, and calculating the Euclidean distance corresponding to the i-th layer according to the received inverse bit path search task and the bit representation of the i-th layer constellation point in the currently extended retained path.
[0079] In some exemplary embodiments, N R The second computing unit of the layer performs at least one of bit width adjustment and big-endian adjustment on the processed intermediate data during the reverse bit path search process.
[0080] In some exemplary embodiments, the corresponding row data in the R matrix included in the inverse bit path search task corresponding to the second computing unit of the i-th layer may be the Nth row in the R matrix. R -i+1 rows of data; where i is 1 to N R Any integer in .
[0081] In some exemplary embodiments, the corresponding row element in the equalized signal vector included in the inverse bit path search task corresponding to the second computing unit of the i-th layer may be the Nth row element in the equalized signal vector. R -i+1 row elements; where i is 1 to N R Any integer in .
[0082] In some exemplary embodiments, the task processing unit 102 sends the Nth R The number of inverse bit path search tasks sent from the second computing unit of the layer 1 to the second computing unit of the layer D+1 is Nd, and each time it is sent to the Nth layer R The bit representation of the constellation point in the inverse bit path search task corresponding to the second computing unit of the layer 1 to the second computing unit of the Dth layer is the bit representation of one constellation point in the constellation points of this layer in the Nd remaining paths.
[0083] In some exemplary embodiments, the number of inverse bit path search tasks issued by the task processing unit 102 to the second computing unit of the D-th layer is Nd×Ne, and the bit representation of the constellation point in the corresponding inverse bit path search task issued to the second computing unit of the D-th layer each time is the bit representation of one constellation point among the Ne second extended constellation points.
[0084] In some exemplary embodiments, the number of inverse bit path search tasks issued by the task processing unit 102 to the second computing unit of the first layer to the second computing unit of the D-1 layer is determined according to the modulation order, and the bit representation of the constellation point in the inverse bit path search task issued to the second computing unit of the first layer to the second computing unit of the D-1 layer each time is the bit representation of at least one constellation point among all the constellation points corresponding to the modulation order.
[0085] In some exemplary embodiments, the storage unit 104 is specifically used to: when a forward path search result or an inverse bit path search result is received, for each soft bit information in the current search path, compare the forward path search result or the inverse bit path search result with the Euclidean distance corresponding to the stored soft bit information; when the forward path search result or the inverse bit path search result is greater than or equal to the Euclidean distance corresponding to the stored soft bit information, keep the Euclidean distance corresponding to the stored soft bit information unchanged; when the forward path search result or the inverse bit path search result is less than the Euclidean distance corresponding to the stored soft bit information, update the Euclidean distance corresponding to the stored soft bit information to the forward path search result or the inverse bit path search result.
[0086] In some exemplary embodiments, the storage unit 104 includes a memory.
[0087] The storage unit 104 is specifically used to store the relatively small Euclidean distance corresponding to the soft bit information in the storage partition corresponding to the soft bit information in the memory according to the forward path search result and the reverse path search result.
[0088] In some exemplary embodiments, each path includes N R Layer constellation point, each layer constellation point is represented by at least one bit of information, and each bit of information can be 0 or 1.
[0089] The memory includes a storage partition corresponding to each bit information being 0, and a storage partition corresponding to each bit information being 1, and each storage partition is used to store a Euclidean distance corresponding to a bit information being 0, or to store a Euclidean distance corresponding to a bit information being 1. For example, a path includes 4 layers of constellation points, and each layer of constellation points is represented by 4 bits of information. Then the memory includes 32 storage partitions, the first storage partition is used to store the Euclidean distance corresponding to the first bit information of the first layer of constellation points being 0, the second storage partition is used to store the Euclidean distance corresponding to the first bit information of the first layer of constellation points being 1, the third storage partition is used to store the Euclidean distance corresponding to the second bit information of the first layer of constellation points being 0, the fourth storage partition is used to store the Euclidean distance corresponding to the second bit information of the first layer of constellation points being 1, ..., the 32nd storage partition is used to store the Euclidean distance corresponding to the fourth bit information of the fourth layer of constellation points being 1.
[0090] Therefore, when the storage unit 104 receives the forward path search result or the reverse bit path search result, the forward path search result or the reverse bit path search result is the Euclidean distance corresponding to the current search path, then the Euclidean distance corresponding to the current search path is compared with the Euclidean distance stored in the storage partition corresponding to each soft bit information in the current search path. For example, if the current search path is 0001-0010-0101-1110, then the Euclidean distance stored in the storage partition corresponding to the first bit information (i.e., 0) (i.e., the first storage partition) is compared with the Euclidean distance corresponding to the current search path. If the Euclidean distance stored in the first storage partition is greater than the Euclidean distance corresponding to the current search path, then the Euclidean distance stored in the first storage partition is replaced with the Euclidean distance corresponding to the current search path. If the Euclidean distance stored in the first storage partition is less than the Euclidean distance corresponding to the current search path, then the Euclidean distance stored in the first storage partition is kept unchanged. The other bit information is analogous, and will not be repeated here.
[0091] In some exemplary embodiments, a memory unit includes: a memory array.
[0092] The storage unit is specifically used to store the relatively small Euclidean distance corresponding to the soft bit information in the memory corresponding to the soft bit information in the memory array according to the forward path search result and the reverse path search result.
[0093] In some exemplary embodiments, each path includes N R Layer constellation point, each layer constellation point is represented by at least one bit of information, and each bit of information can be 0 or 1.
[0094] The memory array includes a memory corresponding to each bit information being 0 and a memory corresponding to each bit information being 1, and each memory is used to store a Euclidean distance corresponding to a bit information being 0, or to store a Euclidean distance corresponding to a bit information being 1. For example, a path includes 4 layers of constellation points, and each layer of constellation points is represented by 4 bits of information. Then the memory array includes 32 memories, the first memory is used to store the Euclidean distance corresponding to the first bit information of the first layer of constellation points being 0, the second memory is used to store the Euclidean distance corresponding to the first bit information of the first layer of constellation points being 1, the third memory is used to store the Euclidean distance corresponding to the second bit information of the first layer of constellation points being 0, the fourth memory is used to store the Euclidean distance corresponding to the second bit information of the first layer of constellation points being 1, ..., the 32nd memory is used to store the Euclidean distance corresponding to the fourth bit information of the fourth layer of constellation points being 1.
[0095] Therefore, when the storage unit 104 receives the forward path search result or the reverse bit path search result, and the forward path search result or the reverse bit path search result is the Euclidean distance corresponding to the current search path, the Euclidean distance corresponding to the current search path is compared with the Euclidean distance stored in the memory corresponding to each soft bit information in the current search path. For example, if the current search path is 0001-0010-0101-1110, the Euclidean distance stored in the memory corresponding to the first bit information (i.e., 0) (i.e., the first memory) is compared with the Euclidean distance corresponding to the current search path. If the Euclidean distance stored in the first memory is greater than the Euclidean distance corresponding to the current search path, the Euclidean distance stored in the first memory is replaced with the Euclidean distance corresponding to the current search path. If the Euclidean distance stored in the first memory is less than the Euclidean distance corresponding to the current search path, the Euclidean distance stored in the first memory is kept unchanged. The other bit information is analogous, and will not be repeated here.
[0096] In some exemplary embodiments, each memory in the memory array may be connected to one comparator, or to two comparators.
[0097] When each memory is connected to a comparator, the comparator is used to compare the Euclidean distance stored in the memory with the forward path search result or the reverse bit path search result, and determine whether to update the Euclidean distance stored in the memory according to the comparison result.
[0098] In the case where each memory is connected to two comparators, one of the comparators is used to compare the Euclidean distance stored in the memory with the forward path search result, and determine whether to update the Euclidean distance stored in the memory according to the comparison result; the other comparator is used to compare the Euclidean distance stored in the memory with the inverse bit search result, and determine whether to update the Euclidean distance stored in the memory according to the comparison result.
[0099] In some exemplary embodiments, the Euclidean distances corresponding to each soft bit information stored in the storage unit 104 when it is 0 and 1 and output by the output interface 105 are provided to the soft bit information calculation unit for calculating the soft bit information.
[0100] The spherical decoding device provided in the embodiment of the present application implements forward path search based on A first computing units among C computing units, and implements reverse bit path search based on B second computing units among C computing units, where A and B are multiples of the number of receiving antennas, that is, the required number of computing units C can be set in the spherical decoding device according to the actual application scenario, with high flexibility, low implementation complexity and good scalability.
[0101] Figure 5 A flowchart of a sphere decoding method provided by another embodiment of the present application.
[0102] Second, refer to Figure 5 Another embodiment of the present application provides a sphere decoding method, comprising:
[0103] Step 500, receiving a sphere decoding task.
[0104] In some exemplary embodiments, receiving the spherical decoding task includes: determining whether the spherical decoding task is received, and executing subsequent steps if the spherical decoding task is received; and continuing to determine whether the spherical decoding task is received if the spherical decoding task is not received.
[0105] In some exemplary embodiments, the sphere decoding task includes: a channel matrix H, a received signal vector y, a modulation order, and Nd; wherein Nd refers to selecting Nd remaining paths from Nc remaining paths obtained by performing a forward path search.
[0106] In some exemplary embodiments, after receiving a spherical decoding task, before determining A first computing units for forward path search and B second computing units for reverse bit path search among C computing units according to the spherical decoding task, the method also includes: reordering the channel matrix according to the modulation order and the received signal power; performing QR decomposition on the reordered channel matrix to obtain a Q matrix and an R matrix; and multiplying the conjugate transpose of the Q matrix by the received signal vector to obtain an equalized signal vector of the received signal vector.
[0107] In some exemplary embodiments, after receiving the spherical decoding task, before determining A first computing units for forward path search and B second computing units for reverse bit path search among C computing units according to the spherical decoding task, the method also includes: performing noise whitening processing; reordering the channel matrix according to the modulation order and the received signal power; performing QR decomposition on the reordered channel matrix to obtain a Q matrix and an R matrix; and multiplying the conjugate transpose of the Q matrix by the received signal vector to obtain an equalized signal vector of the received signal vector.
[0108] In some exemplary embodiments, the sphere decoding task includes: equalizing the signal vector Q H y, R matrix, modulation order, Nd.
[0109] In some exemplary embodiments, after receiving the sphere decoding task, before determining A first computing units for forward path search and B second computing units for inverse bit path search among C computing units according to the sphere decoding task, the method further includes: determining Nb, Nc, Ne, and Nf according to the modulation order; wherein Nb refers to Nb representative constellation points selected from Na representative constellation points, Nc is the number of retained paths obtained by performing the forward path search, Ne is the number of second extended constellation points when performing the inverse bit path search, and Nf is the number of paths with relatively small Euclidean distance obtained by performing the path search based on the Ne second extended constellation points.
[0110] In some exemplary embodiments, the sphere decoding task also includes at least one of Nb, Nc, Ne, and Nf; wherein Nb refers to Nb representative constellation points selected from Na representative constellation points, Nc is the number of retained paths obtained by performing a forward path search, Ne is the number of second extended constellation points when performing a reverse bit path search, and Nf is the number of paths with relatively small Euclidean distances obtained by performing a path search based on Ne second extended constellation points.
[0111] Step 501, determine A first computing units for forward path search and B second computing units for reverse bit path search among C computing units according to the sphere decoding task; wherein A and B are multiples of the number of receiving antennas, and C is the total number of computing units.
[0112] In some exemplary embodiments, the A first computing units 1031 are part or all of the C computing units 103 , and the B second computing units 1032 are part or all of the C computing units 103 .
[0113] In some exemplary embodiments, some or all of the A first computing units 1031 and the B second computing units 1032 are the same, or some or all of the computing units are different.
[0114] For example, the spherical decoding device includes: 8 computing units, namely computing unit 1, computing unit 2, computing unit 3, computing unit 4, computing unit 5, computing unit 6, computing unit 7, and computing unit 8. A first computing units can be computing unit 1, computing unit 2, computing unit 3, and computing unit 4, and B second computing units can be computing unit 5, computing unit 6, computing unit 7, and computing unit 8; that is, all the computing units in the A first computing units and the B second computing units are different; or, the A first computing units can be computing unit 1, computing unit 2, computing unit 3, computing unit 4, computing unit 5, computing unit 6, computing unit 7, and computing unit 8, and the B second computing units can be computing unit 1, computing unit 2, computing unit 3, computing unit 4, computing unit 5, computing unit 6, computing unit 7, and computing unit 8; that is, all the computing units in the A first computing units and the B second computing units are the same.
[0115] Step 502: Generate a forward path search task corresponding to each of the A first computing units according to the spherical decoding task, and send the forward search task to the corresponding first computing units in sequence; perform a forward path search through the A first computing units according to the corresponding forward path search tasks sent down.
[0116] In some exemplary embodiments, after the forward search tasks are sequentially issued to the corresponding first computing units, before the forward path search is performed by the A first computing units according to the corresponding forward path search tasks issued, the method further includes: determining whether the A first computing units are in an idle state; if the A first computing units are in an idle state, continuing to execute the step of performing the forward path search by the A first computing units according to the corresponding forward path search tasks issued; if the A first computing units are in a non-idle state, waiting for the A first computing units to be in an idle state, and then executing the step of performing the forward path search by the A first computing units according to the corresponding forward path search tasks issued.
[0117] In the process of performing the forward path search by the A first computing units according to the corresponding forward path search tasks issued, the A first computing units are set to be in a non-idle state.
[0118] In some exemplary embodiments, the A first computing units 1031 include A / N R first groups; each first group includes N R First computing units 1031, namely NR The first computing unit 1031 of the layer; wherein N R is the number of receiving antennas.
[0119] In some exemplary embodiments, before the forward path search is performed by the A first computing units according to the corresponding forward path search tasks issued, the method further includes: controlling the N first computing units in the first group according to the sphere decoding tasks. R The input and output connection relationship of the first computing unit.
[0120] In some exemplary embodiments, performing a forward path search by A first computing units according to the corresponding forward path search tasks issued includes: performing a forward path search by the Nth computing unit in the first group R The first computing unit of the layer receives the corresponding forward path search task issued by the task processing unit, and calculates the Nth R The Euclidean distance corresponding to the layer, the Nth R The Euclidean distance corresponding to the layer is output to the Nth R -1 layer first computing unit; when i is less than N R and is greater than 1, the corresponding forward path search task issued by the task processing unit and the Euclidean distance output by the first calculation unit of the i+1th layer are received by the first calculation unit of the i-th layer in the first group, the Euclidean distance corresponding to the i-th layer is calculated according to the received forward path search task, and the sum of the Euclidean distance corresponding to the i-th layer and the Euclidean distance output by the first calculation unit of the i+1th layer is output to the first calculation unit of the i-1th layer; the corresponding forward path search task issued by the task processing unit and the Euclidean distance output by the first calculation unit of the second layer are received by the first calculation unit of the first layer in the first group, the Euclidean distance corresponding to the first layer is calculated according to the received forward path search task, the sum of the Euclidean distance corresponding to the first layer and the Euclidean distance output by the first calculation unit of the second layer is used as the Euclidean distance of the current search path, and the Euclidean distance of the current search path is output to the storage unit as the forward path search result.
[0121] In some exemplary embodiments, N in the first group is controlled according to the sphere decoding task. R The input-output connection relationship of the first computing units includes: controlling the N in the first group according to the sphere decoding task R The output of the first computing unit of the i-th layer among the first computing units is connected to the input of the first computing unit of the i-1-th layer; where i is 1 to N R Any integer between .
[0122] In some exemplary embodiments, the Nth RThe forward path search task corresponding to the first calculation unit of the layer includes: bit representation representing the constellation point, corresponding row data in the R matrix, corresponding row elements in the equalized signal vector, and the time interval between two adjacent calculations.
[0123] The first computing unit of the first layer in the first group R The forward path search task corresponding to the first calculation unit of the -1 layer includes: the corresponding row data in the R matrix, the corresponding row elements in the equalized signal vector, the time interval between two adjacent calculations, the number of paths calculated each time, and the bit representation of the constellation point corresponding to this layer in the path of each calculation.
[0124] In some exemplary embodiments, the Nth R The corresponding row data in the R matrix included in the forward path search task corresponding to the first computing unit of the layer may be the first row data in the R matrix.
[0125] In some exemplary embodiments, the Nth R The corresponding row data in the equalized signal vector included in the forward path search task corresponding to the first calculation unit of the layer may be the first row data in the equalized signal vector.
[0126] In some exemplary embodiments, the corresponding row data in the R matrix included in the forward path search task corresponding to the first computing unit of the i-th layer may be the Nth row in the R matrix. R -i+1 rows of data; where i is 1 to N R Any integer between -1.
[0127] In some exemplary embodiments, the corresponding row element in the equalized signal vector included in the forward path search task corresponding to the first computing unit of the i-th layer may be the Nth row element in the equalized signal vector. R -i+1 row elements; where i is 1 to N R Any integer between -1.
[0128] In some exemplary embodiments, the Nth R The number of forward path search tasks issued by the first computing unit of the layer is Nb, and each time it is issued to the Nth R The bit representation of the constellation point in the forward path search task corresponding to the first computing unit of the layer is the bit representation of one constellation point among the Nb constellation points.
[0129] In some exemplary embodiments, the first computing unit of the first layer to the Nth computing unit R The number of forward path search tasks sent by the first computing unit of the first layer is determined according to the modulation order, and each time it is sent to the first computing unit of the first layer to the Nth computing unit, RThe bit representation of the constellation point in the forward path search task of the first calculation unit of the -1 layer is the bit representation of at least one constellation point among all the constellation points corresponding to the modulation order.
[0130] In some exemplary embodiments, N R The first computing unit of the layer performs at least one of bit width adjustment and big-endian adjustment on the processed intermediate data during the forward path search process.
[0131] Step 503: Generate a corresponding inverse bit path search task for each of the B second computing units according to the spherical decoding task, and send the inverse bit path search task to the corresponding second computing units in turn; and perform inverse bit path search according to the corresponding inverse bit path search task sent by the B second computing units.
[0132] In some exemplary embodiments, after the inverse bit search tasks are sequentially issued to the corresponding second computing units, before the inverse bit path search is performed by B second computing units according to the corresponding inverse bit path search tasks issued, the method also includes: determining whether the B second computing units are in an idle state; when the B second computing units are in an idle state, continuing to execute the step of performing the inverse bit path search by the B second computing units according to the corresponding inverse bit path search tasks issued; when the B second computing units are in a non-idle state, waiting for the B second computing units to be in an idle state, and then executing the step of performing the inverse bit path search by the B second computing units according to the corresponding inverse bit path search tasks issued.
[0133] In the process of performing the inverse bit path search according to the corresponding inverse bit path search task issued by the B second computing units, the B second computing units are set to be in a non-idle state.
[0134] In some exemplary embodiments, after generating the inverse bit path search tasks corresponding to each of the B second computing units according to the spherical decoding tasks, the method further includes: acquiring Nc remaining paths obtained by the forward path search, determining an extended remaining path according to the Nc remaining paths, and sending the bit representation of the constellation points in the extended remaining path to the second computing unit of the corresponding layer.
[0135] In some exemplary embodiments, generating a reverse bit path search task corresponding to each of the B second computing units according to the spherical decoding task includes: acquiring Nc remaining paths obtained by the forward path search, and generating a reverse bit path search task corresponding to each of the B second computing units according to the Nc remaining paths and the spherical decoding task.
[0136] In some exemplary embodiments, the B second computing units include B / N R second groups; each second group includes N R The second computing unit, N R The second computing unit of the layer; where N R is the number of receiving antennas.
[0137] In some exemplary embodiments, after the inverse bit path search tasks are sequentially issued to the corresponding second computing units, before the inverse bit path search is performed by the B second computing units according to the issued corresponding inverse bit path search tasks, the method further includes: controlling the N in the second group according to the sphere decoding task R The input and output connection relationship of the second computing unit.
[0138] In some exemplary embodiments, N in the second group is controlled according to the sphere decoding task. R The input-output connection relationship of the second computing units includes: controlling the N in the second group according to the sphere decoding task R The output of the second computing unit of the i-th layer among the second computing units is connected to the input of the second computing unit of the i-1-th layer; wherein i is 1 to N R Any integer between .
[0139] In some exemplary embodiments, performing the inverse bit path search by the B second computing units according to the corresponding inverse bit path search task issued includes: performing the inverse bit path search by the Nth in the second group R The second computing unit of the layer receives the corresponding inverse bit path search task issued by the task processing unit, and calculates the Nth R The Euclidean distance corresponding to the layer, the Nth R The Euclidean distance corresponding to the layer is output to the Nth R -1 layer second computing unit; when i is less than N R and is greater than 1, through N R The i-th layer second computing unit in the layer second computing unit receives the corresponding inverse bit path search task issued by the task processing unit and the Euclidean distance output by the i+1-th layer second computing unit, calculates the Euclidean distance corresponding to the i-th layer according to the received inverse bit path search task, and outputs the sum value obtained by adding the Euclidean distance corresponding to the i-th layer and the Euclidean distance output by the i+1-th layer second computing unit to the i-1-th layer second computing unit; RThe first-layer second computing unit in the second computing unit of the layer receives the corresponding inverse bit path search task issued by the task processing unit and the Euclidean distance output by the second-layer second computing unit, calculates the Euclidean distance corresponding to the first layer according to the received inverse bit path search task, adds the Euclidean distance corresponding to the first layer and the Euclidean distance output by the second computing unit of the second layer as the Euclidean distance of the current search path, and outputs the Euclidean distance of the current search path as the inverse bit path search result to the storage unit.
[0140] In some exemplary embodiments, the Nth R The inverse bit path search task corresponding to the second computing unit of the layer 1 to the second computing unit of the Dth layer includes: the corresponding row data in the R matrix, the corresponding row elements in the equalized signal vector, and the time interval between two adjacent calculations; wherein the D layer is an extended layer.
[0141] The inverse bit path search tasks corresponding to the second calculation unit of the 1st layer to the second calculation unit of the D-1th layer in the second group include: the corresponding row data in the R matrix, the corresponding row elements in the equalized signal vector, the time interval between two adjacent calculations, the number of paths calculated each time, and the bit representation of the constellation point corresponding to this layer in the path of each calculation.
[0142] In some exemplary embodiments, the Nth R The inverse bit path search task corresponding to the second computing unit of the layer 1 to the second computing unit of the Dth layer also includes: the bit representation of the constellation point of this layer in the currently extended retained path.
[0143] In some exemplary embodiments, when i is less than N R and is greater than or equal to D, the second calculation unit of the i-th layer calculates the Euclidean distance corresponding to the i-th layer according to the received inverse bit path search task, including: receiving the bit representation of the i-th layer constellation point in the currently extended retained path, and calculating the Euclidean distance corresponding to the i-th layer according to the received inverse bit path search task and the bit representation of the i-th layer constellation point in the currently extended retained path.
[0144] In some exemplary embodiments, the corresponding row data in the R matrix included in the inverse bit path search task corresponding to the second computing unit of the i-th layer may be the Nth row in the R matrix. R -i+1 rows of data; where i is 1 to N R Any integer in .
[0145] In some exemplary embodiments, the corresponding row element in the equalized signal vector included in the inverse bit path search task corresponding to the second computing unit of the i-th layer may be the Nth row element in the equalized signal vector. R -i+1 row elements; where i is 1 to N RAny integer in .
[0146] In some exemplary embodiments, the task processing unit 102 sends the Nth R The number of inverse bit path search tasks sent from the second computing unit of the layer 1 to the second computing unit of the layer D+1 is Nd, and each time it is sent to the Nth layer R The bit representation of the constellation point in the inverse bit path search task corresponding to the second computing unit of the layer 1 to the second computing unit of the Dth layer is the bit representation of one constellation point in the constellation points of this layer in the Nd remaining paths.
[0147] In some exemplary embodiments, the number of inverse bit path search tasks issued by the task processing unit 102 to the second computing unit of the D-th layer is Nd×Ne, and the bit representation of the constellation point in the corresponding inverse bit path search task issued to the second computing unit of the D-th layer each time is the bit representation of one constellation point among the Ne second extended constellation points.
[0148] In some exemplary embodiments, the number of inverse bit path search tasks issued by the task processing unit 102 to the second computing unit of the first layer to the second computing unit of the D-1 layer is determined according to the modulation order, and the bit representation of the constellation point in the inverse bit path search task issued to the second computing unit of the first layer to the second computing unit of the D-1 layer each time is the bit representation of at least one constellation point among all the constellation points corresponding to the modulation order.
[0149] In some exemplary embodiments, N R The second computing unit of the layer performs at least one of bit width adjustment and big-endian adjustment on the processed intermediate data during the reverse bit path search process.
[0150] Step 504: store the relatively small Euclidean distance corresponding to the soft bit information according to the forward path search result and the reverse bit path search result; and output the relatively small Euclidean distance corresponding to the soft bit information.
[0151] In some exemplary embodiments, storing the relatively small Euclidean distance corresponding to the soft bit information according to the forward path search result and the reverse bit path search result includes: when the forward path search result or the reverse bit path search result is received, for each soft bit information in the current search path, comparing the forward path search result or the reverse bit path search result with the Euclidean distance corresponding to the already stored soft bit information; when the forward path search result or the reverse bit path search result is greater than or equal to the Euclidean distance corresponding to the already stored soft bit information, keeping the Euclidean distance corresponding to the already stored soft bit information unchanged; when the forward path search result or the reverse bit path search result is less than the Euclidean distance corresponding to the already stored soft bit information, updating the Euclidean distance corresponding to the already stored soft bit information to the forward path search result or the reverse bit path search result.
[0152] The specific implementation process of the above sphere decoding method is the same as the specific implementation process of the sphere decoding device in the above embodiment, which will not be repeated here.
[0153] It will be appreciated by those skilled in the art that all or some of the steps, systems, and functional modules / units in the methods disclosed above may be implemented as software, firmware, hardware, and appropriate combinations thereof. In hardware implementations, the division between the functional modules / units mentioned in the above description does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed by several physical components in cooperation. Some or all physical components may be implemented as software executed by a processor, such as a central processing unit, a digital signal processor, or a microprocessor, or implemented as hardware, or implemented as an integrated circuit, such as an application-specific integrated circuit. Such software may be distributed on a computer-readable medium, which may include a computer storage medium (or non-transitory medium) and a communication medium (or temporary medium). As known to those skilled in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tapes, magnetic disk storage or other magnetic storage, or any other medium that can be used to store the desired information and can be accessed by a computer. In addition, it is well known to those skilled in the art that communication media typically contain computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media.
[0154] Example embodiments have been disclosed herein, and although specific terms are employed, they are used and should be interpreted only in a general illustrative sense and not for limiting purposes. In some instances, it will be apparent to those skilled in the art that, unless otherwise expressly noted, features, characteristics, and / or elements described in conjunction with a particular embodiment may be used alone or in combination with features, characteristics, and / or elements described in conjunction with other embodiments. Therefore, those skilled in the art will appreciate that various changes in form and detail may be made without departing from the scope of the present application as set forth in the appended claims.
Claims
1. A sphere decoding device, comprising: An input interface for receiving spherical decoding tasks; A task processing unit, used to determine A first computing units for forward path search and B second computing units for inverse bit path search among C computing units according to the spherical decoding task; wherein A and B are multiples of the number of receiving antennas, and C is the total number of computing units; generate a forward path search task corresponding to each of the A first computing units according to the spherical decoding task, and send the forward path search task to the corresponding first computing unit in sequence; generate an inverse bit path search task corresponding to each of the B second computing units according to the spherical decoding task, and send the inverse bit path search task to the corresponding second computing unit in sequence; A first computing unit, configured to perform a forward path search according to the forward path search task issued by the task processing unit; B second computing units, configured to perform an inverse bit path search according to the inverse bit path search task issued by the task processing unit; A storage unit, used for storing a relatively small Euclidean distance corresponding to the soft bit information according to the forward path search result and the reverse bit path search result; The output interface is used to output the relatively small Euclidean distance corresponding to the soft bit information.
2. The sphere decoding device according to claim 1, wherein: A of the first computing units include A / N R first groups; each first group includes N R The first computing units, namely N R The first computing unit of the layer; where N R is the number of receiving antennas; The task processing unit is further used to: control N in the first group according to the sphere decoding task R The input-output connection relationship of the first computing unit; The Nth R The first computing unit of the layer is used to receive the corresponding forward path search task issued by the task processing unit, and calculate the Nth forward path search task according to the received forward path search task. R The Euclidean distance corresponding to the layer is R The Euclidean distance corresponding to the layer is output to the Nth R -1st layer first computing unit; When i is less than N R and is greater than 1, the first calculation unit of the i-th layer in the first group is used to receive the corresponding forward path search task issued by the task processing unit and the Euclidean distance output by the first calculation unit of the i+1-th layer, calculate the Euclidean distance corresponding to the i-th layer according to the received forward path search task, and output the sum of the Euclidean distance corresponding to the i-th layer and the Euclidean distance output by the first calculation unit of the i+1-th layer to the first calculation unit of the i-1-th layer; The first calculation unit of the first layer in the first group is used to receive the corresponding forward path search task issued by the task processing unit and the Euclidean distance output by the first calculation unit of the second layer, calculate the Euclidean distance corresponding to the first layer according to the received forward path search task, add the Euclidean distance corresponding to the first layer and the Euclidean distance output by the first calculation unit of the second layer as the sum of the Euclidean distance of the current search path, and output the Euclidean distance of the current search path as the forward path search result to the storage unit.
3. The sphere decoding device according to claim 2, wherein: The Nth R The forward path search task corresponding to the first calculation unit of the layer includes: bit representation of constellation points, corresponding row data in the R matrix, corresponding row elements in the equalized signal vector, and the time interval between two adjacent calculations; The first computing unit of the first layer to the Nth computing unit in the first group R The forward path search task corresponding to the first calculation unit of the -1 layer includes: the corresponding row data in the R matrix, the corresponding row elements in the equalized signal vector, the time interval between two adjacent calculations, the number of paths calculated each time, and the bit representation of the constellation point corresponding to this layer in the path calculated each time.
4. The sphere decoding device according to claim 1, wherein: B of the second computing units include B / N R second groups; each second group includes N R The second computing unit, N R The second computing unit of the layer; where N R is the number of receiving antennas; The task processing unit is further used to: control the N in the second group according to the sphere decoding task R The input-output connection relationship of the second computing unit; The Nth R The second computing unit of the layer is used to receive the corresponding inverse bit path search task issued by the task processing unit, and calculate the Nth inverse bit path search task according to the received inverse bit path search task. R The Euclidean distance corresponding to the layer is R The Euclidean distance corresponding to the layer is output to the Nth R -1 layer second computing unit; When i is less than N R If N is greater than 1, R The i-th layer second computing unit in the layer second computing unit is used to receive the corresponding forward path search task issued by the task processing unit and the Euclidean distance output by the i+1-th layer second computing unit, calculate the Euclidean distance corresponding to the i-th layer according to the received forward path search task, and output the sum of the Euclidean distance corresponding to the i-th layer and the Euclidean distance output by the i+1-th layer second computing unit to the i-1-th layer second computing unit; The N R The first layer second calculation unit in the second layer second calculation unit is used to receive the corresponding forward path search task issued by the task processing unit and the Euclidean distance output by the second layer second calculation unit, calculate the Euclidean distance corresponding to the first layer according to the received forward path search task, add the Euclidean distance corresponding to the first layer and the Euclidean distance output by the second layer second calculation unit as the Euclidean distance of the current search path, and output the Euclidean distance of the current search path as the inverse bit path search result to the storage unit.
5. The sphere decoding device according to claim 4, wherein: The Nth R The inverse bit path search task corresponding to the second calculation unit of the layer 1 to the second calculation unit of the D layer includes: the bit representation of the constellation point of this layer in the currently extended retained path, the corresponding row data in the R matrix, the corresponding row elements in the equalized signal vector, and the time interval between two adjacent calculations; wherein the D layer is the extended layer; The inverse bit path search task corresponding to the second calculation unit of the 1st layer to the second calculation unit of the D-1th layer in the second group includes: the corresponding row data in the R matrix, the corresponding row elements in the equalized signal vector, the time interval between two adjacent calculations, the number of paths calculated each time, and the bit representation of the constellation point corresponding to this layer in the path of each calculation.
6. The sphere decoding device according to claim 1, wherein: The storage unit is specifically used for: When the forward path search result or the inverse bit path search result is received, for each soft bit information in the current search path, comparing the forward path search result or the inverse bit path search result with the Euclidean distance corresponding to the stored soft bit information; When the forward path search result or the reverse bit path search result is greater than or equal to the Euclidean distance corresponding to the stored soft bit information, the Euclidean distance corresponding to the stored soft bit information is kept unchanged; When the forward path search result or the inverse bit path search result is smaller than the Euclidean distance corresponding to the stored soft bit information, the Euclidean distance corresponding to the stored soft bit information is updated to the forward path search result or the inverse bit path search result.
7. The sphere decoding device according to claim 1, wherein: The storage unit includes a memory; The storage unit is specifically used to store the relatively small Euclidean distance corresponding to the soft bit information in the storage partition corresponding to the soft bit information in the memory according to the forward path search result and the reverse path search result.
8. The sphere decoding device according to claim 1, wherein: The storage unit comprises: a memory array; The storage unit is specifically used to store the relatively small Euclidean distance corresponding to the soft bit information in the memory corresponding to the soft bit information in the memory array according to the forward path search result and the reverse path search result.
9. The sphere decoding device according to any one of claims 1 to 8, wherein: The spherical decoding device comprises: C computing units, A first computing units are part or all of the C computing units, and B second computing units are part or all of the C computing units.
10. The sphere decoding device according to any one of claims 1 to 8, wherein: The sphere decoding task includes: a channel matrix, a received signal vector, a modulation order, and Nd; wherein Nd refers to selecting Nd remaining paths from Nc remaining paths obtained by performing a forward path search; Alternatively, the sphere decoding task includes: equalizing signal vector, R matrix, modulation order, Nd.
11. The spherical decoding device according to claim 10, wherein the task processing unit is further configured to: Reordering the channel matrix according to the modulation order and the received signal power; Perform QR decomposition on the reordered channel matrix to obtain a Q matrix and an R matrix; The conjugate transpose of the Q matrix is multiplied by the received signal vector to obtain an equalized signal vector of the received signal vector.
12. The sphere decoding device according to claim 10, wherein the task processing unit is further configured to: Determine Nb, Nc, Ne, and Nf according to the modulation order; wherein, Nb refers to Nb representative constellation points selected from Na representative constellation points, Nc is the number of retained paths obtained by forward path search, Ne is the number of second extended constellation points when performing reverse bit path search, and Nf is the number of paths with relatively small Euclidean distance obtained by path search based on Ne second extended constellation points.
13. A sphere decoding method, comprising: Receive spherical decoding tasks; Determine, according to the sphere decoding task, A first computing units for forward path search and B second computing units for reverse bit path search among the C computing units; wherein A and B are multiples of the number of receiving antennas, and C is the total number of computing units; Generate a forward path search task corresponding to each of the A first computing units according to the spherical decoding task, and issue the forward search task to the corresponding first computing units in sequence; perform a forward path search by the A first computing units according to the corresponding forward path search tasks issued; Generate a reverse bit path search task corresponding to each of the B second computing units according to the spherical decoding task, and send the reverse bit path search task to the corresponding second computing units in sequence; perform reverse bit path search by the B second computing units according to the sent corresponding reverse bit path search task; According to the forward path search result and the reverse bit path search result, a relatively small Euclidean distance corresponding to the soft bit information is stored; and the relatively small Euclidean distance corresponding to the soft bit information is output.