WCCRO Spectrograph Viewer Help

Color Control Functions

The WCCRO Spectrograph is highly visually oriented. It relies on the mapping of spectral signal intensity information into colors on a 2 D plane for detection and identification of features in the dynamic spectra of Jupiter and Sun. Our initial experiences with the device have been very promising. The sensitivity seems adequate to discern faint spectral features. Understanding the color mapping process helps the end user to make the most of the instrument. Some tools have been developed to use color mapping to the fullest advantage. Future improvements are expected as time goes on and experience accumulates with the device. Note that color-mapping functions do affect the raw data. The data can thus be remapped later in review mode.

Color Files

As explained briefly in the section on Data Display, signal strengths for each of the 200 channels are mapped to colors in a "Color File". Color files are selectable via menu options. If you look at a color file in a text editor, you will see a list of numbers such as:

15996
15996
15997
16253
16253
16254

Each list contains 4096 numbers. Note that many of the numbers repeat. The reason that 4096 numbers exist for each color file is historical. The original spectrograph software was designed for a 12 bit ADC. However, the final design implemented only a 10 bit ADC. 4096 is the number of levels resolved by a 12 bit ADC and 1024 is the number of levels available from a 10 bit ADC. To reach the appropriate level in the color file, the 10 bit sample data is thus multiplied by 4 to take advantage of the full color range. It was decided not to retreat to a 1024 level color file just in case there was ever a need to go back to the 12 bit ADC. The various values seen in the color files are the result of a function red, green, and blue (RGB) 8 bit values. The contribution of each of these primary colors to the final number is as follows:

Red*65536 + Green *256 + Blue * 1

Where each of the colors contribute a value between 0 and 255.

Many of the colors repeat themselves within the color file. This leads to some loss in visual resolution. The color files were created programmatically using software written by the author. The algorithms for color generation could no doubt be greatly improved and will be an area of future research. For now, there are a number of color files to chose from that are distributed with the software.

 

Mapping Signal Intensity to Color

In the simplest scenario, signal levels are mapped directly to color file values my the normalizing multiplier of four (1024 * 4 = 4096 ). When doing this the entire dynamic range of the receiver gets mapped. To achieve this type of mapping setting the settings under the Color menu item to:

Ö No Multiplication

Ö Reset Color Offset to Zero

 

Non-Linear Mapping

This mapping might be used during daytime observations where strong solar activity is expected, however, it is not optimal for detecting small changes in signal levels. To do this we must make some guesses about the range of signal levels we want to detect and optimize the mapping for those levels.

A non-linear function has been developed by Richard Flagg to enhance mid-range signal levels. This function is as follows:

Vout = 4.5*Vin - ((Vin^2)/256) – 270

Where Vout is the level mapped to (after normalization) in the color file and Vin is the sample voltage.

This produces a somewhat bell shaped response to signal input levels as shown by the graph below.

Curves produced by three different functions applied to input signal levels (X axis). Series 3 is the function presently used for non-linear color multiplication in the spectrograph software.

As you can see from the graph signal; small changes in the signal close to the expected background level receive the greatest enhancement with this scheme. Strong signals such a those produced by interfering stations are suppressed.

To achieve this non-linear color response select:

Ö Non-Linear Multiply

Ö Reset Color Offset to Zero

 

Zero Offset

You can subtract a value from each channels signal level prior to color mapping. This has the effect of removing all signals below a given level. This is useful for removing background signals as contributed by the Galactic Background. Applying an offset in this way makes it possible to extend the degree to which a signal level can be artificially multiplied in the mapping process. Offsets are applied individually to each channel by an offset array of 200 values. Setting all of the values in the offset array to 100 would subtract 100 from each of the signal levels prior to multiplication. If a signal level is thus reduced to a negative value it is returned to zero by a line in the program.

You can set all channels to have the same offset by selecting Color / Select Fixed Color Offset and inputting the value you wish to offset.

A second method of applying offsets is to right click on Chart #2 while data is being collected. The 10 sample averaged value that appears in each channel for the most recent scan in Chart #2 will be applied to the offset array. This immediately nulls out whatever signals are being received. Stations and the Galactic Background tend to disappear. Of course, you should not do this when a signal that you want to see is present, as it too will be nulled out!

You can reset all channel offsets to zero by selecting Color / Reset Color Offsets to Zero.

Multiplying

Multiplying applies a multiplier to the signal level prior to mapping to the color file. You can see that this greatly limits dynamic range. A multiplier of 2, for example cuts the dynamic range that may be represented on the chart in half. However, this is also a powerful way to increase sensitivity to minor changes in signal level, especially when couple with the offset array function. Selecting Color / Multiply brings up a small color multiplier window above the color legend. The value in the window can be increased or decreased by 0.1 using the associated buttons, or the user can type the desired multiplier value into the text box and hit Enter. The multiplier is immediately applied to all incoming data.