SigScope — Signal Visualization & Analysis
 

SigScope in action


Download SigScope 1.0.5 for Windows XP/Vista/7

Download Sample Data


SigScope is based on my experience with analyzing sensor data; this data is recorded by devices that measure vibration, temperature, magnetic fields, gravity, pressure, electrical fields. In general, the information is recorded at between 10 and 2000 Hertz; understanding it requires FFT analyses and digital filtering. Applications range from studying swaying skyscrapers looking for sympathetic vibrations in machinery, and from monitoring flows in a pipeline to examining fluctuations in magnetic fields.

Here's how it works...

Tutorial

First, download and install SigScope via this link. It uses less than a half-GB of disk space. A new folder will appear in your list of programs, under the terribly confusing name of "SigScope", containing a shortcut to an even more confusing program named... "SigScope". :) Start it up, and you'll see a small main screen.

SigScope


The program has a number of settings you might find useful. For example, you may have noticed that the first screen shot on this page shows bright-colored lines against a black background; by default, however, the program produces graphs on an off-white background. Here's the complete settings dialog:

SigScope


Changes made in the configuration dialog only affect newly-created windows. These settings will persist between SigScope runs, automatically saved when you click "Accept". An important note: The option to Limit Frequencies controls the area of the FFT shown; it does not apply a filter of any kind. More about filters below.

For this tutorial, I'll keep the configuration at its default values.

While SigScope can examine up to six signals at a time, let's just stick to one for the moment. Clicking Analyze a Signal brings up the usual file open dialog. SigScope works with two kinds of files, both of which are text files in comma-separated value (CSV, simple spreadsheet) format. A .sigscope file contains a few heading lines, a start time, and the hertz of each signal contained therein. Aftre the heading, each signal (up to six of them) is a column of numbers.

SigScope can also open an unadorned CSV file that contains simple columns of numbers (and nothing else). Each column is considered a separate signal. When loading a "plain" CSV file, SigScope will ask for some basic information, such as the sampling rate (Hertz).

Here's what SigScope displays when I open a simple sample file containing a single 100Hz signal. (Simple-sample-single... who says there isn't poetry in software?)

SigScope


Along with the main graph window, a small display will contain a Legend showing a list of signals by color and with information on whatever filters are currently applied. Left-click a signal name in the legend to toggle it's display on and off; right-click, and you can set filters and colors.

The mouse tries to be consistent throughout the program, following these conventions:

  • Left-click selects/says "do something". Not much exciting to see here.
  • Right-click displays a context menu or dialog, usally for changing the nature of an item. Right-clicking the main graph, for example, allows you to set such things at axis labels.
  • Middle-click tells you about the item; for exmaple, in the main graph, middle click will tell you at Y value for all data lines at the X value at the click location.

The screen has three main sections:

  • The Main Graph is... well, the main graph, and X-Y plot, FFT, or (in the future) something else. If you mouse-scroll here, it moved forward and backward in the signal.
  • The Summary shows the complete signal at reduced size, and has a selection box determining which part of the signal is being displayed in the Main Graph. Mouse-scroll moves the selection, which can also be dragged and resized. Double-clicking extends the selection to the entire signal; double-click again to restore to the previous selection.
  • The Toolbar is a bunch of buttons that do stuff. :)
    • Graph Type switches between an XY plot (time domain) and an FFT (frequency) view of the selected data.
    • Settings opens the context dialog for the Main Graph.
    • Export as SigScope File will save the complete signals to a SigScope-format CSV file.
    • Export as PNG file draws the Main Graph to an PNG (portable Network Graphics) image, along with the legend.
    • Trim creates a new window containing only the part of the signal selecte din the Summary. You can then save this to a SigScope file, thus extracting interesting bits from your signals.
    • Add Another Signal button opens another Sigscope or CSV file, and adds its signals to the ones currently displayed.
    • Signal Information displays some basic statistical data about each of the signals in the current set. This function is fairly rudimentary at the moment; I'll be doing somethign fancier in the final version of SigScope.

Selecting the FFT from GraphType will change our display to look like this:

SigScope


To focus on all those pretty frequency spikes below 12Hz, let's right-clicking on the Main Graph to get a ahndy-dandy dialog box.

SigScope


Again: Limiting the frequencies does not impose a filter! All only tells the graph to display values within a given range, so we can see more detail about what we're interested in. Setting the limit to between 0 and 12Hz gives us this display.

SigScope


The graph is showing the FFT for the selected portion of the signal. A quick double-click on the Summary to select the entire signal, and our spikes become much more pronounced.

SigScope


Now for filters, which work best with a more complicated signal. For this next example, I opened a recording of acceleration data, collected at 400Hz, with natural noise and flutter. The X and Y axes are turned off, leaving only the Z axis for analysis. I switch to FFT mode, and see a lot of noise; my interest is in the frequencies around 80Hz. So I right-click on the Z Axis in the legend.

SigScope


SigScope supports low-pass, high-pass, band-pass, and downsample filters. Setting a band-pass filter for between 30 and 100Hz produces the following graph.

SigScope filtered FFT


Clicking on the image above will download a very large PNG image of the data, as exported by SigScope.

Where it's going...

I'm well-aware that this is a very basic package. Possible extensions and improvements include:

  • Histograms
  • Temporal FFT, perhaps an SFFT, and probably a design of my own I've been working on
  • Live data capture. Support is already built-in; if your company has a device and wants to have sigscope provide real-time analysis, please get in touch!
  • Suppport for very large (long time-span) signals
  • Built-in waveform generator
  • Data massaging / compensation
  • More DSP (digital signal processing) tools
  • Annotations

Syraqua Logo

Scott
Robert
Ladd

Software Engineer
 

 
 

 


© 2013 Scott Robert Ladd
All rights reserved.

The grey-and-purple dragon logo, the blue coyote logo, Coyote Gulch Productions, Itzam, SigScope, Evocosm, and Acovea are all Trademarks of Scott Robert Ladd.