Simulating random noise in a broadband sonar display

Started by
7 comments, last by hawkeye_de 11 years, 3 months ago

Hi,

I'm currently in the process of implementing a first prototype of a broadband sonar for my subsim.

Have a look at this picture:

[attachment=13215:waterfall_display.pNG]

I'm currently struggling how to best implement the background noise (random noise of the ocean, in the picture those are the dark grey random points)...I'm sure there are standard algorithms/maths to do that.

Can anybody help me here ?

Thanks.

Advertisement
Select parts that are clearly noise and make a histogram of the color intensities. As a first attempt to generate noise, try to do it by assigning each pixel a random value from a distribution that follows that histogram. If that doesn't look good, it means the samples are not independent and you may have to work harder. But I am guessing the results of this first idea are probably good enough.

[quote name='hawkeye_de' timestamp='1358089113' post='5021102']
I'm sure there are standard algorithms/maths to do that.
[/quote]

http://en.wikipedia.org/wiki/Monte_Carlo_method


I'm sure there are standard algorithms/maths to do that.




http://en.wikipedia.org/wiki/Monte_Carlo_method



??? What does this have to do with Monte Carlo methods?

There's probably been research on what distribution sonar background noise has, you can try and look that up and then sample that distribution by using a uniform distribution (using inverse transform sampling). It shouldn't even be that slow and would be quite accurate. Of course you can always approximate it, though.

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

I suggest a 1D perlin noise scaled down to a quiet level, and added on top of the directional signal. If you wanted to get really fancy, you could instead scale the noise in any one direction by distance to the nearest underwater surface (with some small values for the min-max range). Then take your sub's engine signal, distort it by adding another noise channel over it, and again reflect it off near by surfaces to add haze when you are running loud. Taking the FFT of the perlin noise should result in an even static value across your frequency histogram for your ship's analysis display as well, so you'd get free noise there too.

What type of noise are you trying to model, White Gaussian or a "colored" noise? If you just need gaussian at a given level. http://people.sc.fsu.edu/~jburkardt/cpp_src/normal/normal.html Their stuff seems to work.

The perlin noise approach function looks promising! Thx.

I've played just a little with standard randomizing...and to my astonishment it works well...so again easy solutions are often the best ones ;)

This topic is closed to new replies.

Advertisement