# US 10,872,045 B1 · Method and apparatus for symbol detection

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,872,045 B1
- Document ID: US10872045B1
- Status: Granted
- Kind: B1
- Application number: 16/915,645
- Filed: 2020-06-29
- Published: 2021-01-14
- Granted: 2020-12-22
- Earliest claimed: 2019-07-11
- Assignees: Nokia Technologies Oy
- Applicants: Nokia Technologies Oy
- Inventors: Manil Dev Gomony; Mamoun Guenach
- Web page: https://patentgrep.com/patent/US10872045B1

## CPC

- G06F 13/1678: {using bus width}
- H04L 25/03242: {Methods involving sphere decoding}
- G06F 7/57: Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations {(G06F7/49, G06F7/491 take precedence)}
- H04B 7/0413: MIMO systems
- H04B 7/08: at the receiving station
- H04L 25/03197: {methods of calculation involving metrics}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04B: TRANSMISSION

## Abstract

Apparatus and method for symbol detection are disclosed. The solution comprises obtaining (400) multiple-input-multiple-output symbols received over a transmission channel, the symbols comprising a plurality of layers, each layer comprising a constellation point of multiple candidate constellation points, selecting (402) for each layer a precision, each layer having a precision smaller or equal than the precision of a previous layer and searching (404) for each layer, utilising the selected precision, the constellation point among the candidate constellation points by minimising a given cost function, utilising a plurality of Arithmetic and Logic Units, ALUs, comprising at least one real and imaginary part, the ALUs of the apparatus comprising real and imaginary part having different precisions by having different number of bits, the data memory and the plurality of ALUs being connected with each other by a data bus of a given width.

## Claims

### Claim 1

An apparatus, comprising
a data memory configured to obtain multiple-input-multiple-output symbols received over a transmission channel, the multiple-input-multiple-output symbols comprising a plurality of layers, each layer comprising a constellation point of multiple candidate constellation points;
a plurality of Arithmetic and Logic Units, ALUs, comprising at least one real and imaginary part, the ALUs of the apparatus comprising real and imaginary part having different precisions by having different number of bits,
a controller configured to control the data memory and a plurality of ALUs,
a data bus of a given width connecting the controller, the data memory, and the plurality of ALUs with each other,
the controller being configured to search utilising ALUs for each layer of the constellation point among the multiple candidate constellation points by minimising a given cost function, wherein a search on each layer is performed utilising a given precision, each layer having a precision smaller or equal than a precision of a previous layer.

### Claim 2 (depends on 1)

The apparatus of claim 1, the controller being configured to
divide layers in groups, each group comprising a number of successive layers;
applying a same given precision to layers belonging to a same group.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the controller is configured to
obtain information on required precision for different layers under different parameters of the transmission channel;
select the precision settings for different layers based on determined parameters;
store received symbol of the transmission channel in data memory;
select precision for current layer;
select the ALUs of a required precision for calculation of real and imaginary parts of the current layer;
obtain output value by computing cost functions in real and imaginary parts of the selected ALUs,
if the current layer is a last layer, write output value to data memory,
otherwise convert precision of an output value for next layer, write the output value for next layer to data memory and start to calculate next layer.

### Claim 4 (depends on 3)

The apparatus of claim 3, the controller being configured to
receive parameters of the transmission channel and
select the precision on each layer or group based on the determined parameters of the transmission channel.

### Claim 5 (depends on 3)

The apparatus of claim 3, the controller being configured to
determine the precision on each layer or group before search is performed and store the determined precision in memory.

### Claim 6 (depends on 3)

The apparatus of claim 3, the controller being configured to
determine the precision on each layer or group at run-time when search is performed.

### Claim 7 (depends on 1)

The apparatus according to claim 1, wherein a sum of the bits of the at least one real and imaginary parts of an ALU is a same as a given width of the data bus.

### Claim 8 (depends on 6)

The apparatus of claim 6, wherein, at least for some ALUs, the different number of the bits of the at least one real part and at least one imaginary part of an ALU is unequal, a sum being equal to a given width of the data bus.

### Claim 9 (depends on 1)

The apparatus according to claim 1, wherein the apparatus is a sphere detector.

### Claim 10 (depends on 1)

The apparatus of claim 1, wherein the apparatus in included in a base station of a communication system.

### Claim 11 (depends on 10)

The apparatus according to claim 10 wherein the controller of the apparatus is configured to obtain information on required precision for the different layers under different parameters of the transmission channel;
select the precision settings for different layers based on determined parameters;
store received symbol of the transmission channel in data memory;
select precision for current layer;
select the ALUs of the required precision for calculation of real and imaginary parts of the current layer;
obtain output value by computing cost functions in real and imaginary parts of the selected ALUs,
if the current layer is a last layer, write output value to data memory,
otherwise convert precision of the output value for a next layer, write the output value to data memory and start to calculate the next layer.

### Claim 12 (depends on 1)

The apparatus of claim 1, wherein the apparatus in included in an end-user handheld device of a communication system.

### Claim 13 (depends on 12)

The apparatus according to claim 12 wherein the controller of the apparatus is configured to
obtain information on required precision for different layers under different parameters of the transmission channel;
select precision settings for different layers based on determined parameters;
store received symbol of the transmission channel in data memory;
select precision for current layer;
select the ALUs of the required precision for calculation of real and imaginary parts of the current layer;
obtain output value by computing cost functions in real and imaginary parts of the selected ALUs,
if the current layer is a last layer, write output value to data memory,
otherwise convert precision of the output value for a next layer, write the output value to data memory and start to calculate the next layer.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the end-user handheld device is one of the following: a mobile station, a mobile phone, a smartphone, a personal digital assistant, a device using a wireless modem, a laptop and/or a touch screen computer, a tablet, a game console, a notebook, or a multimedia device.

### Claim 15

A method, comprising:
obtaining multiple-input-multiple-output symbols received over a transmission channel, the multiple-input-multiple-output symbols comprising a plurality of layers, each layer comprising a constellation point of multiple candidate constellation points;
selecting for each layer a precision, each layer having a precision smaller or equal than a precision of a previous layer;
searching for each layer, utilising the selected precision, of the constellation point among the multiple candidate constellation points by minimising a given cost function, utilising a plurality of Arithmetic and Logic Units, ALUs, comprising at least one real and imaginary part, the ALUs comprising real and imaginary part having different precisions by having different number of bits, the data memory and the plurality of ALUs being connected with each other by a data bus of a given width.

### Claim 16 (depends on 15)

The method of claim 15, further comprising: dividing layers in groups, each group comprising a number of successive layers; applying a same precision to layers belonging to a same group.

### Claim 17 (depends on 15)

The method of claim 15 further comprising obtaining information on required precision for different layers under different parameters of the transmission channel
selecting the precision settings for different layers based on determined parameters;
storing received symbol of the transmission channel;
selecting precision for current layer;
selecting the ALUs of a required precision for calculation of real and imaginary parts of the current layer;
obtaining output value by computing cost functions in real and imaginary parts of the selected ALUs,
whereby if the current layer is a last layer, writing output value to data memory,
otherwise convert precision of an output value for next layer, writing the output value for next layer to a data memory and starting to calculating a next layer.

### Claim 18

A non-transitory computer medium comprising instructions for causing an apparatus of a communication system to perform at least the following:
obtaining multiple-input-multiple-output symbols received over a transmission channel, the multiple-input-multiple-output symbols comprising a plurality of layers, each layer comprising a constellation point of multiple candidate constellation points;
selecting for each layer a precision, each layer having a precision smaller or equal than a precision of a previous layer;
searching for each layer, utilising the selected precision, of the constellation point among the multiple candidate constellation points by minimising a given cost function, utilising a plurality of Arithmetic and Logic Units, ALUs, comprising at least one real and imaginary part, the ALUs of the apparatus comprising real and imaginary part having different precisions by having different number of bits, the data memory and the plurality of ALUs being connected with each other by a data bus of a given width.
