I am hoping someone can refer me to a text reference, forum, or other online resource describing the following question. I thought this forum might be a good place to start, but apologies if I was mistaken.

I am designing a sensor with the goal of mapping output sensor values (i.e. data that the sensors spit out to the MCU) into input sensor signals (i.e. the real-world values the sensor is sensing). However, the design of the sensor itself is highly non-linear. In other words, I have no mathematical model to describe how the input goes to --> the output, or vice-versa.

Let me simplify my description. If I were building a gram scale, I would use a strain gauge on a beam combined with the physical/mathematical knowledge that more weight on the scale means a higher value from the strain gauge sensor. Eventually, I could tune and scale my sensor and sensing computer architecture to get me a system that gives me my input from my output.

Now, however, I have a black-box sensor. In other words, the 'weight' values map to the 'sensor' values in non-intuitive ways; more 'weight' on the scale might decrease the sensor value! On top of that, I want to measure an arbitrary number of weights with an arbitrary number of sensors. I am afraid I am being to vague, so I will describe one possible implementation of this design.

Imagine you had a system with J number of Xcm x Ycm sensing pads arranged in whatever configuration you like (hexagon, non-symmetrical, whatever). The only sensors you are allowed to use are K number of FSRs mounted on a common base of all J sensing pads, but you desire to know the weight on each pad.

Now imagine I run 1000 trials on this system, all at different weights on each of the pads. I have the input and output data for each trial, but I do not know how they map to each other. What I am asking is, is there a way to map the input and output to each other so that, given a certain output I have not explicitly tested before, I can predict the input?

Is there a field of research describing this problem? Statistics? Machine learning? Simple polynomial fitting?

Any knowledge out there? Many thanks.


1 Answer 1


There are two fields of interest, numerical analysis and artificial intelligence, which will be helpful:

Numerical Analysis

Numerical analysis includes a computational approach to interpolation and approximation techniques.

If you know the degree and type of the sensor function (i.e. polynomial, sinusoidal, logarithmic, etc.), you could construct a least-squares approximation using the gathered data points.

Even if the function is non-linear, finding the coefficients can hopefully be a linear solve.

Of course you need a mathematical model of the degree or type of function you have got.

If you don't know the degree or type, you will need to find that out by careful observation, estimation, and techniques like log-log plotting to find power-law relationships.

If that sounds appropriate for your problem, I recommend borrowing "Numerical Analysis" by Burden from your local university library and checking the interpolation and approximation sections.

Artificial Intelligence

Artificial intelligence includes learning methods that would assist in curve-fitting without knowing the degree or type of function.

The universal approximation theorem for neural networks (multilayer perceptrons) is helpful here - roughly, any continuous function can be approximated by a sufficiently sized neural network.

If standard analysis techniques fail you, I recommend borrowing the introductory text "Artificial Intelligence A Modern Approach" and checking the neural network section, and secondarily the decision tree and bayesian network sections too which will help with understanding.

Other fields

There are of course tools in other fields like statistics which may help, or even be better suited, however my knowledge does not extend that far.

  • $\begingroup$ Thank you Winfeld. I'll see what I can dig up in both these areas. One of the first questions that arises in my mind is that the numerical analysis function will likely be a function of more than one variable. I.e. y1 = f(a,b,c,d...). And I also suppose i'd have to make a separate function for each yN. Time to hit the books, though. $\endgroup$
    – Tucker
    Mar 5, 2019 at 2:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .