# Using Neural Network for locating shifting resonant frequencies

I have multiple FFT's taken from a sample at different pressures, through different analysis I can see that the resonant frequencies are shifting in the spectrum for each FFT at a different pressure.

Using conventional peak tracking has been difficult as the peaks increase/decrease in magnitude within the FFT as well as shifting in the spectrum.

Is it possible for a neural network to 'detect'/'pick out' these frequency values?

Any help or guidance is appreciated :)

Thanks!

• 1. This could be either classifiation or regression problem, you could experiment with both. For classification you probably want to use a CNN underneath an LSTM. This is common for audio and 1d processing. – FourierFlux Sep 17 at 14:08

Is it possible for a neural network to 'detect'/'pick out' these frequency values?

Yes, that sounds generally possible.

There's the Universal Approximation Theorem that says that a sufficiently large Neural network¹ can approximate any continuous function on anything isomorphic to $$\mathbb R^N$$ (and your FFT output is that), including things like

map this FFT output to a vector of resonant frequencies.

Now, what that says that if such a continuous function exists, then a neural network can reproduce the same.

It's then "just" a problem of training the weights of that neural network. That training usually happens through putting in data and judging the output (e.g. by how "correct" the output is, which requires you to already know the correct output, or by making sure the output probability distribution is as close as possible to what the distribution of the true phenomenon is).

However, whether or not that function exists is more of a physical / stochastic problem: For example, when I want a function

map the FFT of the acellerometer signal to the weight of the fattest cat of the oldest cat-owning person on this planet

no neural network could approximate that – simply because there's no relationship between the signal and the cat.

So, a Neural Network can't do magic: if things are stochastically independent, or ambiguous, then no estimation can be implemented, by a Neural Network or anything else. That's kind of an important thing to keep in mind, especially when reading the hype literature about Neural Networks that still occasionally show up:

If there's no mutual information between in- and output of the proposed mapping, then there's nothing any algorithm could do – be it a Neural Network, or anything else.

But in your case, I think you have good reason to assume there's a solid amount of relation between your input data and the output you want, so you should be fine.

¹ "sufficient" can be very large; and you need activation functions that aren't polynomials; what we call "neural networks" usually doesn't use polynomials.

• Thank you very much for your help! I will look into what you have suggested. – Beth Oct 8 at 9:01
• Could you suggest the type of 'neural network' that is appropriate to use. There is such a large variety out there, I feel swamped by where to begin. – Beth Oct 8 at 10:28
• You're starting this backwards: instead of starting with how to design a neural network, start with learning what people did that solved similar problems. Maybe Timothee O'Shea's work on signal-classifying neural networks is a good starting point. – Marcus Müller Oct 8 at 10:44
• Thank you, I agree I have started this the wrong way around. – Beth Oct 8 at 11:08