PDA

View Full Version : ESM Receiver Simulator


timmyg00
03-10-09, 09:45 PM
Hi folks,


One of my (very) minor pet peeves about Sub Command and Dangerous Waters was always that the ESM suite was not adequately simulated. I know, ESM is not the primary sensor for ASW missions - but try doing an ASUW or littoral recon mission without it! And of course, I am biased, having been an ESM technician while I was in the navy...


So I always thought "when I learn a bit of programming, I'll make my own ESM simulator to show my fellow subsimmers what a real ESM suite might look like if it happened to be included in one of our sims." So I took what I learned during my programming courses, studied and practiced a bit of C++ programming on the Windows OS (via Visual Studio), and whipped up my own little ESM receiver simulator. I say "whipped up" as if it took only a little bit of time, but in truth, I have been working on this since the summer of '08, and in the meantime I have been maintaining/landscaping my house, spending time with my new wife and pets, working, and just generally living life, and BOY does that get in the way of hobbies!!!


Please keep in mind that this is a crude little receiver simulator. There's a lot more I'd love to put in it, but of course, that all depends on how much interest is generated by this small example.


What the ESM Receiver Simulator version 0.5 has now:

a display for a single frequency band; back when I was sitting the ESM stack, it was known as the I-band, 8000 to 10000 MHz
One pulse analysis display for measuring the Pulse Repetition Interval (PRI) of a radar emitter in microseconds (us), from which the Pulse Repetition Frequency can be obtained
Another pulse analysis display for measuring the Pulse Width (PW) in microseconds (us) of a radar emitter
An "automeasure" function, which "measures" the signal of interest and displays its parameters in a separate readout
A button to start the simulation
A button to end the simulation
What I would like to add to the ESM Receiver Simulator:

A signal environment that would be randomized every time the simulator was started. Currently, the program displays four radar emitters of fixed parameters, for demonstration purposes.
User-selectable emitter density, that is, the number of emitters in the signal environment. For example, a littoral environment would have a high emitter density, while a blue-water environment, say, in the middle of the Pacific, would have a low emitter density.
More frequency bands. Real-world ESM systems monitor from 250 MHz up to 40000 MHz.
More emitter scan types. Currently, the four emitters in the demo simulate circular-scan radars. There are several scan types that could be added – sector, raster, spiral, electronic (phased-array)…
Adjustable reticles on the Pulse analysis displays. Currently, the reticles are fixed.
Better pulse shaping for the pulse analysis displays. Right now, the analysis signals are sharp rectangular pulses. This does not happen in the real world.
Audio output for the "signal of interest"
Direction finding (RDF). This function is the only one that is really modeled well in SC/DW, probably based on the ADF system that was being installed in the 688 boats around the time I was getting out of the USN (1997).
Library matching. This function is modeled in SC/DW, but gives you the emitter type and platform immediately, rather than a range of possible emitter types.
A better skin - buttons, knobs, etc.
Better graphics in general
Many of these features will require a substantial re-work of the code, but the code needs re-work anyway. The current product is a result of adding code as I learned how to do certain things, and I learned “on the fly” for much of it, so there wasn’t as much pre-planning as I would have liked for many of the features.


I’ll be interested in any reactions to this little sim. Chances are that you won’t hurt my feelings with criticism unless you’re a real a-hole, so don’t be shy…


You should be able to find the simulator at CADC's file repository, once the moderator has approved it :03:

Rip
03-10-09, 10:22 PM
Brilliant!

Being an ESM ET myself in the eighties perhaps I am with you in the minority in thinking this would be fun. You are basing it on the WLR-6? I have operated the WLR-8 and WLQ-4 and would love to assist where possible with testing etc. Maybe you could even do a BRD-7 for the lower freq stuff. If they would have developed it more realstically the ESM station could be every bit as complex as sonar.

Of course you already know that, but I don't think many people realize it. Even fellow bubbleheads because of the air of secrecy surrounding the radio/esm room. Especially after the Walker incident. They really started coming down on us for discussing what was going on in there even with shipmates.

Etienne
03-10-09, 11:02 PM
Mark me in as an interested guy. Will you be able to post a link, for those of us not familiar with CADC? :)

OneShot
03-11-09, 04:39 AM
File approved ... find it here : http://www.commanders-academy.com/forum/downloads.php?do=file&id=129

Pisces
03-11-09, 07:32 AM
More fidellity is allways cool. Maybe you can hookup with DrSid and incorporate your ideas into the CommunitySubsim. IIRC he was at the interface and maybe sensor stage.

http://www.commanders-academy.com/forum/forumdisplay.php?f=86

timmyg00
03-11-09, 08:49 AM
Brilliant!

Being an ESM ET myself in the eighties perhaps I am with you in the minority in thinking this would be fun. You are basing it on the WLR-6? I have operated the WLR-8 and WLQ-4 and would love to assist where possible with testing etc. Maybe you could even do a BRD-7 for the lower freq stuff. If they would have developed it more realstically the ESM station could be every bit as complex as sonar.

Of course you already know that, but I don't think many people realize it. Even fellow bubbleheads because of the air of secrecy surrounding the radio/esm room. Especially after the Walker incident. They really started coming down on us for discussing what was going on in there even with shipmates.

I was a WLR-8 guy, so what you'll see is very loosely based on that. I'd love to get all the radar stuff hacked out first before attacking the lower-freq DFs, but who knows, maybe someday!

I'm trying to come up with a better model for the emitters, receiving antennas, and receivers too. One thing I forgot to mention that is also not included in this sim is environmental effects like ducting - in effect, there is nothing between the receiver and the signal but a vacuum :03:

If Dr Sid has a need of my services, such as they are, I'm sure we'll be in touch at some point!

TG

goldorak
03-11-09, 10:21 AM
More fidellity is allways cool. Maybe you can hookup with DrSid and incorporate your ideas into the CommunitySubsim. IIRC he was at the interface and maybe sensor stage.

http://www.commanders-academy.com/forum/forumdisplay.php?f=86


:yep: :yep:

Talk to Dr Sid, and maybe you can embed your core ESM simulation code inside ComSubSim.

Dr.Sid
03-11-09, 10:49 AM
Sure I'm interested .. will look at it ASAP. :88)

timmyg00
03-11-09, 12:53 PM
has anyone downloaded/run it yet? :D

TG

Dr.Sid
03-11-09, 01:30 PM
I've just run it .. looks good.
Screens like this are supposed to ID the source ? The refresh rate is realistic ?
What kind of reference data are used for identification ? Is it in paper form or is it part of the device ? How is the bearing measured ?

:D

timmyg00
03-11-09, 02:42 PM
Screens like this are supposed to ID the source ?
Yes, screens similar to these are used to display the signals to the ESM operator...


The refresh rate is realistic ?
Fairly so, yes... as realistic as it can be without giving away things I'm not supposed to!


What kind of reference data are used for identification ? Is it in paper form or is it part of the device ?
The reference data sources are classified, but both paper and electronic references (in the system) are used.


How is the bearing measured ?
There's no bearing measurement in this demo. I have forgotten the technology used to perform RDF on Radar signals... I am sure I could fairly easily add it to this demo, but i'd be hard-put to figure out how to add it into a seriously-simulated environment!

Rip
03-13-09, 08:14 PM
I am not sure I remember all the bearing determination methods, but my favorite is to use multiple dipoles and measure the frequency phase shift between them. Then using some quick math measure the bearing based on phase shift.

timmyg00
03-18-09, 09:54 PM
If i get around to simulating DF measurement, it will more likely be something very simple, e.g. including the emitter's bearing in the emitter object for direct input into the receiver (e.g. the emitter tells the receiver "i am at bearing 345" and the receiver displays 345 as the bearing measurement), or perhaps including a set of coordinates in the emitter object, on which the receiver can perform a set of trig functions to obtain the emitter's bearing.

Dipoles and phase shift measurements... Man, I'd have to re-learn lots of RF that I have forgotten, all for a simple demo of what might have been in SC and DW ;)

Sooner or later i will describe the programming approach I took to creating the demo as well as the next phase, if there is one (Hint: more objects to be simulated). The next thing I'd add on to the current demo would be file-reading functionality, so that I could create a file of emitters for the program to read at startup, from which it would randomly pick some of those emitters to be generated for simulation.

TG

Rip
03-19-09, 12:40 AM
I need to read up on some of it to refresh the cranium myself. But you would hopefully want to at least include some error factor. Doppler shifts for fast moving targets would rock as well. Without being able to create audio it is all much less fun anyway. Nothing like the sound of an AWG-9 or some of the more advanced scan systems. I seem to recall the SPS-48 having a very distinctive sound as well.

In the end without that and a few RADCHEE, Janes, and some intel books all strewn about around you could not simulate the experience:ping:. I've always thought it was the best enlisted position on the boat. Wake me if we come to PD, I'll be in my rack!

timmyg00
03-19-09, 10:00 AM
Ooooh audio... that will come next after the input files...

TG

SeaQueen
03-19-09, 11:44 PM
What statistical distribution did you draw the noise levels from?

timmyg00
03-20-09, 09:34 PM
What statistical distribution did you draw the noise levels from? None! My complex math is so rusty it's pathetic. I used the C++ rand() function and limited the maximum noise level to 7 pixels above the bottom of the display.

Man, i think my demo isn't passing muster with the hardcore :oops:

TG

timmyg00
03-20-09, 09:40 PM
Without being able to create audio it is all much less fun anyway. Nothing like the sound of an AWG-9 or some of the more advanced scan systems. I seem to recall the SPS-48 having a very distinctive sound as well. The Mk 23 TAS was also distinctive... i remember hearing it in the audio of a CNN broadcast once after i transferred to CIVLANT. One of their reporters was on the flight deck of a carrier yapping about something or other, and some of the video/broadcast equipment must have somehow demodulated the PRF, and the pulse train bled into the audio feed. I recognized it instantly... some of those signals used to follow me into my rack and haunt my dreams :o

In the end without that and a few RADCHEE, Janes, and some intel books all strewn about around you could not simulate the experience:ping:. I've always thought it was the best enlisted position on the boat. Wake me if we come to PD, I'll be in my rack! It did indeed have its benefits! We were so short on qualified ESM operators that I could spend all my time below PD qualifying... didn't take me long! And I NEVER cranked.

TG

Dr.Sid
03-21-09, 01:33 PM
None! My complex math is so rusty it's pathetic. I used the C++ rand() function and limited the maximum noise level to 7 pixels above the bottom of the display.

Man, i think my demo isn't passing muster with the hardcore :oops:

TG

I guess it's no problem. With sonar it's a bit more complicated, I for example use different averaging windows for slow and fast broadband .. which should affect the 'look' of the noise. I too use 'flat' pseudo-randoms for the fast display, and I average few to get more Gauss looking noise for the slow displays.

Hey SeaQueen .. since you mind .. you know something more about it ? Some links ? I haven't found any. Also about the importance of this in sonar (& ESM) ?

SeaQueen
03-24-09, 07:39 PM
rand() would imply the uniform distribution. I suspected that from looking at it. God... you know you're a physicist when you can tell the distribution of random noise by looking at it. That scares me.

It would be a better simulation of real life if you used the Gaussian distribution. You can generate those from the uniform distribution using the Box-Muller method. You should be able to find a good discussion of it. The idea is that it's hard to generate one Gaussian distributed random number but it's easy to make two and throw one away (or use it for something else). I actually wrote a short program to generate Gaussian distribute random numbers. I use it for various projects of mine. I could send you the source if you'd like.

I really enjoyed seeing this. It's a great start. It would be nice if there were menus where you could put in more parameters and play with things like wave forms and what not. Like... on the top display I assume I'm looking at frequency versus the received level (in dB?). The other two displays I'm not sure I understand entirely.

One of my gripes with naval simulations is that it seems like game designers focus too much on the button-ology without paying enough attention to the substance which drives decision making. This is techno-weenieness, but it's good techno-weenieness. You can learn something from it. If something like this could be improved upon and integrated into something like Dr. Sid's subsim, that'd be absolutely fabulous. The interface doesn't necessarily have to look slick, it just has to be usable and updatable so that eventually it could be slick.

None! My complex math is so rusty it's pathetic. I used the C++ rand() function and limited the maximum noise level to 7 pixels above the bottom of the display.

Man, i think my demo isn't passing muster with the hardcore :oops:

TG

SeaQueen
03-24-09, 07:50 PM
Hey SeaQueen .. since you mind .. you know something more about it ? Some links ? I haven't found any. Also about the importance of this in sonar (& ESM) ?

The distribution statistical distribution of the noise? Well... for one it contributes to your false contact rate, although that's just a part of it. In a LOFAR gram, say, just by random chance, you might see a target that's not there due to the noise in the system. That's why you adjust your integration times. If you use long integration times, the noise averages out more and you can see a signal better with fewer false contacts, but at the expense of not getting information as quickly. At shorter integration times you can't see as far, but you can react more quickly albeit at the expense of more false contacts.

In radar it's less important because the rate of sampling is much higher, so things average out much more quickly, but it does have an effect. Most signal processing is designed around Gaussian noise, though. You can generate pairs of Gaussian distributed random numbers with the Box-Muller method.

http://www.taygeta.com/random/gaussian.html

The noise level is a big driver in sonar particularly, but radar as well. A lot of the physics of radar and sonar are the same. The jargon is just different. The basic ideas in both cases is that the atmosphere and the ocean is a waveguide. They just rephrase the jargon. In radar, for example, they plot the refractive index of the atmosphere versus altitude, while in sonar they plot the speed of sound versus depth. Regardless, it's just the speed the wave propagates at. In the end, it's all just Snell's Law.

It's all good stuff.

timmyg00
03-27-09, 10:31 PM
I actually wrote a short program to generate Gaussian distribute random numbers. I use it for various projects of mine. I could send you the source if you'd like. Sure, I'd be interested in seeing that!

Like... on the top display I assume I'm looking at frequency versus the received level (in dB?). We never actually measured incoming signals in dB, dBm, or any specific units (unless the ESM system was being groomed). We used the crude, but effective, signal strength scale I outlined in the readme:
-SS-1, signal is barely discernible from background noise. No side lobes detectable.
-SS-2, signal is clearly discernible from background noise, but still relatively weak.
No side lobes detectable.
-SS-3, signal is clearly discernible and of moderate strength. There may be some weak
side lobes present.
-SS-4, signal is strong, with several side lobes clearly discernible/audible.
Depending on other parameters, this represents a possible detection or collision threat.
-SS-5, signal is very strong – the receiver is saturated, i.e. little or no distinction
can be made between the side lobes and the main lobe. Depending on other parameters, this
represents a detection or collision threat.
This worked great if you kept in mind the characteristics of the radar signals and how they affect the capabilities of the radar (range, resolution, etc).


The other two displays I'm not sure I understand entirely. The other two displays are the demodulated radar pulses. The first pulse analysis display (the middle display) shows multiple pulses so that the Pulse Repetition Interval can be measured. The second display shows a single pulse so that the pulse width can be measured.

Here's the ESM Quick-tutorial part of the readme:
ESM Quick-tutorial – ESM stands for Electronic Surveillance Measures, and is basically the passive
(receiving or listening) side of ECM, or Electronic Countermeasures (or EW, Electronic Warfare).
ESM performs several functions in a military context:
-identification of platforms in a tactical situation, to identify both friendly and enemy forces
-evaluation of signal strength and emitter type, to determine whether or not the emitter’s platform
is a detection threat (i.e. will be able to detect ownship using the emitter detected by ownship)
or a collision threat (i.e. the signal strength is so high that ownship is within the radiation
pattern of the emitter, close enough to be a hazard to ownship)
-reconnaissance of sea-based, airborne or landbased platforms for the purpose of gathering intelligence,
either in a tactical or non-tactical situation

All intelligence gathered using ESM is Signals Intelligence, or SIGINT. SIGINT includes intelligence
about various RF signals, which includes radar and communications signals. This simulator only depicts
intercepted radar signals.

Signal Parameters – the basic parameters of concern that are typically measured by an ESM system are:
-frequency in MHz (or GHz, 1GHz = 1000MHz). In general, the lower the frequency, the longer
the detection range. Typical marine navigation radars operate in the 8000-10000MHz range, while a
long-range early warning air search radar might operate at about 300MHz.
-Pulse repetition interval in microseconds (us); the duration between the leading edge of one pulse
to the leading edge of the next. In general, the longer the PRI, the longer the detection range.
-Pulse repetition frequency in pulses per second (pps), which is the reciprocal of the PRI; the number
of pulses transmitted by the emitter per second. In general, the lower the PRF, the longer the
detection range, which corresponds to a longer PRI.
-Pulse width in microseconds (us); in general, the longer the pulse width, the longer the detection range,
because of higher average power output. However, a longer pulse width contributes to a lower
range/target size resolution. A radar with a short pulse width is better able to distinguish between
multiple targets that are close together.
-Scan rate in seconds; this usually only applies to circular or sector scans. Scan rate is not measured
by this simulator.
-Signal strength – depends on who’s doing the measuring. Back when I was on the boat, we had a 5-level
signal strength system:
-SS-1, signal is barely discernible from background noise. No side lobes detectable.
-SS-2, signal is clearly discernible from background noise, but still relatively weak.
No side lobes detectable.
-SS-3, signal is clearly discernible and of moderate strength. There may be some weak
side lobes present.
-SS-4, signal is strong, with several side lobes clearly discernible/audible.
Depending on other parameters, this represents a possible detection or collision threat.
-SS-5, signal is very strong – the receiver is saturated, i.e. little or no distinction
can be made between the side lobes and the main lobe. Depending on other parameters, this
represents a detection or collision threat.

bottomcrawler
03-28-09, 10:53 AM
What is the typical polarisation of a marine/search radar? Vertical or horizontal? Or rotating?

timmyg00
03-29-09, 06:11 PM
What is the typical polarisation of a marine/search radar? Vertical or horizontal? Or rotating? No idea... I'm sure a Google search would help find that information.

TG

timmyg00
03-29-09, 06:13 PM
I think maybe I should clarify something about this program - it's just a simulation of how an ESM receiver might appear if it were to be included in a submarine simulation. It's a demo, at best!

The signals themselves are extremely rudimentary simulations. You will see the basic parameters of a signal's frequency, PRI/PRF, and pulse width, but you will not see the results of environmental effects. As an example of how rudimentary the signal simulations are, here's how I decided to program them: I started with how I wanted the display to look. Then I decided how often I wanted to update the display. I took those numbers and used them to program a low-frequency oscillating loop which would generate amplitude values to send to the display, based on signal parameters set at the program's initialization. To sum up - I started from the display and worked backwards!

I'll post more specifics later.

TG

Rip
03-29-09, 07:08 PM
What is the typical polarisation of a marine/search radar? Vertical or horizontal? Or rotating?

IIRC most surface search radars are essentially navigation radars and randomly polarized. I would bet that is not universally true however.

Molon Labe
04-02-09, 05:06 PM
It would be cool if this got into Sid's CSS. The radar/ESM model in DW is rather disappointing and this level of detail would be very nice to have.

If I could steal the attention of the ESM/radar buffs for a moment, I'm looking for some related information (http://www.subsim.com/radioroom/showpost.php?p=1076798&postcount=229), if anyone would care to lend a hand. Thanks!

timmyg00
04-04-09, 07:20 PM
I have added a Word doc describing the "inner workings" of the program to the CADC Downloads center, along with a separate file containing the source code for the signal generation functions.

TG