DADiSP frequently asked questions

Click below to find answers to your DADiSP Frequently Asked Questions

Updated May 2010


Data analysis

Data display and output


Acquiring and importing data

Computing platforms

Technical support

DADiSP Basics Answers

What is DADiSP?

DADiSP (pronounced day-disp) stands for Data Analysis and Display. DADiSP is a graphical, data analysis and visualisation software package designed for scientists and engineers. Because DADiSP contains features for graphics, mathematics, statistics, matrix analysis, signal processing and more, it can be used in a broad range of applications. With DADiSP’s easy-to-use, menu-driven, interactive user interface, there is no need to struggle with a complex programming language. Once you acquire your data into a file, DADiSP helps you analyse and visualise your data both graphically and numerically with the power and flexibility of a spreadsheet.

Return to Questions 

What is a spreadsheet?

A typical business spreadsheet is an array of data cells. Each cell can contain a number and/or a formula. Say, for instance, cell A1 contains the number 1.0, cell B1 contains the number 3.0 and cell C1 contains the formula A1+B1. C1 will then calculate and display the number 4.0. Now, if the scalar value in A1 changes from 1.0 to 2.0, then C1 automatically recalculates and displays the number 5.0.

Is DADiSP a spreadsheet?

DADiSP may best be thought of as a spreadsheet for data series, multi-column tables or graphs. Instead of cells that contain single numbers a DADiSP Worksheet consists of windows, each containing an entire data series. If W1 (window 1) contains data previously imported into DADiSP and W2 contains the formula integ(W1) and W3 has the formula histogram(W2), then DADiSP would perform an integration operation on the data series in W1 and display the result in W2. DADiSP would then calculate the HISTOGRAM of the new series in W2 and place the result in W3. If you change the data in window 1, DADiSP automatically recalculates the new INTEGRAL in window 2 and the new HISTOGRAM in window 3.
In DADiSP each multi-window workspace is called a Worksheet.

Return to Questions 

How many windows can a DADiSP Worksheet contain?

DADiSP allows up to 100 windows per Worksheet and an unlimited number of Worksheets. Each window provides extensive graphical manipulation operations such as scroll, zoom, expand, compress and cursoring.

How long can my data series be?

Because DADiSP uses a technique called virtual series management there is no limit on the size of your data. If a data series is too large for system memory DADiSP automatically pages the data to and from your disk during most calculations. Of course, large data sets take longer to process because DADiSP will intermittently access the disk. You can set the size of the series kept in memory by clicking the Tools-Options-System Preferences pulldown and selecting the Series tab. Set Data Size to the desired length in terms of data points. You can also set the buffer size with the setbufsize function (setbufsize returns the previous buffer size).

DADiSP also provides data editing routines that allow you to create new data series by extracting and appending regions from other data sets.

Return to Questions 

Is DADiSP object oriented?

DADiSP is written in C/C++ for speed and portability and DADiSP is highly object oriented. DADiSP works with “objects”, i.e., scalars, series, surfaces and tables. DADiSP returns the proper object based upon the input. For example, you can have a window that contains a time series, surface or image. If you take the derivative of that window, DADiSP returns the proper derivative: the time series derivative, the rate of change of the surface or the derivative of the image (which is one method of edge detection). DADiSP’s SPL functions and macros work the same way. For example:


This returns the proper object whether the input is a scalar, series or matrix.

Return to Questions 

Data Analysis Answers

How many functions does DADiSP have?

DADiSP offers over 1000 analysis and display functions including scalar and series arithmetic, series calculus, data generation, Fourier analysis, frequency domain analysis, correlations, trigonometric and statistical functions, digital filtering, imaging, 2-D, 3-D and 4-D graphics, matrix maths and much, much more. Complex numbers and engineering unit conversions are also supported.

Can I create my own functions?

Yes. DADiSP includes a Series Processing Language, SPL, as well as a macro definition facility that allow you to create entirely new functions from previously defined routines. SPLuses familiar C/C++ like syntax for statement processing, control flow, variable manipulation and user defined functions.

Return to Questions 

To what precision does DADiSP perform calculations?

All numerical calculations are performed in 8-byte IEEE standard double-precision arithmetic.

Does DADiSP operate on tables of numbers?

Yes. DADiSP can work with single column or multi-column data objects. With DADiSP you can perform table-editing and table-based data reduction operations. DADiSP can perform all of its analysis operations on tabular data sets and has a variety of graphical formats for viewing tabular data. 3D surfaces, Contour, Density and Image plots are examples of tabular data viewed as a 3D image. DADiSP also has descriptive column statistics for operating on tables of statistical data.

Return to Questions 

Does DADiSP do matrix manipulation?

In DADiSP, tables of numbers with more than one column and more than one row are called tables or matrices. In addition to the table-based features listed above in Question B4, DADiSP provides many matrix manipulation and matrix analysis features such as matrix multiplication, matrix invert, eigenvalues, eigenvectors, SVD and a variety of other operations. One of the advantages of DADiSP’s matrix operations is the ability to perform matrix functions in the DADiSP Worksheet environment so that the result of each successive matrix operation is viewed in individual Worksheet windows.

How fast can DADiSP perform an FFT?

A 1048576-point (1MB) complex FFT takes less than one second to calculate and display on a 2.0GHz Pentium PC with 1GB RAM. As with all DADiSP calculations the FFT is computed with double-precision, floating point arithmetic. Because DADiSP uses a mixed radix FFT algorithm FFTs are not limited to signals with lengths equal to a power of two.

Return to Questions 

When I perform an FFT, DADiSP displays a status message like: Mixed FFT Algorithm, Loop n/N (for k). What does it mean?

DADiSP uses a mixed radix FFT algorithm. The purpose of the FFT is to reduce the number of multiplications and additions required for determining the coefficients of the DFT. The mixed radix FFT breaks the calculations into a number of steps (or loops) determined by the number of factors of the length of the input series. The displayed message indicates the total number of loops, N, which will be performed. For each loop, n, (where n<=N), there will be k points in the FFT segment. The DADiSP function FACTORS returns a series whose elements are the factors of the input number, e.g., FACTORS(length(W1)). The length of the FACTORS series gives you the total number of loops, N. Each element in the FACTORS series gives you the number of points, k, for each loop, n. For example,

  W1: grand(3055,.01)
  W2: factors(length(W1));tableview
  W3: fft(W1)

W2 contains the series 5, 13, 47. When W3 calculates, you will see these messages:

  Mixed FFT Algorithm Loop 1/3 (for 47)
  Mixed FFT Algorithm Loop 2/3 (for 13)
  Mixed FFT Algorithm Loop 3/3 (for 5)

A faster FFT will occur for a series length that is a power of 2. If the series is purely real, further speed optimisations based on symmetry are employed.

Return to Questions 

Can DADiSP perform digital filtering?

Yes. A digital filter is nothing more than a special signal used to process your original one. To filter a set of data you can use DADiSP’s FILTER function, convolve the waveform with the digital filter or multiply the FFTs of the data and the filter. DADiSP provides tools for all these operations. Digital filter design capabilities are available in the DADiSP/Filters module, which allows you to design FIR and IIR filters.

I have two time series, Pressure and Temperature, plotted with respect to time. How can I take the derivative of Pressure with respect to Temperature?

The DERIV function returns the derivative of the series with respect to its x-axis. So,
d(pressure)/d(time). In DADiSP 6.5, to get d(pressure)/d(temperature), simply create an XY plot, then apply the DERIV function:
deriv(xy(Temp, Press))
Previous versions of DADiSP require the XY data to be interpolated to an interval series with XYINTERP:
deriv(xyinterp( xy(Temp, Press)))
This returns the derivative of Pressure with respect to Temperature.

Return to Questions 

Data Display & Output Answers

Can DADiSP draw X-Y plots?

DADiSP offers X-Y plotting capabilities. DADiSP normally operates on what we call interval data, i.e. data sampled at a uniform rate. DADiSP allows you to create an X-Y graph by plotting one window against another with the Data-XY Data pulldown or the xy function. You may also perform analysis operations on X-Y format data and convert X-Y data to interval data.

What other types of plots and images can DADiSP display?

DADiSP has extensive plotting and imaging capabilities including waterfall, density, contour and XYZ plots. Almost every attribute of a plot (colour, line thickness, shading, line style, etc.) can be set with dialogue boxes or built-in functions.

Return to Questions 

Can I display more than one curve in a single window?

Yes. You can display an unlimited number of curves or data traces in a single DADiSP window. These curves can be distinguished by line style, symbol type or colour. You can plot data that share axis scales or display multiple scales relating each group of curves to a different set of axes.

Why does enabling the cursor sometimes move the series in the Window?

By default, DADiSP “remembers” the last location of the data cursors. If you enable and move the cursors to “mark” them on a series DADiSP remembers the cursor location and returns it with calls to CURPOS. After the cursor display is disabled and you scroll the data in the window or zoom in on a region of the data such that the last cursor locations are not in the current viewing area. The next time the cursors are enabled, they will shift the viewing window to the last cursor location.

To disable the “cursor memory” feature, use the View-Cursor-Settings pulldown menu and uncheck “Cursor Returns to Last Position”. Alternatively, set the configuration parameters CURSOR1_MEMORY and CURSOR2_MEMORY to 0 by using the SETCONF function: e.g., SETCONF(“CURSOR1_MEMORY”,”0″). Now, whenever the cursors are enabled, they will appear in the current viewing region regardless of their last location. Note, CURPOS will still return the last cursor locations.

Return to Questions 

What plotter and printer output does DADiSP offer?

PC versions of DADiSP support any printer available under Microsoft Windows. DADiSP uses the installed printer drivers. You can produce both entire screen dumps and plots of any individual window.

DADiSP supports HPGL and Encapsulated Postscript output formats. In fact, because our plotter driver can create HPGL and Postscripts files, you can obtain presentation quality output and import the plots into desktop publishing programs for further enhancement. DADiSP also supports Enahanced Metafiles and Device Independent Bitmaps (DIB).

Return to Questions 

Customisation Answers

How can I include programs I’ve already written?

The DSP Pipeline lets DADiSP execute external programs from within a DADiSP Worksheet. For example, to run a program named MYPROG, just type RUN(“MYPROG”). Let’s say you have your own special routine that you must use to perform a multiple linear regression on your data. With Pipeline DADiSP could write data from a DADiSP window into a temporary file, call your routine to process the file and then read the result back into a window. This entire procedure can be automated with a custom SPL function or user-defined menus, so you could just type REGRESS or choose your routine from a DADiSP menu, and DADiSP would execute your program.

Pipeline programs can be written in any language. There is almost no Pipeline routine size constraint on workstation versions of DADiSP. On a PC there must be enough memory for both DADiSP and your program.

Return to Questions 

Can I program DADiSP to run in automated or batch mode?

Although DADiSP is primarily a menu-driven, interactive package, DADiSP provides a command file capability that enables advanced users to automate operations within the DADiSP environment. Command files are particularly useful for automating repetitive analysis steps. You can also set up a command file to allow a technician to perform a specific application. With DADiSP command files you can combine multiple, related analysis functions and graphic operations that you can activate with a single command or menu selection. Command files and SPL functions can be combined for further programmability. Custom user interfaces are supported by DADiSP’s user definable pop-up menu facility.

Return to Questions 

Can I use ActiveX and/or Dynamic Data Exchange (DDE)?

Yes. ActiveX is a broad term that generally refers to a binary standard for sharing code and data between separate programs or “components”. The actual protocol is specified by the Component Object Model (COM). COM has undergone several ugrades since its introduction as Object Linking and Embedding (OLE). One significant feature of COM is Automation. Automation allows a “client” program to control a “server” program just as if the server functionality was built into the client. For example, DADiSP 6.5 can fully control Microsoft Word placing a DADiSP Worksheet into a document and printing the results all from within DADiSP. Likewise, a Visual Basic program can hand off data to DADiSP for processsing without DADiSP ever being visible to the user. In this way DADiSP acts as a powerful data analysis library for any program that supports automation. To get the flavour of ActiveX here’s an example of a Visual Basic program controlling DADiSP:

  Sub DSPTest()
  Dim DADiSP As Object
  Dim VBData(1000) As Double

  ''' Create VB Data Array
  For i = 0 To 999
      VBData(i) = Rnd()
      Next i

  ''' Connect to DADiSP

  Set DADiSP = CreateObject("DADiSP.Application")

  ''' Create a 2 Window Worksheet (unconditional)
  p = DADiSP.Execute("NewWorksheet(2, 0)")

  ''' Put Array to DADiSP
  p = DADiSP.PutData("W1", VBData)

  ''' Label W1
  p = DADiSP.Execute("Label('Data from Visual Basic')")

  ''' Moveto W2

  p = DADiSP.Execute("Moveto(W2)")

  ''' Calculate Power Spectrum
  p = DADiSP.Execute("PSD(Hamming(W1))")

  ''' Add Y Log and Grids
  p = DADiSP.Execute("SetyLog(1);GridSol;GridHV")

  ''' Show DADiSP
  DADiSP.Visible = 1

  ''' Get PSD from DADiSP
  newdata = DADiSP.GetData("W2")

  End Sub

The important DADiSP “methods” are putdata to a DADiSP Window or variable, getdata from a DADiSP Window or variable and the very powerful execute method to run any DADiSP command or function.

Here’s an example of a DADiSP SPL routine that copies a DADiSP Worksheet to Word.

  /* demonstrates ActiveX calls from DADiSP to MS Word */
    local word, doc;

    // new 2 Window worksheet

    if (newworksheet(2) == 0) return;

    ** generate noisy sine in W1, set units to Volts and
    ** add a nice label

    gnorm(1000,.01) * 0.1 + gsin(1000,.01);Setvunits("V");
    label("Noisy Sinewave";

    // moveto W2 and calculate the PSD and set log scales

    // copy worksheet into clipboard


    // start Word
    word = CreateObject("Word.Application");

    // get "Document" object
    doc  = word.Documents;

    // Add a new Document and get range object
    range = doc.Add().Range();

    /* paste worksheet as Enhanced Metafile */
    word.Selection.PasteSpecial(0, 0, 0, 0, 9);

    // let's see it!

    word.Visible = 1;

DADiSP can also include ActiveX controls such as vendor specific data acquisition interfaces into our user defined dialogue boxes. These controls allow you to easily build application specific Worksheets using a variety of third party offerings.

DDE is an older, but still useful, method of exchanging data between multiple applications. DADiSP can operate as both a DDE client and a DDE server. You can use DDE to send/retrieve data manually or automatically as well as to execute commands.

How can I start each session with a custom toolbar?

Create an SPL file in your main DSP directory called dadisp.spl. In this SPL file create a function called splmain. DADiSP executes all the commands in splmain upon startup. Include the call(s) to the TOOLBAR function in splmain. For example, to add a button to the main toolbar that generates 100 points of random noise, create the following splmain function:

Return to Questions 

What is this SPL feature I’ve been hearing about?

As users are discovering, one of the most powerful additions to DADiSP is SPL, DADiSP’s Series Processing Language. SPL is a compact language designed specifically for users who wish to customise data manipulation and other operations within the DADiSP Worksheet environment. SPL routines are easy-to-write, user-defined functions that are created by combining built-in DADiSP functions, user-defined functions and/or other SPL routines. The language is very reminiscent of C and features C-like statement processing, control flow, variable manipulation and user-defined functions.

Experienced programmers, especially those familiar with C/C++, have had little trouble picking up SPL. Beginners can easily learn the ins and outs of SPL by following along with the examples in the DADiSP Worksheet Developer’s Guide which is available on-line through the Help menu. You may use any ASCII text editor to script an SPL function or take advantage of DADiSP’s own SPL editing environment. Just select SPL/New SPL File from the Tools pull-down menu.

SPL is another great tool allowing DADiSP users to tailor their data processing environment, add functionality and automate repetitive tasks.

How can I load specialised SPL functions and DADiSP macros at startup?

DADiSP reads the dadisp.spl and dadisp.mac files upon startup. Create one or both of these files. Either cut and paste the function definitions into dadisp.spl and the macro definitions into dadisp.mac or use the #INCLUDE function to include the filename(s) (with associated path) of the location of your specialised functions and macros. For example, if you have custom functions defined in the SPL file, myfuncs.spl, put the following line into the dadisp.spl file:

  #include "myfuncs.spl"

How do you activate the pull-down menus from a command file?

Use the command file keyword @PULLDOWN. For example, @PULLDOWN F O S selects File, Open, Series from the pull-down menu.

Return to Questions 

How does DADiSP’s Series Processing Language (SPL) compare to MatLab?

A detailed explanation of the similarities and differences between SPL and MatLab is available in an article entitled DADiSP SPL vs. Matlab.

Acquiring & Importing Data Answers

How do I get my data into DADiSP?

As a standalone data analysis package DADiSP offers a very flexible import facility. ASCII, Lotus PRN and binary single or multi-channel data files can be imported into the database as a DADiSP Dataset. Binary 8-bit bytes, 2-byte integer, 4-byte IEEE floating point and 8-byte IEEE double-precision formats are supported. DADiSP also allows an optional text header that can be included with the data to specify parameters such as sampling rate, engineering units, comments, etc. You can save data created by your analysis and export data to external data files in any of these supported formats. This import and export capability allows you to couple DADiSP’s powerful analysis environment to your favorite data acquisition, process control, circuit design, CAD and other software programs. DADiSP also offers a standalone data import utility, DADiMP, that automatically imports data into a DADiSP database and allows data to be cut and pasted directly into a Worksheet. ActiveX and Dynamic Data Exchange (DDE) can also be used under Microsoft Windows.

Return to Questions 

Is DADiSP compatible with my data acquisition system?

Yes. Many leading A/D vendors already support DADiSP import files to quickly and easily import data directly into DADiSP. Real-time acquisition may be possible if your vendor supports COM and ActiveX.

How can I import a number of files in “batch mode”?

There are many ways to import data in a batch process. Two methods are described below.

  1. To import multiple files without running DADiSP, use DADiMP (the standalone import utility). Create a batch file that contains successive calls to DADiMP that specify, with command line arguments, which files and headers to import. Run the batch file and the data will be imported into the specified Labbook(s).
  2. To import multiple files in a batch process from within DADiSP create an SPL routine that uses the IMPORTFILE function. Header and data filenames are specified as arguments.

Example 1:


Example 2:

   * IMPDIR(dirx)
   * dirx - The directory that contains the data in
   * quotes, e.g., impdir("c:data")
   * IMPDIR imports all the data files found in the
   * specified directory. This function assumes that
   * the header information is contained within the
   * file itself.  If the file does not contain a
   * header it will not be imported.  IMPDIR uses the
   * RUN command to produce a temporary file (
   * Data.fil) that contains the name of each data
   * file in the specified directory. The while
   * loop tests for the end of the file and is used
   * read the data filenames, and import the current
   * data file.

    eval(strcat("Run('dir ",dirx,"*.* /o/b > ",
    endbyt = ftell(strcat(dirx,"data.fil"));
    bytnow = ftell(strcat(dirx,"data.fil"));

    while (bytnow < endbyt) {
      filenm = strget(1,fgets(strcat(dirx,"data.fil")),
      bytnow = ftell(strcat(dirx,"data.fil"));
   eval(strcat("Run('del ",dirx,"data.fil',-1)"));
Return to Questions 

Can DADiSP interface directly to laboratory instruments?

Yes. DADiSP/GPIBLab is a separate software module that allows you to control and transfer data from hundreds of IEEE-488 laboratory instruments. GPIBLab adds simple but very powerful HP-like IEEE-488 commands to the DADiSP Worksheet and is compatible with IEEE-488 boards offered by the leading GPIB manufacturers. DSP provides friendly interfaces to popular GPIB-based instruments to dramatically simplify the data transfer process.

Computing Platforms Answers

What is required to run DADiSP on PCs?

DADiSP 6.5 requires at least 16Mb of memory to run on 80386, 80486 and Pentium microprocessors.

Does DADiSP require a maths co-processor?

No, but it is highly recommended, as a maths co-processor greatly increases the speed of calculations. Most modern day processors include built-in numeric co-processors.

Return to Questions 

What UNIX and VMS workstations does DADiSP support?

DADiSP 4.0 is available for:

  • SUN SPARCstations, SUN Solaris
  • HP 9000 series 300, 400, 700, 800
  • IBM RS/6000
  • DEC Alpha OSF/1, DEC Alpha Open VMS
  • DECstations, VAXstations, MicroVAX
  • NEXT workstations
  • Silicon Graphics computers.

DADiSP operates under UNIX on the HP 9000 Series 300, 400, 700 and 800, Concurrent, DEC Alpha OSF/1, DECstation, IBM RS/6000, SUN, NeXT and Silicon Graphic Workstations. DADiSP operates under Open VMS on the DEC Alpha-Open VMS platform.

Will DADiSP run under Microsoft Windows 9x/2K/NT/XP/Vista?

DADiSP 6.5 runs under Windows 7/9x/2K/NT/XP/Vista. Because DADiSP 6.5 is a full 32-bit executable, it does not support Windows 3.1. If you require a Windows 3.1 product contact DSP for the older DADiSP 4.1 release. A free 15-day trialof DADiSP 6.5 is available for download.

Return to Questions 

Does DADiSP for UNIX run under Windows?

Yes. DADiSP Version 4.0 runs under X-11 Windows and compatible window systems.

Do I have to relearn DADiSP to use it on different platforms?

Absolutely not. The DADiSP functions and user interface are consistent across all computing platforms. On PCs, DADiSP runs in the Microsoft Windows GUI, while on Workstations it runs in the Motif GUI. Once you learn DADiSP on one machine you can easily use DADiSP on another. Of course, DADiSP takes advantage of the faster computing speeds and higher resolution graphics available on most engineering workstations.

Return to Questions 

Technical Support Answers

Does DADiSP 6.5 use a parallel port hardware key?

No. However, your serial number is required for proper operation of DADiSP 6.5 and to receive technical support. You can obtain your serial number by clicking the Help-About pulldown menu or by typing the version command.

Should I install DADiSP 6.5 over my 3.x or 4.x version directory or should I install it in a new directory?

DSP Tech Support recommends that you install DADiSP 6.5 in a new directory. DADiSP 6.5 can access your existing Labbooks from previous versions of DADiSP. DADiSP 6.5 has a number of new system files which are differ from older releases. For safety’s sake, install DADiSP 6.5 in a new directory so that none of your files are lost or overwritten. Remember, you can install DADiSP 6.5 without the sample Labbooks to save space. Also, run-time configuration settings are now kept in
C:Documents and SettingsusernameApplication
session file to prevent conflicts with previous releases.

Return to Questions 

I’m running DADiSP 6.5 in a directory containing a DADiSP 3 or 4 Labbook and I’m having problems with my menus. What’s wrong?

DADiSP looks in the current directory for the MENUS sub-directory and displays pop-up menus that are stored there. There were a number of changes made to the menuing system for DADiSP 6.5. Here are two solution options.

  1. Copy the Version 3 or 4 Labbooks to the DSP65 directory and do all analysis in the DSP65 directory.
  2. Update the system.mac file to indicate the location of the DADiSP 6.5 menus. The macro definition for _menudir needs to change to DSP65MENUS (assuming DSP65 is the directory where DADiSP 6.5 was installed).

How can I identify and remove extraneous files left in a Labbook?

Open the Labbook you want to clean up. Open an empty Worksheet and click the Tools-Misc pulldown menu. Select the Utilities tab and press the Check Database Files

This will check all the PI files in your Labbook sub-directory against the database INDEX.PI file. Any DADiSP files not identified by the INDEX.PI file will be removed.

Return to Questions 

Will DADiSP/Filters 4.0 work with DADiSP 6.5?

There is a new version of DADiSP/Filters which has been created to run with DADiSP 6.5. It features a streamlined user interface, Cascade, Direct and FIR filter coefficent conversion, coefficient quantisation, improved filter response functions and more. If you have a previous version of DADiSP/Filter, contact your sales representative and request the new version.

What about technical support and updates?

With your initial purchase of DADiSP you are entitled to three months of telephone support and updates free of charge if you return your registration card. After the three month period you can purchase an annual or multi-year Standard Maintenance contract or an extended Gold Maintenance contract.

Return to Questions 

How do I submit additional queries about DADiSP?

In the US you can call DSP at 800-424-3131, except within Massachusetts please call 617-969-0185. Our fax number is 617-969-0446. Or email us at For web based technical support, try our online support request form.

Hier geht es weiter

Sie möchten kaufen?

Was sagen unsere Kunden über uns?

Bob’s great, he should be franchised.

Took me from a complete beginner to a user in very easy steps.

[Bob] gave excellent unbiased information

I just wanted to say thanks to Bob for a great training session today. I would certainly recommend this training to other people.SM