Welcome

Welcome to SpectraPLUS-SC

SpectraPLUS-SC is a powerful dual channel spectrum analyzer. The program interfaces with any Windows compatible sound card to provide Real-Time spectral analysis as well as Recording , Playback and Post-Processing capabilities; it gives you the ability to make frequency response, distortion, and transfer function measurements. It supports a wide range of FFT sizes, smoothing windows , digital filtering , overlap processing , averaging , peak hold , triggering , decimation , narrowband or octave (1/1, 1/3, etc) scaling and can display, export and print the Time Series , Spectrum , Phase , 3-D Surface plot, and Spectrogram . A Signal Generator utility produces pink/white noise, swept sine, tones, and pulses. Although all signal processing is performed on the CPU, real-time performance is possible with today's machines.

See Also: Basic Operation , What is a Spectrum Analyzer


What is a Spectrum Analyzer

A spectrum analyzer is an instrument used to convert a signal from the time domain (amplitude-vs-time) to the frequency domain (amplitude-vs-frequency). If you are familiar with an ordinary oscilloscope you know what a time domain display looks like. A frequency domain display is known as a spectrum. Unless you are measuring a single tone, an oscilloscope provides little in the way of frequency information; however, a spectrum analyzer clearly reveals this information. An Audio Spectrum Analyzer, by definition, is limited to processing signals in the audio band. The specific frequency limit is determine by the capabilities of your sound card (see sampling rate for more details).

What Can it Do?

An Audio Spectrum Analyzer is very useful for measuring the fundamental frequency components which are contained in an audio signal. It can accurately measure the frequency of single or multiple tones and the frequency difference between them.

How does it work?

The program works in conjunction with the sound card on your computer. Plug the audio signal to be measured into the Line-In or Microphone jack on the back of the sound card. SpectraPLUS-SC then uses the card to perform an "Analog-to-Digital" conversion on the audio signal. This digitized audio is then passed through a math algorithm known as a Fast Fourier Transform (FFT) which converts the signal from the time domain to the frequency domain. The CPU on your computer is used to perform this transformation.

See also: Application Notes , Performance Issues


System Requirements

Current Minimum System Requirements:

150 MHz Pentium CPU recommended minimum

128 MB RAM minimum, 20 MB hard disk space

256 color VGA monitor or higher (1024 x 768 or greater resolution)

Windows compatible sound card

Mouse or other pointing device


Basic Operation

The program has three distinct operating Modes and five separate Views.

Modes

  • Real-Time mode takes the audio directly off of the sound card, processes it and displays the results. You can run for an indefinite period of time but the last 60 seconds (user adjustable) will be buffered. If you stop the analyzer and change to the Recorder or Post Processing mode you will be given a chance to save this data buffer to a wave file.
  • Recorder mode allows you to save the raw digitized audio to your hard disk in the form of a .WAV file. You can also playback the audio through the speaker connected to your sound card.
  • Post-Processing mode allows you to process audio data which was previously recorded and stored on disk in a .WAV file. This mode allows greater flexibility than the Recorder or Real-Time modes in the analysis process. In particular, this mode allows the use of overlap processing to effectively stretch the time resolution in both the Spectrogram and 3-D Surface plots.

Views

  • The Time Series view shows the digitized audio waveform. It is similar to an oscilloscope display (amplitude versus time).
  • The Spectrum view displays the amplitude of the signal versus frequency.
  • The Phase view displays the phase of the signal versus frequency.
  • The Spectrogram view displays the spectra over time. The amplitude is shown in color or grayscale.
  • The 3-D Surface view displays a perspective of the spectra over time.

See also: Setting up the Analyzer


Setting up the Analyzer

Setup the hardware:

Install the sound card and driver (refer to instructions included with your hardware) and connect the audio signal you wish to measure to the Line-In or Microphone jack on the rear edge of the sound card.

Frequency Range:

Prior to making a measurement, you need to determine what frequency range you are interested in, and what frequency resolution is required. Go to the Settings dialog box by selecting the <Settings> command under the <Options> menu item. Set the Sampling Rate to at least twice the highest rate that you wish to measure. Now adjust the FFT size so that the spectral line resolution (displayed directly under the title of the dialog box) meets your objectives. Click OK to close the dialog box.

Axis Scaling:

Go to the Scaling dialog box by selecting the <Scaling> command under the <Options> menu item. Select the appropriate scaling options. The program defaults to Logarithmic amplitude scaling and Linear frequency scaling.

Open any of the views you wish to display

Each view can be opened and closed by toggling the corresponding menu item. A check mark will appear next to any open view. Views can be opened and closed even when the processor is running but in the case of the 3-D Surface and Spectrogram views, the contents are erased once closed.

Select the operating mode

Select the Recorder mode if you wish to save the audio data for later processing. Select Real-Time mode if you wish to run in a monitor mode without saving the data. The Real-Time mode will allow you to run continuously whereas the Recorder mode is limited by available hard disk space or memory (depending on the selected File Options) on the computer. Post Processing mode is used for processing from a previously recorded WAV file.

Start the analyzer

Click <Run> or <Rec> on the toolbar or use the associated accelerator key <alt> <R> to start the processor. The displays will then begin updating. Optionally, you can press the enter key when in the real-time mode and the analyzer will make a single measurement and then stop.

Stop the analyzer and make a measurement

Click <Stop> on the toolbar or use the associated accelerator keys <alt> <S> to stop the processor. Use the mouse to point to a feature of interest on one of the views and press the left mouse button. Measurement boxes will appear which contain the corresponding plot values. (See Cursor Measurements for more information).

Print the results

Selecting the <File> <Print> menu item will print the active view on the selected printer. You will also have an opportunity to enter custom annotation which is printed along the top center of the page.

Save the configuration

You may save the current analyzer configuration at any time by using the <File> <Load> Configuration menu item. All current settings are saved as well as the size and position of each view and any open WAV file.

See also: Basic Operation, What is a Spectrum Analyzer? , Working With Audio files , Aliasing, Printing , Configuration Files , Keyboard Shortcuts


Cursor Measurements

Left Mouse Button:

Pressing the left mouse button anywhere within the plot region will display horizontal and vertical measurement boxes containing the values of the X and Y positions pointed to.

Control Key + Left Mouse button:

Holding down the Control Key and clicking the left mouse button anywhere within the plot region and dragging will display horizontal and vertical measurement boxes containing the differential values of the X and Y positions relative to the starting point. This is very useful for measuring the difference between two points on the plot.

Shift Key + Left Mouse button:

Holding down the Shift Key and clicking the left mouse button anywhere within the plot region will display a set of "harmonic cursors". These cursors show the first 10 harmonic frequencies. This is very useful for identifying harmonically related components within a complex spectrum.

Control + Shift Key + Left Mouse button:

Holding down both the Control and Shift Keys and clicking the left mouse button anywhere within the plot region will display a set of "sideband cursors". These cursors show additional measurement lines on both the upper and lower sides of the start point. This is very useful for identifying modulation related components within a complex spectrum.

Right Mouse Button:

Pressing and holding the right mouse button within any view will activate a popup menu containing additional editing and processing options. The contents of this popup menu depends upon the specific view. See the Right Click Action Menu topic for more information.

The Spectrum and Phase plots will "pull" the cursor to the trace along the amplitude axis. This can be disabled from the spectrum/phase display options dialog box.

Notes:

  • It is recommended that you "Stop" the Analyzer while using these mouse actions. There are no corresponding keyboard commands.
  • The 3-D Surface plot can be deceptive; you must measure along the base (X-axis) of the plot to determine the correct frequency. Aligning with the top of a peak will skew the measurement to the left because of the perspective orientation of the display.

See also: Keyboard Shortcuts, Toolbar


Right Click Action Menus

A single click with the right mouse within the plot area of any view will activate a menu containing a variety of additional actions. Although some of these actions are familiar clipboard operations, many provide powerful "cross display" functions for post processing and analysis.

Time Series View

Select All - selects the displayed time series for editing.

Cut - cuts selected time segment and places it on the clipboard in .WAV format.

Copy As Wave - copies the selected time segment to the clipboard in .WAV format.

Copy As Text - copies the selected time segment to the clipboard in a tab delimited text format.

Copy as Bitmap - copies the plot image to the clipboard in standard bitmap format.

Save To Wave File - saves the selected time segment to a new wave file (you will be prompted to enter a filename)

Write To Bitmap File - writes the plot image to a bitmap file (you will be prompted for the filename and location).

Mute - mutes the selected time segment.

Filter - filters the selected time segment.

Play - plays the selected time segment through current output device .

Autoscale Display - Evaluates the data and sets the Plot Top/Range parameters to optimum values.

Pull Cursor To Trace - If this option is enabled, the measurement cursor will automatically "pull" to the waveform trace along the amplitude axis.

Compute and Display Average Spectrum - computes and displays the average spectrum for the selected time segment using infinite averaging . The spectrum view is opened if necessary.

Compute and Display Spectrogram - computes and displays the spectrogram for the selected time segment using the current FFT size and averaging settings. An overlap percentage is used so that the entire time segment will fill the spectrogram plot. The spectrogram view is opened if necessary.

Compute and Display 3-D Surface - computes and displays the 3-D Surface view for the selected time segment using the current FFT size and averaging settings. An overlap percentage is used so that the entire time segment will fill the 3-D Surface plot. The 3-D Surface view is opened if necessary.

Compute and Display RT-60 - Opens and Calculates the Reverberation Time for the selectet time segment. Click here for more details

Perform DTMF Analysis - Decodes DTMF key presses (touch tones) for the selected time segment.

Compute RMS, Max, Min, and Peak to Peak Levels - Computes the RMS level, max/min and peak to peak values for the selected time segment.

Convert to RMS values - Converts the selected time segment to RMS values and displays the results. User is prompted to enter the RMS time duration.

Compute Crest Factor - Computes and displays the crest factor for data set.

Set Trigger Threshold - Sets the trigger threshold based on the cursor position. Triggering is also enabled.

Compute Envelope Using Hilbert Transform - Computes the Envelope (magnitude) of the selected time segment using the Hilbert Transform. The results are displayed in the time series view. Click on the "zoom out full" button to return to the normal display mode.

Compute Schroeder Integration - Computes a reverse integration (right to left) based on M. R. Schroeder's method. The results are displayed in the time series view. Click on the "zoom out full" button to return to the normal display mode.

Compute Cumulative Sound Exposure Level (cSEL) - produces a plot of the forward integration of the selected time segment. Best displayed using Logarithmic amplitude scaling on the time series plot. This measurement is often used in underwater noise assessment such as pile driving.

Export Peak Values to Text File - creates a text file containing the time, peak, rms and one second SEL levels for all events in the selected time segment. You will be prompted for the threshold and filename.

View Data Values - displays a table containing the current time series values. The contents of this table will update whenever the time series display changes.

Properties - activate the display options dialog box.

Help - activates the online help.

Spectrum View

Copy as Text - copies the displayed spectrum values to the clipboard in tab delimited text format.

Write to Text File - writes the displayed spectrum values to an ASCII text file.

Copy as Bitmap - copies the plot image to the clipboard in standard bitmap format.

Write To Bitmap File - writes the plot image to a bitmap file (you will be prompted for the filename and location).

Clear Spectrum - clears the current spectrum. This is useful if you wish to view/print overlays with just the peak hold trace

Clear Peak Hold - clears the current spectrum. This is useful if you wish to view/print overlays without the peak hold trace.

Autoscale Specctrum - Evaluates the data and sets the Plot Top/Range parameters to optimum values.

Pull Cursor To Trace - If this option is enabled, the measurement cursor will automatically "pull" to the spectrum trace along the amplitude axis.

Inverse FFT - performs an Inverse FFT and displays the results in the time series view .

Compute Cepstrum - performs an FFT on the current spectral data.

Bandwidth and Q Factor - computes and displays the half power bandwidth and Quality Factor for the maximum peak in the display.

Set Calibration to 0 dBr at this frequency - Sets the calibration reference point to 0.0 dBr. This will cause the analyzer to compute and apply calibration values that will result in a level of 0 dBr at the frequency corresponding to the mouse position (it is recommended that you zoom in on the display in order to make sure that the desired frequency is accurately selected). Use this if you want to quickly normalize the trace such as when performing a frequency sweep test. Note - the mouse position is only used to determine the frequency; the analyzer will determine the signal level at the selected frequency based on the underlying spectral data.

Set Marker N - activates marker N at the frequency of the mouse click point.

Clear Marker N - clear individual markers

Marker Options - activates the Marker Options dialog box

Smooth Spectrum N - averages N adjacent bins to smooth the spectral data (requires narrowband freq scaling and logarithmic amplitude scaling).

View Data Values - displays a table containing the current spectrum values. The contents of this table will update whenever the display changes.

Properties - activate the display options dialog box.

Help - activates the online help.

Phase View

Copy as Text - copies the displayed phase values to the clipboard in tab delimited text format.

Copy as Bitmap - copies the plot image to the clipboard in standard bitmap format.

Write To Bitmap File - writes the plot image to a bitmap file (you will be prompted for the filename and location).

Pull Cursor To Trace - If this option is enabled, the measurement cursor will automatically "pull" to the trace along the phase axis.

View Data Values - displays a table containing the current phase values. The contents of this table will update whenever the display changes.

Properties - activate the display options dialog box.

Help - activates the online help.

3-D Surface View

Cut - cuts selected time segment and places it on the clipboard in .WAV format.

Copy as Wave - copies the selected time segment to the clipboard in .WAV format.

Copy as Bitmap - copies the plot image to the clipboard in standard bitmap format.

Write To Bitmap File - writes the plot image to a bitmap file (you will be prompted for the filename and location).

Mute - mutes the selected time segment.

Filter - filters the selected time segment.

Play - plays the selected time segment through current output device .

Autoscale 3-D Surface - Evaluates the data and sets the Plot Top/Range parameters to optimum values.

Display Time Series - displays the time series corresponding to the selected segment. The time series view is opened if necessary.

Compute and Display Average Spectrum - computes and displays the average spectrum for the selected time segment using infinite averaging . The spectrum view is opened if necessary.

Compute and Display Spectrogram - computes and displays the spectrogram for the selected time segment using the current FFT size and averaging settings. An overlap percentage is used so that the entire time segment will fill the spectrogram plot. The spectrogram view is opened if necessary.

Expand 3-D Surface - expands the 3-D Surface view by recomputing the data for the selected time segment. An overlap percentage is used so that the entire time segment will fill the 3-D Surface plot.

Properties - activate the display options dialog box.

Help - activates the online help.

Spectrogram View

Cut - cuts selected time segment and places it on the clipboard in .WAV format.

Copy as Wave - copies the selected time segment to the clipboard in .WAV format.

Copy as Bitmap - copies the plot image to the clipboard in standard bitmap format.

Write To Bitmap File - writes the plot image to a bitmap file (you will be prompted for the filename and location).

Mute - mutes the selected time segment.

Filter - filters the selected time segment.

Play - plays the selected time segment through current output device .

Autoscale Spectrogram - Evaluates the data and sets the Plot Top/Range parameters to optimum values.

Display Time Series - displays the time series corresponding to the selected segment. The time series view is opened if necessary.

Compute and Display Average Spectrum - computes and displays the average spectrum for the selected time segment using infinite averaging . The spectrum view is opened if necessary.

Expand Spectrogram - expands the spectrogram by recomputing the data for the selected time segment. An overlap percentage is used so that the entire time segment will fill the spectrogram plot.

Compute and Display 3-D Surface - computes and displays the 3-D Surface view for the selected time segment using the current FFT size and averaging settings. An overlap percentage is used so that the entire time segment will fill the 3-D Surface plot. The 3-D Surface view is opened if necessary.

Properties - activate the display options dialog box.

Help - activates the online help.

See Also: Spectrum View , Time Series View , Phase View , Spectrogram View , 3-D Surface View


Printing the results

The program allows you to print one View at a time. Make the view you wish to print the active window by clicking anywhere in the plot. Size the view to display the information you wish to print; only the displayed data will be printed. Select the <Print> option from the <File> menu. Change any printer options and click OK.

The <File><Print Setup> menu command allows you to select various options specific to your printer.

Annotation: Two user defined lines of annotation are provided. These are centered along the top portion of the printout.

Margins: Set as desired.

Comments: You can include up to 10 comment lines which will be printed below the plot. A button allows you to copy the metadata into the comment block.

Notes:

  • For best results when printing the color spectrogram on a monochrome printer, select the grayscale option on the spectrogram options dialog box.
  • For printing the 3-D surface plot on a monochrome printer, you may wish to select a white background color and black line color from the 3-D Surface options dialog box.
  • Color printers are supported.
  • Pen Plotters are not supported for the spectrogram and 3-D surface plots

See also: Configuration Files


Working with Audio Files

Standard File Open/Save/SaveAs Dialog boxes are used to allow you to locate files on your system. Only the .WAV format is currently supported, however you may import raw data files from other acquisition systems using the File Import command. The program also supports "Drag and Drop" from the Windows File Manager (refer to Winfile.hlp if you are unfamiliar with this feature).

Once a file is opened, or recording has started, the sampling rate and format cannot be changed. You must first close the file. This is because a .WAV file format requires a constant sampling rate and format throughout the entire file.

When the mode is changed to Real-Time, the current file will be closed and you will be prompted to save it if necessary.

The amount of memory required for each minute of audio varies widely depending upon the sampling rate and sampling format. Some typical values for mono recording are shown below (multiply the values by 2 for stereo recording):

Sampling Rate (Hz) Sampling Precision (bits) Bytes/Minute

11,025 8 661,500

11,025 16 1,323,000

22,050 8 1,323,000

22,050 16 2,646,000

44,100 8 2,646,000

44,100 16 5,292,000

44,100 24 7,938,000

96,000 16 11,520,000

96,000 24 17,280,000

Continuous Recording Capability

Wave files can store up to 2 GB of data in a single file (the corresponding time depends upon the sampling format). When this limit is reached, the program will momentarily stop recording, save the file and then start recording again in a new file. If the file is does not yet have a name, the program will give it a name using the computer date and time. The file will be stored in the \wave folder as specified in the <File>< Set Paths > dialog. This feature applies to the hard disk recording mode only.

Example: c:\speclab\wave\recording_2002_11_26_102011.wav

(in this example the date and time were 10:20:11 Nov, 26 2002 when the file was saved)

See also: Recorder Mode , Importing Files, Exporting Files, Cut/Copy/Paste commands


Importing Files

Standard .WAV files are binary files containing a header followed by a block of data samples. The .WAV file header contains information about the sampling rate, number of channels, and number of bits per sample. Stereo files are interleaved (L,R,L,R...).

The import feature allows you to import raw digitized data from an external source and create a .WAV file from the contents. In order to properly build the WAV file header, you must specify the sampling rate represented by the data and the destination sampling format is.

File Formats:

  • ASCII Integer - File is readable with any text editor. For mono files, each line contains a single sample value. For stereo files, each line contains both the left and right sample values separated by a comma.
  • ASCII Float - File is readable with any text editor but the values are converted to floating point format (e.g. 21.034). For mono files, each line contains a single sample value. For stereo files, each line contains both the left and right sample values separated by a comma.
  • Binary 8 bit - 8 bit integer values.
  • Binary 16 bit - 16 bit integer values.
  • Binary 32 bit - 32 bit integer values.
  • Binary floating point - 32 bit floating point values.

Expected Sample Values:

  • 8 bit WAV data: 0...255
  • 16 bit WAV data: -32767...+32767
  • 24 bit Wav data -8388607...++8388607

File Header Options:

If the data file contains a header, you can specify the size of this header in lines (ASCII file) or bytes (binary file). This header data will be skipped during the import process.

Data Scaling:

  • If "rescale" is checked, the program will determine the maximum and minimum values contained in the file and rescale all values to optimally fit within the selected sampling precision.
  • If "truncate" is checked, the program will accept all values as is and truncate those which exceed the specified sampling precision.
  • Define Actual Data Values and Units - use this option if you know the units contained in the data file. This will create the calibration parameters for properly scaling the data file.

See also: Working with audio files, Exporting Files, Sampling Format, Sampling Rate


Exporting Files

This feature allows you to export a .WAV file to a variety of file formats. These files can then be used with a spreadsheet, mathematical processing program, or you custom application.

Decimation - this allows you to "down-sample" the wave data prior to exporting.

Destination File Formats:

  • ASCII Integer - File is readable with any text editor. For mono files, each line contains a single sample value. For stereo files, each line contains both the left and right sample values separated by a comma.
  • ASCII Float - File is readable with any text editor but the values are converted to floating point format (e.g. 21.034). For mono files, each line contains a single sample value. For stereo files, each line contains both the left and right sample values separated by a comma.
  • Binary 8 bit - 8 bit integer values.
  • Binary 16 bit - 16 bit integer values.
  • Binary 32 bit - 32 bit integer values.
  • Binary floating point - 32 bit floating point values.

Output Sample Values:

  • 8 bit WAV data: 0...255
  • 16 bit WAV data: -32767...+32767
  • 24 bit WAV data: -8388607...+8388607

Notes:

  • When exporting stereo files, the channels are interleaved starting with the left channel.
  • Binary files are much more efficient than text files; ASCII text format is not recommended for large files.
  • If you wish to export a small time segment from within a large .WAV file, use the time series view to specify the selected segment and then use the <Edit> <Copy> menu item to place the segment on the clipboard. Next, close the file and create a new file by pasting in the selected time segment using the <Edit> <Paste Insert> menu command. Then export this smaller WAV file.
  • Exporting a 16 bit WAV file to either a ASCII or Binary 8 bit file will rescale the data to fit within the 8 bit sample range.

See also: Working with audio files, Importing Files , Sampling Format, Cut/Copy/Paste Commands


File Options

File options allow you to control how .WAV files are stored and accessed.

Access modes:

  • RAM - All Wave data must fit in the available RAM.
  • Hard Disk - Wave data is recorded and played back directly from your hard disk. This allows much greater recording times. You can specify the maximum recording size in megabytes (wave files can store up to 2 GB of data in a single file - the corresponding time depends upon the sampling format).

Make Backup:

This option applies to hard disk access mode only. When this option is checked, a temporary backup file will be created so that original file contents can be restored if necessary. Use the <File><Set Paths> menu command to specify the directory to be used for these temporary files. All backup files are removed when the application closes.

Include Calibration Data in Wave file

If this option is enabled, the calibration parameters will be included in the WAV file and reloaded when the file is opened again. This is enabled by default. The calibration parameters will not add significantly to the file size. Most applications that work with WAV files wil not have a problem with this additional data but many will not preserve the cal data when saving the file. The only reason you should need to disable this option is if you encounter an application that has problems reading WAV files with the calibration data.

Include Time Stamp Wave file

If this option is enabled, time stamp information is stored in the file. This is based on the PC time when the recording was started.

Apply Time Stamp to Plots

If enabled, the time stamp information will be used on the time axis of the Time Series, Spectrogram and 3-D Surface plots.

Include Metadata in Wave file

If this option is enabled, user supplied metadata is stored in the file. Click the <Edit><Metadata> menu to enter or view the metadata.

Prompt for Metadata when saving file

If enabled, the <Edit><Metadata> dialog box will be displayed when saving a wave file for the first time.

Automatically reopen Wave files when program launches

If enabled, the analyzer will reopen any wave files that were left open when the program exits.

Real Time Mode Data Buffering

This option allows you to control whether data is buffered in the real time mode or not. Data buffering will allow the spectrogram or 3-D surface views to be redrawn to correspond to changes in scaling parameters or plot size and allows you to use the right click action menus to perform additional processing. In addition, you can convert this data buffer to a WAV file for further processing in the post-processing or recorder modes. This option is enabled by default and should prove useful in most situations. Turning this option off will result in a slight performance gain but this gain is minimal with adequate memory and hard disk space. The data buffering will use the same file access method (RAM or Hard Disk) as selected above.. The default buffer length is 60 seconds but can be changed as necessary.

Continuous Recording Capability

When Hard Disk recording is used and the maximum file size limit is reached, the program will momentarily stop recording, save the file and then start recording again in a new file. If the file is does not yet have a name, the program will give it a name using the computer date and time. The file will be stored in the \wave folder as specified in the <File><Set Paths> dialog. This feature applies to the hard disk recording mode only.

Example: c:\speclab\wave\recording_2002_11_26_102011.wav

(in this example the date and time were 10:20:11 Nov, 26 2002 when the file was saved)

Notes:

  • When working with small files, RAM access will provide faster performance. Hard Disk access is preferred for larger files.
  • During hard disk recording sessions, do not perform other disk intensive operations (such as opening a major application). Although Windows is a multitasking operating system, it relies on the cooperation of individual applications and cannot guarantee immediate access to system resources.

See also: Working with audio files, Recorder Mode


File Decimate

This feature allows you to reduce the sampling rate (decimate) of the current .WAV file by a user specified ratio. Enter the decimation ratio you wish to use; the new sampling rate will be displayed.

You will then be prompted for the .WAV filename in which to save the results.

Note:

You may wish to apply a low-pass filter to the data prior to decimating.


File Merge

This feature allows you to combine two single channel .WAV files (mono) into a dual channel (stereo) .WAV file. This feature is useful for performing dual channel processing operations on tests made at different times.

You must close any open .WAV files and be in either the Recorder or Post Processing mode for the Merge command to be available. You will be prompted for the files to be used for the left and right channels. The resulting stereo .WAV file will be created and opened for you.

The source files for each mono file must have identical sampling rates and precision .


Set Paths

This option allows you to customize the default file directories for each of the file types utilized by the software.

Set or Create All Paths - this allows you to easily change all the file paths without having to edit each one. If the specified folder is not found it will be create along with the underlying data folders.

Set Defaults - restores the data paths to their original installed location (typically \My Documents\User\SpectraPLUS_SC)


Configuration Files

The <Config> menu contains commands which allow you to save the current analyzer configuration and to load previously stored configurations from disk. In addition, you can print a list of the current analyzer settings for documentation purposes.

Configuration files contain all analyzer options as well as position and size information for each open view. The default file extension for configuration files is .CFG. The file is in same standard ASCII text format used for WIN.INI and SYSTEM.INI files.

See also: Working with audio files,


Cut/Copy/Paste commands

The Cut/Copy/Paste commands are used to place the contents of the active view onto the clipboard. The format of the resulting clipboard data differs depending on the active view:

View Cut Copy Paste

Spectrum N/A ASCII table N/A

Phase N/A ASCII table N/A

Time Series .WAV format .WAV format .WAV format

Spectrogram .WAV format .WAV format .WAV format

3-D Surface .WAV format .WAV format .WAV format

When using the Time Series, Spectrogram, or 3-D Surface views, you must first select the time segment which you want to edit. To do this, simply click the selection arrow tool on the left edge of the view toolbar. Next, click and drag across the plot area with the left mouse button to highlight the time segment you wish to edit. At this point the Edit commands will be enabled to allow you to select the desired operation. These commands are always disabled when in the real-time mode since no underlying data exists.

The .WAV format is compatible with any application which supports .WAV files.

The ASCII table format produces two columns of numbers with the bin frequency in the left column and the amplitude or phase in the right column. The columns are separated by a tab. You can then paste this data into a spreadsheet or text editor for further analysis. It is also compatible with both the spectral overlay and mic compensation file formats.

The <Undo> <Edit> command allows you to reverse the most recent editing action. This includes the: <Edit> <Cut, <Edit <Paste Over>, <Edit <Paste Insert> and <Edit Filter> commands.

See also: Working with audio files, toolbar


Play/Play Special commands

The Play and Play Special menu commands allow you to playback a selected time segment so you can hear it through your speakers.

You must first select the time segment which you want to edit. This can be done from either the Time Series, Spectrogram, or 3-D Surface views. First, click the selection arrow tool on the left edge of the view toolbar. Next, click and drag across the plot area with the left mouse button to highlight the time segment you wish to edit. At this point the Edit commands will be enabled and allow you to select the desired operation.

The <Edit> <Play> menu item plays the selected segment through the speaker port on your sound card; it performs the same action as clicking on the tool containing the small speaker icon on the view toolbar.

The <Edit> <Play Special> menu has four choices:

Loop - continuously plays the selected time segment (click the Stop button to cancel).

Half speed - plays the selected time segment at 1/2 the normal sampling rate.

Double speed - plays the selected time segment at 2 times the normal sampling rate.

Arbitrary speed - plays the selected time segment at the user specified sampling rate

See also: Working with audio files, toolbar


Filtering

To filter a .WAV file, you must first select a time segment. This is done from either the Time Series, Spectrogram, or 3-D Surface view. Click the selection arrow located on the view toolbar and then click and drag the mouse across the desired time segment. This segment will then be displayed in inverse video. Once the time segment has been selected, press the filter button on the toolbar or select the <Edit><Filter> menu command. The filtering parameter dialog box will then allow you to select the frequencies to be filtered.

There are five filter types:

  • Low Pass - passes all frequency components below the specified cutoff frequency and attenuates all components above it.
  • High Pass - passes all frequency components above the specified cutoff frequency and attenuates all components below it.
  • Band Pass - passes the specified band of frequencies and attenuates all others.
  • Notch - rejects the specified band of frequencies and passes all others.
  • Custom - applies the specified filter response file to the data.

Filter Sharpness - the number of filter taps (coefficients) directly affects the sharpness of the filter response and how closely it matches the ideal response. More taps produce a sharper filter response but require more processing time.

Filter Gain - allows the overall gain to be adjusted. Enter a value in dB; use a positive value to increase the gain, negative to decrease.

Building a filter response file:

  • Run the NOTEPAD.EXE application, spreadsheet or word processor that can produce a standard ASCII text file.
  • Enter two columns of numbers representing the filter response curve.
  • The left column contains the frequency in Hertz.
  • The right column contains the offset in decibels
  • Enter the information in ascending frequency order.
  • Separate the columns with a tab character.

Example:

---------------------------

100.0 -10.0

500.0 -5.0

1000.0 0.0

2000.0 2.0

10000.0 -5.0

15000.0 -15.0

Enter as many as32,768 pairs of numbers; at least 3 pair are required. The analyzer will use a cubic spline algorithm to interpolate between these data points for each frequency in the spectrum. Any line with a semicolon in the first column will be treated as a comment line and ignored. By convention, filter response files have an extension of .FLT.

Note:

Filter Response files, Microphone Compensation files, and Overlay files have identical formats and can be interchanged. This is useful if you want to verify that you have entered the filter response table correctly. To do this, simply select load the filter response file into one of the overlays for display.

The default folders used for storing the various files used by SpectraPLUS-SC can be customized by clicking on the <File>< Set Paths > menu item.

See also: Working with audio files, toolbar


Mute

Muting a time segment will set the values to zero.

To mute a segment of a .WAV file, you must first select a time segment. This is done from either the Time Series , Spectrogram , or 3-D Surface view. Click the selection arrow located on the view toolbar and then click and drag the mouse across the desired time segment. This segment will then be displayed in inverse video. Once the time segment has been selected, select the <Edit><Mute> menu command. The samples corresponding to the selected time segment will be set to zero.

Notes:

The <Edit><Undo Edit> menu command will restore the data to its original values.

See also: Working with audio files , toolbar


Select All

The Select All menu command will cause the contents of the time series , spectrogram and 3-D Surface views to be selected (highlighted) for additional editing.

Notes:

If you wish to select the entire .WAV file for editing, first use the Zoom Out Full button on the time series toolbar. You may also need to increase the maximum zoom limit in the time series options dialog.

See also: Working with audio files , toolbar


Gain Adjust

To adjust the gain of a .WAV file, you must first select a time segment. This is done from either the Time Series , Spectrogram , or 3-D Surface view. Click the selection arrow located on the view toolbar and then click and drag the mouse across the desired time segment. This segment will then be displayed in inverse video. Once the time segment has been selected, select the <Edit><Gain Adjust> menu command. You will then be prompted enter the the amount of gain in decibels (dB) to add or subtract. Click the OK button to perform the adjustment.

DC Offset

To adjust the DC Offset of a .WAV file, you must first select a time segment. This is done from either the Time Series , Spectrogram , or 3-D Surface view. Click the selection arrow located on the view toolbar and then click and drag the mouse across the desired time segment. This segment will then be displayed in inverse video. Once the time segment has been selected, select the <Edit><DC Offset> menu command. You will then be prompted enter the the amount of DC Offset to add or subtract. The offset is entered in units according to the current calibration settings. Click the OK button to perform the DC Offset.

Notes:

The <Edit><Undo Edit> menu command will restore the segment to its previous value.

See also: Working with audio files , toolbar


Metadata

Metadata can be stored in the wave file. Click the <Edit><Metadata> menu to enter or view the metadata.

Metadata is a block of up to 2000 ascii text characters that can be used for notating test conditions or other comments about the wave file.

A wave file must be open in order to edit or view metadata. If you are in the Recorder mode you must start a recording before you can enter metadata.

The option "Show this dialog box before saving wave file" will cause the analyzer to automatically prompt for metadata when saving a new recording.

Note: The metadata can be printed on the comments section of the plots - see the <File><Annotation and Margins> dialog box.


Real-Time Mode

In the real-time mode, the program acquires an FFT sized block of digitized sound data directly from the sound card, computes the spectrum and displays the results. The program will continuously acquire new data, average it with previous data, and display the results until stopped. The toolbar contains controls to allow you to modify the averaging and peak hold while running.

By default, the last 60 seconds of digitized audio data is stored in a temporary buffer. Switching to the Recording or Post Processing modes will allow you to convert this buffer into a WAV file for further processing.

Single step operation:

Pressing the <Enter> key will perform a single FFT measurement and then automatically stop the analyzer. The current average is not reset during single step operations.

Notes:

Depending upon the speed of your CPU, the selected sampling rate and FFT size, the computer may not be able to perform an FFT on the current data block and display the results before the next block is available. In this case, there will be gaps in the processed data. To perform gap free analysis, simply record the audio segment and analyze the data using the post-processing mode.

Often it is useful to run the analyzer in the Real Time mode while making preliminary measurements and then switching over to the Recorder mode before making the final measurements.

See also: Basic Operation , Performance Issues , Settings


Post-Processing Mode

The post-processing mode allows you to analyze a previously recorded WAV file. The priority is given to spectral updates and the data is not played back through the speakers. For playback, use the recorder mode, or the Play/Play special commands.

This mode provides greater control over the processing than the Recorder or Real-Time modes. There will be no gaps in the processed data, and you can "stretch" the time axis on the Spectrogram and 3-D Surface Plots by performing overlap processing . In addition you can edit and playback selected time segments which allows in-depth analysis not possible in the real-time mode.

When a .WAV file is opened, the sampling rate and format are changed to match the rate at which the file was recorded - the Sampling Rate must remain constant within a single .WAV file. The current sampling rate is always displayed in the status bar along the bottom of the application.

Single step operation:

Pressing the <Enter> key or (+) will perform a single FFT measurement and then automatically stop the analyzer (single step measurement). The current average is not reset during single step operations.

Pressing the minus key (-) will cause the analyzer to step backwards in the file. The step size used corresponds to the current overlap percent setting.

Time Series plot must have the "focus" for these special keystrokes to function.

See also: Basic Operation , Overlap Percentage, Performance Issues , Working with Audio Files


Recorder Mode

This mode is similar to the Windows "Sound Recorder" utility in the Accessories group in that it allows you to record and playback sound files. Unlike "Sound Recorder" however, you have control over the sampling format and sampling rate. The program will also display the spectrum of the signal while recording or playing although priority is given to the recording process.

When using the RAM file access mode, the program will attempt to allocate enough memory for the recording and will reduce the recording length if not enough memory is available. The recording length is specified in the File Options dialog box.

When using the Hard Disk file access mode, the program will record and playback directly from your hard disk. Temporary files are created during hard disk recording. Use the <File><Set Paths> menu command to specify the directory to be used for these temporary files. All temporary files are removed when the application closes.

The amount of memory required for each minute of audio varies widely depending upon the sampling rate and sampling format. Some typical values for mono recording are shown below (multiply the values by 2 for stereo recording):

Sampling Rate (Hz) Sampling Precision (bits) Bytes/Minute

11,025 16 1,323,000

22,050 16 2,646,000

44,100 16 5,292,000

44,100 24 7,938,000

96,100 24 17,280,000

When a .WAV file is opened, the sampling rate and format are changed to match the rate at which the file was recorded - the Sampling Rate must remain constant within a single .WAV file. The current sampling rate is always displayed in the status bar along the bottom of the application.

Continuous Recording Capability

Wave files can store up to 2 GB of data in a single file (the corresponding time depends upon the sampling format). When this limit is reached, the program will momentarily stop recording, save the file and then start recording again in a new file. If the file is does not yet have a name, the program will give it a name using the computer date and time. The file will be stored in the \wave folder as specified in the <File><Set Paths> dialog. This feature applies to the hard disk recording mode only.

Example: c:\spectra\wave\recording_2002_11_26_102011.wav

(in this example the date and time were 10:20:11 Nov, 26 2002 when the file was saved)

Important:

During hard disk recording sessions, do not perform other disk intensive operations (such as opening a major application). Although Windows is a multitasking operating system, it relies on the cooperation of individual applications and cannot guarantee immediate access to system resources.

See also: Basic Operation , Sampling Rate, Device Options , Working with Audio Files


Time Series View

This view displays the raw digitized audio data and is similar to an oscilloscope display with the amplitude shown on the vertical axis and time on the horizontal axis.

When you are using the Real-Time mode, the plot will display the last 60 seconds of acquired data. In the Recorder or Post-Processing modes you may zoom and scroll through the entire data file using the toolbar and scrollbar controls. The horizontal scaling is in seconds relative to the start of the file. Double clicking with the left mouse button anywhere in the plot will move the current file position to the pointer location. In addition, the spectrum corresponding to the new pointer location will be computed and displayed in the spectrum view.

In the Recorder or Post-Processing modes you may zoom and scroll through the entire data file using the toolbar and scrollbar controls. The horizontal scaling is in seconds relative to the start of the file. Double clicking with the left mouse button anywhere in the plot will move the current file position to the pointer location. In addition, the spectrum corresponding to the new pointer location will be computed and displayed in the spectrum view.

Toolbar Controls

Time Series Display Options

Cursor Measurements

Right Click Action Menus

See also: Performance Issues


Spectrum View

This view is a 2 dimensional plot of the spectrum. The horizontal axis shows the frequency in Hertz (Hz). The vertical axis shows the amplitude of each frequency line. The amplitude scale can be modified using the calibration option.

The total number of available spectral lines is always equal to the FFT size / 2. Thus for a 1024 point FFT, there will be 512 spectral lines. The measurement will always start at 0 Hz and extend to 1/2 of the selected Sampling Rate divided by the Decimation Ratio.

The maximum displayed spectrum is limited on the low and high ends. The lowest 3 bins contain a DC component and are not displayed; the top 1% of the span often contains alias components and therefore is not displayed.

The zoom buttons on the toolbar allow you to easily adjust the displayed span within the available measurement span; however, the FFT algorithm requires that all frequency lines must be computed regardless of whether or not they are displayed.

The mouse can be used to directly measure the frequency and amplitude information directly off the plot. In addition, the <Edit><Copy> menu item will place the current spectral data on the clipboard in tabular format. This can be directly pasted into any spreadsheet or text file.

Toolbar Controls

Spectrum Display Options

Spectral Overlays

Cursor Measurements

Right Click Action Menus

See Also: Scaling , Measurement Accuracy , Performance Issues


Phase View

This view displays the phase of the signal versus frequency. It is most useful when examining the phase difference between the right and left channels. To do this, select the "stereo" option in the settings dialog box and then choose the " Transfer Function " option.

The frequency scaling is governed by the current scaling options. The zoom controls located on the toolbar can be used to adjust the displayed frequency span anywhere within the measurement range.

The mouse can be used to measure the frequency and phase information directly off the plot. In addition, the <Edit><Copy> menu command will place the current phase data on the clipboard in tabular format. This can then be directly pasted into any spreadsheet or text file.

The phase is greatly affected by the choice of smoothing window. Selecting "Uniform" will produce the cleanest phase response.

Toolbar Controls

Phase Display Options

Cursor Measurements

Right Click Action Menus

See Also: Scaling , Measurement Accuracy , Performance Issues


Spectrogram View

This view displays the spectral data over time with the amplitude shown in color. For some users, this display is difficult to interpret, but with a little practice it is one of the most useful displays available for spectral analysis. Simply think of it as if you were looking down on the 3-D Surface plot and that the amplitude is shown in color. The color bar to the right of the plot shows the amplitude/color relationship.

Double clicking the left mouse button within the spectrogram will display the corresponding spectral and time series data in their respective views.

Toolbar Controls

Spectrogram Display Options

Cursor Measurements

Right Click Action Menus

See Also: Scaling , Measurement Accuracy


3-D Surface Plot View

3-D Surface View

This display is a perspective view of the spectral data over time. Frequency is shown on the X-axis and time on the Y-axis. This view is useful for visualizing the dynamics of the spectral data.

Double clicking with the left mouse button within the plot will display the corresponding spectral and time series data in their respective views (if they are open).

Toolbar Controls

3-D Surface Display Options

Cursor Measurements

Right Click Action Menus

See Also: Scaling , Measurement Accuracy


Settings

Click the Options | Processing Settings menu and click on the Settings tab or click the FFT toolbar button. The dialog box contains the following options:

Sampling Rate

Decimation Ratio

FFT Size

Smoothing Windows

Sampling Format

Averaging Settings

Peak Hold

Overlap Percentage

Dual Channel Processing Options

Cross Channel Delay

Overload Detection

SpectraDAQ-200 hardware special features


Scaling

Click the Options | Processing Settings menu and click on the Scaling tab or click the scaling toolbar button.

You can control the scaling method for both the frequency and amplitude axis. These selections apply to all displays except the Time Series display and the Y axis on the Phase display.

Amplitude Axis Scaling

Frequency Axis Scaling

Power Spectral Density (PSD)

Standard Frequency Weighting

Microphone Compensation

Independent Channel Scaling

When the "Independent Scaling and Calibration" option is selected in the Settings dialog box, the scaling control dialog box will change to display separate parameters for each channel and each channel will be plotted in a separate window. This allows you to use two completely different types of scaling at once. For example you can configure the analyzer to show accelerometer data scaled in G's in one channel and 1/3 octave data scaled in SPL from a microphone in the other.

See Also: Measurement Accuracy Dual Channel Processing


Markers

Markers are used to highlight specific frequencies of interest.

Click the "Mrk" button on the Spectrum plot toolbar to access the marker settings dialog box.

Labels can be applied to the markers. If custom labeling is selected, you may enter up to 30 characters of text.

Markers can also be set graphically by clicking the right mouse button in the spectrum view. This will bring up the Right Click Action Menu . Choosing one of the "Set Marker #" commands will set the marker frequency corresponding to the mouse click position. The "Clear All Markers" option will simply hide all markers; they can be reactivated by enabling them in the <Options><Markers> dialog box.


Triggering

Click the Options | Processing Settings menu and click on the Triggering tab or click the trigger toolbar button.

When triggering is enabled, the processor will test the current data block for a trigger condition before performing an FFT.

Trigger Mode: Controls the behavior of the analyzer after a trigger event occurs:

  • Rearm and wait for next trigger - the analyzer will pause and continue to examine the incoming data stream for the presence of a trigger condition. This is the default behavior.
  • Stop the analyzer - the analyzer will stop after the first trigger has been detected and processed.
  • Continue running or recording - the analyzer will continue to run normally after the first trigger condition has been detected and processed. If the analyzer is stopped and restarted, it will once again wait for another trigger event.

Trigger Channel: controls which input channel to check for a trigger event.

Trigger Type:

  • Level triggering - the analyzer will test the current data block for a time series data value which exceeds the specified threshold.
  • Edge triggering - the analyzer will test the current data block for a sharp transition (difference in level between any two samples exceeds the threshold setting). This is useful for triggering on pulse type signals.

Trigger Polarity: controls whether the trigger threshold is a positive or negative value.

Threshold: Sets the trigger threshold. The threshold units correspond to the current calibration units. Note: You can also set the threshold by right clicking on the Time Series plot.

Trigger Delay/Type: can be used to adjust the acquisition window within the FFT block. Pre-delay will move the trigger point to the right, post-delay to the left. If the delay is set to zero, the trigger point is positioned at the start of the FFT data block. The delay value can be specified in milliseconds or as a percent of the FFT size.

Prompt User to Accept/Reject Trigger Waveform - if enabled the trigger waveform will be displayed and the user will be prompted to accept or reject the trigger event from being included in the spectral average. This is helpful for impact hammer testing to exclude double strkes from the measurement. The smoothing window will be applied to the displayed waveform.

Start signal generator on initial trigger event - this will delay the start of the signal generator until the first trigger event is detected. The signal generator utility must be open when the analyzer is started for this option to take effect. Please note that due to operating system latencies the exact time between the trigger event and the start of the generator cannot be precisely controlled.

Notes:

External triggering can be performed by utilizing one of the channels for data and the other for the trigger pulse. Select the appropriate trigger channel in the trigger dialog box and then setup the analyzer to only display the spectrum of the data channel.

Caution!

When triggering is enabled, the processor may appear not to work if the signal stays below the threshold. Check the status bar along the bottom edge of the program for the current mode.


Calibration

Click the Options | Processing Settings menu and click on the Calibration tab or click the calibration toolbar button.

By default, the analyzer shows the relative power levels where 0dB is the strongest possible 8, 16 or 24 bit signal. You can calibrate the analzyer to a variety of engineering units; there are three calibration methods:

1) External Reference Signal

This method requires an external signal with a known level.

Procedure:

  • Connect a steady state reference tone to the input of the sound card (do not use a DC level or noise signal).
  • Enter the reference signal level in the edit control (you can use an oscilloscope or voltmeter to measure the signal level at the input to the sound card).
  • Select the reference signal type: "Peak", "RMS" or "Peak to Peak" as appropriate (e.g. voltmeters produce RMS values).
  • Select the applicable units for the input reference signal or enter custom labels.
  • Select the desired Display mode: "Peak", "RMS" or "Peak to Peak".
  • Press the "Measure Input Signal" button. The analyzer will acquire several seconds of input data and compute the corresponding scale factors for each channel.

Note: The "Measure from Wave File" button will compute the calibration scale factors from an existing wave file. This is useful in cases where you only have a recording of the reference signal - please note that this recording must have been made with the same input gain for the results to be meaningful.

2) Internal Hardware Calibration

This method requires the SpectraDAQ-200 hardware.

Select the desired engineering units (Volts, Millivolts or dBu).

3) Directly to Transducer Sensitivity

This method requires the SpectraDAQ-200 hardware.

Select the desired transducer type (microphone, accelerometer, hyrdophone).

Enter the transducer sensitivity from the datasheet provided by the transducer manufacturer. The analyzer will convert the detected voltage to the corresponding engineering units based on this sensitivity.

Converting Acceleration to Velocity or Displacement

If you are calibrating to acceleration the "Convert Spectrum To:" field will be enabled and allow you convert the spectrum to velocity or displacement. These conversions do not apply to the time series display.

Additional Notes:

You may customize the labels by directly modifying them in the edit box.

You may save the calibration settings in a file and reload them as needed. The current calibration settings are always saved in configuration files and restored when loaded.

Digiducer USB Accelerometer - if this device is installed and selected as the input device, a special button will be shown that will read the embedded calibration values directly from the device.

Quick Calibration - If you Right Click on the spectrum plot a menu will popup. The option "Set Calibration to 0 dBr at this Frequency" will quickly set the 0 dBr reference.

Very Important - Most sound cards provide a mixer utility to allow you to set the input gain of the sound card. If the input gain is changed, the calibration is no longer valid.

Note: If you change the SpectraDAQ-200 input voltage range the analzyer will automatically recalculate the internal calibration values for you. This applies for all calibration methods when the SpectraDAQ-200 hardware is used

Independent Channel Calibration

When the "Independent Scaling and Calibration" option is selected in the Settings dialog box, the calibration dialog box will change to display separate parameters for each channel and each channel will be plotted in a separate window. This allows you to use two completely different types of scaling at once. For example you can configure the analyzer to show accelerometer data scaled in G's in one channel and 1/3 octave data scaled in SPL from a microphone in the other.

See also: SpectraDAQ-200 , Scaling, Microphone Compensation Settings , Dual Channel Processing


Run Control

Click the Options | Processing Settings menu and click on the Run Control tab or click the "Run Ctrl" toolbar button.

The Run Control options are used by the analyzer in all modes.

Click the <Options><Processing Settings> menu (or press F4) and select the "Run Control" tab to access the input device settings. You can also click the "Run Ctrl" toolbar button to access these settings.

Run continuously until Stop button is pressed: this selection is the normal operation and allows the analyzer to run or record continuously until stopped

Stop after N FFT's have been processed: causes the analyzer to automatically stop after the specified number of FFT's have been performed.

Stop after N seconds of data have been processed: causes the analyzer to automatically stop after the specificied time limit has expired.

Delay processing until N seconds have elapsed: causes the analyzer to discard the initial time period. This is useful for avoiding startup transients in some test scenarios.

Start all other copies of SpectraPLUS-SC that are open on this computer: causes the analyzer to send a run command to all other instances of the analyzer. This allows you to run multiple copies of the analyzer on the same computer to increase the channel capacity. Please note that each instance must have a difference input device selected for this to feature to work. When this option is enabled the Run or Record button will be outlined in red.

Enable the Spacebar key to toggle between Run and Stop: allows quick run/stop control from keyboard.

Analyzer Update Interval: Controls the time between each FFT update. Allows you to "slow down" the analyzer to better view the spectral changes over time. Enter the interval in milliseconds. This feature is only available in the Post Processing Mode.


Device Options

Click the Options | Processing Settings menu and click on the I/O Device tab or click the I/O toolbar button.

This allows you to select a specific sound card if more than one is installed in your system. The maximum sampling rate and precision are shown for the selected device.

The Input Device is used by the analyzer when Recording or running in the Real Time mode. The Output Device is used by the analyzer to Playback a .WAV file or to generate a test signal using the Signal Generator Utility.

Adjust Input/Output gain - this will launch the Mixer utility provided with the operating system. This allows you to adjust the sensitivity of the line in or mic inputs. The output gain settings control the playback/generator volume. Not all sound cards allow the gain/volume to be controlled.

Sound Card Driver Mode

Controls the type of driver used to access the hardware:

Standard Windows Multimedia Driver (MME) - this is the standard used by the Windows operating system and supported by the majority of sound cards. It is very stable and provides support for a full range of sampling rates by converting the physical sampling rate of the hardware to match the desired rate. In some cases this sampling rate conversion can introduce spectral artifacts.

Audio Stream Input Output (ASIO) - this is a standard developed by Steinberg Media Technologies GmbH and allows direct access to the hardware. This mode allows low level access to the sound card hardware. The supported sampling rates are limited but there is very low "latency" involved because of the direct hardware access. Not all sound cards provide ASIO drivers.

Note: When ASIO mode is used the signal generator cannot be started and stopped independently of the main analyzer.

SpectraDAQ-200

When the SpectraDAQ-200 is selected as the input device the following options are available

Input Range: This allows you to set the maximum input voltage for the A/D converters. If you change the input range the calibration will automatically apply the correct gain to the measurement. The input range is applied to both channels.

IEPE power: You can enable IEPE power (4ma constant current) for powering microphones, accelerometers and other IEPE compliant transducers. This eliminates the need for an external power supply and simplifies the setup and wiring.

IEPE is equivalent to ICP (a trademark of PCB Electronics).

Enable Live Monitoring: This will route the input channels to the ouput channels to allow you to listen to the signal while the analyzer is running. This is disabled if the signal generator utility is open. This feature only works with the ASIO driver mode.

Put SpectraDAQ-200 into low power mode when program closes: The DAQ requires significant power due to the professional quality electronics and uses USB 3.0 for this reason. You can have the DAQ go to a low power standby mode - this will save power when using a laptop of tablet. It will take slightly longer to startup and shutdown.

For best performance use the ASIO driver mode when the SpectraDAQ-200 hardware is selected.

See Also: SpectraDAQ-200 , Calibration


Signal Generator

The signal generator utility operates in conjunction with the playback (D/A) channel of any Windows compatible sound card to produce a variety of test signals. Selecting the <Utilities><Signal Generator> menu command or pressing the F11 key will launch the signal generator.

Basic Operation

  • Select the type of waveform you wish to generate by clicking on the list of waveforms.
  • Click the "Details" button to modify the specified waveform (not all waveform types have user options).
  • Click the "Level" button to specify the generator output level .
  • Click the "Run" button to start the generator.
  • When the generator is running, the window will change to show only a single "Stop" button.

Waveform types

White Noise

Pink Noise

Noise Burst

1 kHz Tone

Multiple Tones

Tone Burst

IMD Test Tones

Frequency Sweep

Frequency Step

Level Sweep

Sawtooth

Triangular

Pulse

Square

User Defined

DTMF

Digital Zero

Signal Accuracy

The accuracy of the signal is partly determined by the sound card itself. The accuracy of the sampling rate clock in the card will govern the accuracy of the frequency characteristics. In addition, many sound cards will not generate DC components. These cards are "AC coupled" and as such, intentionally filter out or reject any DC component.

Lock Signal Generator Channels

This menu option locks the left and right channels so that the selected left channel signal is routed to both the left and right channels.

See Also: Generator Output Level , Device Options , Save Signal To Wave File,


Save Signal To Wave File

This menu command creates a .WAV file from the current signal generator waveform. The signal generator must be activated before you can use this command.

You will be given the option of modifying the length of the resulting wave file by repeating the signal multiple times; you will then be prompted for the filename that will contain the waveform data.

See Also: Signal Generator , User Defined Waveform


Peak Frequency

The peak frequency utility will display the frequency of the strongest spectral component in the entire span (not just what is displayed). This utility window can be resized as required by the user and its contents will update anytime a new spectrum is computed. If the analyzer is configured to display the spectrum of both the left and right channels, this utility window will also show the value for both channels. The left channel value will appear above the right channel value.

If Peak Hold is enabled the utility window will have separate columns for Live and Peak Hold - the text color will match their respective trace colors on the plot.

Notes:

The contents of any open utility window will be printed on the right margin of the spectrum view .


Peak Amplitude

The peak amplitude utility will display the amplitude of the strongest spectral component in the entire span (not just what is displayed). This utility window can be resized as required by the user and its contents will update anytime a new spectrum is computed. If the analyzer is configured to display the spectrum of both the left and right channels, this utility window will also show the value for both channels. The left channel value will appear above the right channel value.

If Peak Hold is enabled the utility window will have separate columns for Live and Peak Hold - the text color will match their respective trace colors on the plot.

Notes:

The contents of any open utility window will be printed on the right margin of the spectrum view.


Total Power

The total power utility will display the total RMS power level for the entire spectrum and is equal to the total power bar on the right side of the spectrum view. The weighting (Flat, A, B or C) used for this utility is set under the Scaling options dialog box. This is equivalent to the readings on a Sound Level Meter with calibrated to units of SPL.

This utility window can be resized as required by the user and its contents will update anytime a new spectrum is computed. If the analyzer is configured to display the spectrum of both the left and right channels, this utility window will also show the value for both channels. The left channel value will appear above the right channel value.

If Peak Hold is enabled the utility window will have separate columns for Live and Peak Hold - the text color will match their respective trace colors on the plot.

Notes:

The contents of any open utility window will be printed on the right margin of the spectrum view.


Total Harmonic Distortion

Real world audio devices introduce unwanted side effects called distortion in addition to the desired response. Total Harmonic Distortion (THD) and (THD+Noise) are two widely used measurements of this quantity. Both measurements are expressed as a percentage. The lower the THD value, the "cleaner" the response.

Total Harmonic Distortion (THD) - the ratio of the harmonic power to the fundamental power. It is computed by searching the entire spectrum to find the peak frequency (fundamental) and then calculating the total power in the harmonic frequencies. The THD level is then computed as the ratio of the total harmonic power to the fundamental power. Residual noise is not included in this calculation.

Total Harmonic Distortion + Noise (THD+N) - the ratio of the harmonic power plus noise to the fundamental power. It is computed by searching the entire spectrum to find the peak frequency (fundamental) and then calculating the total power in the remaining spectrum (harmonics plus noise). The THD level is then computed as the ratio of the total harmonic+noise power to the fundamental power.

THD+N values will almost always be greater than the THD values for the same signal.

A typical THD measurement will use a 1kHz reference test tone. This reference signal is passed through the audio device under test and its spectrum computed. It is often useful to employ long term averaging to cancel the random noise components and enhance the measurement accuracy.

It should be noted that the purity of both the sound card and the reference signal must exceed the device being measured if meaningful results are to be expected. The purity of the signal generator is directly dependent on the THD of the sound card used.

This utility window can be resized as required by the user and its contents will update anytime a new spectrum is computed. If the analyzer is configured to display the spectrum of both the left and right channels, this utility window will also show the value for both channels. The left channel value will appear above the right channel value

Notes:

  • Hanning or Blackman smoothing window is recommended because of its low noise quality.
  • An FFT size of 2048 or greater is recommended in order to to provide adequate spectral resolution.
  • The contents of any open utility window will be printed on the right margin of the spectrum view.

See Also: Measurement Accuracy , Application Notes - Total Harmonic Distortion, , THD+N vs Frequency


THD+N vs Frequency

The THD+N versus Frequency utility will generate a stepped frequency signal using the selected output device and compute and display a THD+N vs Frequency plot. This utility allows you to quickly and conveniently measure the distortion characteristics of your device over a range of frequencies.

To start the utility click on the <Utilities><THD+N vs Frequency> menu or click on the "THD Freq" button on the toolbar. The utility will produce a stepped frequency sweep which provides the stimulus for the measurement. It must be connected from the output of the sound card to the device under test (DUT). The output of the device is then connected to the input of the sound card. During the test, no operator intervention is required. The computer performs all the ncessary steps and plots the results across the audio band.

Once the results have been analyzed, the plot can be viewed, printed and stored to disk. Right clicking on the plot will also popup a menu of options allowing you to place the data or plot image on the clipboard for use in other applications.

Options

The THD+N vs Frequency options dialog box can be activated by clicking on the "Options" button along the right side of the plot area. This dialog box allows you to change the frequency span, display color scheme and a number of other useful options:

Start and Stop Frequencies - this sets the frequency limits of the measurement. The stop frequency must be less than 1/2 of the current sampling rate used on the main analyzer settings.

Channels - select left only or both left and right.

THD Type - Choose the distortion measurement type (THD or THD+Noise)

Signal Output Level - sets the test signal output level in dB full scale. 0.0 dB is the signal level produced when a 100% full scale sine wave is generated. Because most sound cards have the ability to control the output volume, "full scale" is not necessarily the same thing as the "maximum possible" signal level unless the volume control is set to its maximum value.

Frequency Step size - select a specific linear step size in Hz or octave scaling (1/1 thru 1/96). The stepped sine takes between 1 and 2 seconds per frequency step - decreasing the step size will increase the time required to perform the test.

Spectral Weighting - sets the spectral weighting used for the computations.

Plot Top - this sets the uppermost point for the amplitude axis. The value is entered as a percentage.

Plot Bottom - this sets the lowermost point for the amplitude axis. The value is entered as a percentage.

Frequency Axis Scaling - this sets the scaling format for the frequency axis.

Amplitude Axis Scaling - this sets the amplitude axis scaling format.

Test Limits - this lets you specify a file containing limits for each channel. The limit data will show as a separate trace. The limit file format is the same as the overlay and mic files and is a simple ASCII text file with two tab delimited columns of numbers; the first column contains the frequency and the second column contains the THD limit. The values must be in increasing order by frequency.

Prompt to Save - controls whether or not you will be prompted to save the data before starting a new test.

Notes:

a) You must use the internally generated stepped frequency signal as the source.

b) The only main analyzer settings that are used for this utility are as follows:

  • Device selection
  • Sampling Rate
  • Sampling Precision


InterModulation Distortion (IMD)

InterModulation Distortion (IMD) is a measure of the distortion caused by the interaction (mixing) of two tones.

When multiple signals are injected into a device, undesired modulation or mixing of these two signals can occur. The IMD level is calculated by first computing the frequencies and amplitudes of the two strongest tones in the spectrum. The total power in each of the intermodulation product frequencies is then computed. IMD is the ratio of the intermodulation power to the rms sum of the tone power.

A typical IMD measurement will use tones at 250 Hz and 8020 Hz with the higher frequency tone reduced by 12dB (4:1 ratio) below the low frequency tone. It is often useful to employ long term averaging to cancel the random noise components and enhance the measurement accuracy.

This utility window can be resized as required by the user and its contents will update anytime a new spectrum is computed. If the analyzer is configured to display the spectrum of both the left and right channels, this utility window will also show the value for both channels. The left channel value will appear above the right channel value.

Notes:

  • Hanning or Blackman smoothing window is recommended because of its low noise quality.
  • An FFT size of 4096 or greater is recommended in order to to provide adequate spectral resolution for the IMD measurements
  • The contents of any open utility window will be printed on the right margin of the spectrum view.

See Also: IMD test tones


Signal to Noise Ratio (SNR)

The Signal to Noise Ratio (SNR) is the ratio of the signal peak power level to the total noise level and is expressed in decibels (dB).

The SNR is computed by searching the entire spectrum to find the peak frequency and then calculating the total noise power in the remaining spectrum. The SNR is then computed as the ratio of the noise power to the peak power and expressed in decibels.

This utility window can be resized as required by the user and its contents will update anytime a new spectrum is computed. If the analyzer is configured to display the spectrum of both the left and right channels, this utility window will also show the value for both channels. The left channel value will appear above the right channel value.

Notes:

  • Hanning or Blackman smoothing window is recommended because of its low noise quality.
  • An FFT size of 2048 or greater is recommended in order to to provide adequate spectral resolution.
  • The contents of any open utility window will be printed on the right margin of the spectrum view.

See Also: SINAD , NF


Signal to Noise and Distortion (SINAD)

SINAD is a common sensitivity measurement normally associated with FM receivers. It is an acronym for Signal plus noise and distortion and is equal to (S+N)/N in our system. It is expressed in dB. If the signal is much stronger than the noise then SINAD value approaches the SNR value. Otherwise SINAD will be greater than the SNR.

This utility window can be resized as required by the user and its contents will update anytime a new spectrum is computed. If the analyzer is configured to display the spectrum of both the left and right channels, this utility window will also show the value for both channels. The left channel value will appear above the right channel value.

Notes:

  • Hanning or Blackman smoothing window is recommended because of its low noise quality.
  • An FFT size of 2048 or greater is recommended in order to to provide adequate spectral resolution.
  • The contents of any open utility window will be printed on the right margin of the spectrum view.

See Also: SNR , NF


Noise Figure (NF)

The Noise Figure (NF) is a measure of the signal-to-noise degradation by a component under test. It is expressed in dB.

The Noise Figure is a two channel measurement similar to a Transfer Function where the input is compared with the output. In the case of the Noise Figure, it is the difference between the SNR at the output and the SNR at the input of the device. An ideal device has a Noise Figure of 0 dB; practical devices always have a larger Noise Figure than this.

A sinusoidal input test signal such as a 1kHz tone should be used as the source. The Noise Figure can be setup as either "Left vs Right" or "Right vs Left". If the input signal is on the right channel and the output on the left, you should use "Left vs Right" otherwise the Noise Figure will be negative.

This utility will only be available when the analyzer is setup for dual channel operation (stereo) under the <Options><Settings> dialog box.

This utility window can be resized as required by the user and its contents will update anytime a new spectrum is computed.

Notes:

  • Hanning or Blackman smoothing window is recommended because of its low noise quality.
  • An FFT size of 2048 or greater is recommended in order to to provide adequate spectral resolution.
  • The contents of any open utility window will be printed on the right margin of the spectrum view.

See Also: SNR , SINAD


Delay Finder

The delay finder utility will compute the delay between the left and right channels. This delay can be displayed in milliseconds, feet or meters. Pressing the button labeled "Apply to Processing Delay" will then use this computed delay value as the new cross channel processing delay . This processing delay is the same value as displayed in the <Options>< Settings > dialog box.

Positive values mean that the left channel is delayed relative to the right channel.

Negative values mean that the right channel is delayed relative to the left channel.

The cross channel processing delay setting does not influence the value computed with the delay finder.

Options

Pressing the "Options" button on the delay finder utility panel will bring up additional options:

Display Delay Values In: - You can choose to display the delay value in milliseconds, feet or meters.

Speed of Sound - The speed of sound is used to convert the delay value between milliseconds and feet or meters. Because the speed of sound varies with temperature and pressure, you may want to customize this value to meet your conditions. Typically the speed of sound at room temperature is 1130 ft/sec - this is the default value used by the program.

You can measure the actual speed of sound by making an initial measurement in milliseconds (T1) and then moving the microphone exactly one foot away and taking a second measurement (T2). The speed of sound can then be computed as follows:

Speed of Sound (ft/sec) = 1000 / (T2 - T1)

Maximum Delay - This parameter controls the maximum resolvable delay. Longer delays take more processing time.

Typical Operation

Connect a microphone to the left input channel.

Connect a sample of the mixer output signal to the right input channel.

Play a pink or white noise signal though the mixer.

Run the analyzer to start the delay finder.

Allow the measurement to settle for a moment. The delay value should remain relatively constant.

Press the "Apply" button to use this delay value as the current processing setting.

Notes:

  • The delay finder will only operate in the Stereo mode; it will shut itself down if you are running in the Mono mode.
  • Program material (such as music) can be used instead of white or pink noise; however best results are obtained with a white or pink noise source.


Stereo Phase Scope

This utility allows you to evaluate the stereo imaging of the two input channels. This is a very useful tool for sound reinforcement applications; use this scope when adjusting the L/R pan control and optimize the placement of the various instruments/vocals in the stereo sound field.

Display Options:

The phase scope display options dialog box can be activated in several ways:

  • Selecting the <Options> <Phase Scope Display> menu item.
  • Double clicking anywhere in the phase scope plot.
  • Right clicking anywhere inside the phase scope plot and selecting the <Phase Scope Display Options> menu item.

Colors: The color of each plot feature can be changed. Only solid colors can be selected. The "Default" button will restore the initial colors settings.

Format: These options allow you to modify the displayed data:

Stereo Image Scope - displays the phase in a manner consistent with a sound stage with center as a vertical bar and left and right out at +/- 45 degrees.

  • Lissajous (X/Y) Left vs Right - displays the phase data with the left channel on the horizontal axis and the right channel on the vertical axis to correspond to a typical oscilloscope X/Y format.
  • Lissajous (Y/X) Right vs Left - displays the phase data with the Right channel on the horizontal axis and the Left channel on the vertical axis to correspond to a typical oscilloscope Y/X format.


Reverberation Time

The Reverberation Time utility allows you to measure and analyze the reverberation decay time and spectral characteristics of an acoustic environment. Reverberation is the sound you hear after an initial burst of energy. This measurement, called RT-60 is a standard method of characterization for concert halls and auditoriums and is the time it takes the sound to decay to 60 dB below its original level.

The Reverberation utility includes an internal pink noise generator which provides the stimulus for the RT-60 measurement. It must be connected from the output of the sound card through a power amplifier to a high-quality loudspeaker in the room. Typically only one loudspeaker is used for the test (rather than an array of speakers). The amplifier output level should be adjusted so that it is loud enough to "saturate" the environment because the louder the initial sound, the more accurate the resulting RT-60 curves; however, the level should not be so high as to clip the power amplifier or produce distortion from the loudspeakers.

During the test, no operator intervention is required. The computer performs all the ncessary steps to produce a family of decay curves across the audio band. First it activates the noise source long enough to saturate the environment (that is, an equilibrium is reached between direct and reverberant sound throughout the room). Then the sound is turned off and the decay of the signal captured and the reverberation response analyzed in detail.

To use an signal source other than the internal pink noise such as a ballon pop or gunshot follow the steps below:

1) Use the Recorder mode to capture the signal and subsequent decay.

2) Examine the waveform using the Time Series view and graphically select the signal and the decay; to do this click the selection arrow and then click and drag the mouse across a range of time. When the mouse button is released, the selected time segment will be shown with inverse video.

3) Right click on the time series plot and select the "Compute and Display RT-60" menu item.

4) The Reverb Time utility will open and the results computed and displayed.

5) You can fine tune the time at which the utility will start the decay time calculation by changing the value in the Start Offset control on the toolbar or by right clicking on the decay plot at the desired time offset and selecting the "Set Decay Start Time" menu. This will recompute the results based on the new decay start point. The offset can also be set in the reverberation options dialog box.

Once the reverberation signal has been captured and analyzed, a series of plots can be viewed, printed and stored to disk. Right clicking on the plot will also popup a menu of options allowing you to place the data or plot image on the clipboard for use in other applications.

Reverberation Plots

Reverb Times - this is a bar graph of reverberation time versus frequency band. 1/3 Octave bands from 80 Hz to 20 kHz are available. In addition a "wideband" or broadband value is shown on the right side. The analyzer defaults to displaying the RT-60 decay time; however, you can change this to display the decay time for RT-10 through RT-60 by using the associated control on the toolbar. In addition double clicking on one of the bars will show the Reverberation Decay plot for the selected frequency band.

Reverb Decay - this is a graph of the reverberation decay versus time for a specific frequency band. You can change the selected frequency band using the associated control on the toolbar and you can change the displayed time limit by using the associated control on the toolbar; this allows you to zoom in to view the early decay time for instance.

3-D Surface - this is a 3 dimensional surface plot of the reverberation decay; it shows the reverberation response for all frequencies in a single plot. Double clicking on the plot will display the decay plot for that particular band. You can also adjust the displayed time limit by using the associated control on the toolbar.

Reverberation Options

The reverberation options dialog box can be activated by clicking on the "Options" button along the right side of the plot area. This dialog box allows you to can change the color scheme used for the various plots as well as a number of other useful options:

Frequency Resolution: You can select either 1/1 Octave or 1/3 Octave.

Maximum Decay Time - this controls how long the analyzer will "listen" for the reverberation decay signal. This value should be set so that it is greater than the maximum expected decay time (you can always zoom in to display a shorter time period). Setting it to a longer time than necessary will not cause a problem but will require additional processing time and also increase the reverb file size.

Decay Start Time Offset - this allows you to make small adjustments to the initial start point for the decay calculation. Some technicians prefer to ignore the first 100 milliseconds or so of the initial decay. This value can be set directly using the associated toolbar control, in the reverb options dialog box, or by right clicking on one of the Decay plots at the desired time offset and selecting the menu command "Set Decay Start Time". If the offset is non zero you can right click at anytime and select "Clear Decay Start Time Offset" to reset the offset back to zero.

Clear offset when test is run or file is loaded - automatically sets the decay start time delay to zero whenever a new test is run or existing reverb file is loaded.

Extrapolation Method - in a typical acoustic test, it is rare that the difference between the pink noise level and the ambient background level is 60dB or more and because of this we must extrapolate the actual RT-60 time from the earlier decay times. This allows you to change the extrapolation method between RT-10, RT-20, and RT-30. RT-20 is the default setting. If you change this setting, the reverb times will be recomputed and the Reverb Time plot updated.

Smoothing Method - because of the complex nature of reverberation, the response often contains both diffuse reverberation as well as strong reflection components from hard surfaces. The resulting decay plot may appear quite irregular and it is useful to employ smoothing techniques to achieve a better estimation of the reverberation time. You can disable smoothing by choosing "None" or choose between "Average" and "Schroeder". The Average method is a 100 msec moving window that is applied to the decay data. The Schroeder method applies a reverse integration to the decay data starting at the RT-60 time and working backwards in time. The analyzer defaults to using the Average method. If you change this setting, the decay data will be recomputed and the displays will be updated.

Plot Colors - adjust these as desired

Plot Top - this sets the uppermost point for the amplitude axis in both the Reverb Decay Plot and the 3-D Surface Plot.

Plot Range - this sets the overall range for the amplitude axis in both the Reverb Decay Plot and the 3-D Surface Plot.

Typical Reverberation Times - the following plot shows the typical RT-60 times for various environments.

Notes:

The reverberation data is "normalized" so that the actual starting amplitudes are all adjusted to 0 dB. You may find that if you do not have sufficient signal amplitiude at certain frequencies, the decay curve for these frequencies will appear almost as a flat line with little or no decay.

The analysis method used in this utility has a 10 millisecond resolution. This resolution is not affected by the maximum decay time parameter or any other setting.


Equivalent Noise Levels

The Leq analysis window calculates the Leq values as the analyzer runs.

Leq(t) - the equivalent noise level converted to the user specified "reference time period". For example, selecting a 3.6 second time segment of 90 dBA noise and specifying a reference time period of 1 hr (3600 sec) produces an equivalent noise level of 60 dBA.

Leq - the equivalent noise level for the selected time segment.

Lsel - the equivalent noise level converted to a 1 second period.

Lpk - the peak level for the selected time segment. No averaging is used for this parameter.

Lmax - the maximum level for the selected data.

Lmin - the minimum level for the selected data.

L10 - the level exceeded 10% of the time.

L50 - the level exceeded 50% of the time.

L90 - the level exceeded 90% of the time.

Click the "Options" button to set the options for these calculations. You can select the averaging and weighting as needed.

Calculation Interval: determines the time period for recomputing the noise values.

Specific Intervals: Leq values will be recalculated at the specified interval

When the Analyzer Stops: Leq values will only be recalculated when the analyzer "Stop" button is pressed. All data contributes to the Leq values from when the analyzer starts to when it stops. (no values will be available until the analyzer stops).

Notes:

The Leq and LeqT values match if the same time sample is used (as well as averaging and weighting). The LeqT reference time period is set directly in the Leq options dialog box. The Leq time period equals the time period from when you press the analyzer's Run button to when you press the Stop button. For example if you set the LeqT reference time to 60 seconds and run the analyzer in the realtime mode for 60 seconds the Leq and LeqT values will be the same (or very close). The calculation interval allows you to set the time at which the values are calculated and displayed but does not change the Leq time period itself. As in the above example if you set the calculation interval to 4 seconds you will see the LeqT and Leq values slowly converge as you reach 60 seconds.

The current Calibration settings and Microphone Compensation settings (if enabled) are used for these calculations.

See Also: Right Click Action Menus , Averaging Types ,


Cumulative Sound Exposure Level (cSEL)

cSEL is the cumaltive sound exposure level and is often used for monitoring loud sound event such as pile driving for impacts on marine mamals.

The measurement is performed on the time series data (the spectral data is not used) and is displayed in logarithmic units (e.g dB SPL).

Click the <Utilities><Cumulative Sound Exposure Level> menu to open the utility. Click the Options button to set the alert thresholds and other parameters.

Options

Reset cSEL value each time the analyzer runs - this will automatically clear the exposure level when the Run or Record button is pressed.

Cumulate cSEL until Reset button is manually pressed. The cSEL value will continue to accumulate until you press the "Reset" button on the utility window. This allows you to pause and then continue the measurement or recording without resetting the current value and is useful for determining the value over a long period of time. In addition you can post process multiple files to determine the total cSEL of all the files

Threshold Limits - once this value is reached the numeric readout on the utility window will be displayed in red. The alert beep will also be played if it is enabled. A button to control the alert beep is also on the utility window for convenience.

Notes:

- The alert beep is played through the default playback sound device that is used for operating system alerts and notifications. You can set the default device in the Windows control panel.

- cSEL can also be plotted on the time series plot - select the desired time span, right click and use the <Compute the Cumulative Sound Exposure Level> menu.

- Right click on the cSEL utility window and a menu will popup. This allows you to copy the values to the clipboard and also set the cSEL starting value - this is useful if you need to continue from a previous measurement.

See Also: Right Click Action Menus


Data Logging

Data logging allows you to produce output text files containing selected spectral parameters along with a timestamp showing when the event occurred. A separate file is written for each enabled channel.

Options

Enable Logging: controls the overall logging status.

Filename Format: selects the filename format to use for each channel. You can also directly specify the filename to be used.

Overwrite Existing file: if a file with the same name already exists it will be overwritten/

Append to Existing file: if a file with the same name already exists, new data will be apended.

Include Time Stamp in first column: if selected, a time stamp will be written for each line in the log file

Include Header on first row: if selected, a descriptive header row will be written on the first line of the file.

Viewer Program: Select the name of the text editor you wish to use for viewing the data logging output files. The output data is always written in tab delimited ASCII text. Notepad is the default but Excel can be used if installed on your system.

Logging options for each channel

Output Data Type: Check one or more of the the data items you want to write to the log file.

Logging Interval: Determines how often the spectral data is logged to the output file.

As Often As Possible - write the parameters to the data logging file every FFT update. The update interval depends on the FFT size and other processing settings.

Specific Intervals - write the parameters to the data logging file at the selected interval.

Reset Spectral Average each interval - resets the spectal averaging after writing the parameters to the logging file. This is useful for logging the average spectral data for just the specified interval. For example: set the spectral average size to Infinite and the interval to 1 second - it will log the one second average and then reset the average for the next interval.

Reset Peak Hold each interval - resets the peak hold spectrum after writing the parameters to the logging file. This is useful for logging the Peak Hold spectral data for just the specified interval. For example: set the Peak Hold value to Forever and the interval to 1 second - the data logging will contain the peak spectral values for the one second interval. It will then reset the Peak Hold for the next interval.

Threshold Conditions - allow you to only output data if a condition has exceeded a threshold. For example: log the vibrational frequency and level if the specified level is exceeded. Time stamp data will also show the times at which the level was exceeded.

Apply - check this box to enable threshold condition testing

Threshold Level - enter the level at which the parameter must exceed before logging will occur. Use the units corresponding to the calibration and amplitude scaling for the channel.

Threshold Type - select the specific parameter that will be tested against the threshold level. Logging will only occur if the value exceeds the specificed threshold level.

Threshold conditions are useful and allow you to only log exceedences. For example: log the vibrational frequency and level if the specified level is exceeded. Time stamp data will also show the times at which the level was exceeded.

Set Markers - allows you to quickly set the marker frequencies used for some of the data logging parameters

Copy these settings to all channels - quickly apply the current selections to other channels

View Output File: Opens the current data log file using the specified viewer program.

View Data Logging Folder: Opens the data log folder using Explorer so you can manage your data log files. The default folder is set in the <File><Set Paths> menu.

Notes: Use caution when logging the entire spectrum values for large frequency ranges. The resulting data file will be very large. Use the Marked Spectrum option to limit the frequency range.

Output example:

Data Logging On: Fri Sep 30 10:43:41 1995

Time Freq(Hz) Amplitude(dB)

--------------------------------------------------------------

10:43:41 527.56 -45.60

10:43:42 495.26 -54.03

10:43:43 495.26 -49.83

10:43:44 1399.66 -59.01

10:43:48 1399.66 -59.14

10:43:49 516.80 -56.38

10:43:50 549.10 -53.37

10:43:51 624.46 -43.66

10:43:52 559.86 -37.96


Alerts

Click the <Utilities><Alerts> menu to open the window containing alert responses. You can also click the [image] button on the toolbar.

Click the "Settings" button on the bottom left of the window to setup the alerts:

There are separate alert setting for each channel.

Enable Alerts for this channel - this will enable alert detection for this channel.

Alert Criteria

Alert Condition - drop down the list box to select the desired condition to test for an alert - these include comparing the spectral data against the overlays in a variety of ways.

Threshold Level - enter the threshold level at which the alert will occur. The overlay comparison conditions do not use the threshold level.

Duration - enter the duration in seconds that the signal must exceed the threshold before an alert is declared.

Set Markers - allows quick access to set the maker frequencies for conditions that use them. Note that the markers do not need to be enabled.

Alert Actions

Beep via PC speaker - this will cause a repeating beep tone to emit from the PC speakers. Please note that the Windows sound settings determine the default device for PC sounds. If the PC speakers are muted or the volume is low you will not hear the audible alert.

There is a corresponding enable beep button on the utility window to allow you to quickly turn on or off the audible alerts.

Set Digital Output Line state on the SpectraDAQ-200 - this will set one of the digital output lines for controlling external equipment, relays or lights.

Alert Message Text - Customize the alert messages as needed for your test application. These are displayed in the utility window. The message will be red when the alert criteria is exceeded.

Alarm Duration - Controls how long you want the alert to persist after the signal falls below the alert threshold.

Notes

The Alert Utility window must remain open for alerts to be processed.

The Alert Utility can be resized so that the messages can be easily viewed from a distance.


Licensing

This software is copy protected using one of the following methods:

  • A "Software Key" contained on the hard drive
  • A "Hardware Key" which is plugged into the computer's USB or Parallel Port
  • A "Network Hardware Key" which is plugged into this or another computer on the network
  • A License Key stored on the SpectraDAQ-200 data acquisition module

You can examine the license status at any time by selecting the <License><Status and Authorization> menu command. A list of all available options and their current license status will be displayed. The program defaults to using the Software Key method; Hardware Keys can be purchased as a option for users who need to frequently transfer the license between computers or who simply prefer having a tangible physical key.

Software Key Method

This method uses a "Site Code" and "Authorization Key" technique which restricts the operation to a specific computer. No Hardware Key is required.

The "Site Code" is a number which is unique to your computer and is used to generate the matching "Authorization Key" to enable program operation. Because the Site Code is computer specific, we cannot provide you the corresponding Authorization Key until you send us your Site Code. This Site Code is easily obtained by selecting the <License><Status and Authorization> menu command clicking the "Authorize" button.

Click the "Authorize" button to display the "Site Code" unique to your computer. Click the "Print Site Code" button to print a page containing the site code which you can fax to your software vendor. When you receive your authorization key, return to this dialog box and enter the key. Please note that the Site Code will not change when you exit the program.

Adding additional options to the Software Key

Additional product options can be added to the Software Key in the field. Contact your software vendor to purchase the options or upgrade and provide them with the current "Site Code"; you will then be given a new "Authorization Key". Go to the <License><Status & Authorization> menu and click the "Authorize" button and enter the Authorization Key; this will update the Software Key license information with the new options..

Transferring the Software Key to another computer

To transfer the Software Key, Go to the <License><Status & Authorization> menu and click the "Transfer Key" button and follow the instructions. There are two basic transfer methods: 1) directly over a local network connection, and 2) using a floppy diskette or a USB memory stick. Both methods require that you first install a copy of SpectraPLUS-SC on the computer to which will be receiving the license. Please note that method 2) requires that the floppy disk or USB memory stick first be "registered" using the UNLICENSED copy of SpectraPLUS-SC. After registering the Software Key can be transferred "Out" using the LICENSED copy of SpectraPLUS-SC and then transferred "In" using the UNLICENSED copy.

Because transferring the Software Key requires access to both computers involved in the transfer this is not always a practical solution. If you regularly transfer the license between computers, or if the computers are at different geographical locations, a Hardware Key may offer greater convenience. Please contact your software vendor to obtain a Hardware Key.

Hardware Key Method

This method uses a physical hardware device also known as a "dongle". This hardware key is delivered with the software and is preprogrammed with the options you have purchased.

  • The Hardware Key can be either a USB or Parallel port type.
  • You must install the Hardware Key device driver before the program will detect the key.
  • The Hardware Key device driver is provided on the installation CD-ROM. You must login as administrator when installing the driver; once installed you can login using your normal user account.

Adding additional options to the Hardware Key

Additional product options can be added to the Hardware Key in the field. Contact your software vendor to purchase the options or upgrade; you will then be given a "Field Activation Key". Go to the <License><Status & Authorization> menu and click the "Authorize" button and enter the Activation Key; this will update the Hardware Key license information with the new options..

Network Hardware Key Method

This method also uses a USB or Parallel Port hardware key device but contains the ability to manage multiple licenses over the network. The Network Hardware Key allows multiple users to be running the software simultaneously and only one Network Hardware Key is required. The Key is preprogrammed with a user limit that, once reached, will not allow additional copies to run until other copies are shutdown. If a machine running SpectraPLUS-SC crashes or is detached from the network, it will not have a chance to release its license; however, the license server will automatically release the license if communications are lost for more than about 5 minutes or so.

The Network Hardware Key can be installed on any machine on the local network but requires the installation of a "License Server" device driver. This "License Server" component is provided with the Network Key and only needs to be installed on the machine containing the Network Hardware Key. All other machines that will be running SpectraPLUS-SC only need to have the normal Hardware Key device driver installed.

  • The SpectraPLUS-SC software must be installed on each local machine
  • The standard Hardware Key driver must be installed on each local machine
  • One of the machines in the network must have the Network Hardware Key installed and is designated the "license server".
  • The "license server" does not have to be a true "server" but can simply be one of the computers in a peer to peer network.
  • The "license server" hardware key device driver must be installed on the machine with the Network Hardware Key.

Additional network options allow you to specify a specific server and protocol but in most cases selecting the option labelled "Automatically find the license server on the network" should be used.

A Monitoring Tool is provided with the License Server to allow the administrator to check the number of copies in use.

SpectraDAQ-200 Method

This method requires the SpectraDAQ-200 data acquisition module. The license information is read directly from the device. The SpectraDAQ-200 must be connected to the computer and the drivers installed but does not need to be the selected device for the license to be accessed.

Adding additional options to the SpectraDAQ license

Additional product options can be added to the license in the field. Contact your software vendor to purchase the options or upgrade; you will then be given a "Field Activation Key". Go to the <License><Status & Authorization> menu and click the "Authorize" button and enter the Activation Key; this will update the license information stored on the SpectraDAQ-200 hardware module.


Macro Command Processor

This utility allows you easily to automate measurements, collect data, save files and output results using a simple programming language. The macro command processor uses the underlying DDE ( Dynamic Data Exchange ) syntax and capabilities but does not require a third party application such as Visual Basic. It provides more flexibility than the data logging utility but without the complexity of Visual Basic. This is not intended to be a comprehensive programming language - Visual Basic or other external application should be used if more complex control logic is needed.

The macro utility window contains a built in text editor; however, macro files are simple ASCII text files. The file size is limited to 32KB.

Quick Run Buttons

This optional toolbar allows you to define and label up to 6 buttons that will automatically launch an associated macro file. Very useful for quick test access.

Macro Control Statements:

1) Send - the Send statement must be followed by one of the DDE commands ; it will send this DDE command to the analyzer. The square brackets are required. For example,

Send [Run]

will send the [Run] command to start the analyzer.

2) Output - the Output statement must be followed by one of the DDE request items ; it will then write this item to the current macro output text file. For example,

Output Peak Frequency

will write the current peak frequency value to the output file.

3) SetOutputFile - this statement will set the name of the current output file; all subsequent Output statements will be written to this file until this statement is used again. For example,

SetOutputFile c:\temp\my_spectral_data.txt

If you do not use this command in your macro script, the Output data will be written to the default output filename as specified in the macro options dialog box.

4) OutputComment - this statement will simply write the text that follows it to the output file. For example,

OutputComment Starting Data Collection

will write the string "Starting Data Collection" to the output file.

5) Wait - this statement will cause the macro to wait until the specified time has elapsed before continuing. There are several variations of this command:

WaitSeconds 4

will wait for four seconds. The wait time can be a floating point number such as 0.25 (250 milliseconds).

WaitTopOfMinute

will wait for the top of the next whole minute.

WaitTopOfHour

will wait for the top of the next whole hour.

WaitClock 1415

will wait until the system clock reaces 1415 (14:15 or 2:15 PM). Leading zeros are required e.g. (0903)

WaitDate 12/04/2002

will wait until December 4, 2002. Leading zeros are required.

If you need to wait until a specific hour on a specific day simply use the WaitDate command followed by the WaitClock and WaitSeconds commands as needed.

WaitMessageBox text

Will display a Message Box window with the text you supply and wait for the user to press Ok.

6) Loop, LoopEnd - this statement pair allows you to iterate through a series of statements. For example,

Loop 10

Send [Run]

WaitSeconds 30

Output Spectrum

Send [Stop]

WaitSeconds 3600

LoopEnd

will execute the commands between the two Loop statements 10 times; in this case it will run the analyzer for 30 seconds, output the spectral data, then stop and wait one hour. This will repeat 10 times.

Nested loops are not supported.

7) Label, GoTo, Return - these statements allow you to jump to a specific labeled line in the macro file and return. For example,

Label StartPoint

.

. more macro statements...

.

GoTo StartPoint

The above statements will cause the macro command processor to jump to the line labelled "StartPoint".

GoTo CollectData

Label CollectData

.

. more macro statements

.

Return

This will cause the macro command processor to jump to the line labelled "CollectData". The "Return" statement will cause the macro to jump to the line just after the GoTo CollectData call. This allows you to implement simple functions. Up to 10 levels of nested GoTo/Return statements (functions) are supported

8) ; - if the first character on a line is a semicolon, that line will be ignored. Use this for adding comments to your macro script.

9) AutoDateTime - if this command is embedded in any command that requires a filename, it will be expanded to the current date and time. For example, if the following command was used on Nov, 26 2002 10:20:11,

SetOutputFile c:\temp\SPL_data_AutoDateTime.txt

will set the output file to c:\temp\SPL_data_2002_11_26_102011.txt

This feature also works with the DDE commands that use a filename such as [File Save ]. It also works with the OutputComment statement (e.g. OutputComment Starting at AutoDateTime).

10) MacroEnd - will cause the macro command processor to stop.

Other Notes:

Leading or trailing spaces are ignored.

Passing in a macro filename on the command line will start the macro automatically. To do this create a shortcut to SpectraPLUS-SC and edit the command line in the properties dialog for the shortcut. For example c:\specplus\bin\specplus.exe c:\specplus\macro\MyTest.mac


Dynamic Data Exchange (DDE)

Dynamic Data Exchange (DDE) allows other applications to "talk" to SpectraPLUS-SC -applications can send commands to the analyzer and request data in return. This powerful feature allows you to build custom signal processing solutions using SpectraPLUS-SC.

Overview:

DDE is supported by all major spreadsheet programs, databases and programming languages. We recommend using Visual Basic for Applications (VBA) which Microsoft has incorporated into the latest versions of all their major applications. This provides a very flexible yet easy to learn macro language which is consistent across their entire product line. Note - DDE has support has been removed from Visual Basic (v5.0 and up); however Excel still supports DDE through VBA (Visual Basic for Applications).

DDE support consists of two major types of operations - Commands and Data Requests.

Commands are actions messages such as "Run" and "Stop" which are sent to SpectraPLUS-SC for control purposes.

Data Requests are messages such as "THD" or "Spectrum" which cause SpectraPLUS-SC to send the corresponding data values to the requesting application.

Establishing a DDE Hot Link automatically:

It is possible to set up what is known as a "hot link" wherein SpectraPLUS-SC will send an "advise" message whenever it has computed new data values. When the application receives this advise message it should then request the corresponding data. A hot link can be quickly established using the external application's <Paste Special> or <Paste><Link> menu command. For example, to establish a hot link with Excel, perform the following steps:

Highlight the Spectrum View in SpectraPLUS-SC.

Click on the <Edit><Copy> menu command in SpectraPLUS-SC

Go to Excel, highlight a destination cell and click on the <Edit><Paste Special> menu command.

Click "Paste Link" as the source type and press Ok.

At this point a "DDE hot link" will be established. Whenever the spectral data changes, the spreadsheet contents will update immediately. Any cells computed from these spectral values will be recomputed.

Estabishing a DDE link manually:

Before an application can "talk" to SpectraPLUS-SC it must first initiate what is known as a "DDE conversation". When initiating a conversation, the program must know the name of the DDE server and the topic. When requesting data, the name of the item must be known. All available Item names for SpectraPLUS-SC are documented as follows:

DDE Server name:

"Specplus"

Topic names Supported:

"Data"

DDE Commands

DDE Data Request Items

Examples


DDE Commands

Analyzer Control

[Run] Starts the Analyzer

[Run ##] Runs the Analyzer and stops after ## FFT's are performed

[Single Step] Performs a single FFT and stops.

[Go To ##] Go to the specified time within the WAV file (## = time in seconds)

[Go To Sample ##] Go to the specified sample index within the WAV file (0 based index)

[Stop] Stops the Analyzer

[Rewind] Rewinds to the start of WAV file

[Fast Forward] Jumps to the end of the WAV file

[Record] Records new WAV data at current file position

[Pause Recorder] Pauses recording but allows analyzer to continue running

[Resume Recorder] Resumes a paused recording

[Play] Plays WAV file from current position

[Play Segment $ &] Play WAV segment (#=start time in seconds, &=stop time in seconds)

[Apply Filter # &] Apply filter to wave file (#=start time in seconds, &=stop time in seconds)

[Set Filter Channel #] Set which channels to filter (0=Left only, 1=Right only, 2=Both left and right)

Modes

[Mode Real Time] Changes to Real Time mode

[Mode Recorder] Changes to Recorder mode

[Mode Post Processing] Changes to Post Processing mode

File Operations

[File Open FILENAME.WAV] Opens specified WAV file

[File Open FILENAME.CFG] Opens specified configuration file

[File Open FILENAME.CAL] Opens specified calibration file

[File Open FILENAME.MAC] Opens and runs the specified macro file.

[File Open FILENAME.RVB] Opens the specified reverb file.

[File Open FILENAME.THD] Opens the specified thd vs frequency file.

[File Open FILENAME.FLT] Sets the specified filter response file as the custom filter file

[File Save FILENAME.WAV] Saves current WAV file with specified filename

[File Decimate FILENAME.WAV RATIO] Decimates and saves WAV file with specified filename and decimation ratio

[File Merge LEFT.WAV RIGHT.WAV] Merges two mono WAV files into a single Stereo WAV file

[File Close] Closes .WAV file

[File Delete #] Deletes the specified filename (use caution - cannot be undone)

Clipboard Operations

[Cut Time Segment # &] Cut time segment to clipboard (#=start time in seconds, &=stop time in seconds)

[Copy Time Segment # &] Copy time segment to clipboard (#=start time in seconds, &=stop time in seconds)

[Paste Time Segment #] Paste time segment from clipboard (#=paste time in seconds)

[Mute Time Segment # &] Mute time segment (#=start time in seconds, &=stop time in seconds)

Settings

[Set Sampling Rate #] Sets the sampling rate where # is the value in Hertz

[Set Sampling Precision #] Sets the sampling precision where # is the value in bits per sample (8, 16, or 24)

[Set FFT Size #] Sets the FFT size

[Set Decimation Ratio #] Sets the decimation ratio

[Set Channel #] Sets the channel processing where # is one of the following:

Left, Right, Both, Average, Coherence, Transfer LR,

Transfer RL, Transfer LR+C, Transfer RL+C

[Set Delay #] Sets the cross channel delay where # is the delay time in milliseconds

[Window #] Sets the Smoothing Window type where # is one of the the window names (e.g. Blackman, Flat Top, Hamming).

[Set Average Mode #] Sets the averaging type where # is Blocks or Meter.

[Set Average Type #] Sets the averaging type where # is Exponential, Linear or Vector

[Set Average Size ##] Sets the averaging block size or speed.

If Block mode, ## = 1...1000; 1001 = Infinite.

If Meter mode 0=Off, 1=Fast, 2=Medium, 3=Slow, 4=Forever

[Reset Average] Resets running average

[Reset Overload] Resets overload status

[Set Peak Hold #] Set the Peak Hold Type where # is:

0=Off, 1=Fast, 2=Medium, 3=Slow, 4=Forever

[Set FFT Overlap ##] Sets the FFT overlap percentage (## = 0...99) Post Processing mode only

Scaling

[Set Amplitude Scaling Type #] Sets the amplitude axis scaling type where # is Linear, Log or LogMag

[Set Left Amplitude Scaling Type #] Sets the left channel amplitude axis scaling type where # is Linear, Log or LogMag (independent channel scaling only)

[Set Right Amplitude Scaling Type #] Sets the right channel amplitude axis scaling type where # is Linear, Log or LogMag (independent channel scaling only)

[Set Frequency Scaling Type #] Sets the frequency scaling axis type where # is Linear, Log or Octave

[Set Left Frequency Scaling Type #] Sets the left channel frequency scaling axis type where # is Linear, Log or Octave (independent channel scaling only)

[Set Right Frequency Scaling Type #] Sets the right channel frequency scaling axis type where # is Linear, Log or Octave (independent channel scaling only)

[Set Octave #] Sets the Octave number where # is 1, 3, 6, 9, 12 etc.

[Set Left Octave #] Sets the left channel Octave number where # is 1, 3, 6, 9, 12 etc. (independent channel scaling only)

[Set Right Octave #] Sets the right channel Octave number where # is 1, 3, 6, 9, 12 etc. (independent channel scaling only)

[Set Spectrum Weighting #] Sets the spectrum weighting where # is Flat, A, B or C

[Set Left Spectrum Weighting #] Sets the left channel spectrum weighting where # is Flat, A, B or C (independent channel scaling only)

[Set Right Spectrum Weighting #] Sets the right channel spectrum weighting where # is Flat, A, B or C (independent channel scaling only)

[Set Total Power Weighting #] Sets the Total Power weighting where # is Flat, A, B or C

[Set Left Total Power Weighting #] Sets the left channel Total Power weighting where # is Flat, A, B or C (independent channel scaling only)

[Set Right Total Power Weighting #] Sets the right channel Total Power weighting where # is Flat, A, B or C (independent channel scaling only)

[Set PSD Type #] Sets the PSD type where # is either 0 or 1.

0 is units^2/Hz

1 is units/sqrt(Hz)

[Set Left PSD Type #] Sets the left channel PSD type where # is either 0 or 1. (independent channel scaling only)

0 is units^2/Hz

1 is units/sqrt(Hz)

[Set Right PSD Type #] Sets the right channel PSD type where # is either 0 or 1. (independent channel scaling only)

0 is units^2/Hz

1 is units/sqrt(Hz)

[Enable PSD] Enables PSD

[Enable Left PSD] Enables PSD for the left channel (independent channel scaling only)

[Enable Right PSD] Enables PSD for the right channel (independent channel scaling only)

[Disable PSD] Disables PSD

[Disable Left PSD] Disables PSD for the left channel (independent channel scaling only)

[Disable Right PSD] Disables PSD for the right channel (independent channel scaling only)

[Set Mic Compensation File #] Sets the microphone compensation filename to use for both channels

[Set Left Mic Compensation File #] Sets the microphone compensation filename to use for the left channel

[Set Right Mic Compensation File #] Sets the microphone compensation filename to use for the right channel

[Enable Mic Compensation] Enables mic compensation

[Enable Left Mic Compensation] Enables left channel mic compensation

[Enable Right Mic Compensation] Enables right channel mic compensation

[Disable Mic Compensation] Disables mic compensation

[Disable Left Mic Compensation] Disables left channel mic compensation

[Disable Right Mic Compensation] Disables right channel mic compensation

Signal Generator

[Open Generator] Opens the signal generator utility

[Close Generator] Closes the signal generator utility

[Start Generator] Starts the generator

[Stop Generator] Stops the generator

[Set Generator Type Left #] Set the left channel generator signal type where XYZ is the name of the signal

type to use. Use any of the names shown in the generator's drop

down list box. Example [Set Generator Type Left Pink Noise]

[Set Generator Type Right #] Set the right channel generator signal type where XYZ is the name of the signal

type to use. Use any of the names shown in the generator's drop

down list box. Example [Set Generator Type Right Pink Noise]

[Set Generator Tone Left Freq AmpDB] Sets the left channel generator type as "multiple tones" and configures it to

produce a single tone at the specified frequency and relative

amplitude. The amplitude value must be between 0.0 and -96 dB.

Example [Set Generator Tone Left 1500 -24]

[Set Generator Tone Right Freq AmpDB] Sets the right channel generator type as "multiple tones" and configures it to

produce a single tone at the specified frequency and relative

amplitude. The amplitude value must be between 0.0 and -96 dB.

Example [Set Generator Tone Right 1500 -24]

[Set Generator Wave File Left #] Sets the left channel generator type to "User Defined" and sets the wave filename to (# = filename)

[Set Generator Wave File Right #] Sets the right channel generator type to "User Defined" and sets the wave filename to (# = filename)

[Set Generator Level Left &] Set the left channel generator output level where & is the level value.

[Set Generator Level Right &] Set the right channel generator output level where & is the level value.

Triggering

[Trigger] Forces trigger to occur

[Trigger On] Enable Triggering

[Trigger Off] Disable Triggering

[Trigger ReArm On] Enables ReArm after trigger setting.

[Trigger ReArm Off] Disables ReArm after trigger setting.

Markers

[Set Marker # xxx] Sets frequency of marker # to XXX Hz.

[Show Marker #] Shows marker #

[Hide Marker #] Shows marker #

Overlays

[Set Overlay #] Sets both left and right overlays from the current spectral data where # is the overlay number (1-7)

[Set Left Overlay #] Sets the left channel overlay from the current spectral data where # is the overlay number (1-7)

[Set Right Overlay #] Sets the right channel overlay from the current spectral data where # is the overlay number (1-7)

[Set Overlay From Peak Hold #] Sets both left and right overlays from the current peak hold spectral data where # is the overlay number (1-7)

[Set Left Overlay From Peak Hold #] Sets the left channel overlay from the current peak hold spectral data where # is the overlay number (1-7)

[Set Right Overlay From Peak Hold #] Sets the right channel overlay from the current peak spectral data where # is the overlay number (1-7)

[Show Overlay #] Shows both left and right overlays where # is the overlay number (1-7)

[Show Left Overlay #] Shows the left channel overlay where # is the overlay number (1-7)

[Show Right Overlay #] Shows the right channel overlay where # is the overlay number (1-7)

[Hide Overlay #] Hides both left and right overlays where # is the overlay number (1-7)

[Hide Left Overlay #] Hides the left channel overlay where # is the overlay number (1-7)

[Hide Right Overlay #] Hides the right channel overlay where # is the overlay number (1-7)

[Set Overlay Offset # &] Set the Offset for both channels where # is the overlay number (1-7) and & is the offset in dB.

[Set Left Overlay Offset # &] Set the Offset for the left channel where # is the overlay number (1-7) and & is the offset in dB

[Set Right Overlay Offset # &] Set the Offset for the right channel where # is the overlay number (1-7) and & is the offset in dB

[Set Overlay Legend # &] Set the legend for both channels where # is the overlay number (1-7) and & is the legend

[Set Left Overlay Legend # &] Set the legend for the left channel where # is the overlay number (1-7) and & is the legend

[Set Right Overlay Legend # &] Set the legend for the right channel where # is the overlay number (1-7) and & is the legend

[Setup Composite Overlay # &] Setup the composite overlay for both channels where # is the composite type (AVG or SUB).

If AVG the & parameter is a list of channels to include in the average.

For example [Setup Composite Overlay AVG 1 0 0 1 0 0] will include overlays 1 and 4 in the average.

If SUB the & parameter is a list of which two channels are to be subtracted.

For example [Setup Composite Overlay SUB 4 6] will subtract overlay 4 from 6

[Setup Left Composite Overlay # &] Same as above but only for the left channel

[Setup Right Composite Overlay # &] Same as above but only for the right channel

[Save Left Overlay File # &] Save the left channel overlay # to the specified filename &

[Save Right Overlay File # &] Save the right channel overlay # to the specified filename &

[Load Left Overlay File # &] Load the left channel overlay # from the specified filename &

[Load Right Overlay File # &] Load the right channel overlay # from the specified filename &

Configuration

[Save Config #] Saves the calibration parameters in the specified filename.

[Load Config #] Loads the calibration parameters from the specified filename

Calibration

[Calibrate] Calibrates the analyzer to the input signal using the current calibration parameters.

[Save Calibration #] Saves the calibration parameters in the specified filename.

[Load Calibration #] Loads the calibration parameters from the specified filename

[Enable Calibration] Enables calibration

[Disable Calibration] Disables calibration

[Calibrate to Zero dBr Left #] Sets the calibration reference point to 0.0 dBr for the left channel where # is the frequency.

[Calibrate to Zero dBr Right #] Sets the calibration reference point to 0.0 dBr for the right channel where # is the frequency.

Device Selection

[Set Input Device #] Sets the sound card device used for input where # is either the 1 based index into the device list or the exact device name

[Set Output Device #] Sets the sound card device used for output where # is either the 1 based index into the device list or the exact device name

Views

[Open Time Series] Opens the Time Series view

[Close Time Series] Closes the Time Series view

[Maximize Time Series] Maximizes the view in the overall application

[Restore Time Series] Restores the view to its normal size

[Set Time Segment # ##] Sets the start and stop time to display in the time series plot where # is the start time and ## is the stop time in seconds

[Set Time Series Plot Top #] Sets the Plot Top parameter value

[Set Time Series Plot Range #] Sets the Plot Range parameter value

[Autoscale Time Series] Sets the plot top and range based on the current data

[Clear Spectrum] Clears the Spectrum trace

[Clear Peak Hold] Clears the Peak Hold trace

[Open Spectrum] Opens the Spectrum view

[Close Spectrum] Closes the Spectrum view

[Maximize Spectrum] Maximizes the view in the overall application

[Restore Spectrum] Restores the view to its normal size

[Spectrum Freq Span # ##] Sets the start and stop frequency span to display in the Spectrum view where # is the start frequency and ## is the stop frequency in Hz

[Set Spectrum Plot Top #] Sets the Plot Top parameter value

[Set Spectrum Plot Range #] Sets the Plot Range parameter value

[Autoscale Spectrum] Sets the plot top and range based on the current data

[Set Spectrum Bar Graph] Sets display to bar graph type

[Set Spectrum Stepped Bar Graph] Sets display to stepped bar graph type

[Set Spectrum Line Graph] Sets display to line graph type

[Compute Average Spectrum # ##] Computes and displays the average spectrum for the specified time segment where # is the start time and ## is the stop time in seconds

[Compute Reverb # ##] Computes and displays the reverb (RT-60) for the specified time segment where # is the start time and ## is the stop time in seconds

[Open Phase] Opens the Phase view

[Close Phase] Closes the Phase view

[Maximize Phase] Maximizes the view in the overall application

[Restore Phase] Restores the view to its normal size

[Phase Freq Span # ##] Sets the start and stop frequency span to display in the Phase view where # is the start frequency and ## is the stop frequency in Hz

[Open Surface] Opens the Surface view

[Close Surface] Closes the Surface view

[Maximize Surface] Maximizes the view in the overall application

[Restore Surface] Restores the view to its normal size

[Surface Freq Span # ##] Sets the start and stop frequency span to display in the 3D Surface view where # is the start frequency and ## is the stop frequency in Hz

[Build Surface # ##] Builds and fills the Surface view with the spectum for the specified time segment where # is the start time and ## is the stop time in seconds

[Open Spectrogram] Opens the Spectrogram view

[Close Spectrogram] Closes the Spectrogram view

[Maximize Spectrogram] Maximizes the view in the overall application

[Restore Spectrogram] Restores the view to its normal size

[Spectrogram Freq Span # ##] Sets the start and stop frequency span to display in the Spectrogram view where # is the start frequency and ## is the stop frequency in Hz

[Build Spectrogram # ##] Builds and fills the Spectrogram view with the spectum for the specified time segment where # is the start time and ## is the stop time in seconds

[Copy to Clipboard as Bitmap] Places the contents of the currently active view on the Windows clipboard in a bitmap format

Utilities

[Open Peak Freq Utility] Opens the Peak Frequency utility window

[Close Peak Freq Utility] Closes the Peak Frequency utility window

[Open Peak Amp Utility] Opens the Peak Amplitude utility window

[Close Peak Amp Utility] Closes the Peak Amplitude utility window

[Open Total Power Utility] Opens the Total Power utility window

[Close Total Power Utility] Closes the Total Power utility window

[Open THD Utility] Opens the THD utility window

[Close THD Utility] Closes the THD utility window

[Open THD_N Utility] Opens the THD+N utility window

[Close THD_N Utility] Closes the THD+N utility window

[Open THDvsFreq] Opens the THD+N vs Frequency utility

[Close THDvsFreq] Closes the THD+N vs Frequency utility

[Start THDvsFreq] Starts the THD+N vs Frequency measurement

[Save THDvsFreq #] Saves the THD+N vs Frequency measurement results where # is the filename

[Print THDvsFreq] Print the THD+N vs Frequency plot to the default printer

[Open IMD Utility] Opens the IMD utility window

[Close IMD Utility] Closes the IMD utility window

[Open SNR Utility] Opens the SNR utility window

[Close SNR Utility] Closes the SNR utility window

[Open DelayFinder] Opens the Delay Finder utility

[Close DelayFinder] Closes the Delay Finder utility

[Apply DelayFinder] Applys the current delay finder value to the processing settings.

[Open PhaseScope] Opens the Phase Scope utility

[Close PhaseScope] Closes the Phase Scope utility

[Open Macro] Opens the macro command processor utility

[Close Macro] Closes the macro command processor utility

[Open Macro File #] Opens the specified macro filename

[Start Macro] Runs the current macro

[Stop Macro] Stops the current macro

[Open Reverb] Opens the Reverberation utility

[Close Reverb] Closes the Reverberation utility

[Start Reverb] Starts the Reverberation measurement

[Save Reverb #] Saves the Reverberation measurement results where # is the filename

[Set Reverb View Time] Sets the Reverberation utility view to show the reverb times plot

[Set Reverb View Decay] Sets the Reverberation utility view to show the reverb decay plot

[Set Reverb View Surface] Sets the Reverberation utility view to show the 3-D Surface plot

[Enable DataLogging] Enables data logging

[Disable DataLogging] Disables data logging

[Set DataLogging File #] Sets the name of the data logging output file

[Open Leq] Opens the Equivalent Noise Analysis tool

[Close Leq] Closes the Equivalent Noise Analysis tool

[Reset Leq] Resets the Equivalent Noise values.

Printing

[Set Annotation Line1 XYZ] Sets the text for annotation line 1

[Set Annotation Line2 XYZ] Sets the text for annotation line 2

[Enable Comment Block] Enables the comments when printing

[Disable Comment Block] Disables the comments when printing

[Set Comment Line1 abc] Sets the text for comment line 1

[Set Comment Line2 abc] Sets the text for comment line 2

[Set Comment Line3 abc] Sets the text for comment line 3

[Set Comment Line4 abc] Sets the text for comment line 4

[Set Comment Line5 abc] Sets the text for comment line 5

[Set Comment Line6 abc] Sets the text for comment line 6

[Set Comment Line7 abc] Sets the text for comment line 7

[Set Comment Line8 abc] Sets the text for comment line 8

[Set Comment Line9 abc] Sets the text for comment line 9

[Set Comment Line10 abc] Sets the text for comment line 10

[Print Time Series] Print the time series plot.

[Print Spectrum] Print the spectrum plot.

[Print Phase] Print the phase plot.

[Print Spectrogram] Print the spectrogram plot.

[Print 3D Surface] Print the 3D surface plot.

[Print THDvsFreq] Print the THD+N vs Frequency plot to the default printer

Window Control

[Minimize Window] Shrink application to an icon

[Restore Window] Restore application to normal position

[Maximize Window] Expand application to full screen

[Cascade Windows] Cascade all view windows

[Tile Windows Vertical] Tile all views vertically

[Tile Windows Horizontal] Tile all views horizontally

[Hide Window] Hides the application from view

[Show Window] Shows the application

[Hide Menu] Hides the main application menu

[Show Menu] Shows the main application menu

[Hide Toolbar] Hides the main application toolbar

[Show Toolbar] Shows the main application toolbar

[Hide Toolbar2] Hides the secondary application toolbar

[Show Toolbar2] Shows the secondary application toolbar

[Hide Statusbar] Hides the main application lower statusbar

[Show Statusbar] Shows the main application lower statusbar

[Hide Plot Toolbars] Hides the toolbars of all open views

[Show Plot Toolbars] Shows the toolbars of all open views

[Exit Application] Exits the application

Special Functions

[Ambient Compensate] Creates a mic compensation files AmbientLeft.mic and

AmbientRight.mic from the most recent 1 second of

data and uses it as the current mic compensation file.

[Ambient Compensate Enable] Enables the ambient compensation

[Ambient Compensate Disable] Disables ambient compensation

[Set Peak Search Bandwidth # &] Set the bandwidth to use for the Peak Frequency and Peak Amplitude data request items

(# = start frequency and & = stop frequency)

See Also: Dynamic Data Exchange , DDE Data Requests, DDE Examples


DDE Data Request Items

Setttings

"Mode" Returns the current mode: 1=Real time, 2=Post Processing, 3=Recorder

"FFT Size" Returns the FFT size

"Sampling Rate" Returns the current sampling rate

"FFT Overlap" Returns the overlap percentage (0...99)

"Decimation Ratio" Returns the decimation ratio

"Average Mode" Returns the averaging mode: 0=Free Run (blocks), 1=Sound Level Meter (SLM)

"Average Type" Returns the averaging type: 0=Exponential, 1=Linear, 2=Vector.

"Average Size" Returns the averaging block size/speed (1...1000; 1001 if infinite) (0=off, 1=Fast, 2=Med, 3=Slow, 4=Forever).

"Peak Hold" Returns the peak hold type (0=off, 1=Fast, 2=Med, 3=Slow, 4=Forever)

"Smoothing Window" Returns the name of the smoothing window being used

Analyzer Status

"Current Time" Returns the current WAV file position in seconds.

"Total Time" Returns the total WAV file time in seconds.

"Overload Status" Returns current overload status (1=true, 0=false)

"Overload Count" Returns count of overload events since last Run command.

"FFT Count" Returns count of FFT's performed since last Run command.

"Logging Status" Returns 1 if Data Logging is enabled, 0 otherwise

"Last Logging Time" Returns the timestamp of the last data logging event. returns N/A if logging is off.

"Macro Status" Returns the run status of the macro command processor: 0=stopped, 1=running. -1=utility is not open.

"Signal Generator Type Left" Returns the left channel generator signal type

"Signal Generator Type Right" Returns the right channel generator signal type

Scaling

"Amplitude Axis Scaling Left" Returns the left channel amplitude axis scaling: 0=Linear, 1=Logarithmic

"Amplitude Axis Scaling Right" Returns the right channel amplitude axis scaling: 0=Linear, 1=Logarithmic

"Frequency Axis Scaling Left" Returns the left channel frequency axis scaling: 0=Linear, 1=Logarithmic, 2=Octave

"Frequency Axis Scaling Right" Returns the right channel frequency axis scaling: 0=Linear, 1=Logarithmic, 2=Octave

"Spectrum Weighting Left" Returns the left channel spectrum weighting type: 0=Flat, 1=A, 2=B, 3=C

"Spectrum Weighting Right" Returns the right channel spectrum weighting type: 0=Flat, 1=A, 2=B, 3=C

"Total Power Weighting Left" Returns the left channel total power weighting type: 0=Flat, 1=A, 2=B, 3=C

"Total Power Weighting Right" Returns the right channel total power weighting type: 0=Flat, 1=A, 2=B, 3=C

"PSD Left" Returns the left channel PSD status (0=off, 1=on)

"PSD Right" Returns the right channel PSD status (0=off, 1=on)

"PSD Type Left" Returns the left channel PSD type (0=units^2/Hz, 1=units/sqrt(Hz))

"PSD Type Right" Returns the right channel PSD status (0=units^2/Hz, 1=units/sqrt(Hz))

"Mic Compensation Left" Returns the left channel mic compensation status (0=off, 1=on)

"Mic Compensation Right" Returns the right channel mic compensation status (0=off, 1=on)

"Mic Compensation File Left" Returns the left channel mic compensation filename

"Mic Compensation File Right" Returns the right channel mic compensation filename

Peak Frequencies

"Peak Frequency" Returns the frequency of the peak bin (same as Peak1 Frequency)

"Peak1 Frequency" Returns the 1st highest peak frequency.

"Peak2 Frequency" Returns the 2nd highest peak frequency.

"Peak3 Frequency" Returns the 3rd highest peak frequency.

"Peak4 Frequency" Returns the 4th highest peak frequency.

"Peak5 Frequency" Returns the 5th highest peak frequency.

"Peak6 Frequency" Returns the 6th highest peak frequency.

"Marked Peak Frequency" Returns the peak frequency in the span between Marker1 and Marker2

Useful Note: Use the [Set Peak Search Bandwidth # &] command to limit the peak search bandwidth if needed

Peak Amplitudes

"Peak Amplitude" Returns the amplitude of the peak bin (same as Peak1 Amplitude)

"Peak1 Amplitude" Returns the 1st highest peak amplitude.

"Peak2 Amplitude" Returns the 2nd highest peak amplitude.

"Peak3 Amplitude" Returns the 3rd highest peak amplitude.

"Peak4 Amplitude" Returns the 4th highest peak amplitude.

"Peak5 Amplitude" Returns the 5th highest peak amplitude.

"Peak6 Amplitude" Returns the 6th highest peak amplitude.

"Marked Peak Amplitude" Returns the peak amplitude in the span between Marker1 and Marker2

Marker Values

"Marker1 Amplitude" Returns Marker 1 amplitude value

"Marker2 Amplitude" Returns Marker 2 amplitude value

"Marker3 Amplitude" Returns Marker 3 amplitude value

"Marker4 Amplitude" Returns Marker 4 amplitude value

"Marker5 Amplitude" Returns Marker 5 amplitude value

"Marker6 Amplitude" Returns Marker 6 amplitude value

"Marker7 Amplitude" Returns Marker 7 amplitude value

"Marker8 Amplitude" Returns Marker 8 amplitude value

Total Power

"Total Power" Returns the total power with default weighting

"Total Power A" Returns the total power with A weighting

"Total Power B" Returns the total power with B weighting

"Total Power C" Returns the total power with C weighting

"Total Power Flat" Returns the total power with flat weighting

"Marked Total Power" Returns the total power in the frequency span between Marker1 and Marker2 with default weighting

"Marked Total Power A" Returns the total power in the frequency span between Marker1 and Marker2 with A weighting

"Marked Total Power B" Returns the total power in the frequency span between Marker1 and Marker2 with B weighting

"Marked Total Power C" Returns the total power in the frequency span between Marker1 and Marker2 with C weighting

"Marked Total Power Flat" Returns the total power in the frequency span between Marker1 and Marker2 with flat weighting

Distortion Values

"THD" Returns the THD value

"THD+N" Returns the THD+N value

"IMD" Returns the IMD value

"SNR" Returns the SNR value

"SINAD" Returns the SINAD value

"NF" Returns the Noise Figure (NF) value

"Delay Finder" Returns the delay value from the delay finder utility.

"THD vs Frequency" Returns the THD+N vs Frequency values as array**

"Compare Left THD vs Freq to Limits" 'See return values below*

"Compare Right THD vs Freq to Limits" 'See return values below*

* Return values for THD vs Freq Limit check:

-2 if Limit data not available

-1 if THD data not available

0 if THD within limits

1 if THD exceeds limits

Equivalent Noise Values

"Leq Values" Returns all the Leq values

"LeqT" Returns the LeqT value

"Leq" Returns the Leq value

"Lsel" Returns the Lsel value

"Lpk" Returns the Lpk value

"Lmax" Returns the Lmax value

"Lmin" Returns the Lmin value

"L10" Returns the L10 value

"L50" Returns the L50 value

"L90" Returns the L90 value

Spectral Data

"Spectrum" Returns entire spectrum as array**

"Spectrum Left" Returns entire left channel spectrum as array**

"Spectrum Right" Returns entire right channel spectrum as array**

"Zoomed Spectrum" Returns spectrum range corresponding to the current zoom in/out settings on the view**

"Zoomed Spectrum Left" Returns left channel spectrum range corresponding to the current zoom in/out settings on the view**

"Zoomed Spectrum Right" Returns right channel spectrum range corresponding to the current zoom in/out settings on the view**

"Marked Spectrum" Returns spectrum range between Marker1 and Marker2 as array**

"Marked Spectrum Left" Returns left channel spectrum range between Marker1 and Marker2 as array**

"Marked Spectrum Right" Returns right channel spectrum range between Marker1 and Marker2 as array**

"Peak Hold Spectrum" Returns entire peak hold spectrum as array**

"Peak Hold Spectrum Left" Returns entire left channel peak hold spectrum as array**

"Peak Hold Spectrum Right" Returns entire right channel peak hold spectrum as array**

"Zoomed Peak Hold Spectrum" Returns peak hold spectrum range corresponding to the current zoom in/out settings on the view**

"Zoomed Peak Hold Spectrum Left" Returns left channel peak hold spectrum range corresponding to the current zoom in/out settings on the view**

"Zoomed Peak Hold Spectrum Right" Returns right channel peak hold spectrum range corresponding to the current zoom in/out settings on the view**

"Marked Peak Hold Spectrum" Returns peak hold spectrum range between Marker1 and Marker2 as array**

"Marked Peak Hold Spectrum Left" Returns left channel peak hold spectrum range between Marker1 and Marker2 as array**

"Marked Peak Hold Spectrum Right" Returns right channel peak hold spectrum range between Marker1 and Marker2 as array**

Comparing Spectral Data To Overlays

"Compare Left Spectrum To Overlay 1" Compares the left channel spectral data to Overlay 1. Frequency Span is between Markers 1 and 2.

"Compare Left Spectrum To Overlay 2" Compares the left channel spectral data to Overlay 2. Frequency Span is between Markers 3 and 4.

"Compare Left Spectrum To Overlay 3" Compares the left channel spectral data to Overlay 3. Frequency Span is between Markers 5 and 6.

"Compare Left Spectrum To Overlay 4" Compares the left channel spectral data to Overlay 4. Frequency Span is between Markers 7 and 8.

"Compare Left Peak Hold To Overlay 1" Compares the left channel peak hold data to Overlay 1. Frequency Span is between Markers 1 and 2.

"Compare Left Peak Hold To Overlay 2" Compares the left channel peak hold data to Overlay 2. Frequency Span is between Markers 3 and 4.

"Compare Left Peak Hold To Overlay 3" Compares the left channel peak hold data to Overlay 3. Frequency Span is between Markers 5 and 6.

"Compare Left Peak Hold To Overlay 4" Compares the left channel peak hold data to Overlay 4. Frequency Span is between Markers 7 and 8.

"Compare Right Spectrum To Overlay 1" Compares the right channel spectral data to Overlay 1. Frequency Span is between Markers 1 and 2.

"Compare Right Spectrum To Overlay 2" Compares the right channel spectral data to Overlay 2. Frequency Span is between Markers 3 and 4.

"Compare Right Spectrum To Overlay 3" Compares the right channel spectral data to Overlay 3. Frequency Span is between Markers 5 and 6.

"Compare Right Spectrum To Overlay 4" Compares the right channel spectral data to Overlay 4. Frequency Span is between Markers 7 and 8.

"Compare Right Peak Hold To Overlay 1" Compares the right channel peak hold data to Overlay 1. Frequency Span is between Markers 1 and 2.

"Compare Right Peak Hold To Overlay 2" Compares the right channel peak hold data to Overlay 2. Frequency Span is between Markers 3 and 4.

"Compare Right Peak Hold To Overlay 3" Compares the right channel peak hold data to Overlay 3. Frequency Span is between Markers 5 and 6.

"Compare Right Peak Hold To Overlay 4" Compares the right channel peak hold data to Overlay 4. Frequency Span is between Markers 7 and 8.

* Return values for "Compare Spectrum To" function set:

-2 = Spectral data not available

-1 = Overlay data not available

0 = Spectrum is completely above Overlay

1 = Spectrum is completely below Overlay

2 = Spectrum intersects Overlay (partially above and below)

Phase Data

"Phase" Returns entire phase as array**

"Phase Left" Returns entire left channel phase as array**

"Phase Right" Returns entire right channel phase as array**

"Zoomed Phase" Returns phase range corresponding to the current zoom in/out settings on the view**

"Zoomed Phase Left" Returns left channel phase range corresponding to the current zoom in/out settings on the view**

"Zoomed Phase Right" Returns right channel phase range corresponding to the current zoom in/out settings on the view**

"Marked Phase" Returns phase range between Marker1 and Marker2 as array**

"Marked Phase Left" Returns left channel phase range between Marker1 and Marker2 as array**

"Marked Phase Right" Returns right channel phase range between Marker1 and Marker2 as array**

Time Series Data

"Time Series" Returns entire time series values as array**

"Time Series Left" Returns entire left channel time series values as array**

"Time Series Right" Returns entire right channel time series values as array**

"Zoomed Time Series" Returns time series values corresponding to the current zoom in/out settings on the view**

"Zoomed Time Series Left" Returns left channel time series values corresponding to the current zoom in/out settings on the view**

"Zoomed Time Series Right" Returns right channel time series values corresponding to the current zoom in/out settings on the view**

"Wave Segment" Returns the wave data corresponding to [Set Time Segment # ##] command**

"Wave Segment Left" Returns the left channel wave data corresponding to [Set Time Segment # ##] command**

"Wave Segment Right" Returns the right channel wave data corresponding to [Set Time Segment # ##] command**

"Wave Sample Left" Returns the left channel wave file value for the current position. Use [Go To Sample ##] to set position

"Wave Sample Right" Returns the right channel wave file value for the current position. Use [Go To Sample ##] to set position

** Array format:

Data is returned in the same format used by the clipboard :

Spectrum

1st column = Frequency in Hz

2nd column = Amplitude in same units as current display.

Phase

1st column = Frequency in Hz

2nd column = Phase in degrees

Time Series

1st column = Time in seconds

2nd column = Amplitude in same units as current display.

See Also: Dynamic Data Exchange , DDE Commands, DDE Examples


DDE Example

Microsoft Excel 7.0 DDE Module Example:

(Limit testing - runs THD test and checks against spec.)

Sub LimitTest()

'Start a DDE connection with SpectraPLUS-SC- You should already have opened the program.

ch = DDEInitiate("Specplus", "Data")

DDEExecute ch, "[File Open c:\spectraplus\config\thd_test.cfg]"

DDEExecute ch, "[Run]"

'wait 10 seconds

newHour = Hour(Now())

newMinute = Minute(Now())

newSecond = Second(Now()) + 10

newTime = TimeSerial(newHour, newMinute, newSecond)

Application.Wait newTime

DDEExecute ch, "[Stop]"

'retrieve the results from the analyzer

Data = DDERequest(ch, "THD")

thd_value = Data(1)

'Check result against specification

If thd_value < 0.05 Then

MsgBox("Test PASSED")

Else

MsgBox("Test FAILED")

End If

DDETerminate ch

End Sub

Microsoft Excel 7.0 DDE Module Example:

(Statistics - Acquires 20 sets of averaged 1/3 Octave data)

Sub ThirdOctaveTest()

'Start a DDE connection with SpectraPLUS-SC- You should already have opened the program.

ch = DDEInitiate("Specplus", "Data")

'Control variables. Change these as needed.

MaxAverages = 20

AverageTimeMinutes = 1

CurrentAverage = 0

Do

'Start the analyzer

DDEExecute ch, "[Run]"

'wait N minutes from now

newHour = Hour(Now())

newMinute = Minute(Now()) + AverageTimeMinutes

newSecond = Second(Now())

newTime = TimeSerial(newHour, newMinute, newSecond)

Application.Wait newTime

' Stop the analyzer

DDEExecute ch, "[Stop]"

'Request the spectrum data from the analyzer, it will be placed in an array.

DataArray = DDERequest(ch, "Spectrum")

'Find the total number of bands in the spectrum - we will have one row per band

num_bands = UBound(DataArray)

'Place the spectral data in the worksheet starting from right to left. 'Since two

'columns of numbers are sent to us (freq, amplitude) we will simply overwrite

'the frequency column with the next column of amplitude data.

'Statistical calculations can then be performed in Sheet1

Worksheets("Sheet1").Range(Cells(2, MaxAverages - CurrentAverage), Cells(1 + num_bands, MaxAverages - CurrentAverage + 1)).Formula = DataArray

CurrentAverage = CurrentAverage + 1

If CurrentAverage >= MaxAverages Then Exit Do

Loop

DDEExecute ch, "[Stop]"

DDETerminate ch

End Sub

See Also: Dynamic Data Exchange , DDE Commands , DDE Data Request Items


COM API

The analyzer can be controlled and results read from an external program such as Visual Basic, C++ or Excel.

Initializing the Interface

Control Functions

Read Data Functions

Visit our website to download sample projects.


COM API - Initialization

Using Visual Basic

Using Visual C++

Excel

Note: If the Automation Tools option (/10) is not licensed you will get an "Accessed Denied" message when you try to create an instance of the class.

Visual Basic (Microsoft Visual Studio 2022)

1. Add a reference to the automation interface to your project

2. Create an instance of the class

3. Call the methods

Add the reference to your project:

1. Choose Project | Add Reference…

2. On the Add Reference dialog, click the "Browse..." button

3. Select C:\Program Files (x86)\SpectraPLUS_SC\Bin\SPAxnCOMwrapSC.dll

4. Click OK

Declare and Instantiate an instance of the class object

Dim SP As SPAxnCOMwrapSC.IAnalyzerSC

SP = New SPAxnCOMwrapSC.IAnalyzerSC

SP.Init()

Call the methods in the interface as desired

SP.Run()

Return Values

The methods return HRESULTs, so Visual Basic will convert the return value to an exception if an error occurred. As such, you must handle exceptions in your code.

On Error GoTo Err_Trap

... call methods, etc.

Err_Trap:

Dim sMsg As String

sMsg = "The error returned: "

sMsg = sMsg & Err.Description

MsgBox sMsg, vbCritical, _

"Error" & Str$(Err.Number)

Err.Clear

Resume Next

Accessing Arrays

Below is a simple example of how to use the SAFEARRAYS with the GetSpectrum() call. Both freq and data are single precision floating point arrays.

Dim freq() As Single

Dim data() As Single

SP.GetSpectrum(0, freq, data)

Dim n As Variant

For Each n In freq

Value = n

Next n

For Each q In data

Value = q

Next q

Visual C++ (Visual Studio 2022)

1. Import the Type Library (TLB)

2. Create a smart pointer of that type

3. Call the methods

In the header file:

#import "C:\Program Files\SpectraPLUS_SC\bin\SPAxnCOMwrapSC.tlb" no_namespace

In cpp file:

CoInitialize(NULL);

IAnalyzerSCPtr m_SP;

m_SP.CreateInstance(__uuidof(AnalyzerSC));

if ( m_ISP )

{

m_SP->Init();

m_SP->Run();

}

… execute remainder of program …

m_SP = NULL;

The return values of the functions are HRESULTS. The Visual C++ implementation of smart pointers will intercept those return values and throw exceptions on errors. Thus, all code must be wrapped with try/catch blocks. The type of exception thrown is an _com_error.

try

{

m_SP->Run();

}

catch ( _com_error &error )

{

MessageBox( error.ErrorMessage() );

}

Microsoft Excel

1. Enable the Developer tab in Excel

2. Add a reference to the automation interface

3. Create an instance of the class

4. Call the methods

Enable the Developer tab (if needed)

1. Click on the File tab

2. Click the Options command

3. Click the Customize Ribbon category

4. In the Main Tabs list on the right, put a check in the "Developer" box

Add a reference to the automation interface

1. Click on the Developer tab

2. Click the View Code button

3. Choose Tools | References

4. Scroll down and check the box next to the ".NET wrapper (32 &64 bit) for SpectraPLUS-SCautomationLib"

5. Click OK

Dimension and Instantiate an instance of the SpectraPLUS-SC Automation Interface class object

Dim SP As SPAxnCOMwrapSC.AnalyzerSC

Set SP = CreateObject("SPAxnCOMwrapSC.AnalyzerSC")

SP.Init

Call the methods

SP.Run

Below is a simple example of how to read an array of spectral data and write it to the spreadsheet

Dim channel As Integer

Dim startHz As Single

Dim stopHz As Single

' define the frequency span and channel

channel = 0

startHz = 500#

stopHz = 2000#

' Arrays to contain the spectral data

Dim freq() As Single

Dim data() As Single

' Read the data from the analyzer

SP.GetSpectrumInSpan channel, startHz, stopHz, freq, data

Dim n As Variant

Dim q As Variant

Dim col As Integer

Dim row As Integer

' Load the data into the cells

col = 1

row = 1

For Each n In freq

Sheet1.Cells(row, col).value = n

row = row + 1

Next n

col = 2

row = 1

For Each q In data

Sheet1.Cells(row, col).value = q

row = row + 1

Next q


COM API - Control Functions

The following functions can be used to control the analzyer.

Function Groups

Analyzer Operations

Analyzer Configuration

Calibration Commands

Plot and Window Commands

Overlay Control

File Management

File Positioning

File Post Processing

Signal Generation

Digital Input and Output Lines

Analyzer Operations

Run()

Description: Run the analyzer or start recording

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

Stop()

Description: Stop the analyzer, recording or playback.

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

Play()

Description: Play the file starting from the current position. You must be in the Recorder mode and a wave file must be open.

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

Record()

Description: Start recording. You must be in the Recorder mode.

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

RecordPause()

Description: Pause the current recording. The analyzer will continue running but data will not be stored in the wave file.

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

RecordResume()

Description: Resume a paused recording.

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

Fil eStep( int numFFTSteps )

Description: Performs the specified number of FFTs starting at the current file position and advancing by the overlap setting (Post Processing mode only)

Parameters: numFFTSteps: 1 or more

Return: S_OK = success, E_FAIL = unsuccessful

Trigger()

Description: Forces a single trigger event. Analyzer must be running and triggering must be enabled.

Return: S_OK = success, E_FAIL = unsuccessful

Analyzer Configuration

LoadConfig( BSTR cfg_filename )

Description: Load the specified configuration file. This is the quickest way to change all the analyzer settings.

Parameters: cfg_filename = filename of the configuration file. Full path or just filename if file located in /Config folder

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will look in the Config path as listed in the <File><Set Paths> dialog box.

SaveConfig( BSTR cfg_filename )

Description: Save the current settings to the specified configuration file

Parameters: cfg_filename = filename of the configuration file.

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will store in the Config path as listed in the <File><Set Paths> dialog box.

SetMode( long mode )

Description: Set the current mode

Parameters: mode: 0 = Real Time, 1 = Recorder, 2 = Post Processing

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetNumChannels( long num_channels )

Description: Set the number of channels. This command will fail if a wave file is open and you attempt to change the number of channels.

Parameters: num_channels: 1 = mono, 2 = stereo

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetSamplingRate( long rate )

Description: Set the sampling rate for the device. This command will fail if a wave file is open and you attempt to change the sampling rate.

Parameters: rate = samples per second

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetSamplingPrecision( long bits )

Description: Set the sampling precision for the device. This command will fail if a wave file is open and you attempt to change the sampling precision.

Parameters: bits: 8, 16 or 24.

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetFFTsize( long fft_size )

Description: Set the FFT size.

Parameters: fft_size = 32 through 1048576 pts in powers of 2.

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetDecimationRatio( long ratio )

Description: Set the decimation ratio.

Parameters: ratio = 1 through 50

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetSmoothingWindow( long window )

Description: Set the Smoothing window

Parameters: window = values as shown below:

      BARTLETT       0

      BLACKMAN       1

      FLATTOP        2

      HAMMING        3

      HANNING        4

      KAISER         5

      PARZEN         6

      TRIANGULAR     7

      UNIFORM        8

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetAverageMode( long mode )

Description: Set the Averaging Mode

Parameters: mode: 0 = Free Run, 1 = Sound Level Meter

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetAverageType( long type )

Description: Set the Averaging Type

Parameters: type: 0 = Exponential, 1 = Linear, 2 = Vector

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetAverageSiz e( long size)

Description: Set the average size

Parameters: size = average size 1 - 10000 (free run mode), 0 = Off, 1 = Fast, 2 = Medium, 3 = Slow, 4 = Forever (SLM mode)

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

ResetAverag e( )

Description: Reset the running average

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetDualChannelProcessingMode( long proc_mode )

Description: Set the dual channel processing mode. This will fail if the analyzer is set to mono operation.

Parameters: proc_mode:

LEFT_ONLY                      0

RIGHT_ONLY                     1

BOTH_LEFT_AND_RIGHT            2

AVERAGE_LEFT_AND_RIGHT          3

RATIO_LEFT_AND_RIGHT      4

RATIO_RIGHT_AND_LEFT      5

CROSS_SPECTRUM_LEFT_AND_RIGHT       6

CROSS_SPECTRUM_RIGHT_AND_LEFT       7

TRANSFER_LEFT_AND_RIGHT             8

TRANSFER_RIGHT_AND_LEFT             9

COHERENCE_FUNCTION                  10

TRANSFER_L_R_AND_COHERENCE          11

TRANSFER_R_L_AND_COHERENCE          12

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

EnablePSD( long channel )

Description: Enable Power Spectral Density scaling

Parameters: channel: 0 = Left, 1 = Right.

Return: S_OK = success, E_FAIL = unsuccessful

DisablePSD( long channel )

Description: Disable Power Spectral Density scaling

Parameters: channel: 0 = Left, 1 = Right.

Return: S_OK = success, E_FAIL = unsuccessful

SetAmplitudeScaleType( long channel, long scale_type )

Description: Set the amplitude axis scaling type for the specified channel

Parameters: channel: 0 = Left, 1 = Right. scale_type: 0 = Linear, 1 = Logarithmic, 2 = Log Magnitude

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetFrequencyScaleType( long channel, long scale_type, long octave_number )

Description: Set the frequency axis scaling type for the specified channel

Parameters: channel: 0 = Left, 1 = Right.

octave_number: 1,3,6,9,12,24,48,96 (ignored if scale_type not Octave)

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetSpectrumWeighting( long channel, long weighting )

Description: Set the spectrum weighting for the specified channel

Parameters: channel: 0 = Left, 1 = Right.

weighting: 0 = Flat, 1 = A, 2 = B, 3 = C

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetTotalPowerWeighting( long channel, long weighting )

Description: Set the total power weighting for the specified channel

Parameters: channel: 0 = Left, 1 = Right.

weighting: 0 = Flat, 1 = A, 2 = B, 3 = C

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

TriggerEnable()

Description: Enable triggering

Return: S_OK = success, E_FAIL = unsuccessful

TriggerDisable()

Description: Disable triggering

Return: S_OK = success, E_FAIL = unsuccessful

SetTriggerThreshold( float threshold_pct )

Description: Set the trigger threshold value

Parameter: threshold_pct: the trigger threshold in percent between 0 and 100

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetPeakHold( long channel_ext, long peak_hold_type )

Description: Set the peak hold type for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

peak_hold_type: 0 = Off, 1 = Fast, 2 = Medium, 3 = Slow, 4 = Forever

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

ResetPeakHold( long channel_ext )

Description: Resets the peak hold values for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

SetOverlapPercentage( long overlap_percent )

Description: Sets the overlap percentage value

Parameters: overlap_percent = 1 - 99

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetCompensationFile( long channel, BSTR filename )

Description: Set the transducer compensation file for the specified channel

Parameters: channel: 0 = Left, 1 = Right. filename = mic compensation filename

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will look in the Mic comp path as listed in the <File><Set Paths> dialog box.

EnableCompensationFile( long channel )

Description: Enable the transducer compensation file for the specified channel

Parameters: channel: 0 = Left, 1 = Right

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

DisableCompensationFile( long channel )

Description: Disable the transducer compensation file for the specified channel

Parameters: channel: 0 = Left, 1 = Right

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetMarkerFreq( long channel_ext, long marker, float freqHz )

Description: Set the frequency for the specific channel and marker index

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

marker = 1 - 8, freqHz = frequency in Hz

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

ResetOverloadCount( )

Description: Reset the overload (clipping) count for all channels

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

DataLoggingEnable()

Description: Enable data logging

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

DataLoggingDisable()

Description: Disable data logging

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

SetDataLoggingFile( long channel, BSTR filename)

Description: Set the data logging output filename for the specified channel

Parameters: channel: 0 = Left, 1 = Right. filename = data log filename.

Return: S_OK = success, E_FAIL = unsuccessful

Note: If a short filename is used, it will be stored in the data logging path as listed in the <File><Set Paths> dialog box.

SetRunControl( long mode, long fft_limit, float time_limit, float start_delay_time )

Description: Set the Run Control options

Parameters: mode: 0=Continuous, 1=Stop after FFT limit, 2=Stop after time limit

fft_limit: number of FFTs to process before stopping when mode = 1

time_limit: seconds to process before stopping when mode = 2

start_delay_time: seconds to delay before starting processor

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetCrossChannelDelay( float delay )

Description: Set the cross channel delay value

Parameters: delay: delay value in msec. (must be between -1000 and +1000)

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetMetadata( BSTR metadata )

Description: Set the metadata text to store in the current wafe file. Wave file must be open for this function to suceed.

Parameters: metadata - up to 2000 characters max of ascii text

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

ResetCSEL()

Description: Reset the cSEL value. The Cumulative Sound Exposure Level (cSEL) utility window must be open.

Return: S_OK = success, E_FAIL = unsuccessful

Calibration Commands

LoadCalibrationFile( long channel, BSTR filename )

Description: Load the calibration file for the specified channel

Parameters: channel: 0 = Left, 1 = Right; filename = the filename of the calibration file

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will be stored in the calibration path as listed in the <File><Set Paths> dialog box.

CalibrateToExternalSource( long channel, float source_level )

Description: Perform a calibration measurement on the specified channel

Parameters: channel: 0 = Left, 1 = Right; source_level = value to calibrate to (SPL example: 94.0).

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Notes:

You must be using the calibration option to calibrate to an external source.

The measurement will continue until the following conditions are met:

1) The measured signal level is stable to within +/-0.1 millivolt. This is approximately +/-0.03 dB with typical mic sensitivities.

2) The measured signal level is within 12% of its original value. This is approximately +/-1 dB.

If both of these conditions are not satisfied within 60 seconds the measurement will stop and an E_FAIL error will occur.

These conditions will assure that settling has completed, the mic calibrator is turned on and the correct mic and channel are used.

CalibrateToZeroDBr( long channel, float freqiemcy )

Description: Sets the Calibration to 0.0 dBr at the selected frequency.

Parameters: channel: 0 = Left, 1 = Right; frequency = frequency at which the resulting calibration will become 0.0 dBr

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SaveCalibrationFile( long channel, BSTR cal_filename )

Description: Save the calibration file for the specified channel

Parameters: channel: 0 = Left, 1 = Right; cal_filename = filename of the calibration file.

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will store in the Cal path as listed in the <File><Set Paths> dialog box.

Plot and Window Commands

OpenPlot( long channel, long plot_type )

Description: Opens a plot for the specified channel

Parameters: channel: 0 = Left, 1 = Right.

plot_type: 1 = Time Series, 2 = Spectrum, 3 = Phase, 4 = Spectrogram, 5 = 3-D Surface

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

ClosePlot( long channel, long plot_type )

Description: Closes a plot for the specified channel

Parameters: channel: 0 = Left, 1 = Right.

plot_type: 1 = Time Series, 2 = Spectrum, 3 = Phase, 4 = Spectrogram, 5 = 3-D Surface

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

MinimizeApplication( )

Description: Minimize the overall application window to an icon

Return: S_OK = success, E_FAIL = unsuccessful

MaximizeApplication( )

Description: Maximize the overall application window on the screen

Return: S_OK = success, E_FAIL = unsuccessful

RestoreApplication( )

Description: Restore the application to it's previous size

Return: S_OK = success, E_FAIL = unsuccessful

HideApplication( )

Description: Hide the overall application window and icon.

Return: S_OK = success, E_FAIL = unsuccessful

ShowApplication( )

Description: Show the overall application window and icon (restore from HideApplication())

Return: S_OK = success, E_FAIL = unsuccessful

ClearSpectrum( long channel_ext )

Description: Clears the spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

ClearPeakHoldSpectrum( long channel_ext )

Description: Clears the peak hold spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

SetSpectrumPlotFrequencySpan( long channel_ext, float startHz, float stopHz )

Description: Set the displayed frequency span for the spectrum plot for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

startHz = start frequency, stopHz = stop frequency

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

SetSpectrumPlotTop( long channel_ext, float plot_top )

Description: Set the display amplitude plot top parameter for the spectrum plot for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

plot_top = plot top value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

SetSpectrumPlotRange( long channel_ext, float plot_range )

Description: Set the display amplitude plot range parameter for the spectrum plot for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

plot_range = plot range value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

SetSpectrumPlotGraphType( long channel_ext, long graph_type )

Description: Set the spectrum plot graph type for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

graph_type: 0 = Line, 1= Bars, 2 = Stepped Bars

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

SetTimeSeriesPlotTimeSpan( float start_time, float stop_time )

Description: Set the time span to be displayed on the time series plot

Parameters: start_time, stop_time = time span to display

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

WritePlotToBitmapFile( long channel_ext, long plot_type, BSTR bmp_filename )

Description: Saves the plot image to a bitmap file

Parameters: channel_ext: 0 = Left, 1 = Right, 2

plot_type: 1 = Time Series, 2 = Spectrum, 3 = Phase, 4 = Spectrogram, 5 = 3-D Surface

bmp_filename = full filename and path to store bitmap

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Overlay Control

SetOverlay( long channel_ext, long overlay_index, int create_from_peak_hold, BSTR szLegend)

Description: Create an overlay from the current spectral data

Parameters: channel_ext: 0 = Left, 1 = Right, 2

overlay_index = 1 - 14

create_from_peak_hold = 1 to create the overlay from the peak hold values (peak hold must be enabled)

szLegend = legend to apply to overlay

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

ShowOverlay( long channel_ext, long overlay_index)

Description: Shows the specified overlay

Parameters: channel_ext: 0 = Left, 1 = Right, 2

overlay_index = 1 - 14

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

HideOverlay( long channel_ext, long overlay_index)

Description: Hides the specified overlay

Parameters: channel_ext: 0 = Left, 1 = Right, 2

overlay_index = 1 - 14

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SaveOverlay( long channel_ext, long overlay_index, BSTR ovl_filename)

Description: Save an overlay to a file

Parameters: channel_ext: 0 = Left, 1 = Right, 2

overlay_index = 1 - 14

ovl_filename = name of the overlay file.

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will store in the Overlay path as listed in the <File><Set Paths> dialog box.

LoadOverlay( long channel_ext, long overlay_index, BSTR ovl_filename)

Description: Load an overlay from a file

Parameters: channel_ext: 0 = Left, 1 = Right, 2

overlay_index = 1 - 14

ovl_filename = name of the overlay file to load

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will load it from the Overlay path as listed in the <File><Set Paths> dialog box.

File Management

FileOpen( BSTR wav_filename)

Description: Open a wave file

Parameters: wav_filename = wave filename

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will look in the Wave path as listed in the <File><Set Paths> dialog box.

FileSave( BSTR wav_filename)

Description: Save the wave file.

Parameters: wav_filename = wave filename

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will store in the Wave path as listed in the <File><Set Paths> dialog box.

FileClose( )

Description: Close the wave file

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

File Positioning

FileRewind( )

Description: Go to the start of the wave file

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileForward( )

Description: Go to the end of the wave file

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileGoToTime( float seconds)

Description: Go to a specific time in the wave file

Parameters: seconds = file position in seconds

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileGoToSample( unsigned long sample)

Description: Go to a sample position in the wave file

Parameters: sample = file position in samples

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

File Post Processing

FilePlaySegment Time( float start_seconds, float stop_seconds)

Description: Playback the specified time segment

Parameters: start_seconds = segment start time; stop_seconds = segment stop time

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FilePlaySegmentSampl e( unsigned long start_sample, unsigned long stop_sample)

Description: Playback the specified time segment

Parameters: start_sample = segment start sample position; stop_sample = segment stop sample position

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileFilterSegmentTi me( float start_seconds, float stop_seconds)

Description: Filter the specified time segment

Parameters: start_seconds = segment start time; stop_seconds = segment stop time

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileFilterSegmentSamp le( unsigned long start_sample, unsigned long stop_sample)

Description: Filter the specified time segment

Parameters: start_sample = segment start sample position; stop_sample = segment stop sample position

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileProcessSegmentTim e( float start_seconds, float stop_seconds)

Description: Computes the average spectral data for the specified time segment (same as right clicking on time series plot and choosing "Compute Average Spectrum")

Parameters: start_seconds = segment start time; stop_seconds = segment stop time

Note: If the specified time segment is less than a full FFT size, zero padding will be applied

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileProcessSegmentSamp le( unsigned long start_sample, unsigned long stop_sample)

Description: Computes the average spectral data for the specified time segment (same as right clicking on time series plot and choosing "Compute Average Spectrum")

Parameters: start_sample = segment start sample position; stop_sample = segment stop sample position

Note: If the specified time segment is less than a full FFT size, zero padding will be applied

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileCutTi me( float start_seconds, float stop_seconds)

Description: Cut the specified time segment and place it on the clipboard

Parameters: start_seconds = segment start time; stop_seconds = segment stop time

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileCutSamples( long start_sample, long stop_sample)

Description: Cut the specified time segment and place it on the clipboard

Parameters: start_sample = segment start position; stop_sample = segment stop position

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileCopyTi me( float start_seconds, float stop_seconds)

Description: Copy the specified time segment and place it on the clipboard

Parameters: start_seconds = segment start time; stop_seconds = segment stop time

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileCopySamples( long start_sample, long stop_sample)

Description: Copy the specified time segment and place it on the clipboard

Parameters: start_sample = segment start position; stop_sample = segment stop position

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FilePasteTi me( float paste_position_seconds)

Description: Paste the current clipboard contents (wave data) into the current file at the specified position

Parameters: paste_position_seconds = location to paste the data

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FilePasteSamples( long paste_position_sample)

Description: Paste the current clipboard contents (wave data) into the current file at the specified position

Parameters: paste_position_sample = location to paste the data

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileMuteTi me( float start_seconds, float stop_seconds)

Description: Mute the specified time segment

Parameters: start_seconds = segment start time; stop_seconds = segment stop time

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileMuteSamples( long start_sample, long stop_sample)

Description: Mute the specified time segment

Parameters: start_sample = segment start position; stop_sample = segment stop position

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetFilterChannel( long channel )

Description: Set the filter channel

Parameters: channel: 0 = Left only, 1 = Right only, 2 = Both Left and Right

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetFilterFile( BSTR filter_filename )

Description: Set the filter filename

Parameters: filter_filename = filename of filter file

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: If a short filename is used, it will look in the Filter file path as listed in the <File><Set Paths> dialog box.

FileBuildSpectrogramPlot( float start_seconds, float stop_seconds)

Description: Computes and displays the Spectrogram plot for the specified time segment (same as right clicking on time series plot and choosing "Compute and Display Spectrogram")

Parameters: start_seconds = segment start time; stop_seconds = segment stop time

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

FileBuildSurfacePlot( long channel_ext, float start_seconds, float stop_seconds)

Description: Computes and displays the 3-D Surface plot for the specified time segment (same as right clicking on time series plot and choosing "Compute and Display 3-D Surface")

Parameters: start_seconds = segment start time; stop_seconds = segment stop time

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

PerformHilbertTransform( long start_sample, long stop_sample)

Description: Perform Hilbert Transform on the specified time segment. Results are shown on the Time Series plot

Parameters: start_sample = segment start position; stop_sample = segment stop position

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Signal Generation

OpenGenerator()

Description: Open the signal generator utility

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

CloseGenerator()

Description: Close the signal generator utility

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

RunGenerator()

Description: Start the signal generator

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

StopGenerator()

Description: Stop the signal generator

Parameters: none

Return: S_OK = success, E_FAIL = unsuccessful

SetGeneratorSignalType( long channel_sig, long signal_type )

Description: Set the signal type for the specified signal generator channel

Parameters: channel_sig = 0 - 1; signal_type - as follows:

0 = White Noise

1 = Pink Noise

2 = Noise Burst

3 = 1 kHz Tone

4 = Multiple Tones

5 = Tone Burst

6 = IMD Tones

7 = Freq Sweep

8 = Level Sweep

9 = Sawtooth

10 = Triangular

11 = Pulse

12 = Squarewave

13 = User Defined wave file

14 = DTMF

16 = Digital Zero

16 = Frequency Step

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetGeneratorLevel( long channel_sig, float levelDB )

Description: Set the output level for the specified signal generator channel

Parameters: channel_sig = 0 - 1; level = signal level in dB (0 = max, -120 = min).

NOTE: If the selected output device is SpectraDAQ-200 the units are dBV, otherwise it is dBFS (dB relative to the full scale output level of the device)

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

SetGeneratorFreq( long channel_sig, float freqHz )

Description: Set the signal type to Multiple tones and enable only a single tone at the specified frequency. The multitone level is set to 0 dBFS (use SetGeneratorLeve() to set the output level)

Parameters: channel_sig = 0 - 1; freqHz = frequency in Hz

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: The signal type will change to Multiple Tones when this command is used.

LoadGeneratorMultiToneFile( long channel_sig, BSTR toneFilename )

Description: Load a .tones file from disk - this allows you to change the set of tones

Parameters: channel_sig = 0 - 1; toneFilename = name of .tones file

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: The signal type will change to Multiple Tones when this command is used.

Digital Input and Output Lines

The SpectraDAQ-200 hardware module has Digital Input and Output lines for controlling and

reading external equipment such as relays. These functions allow you to read and write the

state of these lines. There are 3 input lines and 3 output lines.

GetDigitalInputLineState( DWORD *state )

Description: Get the current state of the digital Input lines

Parameters: state = pointer to value to receive the current state of the digital input lines

Return: S_OK = success, E_FAIL = unsuccessful

SetDigitalOutputLineState( DWORD state )

Description: Set the current state of the digital Output lines

Parameters: state = value containing the new state to set the output lines

Return: S_OK = success, E_FAIL = unsuccessful


COM API - Read Data Functions

Functions used to read data and status from the analyzer:

General Status

Peak Search Operations

Distortion Readings

Total Power Readings

Marker Readings

Conversion Operations

Time Series Data

Spectral Data

Phase Data

Leq Data

Misc

General Status

IsRunning ( int *runStatus )

Description: Determine if the analyzer is currently running, or recording

Parameters: runStatus = pointer to receive the analyzer run status (0 = stopped, 1 = running or recording)

Return: S_OK = success, E_FAIL

GetCurrentFileTime( float *seconds )

Description: Get the current (position) time in the file

Parameters: seconds = pointer to variable to receive the time value in seconds

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetTotalFileTime( float *seconds )

Description: Get the total time in the file

Parameters: seconds = pointer to variable to receive the time value in seconds

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetCurrentFileSample( unsigned long *sample )

Description: Get the current sample position in the file

Parameters: sample =pointer to variable to receive the sample position

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetTotalFileSamples( unsigned long *samples )

Description: Get the total number of samples in the file

Parameters: samples = pointer to variable to receive the total samples value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetFFTCount( long *fftcount )

Description: Get the number of FFTs that have been performed since run or record were last pressed

Parameters: fftcount - pointer to variable to receive the the fft count

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetTriggerCount( long *trigger_count )

Description: Get the number of triggers that have occurred since run or record were last pressed

Parameters: trigger_count - pointer to variable to receive the the trigger count

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetOverloadCount( long channel, long *overloadcount )

Description: Get the number of Overload conditions (clipping) that have been detected since run or record were last pressed

Parameters: channel ; 0 = Left, 1 = Right; overloadcount - pointer to variable to receive the the overload count

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Peak Search Operations

GetPeakFrequency( long channel_ext, float *freq )

Description: Get the peak frequency in the total span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

freq = pointer to variable to receive the peak frequency

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakFrequencyNth( long channel_ext, long peak_number, float *freq )

Description: Get the Nth peak frequency in the total span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

peak_number = 0 - 10; freq = pointer to variable to receive the peak frequency

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakFrequencyNthSpan( long channel_ext, long peak_number, float startHz, float stopHz, float *freq )

Description: Get the Nth peak frequency in the specified span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

peak_number = 0 - 10; startHz = span start frequency; stopHz = span stop frequency;

freq = pointer to variable to receive the peak frequency

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakAmplitude( long channel_ext, float *amplitude )

Description: Get the peak amplitude in the total span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

amplitude = pointer to variable to receive the peak amplitude

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakAmplitudeNth( long channel_ext, long peak_number, float *amplitude )

Description: Get the amplitude of the Nth peak in the total span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

peak_number = 0 - 10; amplitude = pointer to variable to receive the peak amplitude

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakAmplitudeNthSpan( long channel_ext, long peak_number, float startHz, float stopHz, float *amplitude )

Description: Get the amplitude of the Nth peak in the specified span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

peak_number = 0 - 10; startHz = span start frequency; stopHz = span stop frequency;

amplitude = pointer to variable to receive the peak amplitude

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakHoldFrequency( long channel_ext, float *freq )

Description: Get the maximum frequency in the peak hold spectrum for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

freq = pointer to variable to receive the peak hold frequency

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakHoldAmplitude( long channel_ext, float *amplitude )

Description: Get the maximum amplitude in the peak hold spectrum for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

amplitude = pointer to variable to receive the peak hold amplitude

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

Total Power Readings

GetTotalPower( long channel_ext, long weighting, float *power )

Description: Get the total power in the total span for the specified channel and weighting

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

weighting: 0 = Flat, 1 = A, 2 = B, 3 = C

power = pointer to variable to receive the total power value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetTotalPowerSpan( long channel_ext, long weighting, float startHz, float stopHz, float *power )

Description: Get the total power for the specified frequency span for the specified channel and weighting

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

weighting: 0 = Flat, 1 = A, 2 = B, 3 = C

startHz = span start frequency; stopHz = span stop frequency;

power = pointer to variable to receive the total power

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakHoldTotalPower( long channel_ext, long weighting, float *power )

Description: Get the total power in the peak hold spectrum for the specified channel and weighting

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

weighting: 0 = Flat, 1 = A, 2 = B, 3 = C

power = pointer to variable to receive the peak hold total power value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

Distortion Readings

GetTHD( long channel_ext, float *thd )

Description: Get the THD over the total span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

thd = pointer to variable to receive the THD value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetTHDSpan( long channel_ext, float startHz, float stopHz, float *thd )

Description: Get the THD over the specified frequency span and channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

startHz = span start frequency; stopHz = span stop frequency;

thd = pointer to variable to receive the THD value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetTHD_N( long channel_ext, float *thd_n )

Description: Get the THD+N over the total span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

thd_n = pointer to variable to receive the THD+N value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetTHD_NSpan( long channel_ext, float startHz, float stopHz, float *thd_n )

Description: Get the THD+N over the specified frequency span and channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

startHz = span start frequency; stopHz = span stop frequency;

thd_n = pointer to variable to receive the THD+N value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetIMD( long channel_ext, float *imd )

Description: Get the IMD over the total span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

imd = pointer to variable to receive the IMD value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetSNR( long channel_ext, float *snr )

Description: Get the SNR over the total span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

snr = pointer to variable to receive the SNR value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetSNRSpan( long channel_ext, float startHz, float stopHz, float *snr )

Description: Get the SNR over the specified frequency span and channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

startHz = span start frequency; stopHz = span stop frequency;

snr = pointer to variable to receive the SNR value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetSINAD( long channel_ext, float *sinad )

Description: Get the SINAD over the total span for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

sinad = pointer to variable to receive the SINAD value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetSINADSpan( long channel_ext, float startHz, float stopHz, float *sinad )

Description: Get the SINAD over the specified frequency span and channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

startHz = span start frequency; stopHz = span stop frequency;

sinad = pointer to variable to receive the SINAD value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

Marker Readings

GetMarkerFrequency( long channel_ext, long marker, float *freq )

Description: Get the frequency at the specified marker

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

marker = 1 - 8;

freq = pointer to variable to receive the frequency value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetMarkerAmplitude( long channel_ext, long marker, float *amplitude )

Description: Get the amplitude at the specified marker

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

marker = 1 - 8;

amplitude = pointer to variable to receive the amplitude value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

Conversion Operations

ConvertTimeToSample( float time_seconds, unsigned long *sample )

Description: Convert from seconds to sample position

Parameters: time_seconds = time value to convert

sample = pointer to variable to receive the sample position

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

ConvertSampleToTime( unsigned long sample, float *time_seconds )

Description: Convert from sample position to time

Parameters: sample = sample position to convert

time_seconds = pointer to variable to receive the time in seconds

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Time Series Data

GetTimeSeriesValueFromTime( long channel, float time_seconds, float *value )

Description: Get the time series amplitude value a the specified time

Parameters: channel: 0 = Left, 1 = Right

value = pointer to variable to receive the time series amplitude value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetTimeSeriesValueFromSample( long channel, unsigned long sample, float *value )

Description: Get the time series value a the specified sample position

Parameters: channel: 0 = Left, 1 = Right

value = pointer to variable to receive the time series amplitude value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetMaxTimeSeriesValueInSegment( long channel, unsigned long startSample, unsigned long stopSample, float *value )

Description: Get the maximum time series value in the specified time segment

Parameters: channel: 0 = Left, 1 = Right

startSample = time segment start position in samples;

stopSample = time segment stop position in samples;

value = pointer to variable to receive the maximum time series amplitude value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetMinTimeSeriesValueInSegment( long channel, unsigned long startSample, unsigned long stopSample, float *value )

Description: Get the minimum time series value in the specified time segment

Parameters: channel: 0 = Left, 1 = Right

startSample = time segment start position in samples;

stopSample = time segment stop position in samples;

value = pointer to variable to receive the minimum time series amplitude value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetTimeSeriesFromFile( long channel, SAFEARRAY __RPC_FAR * __RPC_FAR *psaTimes, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of time series data for the specified channel

Parameters: channel: 0 = Left, 1 = Right

psaTimes = pointer to array of time values

psaData = pointer to array of amplitude values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetTimeSeriesFromFileSegmentSample( long channel, unsigned long startSample, unsigned long stopSample, SAFEARRAY __RPC_FAR * __RPC_FAR *psaTimes, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of time series data for the specified time segement and channel

Parameters: channel: 0 = Left, 1 = Right,

startSample = start sample of time series segment;

stopSample = stop sample of time series segment;

psTimes = pointer to array of time values

psaData = pointer to array of amplitude values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetTimeSeriesFromFileSegmentTime( long channel, float startSecs, float stopSecs, SAFEARRAY __RPC_FAR * __RPC_FAR *psaTimes, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of time series data for the specified time segement and channel

Parameters: channel: 0 = Left, 1 = Right

startSecs = start time of time series segment;

stopSecs = stop time of time series segment;

psaTimes = pointer to array of time values

psaData = pointer to array of amplitude values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetMaxValueInTriggerSeries( long channel, float *value )

Description: Get the maximum time series value in the block of trigger samples. The trigger block length is equal to the current FFT size.

Parameters: channel: 0 = Left, 1 = Right

value = pointer to variable to receive the maximum amplitude value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetMinValueInTriggerSeries( long channel, float *value )

Description: Get the minimum time series value in the block of trigger samples. The trigger block length is equal to the current FFT size.

Parameters: channel: 0 = Left, 1 = Right

value = pointer to variable to receive the minimum amplitude value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetTriggerTimeSeries( long channel, SAFEARRAY __RPC_FAR * __RPC_FAR *psaTimes, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of time series data containing the block of trigger samples. The trigger block length is equal to the current FFT size.

Parameters: channel: 0 = Left, 1 = Right

psaTimes = pointer to array of time values

psaData = pointer to array of amplitude values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Spectral Data

GetSpectrumMinFrequency( long channel_ext, float *freq )

Description: Get the minimum available frequency in the spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

freq = pointer to variable to receive the frequency value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetSpectrumMaxFrequency( long channel_ext, float *freq )

Description: Get the maximum available frequency in the spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

freq = pointer to variable to receive the frequency value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetSpectrumValue( long channel_ext, float freqHz, float *value )

Description: Get the amplitude value of the spectral data at the specified frequency and channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

freqHz = frequency to read the amplitude

value = pointer to variable to receive the amplitude value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetSpectrum( long channel_ext,SAFEARRAY __RPC_FAR * __RPC_FAR *psaFrequencies, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

psaFrequencies = pointer to array of frequency values

psaData = pointer to array of amplitude values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetSpectrumInSpan( long channel_ext, float startHz, float stopHz, SAFEARRAY __RPC_FAR * __RPC_FAR *psaFrequencies, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

startHz = start frequency of selected span;

stopHz = stop frequency of selected span;

psaFrequencies = pointer to array of frequency values

psaData = pointer to array of amplitude values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakHoldSpectrumValue( long channel_ext, float freqHz, float *value )

Description: Get the peak hold amplitude value of the spectral data at the specified frequency and channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

freqHz = frequency to read the amplitude

value = pointer to variable to receive the amplitude value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakHoldSpectrum( long channel_ext,SAFEARRAY __RPC_FAR * __RPC_FAR *psaFrequencies, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of peak hold spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

psaFrequencies = pointer to array of frequency values

psaData = pointer to array of amplitude values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPeakHoldSpectrumInSpan( long channel_ext, float startHz, float stopHz, SAFEARRAY __RPC_FAR * __RPC_FAR *psaFrequencies, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of peak hold spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

startHz = start frequency of selected span;

stopHz = stop frequency of selected span;

psaFrequencies = pointer to array of frequency values

psaData = pointer to array of amplitude values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetComplexSpectrum( long channel_ext,SAFEARRAY __RPC_FAR * __RPC_FAR *psaFrequencies, SAFEARRAY __RPC_FAR * __RPC_FAR *psaDataR, SAFEARRAY __RPC_FAR * __RPC_FAR *psaDataI )

Description: Get an array of complex spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

psaFrequencies = pointer to array of frequency values

psaDataR = pointer to array of real component of complex values

psaDataI = pointer to array of imaginary component of complex values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetComplexSpectrumInSpan( long channel_ext, float startHz, float stopHz, SAFEARRAY __RPC_FAR * __RPC_FAR *psaFrequencies, SAFEARRAY __RPC_FAR * __RPC_FAR *psaDataR, SAFEARRAY __RPC_FAR * __RPC_FAR *psaDataI)

Description: Get an array of complex spectral data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

startHz = start frequency of selected span;

stopHz = stop frequency of selected span;

psaFrequencies = pointer to array of frequency values

psaDataR = pointer to array of real component of complex values

psaDataI = pointer to array of imaginary component of complex values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

Phase Data

GetPhaseValue( long channel_ext, float freqHz, float *value )

Description: Get the phase value at the specified frequency and channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

freqHz = frequency to read the phase

value = pointer to variable to receive the phase value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPhase( long channel_ext,SAFEARRAY __RPC_FAR * __RPC_FAR *psaFrequencies, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of phase data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

psaFrequencies = pointer to array of frequency values

psaData = pointer to array of phase values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

GetPhaseInSpan( long channel_ext, float startHz, float stopHz, SAFEARRAY __RPC_FAR * __RPC_FAR *psaFrequencies, SAFEARRAY __RPC_FAR * __RPC_FAR *psaData )

Description: Get an array of phase data for the specified channel

Parameters: channel_ext: 0 = Left, 1 = Right, 2 = Composite, 3 = Coherence.

startHz = start frequency of selected span;

stopHz = stop frequency of selected span;

psaFrequencies = pointer to array of frequency values

psaData = pointer to array of phase values

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Note: Composite channel = dual channel operation (L&R average, Transfer Function or Cross Spectrum)

Leq Data

GetLeqValues( long channel, float *LeqT, float *Leq, float *Lsel, float *Lpk, float *Lmax, float *Lmin, float *L10, float* L50, float *L90 )

Description: Get the Leq (Equivalent Noise Level) values for the specified channel

Parameters: channel: 0 = Left, 1 = Right

LeqT = pointer to the equivalent noise level converted to the user specified "reference time period".

Leq = pointer to the equivalent noise level for the selected time segment.

Lsel = pointer to the equivalent noise level converted to a 1 second period.

Lpk = pointer to the peak level for the selected time segment. No averaging is used for this parameter.

Lmax = pointer to the maximum level for the selected data.

Lmin = pointer to the minimum level for the selected data.

L10 = pointer to the level exceeded 10% of the time.

L50 = pointer to the level exceeded 50% of the time.

L90 = pointer to the level exceeded 90% of the time.

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

Misc

GetDelayFinderValue( float *value )

Description: Get the current value of the Delay Finder utility (utility must be open)

Parameters: value = pointer to the delay value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetCSEL( long channel, float *value )

Description: Get the current value of the cSEL utility (utility must be open)

Parameters: channel: 0 = Left, 1 = Right

value = pointer to variable to receive the value

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetMetadata( BSTR* metadata )

Description: Get the metadata text from the current wafe file. Wave file must be open for this function to suceed.

Parameters: metadata - up to 2000 characters max of ascii text

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter

GetAlertState( long channel, long *state )

Description: Get the current alert state (Alert utility must be open)

Parameters: channel: 0 = Left, 1 = Right

state = pointer to variable to receive the value: 0 = alert conditions not satisfied, 1 = alert conditions are exceeded

Return: S_OK = success, E_FAIL = unsuccessful, E_INVALIDARG = invalid parameter


Performance Issues

Processing Speed

The processing speed is affected by many factors. Foremost among these is the FFT size. Select a lower FFT size for faster performance but with reduced frequency resolution.

Video speed is major factor. The more views that are displayed, the greater the demands placed on the video subsystem. The Spectrum plot is the fastest.

The 3-D Surface and Spectrogram views are significantly slower than the Time Series or Spectrum views. You may want to close these views if you are not using them. Alternatively they will run slightly faster if minimized to an icon along the bottom of the display.

Notes:

If only the Time Series plot is active, the system will not perform an FFT and will function much like a digital storage scope

See also: FFT size, Settings


Measurement Accuracy

Frequency Accuracy:

The frequency accuracy depends directly on the accuracy of the sampling clock on the sound card. This is typically a fraction of a Hertz (Hz). You may wish to check your sound card by using a known signal source for comparison.

Amplitude Accuracy:

By default, the analyzer is calibrated to show the relative power levels where 0dB is the strongest possible 8, 16 or 24 bit signal. It is possible to calibrate the amplitude axis by equating a known reference signal level with a measured sampling level; however, the frequency response of your sound card still comes into play (the frequency response of your sound card ultimately determines the ultimate accuracy of the measurement). It is possible to use the mic compensation feature to compensate for the frequency response of your sound card. By measuring the response of a known reference signal (e.g. white noise generator or swept sine measurement) you can determine the frequency response of the input circuitry of your card. This can be placed on the clipboard using the <Edit> <Copy> command, pasted into a text editor and saved as a mic compensation file (you may want to use a spreadsheet to bias the values so that they center around 0 dB).

Octave Scaling Accuracy:

Historically, spectrum analyzers have utilized analog filters for each band and standards (ANSI S1.11-2004) have been developed which specify the performance of these filters . SpectraPLUS-SC uses a Fast Fourier Transform (FFT) to compute the spectral data and then derives the octave data. This algorithm uses the same ISO center frequencies and bandwidths as analog instruments; however, the FFT filtering method produces much steeper "shoulders". These digital filters meet or exceed the performance of traditional analog filters.

Dynamic Range:

The theoretical dynamic range of the system is as follows:

8 bit sampling precision = 48 dB

16 bit sampling precision = 96 dB

24 bit sampling precision = 144 dB

The actual dynamic range achieved is dependent upon the performance of your sound card.

Notes:

The microphone input on some sound cards utilize Automatic Gain Control (AGC). If this is the case, you will not be able to calibrate the amplitude axis.

See also: Scaling, Settings , Calibration


Aliasing

Aliasing is a situation in which the signal being sampled contains frequencies which are greater than 1/2 the sampling rate. If this is the case, the signal will be detected by the analyzer but the frequency will be incorrect. For instance, if the sampling rate is 6,000 Hz and a 3,500 Hz signal is applied to the input, the analyzer will show the signal at 2,500Hz.

All sound cards provide low pass filtering to prevent aliasing; however, when decimation is used you should either use an external low pass filter or check the box labeled "Apply Low Pass Filter when Decimating" in the Settings dialog box.

See also: Sampling Rate, Measurement Accuracy , Decimation Ratio , File Decimate


Keyboard Shortcuts

The main toolbar contains icons for controlling the processor. Each icon's label has one of the letters underlined. Pressing the <Alt> key and the underlined letter will perform the same action as a button press.

In the same way, keyboard shortcuts are available for each menu item. Pressing the <Alt> key and the underlined letter in the menu and sub-menu item will allow quick access to the commands. For instance pressing <Alt> <V> followed by <Alt> <T> will toggle the Time Series view.

Additional shortcut keystrokes called "accelerator keys" are available for selected menu items:

Accelerator keys:

F1 Help

F2 Run

F3 Stop

F4 Processing Settings tabbed dialog box

F5 Plot Options tabbed dialog box

F6 Trigger dialog box

F7 Save Configuration File

F8 Load Configuration File

F10 Data Logging Setup

F11 Signal Generator Utility

Ctrl+0 File Open

Ctrl+S File Save

Ctrl+A File Save As

Ctrl+P File Print

Alt+F4 Exit SpectraPLUS-SC

Ctrl+Z Undo last edit

Ctrl+Del Edit Cut

Ctrl+Ins Edit Copy

Shift+Ins Edit Paste Insert

Ctrl+L Play Special - Loop

Shift+F5 Window Cascade

Shift+F4 Window Tile Vertical

Shift+F3 Window Tile Horizontal

Other Special Keystrokes:

Pressing the return key or the (+) key in the post-processing mode will cause the analyzer to make a single measurement and then stop (single step). The averaging is not reset between steps.

Pressing the minus key (-) will cause the analyzer to step backwards in the file. The step size used corresponds to the current overlap percent setting.

Time Series plot must have the "focus" for these special keystrokes to function.

The Focus:

If you click the mouse on one of the scrollbars, that control then gains the "focus" and gains keyboard control. What this means is that you can then use the keyboard arrows to adjust its setting up and down. For example, clicking once on the Average control on the toolbar will then allow you to use the up/down arrow keys to adjust the averaging block size. The same is true for each of the scroll bars.

See also: Toolbar, Status bar


Toolbar

Toolbars

SpectraPLUS-SC contains both a main application toolbar and individual view toolbars:

Main Application Toolbar

Secondary Toolbar

Individual View Toolbars

See also: Basic Operation, Keyboard Shortcuts , Cursor Measurements


Status Bar

The status bar is located along the bottom edge of the application. It contains the status of key processing parameters:

Run status (Stopped, Running etc).

Operating Mode

Sampling Format.

FFT size

Smoothing window

Notes:

  • Clicking the mouse on either the sampling rate, FFT size, or smoothing window items will popup a menu allowing you to quickly change the current settings (the sampling rate cannot be changed when a WAV file has been opened).
  • Double clicking anywhere in the toolbar background will activate the settings dialog box.


Technical Support

Please feel free to call or write.

Before calling, make sure that your sound board is properly installed and that the correct sound driver is installed. A good test to determine if your sound card is working is to run the "Sound Recorder" utility provided with Windows in the Accessories group. Also, take a moment to view the "README.TXT" file for additional instructions.

Mail: Pioneer Hill Software LLC, 342 Lavender Meadows Dr, Sequim WA 98382 USA

Voice: 360 697-3472

Email: pioneer@spectraplus.com

Website: www.spectraplus.com

Copyright 1993-2021, PHS

All Rights Reserved.

Legal Notices and Trademark attributions.

All trademarks are the property of their respective owners.


Acoustic Response of a Room

Measuring the acoustic response will enable you to properly adjust the equalizer settings on your sound system for optimum performance. A typical procedure is described below:

Key Settings:

Mode: Real-Time

Views: Spectrum, Time Series

Amplitude axis: Logarithmic

Frequency axis: 1/3 Octave

Standard Weighting: Flat

Mic compensation: Yes, if your mic is not sufficiently "flat"

Sampling rate: 44100Hz

FFT size: 8192 or 16384.

Decimation: 1

Averaging size: infinite

Smoothing Window: Uniform

Sampling Format: 16 bit, Mono

Procedure:

  • Set your sound system equalizer settings to zero or take it off line.
  • Connect a pink noise generator to the input of your sound system.
  • Place the measurement microphone in the center of the room.
  • Adjust the sound card input gain and/or sound system output gain to produce an "on-scale" reading on the time series view.
  • Run the analyzer and examine the spectrum view. Stop the analyzer when the averaged spectrum response has settled sufficiently.

Interpret the results:

An acoustically "flat" room will produce a perfectly flat spectrum. In this instance, we are not concerned so much with the absolute values of the spectrum as with their relative response. Each 1/3 octave band corresponds to a slider on your 1/3 octave equalizer. Simply adjust the sliders on your equalizer to compensate for the acoustic response of the room. You may wish to run a second test to verify the results.

Narrowband frequency response (optional):

One limitation of 1/3 octave analysis is that each band represents a rather wide span of frequencies. If narrowband frequency components are present, 1/3 octave analysis lacks sufficient resolution to detect these components. Set the frequency axis scaling to linear and substitute white noise instead of pink and repeat the measurement above (you may wish to use a smaller FFT size such as 1024)


Total Harmonic Distortion Analysis

Real world audio devices introduce distortion in addition to the desired response. Total Harmonic Distortion (THD) is a measure of this quantity.

THD is the ratio of the harmonic power to the fundamental power. It is expressed as a percentage. The lower the THD value, the "cleaner" the response. A typical THD measurement will use a 1kHz reference test tone. This reference signal is passed through the audio device under test,and its THD computed from the spectrum

Key Settings:

Mode: Real-Time

Views: Spectrum, Time Series

Amplitude axis: Logarithmic

Frequency axis: Linear

Standard Weighting: Flat

Mic compensation: None

Sampling rate: 44100Hz

FFT size: 8192

Decimation: 1

Averaging size: 10

Smoothing Window: Hanning

Sampling Format: 16 bit, Mono

Procedure:

  • Connect a 1kHz test tone to the imput of the device under test.
  • Connect the output of the device under test to the input of your sound card.
  • Run the analyzer for sufficient time to allow the spectrum response to settle.
  • Select <Total Harmonic Distortion> under the <Utilities> menu item.


Transfer Functions

A transfer function is a total measurement of the amplitude and phase response of an audio device.

A key part of an accurate transfer function is the removal of the input test signal response from the final measurement. This is done by passing a sample of the input signal to the second channel of the analyzer and removing its response from the response of the device under test.

You should use logarithmic amplitude scaling; subtracting two logarithmic quantities equates to division of their ratio values.

Key Settings:

Mode: Real-Time

Views: Spectrum, Phase

Sampling Rate: At least twice the highest frequency produced by the device under test

FFT size: 4096 typical

Averaging: 4

Peak Hold: Off

Smoothing Window: Hanning

Dual Channel Spectral Processing: Real Transfer Function Left/Right"

Sampling Format: 16 bit Stereo

Frequency scaling: your choice

Amplitude scaling: Logarithmic

Spectral Weighting: flat

Procedure:

  • Connect a noise generator to the input of the device under test.
  • Connect the output of the device under test to the Left input channel of the analyzer.
  • Connect same signal generator to the Right input channel of the analyzer.
  • Run the analyzer until the average spectrum response settles to a consistent level.

Interpretation:

The spectrum display contains the amplitude response of the device and the phase display contains the phase response.


Impedance Measurements

This is a 2 channel transfer function measurement which gives excellent results for both the impedance magnitude and phase. The measurement will converge quickly. You will need a 1k ohm and a 10 ohm resistor.

Setup the analyzer as shown in the screen shots below.

Step 1 - Calibrate to a 10 Ohm resistive load

Place a 10 Ohm reistor in place of the speaker in the diagram above.

Set the Signal Generator to "1 kHz tone"

Go to the Calibration - Left Channel tab of of the processing settings

Press the "Measure Reference Signal" button

Go to the Calibration - Right Channel tab of of the processing settings

Now press the "Measure Reference Signal" button

Press Ok and close the processing settings dialog box.

Step 2 - Validate the calibration

(Leave the 10 Ohm resistor in the circuit)

Set the Signal Generator to "White Noise"

Run the analyzer - the Spectrum plot should have a flat line at 10 Ohms and the phase plot should be flat at 0 degrees.

Step 3 - Measure the speaker impedance

Remove the 10 Ohm resistor and connect the speaker or headset you wish to measure

Run the Analyzer

The Spectrum Plot shows the speaker impedance

The Phase Plot shows the speaker phase response

Main Analyzer Settings:

Scaling Settings - Both Channels:

Calibration Settings - Left Channel:

Calibration Settings - Right Channel:


Voice Analysis

By its very nature, the spectrum of a person's voice is quite complex. Because the spectrum changes rapidly with time, we will use what is called "time-frequency" analysis techniques to characterize the voice.

Key settings:

Mode: Recorder/Post-Processing

Views: Spectrogram, Spectrum

Sampling rate: 22050 Hz

FFT size: 512 or 1024

FFT overlap percentage: As detailed below.

Decimation: 1

Smoothing window: Hamming

Averaging size: 2 or 3

Amplitude Scaling: Logarithmic

Frequency Scaling: Linear

Sampling Fromat: 16 bit mono.

Mic Compensation: As required.

Spectral weighting: Flat

Procedure:

  • Record a short time segment of the voice to be analyzed.
  • Change to the Post-Processing mode.
  • Initially set the Overlap Percentage to zero.
  • Click the rewind button to position the current file position to the start of the file.
  • Run the analyzer until the spectrogram display is filled or the end of file position is reached.
  • Identify the voice segment to be analyzed in detail by highlighting a portion of the spectrogram and play it back through the speakers.
  • Use the left mouse button to readout the time corresponding to the start of the voice segment under analysis.
  • Use the scroll bar on the main application toolbar to adjust the current file position to the start of the desired time segment.
  • Set the overlap percentage to 90%
  • Run the analyzer and examine the spectrogram view.
  • Readjust the overlap percentage to expand/contract the total time displayed on the spectrogram time axis to give you the desired detail.
  • Double click at any point on the spectrogram to place the spectrum corresponding to the cursor position in the spectrum view. (if the time series view is displayed, the corresponding time series data will be displayed as well)
  • You can open the spectrogram display options dialog box and adjust the plot top, plot range and frequency span to optimize the display. The spectrogram will be recomputed with the new settings when the dialog box is closed.

Notes:

The same procedure applies when using the 3-D surface plot in place of the spectrogram.


Machine Vibration Analysis

Vibrations in machines can cause equipment failure, down-time in production, and poor manufacturing of materials. These failures cost industry billions of dollars every year. Discovering causes and sources of these vibrations can save money and lead to increased productivity.

Key Settings:

Mode Recorder/Post-Processing

Views 3-D surface, Spectrum

Sampling rate 11050 Hz

FFT size depends on test length (15 min. test use 32k)

FFT overlap percentage As detailed below.

Decimation 15 for low frequency vibration < 60 Hz

Smoothing window Hanning

Averaging size 20

Amplitude Scaling Logarithmic

Frequency Scaling Linear

Sampling Precision 16 bit mono

Input Accelerometer

Test Procedure:

  • Start the Recording
  • Slowly ramp-up machinery to full speed. Then let machines run for a few minutes at full speed and ramp-down until stopped.
  • Stop the Recording
  • Change to the Post-Processing mode.
  • Initially set the Overlap Percentage to 50%.
  • Click the rewind button to position the current file position to the start of the file.
  • Run the analyzer until the 3-D display is filled or the end of file position is reached.
  • You should easily see the ramp-up and ramp-down. Look for resonances and beat frequencies these are often the cuase of damage.
  • Use the left mouse button to readout the time corresponding to the start of the resonances or beats.
  • If the machine produces a product, inspect the product that corresponds to the times of the resonances and beats for defects.

Note:

The same procedure applies when using the spectrogram in place of the 3-D surface plot.


Impact Hammer test

Impact Hammer testing

Click here for a technical article detailing impact hammer testing


3-D Surface Display Options

The 3-D Surface display options dialog box can be activated by selecting the Options | Plot Options menu and clicking on the 3-D Surface tab or by clicking on the options dialog icon button in the view toolbar .

Frequency Span: If "Full Span" is selected, the display will show the entire available frequency span. When "Custom Span" is selected, the frequency values can be directly entered.

Display Update Interval: Normally a new line is added to the plot whenever a new FFT is computed. You may elect to only update the plot every N seconds. This is most useful in the Real-Time mode. In this way, long term frequency -vs- time studies can be conducted.

Plot Top/Range: The Plot Top and Range values determine the amplitude values. Plot Top is the value at the upper edge of the plot. The lower edge of the plot is always equal to the Top value minus the Range value. When linear scaling is selected for the amplitude axis, the Plot Range value is set to zero and cannot be changed.

Colors: The color of each plot feature can be changed. The "Default" button will restore the initial colors settings. The Multicolor Gradient option displays the data with amplitudes shown in a color gradient; a color bar to the right of the plot shows the amplitude/color relationship and the cursor measurements will also show amplitude values. The "Custom Color" option lets you choose the minimum and maximum colors.

Show Toolbar: Show or hide the plot toolbar.

Notes:

  • Any changes to the display option will cause the 3-D Surface plot to automatically rebuild itself with the new settings (press the Escape key to cancel the rebuild).
  • The display can also be cleared by using the Clear All command under the View menu.

See Also: 3-D Surface View


Pulse Waveform

The Pulse waveform produces a single pulse. The width of the pulse and the repetition interval can be adjusted by clicking the "Details" button. If the "One Shot Pulse" option is checked, the generator will automatically stop after the pulse has been emitted. Press the "Run" button to generate another pulse.

See Also: Signal Generator , Squarewave


View Toolbars

Selection Arrow: Allows you to graphically select a time segment to edit. Click the selection arrow, then click and drag the mouse across a range of data. When the mouse button is released, the selected time segment will be shown with inverse video. Edit operations (playback, filtering, cut/copy/paste) can then be performed.

Playback Button: Playback the selected time segment. A time segment must first be selected. This performs the same action as the <Edit><Play> menu item.

Filter Button: Filter the selected time segment. A time segment must first be selected. This performs the same action as the <Edit><Filter> menu item

Zoom Selector: Allows you to graphically select the region to expand. Click the Zoom Selector button, then click and drag the mouse across a range of frequency/time data. When the mouse button is released, the display will zoom in to show only the selected data set.

Zoom In 2X: Adjusts the horizontal axis to display one half as many data points.

Zoom Out 2X: Adjusts the horizontal axis to display twice as many data points.

Zoom Out Full: Shows the entire range of frequency/time.

Display options button: Activates the display options dialog box for the associated view. This performs the same action as the <Options><Spectrum> menu item.

Line Graph button: Changes the spectrum plot type to a Line Graph.

Stepped Bar Graph button: Changes the spectrum plot type to a Stepped Bar Graph.

Bar Graph button: Changes the spectrum plot type to a Bar Graph.

Autoscale button: Evaluates the currently displayed data and sets the Plot Top/Range parameters to optimum settings.

Markers: Access the marker settings (spectrum plot only)

Plot Top: Changes the value of the top edge of the amplitude axis scale. This corresponds to the same control in the display options dialog box for the view. Clicking on the up/down arrows allows you to quickly adjust the plot window as needed.

Plot Range: Changes the total displayed range of the amplitude axis scale. This corresponds to the same control in the display options dialog box for the view. Clicking on the up/down arrows allows you to quickly increase or decrease the displayed dynamic range.

Peak Hold: Set Peak Hold type peak hold (spectrum plot only)

: Main Toolbar


Cross Channel Delay

The Cross-Spectrum , Coherence Function and Complex Transfer Function operations are very sensitive to phase delays between channels. This feature allows you to delay one channel with respect to another to compensate for this delay. The Delay Finder Utiltity can be used to measure the actual delay.

All delay values are rounded off to the nearest sampling interval (1/ Sampling Rate ). Clicking the up/down arrows to will change the delay value by exactly one sampling interval.

Notes:

This delay only applies when you are in stereo mode.

See Also: Delay Finder , Settings , Dual Channel Processing Options


Octave Scaling

Octave band analysis has been defined as a standard for acoustic analysis. This type of spectrum is called constant percentage band (CPB) because each frequency band is a constant percentage of its center frequency. In other words, the analysis bands become wider in proportion to their center frequencies. 1/1 and 1/3 octave spectra are the most frequently used formats in acoustical measurements - three 1/3 octave bands encompass one octave.

It can be argued that the frequency resolution in octave band analysis is too poor to be of much use, but a major advantage of constant percentage band analysis is that a very wide frequency range can be displayed on a single graph and the frequency resolution at the lower frequencies can still be fairly narrow. The naturally occurring ambient spectra will be found to slope downwards at the highest frequencies, and a constant percentage band (CPB) spectrum of the same data will usually be more uniform in level over a broad frequency range. Pink noise slopes downward at 3dB per octave and produces a perfectly flat octave spectrum.

Standard octave band center frequencies and bandwidths have been agreed upon by the international community. These standards are used by SpectraPLUS-SC.

Most octave analyzers are analog instruments and use analog filters for each band. SpectraPLUS-SC is a digital analyzer and utilizes the FFT algorithm to compute the narrowband (linear) frequency spectrum. This linear frequency spectrum is then apportioned among the octave bands to produce the corresponding octave spectrum.

As you would expect, the FFT size directly determines the number of octave bands that can be computed. At the low frequencies, there are only a small number of narrowband bins which fall within the corresponding octave band limits. The number of 1/3 Octave bands produced for various FFT sizes are listed below:

FFT size Number of 1/3 Octave bands

32 3

64 6

128 10

256 13

512 16

1024 19

2048 22

4096 25

8192 28

16384 31

32768 34

65536 36

The actual band frequencies are determined by the sampling rate and decimation ratio.

See also: Scaling, FFT size


Contents

Introduction

Welcome

What is a spectrum analyzer?

System Requirements

Making a Measurement

Basic Operation

Setting up the analyzer

Cursor measurements

Right Mouse Click Actions

Printing the results

File Management

Working with Audio Files

Importing Files

Exporting Files

File Options

File Decimate

File Merge

Set Paths

Configuration Files

Editing

Cut/Copy/Paste

Play/Play Special

Filtering

Mute

Gain Adjust

DC Offset

Select All

Metadata

Modes

Real-Time

Post-Processing

Recorder

Plots

Time Series

Spectrum

Phase

Spectrogram

3-D Surface

Options

Settings

Scaling

Markers

Triggering

Calibration

Run Control

Devices

Utilities

Signal Generator

Save Signal to WAV file

Peak Frequency

Peak Amplitude

Total Power

Total Harmonic Distortion (THD)

Total Harmonic Distortion + Noise (THD+N)

Total Harmonic Distortion + Noise (THD+N) versus Frequency

InterModulation Distortion (IMD)

Signal to Noise Ratio (SNR)

Signal to Noise Plus Distortion (SINAD)

Noise Figure (NF))

Delay Finder

Stereo Phase Scope

Reverberation Time

Equivalent Noise Levels (Leq)

Cumulative Sound Exposure Level (cSEL)

Alerts

Licensing

Status and Authorization

Automation

Data Logging

Alerts

Macro Command Processor

Dynamic Data Exchange (DDE) - Overview)

DDE Commands

DDE Data Request Items

COM API - Overview

COM API - Initialization

COM API - Control Functions

COM API - Read Data Functions

Performance Issues

Processing Speed

Measurement Accuracy

Aliasing

Misc

Keyboard Shortcuts

Toolbars

Status bar

Application Notes

SpectraDAQ-200

Technical Support


Amplitude Axis Scaling

Two basic amplitude scaling types are linear and logarithmic. They are related by the following equations:

Linear value = 10 ^ (Log value/20)

Log value = 20 * Log10 (Linear value)

Linear amplitude scaling makes the largest components in a spectrum very easy to see and to evaluate, but very small components may be overlooked completely. Linear scaling may be adequate in cases where the components are all about the same size. Logarithmic amplitude scaling clearly shows the low level signals in the presence of stronger signals. Logarithmic scaling is the default.

Log Magnitude scaling uses linear units on a logarithmic scale.


Frequency Axis Scaling

There are two basic types of frequency axis scaling: Narrowband and Octave. Narrowband scaling can be displayed in either Linear or Logarithmic format; Octave scaling is always displayed in Logarithmic format.

Narrowband Scaling

The spectrum produced by an FFT algorithm is also known as a narrowband spectrum. Each spectral line is a constant bandwidth and typically quite narrow. This narrowband spectral data can be displayed on either a linear or logarithmic scale but the frequency resolution is determined by the sampling rate and FFT size and remains unchanged.

Octave Scaling

Octave scaling produces a set of bands with constant proportional bandwidth. You can select from a range of octave formats. 1/1 and 1/3 octave are the most commonly used formats. See the Octave Scaling topic for more details.

See Also: Amplitude Axis Scaling , Scaling


Measurement Utilities

These measurement utility windows can be resized as required by the user and their contents will update anytime a new spectrum is computed. If the analyzer is configured to display the spectrum of both the left and right channels,these utility windows will also show the values for both channels. The left channel value will appear above the right channel value.

Peak Frequency

Peak Amplitude

Total Power

Total Harmonic Distortion (THD)

Total Harmonic Distortion + Noise (THD+N

THD+N vs Frequency

InterModulation Distortion (IMD

Signal to Noise Ratio (SNR

Signal to Noise and Distortion (SINAD)

Noise Figure (NF)

Notes:

The contents of any open utility window will be printed on the right margin of the spectrum view .


Overload Detection

Overload is a condition where the input signal strength exceeds the full scale sensitivity of the sound card input. Known in the analog world as "clipping", it will cause severe distortion to occur.

If overload detection is enabled, the analyzer will test each incoming data block to determine if an overload condition is present and display a message in the status bar along the lower edge of the application. This message is shown in bright red and is very noticeable.

If you have chosen to exclude overloaded data from processing, the analyzer will not compute the spectrum when an overload condition occurs.

If an overload condition occurs, you will need to either reduce the input signal strength or decrease the input sensitivity of the sound card using the sound card's mixer utility.

See Also; Settings , Calibration


Main Toolbar

The contents of the main application toolbar depend upon the Mode. Each toolbar contains icon buttons for controlling the processor status (Run/Stop etc). In addition, the Real-Time and Post-Processing modes contain controls for adjusting the averaging block size and peak hold status on the fly. These controls duplicate the functionality found in the Settings dialog box.

The Recorder and Post-Processing modes have a horizontal scrollbar which tracks the current position within the .WAV file. The left-hand label shows the current position within the file and the right-hand label shows the total time in the file.

Real-Time

Run Start the processor

Stop Stop the processor

Avg Adjust the averaging block size

Recorder

Rec Begin recording audio data

Stop Stop recording or playing

Fwd Move current position to end of the file

Rwd Move current position to beginning of the file

Play Playback audio data through speakers

Scroll Adjust current position within the file.

Post-Process

Run Start the processor

Stop Stop the processor

Rwd Move the current position to beginning of the file

Avg Adjust the averaging block size

Scroll Adjust the current position within the file

Load Configuration - load a configuration file

Note:

Double clicking any where in the toolbar background will activate the settings dialog box.

See Also: View Toolbars


Spectrum Display Options

The spectrum display options dialog box can be activated by selecting the Options | Plot Options menu and clicking the Spectrum tab or by clicking on the options dialog icon button in the view toolbar .

Plot Type: You can change between line and bar graphs by clicking on the toolbar controls or from the spectrum display options dialog box. The line or stepped bar graph option is recommended when using large FFT sizes . The bar graph option is recommended when Octave scaling is selected or when zoomed in with narrowband scaling.

Plot Top/Range: The Plot Top and Range values determine the amplitude axis scale values. Plot Top is the value at the upper edge of the plot. The lower edge of the plot is always equal to the Top value minus the Range value. When linear scaling is selected for the amplitude axis, the Plot Range value is set to zero and cannot be changed.

Peak Hold: Control the behavior of the Peak Hold trace showing the highest amplitude values for each frequency bin. For information on the Peak Hold feature see the Peak Hold topic.

Pull Cursor to Trace: If this option is enabled, the measurement cursor will automatically "pull" to the spectrum trace along the amplitude axis.

Pull to Peak Hold if enabled: this allows you to have the cursor pull to the peak hold trace instead of the normal trace. If peak hold is off the cursor will pull to the normal trace.

Thick Traces and Markers: Increases the line thickness of these items for better visibility on some displays

Show Toolbar: Show or hide the plot toolbar.

Show Overlay Controls: Show or hide the overlay controls on the right side of the Spectrum Plot. A small + or - button below the overlay controls also controls this feature.

Colors: The color of each plot feature can be changed. Only solid colors can be selected. The "Default" button will restore the initial colors settings.

Marker Options: Setup the markers . The marker settings can also be accessed by clicking the "Mrk" button on the spectrum plot toolbar.

Grid Lines: Show or hide the grid lines.

Frequency Span: Although the displayed frequency span can easily be selected using the zoom buttons on the toolbar, you can also manually enter the span yourself. The span is limited to the total available span. The actual span displayed may vary slightly from the requested values because the values are adjusted to the nearest bin.

Display Update Interval: Controls how often the display is updated. This is useful on some laptop computers with slow display refresh rates to reduce flicker.

Show Total Power Meter: the total power meter is located along the right side of the spectrum plot and shows the "Total" power of the spectral data. This value is equal to the Total Power utility. A different weighting curve can be applied to this value (this is set in the Scaling dialog box). A small + or - button below the meter also controls this feature.

Show Zoomed Power Level: If enabled, the RMS Power level will be computed and displayed above the top left corner of the plot. This power level is computed for the currently displayed span and will change as you zoom in and out. Use this feature to compute the power within any segment of the spectrum. The weighting used for this calculation is the same as the spectrum weighting parameter in the scaling dialog box.

See Also: Spectrum View , View Toolbar


Overlays

The overlay feature allows you to display multiple spectral traces on the same plot for quick comparisons with previous measurements.

Controls for creating and clearing overlays are located along the right edge of the spectrum view. Up to 12 overlays can be displayed for each channel. In addition, two "Composite" overlays can be set which is computed from other overlays.

Note: You can show/hide the entire set of overlay controls to save space on the plot by clicking the small box on the bottom right corner of the plot.

Spectral Overlay Operations

Clicking one of the numbered "Set" overlay buttons will create an overlay using the contents of the current spectrum. The overlays can be turned On and Off by clicking the checkbox labeled "On".

Clicking the "Options" button brings up a dialog box with additional controls:

Legend: You may enter a descriptive legend up to 24 characters long. This legend is displayed on the spectrum view and printed on any printouts. The legend is saved as part of the overlay file format and restored whenever you load the file from disk.

Offset: You can apply an offset in dB to each overlay; this is useful for aligning overlays for comparison purposes.

Disk Storage: Use these controls to save and load the overlay traces from disk. Temporary overlay files are used for storing the overlay data between sessions. These files are named L1.OVL, L2.OVL, L3.OVL, L4.OVL, L5.OVL, L6.OVL, R1.OVL, R2.OVL, R3.OVL, R4.OVL, R5.OVL through R14.OVL. Do not use these filenames for saving your own data as they will be overwritten. Any offset is NOT included in the saved overlay file contents.

Trace Colors: these controls allow you to select the display colors for each of the overlay traces and legends. These colors are also used when printing the spectrum view on a color printer. If you print to a monochrome printer, each of the overlays will have a unique line style.

Copy to Left/Right Channel: This allows you to quickly copy an overlay to the opposite channel.

Legend Display Size: this value will adjust the width of the rights border of the spectrum plot to show the specified number of legend characters. Space may be reserved for up to 24 characters.

Overlay File Format:

Overlay files can be created manually. Overlay files are simple ASCII text files containing two columns of numbers separated by a tab. The left column contains the frequency; the right column contains the corresponding amplitude value. If a semicolon is placed on the first column, the entire line will be treated as a comment and ignored. Legends are the first line in the file and have a semicolon in the first column. At least 3 data points are required and up to 32768 points can be used.

A cubic spline algorithm is used to interpolate between each data point. This file format is interchangeable with the microphone compensation file format.

Composite Overlay

Pressing the overlay button labeled "C1" or "C2" will allow you to setup a "Composite" overlay. The composite overlay can be either an average of up to 12 selected overlays or the difference between any 2 selected overlays. Any offset selected for the dependent overlays is applied when the composite values are computed. An offset can also be applied to the composite overlay itself.

Note: If you regularly interchange overlay and microphone compensation files, you may want to set their file paths (See Set Paths command) to the same directory. You can then easily select whether to use .MIC or .OVL file types from the file open/save dialog boxes.

Interpolation: When manually creating overlays the results can have unexpected excursions due to the cubic spline interpolation algorithm. You can turn off this algorithm by adding a line to the beginning of the overlay file as follows

;SPLINE OFF

This can also be done with mic compensation files.


Time Series Display Options

The Time Series display options dialog box can be activated by selecting the Options | Plot Options menu and clicking on the Time Series tab or by clicking on the options dialog icon button in the view toolbar .

Plot Type: If Amplitude (linear) is selected, the display is similar to an oscilloscope (the data is scaled linearly around the centerline). When the Energy (logarithmic) option is selected, the data is scaled in Decibels with 0 dB representing 100% full scale. The actual scale values can be modified by using the calibration option.

Plot Top/Center/Range: The Plot Top, Center and Range values determine the amplitude axis scale values. When the amplitude (linear) option is selected, the Plot Top value determines the upper plot limit, the Center determines the mid point and the Plot Range value is not used. When the Energy (logarithmic) option is selected, the Plot Top is the value at the upper edge of the plot and the lower edge of the plot is equal to the Top value minus the Range value. The Center value is not used with logarithmic scaling.

Start and Stop times: This allows you to directly specify the time span to display instead of using the zoom controls.

Threshold Limit Line: displays a dashed horizontal line at the level you specify.

Channel Selection: This control allows you to change the display mode from single to dual channel configuration. In addition, it allows you to display the difference between the left and right channels and X/Y plots. If Mono mode is selected (see Settings), this control is disabled and only the left channel can be displayed.

Colors: The color of each plot feature can be changed. Only solid colors can be selected. The default button will restore the initial colors settings.

Grid Lines: Show or hide the grid lines.

Show Toolbar: Show or hide the time series plot toolbar.

Pull Cursor to Trace: If this option is enabled, the measurement cursor will automatically "pull" to the time series trace along the amplitude axis.

Display Update Interval: Controls how often the display is updated. This is useful on some laptop computers with slow display refresh rates to reduce flicker.

Real Time Display Mode: Controls how much time that is displayed when the analyzer is running. FFT block size shows just the number of samples of corresponding to the current FFT. Extended time displays a longer period of time (default is 10 seconds).

See Also: Time Series View


Dual Channel Processing Options

Dual channel spectrum analysis provides several very powerful advanced measurements.

You must select the Stereo format before these options are available. Note that once you have opened or recorded a mono file, you cannot change to stereo; you must first close the file. If you are in the Real Time mode, you can change between mono or stereo at any time. It is also possible to combine two mono files into a single stereo file using the < File><Merge > command.

Independent Scaling and Calibration

This allows each channel to be scaled and calibrated independently. When selected each channel will be displayed in a separate window instead of in a split screen view. In addition the Scaling and Calibration dialogs will allow you to choose separate parameters for each channel. In addition, separate smoothing windows can be selected for each channel.

This feature allows you to analyze two completely different types of signals at once. For example you can configure the analyzer to show accelerometer data scaled in G's in one channel and 1/3 octave data scaled in SPL from a microphone in the other.

Dual Channel Processing Options:

  • Left Channel Only - processes and displays the auto-spectrum (magnitude) of the left channel only.
  • Right Channel Only - processes and displays the auto-spectrum (magnitude) of the right channel only.
  • Both Left and Right - processes and displays the auto-spectrum (magnitude) of both the left and right channels. The results are displayed in independent windows.
  • Add Left and Right - add the two channels. This performs a vector sum - if the channels are 180 out of phase the result is zero.
  • Average Left and Right - Averages the auto-spectrum of the left and right channels.
  • Real Transfer Function - computes and displays the real transfer function between the two channels.
  • Cross Spectrum - computes and displays the cross-spectrum of both channels.
  • Complex Transfer Function - computes and displays the complex transfer function between the two channels
  • Coherence Function - computes and displays the coherence function between the two channels.

Notes:

These are spectral processing options and do not apply to the time series view .

The Cross-Spectrum, Complex Transfer Function and Coherence Functions operations are very sensitive to phase delays between channels. Use the Cross Channel Delay feature to delay one channel with respect to the other.

Definitions

Auto-spectrum - calculated by multiplying a spectrum by its complex conjugate (opposite phase). The auto-spectrum is real and is identical to the magnitude response. The auto-spectrum is what is normally displayed in the single channel spectrum view .

Cross-spectrum - calculated by multiplying one spectrum by the complex conjugate of a second spectrum. The cross-spectrum is a complex quantity (has both real and imaginary components). The magnitude of the cross-spectrum represents the amount of power common to both channels, and the phase represents the phase difference between channels. For example, If two identical signals are 180 degrees out of phase, the magnitude of the cross spectrum is zero. If two channels are identical, their cross-spectrum is equal to the auto-spectrum of either channel alone.

Transfer Function - is the ratio between two channels and can be computed in one of two ways:

Real - this is the simplest method and is simply the ratio between the auto-spectrum (magnitude) of each channel. The relative phase of each channel does not contribute to the result.

Complex - this is the ratio between the cross-spectrum of the two channels and the auto-spectrum of the reference channel. The relative phase of each channel contributes to the result.

The transfer function is a very powerful feature. It allows you to quickly and accurately compute the frequency response of a device under test. See the topic " Transfer Functions " for more information.

Coherence Function - is the ratio of the squared magnitude of the cross-spectrum and the product of the auto-spectrum of both channels. It measures the degree of linearity between the channels and is analogous to the squared correlation coefficient used in statistics. Two perfectly coherent signals have a coherence value of 1.0 (0 dB).

See Also: Cross Channel Delay , Settings , Sampling Format


White Noise

White noise is a commonly used random noise waveform which has uniform amplitude for all frequencies. Its averaged spectrum is flat when viewed on a narrowband spectrum analyzer.

The cutoff frequency is governed by the sampling rate used by the analyzer.

See Also: Signal Generator , Pink Noise


Pink Noise

Pink noise is a commonly used random noise waveform in acoustics. It has more energy at the lower frequencies. It's amplitude decreases at a rate of 3dB per octave. Its averaged spectrum is flat when viewed on an octave spectrum analyzer. The cutoff frequency is governed by the sampling rate used by the analyzer.

See Also: White Noise , Signal Generator


kHz Tone

1 kHz Tone

This 1,000.0 Hz sinewave test tone is widely used for distortion measurements.

See Also: Signal Generator , Multiple Tones , IMD tones


Multiple Tones

This signal generator options allows you to configure your own set of tones. The tone waveform consists of up to 10 user defined tonals. You can select the number of active tones, their frequencies, relative amplitudes and phase.

The check box to the left of the frequency setting determines whether or not the tone is enabled. If the box is not checked, the associated tone will not be generated.

The frequency setting determines the tone frequency in cycles per second.

The relative power setting determines the amplitude of the tone compared to the other tones being generated. The power is specified in decibels (dB).

The phase setting determines the phase offset at the start of the waveform.

Apply Dithering - Dithering is intentional noise which is added in order to randomise the quantisation errors (rounding errors) when computing the waveform in order to reduce distortion. The noise itself isn't audible unless heavily amplified. Dithering is applied to all signal types but this option allows you to disable it for certain types of applications. It only disables it for the multitone signal type. The Dithering algorithm used is a triangular probability density function (TPDF) at a level of 1LSB pk-pk.

Load/Save: allows you to easily change between sets of tones. Creates a simple INI type file with the tone settings. The file extension is .tones and is located in the /Config folder by default

See Also: Signal Generator , 1 kHz Tone , IMD Tones


Phase Display Options

The phase display options dialog box can be activated by selecting the Options | Plot Options menu and clicking the Phase tab or by clicking on the options dialog icon button in the view toolbar .

Plot Top/Range: The Plot Top and Range values determine the phase axis scale values. Plot Top is the value at the upper edge of the plot. The lower edge of the plot is always equal to the Top value minus the Range value.

Colors: The color of each plot feature can be changed. Only solid colors can be selected. The "Default" button will restore the initial colors settings.

Pull Cursor to Trace: If this option is enabled, the measurement cursor will automatically "pull" to the trace along the phase axis.

Show Toolbar: Show or hide the plot toolbar.

Grid Lines: Show or hide the grid lines.

Frequency Span: Although the displayed frequency span can easily be selected using the zoom buttons on the toolbar, you can also manually enter the span yourself. The span is limited to the total available span. The actual span displayed may vary slightly from the requested values because the values are adjusted to the nearest bin.

Display Update Interval: Controls how often the display is updated. This is useful on some laptop computers with slow display refresh rates to reduce flicker.

See Also: Phase View


Power Spectral Density

The Power Spectral Density option causes the analyzer to normalize the spectrum to a 1 Hz bandwidth. This is used for making noise power measurements. For instance, when measuring a noise signal without the PSD option selected, the amplitude will change with FFT size and sampling rate. Using the PSD option, the resulting amplitude will be independent of FFT size and sampling rate.

You can select between Units / Sqrt(Hz) or Units^2/Hz. Units^2/Hz is most often used.

You should select Linear amplitude axis scaling and narrowband frequency axis scaling when using the PSD option.

Note: The PSD option is used for noise type signals; it is not accurate for sinusoid (tonal) type sigals.

See Also: Scaling


Frequency Sweep

Frequency Sweep (Swept Sine)

The swept sine waveform produces a sine wave which changes frequency over time. The start and stop frequencies determine the limits of the sweep signal. The start frequency can be less than the stop frequency in which case the sweep frequency will decrease over time.

The sweep type can be either Linear or Logarithmic. This determines the rate of change of the sweep frequency.

Jump Back to Start Frequency - when the stop frequency is reached the signal will immediately start again at the start frequency

Sweep Back to Start Frequency - when the stop frequency is reached the signal will sweep back to the start frequency.

Stop After a Single Sweep - the signal generator will stop after the sweep completes; otherwise it will repeat continuously until the generator is stopped.

Sweep Time - specifies how long the frequency takes to change from the start to the stop limits. This value is specified in milliseconds.

Swept sine waveforms are useful for frequency response testing. Set the averaging block size to 1 and use the Peak Hold option to capture the peak amplitude as the signal is swept across the frequency span. The larger the FFT size used, the longer the required sweep time.

Sweeping too fast with large FFT sizes will "smear" the amplitude as the signal is changing frequency withing the underlying time series segment.

See Also: Level Step , Signal Generator


Sawtooth

The Sawtooth waveform produces a continuous train of ramps. The frequency and slope of the sawtooth can be adjusted by clicking on the "Details" button on the main screen. The Frequency setting specifies how many ramp cycles are generated each second. The Slope setting specifies whether the ramp rises or falls over time.

See Also: Signal Generator


Triangular Waveform

The Triangular waveform produces a continuous train of triangular signals. The frequency of the triangular waveform can be adjusted by clicking on the "Details" button on the main screen. The Frequency setting specifies how many triangular cycles are generated each second.

See Also: Signal Generator


Squarewave Signal

The Square waveform consists of a continuous series of pulses. The frequency and duty cycle of the square wave can be adjusted by clicking the "Details" button on the main screen. The Frequency setting determines the number of pulses generated each second. The Duty Cycle setting determines the pulse width as a percentage of the period.

See Also: Signal Generator , Pulse waveform


User Defined Waveform

The user defined waveform option allows you to use a WAV file as the signal source. The signal will be looped continuously until you press the Stop button. Simply click on the "Pick" button to choose the .WAV file. Since the signal generator loads this file into memory, you must have sufficient RAM on your computer.

SpectraPLUS-SC allows you to build your own .WAV files from an ASCII text or binary file of sample data. See the < File><Import > topic for more details.

See Also: Save Signal to .WAV file , Signal Generator


Generator Output Level

Clicking on the "Level" button on the signal generator will allow you setup and control the generator output level.

In order to accurately control the generator output level we need to know the "full scale" signal level that your sound card can produce. This is the signal level produced when a 100% full scale 8, 16 or 24 bit sine wave is generated. Because most sound cards have the ability to control the output volume, "full scale" is not necessarily the same thing as the "maximum possible" signal level unless the volume control is set to its maximum value.

If you don't know this full scale level, you can still control the relative output level. This value can be entered in either dB or Percent Full Scale.

If you have a volt meter or scope handy, you can easily measure the full scale output level. Simply set the output level to 0 dB Full Scale and generate a 1kHz tone. Now measure this value and enter the level in Volts RMS.

Keep in mind that if your sound card has a volume control, you will need to reset the output level if the volume control is adjusted. Most sound cards save the volume settings between sessions.

Notes:

When a single tone is generated, the output level is as specified above. When two tones are generated, the level will drop by 6dB so that clipping will not occur when the tones are in phase.


Level Sweep

The level sweep waveform produces a sine wave which changes amplitude over time. You select the start and stop levels in decibels, the tone frequency, and sweep time. The start level can be less than the stop level in which case the signal level will decrease over time.

The sweep time specifies how long the level takes to change from the start to the stop limits. This value is specified in milliseconds. The sweep will repeat continuously until the generator is stopped.

See Also: Frequency Sweep , Signal Generator


IMD Test Tones

InterModulation Distortion ( IMD ) testing requires two independent tones at different amplitudes. The amplitude of the higher of the two tones is typically 12dB (4:1 ratio) lower than the low frequency tone. Several standard tone pairs are provided as well as the ability to select your own custom tones.

See Also: Signal Generator , Multiple Tones , IMD


Application Notes

Acoustic response of a room

Voice analysis

Transfer Functions

Total Harmonic Distortion (THD)

Impedance Measurements

Machine Vibration Analysis

Impact Hammer Testing


Audio Band

Frequencies in the audible range of hearing (20 to 20,000 Hz)


Averaging Settings

These setting control how the spectral data is averaged.

Averaging Mode

Free Run (blocks) - this is the default mode and updates the analyzer each time a new FFT block of data is computed. In this mode the average block size directly determines how many spectra blocks are averaged together to compute a moving average. For instance, if the averaging block size is set to 4, the spectrum currently displayed is a moving average of the previous 4 traces.

If the signal you are measuring is rapidly changing in frequency, a low averaging block size should be used. Use a high block size to "dig" out a steady state signal buried in a noisy background.

Setting the averaging size to "infinite" causes the program to average successive spectral traces continuously. Stopping and restarting the processor will reset the average. A single left click on the main toolbar will also reset the average.

Sound Level Meter (SLM) - this mode sets the averaging algorithm to match that of a standard Sound Level Meter (SLM). The average speed controls the spectral averaging period and decay time as follows:

  • Off - no averaging is performed.
  • Fast - computes a running average with a decay rate of 32 dB/sec.
  • Medium - computes a running average with a decay rate of 20 dB/sec.
  • Slow - computes a running average with a decay rate of 4 dB/sec.
  • Forever - accumulates the data for as long as the analyzer is running.

Exponential averaging should be used when the Sound Level Meter mode is selected.

Averaging Type

Exponential - this method produces an average where the most recently acquired spectra have more influence on the average than older ones. If you were to suddenly shut off the input signal, the decay rate will follow an exponential curve. Exponential averaging should be used when the Sound Level Meter mode is selected.

Linear - this method is a straight linear average of the spectra over time. Each spectra block contributes equally to the average. This type of averaging is also known as "stable averaging"

Vector - this method performs a complex (vector) average of successive spectra over time. Because vector averaging includes the phase component in the computation, triggering must be employed if meaningful results are to be expected. This type of averaging is also known as "synchronous averaging".

Exponential averaging is the default as it is more computationally efficient.

Notes:

In both the Real-Time and Post-Processing modes, the averaging speed/block size can be modified while processing by using the "Avg" control on the toolbar.

See also: Peak Hold


Decimation Ratio

The decimation ratio value controls the ratio with which the digitized audio is down-sampled". This feature is used to achieve a lower sampling rate than that supported by the sound card. This will allow greater frequency resolutions at low frequencies for vibration measurements and similar applications. For instance, if your sound card's lowest supported sampling rate is 11025 Hz, decimating by a factor of 10 will effectively reduce this to 1102.5 Hz. The resulting measurement range will then be 0 to 551.25 Hz.

A value of 1 will not decimate the data at all.

Decimation is actually a very simple process. Let's say we want to down-sample by a factor of 8:1, all we need to do is to throw away 7 out of every 8 samples.

You need to be careful when decimating to make sure that the original signal contains no energy above the "new" Nyquist frequency otherwise aliasing will occur. If this is not the case you should either use an external low pass filter or check the box labeled "Apply Low Pass Filter when Decimating".

Note:

The Spectral Line Resolution and Frequency Limit values will update to automatically reflect the current Sampling Rate, FFT size, and Decimation ratio settings.

The Time Series view always displays data prior to the decimation process.

See also: Sampling rate, FFT size


Digital Zero

Generates a signal containing all zero's or silence.


DTMF

Produces a series of dual tone pulses (touch tones) for the specified key string. You may also adjust the pulse width, spacing and twist.

Twist is entered in dB. A positive twist value means that the amplitude of the higher frequency tone will be greater than the low frequency tone by this amount. Negative twist values produce the opposite effect.

Please note that the full extended DTMF character set is supported (1234567890*#ABCD).

See Also: Right Click Action Menus


FFT

FFT is an abbreviation for a Fast Fourier Transform.

The Fourier Transform is a mathematical tool developed and named after Jean Baptiste Fourier (1768 - 1830) and is commonly used to convert a signal from the time domain (amplitude-vs-time) to the frequency domain (amplitude-vs-frequency). A frequency domain plot is also known as a spectra plot.

The Fast Fourier Transform (FFT) is a computationally efficient implementation of the Fourier Transform developed by J.W. Cooley and J.W. Tukey in 1965. The Fast Fourier Transform is limited to block sizes which are even powers of 2.

For example, if a FFT is performed on a pure sinusoidal signal, the resulting spectra would be single peak (line). Real world signals are a composite of many sinusoidal signals; examining the signal's spectra clearly shows the frequency tones which are present.


FFT Size

The selected FFT size directly affects the resolution of the resulting spectra. The number of spectral lines is always 1/2 of the selected FFT size. Thus a 1024 point FFT produces 512 output spectral lines.

The frequency resolution of each spectral line is equal to the Sampling Rate divided by the FFT size. For instance, if the FFT size is 1024 and the Sampling Rate is 8192, the resolution of each spectral line will be:

8192 / 1024 = 8 Hz.

Larger FFT sizes provide higher spectral resolution but take longer to compute.

Notes:

The Spectral Line Resolution and Frequency Limit values will update to automatically reflect the current Sampling Rate, FFT size, and Decimation ratio settings.

The current FFT size is always displayed in the status bar along the bottom of the application.

See also: Sampling Rate , Decimation Ratio


SpectraDAQ-200

The SpectraDAQ-200 precision sound card is optimized for use with the analyzer. It has been specifically designed for test and measurement applications with special features for controlling the input voltagte range, IEPE power for transducers and direct calibration. When the SpectraDAQ-200 is selected as the input device the following options are available in the Processing Settings dialog box:

I/O Device tab:

Input Range: This allows you to set the maximum input voltage for the A/D converters. If you change the input range the calibration will automatically apply the correct gain to the measurement. The input range is applied to both channels.

IEPE power: You can enable IEPE power (4ma constant current) for powering microphones, accelerometers and other IEPE compliant transducers. This eliminates the need for an external power supply and simplifies the setup and wiring. IEPE is equivalent to ICP (a trademark of PCB Electronics).

For best performance use the ASIO driver mode when the SpectraDAQ-200 hardware is selected

Calibration tab:

Because the SpectraDAQ-200 has fixed input gain ranges, the analzyer can be easily calibrated. There are two calibration methods that are available when the SpectraDAQ hardware is selected:

Internal Hardware Calibration: Allows you to calibrate the analzyer to Volts, Millivolts or dBu.

Directly to Transducer Sensitivity: Allows you to calibrate using the sensitivity of the microphone, accelerometer or hyrdophone. The analyzer will convert the detected voltage to the corresponding engineering units based on this sensitivity.

If you change the input voltage range the analzyer will automatically recalculate the internal calibration values for you. This applies for all calibration methods including the External Reference method when the SpectraDAQ-200 hardware is used.


Frequency Step

Frequency Step (stepped sine)

The frequency step waveform produces a sine wave which changes frequency over time in discrete steps. The start and stop frequencies determine the limits of the signal. The start frequency can be less than the stop frequency in which case the frequency will decrease over time.

The step size can be either Linear or Octave (logarithmic).

Linear Steps - specify the step size in Hz. This works best when narrowband scaling is used on the analzyer.

Octave Steps - specify the fractional octave steps size to use. This works best when the octave scaling is used on the analyzer.

Jump Back to Start Frequency - when the stop frequency is reached the signal will immediately start again at the start frequency

Sweep Back to Start Frequency - when the stop frequency is reached the signal will step back to the start frequency.

Stop After a Single Pass - the signal generator will stop after the sequence completes; otherwise it will repeat continuously until the generator is stopped.

Dwell Time - specifies how long the signal stays at each step in the sequence. This value is specified in milliseconds.

Stepped sine waveforms are useful for frequency response testing. Set the averaging block size to 1 and use the Peak Hold option to capture the peak amplitude as the signal is stepped across the frequency span.

See Also: Freq Sweep , Signal Generator


Secondary Toolbar

The secondary toolbar is located just below the main toolbar menu along the top edge of the application.

Buttons

File New - Close any open WAV file and prepare to record a new one

File Open - Open an existing WAV file

File Save - Save the current WAV file

Print - Print the active plot (time series, spectrum, phase, spectrogram, or 3-D surface)

Time Series View - open/close the time series plot

Spectrum View - open/close the spectrum plot

Phase View - open/close the phase plot

Spectrogram View - open/close the spectrogram plot

3-D Surface View - open/close the 3-D Surface plot

FFT Settings - Brings up the FFT settings dialog box

Scaling - Brings up the Scaling options dialog box

Calibration - Brings up the Calibration dialog box

Triggering - Brings up the Triggering options dialog box

Run Control - Brings up the Run Control options dialog box

I/O Device - Brings up the Device Settings dialog box

Signal Generator - open/close the signal generator

Hz - open/close the Peak Frequency utility

dB - open/close the Peak Amplitude utility

Pwr - open/close the Wideband Level (total power) utility

THD - open/close the Total Harmonic Distortion utility

THD+N - open/close the Total Harmonic Distortion + Noise utility

THD+N vs Freq - open/close the THD+N vs Frequency utility

IMD - open/close the InterModulation Distortion utility

SNR - open/close the Signal to Noise Ratio utility

Leq - open/close the Equivalent Noise Level (Leq) utility

Mac - open/close the Macro Command Processor utility

Log - open/close the Data Logging utility

Alerts - open/close the Alerts utility

Dly - open/close the Delay Finder

Rvb - open/close the Reverberation Time utility

Scp - open/close the Stereo Phase Scope

Note: Use the <View><Toolbars><Secondary Toolbar> to show or hide the toolbar.


Microphone Compensation

An ideal microphone for acoustic measurements would have a perfectly flat frequency response (all frequencies detected with equal amplitude). In practice, most microphones do not meet this criteria. Microphone compensation curves solve this problem.

Many microphone manufacturers provide a frequency response curve for their products. This curve shows both the total frequency range covered and the frequency response of the microphone within this range. By creating a simple text file containing this information, we can compensate for its response.

Building a microphone compensation file:

Run the NOTEPAD.EXE application, spreadsheet or word processor that can produce a standard ASCII text file.

Enter two columns of numbers representing the microphone response curve.

The left column contains the frequency in Hertz.

The right column contains the offset in decibels (this offset is subtracted from the logarithmic spectrum value).

Enter the information in ascending frequency order.

Separate the columns with a tab character.

Example:

---------------------------

100.0 -10.0

500.0 -5.0

1000.0 0.0

2000.0 2.0

10000.0 -5.0

15000.0 -15.0

Enter as many as32,768 pairs of numbers; at least 3 pair are required. The analyzer will use a cubic spline algorithm to interpolate between these data points for each frequency bin in the spectrum.

Any line with a semicolon in the first column will be treated as a comment line and ignored.

By convention, microphone compensation files have an extension of .MIC.

Note:

Microphone Compensation files and Spectral Overlay files have identical formats and can be interchanged. This is useful if you want to verify that you have entered the microphone response table correctly. To do this, simply select the microphone compensation file as an overlay.

Interpolation: When manually creating a compensation file the results can have unexpected excursions due to the cubic spline interpolation algorithm. You can turn off this algorithm by adding a line to the beginning of the file as follows:

;SPLINE OFF

See also: Standard Frequency Weighting


Noise Burst

This option allows you to generate a burst of noise. The "Burst Time" defines the length of the noise period. The "Cycle Time" specifies the repetition period. For instance, if the Burst Time is set to 1000 msec and the Cycle Time is set to 2000 msec, the generator will output 1 second of silence followed by 1 second of noise. This pattern will repeat until the generator is stopped.

See Also: Pink Noise , White Noise , Generator Output Level


Overlap Percentage

This powerful feature allows the time axis on the Spectrogram and 3-D Surface plot to be "stretched" by re-processing portions of the time series. The setting determines what percentage of the FFT size block of data points is re-used for the next trace. High overlap percentages (90+%) and low FFT block sizes provide the highest time resolution but take longer to process the data file. This feature is only used in Post-Processing mode.

Large FFT sizes produce high frequency resolution but poor time resolution while low FFT sizes have the opposite effect. Overlap processing can be used to provide high resolution in both the frequency and time axis. For example, if a signal contains two discrete tones separated in frequency, only one of which is on at a time, it is difficult to discern the relative timing of each tone because both frequencies are often contained within a single FFT size time series block. If we perform an FFT and, instead of moving forward a whole FFT size block in the series, move forward only a small amount then we can isolate the pulse timing for each tone. The following figure illustrates the effect of overlap processing

Notice that 4 times as many FFT's are performed in the second case; this will increase the time resolution by a factor of 4.

The program can automatically compute and use the optimum overlap percentage for you. Using either the Time Series, 3-D Surface or Spectrogram views, simply select a time segment for editing and right click anywhere in the plot. An Action Menu will appear with choices such as "Compute and Display Spectrogram". The analyzer will automatically compute the overlap percentage necessary to fill the plot from the selected time segment. See the Right Click Action Menu topic for more details.

Notes:

High overlap percentages will require greater processing times.

See also: Right Click Action Menus , FFT size , Smoothing Windows,


Peak Hold

When Peak Hold is used, the analyzer will display a secondary trace showing the highest amplitude values for each frequency bin. Selecting Fast, Medium or Slow will cause the peak hold values to temporarily hold before resetting. Forever will hold the values without releasing them. Stopping and restarting the processor will reset the peak hold values. A single left click on the main toolbar will also reset the peak hold buffer.

Peak Hold can be controlled from either the Spectrum display options dialog box or from the Spectrum plot toolbar .

See also: Averaging Settings


Sampling Format

An important factor in determining the quality of the sampled sound is the number of bits per sample. This specifies the number of discrete levels that are used in the analog to digital (A/D) conversion process and directly affects the dynamic range of the measurement. The theoretical dynamic range is shown below:

8 bit sampling precision = 48 dB

16 bit sampling precision = 96 dB

24 bit sampling precision = 144 dB

In practice, the achievable dynamic range is less that the theoretical maximum due to internal noise and other factors. Refer to your sound card documentation for the actual performance figures.

When "Mono" is selected, you should connect the test signal to the left channel on your sound card. This is normally the tip on a standard 1/8" stereo connector. Consult your sound card documentation for further details.

When "Stereo" is selected, the " dual channel processing options " will be enabled. This will allow you to display either the left, right, both, or a variety of advanced cross channel measurements.

See also: FFT size , Scaling, Measurement Accuracy


Sampling Rate

SpectraPLUS-SC allows you to select any Sampling Rate supported by your sound card. The measured frequency range is always 0 to 1/2 the Sampling Rate divided by the decimation ratio.

The Sampling Rate determines how many times a second that the analog input signal is "sampled" or digitized by the sound card. A sampling rate of 10,000 Hz will sample the signal every .0001 second. The possible range of sampling rates are limited by the capability of your sound card.

An important principal from digital signal processing is the "Nyquist Sampling Theorem" which states that any signal can be represented if sampled at least twice the rate of the highest frequency of interest. This means that if you wish to measure a 3,000 Hz signal, the sampling rate must be greater than 6,000 Hz. A note of caution: if there are unwanted signals which are greater than 3,000Hz, Aliasing will occur.

When a .WAV file is opened, the Sampling Rate and Format is changed to match the rate at which the file was recorded and the sampling rate edit box is disabled - the Sampling Rate must remain constant within a single .WAV file. When the .WAV file is closed, these settings will revert to their previous values. The current sampling rate is always displayed in the status bar along the bottom of the application.

Note:

To determine if your card supports a rate other than the displayed choices, simply enter the value in the edit control and press OK. The analyzer will attempt to use the specified rate and a message box will appear if it is unsuccessful.

See also: Aliasing, FFT size , Decimation ratio


Smoothing Windows

If a sinewave is passing through zero at the beginning and end of the time series, the resulting FFT spectrum will consist of a single line with the correct amplitude and at the correct frequency. If, on the other hand, the signal level is not at zero at one or both ends of the time series record, truncation of the waveform will occur, resulting in a discontinuity in the sampled signal. This discontinuity causes problems with the FFT process, and the result is a smearing of the spectrum from a single line into adjacent lines. This is called "leakage"; energy in the signal "leaks" from its proper location into the adjacent lines.

Leakage could be avoided if the time series zero crossings were synchronized with the sampling times, but this is impossible to achieve in practice. The shape of the "leaky" spectrum depends on the amount of signal truncation, and is generally unpredictable for real signals.

In order to reduce the effect of leakage, it is necessary that the signal level is forced zero at the beginning and end of the time series. This is done by multiplying the data samples by a "smoothing window" function, which can have several different shapes. The difference between each smoothing window is the way in which they transition from the low weights near the edges to the higher weights near the middle of the sequence. If there is no windowing function used, this is called "Rectangular", "Flat", or "Uniform" windowing.

While the smoothing window does a good job of forcing the ends to zero, it also adds distortion to the time series which results in sidebands in the spectrum. These sidebands, or side lobes, effectively reduce the frequency resolution of the analyzer; it is as if the spectral lines are wider. The measured amplitude of the weighted signal is also incorrect because a portion of the signal level is removed by the weighting process. To make up for this reduction in power, windowing algorithms give extra weight to the values near the middle of the sequence.

The figure shown below compares the spectrum of a signal using a Uniform window and a Blackman window. Remember that a Uniform window is actually no window at all.

Characteristics of various smoothing windows

Window Frequency Amplitude Leakage

Type Resolution Resolution Suppression Application

Bartlett Fair Fair Moderate

Blackman Fair Good Excellent Distortion Measurements

Exponential Fair Fair Poor Transient measurements such as impact hammer tests (use for the accelerometer input channel)

Flattop Poor Excellent Moderate Accurate Amplitude measurements

Force Fair Good Poor Impact Hammer tests (use for the impact hammer input channel)

Hamming Fair Fair Fair

Hanning Fair Excellent Excellent Distortion measurements, Noise measurements

Kaiser Fair Fair Poor

Parzen Fair Fair Poor

Triangular Fair Fair Poor

Uniform Excellent Poor Poor High resolution frequency measurements, Impulse response measurements

Gaussian Excellent* Fair Fair Allows very high frequency resolution using gaussian interpolation*

*Gaussian interpolation is used for the Peak Frequency Utility, Data Logging and Automation Peak Frequency values.

Advanced Window Settings

Clicking the "Advanced Settings" button allows you to specify additional parameters for certain window types. For more information please refer to the following links:

https://en.wikipedia.org/wiki/Window_function

https://en.wikipedia.org/wiki/Kaiser_window

https://en.wikipedia.org/wiki/Exponential_decay

Notes:

The Time Series View displays the signal prior to the application of any smoothing window except when previewing trigging waveform.

The effects of these functions are most noticeable when using Logarithmic scaling.

When Independent Scaling and Calibration is enabled you can select different smoothing windows for each channel

See also: Scaling, FFT size, Overlap Processing , Sampling Rate


Spectrogram Display Options

The spectrogram display options dialog box can be activated by selecting the Options | Plot Optons menu and clicking on the Spectrogram tab or by clicking on the options dialog icon button in the view toolbar .

Frequency Span: If "Full Span" is selected, the spectrogram will show the entire available frequency range. When "Custom Span" is selected, the frequency values can be directly entered. When octave scaling is used, Custom span information is ignored.

Display Update Interval: Normally a new line is added to the spectrogram whenever a new FFT is computed. You may elect to only update the spectrogram every N seconds. This is most useful in the Real-Time mode. In this way, long term frequency -vs- time studies can be conducted.

Color: There are three choices of palettes. The "Color" palette transitions from black to red, the "Grayscale" palette changes from white to black, and the "Custom" palette lets you choose the minimum and maximum colors.

Scroll Direction: Specifies the direction in which the spectrogram will scroll with increasing time.

Scroll Type: Specifies the type of scrolling. Smooth continuous scrolling scrolls the display with new information added at the edge. Overlapped scrolling does not scroll the display but overlaps when the end of the display is reached.

Plot Top/Range: The Plot Top and Range values determine the amplitude (color bar) values. Plot Top is the value at the upper edge of the color bar. The lower edge of the color bar is always equal to the Top value minus the Range value. When linear scaling is selected for the amplitude axis , the Plot Range value is set to zero and cannot be changed.

Show Toolbar: Show or hide the plot toolbar.

Notes:

  • Any changes to the display options (with the exception of Direction) will cause the spectrogram to automatically rebuild itself with the new settings (press the Escape key to cancel rebuilding).
  • The display can also be cleared by using the Clear All command under the View menu.

See Also: Spectrogram View


Standard Frequency Weighting

ANSI standard A, B and C weighting curves can be applied to the spectral data and/or to the total power value. The total power setting affects the values shown in the total power utility and on the total power bar along the right side of the spectrum view if enabled. Flat is equivalent to no weighting at all. Weighting functions emphasize frequencies in the 500 to 10,000 Hz range, which is the area of greatest sensitivity to the human ear.

See also: Scaling, Microphone Compensation , Octave


Tone Burst

This option allows you to generate a tone burst. The "Burst Time" defines the length of the tone period. The "Cycle Time" specifies the repetition period. For instance, if the Burst Time is set to 1000 msec and the Cycle Time is set to 2000 msec, the generator will output 1 second of silence followed by 1 second of tone signal. This pattern will repeat until the generator is stopped.

See Also: 1kHz Tone , Multiple Tones , Generator Output Level