FFT / WAVEFORM MODE CONTENTS:


FFT / WAVEFORM MODES:

When the FFT option (F-key) is inactive, the display shows waveforms as voltage (or User Units) versus time. When the option is active, the display changes to show the spectrum of the corresponding waveform display. This will be a plot of magnitude vs frequency (magnitude spectrum) unless the Y-Log option is also active to show a power spectrum instead. The spectrum is computed from N points of the waveform using the Fast Fourier Transform (FFT).


AMPLITUDE RESOLUTION:

The trace area is 256 pixels tall, so amplitudes are scaled accordingly for display. Internally, values are maintained as 16-bit numbers for instantaneous waveforms and for each half (sine and cosine, or real and imaginary) of an FFT point (32 bits total), as 32-bit numbers for waveform averages, and as 48-bit numbers for FFT averages. In FFT32 mode, each component is computed with 32-bit values instead of 16.


TRACE MAGNIFICATION:

When the Help system is inactive, the PgUp-key increases the size of the trace on the screen, and the PgDn-key reduces it, over 25 ranges in factors of 2 for linear displays (21 ranges in Y-log FFT mode). The Y-axis is always scaled to match, taking into consideration the gain range used by the data acquisition board plus any factor needed to convert to User Units, if active.

In the linear modes, SHIFT-PgUp and SHIFT-PgDn behave just like PgUp and PgDn, but can also work with the 5-line Help mode (SHIFT-H). In FFT Y-log mode, the shifted page keys behave differently: They "slide" the current log range up or down to show detailed views of any portion of the trace. For example, your signal may have high-level components near 0 dB and a noise floor near -100 dB. To see the entire trace, you would need to set the range to cover 100 dB or more. But if you are particularly interested in components near the noise floor, you can set a smaller range (say, 20 dB total) with the page keys, then use the SHIFT-Pg keys to slide it to cover -90 to -110 dB. (You can also use the FS Ref menu control for direct entry of the range top, instead of scrolling with the SHIFT-Pg keys.)

The Y-log ranges can be set to cover up to 180 dB, or as little as 6 dB total.

The least-sensitive linear range is always 32 times the full scale input of the data acquisition board, so if the board is set to a 100 mV range, for example, the screen magnifications run from +/- 3.2 V to +/- 190 nV in waveform mode, or 0-3.2 V to 0-190 nV in FFT mode. In either mode, the Y-axis is always scaled with user-friendly steps in a 1, 2, 5, 10 sequence. (In Y-log FFT mode there are 21 ranges in 2, 5, 10, and 20 dB steps.)

TIP:
The screen magnifications are retained separately between modes, so you can enlarge the FFT view to see fine detail without having the waveform view go off-scale when you flip back to it.

Why so many steps? With a 16-bit board on a 100 mV range, a single bit is about 3 microvolts. However, when you average, you can extend the resolution proportional to the number of averages. So if you averaged 32768 sweeps together (the maximum Daqarta allows and probably WAY more than most of us want to wait for), you could theoretically get resolution down around 900 nV... and Daqarta would still have room for future expansion.

And why go higher than the maximum output of the board? Though it is not obvious at first, the spectrum of a wave can easily have components in it that are larger than the wave. You can see this for yourself with the Virtual Source. Set the output to a sine wave at the maximum level... let's say it is +/- 100 mV. Hit FFT and you will see a spectral line at the source frequency with an amplitude of about 100. (It might not be exact if you didn't have an exactly integer number of cycles in the waveform display. Fine-tune the frequency until you get a maximal response from the spectral line.) Now change the source to a square wave and the line jumps up to about 127 mV... you may need to use PgDn to see it. There will also be other lines at odd harmonics of this.

What's going on here? The square wave can be regarded as the sum of a bunch of sine waves. The fundamental has an amplitude of +/- 127 mV. To this is added another wave at 3 times the frequency and 1/3 the amplitude. By the time the first wave just reaches its first positive peak, this 3rd harmonic will have gone through one and a half complete cycles and will be at its negative peak... so the sum of the two waves is actually less than the fundamental component. The further harmonics just elaborate on this process. But the FFT knows all, sees all. It can pull the true value of the components out of the mix.

But if all we needed was to resolve the occasional large FFT fundamental, the highest range could be twice full-scale. Ranges up to 32 times are needed since the Memory Array option allows up to 32 traces on the screen at once, and you might need to reduce their sizes so they don't interfere with each other.

If you have a signal that is too large for the magnification, the trace will be "clipped" to the screen limits. Higher or lower parts of the signal are shown as horizontal lines at the appropriate screen boundary... they don't just vanish. If you want to see these parts, just reduce the magnification as needed.

One exception to this is if the signal is actually too large for the current full-scale range of the ADC board, such that the ADC itself is clipping the signal. In this case, reducing the trace magnification will just show a smaller version of the clipped signal. This is a serious problem, since the missing data is truly lost. Worse, the clipping distortion will contaminate both waveform and spectrum averages. You must either switch your board to a less-sensitive range, if it has one, or arrange to reduce the signal externally.


FORCING FULL-SCALE TRACE MAGNIFICATION:

Use SHIFT-HOME to force the trace magnification to show the full-scale range of the board (start-up default). SHIFT-END will restore the prior magnification. This is simply a convenience if you have made a lot of changes and forget where you are. However, it also allows you to do a quick check on waveform or spectrum peaks, such as when you are concerned that your input signal may be nearing the limit of the ADC. You can then return to monitoring some low-level feature that requires higher magnification.

If FFT Y-log mode is active, SHIFT-HOME and SHIFT-END will force and restore both the overall dB range and the top dB value (the full-scale reference).

You can set SHIFT-HOME to force any magnification you want, not just the full-scale default. Use the normal page keys to set the desired magnification, then hit SHIFT-ALT-HOME. There will be no apparent effect just then, but the next time you hit SHIFT-HOME, you will get the new preset magnification. For FFT Y-log mode, the full-scale reference is included.

If you have two different magnifications that you must often switch between, just preset the first with SHIFT-ALT-HOME, then go to the second. Now hitting SHIFT-HOME will force the first, and SHIFT-END will return to the second.

Note that these same keys also affect the Y-axis display in Spectrogram mode when N = 1024 points, but in a different manner since this is now an expanded frequency axis. Here SHIFT-HOME forces the bottom half of the spectral range (the start-up default), and SHIFT-END restores the prior range.


TRACE MAGNIFICATION vs HELP:

When the Help system is active in the upper (25-line) mode, it replaces the trace area so trace magnification is not needed. The page keys then function to page through the Help text.

If the Help system is active but shifted to the lower (5-line) mode, the page keys still act to page through the Help text (at 5 lines per "page" instead of 25), but now there is a visible trace that we might want to magnify or reduce. In this case, use the SHIFT-PgUp and SHIFT-PgDn keys to perform the same functions that PgUp and PgDn performed when Help was inactive.

Although it would have been nice to have a consistent interface, it was felt that this system would be more friendly in the long run based on actual use. However, if interface consistency is more important than cutting extra keystrokes, you can use the SHIFT-page keys to control magnification even when Help is not active... you can think of this as S for SHIFT and Scaling. (But note that in Y-log mode the shifted page keys "slide" the current range while keeping the same total size in dB, whether Help is active or not.)


TRACE AUTO ZERO (Zero):

You may want to look at a small signal waveform in the presence of a larger constant level, or "DC offset". If you try to increase the trace magnification to see small details in the waveform, the offset is increased as well and may drive your signal right off the screen. In this situation, hit the Z-key to activate the trace Auto Zero mode. In this mode the constant offset is subtracted before display, so the small signal appears centered about zero on the trace. You can now apply magnification without the offset.

ZeroA:

There are actually two forms of the Auto Zero option, that differ in how the constant offset is computed. When you first hit the Z-key, the option will change from 'Zero' to 'ZeroA' as well as becoming highlighted. The A stands for Average: All the data points are simply averaged together to determine the constant value. This is probably the best choice if your signals are very one-sided, like a spiky neural discharge, or even if your signals are symmetrical but have one-sided noise spikes.

Under extreme conditions, it may not be possible to actually use the simple average value this way. For example, if there is a very large positive peak together with a negative average value, subtracting the average could actually force the peak to a value larger than the 16-bit data format can handle. Daqarta detects this condition automatically, and adjusts the constant to eliminate as much of the offset as possible and still keep the peak in range.

ZeroP:

If your signal is a known symmetrical waveform (like a sine wave, triangle, ramp, square, etc.) and especially if its frequency is low relative to the sample rate (so that you only see a few cycles per trace), this alternative method is probably better. Hit the Z-key again and it will convert to a highlighted 'ZeroP', where the P stands for Peak. The constant offset is now assumed to be midway between the most positive and most negative peaks. If the waveform is really symmetrical, this will give its true zero value.

TIP:
To make a Peak-to-Peak measurement on ANY repetitive waveform, even one that is not symmetrical, it is often faster to use the ZeroP option. Read only the positive peak with a single cursor movement, and just double the reading. This may be easier than adjusting both cursors and using the "delta" readout. Of course, ZeroP is an ideal method for reading Zero-to-Peak values for waves with known symmetry.

Why can't you just use ZeroA to get the same result? You actually CAN if you have an exact integer number of cycles of the wave on each sweep, since then the positive half-cycles will average out with the negative half cycles. But this rarely happens by chance... you usually have an extra fraction of a cycle that throws off the average. Having ZeroA active in this circumstance will actually show an offset that isn't really there! This problem becomes worse at low frequencies since the fractional cycle can be a larger percent of the total.

When a Zero option is active, the waveform cursor readouts show the value without the DC level. If you need to read the total level, you must toggle Zero off. If you have increased trace magnification while Zero was active, this may send the trace off the screen... but the readouts will still be correct.

If you want to set a particular Zero state using a Key Macro, you can use the KeyOn option to force the ZeroA mode from the Z-key, with an additional Z-key to get to ZeroP.

Note that the Zero option is only available in waveform display modes. In spectrum modes the presence of DC only affects the 0 frequency value, not the rest of the spectrum, so there is no need to remove it.

The presence of a DC offset is actually fairly common when observing small signals. Biological signals are notorious for this, due to "contact potentials". These are effectively tiny batteries that are formed at electrodes in contact with tissue fluids. Proper selection of electrode materials (such as silver with silver chloride) can help this problem, but you will usually want to have a high-pass filter as well, to remove any residual DC levels. This is almost always required if you are going to use a preamplifier to boost the signal before sending it to your acquisition board or other instrumentation. Otherwise, the preamp will boost the DC as well as the signal, and the preamp or the acquisition board will overload... essentially the same problem as trace magnification without the Auto Zero option.

So if you have a high-pass filter to block DC levels, why would you ever need Auto Zero? True, the filter may block the DC from the reaching the preamp, but inevitably there are other sources of DC within the system... even with the input signal removed and the inputs shorted together. Amplifiers, including the preamps on the data acquisition board, always have small DC errors, particularly if you are using a "sound card" instead of a laboratory board. Sound cards have no place to "adjust out" these errors, so Auto Zero is the only way to get rid of them.

But beware of using Auto Zero indiscriminately, instead of an input high-pass filter. If the DC offset becomes large enough, the board preamp or the ADC chip itself may be overloaded, and you won't get any advance warning... Auto Zero will prevent you from seeing the trace drifting off the top or bottom of the screen. The first indication of a problem will most likely be a distorted waveform, such as a flattened top or bottom portion from banging into the amplifier limits, but this may be hard to spot at first.

Most sound cards have built-in high-pass filters so they don't have this particular problem, but if yours doesn't, or you are using a laboratory board (which almost never have filters), you need a way to keep an eye on things. You can toggle the Zero key off momentarily to see where the trace is, but just because it is off-screen with a highly-magnified trace does not mean you are near the range limits yet.

The easiest way to handle this is to hit SHIFT-HOME to force the trace magnification to show the full-scale range for your board, and see if the trace looks like it's getting near the screen limits. SHIFT-END will then restore the prior view. Or you could just look at the cursor readouts with Zero off, and see if the values look like they are getting near full-scale.

You can also get a quick graphical view of the DC in the signal just by flipping to the FFT mode and looking at the 0 frequency line on the spectrum. You will need to allow for the fact that signal peaks will push the input closer to the full-scale limit than indicated by the DC component alone, but with a little practice on any particular signal you should be able to get a good feel for what is going on.


WAVEFORM TIME RESOLUTION:

This is the same as the sample period (the reciprocal of the sample frequency). When the number of points N is 256 or 512, each sample is shown separately on the trace. However, since the trace area is only 512 screen pixels wide, samples are combined for display when the number of points is 1024. The trace cursors will nevertheless read each sample separately, even if there is no visible cursor motion when moving between adjacent samples.


FFT FREQUENCY RESOLUTION:

The sampling frequency and the number of waveform points (N samples) processed to compute the FFT determine the frequency resolution. There will be half as many frequency points as there were waveform points, and they will be spread uniformly from zero (DC) to half the sample frequency, so the resolution will be the sample frequency divided by the number of points.

For example, with a sample rate of 40 kHz, the resolution with 256 points will be 40000/256 = 156.25 Hz per frequency point. At 512 points it will be 78.125 Hz, and at 1024 points it will be 39.0625 Hz. These calculations are all incorporated by Daqarta into the X-axis display, so you will rarely need to give them much consideration.


FFT CPM MODE:

SHIFT-C invokes the CPM mode, which shows the X-axis in units of Cycles Per Minute (CPM). Users who are working with rotating machinery often prefer to see frequencies expressed in CPM instead of Hertz (1 Hz = 1 cycle / second = 60 CPM), since CPM is the same as Revolutions Per Minute (RPM). So if you know that the crankshaft of your car engine is turning at 2000 RPM, you might expect a vibration pickup to see a corresponding spectral peak at 2000 CPM. Since a 4-stroke engine takes 2 complete crank revolutions to fire all cylinders, you should also see a peak at the firing rate of RPM × Cylinders / 2. Other peaks may be used to monitor the motions of other parts of the engine.

In complex machinery, the use of spectral analysis can help with machine maintenace. Using a vibration transducer, you record spectra from various points of the machine on a regular schedule. You can then compare current recordings to earlier ones to detect changes. If you know how many teeth are on each gear, or what the various pulley ratios are, or how many balls are in a bearing, you can make a pretty good guess as to what is causing a spectral peak to rise over time. Spotting a defective part before the problem becomes critical might save some very expensive down-time, especially since one failed part may often cause others to fail as well.

The CPM key is disabled when not in FFT mode.


FFT POWER SPECTRUM DISPLAY (Y-log):

When the FFT mode is active, the Y-key toggles between linear (magnitude) and logarithmic (power) Y-axis display modes. This key is disabled when not in FFT mode. The Y-axis is labeled in dB going down from 0, where 0 dB is the full-scale input range. There are 21 ranges, from -6 dB to -180 dB, with -90 dB default. Use the PgUp and PgDn keys to change ranges.

You can also use the SHIFT-PgUp/PgDn keys or the FS Ref control to "slide" the axis to get a detailed view of a larger range. For example, you can set the top of the axis to -90 dB, and reduce the range to magnify just the portion from -90 to -100 dB.

The normal dynamic range of a 16-bit input is theoretically only about 96 dB, but that is the ratio of the largest signal to the total noise in all frequency bands. The contribution from each individual frequency (the "noise floor") can be much lower... in theory, as low as -125 dB for an FFT of 1024 points, assuming "infinite" precision in compuations (no roundoff or truncation). Daqarta approaches this limit only in FFT32 mode, which uses 32-bit calculations... with the normal 16-bit calculations the limit is more like -90 dB.

To handle cases where the spectrum contains components larger than full scale, each log range has extra room above 0 dB adequate for worst case conditions.

Since the dB is a unit of power (proportional to the square of magnitude), certain relationships are more easily seen. Also, the entire range of the signal can be shown in one display. With the linear magnitude display, if the magnification is set so that you can see the higher peaks of a typical signal, the lower peaks and the background noise are usually off the bottom of the trace.

In acoustics and electronics, a logarithmic vertical display is the standard means for showing the frequency response of a system. Because of the nature of logarithms, the response to different input levels gives the same shape with only a vertical shift, so it's easy to see if two responses are the same or different. With a linear magnitude display, this is much harder, since the two responses would be related by a multiplicative factor.


HIGH DYNAMIC RANGE FFTs (FFT32):

SHIFT-F shifts into 32-bit FFT mode, instead of the default 16-bit mode. When FFT32 is active, all FFT calculations are carried out with double precision for increased dynamic range. Use FFT32 when you are interested in extremely low-level components... say below -70 or -80 dB. To get the maximum advantage from this, you will need to use windowing in order to eliminate leakage "skirts" that can otherwise mask low-level information. Better yet, adjust the test frequency or sample rate to insure an integer ratio between them. If you are using the STIM3A Advanced Stimulus Signal Generator to provide a driving signal, the StepN option will fine-tune its frequency automatically to insure that the stimulus is locked to an exact FFT spectral line.

FFT32 mode can resolve components more than 100 dB below full-scale. Measurements in this range require great care to prevent extraneous noise sources from contaminating the data. Many real-world signals will require waveform averaging to reduce noise. (Start the waveform averager and then toggle to FFT mode to see the enhanced spectrum... don't use spectral averaging, which shows average noise without reducing it.) This extra dynamic range comes at a price of computation speed... FFT32 typically takes about twice as long to compute each spectrum, or more than 4 times as long on older (286 or 8088) CPUs. This may be a trivial difference on fast modern systems, so you might want to leave FFT32 activated all the time. You can always shift back when you need ultimate speed. When FFT32 is active in Spectrogram mode, a separate color sensitivity system is employed to allow use of the increased range.


POWER SPECTRAL DENSITY (PSD):

The SHIFT-P key activates PSD mode from the power spectrum (Y-log) mode. This simply scales the Y-log display by the frequency resolution to give power per Hz instead of power. Since this just results in a vertical shift in the log display, why would we want to bother? The reason is that this makes it possible to compare results taken with different sample rates or number of samples N.

PSD is only useful (and valid) for continuous spectra like noise sources, where there is energy at every frequency. Each FFT output point represents a narrow band of frequencies, and its value is the composite of all of those. Clearly, if we combined two or more adjacent bands together, the power in the new band should be the total of the individual powers. (Note that this does not hold true with magnitudes: Since power is related to the square of magnitude, we would need to take the square root of the total.)

A 512 point FFT would have bands that are twice as wide as a 1024 point FFT, so there would be more total power per band and the simple power spectrum would appear to show more power. Of course, there isn't really any more total power, since there are fewer bands, but if you were trying to compare these two spectra it would not be at all obvious that they were actually recorded from the same source.

The PSD mode simplifies this by showing the results as if each FFT band was exactly 1 Hz wide, so no matter how the original spectrum was taken the results are comparable.

You can see the benefits of PSD mode for yourself using the Virtual Source. Set the noise level fairly high and look at the ordinary power spectrum (Ylog active, but not PSD). As you hit the N-key to roll between 256, 512, and 1024 points, you see the apparent level drop as the number of points increases. Now activate PSD. The overall level drops to reflect the fact that we are now looking at the effective level in bands only 1 Hz wide, but it does not change when you change the number of points.

To understand why this is NOT valid for line spectra, consider that a pure sine wave has all its power in an "infinitely" narrow band in the first place. If an FFT filter band is tuned exactly to this frequency, the sine wave should be captured completely. Making that filter wider wouldn't allow "more" of the wave through, since there isn't any more... all we could do would be to let through other adjacent frequencies.

You can try this experiment with the Virtual Source, but in order to get meaningful results, you must make sure the sine wave is in the center of one of the FFT filters. The easiest way to do this is to fine-tune the frequency for maximum output from a single spectral line. If you do this in the 256 point mode, then when you move to more points (narrower filters), the sine will still be centered... and its level will not change. This will be true in linear magnitude or normal power spectrum (Y-log) modes. In PSD mode, however, the level changes... clearly a bogus result since we know the power in the sine is not changing.


FFT X-LOG DISPLAY (X-log):

The FFT X-axis can be toggled to or from logarithmic display mode via ALT-X. Combined with the Y-log mode to get a log-log display, this is a standard method for viewing scientific and engineering data of all sorts, especially where wide ranges must be shown in a single view.

Many phenomena that show an exponential response on a linear scale become linear on a log-log scale. A typical example of this is the behavior of a simple low-pass filter: Above its cutoff frequency, the output falls off proportional to the inverse of frequency. In log terms, this halving for each frequency doubling is usually expressed as a slope of "6 dB per octave" or the equivalent "20 dB per decade". For a filter whose response falls as the inverse square of frequency, the log-log slope would be 12 dB per octave, and for the inverse cube it would be 18 dB per octave.

The log-log slope, properly interpreted, is thus a measure of the mathematical "degree" of the underlying equation of a simple system, be it mechanical, electrical, or whatever. Although there are many pitfalls to using this idea to analyze an unknown system, it can be very useful when carefully applied to well-behaved systems.

If you use the Xpand function while in X-log mode, the settings are kept separate from those of linear FFT mode.


GO:

Questions? Comments? Contact us!

We respond to ALL inquiries, typically within 24 hrs.
INTERSTELLAR RESEARCH: Over 20 Years of Innovative Instrumentation
© Copyright 1999 - 2001 by Interstellar Research - tech@daqarta.com