| Next FAQ page | Previous FAQ Page |
1) Regarding
legacy DI-200
2) How to set up the ChannelList in DataqSDK control
3) Using two Dataq serial devices in the same system
with WinDaq software
4) Is there a way to always record the last six
hours of the test on a file? The option "Open next on
full" seems to generate gaps between files.
5) To display Hex number, instead of engineering
unit, in WWB
6) Setup WinDaq/JohnDeere system for multiple boards
7) Regarding digital trigger mode
8) Regarding trigger buffer
9) I am collecting voltage data (+/- 5 volt range)
which has a number of harmonics, and I want to measure/determine
their amplitude in volts p-p. I assume that in this case,FS
is 10 volts, so what are the units of MAG? What I seem to
need is an equation to convert Db or MAG to Volts.
WinDaq acquisition for the DI-200 is supported under Windows 3.1, 95, and 98. There are no plans to support it under Windows NT4, 2000, ME, or XP. However, many modern computers, mostly Pentiums with fast graphics cards, delay DMA transfers on the ISA bus, causing channel rotation if more that one channel is selected since the DI-200 assumes that DMA requests will be honored at burst rate of the A/D converter. WinDaq/Lite software, downloadable free, supports the DI-200 and can be used to check whether a channel rotation problem exists. WinDaq/Lite disallows storage to disk if the sample rate exceeds 240 samples/sec, but allows it if a single channel is enabled.
If the channel rotation problem occurs or an unsupported operating system must be used, the DI-200 may be traded in toward a DI-400 ISA card or DI-720 parallel port module that do not use DMA and are capable of acquiring up to 250,000 samples/sec through the ISA bus or an EPP parallel port, but the DI-400/PGL card at a gain of 1000 is so noisy that WinDaq disallows that setting. A DI-410 card can replace a DI-210 if 14-bit resolution is required.
How to set up the ChannelList in DataqSDK control
You tried to use an array from VC++ to pass the setting to ADChannelList, ADGainList or ADDiffList and it doesn't work.
Reason: ADChannelList, ADGainList or ADDiffList take variant, not a pointer to an array.Here is a simple VC sample to set up ADChannelList:
VARIANT Channel;
VariantInit(&Channel);
SAFEARRAY * psa;
SAFEARRAYBOUND rgsabound[2];
rgsabound[0].lLbound=0;
rgsabound[0].cElements=10;
psa=SafeArrayCreate(VT_I2,1,rgsabound);
short * pshort=(short *)psa->pvData;
Channel.vt=VT_I2+VT_ARRAY;
Channel.parray=psa;
pshort[0]=3;
pshort[1]=4;
pshort[2]=5;
pshort[3]=6;
m_sdk.SetADChannelCount(4);
m_sdk.ADChannelList(Channel);
Using two Dataq serial devices in the same system with WinDaq software
To run two copies of WinDaq/Lite simultaneously on two serial ports that do not share an IRQ, see here and scroll down to "Using two Dataq serial devices in the same system with Windaq software". The Edit Preferences Broadcast Sync Messages command may be used to start recording data to two files at about the same time. If the sample rate per channel is the same on both devices, the data may be combined into a single file using the new Advanced CODAS Copy Channel function, or using WWB File Save As to export both in format 5 as .CSV files to a spreadsheet for combining. A combined .CSV file can be opened in WWB, converting from format "2) Spreadsheet print file (ASCII)" back to a .WDQ file. Since the devices have independent clocks, a time alignment error may accumulate between channels on different devices.
Our solution to the gap problem is WinDaq/Circ, which records forever in a circular fashion into a preallocated file until stopped by the user. WWB/Circ makes the wraparound at the end of the file transparent to the user, and can even be used while recording. The attached WDQCIRC.TXT file describes the WinDaq features that must be sacrificed to achieve this mode of operation and gives further details.
Here is the specification of WinDaq/Circ.
WinDaq/Circ acquires data into a disk file which consists of a circular buffer, allowing acquisition for an indefinite period of time until stopped by the user, after which time WWB/Circ will treat the file as a continuous time signal ending at the time the user stopped it. Even though the oldest data may not be at the start of the file, Ctrl+Home will go there and Ctrl+End will go to the last point acquired. The WinDaq/Circ does not support any of the following WinDaq acquisition features:
File Open to append to an existing file
File Insert Commented Mark
File Stop with the intention of resuming recording
Edit Preferences Record Next File on Full
Edit Channel Settings sample rate divisor (Pro+ packing)
Options Triggered Mode
Options Triggered Storage
Options Remote Storage
Options Remote Events
The "% used" field will cycle indefinitely from 0.0 to 100.0 to indicate progress, wrapping back to zero without giving a FULL indication. File Record will consume the disk space allocated to the file, and File Stop will return status to SETUP. If recording is stopped before the file fills up the first time, the unused space at the end will be returned to the system. The current file pointer will be kept in the header field normally reserved for pretrigger and posttrigger points, and updated once per second if storing fast, or after each buffer (512 bytes or a little more) is written to disk if storing slow. Edit Preferences Write Through, if checked, causes physical writes to disk and insures that the writes occur in the order issued, but greatly increases disk activity. With this item unchecked, efficiency is better, but simultaneous playback can be more confusing and locating the wrap point after a crash may be complicated by large amounts of cached data waiting to be lazily written.During simultaneous playback, Ctrl+Home or scrolling to the start of the file will move to the start of the circular buffer and Ctrl+End or scrolling to the end of file will move to the end of the circular buffer if it has already been recorded (or to the most recent data on the first pass through the buffer). After the first pass through the buffer, %Eof will indicate the position with respect to the physical (not chronological) file. A Search Go to Recent command will be provided to move to the most recently recorded data. What the user sees to the right of that point may be data written after the command was issued, or data written on a previous pass through the file. It will not automatically update as it is overwritten, but each View Refresh will update it to the most recent data written.
In Edit Compression, selecting Maximum will compress and display the file, but not save the compressed waveform for fast access as WWB normally does until recording is complete. Using this command again will recompress the entire file. The user can use View Event Markers to get around without scrolling, using the 256 equally-spaced markers which are displayed since user-generated ones are disallowed. During the first pass through the file, bit 6 of the .lmkeys field in the header will be set so that WWB knows not to display data beyond the circular file pointer. During acquisition, after the first pass through the file, the F3, F4, and F5 fields will reflect positions in the physical rather than chronological file. The fact that the pointer has wrapped will be indicated by clearing bit 6 and setting bit 7 of the .lmkeys field in the header (65 bytes from start of file).
Options Cursor Time will display a time reckoned from the time read by acquisition the last time the file pointer wrapped back to the beginning. WinDaq/Circ will broadcast a message to WWB/Circ whenever this occurs, which can cause the displayed time to jump if a correction is required because of acquisition or computer clock frequency tolerances or previous time adjustments to the computer. For positions beyond the current file pointer, the number of samples to the end of the file times the sample rate will be subtracted from that start time. During acuisition, Options Start Time will display the last time the circular file pointer wrapped, and Options End Time will display the estimated time of the next wrap. Note that after the first pass through the file, for data beyond the circular file pointer Options Cursor Time will display values less than Options Start Time, even if the data displayed was recently written after the pointer was updated.
The pointer may be somewhat behind the most recent data written if power fails. In this case, the user should use Search Go To Recent and look to the right to visually locate the discontinuity, set the compression to 1, and position the cursor to the next point to be overwritten before doing a save so that Ctrl+Home and Ctrl+End will subsequently go to the chronological instead of physical start and end. The fact that acquisition is complete will be indicated by setting bits 6 and 7 of the .lmkeys field in the header (65 bytes from start of file). Calculate will be missing from the WWB/Circ File menu, since Advanced CODAS does not support calculations in files where the oldest data does not start at the end of the header. File Save As in format 8) CALC will still be available, since all files produced by File Save As will have the oldest data first.
Whenever a data gap occurs during acquisition because of device buffer overrun or acquisition disk buffer overflow, a gap count on the acquisition screen will be incremented and an event mark will be inserted in the first channel data, but nothing will be written to the trailer. As a result, all cursor times to the right of the gap will be incorrect until the next time the file pointer wraps back to the beginning (after which times to the left of the gap will be incorrect). There will be no WinDaq/Circ HiRes version for 16-bit data.
To display Hex number, instead of engineering unit, in WWB
Use debug to open CODASPAR.BIN, and
E 4BC<cr>
4BC 00, 02<cr>
w<cr>
q<cr>
Setup WinDaq/JohnDeere system for multiple boards
Set the DeviceID= Master + 256 * (NumberOfSlaves)
Regarding digital trigger mode
The higher byte in the TriggerLevel will serve as the DigitalMask for the trigger condition. DigitalMask will AND with the digital inputs, if we trigger on positive TriggerSlope, the result from the AND opearation will have to go from 0 to 1. When more than one bit enabled, the 0 state needs all enabled bits to be zero, while 1 state needs only any one enabled bit to be non-zero.
With a parallel port interface outside of WinDaq, the maximum triggered burst size = (pretrigger + posttrigger) points times number of channels is limited to 7500 samples. With the USB interface, the limit is 15000 samples.
The digital inputs DI0 through DI7 are found on pins 25, 6, 24, 5, 20, 2, 21, 29. These are returned in the high byte from di_anin or scan data. The corresponding pins on the secondary connector are returned in the low byte.
MAG values are the peak values of a sine wave at each frequency in Engineering units, so you should multiply them by 2 to get peak-to-peak Volts. That assumes you use the DFT with the end points set to transform an integral number of cycles. With Edit Compression set to 1, enable Options Time Marker on the start of a cycle and move the cursor one sample to the left of the same position on a subsequent cycle. Using Transorm Windowed FFT will give inaccurate results that are typically low by a factor of about 2.
The technical details in the attached text file ADVPOST.DOC still apply. Although it was written for the ADVPOST DOS Program before the algorithm was ported to WWB, the accelerator keys for both programs were kept the same unless they violated Windows conventions.
FAST FOURIER TRANSFORMS FROM ADVPOST
ADVPOST has a fourth help screen which summarizes the keystrokes described
below.
Pressing ALT-F performs a 512*(2^E)-point Fast Fourier Transform on the
channel in window 1, using the 256 data points to the left of the screen
center (to which the cursor is moved) and the 255 data points to the right. If
the F7 compression has one to five factors of two, each such factor causes
each pixel to represent twice as many data points, with each point formed by
averaging C data points, where C = compression / (2^E = product of the 0 to 5
factors of 2 used to expand the transform size beyond the number of visible
compressed points). The number of factors of 2 used is shown following the
letter "E" between parentheses before the label for the F4 field. If the
compression is odd, the 512 points visible between the left and right limits
(inclusive) are transformed, but the input data consists of the mean of each
point on the screen instead of the usually-annotated midpoint between the
minimum and maximum, which are connected by a vertical line on the plot.
The bottom 7/8 of the graphics screen is used to plot the log magnitude of the
spectrum, while the top 1/8 is split between display of the channels in
windows 1 and 2. The size of the FFT screen may be increased by pressing "Y"
or decreased by pressing ALT-Y. The format of the top screen may be changed as
usual by holding down SHIFT while pressing the desired format number. The FFT
plot may be eliminated by pressing CTRL-Y, which exits FFT mode after saving
the size of the bottom graphics screen and the top screen format for use when
FFT mode is reentered. The screen format which was in use before the FFT was
performed is restored, but the memory used by the FFT is not deallocated
unless XY mode is entered, a maximum compression is performed, POST spawns
another program, or CTRL-T is used to calculate statistics.
The F3 and F4 fields on the bottom line of the alphanumeric screen display the
frequency in Hz and magnitude in decibels of the strongest frequency
component, indicated by a crosshair on the plot. By turning Scroll Lock off
and Caps Lock on, the horizontal cursor keys may be used to move the crosshair
along the plot and display data for other frequencies. The decibel values in
the F4 field may be toggled to magnitudes in engineering units by pressing
CTRL-F4. This is the peak amplitude of a sine wave at the frequency shown in
the F3 field. The cursor up and down keys may also be used to move the
horizontal hair to read out approximate values in the F4 field at other places
without changing the frequency. The log magnitude scale may be changed by
moving the horizontal hair to the value which is to be plotted at the top of
the screen and pressing SHFT-F4, which also establishes the new value at the
top as the 0 Decibel reference for values displayed in the F4 field. To move
the reference to a value which plots above the top of the screen, use the
horizontal cursor keys to move to a peak high enough to make the horizontal
hair disappear and press SHFT-F4 again, or move the horizontal hair to the
bottom of the screen and press SHFT-F4 to restore the default plotting scale
and zero-decibel reference.
The default plotting scale keeps all peaks on screen and plots the minimum
non-zero magnitude of the complex 16-bit integer data 6.02 decibels above the
value which represents -INFINITY and is displayed at the bottom right corner
of the screen if annotation is enabled. Since a magnitude of 0 only means that
it is less than half the minimum non-zero magnitude, it is plotted at this
level to avoid wasting space on the screen. A zero-decibel reference remains
in effect until the user changes it or does an FFT on a different channel.
The default zero decibel reference is the signal level which represents half
of the minimum non-zero magnitude when the FFT scales the data by a factor of
two on each pass, which is commonly done in many fixed-point algorithms to
prevent overflow. This would occur for a symmetrical square wave which runs
between the A/D converter limits. To prevent loss of precision when the input
signal uses only a portion of the A/D converter range, the input is scaled up
as far as possible without causing overflow, and the FFT scales down by a
factor of two only when necessary to prevent overflow. This causes the highest
peak to plot near the top of the screen even if the signal is weak, but the
default decibel scale is adjusted to reflect the absolute signal levels. A
sine wave which runs between the A/D converter limits will result in a signal
level of 90.31 DB, which is 20*log((2^15 - 1)/1), where the denominator is the
minimum non-zero magnitude when the FFT omits one of the scalings, resulting
in the value of -6.02 DB, or half the minimum non-zero magnitude, at the
bottom of the plot. This bottom value is used to represent frequency
components for which both the real and imaginary 16-bit integer parts are
zero. However, arithmetic imprecision can cause the maximum number of scalings
to occur if the phase of the sine wave is such that a zero crossing or peak
occurs near the left end of the input data, making one part near zero and the
other just over full scale, leaving the output using half of the integer
range, in which case the value at the bottom of the plot will be 0 DB, but the
signal level will still be 20*log(2^14/0.5) = 90.31 DB. Since the plotting
scale is determined by the largest real or imaginary part of any frequency
component and the magnitudes are the square root of the sum of the squares of
the parts, it is possible for a plot with a smaller highest peak to be
annotated with a scale 6.02 DB higher at each grid line. The default
relationship between raw integer magnitude values and screen position remains
fixed to avoid having to recalculate the lookup table for the logarithmic
plots unless the size of the plot is changed by the Shift-F4, Y, or ALT-Y
keys.
The frequency scale may be expanded by pressing CTRL-F3, which will reverse
video the magnification factor displayed in the label of the F3 field. The
gray + and - keys on the keypad will increment and decrement the magnification
factor after the "X", or decrement and increment the number of adjacent
frequencies whose squared magnitudes are averaged to produce each pixel when
there are too many frequencies to display individually (indicated by "/"
instead of "X"). Press ESC to get out of this mode without changing anything,
or press ENTER to select the displayed value and replot the screen. The
frequency at the crosshair will be approximately centered unless it is near
the minimum or maximum frequency, in which case 0 frequency is shown at the
left end or maximum frequency at the right end. To display frequencies pushed
off screen, use the gray + and - keys on the keypad to page to higher or lower
frequencies, or use ALT-F3 to decrease the magnification until the desired
frequency becomes visible, move the crosshair to it, and remagnify. The
magnification and frequency range displayed remain in effect when performing
further transforms, for which the crosshair will be placed on the highest peak
within this range.
The transform may be inverted by pressing ALT-I. The resulting time data
appears in window 2, tapering toward its mean value at the ends of the
inverval because by default the data is multiplied by a hanning window after
subtracting its mean before being transformed. The use of this window is
indicated by the (hn) label in the F4 field. Note that the zero frequency
values in the F4 field do not include the subtracted mean, which is added back
when the inverse is done. The inverse in window 2 may be scaled by turning off
CAPS LOCK and pressing the cursor up or down keys, and it may be offset by
pressing Page Up or Page Down. The inverse may also be compressed or
decompressed, but if the compression is set to one and averaging was done to
get the input points, each point of the inverse will be replicated by the
number of points averaged to get the input. The inverse may be calculated
after scrolling the data which produced it and still appear correctly aligned
with the data which produced it.
The inverse channel beyond the ends is set to minus full scale to indicate
where the data ends. The inverse (and all other channels for which data is
displayed in the current screen format) may be output to a file using CTRL-F6.
To output just the inverse, deassign all windows except 2 by typing, for
example, "1=0". However, computation of another inverse wipes out the previous
inverse even it the time data do not overlap, so each one should be output to
an individual file.
Press CTRL-W to reverse video the field which shows the type of data window in
use. The gray + and - keys on the keypad will change the window name in this
field to "Hm" (Hanning), "Bl" (Blackman), "Ba" (Bartlett or triangular), and
back to "hn" (hanning). Press ESC to cancel the change or ENTER to select the
displayed window name and redo the transform. Pressing CTRL-F instead (with
the F4 time marker off) transforms the data without multiplication by a
window, after which ALT-I should closely recover the original signal. If the
original signal was compressed, had to be averaged, and contained sharp
transitions, it may look weaker because lines between the minima and maxima of
the means of the averaged points are plotted instead of lines between the
minima and maxima. The most recent data window is used for further ALT-F
transforms until changed by the user.
The signal discontinuities occuring when unwindowed data in repeated
periodically (to form the actual input signal whose power spectrum is being
computed) cause components at frequencies not present in the actual input
signal. To display an undistorted spectrum or achieve an unwindowed filtered
inverse, the discontinuities be minimized by transforming an integral number
of cycles of a periodic input to avoid the spectral distortion introduced by
use of a data window. This may be done by using ALT-F1 and CTRL-F1 to move the
left and right limit cursors to indicate the endpoints of the time data to be
transformed. These limits default to the left and right ends of the screen if
an ALT-F transform is not done previously. The data, F3, F4, and F5 annotation
follow the movement of the selected limit, making it easier to adjust to a
desired position in the data.
Pressing CTRL-F performs an unwindowed Discrete Fourier Transform (indirectly
using FFT methods for reasonable speed) of a variable number of points. If no
time mark has been set by the F4 key, the data between the left and right
limit cursors (including the points under the cursors) is transformed.
If a time mark has been set with the F4 key, the data between the cursor and
mark, inclusive, is transformed, with each input point consisting of the
average of C = compression (F7) points. If the transform size exceeds 8192
points without being exactly 16384 points, C is multiplied by the smallest
integer necessary to keep the transform size from exceeding 8192 points or
being equal to 16384 points. The actual value of C used is shown after the
letter "C" between parentheses before the label for the F4 field, or without
the "C" if in the range 10-99, or as "C*" if C is greater than 100.
If the number of data points is a large prime, it may take several seconds to
compute the sine-cosine table needed for the transform. An inverse or another
transform using the same number of points will not encounter this time
penalty. Best results usually occur when the data end points are selected near
places where the waveform crosses its mean value, since amplitude variations
can cause discontinuities when the end points occur on peaks or valleys. Note
that the right limit should be placed one pixel to the left of the one which
is closest to the same point on the cycle as the left limit. Note also that if
compression is necessary to see both endpoints at the same time, they may be
set more precisely by decompressing (to 1 or another value equal to the number
of data points to be averaged per transform point), marking one end with F4,
paging or scrolling to the other end, and transforming while still at the
desired compression (with the other end off screen).
With Caps Lock and Scroll Lock on, frequency data may be edited to delete
selected components. The Del key deletes the frequency component(s) under the
vertical hair, CTRL-cursor-right deletes all components to the right
(excluding the one(s) under the hair), and CTRL- deletes all components to the
left. This editing is applied to the complex frequency data used to perform
the inverse, so it may be used, for example, to see the effect on the signal
of removing interfering components.
The frequency plot may also be smoothed out by applying a moving-window
average to the squared magnitudes before the logarithm or square root is taken
to convert to decibels or magnitude. Press CTRL-A to reverse video the number
of frequencies in the moving window (default = 1). The gray + and - keys on
the keypad increase or decrease the size of the moving window to one of 15
allowable values (maximum value = 48). Press ESC to cancel the change or ENTER
to select the displayed value and replot the spectrum. The setting remains in
effect until changed by the user, and affects subsequent transforms. If
averaging is in effect, the window size is displayed after "D(B)" or "M(A)" in
the label for the F4 field. This averaging does not affect the complex
frequency data used as input to the inverse transform.
Pressing Shift-F6 outputs the frequency data to an ASCII file in three-column
spreadsheet format preceded by a header. Data is output for all frequencies
independent of the frequency magnification, but is affected by moving-window
frequency averaging. Decibel values for frequencies with zero magniutude are
output as the value shown on the decibel scale for the bottom line on the
screen to facilitate replotting in a spreadsheet program.
Although the FFT plot remains on the screen after the top screen is scrolled
elsewhere in the file or compressed, Shift-F6 will still output the correct
header to identify where the plot came from. However, if the user exits
ADVPOST with "S" to save its state, this information is not saved in the data
file header, nor is the presence of an inverse. Only the vertical size of the
FFT plot, left and right limit cursor positions, leftmost displayed frequency
index, frequency magnification factor, frequency-averaging window size, data
window type, and state of the DB/MAG toggle are saved in the header. The net
result when the file is reviewed again is to enter with a new FFT performed
according to the saved parameters. Any scale change performed by SHIFT-F4 or
crosshair positioning away from the highest peak are ignored, and the FFT is
plotted using the default scale and zero-decibel reference. To return with the
same plot present at exit, avoid changing file position, compression, window 1
channel assignment, FFT vertical scaling, crosshair position, transform type
(CTRL-F/ALT-F), F4 marker (for CTRL-F transforms), or left and right FFT
limits (for ALT-F transforms or CTRL-F with F4 off) after performing the FFT
and before saving state.Because some large FFT operations take many seconds, a letter is displayed
just after the colon in the F3 field to show what is going on, since pressing
the FFT keys again could queue up more time-consuming requests and tie up the
machine for several minutes.
LETTER ACTION
A Compute squared magniudes, averaging by the CTRL-A frequency
smoothing factor.
C Change variable-point sine-cosine table when number of points
changes for DFT of other than a power of 2 points.
D Gather input data from disk or compute output data from inverse FFT.
F Perform basic FFT algorithm or its inverse.
L Compute exponential lookup table for use in logarithmic plotting.
M Multiply input data by window or multiply transforms during indirect
DFT of a number of points which is not a power of 2.
S Form Sine-Cosine table for basic FFT. This is done each time an FFT is
needed which is two or more times larger than the previous largest.
W Compute Barlett, hanning, Hamming, and Blackman windows. Done each
time ALT-F is pressed for an FFT two or more times larger than previous.
L time can be shortened by a numeric coprocessor.
S and W will have to be redone after deallocating memory to spawn another
program, perform a maximum compression, enter XY mode, or calculate statistics
with CTRL-T, but memory is retained after a CTRL-Y exit to allow reentering
FFT mode with ALT-F or CTRL-F without a time penalty.
C time is roughly proportional to the number of transform points, and will
show up each time the number of points changes for CTRL-F transforms.
L time is proportional to the height of the frequency part of the split
screen, but occurs only once unless Shift-F4, Y, or ALT-Y are pressed.
D time is proportional to the total number of transform points and the number
of data points to be averaged per transform point. For forward transforms, it
is also proportional to the number of channels in the file and the time
required for disk operations.
A time may be reduced by using ALT-A until the frequency smoothing factor
becomes 1 (disappears after "DB" or number after "MA" becomes "G").
F, M, and A times are roughly proportional to the number of transform points
and machine instruction times.
If insufficient memory is available to perform an FFT with the requested number
of points, a popup message "FFT needs XXXXXX bytes more memory." is displayed
along with a beep. Pressing any key removes the popup as well as performing its
normal function. The following table shows the amount of memory needed to
perform various sizes of FFT's:
# of points # of points
power of 2 variable FFT memory needed
1-2048 3-1023 27840
4096 1025-2047 55488
8192 2049-4095 110784
16384 4097-8191 221376
ADVPOST uses only memory below 640K. If it is necessary to do an FFT of the
size requested, memory can be saved by running ADVPOST directly from the
command line instead of spawning it from another program, removing terminate-
and-stay-resident programs, decreasing the BUFFERS allocation in CONFIG.SYS to
save 528 bytes per buffer, or using CTRL-F6 to extract the channel(s) of
interest into a separate file. ADVPOST requires 6432 bytes per channel in the
input file, and if a maximum compression has been done, an additional 2632
bytes per input channel. In DOS version 3.3 with FILES=20 and BUFFFERS=30 in
CONFIG.SYS, no TSR programs, and maximum compression not done, ADVPOST can do
the largest FFT's on files with up to 16 channels.
POST is now a stripped-down version without XY or FFT capability, small enough
to be spawned from acquisition for calibration purposes. The new statistics
capability is now included, since it is useful for determining the mean
value of a calibration signal to which the baseline may be set after ALT-F2,
and the standard deviation may call attention to problems before
acquisition begins. After calibration, CTRL-T may be repeated to report
the statistics in engineering units.