# US 10,311,375 B2 · Systems and methods for classifying electrical signals

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

- Number: US 10,311,375 B2
- Document ID: US10311375B2
- Status: Granted
- Kind: B2
- Application number: 14/885,462
- Filed: 2015-10-16
- Published: 2016-04-21
- Granted: 2019-06-04
- Earliest claimed: 2014-10-16
- Assignees: Nanyang Technological University
- Applicants: Nanyang Technological University
- Inventors: Arindam Basu; Enyi Yao; Yi Chen
- Web page: https://patentgrep.com/patent/US10311375B2

## CPC

- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- G06N 20/00: Machine learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

An analog implementation is proposed of an adaptive signal processing model of a kind requiring a plurality of randomly-set variables. In particular, following a digital to analog conversion of a digital input signal, analog processing is used to transform the data input to the model into data which is subsequently processed by an adaptively-created layer of the model. In the analog processing, multiplication operations involving the randomly-set variables are performed by analog circuitry in which the randomly-set variables are the consequence of inherent tolerances in electrical components. This eliminates the need for the randomly-set variables to be implemented in some other way, for example as random variables stored in memory.

## Claims

### Claim 1

A computational system to implement an adaptive model to process a plurality of input signals, the system including:
an input handling section, for receiving the input signals and converting them into a plurality of analog output signals, the input handling section comprising a digital-to-analog converter for receiving digital input values expressed as multi-digit digital numbers, and from them generating the analog output signals;
a multiplicative section adapted to perform a plurality of multiplication operations on each analog output signal using respective analog circuits;
electrical components comprised in the respective analog circuits, the electrical components having tolerances, the tolerances being used to generate respective randomly-set parameters for performing the plurality of multiplication operations;
an analog-to-digital conversion section for forming a plurality of sum values, each sum value being the sum of a plurality of the results of the multiplication operations, and converting the sum values into digital values; and
a processing unit for receiving the digital values, and generating an output as a function of the digital values and a respective set of variable parameters.

### Claim 2 (depends on 1)

The computational system of claim 1, further including a wireless interface for receiving the set of variable parameters from an external device.

### Claim 3 (depends on 1)

The computational system of claim 1, in which the multiplicative section performs the multiplication operations in the current domain.

### Claim 4 (depends on 1)

The computational system of claim 1, in which said analog circuits are current mirror circuits operated in a sub-threshold regime.

### Claim 5 (depends on 1)

The computational system of claim 1, in which the input handling section is operative, for said input signals in the form of pulse frequency encoded (PFE) digital input, to form the multi-digit digital values as a moving average of an input pulse count over a pre-defined time window.

### Claim 6 (depends on 1)

The computational system of claim 1, in which the digital-to-analog conversion input section is operative, for said input signals in the form of time series data, to form a plurality of said analog signals as samples of said digital data input at different respective times, whereby said digital values are each a function of a plurality of said samples.

### Claim 7 (depends on 1)

The computational system of claim 1, in which the analog-to-digital conversion section includes:
a plurality of current controlled oscillator (CCO) units, each current controlled oscillator unit being arranged to fire based on the result of a plurality of said multiplication operations, and
for each CCO unit, a counter arranged to count the number of firings of the CCO unit in a time window.

### Claim 8

A computational system to implement an adaptive model to process a plurality of input signals, the system including:
an input handling section, for receiving the input signals as digital signals and converting them into a plurality of analog output signals;
a multiplicative section adapted to perform a plurality of multiplication operations on each analog output signal using respective analog circuits;
electrical components comprised in the respective analog circuits, the electrical components having tolerances, the tolerances being used to generate respective randomly-set parameters for performing the plurality of multiplication operations;
an analog-to-digital conversion section for converting the results of the multiplication operations into digital values, and including:
(i) a plurality of current controlled oscillator (CCO) units, each current controlled oscillator unit being arranged to fire based on the result of a plurality of said multiplication operations
(ii) for each current controlled oscillator unit, a counter arranged to count the number of firings of the CCO unit in a time window; and
a processing unit for receiving the digital values, and generating an output as a function of the number of firings of the CCO units and a respective set of variable parameters.

### Claim 9

A computer-implemented method to process a plurality of input signals, the method including:
(i) receiving the input signals and converting them into a plurality of analog output signals, the conversion comprising: receiving digital input values expressed as multi-digit digital numbers, and from the digital input values generating the analog output signals;
(ii) generating randomly-set parameters using tolerances in electrical components of respective analog circuits;
(iii) performing a plurality of multiplication operations on each analog output signal using the randomly-set parameters generated in the respective analog circuits;
(iv) forming a plurality of sum values, each sum value being the sum of a plurality of the results of the multiplication operations, and converting the sum values into digital values; and
(v) receiving the digital values, and generating an output as a function of the digital values and a respective plurality of variable parameters.

### Claim 10 (depends on 9)

The method of claim 9, further including receiving the plurality of variable parameters wirelessly from an external device, the variable parameters having been obtained from:
(i) a set of training data illustrative of a computational task to be performed by the adaptive model,
(ii) the randomly-set parameters.

### Claim 11 (depends on 10)

The method of claim 10, in which the variable parameters are obtained from a process of:
(i) seeking variable parameters which minimise a cost function formed from the training data and the randomly-set parameters;
(ii) identifying variable parameters having a value below a threshold;
(i) forming a modified cost function omitting the identified variable parameters; and
(ii) minimising the modified cost function.

### Claim 12 (depends on 9)

The method of claim 9, in which said analog circuits are current mirror circuits operated in a sub-threshold regime.

### Claim 13 (depends on 9)

The method of claim 9, in which said input signals are in the form of pulse frequency encoded (PFE) digital input,
the method including forming the multi-digit digital values as a moving average of an input pulse count over a pre-defined time window.

### Claim 14 (depends on 9)

The method of claim 9, in which said input signals are in the form of time series data,
the method including forming the multi-digit digital values by taking samples of said digital data input at different respective times, said digital values each being a function of a plurality of said samples.

### Claim 15 (depends on 9)

The method of claim 9, in which the sum values are converted to digital values by:
transmitting the result of a plurality of said multiplication operations to an input of a current controlled oscillator (CCO) unit to control the firings of the CCO unit, and
counting the number of firings of the CCO unit in a time window.

### Claim 16 (depends on 9)

The method of claim 9 in which the input signals are generated by sensors located within a human or animal subject, and at least steps (i) to (iii) are performed by electronic units located within the subject.

### Claim 17 (depends on 16)

The method of claim 16, further comprising controlling movement of a prosthesis based on the output.

### Claim 18 (depends on 16)

The method of claim 16, in which a plurality of outputs are generated based on respective sets of said variable parameters, the outputs including a plurality of first outputs indicative of respective motions of the subject.

### Claim 19 (depends on 18)

The method of claim 18, in which the outputs include at least one second output indicative of the onset of a motion of the subject.

### Claim 20

A computational method of processing a plurality of input signals, the method including:
receiving the input signals as digital signals and converting the input signals into a plurality of analog output signals;
generating randomly-set parameters using tolerances in electrical components of respective analog circuits;
performing a plurality of multiplication operations on each analog output signal using the randomly-set parameters generated in the respective analog circuits;
transmitting to each of a plurality of current controlled oscillator (CCO) units, a control signal based on the result of a respective plurality of said multiplication operations;
counting the number of firings of each CCO unit in a time window; and
generating an output as a function of the number of firings of each CCO unit and a respective set of variable parameters.
