Simulating random noise in a broadband sonar display

This topic is 1830 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

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.

Share on other sites
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.

Share on other sites

[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

Share on other sites

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?

Share on other sites

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.

Share on other sites

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.

Share on other sites

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.

Share on other sites

The perlin noise approach function looks promising! Thx.

Share on other sites

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 ;)