# Re: Fourier computing?

From: my_sunshine (sun@faclib-0119.unh.edu)
Date: Thu May 17 2001 - 07:09:04 MDT

This still seems (at least borderline) relevant to sl4...

>neurons and their respective neural codes. I have never heard of
>Fourier computing though. And, I was until now unaware that there was a
>need to "invent the kind of component which the human brain uses." I
>guess I have been in the dark about something -- could you fill me in?

(1) I did not mean to imply, by my message, that a brain-like computing
component was necessary to implement AI, but merely one option.

(2) I am not a neuroscientist and am not up on cutting-edge knowledge about
neural operations, but this is what I meant by "Fourier computing"...

(3) First, take a look at how the semantics of digital logic are mapped to
voltage levels:

Operands: binary voltages
# we map voltage intervals to boolean values...
(0.5 V <= v <= 1.5 V) -> boolean(v,1)
~(0.5 V <= v <= 1.5 V) -> boolean(v,0)

Operations: logic gates
# we map the domain (v0,v1), through a logical function, to a range (o).
boolean(v0,0) A boolean(v1,0) -> boolean(o,0) # logical OR
boolean(v0,0) A boolean(v1,1) -> boolean(o,1)
boolean(v0,1) A boolean(v1,0) -> boolean(o,1)
boolean(v0,1) A boolean(v1,1) -> boolean(o,1)

But, neurons don't work like this...

Let's take a first-order fourier decomposition of v:
v(t) = a1 cos w1*t + noise... and disregard the value a1

Remap operands:
(30/s <= w1 <= 40/s) -> boolean(v,1)
~(30/s <= w1 <= 40/s) -> boolean(v,0)

Remap operations:

We can symbolically expand any line (all lines) of the logic table:
i.e., boolean(v0,0) A boolean(v1,0) -> boolean(o,0) becomes
~(0.5 V <= v0 <= 1.5 V) A ~(0.5 V <= v1 <= 1.5 V) ->
~(0.5 V <= o <= 1.5 V)
and so on until the truth table has been expressed as a (complicated)
piecewise function o = logicalOr(v0,v1).

Likewise can we construct o = logicalOr(v0,v1) using the fourier
interperetations of v0, v1, and o. It would look something like:
~(30/s <= w0 <= 40/s) A ~(30/s <= w1 <= 40/s) ->
~(30/s <= o <= 40/s) ....
The piecewise function o = logicalOr(v0,v1) can thus be constructed
in which the fundamental frequency of o is a (logical) function of the
fundamental frequencies of v0 and v1.

This is the important part: Any variable in the fourier decomposition
of a function f(x) can be used to carry data, i.e.:
v(t) = a1 cos (w1*t+p1) + a2 cos (w2*t+p2) + ...
a1, a2, w1, w2, p1, and p2 can all be used to encode inputs and store
outputs. Note that, in this perspective, frequency, amplitude, and
phase can all be given significance. What we have done is employed a
different semantic mapping to v by transforing v(t) into the time
domain.

This is, in some cases, how the human nervous system puts neurons to
use. When sensing heat, for example, (using v = a1 cos w1) it is not
the value of a1, but the value w1, which conveys to the brain the
intensity of the heat. It is *more rapid*, not *more intense*,
neuron firing which indicates a sensation of greater heat. Clearly,
the brain has some way of semantically mapping such frequencies,
since I can tell hot from luke warm from scalding....

By constructing circuits which implement these mathematical functions
(ask any EE), electronics which operate in this manner can be used to
build entire computers. This is what I meant by "Fourier computing".

Dave

This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:36 MDT