Fatpigdog Industries Real Time FFT Spectrum Analyzer
Fatpigdog Industries
Real Time FFT Spectrum Analyzer
User’s Manual
Revision 3.32
November 2009
Copyright 2009, Spyro Gumas
All Rights Reserved
Spectrogram of radio signal reflected off of the wake of a Geminid meteor as it enters earths atmosphere
Legal Notice and Disclaimer
Fatpigdog's Real Time FFT Spectrum Analyzer software is intended for hobbyist and casual use only. It is not a calibrated software instrument, and therefore any results produced can not and must not be used to provide quantified spectral and power measurements for commercial, medical, military, government, or any other official use.
Under no circumstances shall Fatpigdog's Real Time FFT Spectrum Analyzer software be used in a safety or life critical application.
No warranty is expressed or implied for the operation, usefulness, accuracy, or appropriateness of Fatpigdog's Real Time FFT Spectrum Analyzer. Neither Spyro Gumas, Fatpigdog Industries, Blueberry Technology, nor any affiliates or associates shall be held accountable, responsible, or liable for any consequences resulting from the use of Fatpigdog's Real Time FFT Spectrum Analyzer software.
License Agreement
The unregistered Free Trial version of the Real Time FFT Spectrum Analyzer may be freely distributed and used by anyone. There is a nag that appears every few minutes to remind the user of the right thing to do. Other than the nag, the Trial Version is fully functional, except restricts the ability to save configuration, default configuration, or BMP files of the display.
The Registered Professional Version of the Real Time FFT Spectrum Analyzer is licensed for use only by the person that paid for it and received the Registration Code. That lucky sole may install the software on up to two machines and even run them simultaneously ... Waaaa Hoooo. No sharing ... the kids gotta eat.
********************* System Requirements ****************
Operating Systems:Processors:Hard Disk: RAM:
Windows XP Sk 2 or 3Intel Pentium 4 and above 680 MB** 512 MB
Windows Server 2003 SP 2 or R2 Intel Celeron*
Windows Vista SP 1 Intel Xeon
Windows Server 2008 Intel Core
AMD Athlon 64*
AMD Opteron
AMD Sempron*
* Processor must support SSE2 instruction set.
** Disk space requirement varies depending on size of partition. The Runtime installer will inform you of the hard disk space requirement for your particular partition. Installation size will be determined by the installer and can vary for NTFS and FAT formats.
Graphics:
16-, 24-, or 32-bit OpenGL capable graphics adapter
The User Interface.
Pretty self explanatory. Click on a Function button to select category. (such as Frequency, Amplitude, or Trigger).
For most Function buttons, but not all Function Buttons, function option soft keys will appear on the right hand side boundary of the display. Some of these soft keys will act on their own, others will require additional input.
If a Soft Key requires additional numerical value input, the Field Entry box will open up on the left side boundary of the display with the current value already highlighted and ready to be overwritten. At this point, the user can simply type and the value will overwrite the existing valuein the edit box. This mechanism is provided as a short cut so the user need not click in the Field Entry box. A Function button may have some or all of its sub-menu Soft Keys as click-only, no Field Entry required.
Description of Function Buttons and their Soft Keys
Config - The Config Function provides soft keys which the typical user may never want or need to use. However, these features can be useful for the advance user.
Tstupid - When data capture is initiated with the audio capture card in My PC, the initial gain response is zero, or pretty close to it. My audio card takes approximately 100 ms for its recording gain to stabilize. Tstupid is an advance in the amount of time that the spectrum analyzer captures data for a Single sweep, or for the first sweep of a Free Run. The captured data during the Tstupid interval is discarded. The user has access to this parameter to use at his peril. The default value is 100.
WFSwps - The default number of sweeps in Waterfall display mode is 100. WFSwps provides the user with the ability to change the number of sweeps captured in the time history of the waterfall.
Span/RBW - The defaultratio of Span to ResBw is 500. This is the value used in calculating the ResBw in auto mode, relative to the selected span. Span/RBW provides the user with the ability to change this ratio.
Buffer - Clicking on the Buffer soft key opens up a new soft key menu shown in the following Buffer function section.
Memory - Clicking on Memory opens up three text fields underneath the display area (after a spectrum sweep). These three text fields are Max Array, Free Mem, and Mem Used and are primarily used for debug. The numbers reported here are in units of MBytes. MaxArray indicates the largest single consecutive block of memory available for an array, Free Mem is the number of MB free, and Mem Used is the number of MB currently used by the spectrum analyzer program.
Version - This provides a brief text screen with program identification, version, and copyright info.
Buffer - The Buffer function does not have its own function button, but instead is invoked by the Buffer soft key under the Config function. However, once invoked, it has soft keys just like other functions do. The Buffer referred to by this functionality is the audio FIFO (First In First Out) buffer in the audio card hardware. For those aware of the functioning of FIFOs, the functionalityprovided by the Buffer soft keys may be of interest. For the majority of users, the Buffer soft keys may be an area to stay away from. Note that the FIFO buffer is only operational for Live Input Mode.
ShowFifo -This causes a FIFO display to appear, showing real time status of the FIFO usage. The FIFO graphic shows the dynamic FIFO fill status between 0% to 100% percent. If and when the FIFO is flushed to 0%, this can be plainly seen.
AgeLimit - AgeLimit provides, in seconds, the amount of time for which audio may reside in the FIFO before it is to be considered Stale. Once data is stale, the FIFO buffer is flushed empty. This can occur when short FFTs are being executed (fast sweeps) imposing a large computational load on the processor. Of course, higher performance processors will suffer less than older, slower processors.
Blk Info - Clicking on Blk Info opens up three text fields underneath the display area (after a spectrum sweep). These three text fields are Age Limit, Block Size, and Blocks and these are primarily used for debug. Age Limit is the user specified AgeLimit parameter previously described. Block Size and Blocks are parameters that the user can not control, and they are descriptors of the Digital Acquisition FIFO (First In First Out) Buffer. The total number of samples in the FIFO is equal to Block Size x Blocks. The FIFO management subsystem automatically controls these parameters such that the FIFO never Overflows. It should be noted that for a given program instantiation (run), these parameters can only grow.
Back - Takes the menu system back to the Config function screen.
File - The File function provides the user with the ability to save and recall customized spectrum analyzer configurations. Configuration files are saved as type *.fpd.
Recall - Recall opens a browser and lets the user select a previously saved spectrum analyzer configuration file (*.fpd). If the spectrum analyzer is in Free Run mode before the Recall operation, it will continue in Free Run after the recall operation. Of course, all of the spectrum analyzer settings will be in the newly recalled configuration.
Save - Save opens a browser and lets the user save the current spectrum analyzer configuration to a configuration file (*.fpd). If the spectrum analyzer is in Free Run mode before the Save operation, it will continue in Free Run after the Save operation.
Default? - The Default function is a specialized version of the Save function. The Default function asks the user to confirm that he wants to save the current spectrum analyzer configuration as the Default spectrum analyzer configuration. If a Default spectrum analyzer configuration file exists (default.fpd) in the start up directory when the Real Time FFT Spectrum Analyzer program is started, the spectrum analyzer will start up with the configuration that is defined by the saved default configuration. If the default.fpd file does not exist, the spectrum analyzer will start up in the factory default configuration, which is the same configuration that the Preset function invokes.
Preset - The Preset function provide the user with a simple means to restore the configuration of the spectrum analyzer to the factory default settings, regardless of the existence of a default.fpd configuration file, and without necessitating that the program be closed and restarted. If the spectrum analyzer is in Free Run mode when the Preset function button is pressed, then the spectrum analyzer will continue in Free Run after it is pressed. Otherwise the spectrum analyzer configuration will be restored to factory default configuration but the analyzer will be in the stopped state, waiting to be run with either a Single or Free Run function press.
Frequency - Change center start and or stop frequencies. For Live audio input, the frequency limits of the spectrum analyzer are between 0 and 22.05 KHz, determined by ½ of the system’s sample clock frequency (Fs). For File Input, the sample clock is extracted from the file when it is opened. The Frequency range of the spectrum analyzer in File Input mode will be from 0 to ½ Fs Hz.
Center - This frequency goes to center of display
Start-Start frequency of a displayed Sweep (Far Left)
Stop -Stop Frequency (Far Right)
Span - Change the displayed frequency span. For Live audio input, the span limits of the spectrum analyzer are between 0 and 22.05 KHz, determined by ½ of the system’s sample clock frequency (Fs). For File Input, the sample clock is extracted from the file when it is opened. The Span limits of the spectrum analyzer in File Input mode will be from 0 to ½ Fs Hz.
Span -Displayed frequencies will range from Center Frequency +/- ½ Span
Full -Displayed Span will be fullest capability (Fs/2), where Fs default is 44100 Hz.
Zero -Zero Span. Signal is displayed as a Time / Amplitude plot (Oscilloscope mode). Note that the signal displayed will be filtered to satisfy the ResBw constraint.
Amplitude - The user enters a reference level for the top grid line of the display. Division increments of the display can be selected from 10 dB per division, to 1 dB per division, or linear sampling. It is important to note that the amplitude levels indicated on the display are relative amplitudes, resulting from an uncalibrated microphone, amplifier, and analog to digital converter subsystem. The set Reference level is indicated at the top left boundary of the display.
Reference - Sets the signal displayed at the top of the screen, the reference level.
10 dB -Each vertical grid represents 10 dB (default)
5 dB -Each vertical grid represents 5 dB
1 dB -Each vertical grid represents 1 dB
Linear (P) -The vertical grid represents linear variation of power from Reference Level down to zero.
Linear (V)-The vertical grid represents linear variation of voltage from Reference Level down to zero. In this mode, two different color traces are simultaneously plotted. The Blue trace represents the I or In-Phase channel while the Red trace represents the Q, or Quadrature channel.
Peak -The Peak function places a small red symbol on the display at a frequency location where a peak amplitude is found. The Marker symbol “rides” the spectrum amplitude at the determined frequency. After selecting the Peak function, the Marker can be turned Off (and On again) using the Marker function soft keys. The Marker position can be moved by using the left and right arrow functions. The Marker Frequency and Amplitude are indicated at the top right boundary of the display. All Peak functionality operates on the Selected Active Trace as defined by the Trace (A) B soft key.
Find - Finds the peak amplitude within the displayed sweep and sets the marker to this position.
-> CFSets the frequency of the indicated peak (where the marker is) to center.
Next R - Steps the marker right to the next signal peak which exceeds peak finding threshold to the right of the current peak.
Next L - Steps the marker left to the next signal peak which exceeds peak finding threshold to the left of the current peak.
Thresh - The peak finding threshold. Peaks below this value will not be found by the Peak sub functions. By default this value is set to -1000. When the Peak function is selected, the Peak Threshold is indicated on the bottom center boundary of the display.
Marker - The Marker function places a small red symbol on the display at a frequency location determined by the user. The Marker symbol “rides” the spectrum amplitude at the selected frequency. The Marker can be turned On and Off. The Marker position is set by using the left and right arrow functions. The Marker Frequency and Amplitude are indicated at the top right boundary of the display. All Marker functionality operates on the Selected Active Trace as defined by the Trace (A) B soft key.
Off - Turns off the marker
On - Turns on the marker
-> CF - Sets the spectrum analyzer Center Frequency to the frequency value of the current marker.
< (left) -Steps the Marker along the display towards the Left.
> (right) - Steps the Marker along the display towards the Right.
Trace -The Trace function provides the user with the ability to modify displayed trace data. There are three specific traces defined in the context of the Spectrum Analyzer operation. Two of the three traces (A and B) operate similarly, wheras the third trace displays the results of the Math functions defined below.
Trace (A) B - Selects Active Trace. The Trace operations listed below are performed on the Selected Active Trace (the one in the parenthesis). Note that in Spectrum Mode, each trace is drawn in a unique trace color. In Waterfall Mode, if the Math Trace is hidden, then the selected active trace (A or B) is displayed on the waterfall. If Math Trace is not hidden, then Waterfall displays the results of the Math Trace.
Write - A new trace is written for each sweep.
(Max)/Min - If (Max), the trace holds the maximum values. The highest amplitude is displayed for each frequency. If (Min), the trace holds the minimum values. The lowest amplitude is displayed for each frequency.
Average - The displayed sweep is a running average of current and previous sweep values. The number of averages is displayed at the top center boundary of the display.
(Hold)/Hide - If (Hold), the trace Holds. Trace updates cease. If (Hide), the trace is hidden from view (and for the purpose of Math operations, “holding” not updating).
Math - Selects a new set of menu options for the third type of trace, the Math Trace (another unique color for this trace).
Math
Norm - Normailzes the A trace by the B trace and displays the result as a new trace in a unique color. Normalization occurs by performing sample by sample divide of A samples by B samples, prior to conversion to dB. This is equivalent to subtracting the B Trace values in dB from the A trace values in dB. Normalization is extremely useful for removing the effects of a non-flat frequency response (stored in B Trace) from the A trace.
A + B - Computes the summation of the A trace with the B trace on a sample by sample basis, prior to conversion to dB. Caution – this is not a sum of dB values !
A – B - Computes the difference, or the A trace minus the B trace on a sample by sample basis, prior to conversion to dB. Caution – this is not a difference of dB values !
A -> B - This operation copies the A trace values into the B Trace. The best way to do this is to have both the A and B traces on “Hold” prior to executing the copy. Doing so insures that the A trace is stable with the important trace data, and also insures that once copied, the B trace will not immediately change.
(Hold)/Hide - If (Hold), the trace Holds. Trace updates cease. If (Hide), the trace is hidden from view.
Back - Returns the user back to the Trace menu options.
Sweep -Sweep is the interval of time used to collect the raw data, upon which spectral analysis is performed to produce the displayed power spectrum. A traditional swept spectrum analyzer sweeps its local oscillator from the start frequency to the stop frequency over the Sweep time interval. The result for these traditional analyzers is that activity may be missed at a specific frequency if it happens to be inactive during the moment when the local oscillator sweeps through that specific frequency. The Real Time FFT Spectrum Analyzer works differently. Data is collected into a buffer over the duration of the Sweep time interval. Then the entirety of the data is processed with a Fast Fourier Transform (FFT). With this approach, the complete spectral content of the data captured during the Sweep time interval is determined and displayed (nice). The Sweep time interval is shown on the bottom right boundary of the display.