Patent Description:
A MIMO receiver may include receiving antennas that receive a radio signals and an estimation section that may find channel estimation of the recovered radio signals. In order to demodulate the signal, one of the approaches is to use Maximum Likelihood Detector (MLD).

Various standards for wireless communication are known, for example, to ensure interoperability between equipment from multiple vendors. The standards typically aim to ensure that an allocated spectrum for the wireless communication system is used efficiently. One such widely adopted standard is the 3rd Generation Partnership Project (3GPP) standard. The 3GPP standard has had many revisions, including an evolution into <NUM> New Radio (<NUM> NR) together with Long-Term Evolution LTE standards.

Due to the enormous rate at which information may be decoded, there is a great need in the art for providing a system and method that manages decoding signals in MIMO systems at an acceptable complexity while maintaining performance.

<CIT> discloses a receiver that uses a transmission channel matrix to obtain a superior signal separation characteristic regardless of differences in levels of multipath signals. A multipath linear combining unit performs linear combining of the multipaths in received signals of the reception antennas by means of the transmission channel matrix between the plurality of transmission antennas and the plurality of reception antennas. A maximum likelihood detector compares signals in which multipaths have been combined by the multipath linear combining unit with reception replicas that have been found using the transmission channel matrix to estimate the transmitted signals of each of the transmission antennas.

<CIT> discloses a method for frequency-domain gain control in system utilizing orthogonal frequency division multiplexing (OFDM) multiple input multiple output (MIMO). The proposed method reduces the complexity of the system while maximizing the internal accuracy of the OFDM MIMO decoder and preserving the performance of the system.

<CIT> discloses a QRD processor for computing input signals in a receiver for wireless communication relies upon a combination of multi-dimensional Givens Rotations, Householder Reflections and conventional two-dimensional (2D) Givens Rotations, for computing the QRD of matrices. The proposed technique integrates the benefits of multi-dimensional annihilation capability of Householder reflections plus the low-complexity nature of the conventional 2D Givens rotations. Such integration increases throughput and reduces the hardware complexity, by first decreasing the number of rotation operations required and then by enabling their parallel execution. A pipelined architecture is presented that uses un-rolled pipelined CORDIC processors iteratively to improve throughput and resource utilization, while reducing the gate count.

Embodiments of the present invention provide a method and apparatus for performing MLD preprocessing in a MIMO communication system. The invention is defined in the independent claims <NUM> and <NUM>.

Embodiments of the invention, however, both as to organization and method of operation, together with objects, features and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanied drawings. Embodiments of the invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals indicate corresponding, analogous or similar elements, and in which:.

In the following description, various aspects of the present invention will be described. For purposes of explanation, specific configurations and details are set forth in order to provide a thorough understanding of the present invention. However, it will also be apparent to one skilled in the art that the present invention may be practiced without the specific details presented herein. Furthermore, well known features may be omitted or simplified in order not to obscure the present invention.

Although some embodiments of the invention are not limited in this regard, discussions utilizing terms such as, for example, "processing," "computing," "calculating," "determining," "establishing", "analyzing", "checking", or the like, may refer to operation(s) and/or process(es) of a computer, a computing platform, a computing system, or other electronic computing device that manipulates and/or transforms data represented as physical (e.g., electronic) quantities within the computer's registers and/or memories into other data similarly represented as physical quantities within the computer's registers and/or memories or other information transitory or non-transitory or processor-readable storage medium that may store instructions, which when executed by the processor, cause the processor to execute operations and/or processes. Although embodiments of the invention are not limited in this regard, the terms "plurality" and "a plurality" as used herein may include, for example, "multiple" or "two or more". The terms "plurality" or "a plurality" may be used throughout the specification to describe two or more components, devices, elements, units, parameters, or the like. The term "set" when used herein may include one or more items unless otherwise stated. Unless explicitly stated, the method embodiments described herein are not constrained to a particular order or sequence. Additionally, some of the described method embodiments or elements thereof can occur or be performed in a different order from that described, simultaneously, at the same point in time, or concurrently.

Reference is now made to <FIG> depicting an N×M MIMO system <NUM>, according to embodiments of the invention. Embodiments of the present invention may apply to various MIMO systems including LTE, <NUM> NR and Wi-Fi MIMO communication networks. According to embodiments of the invention, NxM MIMO system <NUM> may include multiple M transmitting antennae <NUM> sending signals to multiple N receiving antennae <NUM>. The M transmit antennae <NUM> may transmit, over a channel, data streams represented by a transmit vector s. As used herein a vector may refer to a matrix where one of the dimensions is one. Receiving antennae <NUM> may receive data samples represented by a received signal or sample Y. The relationship between the transmitted vector s and the received signal Y may be defined in a signal model as in the following example equation: <MAT> Where H is a channel estimation matrix, also referred to as the channel matrix. The channel matrix H may include entries hij that represent the relationship between the signals transmitted from the jth transmitter antenna <NUM> to the signal received by the ith receiver antenna <NUM>. The dimension of the transmit vector s is M×<NUM>, the dimension of the received signal y is N×<NUM>, the dimension of the channel matrix H is NxM and n is a signal noise vector of dimension N×<NUM> with an example correlation matrix Rnn: <MAT>.

A MIMO decoder <NUM>, e.g., including a maximum likelihood decoder (MLD), may decode a received signal Y by determining its corresponding transmit signal s for a given channel matrix H. Each vector s may be a vector with a number of elements equal to the number of transmit antennae <NUM>, M, and each vector y may be a vector with a number of elements equal to the number of receive antennae <NUM>, N. In one example of a 4x4 MIMO channel matrix H (N=M=<NUM>), each vector s and y may be a <NUM>-vector with <NUM> elements.

A demultiplexer <NUM> may modulate transmitted signals s, for example, using quadrature amplitude modulation (QAM) mappers with <NUM>, <NUM>, <NUM> or <NUM> QAM or any other type of modulation. Modulation may define a number of possible or candidate values for each vector element. For example, each element in <NUM> QAM or quadrature phase-shift keying (QPSK) has <NUM> possible values (e.g. defined by <NUM> bits - <NUM>^<NUM> = <NUM> complex values (<NUM>,<NUM>), (-<NUM>,<NUM>), (-<NUM>,-<NUM>),(<NUM>,-<NUM>)), each element in <NUM> QAM has <NUM> possible values (e.g. <NUM> bits), etc. Decoder <NUM> may evaluate a total number of different transmit vectors s equal to the number of possible candidate modulation values to the power of the number of transmit antennae M to find the most likely solution for each received signal Y For example, <NUM> QAM, using 4X4 MIMO there are <NUM>^<NUM> (<NUM> million) different candidate <NUM>-vectors s.

A maximum likelihood (ML) decoder may, for example, search a tree graph to determine the most likely solution e.g., a node in the tree graph representing one element in a transmit vector s associated with a minimum difference or distance in equation (<NUM>) between H · s and the received signal Y e.g., <MAT>. However, computing such distances for the trillions of possible solutions per second supported by wireless communications standards, such as LTE advanced, is difficult.

In order to reduce the complexity of the receiver, noise whitening and QR decomposition may be performed. Noise whitening may include applying a whitening filter to the signal model. The whitening filter may be calculated using any whitening transform, for example, by calculating a Cholesky decomposition of the noise correlation matrix Rnn, such that for example: <MAT> The whitening filter may equal L-H. Other whitening filters may be used. The whitening procedure may be performed by multiplying each component of the signal model by the whitening filter. After applying whitening filter L-H, the new signal model is, for example: <MAT> Where Ỹ is the whitened received signal, H̃ is the whitened channel matrix, ñ is the whitened noise where the whitened noise correlation matrix Rññ becomes an identity matrix, according to the following example: <MAT>.

QR decomposition may simplify the search distance computation. Using QR decomposition, the whitened channel matrix H̃ is decomposed into matrices Q and R, such that: <MAT> <MAT> <MAT>.

Where <MAT>-has the same statistics (e.g., the same covariance matrix E[nHn]) as n, and <MAT> is the whitened and preprocessed received signal. Matrix Q is unitary such that: QHQ = I or Q-<NUM> = QH and matrix R is an upper triangular matrix (e.g. having real entries along its main diagonal): <MAT>.

It is evident from Equation <NUM> that after performing whitening and QR decomposition, the inputs for the MLD are <MAT> and R. The calculation of <MAT> and R may be referred to herein as preprocessing and may be performed in a preprocessing block in decoder <NUM>.

Embodiments of the present invention provide an efficient method for calculating <MAT>, e.g., less computationally intensive than prior art calculations. By providing an efficient method for calculating <MAT>, embodiments of the invention may improve the technology of MIMO systems, and more particularly may improve preprocessing in a decoder of such systems, allowing for improved telecommunications used in, e.g. cellular telephone systems, Wi-Fi networks, and other computer data systems.

Reference is now made to <FIG> which is a schematic illustration of a simplified block diagram of MIMO decoder <NUM>, according to embodiments of the invention. According to embodiments of the invention, MIMO decoder <NUM> may include a preprocessing module <NUM> and an MLD module <NUM>. Preprocessing module <NUM> may obtain the received signal Y the channel matrix H, and the noise correlation matrix Rnn. The preprocessing module <NUM> may calculate <MAT> and R as disclosed herein, and provide <MAT> and R to MLD module <NUM> instead of the received signal Y and the channel matrix H, respectively. MLD module <NUM> may obtain <MAT> and R, and may determine, calculate or estimate the transmit signal s using any applicable method. MLD module <NUM> may be or may include a hard-decision MLD or a soft-decision MLD. Using the reduced matrix may result in reduced complexity for performing estimation or calculation of the transmit signal s, comparing to estimation or calculation of the transmit signal s directly form of the received signal Y and the channel matrix H.

Reference is now made to <FIG> which is a schematic illustration of an example of a prior art preprocessing block <NUM>. Preprocessing block <NUM> may be an elaboration of preprocessing module <NUM> depicted in <FIG>. According to the prior art, preprocessing may include obtaining the noise correlation matrix Rnn and calculating, in block <NUM>, a Cholesky decomposition of the noise correlation matrix Rnn (e.g., according to Equation <NUM>) to obtain whitening filter L-H. In block <NUM> the channel matrix H may be whitened using whitening filter L-H to obtain the whitened channel matrix H̃. For example, the channel matrix H may be whitened by applying the whitening filter L-H according to: <MAT>.

In block <NUM> the received signal Y may be whitened, using whitening filter L-H to obtain the whitened received signal Ỹ. For example, the received signal Y may be whitened by applying the whitening filter L-H to the received signal Y according to: <MAT>.

In block <NUM> Gram-Schmidth based QR decomposition may be performed on the whitened channel matrix H̃ to obtain matrices Q and R. R may be fed in to MLD module <NUM>. In block <NUM> the whitened received signal Ỹ may be multiplied by QH to obtain <MAT>, which is also fed into MLD module <NUM>.

Reference is now made to <FIG> which is a schematic illustration of a second example of a prior art preprocessing block <NUM>. Preprocessing block <NUM> may be generally similar to preprocessing block <NUM>, only the Gram-Schmidth based QR decomposition block <NUM> of preprocessing block <NUM> is replaced with coordinate rotation digital computer (Cordic) based QR decomposition block <NUM>, also referred to as Givens Rotation (GR) QR decomposition. Cordic based QR decomposition block <NUM> may obtain the whitened channel matrix H̃ and an identity matrix I as inputs and may perform QR decomposition to provide QH and R. Cordic based QR decomposition block <NUM> may perform Givens rotation using simple shift and add operations to achieve the QR decomposition. Specially, according to the prior art, Cordic based QR decomposition block <NUM> may calculate a rotation angle θ which may be used to rotate the whitened channel matrix H̃ to obtain elements form the upper triangular matrix R. The rotation angle θ may be used to rotate the identity matrix to generate the Q matrix. According to embodiments of the invention, the principles of operation of the Cordic based QR decomposition block <NUM> (e.g., the inherent rotation) may be utilized to reduce the complexity of preprocessing module <NUM>.

According to embodiments of the invention, reducing the complexity of preprocessing module <NUM> may be achieved by feeding other matrices to a Cordic based QR decomposition block instead of identity matrix I, as disclosed herein.

Reference is now made to <FIG> which is a schematic illustration of a first example of an enhanced preprocessing block <NUM>, according to embodiments of the invention. Preprocessing block <NUM> may be an elaboration of preprocessing module <NUM> depicted in <FIG>. In some embodiments, enriched QR block <NUM> may be configured to support wider input matrix with comparison to Cordic based QR decomposition block <NUM>. According to embodiments of the invention, instead of feeding the whitened channel matrix H̃ and an identity matrix I as inputs to enriched QR block <NUM>, the identity matrix I is replaced by the whitening filter L-H. Thus, while Cordic based QR decomposition block <NUM> may obtain H̃ and an identity matrix I as inputs, enriched QR block <NUM> may obtain whitened channel matrix H̃ and the whitening filter L-H as inputs. As a result, enriched QR block <NUM> may automatically or directly generate the triangular matrix R (e.g., the same triangular matrix R of the QR decomposition of the whitened channel matrix, H̃), and QH L-H. Thus, R and QH L-H may be calculated by performing QR decomposition over the whitened channel matrix H̃ and the whitening filter L-H. In some embodiments, enriched QR block <NUM> may perform Cordic based QR decomposition to a widened matrix H̃', where widened matrix H̃' is a combination of the whitened channel matrix H̃ and the whitening filter L-H , such that H̃' = [H̃, L-H], to directly obtain triangular matrix R and QHL-H. Specifically, the Cordic sequence of calculating triangular matrix R, may generate QHL-H as well: <MAT>.

Block <NUM> may obtain QHL-H and received signal Y, and may multiply the vector of a received signal Y by QH L-H to obtain Y = QHL-HY. The triangular matrix R and Y may be provided as inputs to MLD module <NUM>.

Embodiments of the enhanced preprocessing block <NUM> may eliminate received signal Y whitening block <NUM> that was needed in the prior art preprocessing block <NUM>. Thus, received signal Y whitening block <NUM> that is present in prior art preprocessing blocks <NUM> and <NUM> is no longer needed in preprocessing block <NUM>. Therefore, the computational complexity is reduced comparing to the prior art. It is noted that the dimension of L-H is [N X N], so the dimension of H̃' is (N X (N+M)). Since in MIMO channels N is not smaller than M, in a worst case scenario the dimension of H̃' equals (Nx2N).

Reference is now made to <FIG> which is a schematic illustration of a second example of an enhanced preprocessing block <NUM>, according to embodiments of the invention. Preprocessing block <NUM> may be an elaboration of preprocessing module <NUM> depicted in <FIG>. According to embodiments of the invention, instead of feeding the whitened channel matrix H̃ and an identity matrix I as inputs to enriched QR block <NUM>, the identity matrix I is replaced by the whitened received signal Ỹ. As a result, enriched QR block <NUM> may automatically or directly generate the triangular matrix R of the QR decomposition of the whitened channel matrix H̃ and Y = QHL-HY. Thus, R and Y may be calculated by performing QR decomposition over the whitened channel matrix H̃ and the whitened received signal Ỹ. For example, enriched QR block <NUM> may perform Cordic based QR decomposition to a widened matrix H̃" where widened matrix H̃" is a combination of the whitened channel matrix H̃ and the whitened received signal Ỹ , such that H̃" = [H̃,Ỹ], to directly obtain triangular matrix R and QHL-HY. For example, the Cordic sequence of calculating triangular matrix R, may generate QHL-H: <MAT>.

The triangular matrix R and <MAT> may be provided as inputs to MLD module <NUM>. Embodiments of the enhanced preprocessing block <NUM> may eliminate matrices multiplication block <NUM> that was needed in prior art preprocessing method. Thus, block <NUM> that is present in prior art preprocessing blocks <NUM> and <NUM> is no longer needed in preprocessing block <NUM>. Therefore, the computational complexity is reduced. It is noted that the dimension of L-HY is [N X <NUM>], so the dimension of H̃ " is (N X N+<NUM>). This is reflected in the complexity of block <NUM>.

The efficiency of preprocessing blocks <NUM>, <NUM> and <NUM> may change according to the use cases and the network parameters. Specifically, the efficiency may depend on the number of transmit antennae M, the time domain decimation D_T, and the frequency domain decimation D_F. The time domain decimation D_T, and the frequency domain decimation D_F are parameters that define decimation in time and frequency, respectively, of calculation of the channel matrix H in MIMO decoders, e.g., decode <NUM>. For example, in a <NUM> decoder, theoretically, each resource element (RE) may have its own specific channel matrix H. However, the calculation of the channel matrix H may be computationally intensive. Therefore, in case the channel is not frequency selective, e.g., in case channel matrix H is not changing much in the frequency domain, there may be no need to calculate channel matrix H for each RE in the frequency domain but rather for each D_F RE, e.g., jumping in the frequency by a factor referred to as the frequency domain decimation D_F. The time domain decimation T_D is the equivalent decimation parameter in the time domain, that may depend on the speed of the change in the time domain (e.g., doppler effect).

The following calculation applies to an NxM MIMO channel. The cycle count or number of multiply-accumulate (MAC) operations required of blocks of the prior art solution presented in <FIG> is presented in Table <NUM>. The calculation of the required MAC operations is presented in Table <NUM>. The required MAC operations may be an estimation of the basic kernels or a matric for comparing between embodiments of the invention and prior art. In real world applications, the estimated number of required MAC operations may be slightly different because of implementation approaches and overhead. In the following section, A, B and C may refer to an estimation of the required number of MAC operations for performing the referred calculation or operation in a time slot or a time period (e.g., <NUM> millisecond, <NUM> milliseconds, <NUM> second, etc.), in the use case on no decimation, e.g., D_F= T_D=<NUM>.

The total number of MAC operations of the prior art preprocessing block <NUM> presented in <FIG> may equal: <MAT>.

As can be seen in Equation <NUM>, the calculations performed by blocks <NUM> and <NUM> may be decimated by D_F and T_D since the channel matrix H is decimated. There is no need to repeat the calculations performed by blocks <NUM> and <NUM> as long as the channel matrix H constant, and the channel matrix is H constant in the intervals of D_F in the frequency domain and T_D in the time domain. The calculations in blocks <NUM> and <NUM>, however, depend on the input data Y, and therefore have to be performed for each RE with no decimation.

The estimated number of MAC operations of blocks of the enhanced preprocessing block <NUM> presented in <FIG> is presented in Table <NUM>.

The total estimated number of MAC operations of enhanced preprocessing block <NUM> presented in <FIG> may equal: <MAT> It is evident from Equations <NUM> and <NUM> that the total estimated number of MAC operations of enhanced preprocessing block <NUM> is smaller than the total estimated number of MAC operations of prior art preprocessing block <NUM> by B. This is true for all channel conditions, e.g., regardless of the number of transmit antennae M, the time domain decimation D_T, and the frequency domain decimation D_F.

For example, a typical use case of a <NUM> NR network may include 4x4 MIMO configuration, carrier bandwidth of <NUM>, sub-carrier spacing of <NUM>, and thus <NUM> subcarriers in a symbol. The number of symbols in a slot may be <NUM> and the number of slots in a second may be <NUM>. Thus, the number of REs or received signal vectors Y in a second may equal <NUM> * <NUM> * <NUM> = ~<NUM>M (Mega). B which is the number of MAC operations required for the calculation of (QHL-H) * Y (here in a time period of one second) may equal <NUM> * <NUM> * <NUM>M = ~<NUM>G (Giga) multiply-accumulate (MAC) operations. Thus, in this use case, reducing the required number of MAC operations by B may save up to <NUM> MAC operations per second.

The estimated number of MAC operations for blocks of enhanced preprocessing block <NUM> presented in <FIG> is presented in Table <NUM>.

The total estimated number of MAC operations of enhanced preprocessing block <NUM> presented in <FIG> may equal for example: <MAT>.

Comparing enhanced preprocessing block <NUM> estimated number of MAC operations as expressed in Equation <NUM> with enhanced preprocessing block <NUM> total estimated number of MAC operations as expressed in Equation <NUM>, it is apparent that for some channel conditions (e.g., values of the number of transmit antennae M, the time domain decimation D_T, and the frequency domain decimation D_F) enhanced preprocessing block <NUM> may have total estimated number of MAC operations that is smaller than the total estimated number of MAC operations of enhanced preprocessing block <NUM>, while for other channel conditions the opposite may be true.

According to embodiments of the invention, the values of the channel conditions, e.g., the number of transmit antennae M, the time domain decimation D_T, and the frequency domain decimation D_F, (and/or other parameters that may affect D_T and D_F) may be examined, and R and <MAT> may be calculated by either enhanced preprocessing block <NUM> or enhanced preprocessing block <NUM> based on comparison of the estimated number of MAC operations of both blocks. Thus, a preprocessing method (e.g., using enhanced preprocessing block <NUM> or enhanced preprocessing block <NUM>) may be selected dynamically during routine operation of decode <NUM>, according to the estimated complexity of the calculation of each preprocessing block, that may depend on the channel conditions.

In some embodiments, the estimated complexity may be compared based on equations <NUM> and <NUM>. Thus, if, based on equations <NUM> and <NUM>, enhanced preprocessing block <NUM> has total estimated number of MAC operations that is smaller than the total estimated number of MAC operations of enhanced preprocessing block <NUM>, than enhanced preprocessing block <NUM> may be used to calculate R and <MAT>, and otherwise enhanced preprocessing block <NUM> may be used to calculate R and <MAT>. Rearranging Equations <NUM> and <NUM> may yield that enhanced preprocessing block <NUM> may be selected if <NUM>/(T_D*F_D) is smaller than (<NUM>+<NUM>/M)/<NUM>, and enhanced preprocessing block <NUM> may be used otherwise.

In some embodiments, the complexity of the calculations may be estimated by measuring offline the actual number of MAC operations required by enhanced preprocessing block <NUM> and by enhanced preprocessing block <NUM> for a plurality of use cases and/or channel conditions, e.g., for a plurality of combinations of values of the number of transmit antennae M, the time domain decimation D_T, and the frequency domain decimation D_F. The results of the offline measurements may be used to compare the estimated complexity, e.g., the actual number of MAC operations, of enhanced preprocessing block <NUM> and enhanced preprocessing block <NUM> in the plurality of use cases and/or channel conditions, and for preparing a lookup table with suggested enhanced preprocessing block for each use case and/or channel condition, e.g., for a plurality of combinations of values of the number of transmit antennae M, the time domain decimation D_T, and the frequency domain decimation D_F. The lookup table may be used in real time operation for selecting between enhanced preprocessing block <NUM> and enhanced preprocessing block <NUM>, based on the number of transmit antennae M, the time domain decimation D_T, and the frequency domain decimation D_F.

Dynamically selecting between enhanced preprocessing blocks <NUM> and <NUM> may further reduce the total number of MAC operations required for preprocessing, since as explained herein, the total number of MAC operations of enhanced preprocessing block <NUM> may always be lower than the total number of MAC operations of the prior art preprocessing block <NUM>, and switching to enhanced preprocessing block <NUM> when the total number of MAC operations of enhanced preprocessing block <NUM> is lower than the total number of MAC operations of enhanced preprocessing block <NUM> may further reduce the total number of MAC operations.

Reference is now made to <FIG> and <FIG>, each depicting an example of <NUM> slot <NUM> and <NUM>, respectively, of a physical downlink channel, helpful in demonstrating embodiments of the invention. The <NUM> slot is divided in the frequency domain into subcarriers, and further divided in the time domain to define physical resource blocks (PRB), which are the smallest unit of resources that can be allocated to a user. Each PRB may carry control signals or data signals, according to the relevant standards (e.g., LTE or <NUM>). Control PRBs may include new radio physical downlink control channel (NR PDCCH) that carry control channel data (DCI) and demodulation reference signal (DMRS) which is a reference signal that helps the receiver, e.g., decoder <NUM> of a user equipment (UE), to decode the NR PDCCH. Other PRBs may include data. Slot <NUM> may include front-loaded (e.g., occurring early in the transmission) DMRS location which may not require time interpolation, while slot <NUM> may include additional DMRS positions and may be generally used in high Doppler channels that may probably need a time filter interpolation.

Reference is made to <FIG>, which is a high-level flowchart illustrating a first method for decoding a received signal in a MIMO communication system, according to embodiments of the invention. An embodiment of the first method for decoding a received signal may be performed, for example, by decoder <NUM> shown in <FIG>, or by systems shown in <FIG>, <FIG> and <FIG>.

In operation <NUM> a received signal Y, a channel matrix H corresponding to signal Y, and a vector of noise samples n may be received or obtained, e.g., by decoder <NUM>. In operation <NUM>, a whitening filter L-H may be calculated based on the vector of noise samples n. For example, a whitening filter L-H may be calculated by calculating a correlation matrix Rnn of the vector of noise samples n as presented in Equations <NUM>, and performing Cholesky decomposition of the noise correlation matrix Rnn, as presented in Equation <NUM>. In operation <NUM>, the channel matrix H may be whitened, e.g., by applying the whitening filter L-H to the channel matrix H to obtain a whitened channel matrix H̃, e.g., as expressed in example Equation <NUM>.

In operation <NUM>, a Cordic based QR decomposition may be performed to the whitened channel matrix H̃ and the whitening filter L-H, to obtain triangular matrix R of the QR decomposition of the whitened channel matrix H̃ and QHL-H. For example, performing the Cordic based QR decomposition to the whitened channel matrix H̃ and the whitening filter L-H may include performing the Cordic based QR decomposition to a widened matrix H̃', the widened matrix being a combination of the whitened channel matrix H̃ and the whitening filter L-H, such that H̃' = [H̃, L-H], e.g., as expressed in Equation <NUM>. In operation <NUM>, the received signal Y may by multiplied by QHL-H to obtain <MAT>. In operation <NUM>, the triangular matrix R and <MAT> may be provided as inputs to an MLD module, e.g., MLD module <NUM>. In operation <NUM>, the received signal Y may be decoded by using the triangular matrix R and <MAT> to determine a corresponding transmit signal s, e.g., using MLD module <NUM>. In some embodiments operations <NUM>-<NUM> may be referred to as a preprocessing stage of a MIMO cellular communication decoder. Operations <NUM>-<NUM> may be performed, for example, by preprocessing module <NUM>.

Reference is made to <FIG>, which is a high-level flowchart illustrating a second method for decoding a received signal in a MIMO communication system, according to embodiments of the invention. An embodiment of the second method for decoding a received signal may be performed, for example, by decoder <NUM> shown in <FIG>, or systems shown in <FIG>, <FIG> and <FIG>. A portion of embodiments of the second method for decoding a received signal may be similar to operations performed in embodiments of the first method for decoding a received signal presented in <FIG>, and will not be described again. In operation <NUM>, the received signal Y may be whitened using the whitening filter L-H to obtain a whitened received signal Ỹ, e.g., by applying the whitening filter L-H to the received signal Y as expressed in Equation <NUM>. In operation <NUM>, a Cordic based QR decomposition may be performed to the whitened channel matrix H̃ and the whitened received signal Ỹ to obtain triangular matrix R of the QR decomposition of the whitened channel matrix H̃ and <MAT>. For example performing the Cordic based QR decomposition may include performing the Cordic based QR decomposition to a widened matrix H̃ ", the widened matrix H̃ " being a combination of the whitened channel matrix H̃, and the whitened vector of the receiver antennas Ỹ, such that H̃ " = [H̃, Ỹ], e.g., as expressed in Equation <NUM>. Similarly to the embodiments of the first method for decoding a received signal, in operation <NUM> the triangular matrix R and <MAT> may be provided as inputs to an MLD module that may, in operation <NUM>, decode the received signal Y by using the triangular matrix R and Y to determine a corresponding transmit signal s.

Reference is made to <FIG>, which is a high-level flowchart illustrating a method for combining the first and second methods for decoding a received signal in a MIMO communication system, according to embodiments of the invention. An embodiment of the second method for decoding a received signal may be performed, for example, by decoder <NUM> shown in <FIG>, or by systems shown in <FIG>, <FIG>, <FIG> and <FIG>.

In operation <NUM>, the relation between <NUM>/(T_D*F_D) and (<NUM>+<NUM>/M)/<NUM> may be determined. According to some embodiments, the first calculation may be performed if <MAT> is smaller than <MAT>, as indicated in operation <NUM>, and the second calculation may be performed otherwise, as indicated in operation <NUM>. Other conditions may be used.

Reference is made to <FIG>, which is a schematic illustration of an exemplary device according to embodiments of the invention. A device <NUM> may include a computer device having a wireless communication capabilities, including for example, a MIMO decoder, e.g., MIMO decoder <NUM> located in a UE, a smartphone, a cellular telephone or communications device, a cellular telephone, etc. Device <NUM> may include any device capable of executing a series of instructions, for example for performing the methods disclosed herein. Device <NUM> may include an input device <NUM> such as a mouse, a receiver, a keyboard, a microphone, a camera, a Universal Serial Bus (USB) port, a compact-disk (CD) reader, any type of Bluetooth input device, etc., and an output device <NUM>, for example, a transmitter or a monitor, projector, screen, printer, speakers, or display.

Device <NUM> may include a processor <NUM>. Processor <NUM> may include or may be a vector processor, a central processing unit (CPU), a digital signal processor (DSP), a microprocessor, a controller, a chip, a microchip, a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC) or any other integrated circuit (IC), or any other suitable multi-purpose or specific processor or controller.

Device <NUM> may include a memory unit <NUM>. Memory unit <NUM> may be or may include any of a short-term memory unit and/or a long-term memory unit. Memory unit <NUM> may include, for example, random access memory (RAM), dynamic RAM (DRAM), flash memory, volatile memory, non-volatile memory, a tightly-coupled memory (TCM), a buffer, a cache, such as an L-<NUM> cache and/or an L-<NUM> cache, or other suitable memory units or storage units. Memory unit <NUM> may be implemented as separate (for example, "off-chip") or integrated (for example, "on-chip") memory unit, or as both.

Processor <NUM> may request, retrieve, and process data from memory unit <NUM> and may control, in general, the pipeline flow of operations or instructions executed on the data. Processor <NUM> may receive instructions, for example, from a program memory (for example, in memory unit <NUM> to perform methods disclosed herein. According to embodiments of the present invention, processor <NUM> may receive instructions to decoding a received signal in a MIMO communication system including a preprocessing stage, according to embodiments of the invention.

Embodiments of the invention may be implemented for example on an integrated circuit (IC), for example, by constructing processor <NUM>, as well as other components of <FIG> in an integrated chip or as a part of an chip, such as an ASIC, an FPGA, a CPU, a DSP, a microprocessor, a controller, a chip, a microchip, etc..

According to embodiments of the present invention, some units e.g., processor <NUM>, as well as the other components of <FIG>, may be implemented in a hardware description language (HDL) design, written in Very High Speed Integrated Circuit (VHSIC) hardware description language (VHDL), Verilog HDL, or any other hardware description language. The HDL design may be synthesized using any synthesis engine such as SYNOPSYS® Design Compiler <NUM> (DC00), BUILDGATES® synthesis tool available from, inter alia, Cadence Design Systems, Inc. An ASIC or other integrated circuit may be fabricated using the HDL design. The HDL design may be synthesized into a logic level representation, and then reduced to a physical device using compilation, layout and fabrication techniques, as known in the art.

Embodiments of the present invention may include a computer program application stored in non-volatile memory, non-transitory storage medium, or computer-readable storage medium (e.g., hard drive, flash memory, CD ROM, magnetic media, etc.), storing instructions that when executed by a processor (e.g., processor <NUM>) carry out embodiments of the invention. Processor <NUM> may be configured to carry out embodiments described herein by for example executing software or instructions.

Embodiments described in this disclosure may include the use of a special purpose or general-purpose computer including various computer hardware or software modules, as discussed in greater detail below.

Embodiments within the scope of this disclosure also include computer-readable media, or non-transitory computer storage medium, for carrying or having computer-executable instructions or data structures stored thereon. The instructions when executed may cause the processor to carry out embodiments of the invention. Such computer-readable media, or computer storage medium, can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium.

Computer-executable instructions comprise, for example, instructions and data which cause a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.

As used herein, the term "module" or "component" can refer to software objects or routines that execute on the computing system. The different components, modules, engines, and services described herein may be implemented as objects or processes that execute on the computing system (e.g., as separate threads). While the system and methods described herein are preferably implemented in software, implementations in hardware or a combination of software and hardware are also possible and contemplated. In this description, a "computer" may be any computing system as previously defined herein, or any module or combination of modulates running on a computing system.

For the processes and/or methods disclosed, the functions performed in the processes and methods may be implemented in differing order as may be indicated by context. Furthermore, the outlined steps and operations are only provided as examples, and some of the steps and operations may be optional, combined into fewer steps and operations, or expanded into additional steps and operations.

The present disclosure is not to be limited in terms of the particular embodiments described in this application, which are intended as illustrations of various aspects. Many modifications and variations can be made without departing from its scope which is defined by the appended claims. Such modifications and variations are intended to fall within the scope of the appended claims. The present disclosure is to be limited only by the terms of the appended claims. It is also to be understood that the terminology used in this disclosure is for the purpose of describing particular embodiments only, and is not intended to be limiting.

Claim 1:
A method for performing Maximum Likelihood Detector, MLD, preprocessing in a Multiple-Input Multiple-Output, MIMO, communication system (<NUM>), the method comprising, using a processor (<NUM>):
obtaining a received signal Y a corresponding channel matrix H and a vector of noise samples n;
calculating a whitening filter L-H based on the vector of noise samples n;
whitening a channel matrix H̃ using the whitening filter L-H to obtain a whitened channel matrix H̃;
estimating a number of MAC operations of a first calculation and a second calculation based on a time domain decimation D_T of calculation of the channel matrix H, a frequency domain decimation D_F of calculation of the channel matrix H, and a number of transmitter antennas M;
selecting, one of the first calculation or the second calculation, based on the number of MAC operations of the first calculation and the second calculation so that if the number of MAC operations of the first calculation is smaller than the total estimated number of MAC operations of the second calculation the first calculation is selected and otherwise the second calculation is selected;
performing preprocessing of the received signal Y using the selected calculation; and
decoding the received signal Y by using the triangular matrix R and <MAT> to determine a corresponding transmit signal s,
wherein the first calculation comprises:
whitening the received signal Y using the whitening filter L-H to obtain a whitened received signal Ỹ and performing a coordinate rotation digital computer, Cordic, based QR decomposition to the whitened channel matrix H̃ and the whitened received signal Ỹ to obtain triangular matrix R of the QR decomposition of the whitened channel matrix H̃ and <MAT>,
and wherein the second calculation comprises:
performing a Cordic based QR decomposition to the whitened channel matrix H̃ and the whitening filter L-H to obtain triangular matrix R of the QR decomposition of the whitened channel matrix H̃ and QH L-H, and
multiplying the received signal Y by QH L-H to obtain <MAT>.