                              SbFFT User's Manual

                                  Version 1.2








                             Kevin McWilliams, KW5Q











                                23 November 1996












                                   Copyright




    The program code, manual file, and associated graphics figures are
Copyright (C) 1996 by Kevin J. McWilliams, KW5Q.  All rights are reserved.







                                    License




    This program and associated files are copyrighted freeware.  They may be
freely distributed so long as they are distributed in their entirety, are not
modified in any way whatsoever, and no charge is made for the copyrighted
material.  A maximum charge of $3 (three dollars U.S.) may be assessed for the
duplication of these materials.







                                 No Warranties



    No warranties of any type are made for this program, its manual, and the
associated graphics files regarding their functionality, usability, or
suitability for any purpose.  This software is provided on an "as is" basis.
Users of this software bear the entire risk for its use.  The author will not
be liable for any special, incidental, consequential, indirect or similar
damages due to loss of data or any other reason under any circumstances.  In no
event shall the author's liability for any damages ever exceed the price paid
for the license to use the software, regardless of the form of the claim.







                                  Introduction




    SbFFT is a spectral display and filtering program for use in Amateur Radio
and audiophile applications.  It's features include:



*   Sound Blaster 16 (or 100% compatible) input and output

*   Band widths of 2K, 4K, 8K or 16K Hz

*   Spectral resolutions of 1 Hz to 16 Hz per pixel

*   Display of power density spectrum with 4 color maps in either linear or
    logarithmic scale

*   Define and use up to six filters simultaneously -- band pass, band stop,
    low pass, and high pass.  Filters have 25 Hz skirts at 3 to 50 dB points

*   Filters are defined by mouse movement

*   Filters may be as narrow as 1 Hz

*   Net filter passband is displayed at all times

*   CDROM and line SB 16 inputs

*   .wav file inputs and outputs

*   Filters can be selectively enabled and disabled by a single keystroke or
    a single mouse click.  This allows for quick reconfiguration in case of
    changing conditions, etc.




    PLEASE READ THIS FILE AT LEAST THROUGH THE ALPHABETICAL LIST OF COMMANDS
    BEFORE RUNNING THIS PROGRAM.  For those who don't listen to advice: 'Q'
    (QUIT) stops the program and  (up arrow, dn arrow) increase/decrease
    volume.




    I have spent many pleasant hours watching spectra from both Amateur Radio
and audio CDROM's.  Being able to 'see' a signal as well as hear it permits
correlation the two senses -- visually spot a CW signal with clicks, chirps or
microphonics, watch signals drift, spot an SSB signal with splatter.  See RTTY
mark and space tones fade selectively.  Get a visual picture of music or a
voice.

    SbFFT is also an aid for DX work by allowing a narrow band pass filter to
be defined around a weak DX station quickly and without guesswork.  Filters are
defined graphically based upon displayed spectra, so they can be defined even
after a station has paused in transmission and will be ready when transmission
resumes.


    Your comments are welcome.  I would like to thank the many people who
provided feedback about SbFFT 1.1.


    email the author Kevin KW5Q at kevinm@mail.eden.com.


    Enjoy, and 73's -- KW5Q







                          Differences from Version 1.1




1)  The SbFFT executable has been built with a smarter graphics library.
    It should now operate with a much wider range of VESA SVGA cards.

2)  The AGC algorithm has been enhanced.

3)  Defaults have been assumed for the BLASTER environment variable.  If the
    variable is set in your system, whatever information it contains will
    be merged in with the default values.  See Installation, below.

4)  An interrupt conflict between the MPU401 and the A/D converter on the
    Sound Blaster has been eliminated.  Because of this comflict, SbFFT would
    start and terminate normally but would not display spectra on some sytems.

5)  SbFFT now generates pcx files instead of tiff files.  The pcx files are
    a fraction of the size of tiff files.  Also, the graphics library that
    generated the tiff files failed to initialize the tiff header completely,
    causing some graphics viewer programs to crash.

6)  Improved mouse response at fine resolutions.

7)  Full screen mouse movement to make filter definition easier.

8)  Filters may be enabled/disabled or deleted by mouse clicking in the
    filter active band.

9)  Numerous typographical errors have been corrected in the manual.







                              System requirements




1)  MSDOS 3.0 or later -- LIMITED Windows 3.1/3.11 and Windows 95 operation
    (see 'Limited Windows Operation' below).  SbFFT will NOT operate under
    Windows NT.  SbFFT has not been tested with releases of 16-bit Windows
    prior to 3.1

2)  mouse required; driver must use int 33h

3)  >= 380K free memory, at least 250K contiguous

4)  SB16 or 100% compatible

5)  takes input from CDROM and line (simultaneously)

6)  SVGA with 640 x 480 display minimum, 1024 x 768 preferable

7)  VESA BIOS supporting 640x480 and 1024 x 768 screen resolutions

8)  486/66 or above recommended for spectral display.  386 systems are
    usable provided they are equipped with a 387 FPU

9)  Pentium 120 or above recommended for filtering at lower resolutions




    The JPEG graphics figures for this manual can be viewed with any DOS or
Windows viewer (cshow, 2show, qpeg, Lview, etc.).  These are available from
anonymous ftp sites such as oak.oakland.edu at the following addresses:

2show, cshow, disp:

ftp://oak.oakland.edu/pub/simtelnet/msdos/graphics

in files 2show204.zip, cshow904.zip, disp189a.zip, disp189b.zip

Lview:

ftp://oak.oakland.edu/pub/simtelnet/win3/graphics

in file lviewp1b.zip.


Any of these viewers as well as numerous others are adequate to view the
graphics figures of this manual.  Please consult the oak.oakland.edu site or
any other Simtel mirror site for the latest versions.




    The author makes no recommendations regarding circuits for connecting a
receiver or transceiver to the SB line input.  Many receivers and transceivers
have a line output, and can be connected directly, or possibly through a
coupling capacitor, to the SB card.  Consult your receiver or transceiver
documentation and the Sound Blaster documentation for specifics.  In any case,
follow the manufacturer's recommendations, and use good electrical wiring
practices.  Consult books such as the ARRL handbook for considerations of
impedance matching.





IMPORTANT

    If SbFFT does not terminate normally by returning to the DOS prompt, you
must reboot your computer by pressing the reset button.  SbFFT hooks the Sound
Blaster interrupt vector.  If the program does not terminate normally, this
interrupt vector will point into invalidated storage, and may cause
unpredictable results if other programs access the Sound Blaster.




MSDOS, Windows, Windows 95, and Windows NT are trademarks of the Microsoft
Corporation.







                                  Installation




1)  create a directory C:\SBFFT

2)  copy the .zip file to the directory C:\SBFFT

3)  Unzip the .zip file.  You should find files:

    SBFFT.EXE
    SBFFT.PIF
    MANUAL.TXT
    README.TXT
    FIGURE1.JPG
    FIGURE2.JPG
    FIGURE3.JPG
    FIGURE4.JPG
    FIGURE5.JPG
    FIG6-9.JPG
    FIG10-13.JPG
    FIGURE14.JPG
    FIGURE15.JPG
    RS-12.WAV
    WNU31.WAV


4)  Make sure the Sound Blaster card is installed and functional

5)  Insure that the BLASTER environment variable is set.  If necessary, put
    into the autoexec.bat file on the boot drive a command of the form

SET BLASTER=Aaaa Iii Dd Hh Pxxx

    where aaa = base address of the SB 16 card (usually 220)
          ii =  number of free interrupt, i.e., one not used by another device
          d  =  8-bit DMA channel (usually 1)
          h  =  16-bit dma channel (usually 5)
          xxx = MIDI I/O port base address (usually 330)

    For more information, see the Sound Blaster documentation

    If the BLASTER variable is not set, defaults are assumed:

    BLASTER=A220 I10 D1 H5 P330

6)  uninstall or disable screensavers


7)  SBFFT.EXE is ready to run

8)  as a minimum, read the sections 'Screen Display' and 'Alphabetical list of
    commands' below before you run the program

9)  for a quick test, if you have a CDROM attached to your Sound Blaster,
    start an audio CDROM playing with a DOS CDROM player and run the program.
    Or, you can play the rs-12.wav file included with this package.
    Type 'B' 3 times to put SbFFT into 2K Bandwidth. Then type
    'P' and when a file name is requested, type 'rs-12'<Enter>, without
    the quotes.


    IF YOU EXPERIENCE PROBLEMS, SEE TROUBLESHOOTING, BELOW.


    When you have verified operation of the SbFFT program, you may delete the
.zip file if desired.



IMPORTANT

    If SbFFT does not terminate normally by returning to the DOS prompt, you
must reboot your computer by pressing the reset button.  SbFFT hooks the Sound
Blaster interrupt vector.  If the program does not terminate normally, this
interrupt vector will point into invalidated storage, and may cause
unpredictable results if other programs access the Sound Blaster.







                                 Screen display




    Features of the display.  See Figure 1.  Figure captions are at the end of
this file.  Please note that graphics files loose sharpness when compressed.
The SbFFT screen displays are considerably better!




       Inside grey box:


BW     bandwidth, Hz

Res    resolution, Hz per pixel in the power spectral density (PSD) display

Gam    photographic gamma, intensity displayed = PSD ^ gamma

Cont   contrast, PSD values below contrast x 10% of the maximum PSD are not
       displayed.  Used to eliminate spectral clutter

LIN    color mapping based on PSD or log PSD
LOG


16 C   the current color map.  Only one of these values will be displayed
224C
16 G
2 G


Low    lowest freq detected

Max    strongest freq detected

High   highest freq detected

Freq   freq of mouse cursor, Hz
       The mouse cursor is the tall vertical line extending from the frequency
       axes upward and moves left and right with the mouse movement.

Filter shows filter mode on/off (green/red)

View   shows whether filtered output is viewed in the spectral display or
       entire input signal is viewed

INLINE indicates that the audio output is being produced digitally by
       SbFFT, e.g., during filtering operation, or simply by passing
       signals from the A/D to the D/A on the SB card.  INLINE operation
       is required for  hearing the results of filtering operations and
       hearing .wav files being played

BYPASS indicates that the audio output is derived in analog form from the
       input on the SB card;  the D/A capability is not being used

AGC    shows current agc mode SLOW/FAST/OFF

Gain   current A/D gain, controlled by AGC algorithm or manually with -+ keys
       when AGC is off

PLY    .wav file currently being played and time since playing started

REC    .wav file currently being recorded and time since recording started

Filters (1) through (6) shows filters currently defined (maximum of 6) in the
       format indicated in the 'Filter commands' section




       Below the grey box and above the actual spectral display is a frequency
scale with binary calibrations.  The area between the frequency scale and the
bottom of the grey box is used to display the filter passband.  This consists
of the NET passband of all filters defined.



         Below the frequency scale is the power spectral density (PSD)
display.  In the 16 or 224 color modes, the displayed color is proportional to
the PSD, with best proportionality in the 224 color mode. (See 'C' command in
the alphabetical list below, and see the section 'Screen commands'.)



         At higher resolutions (e.g., 1 Hz resolution in 2K BW), the PSD
display cannot be accomodated on a single display line even in the 1024 x 768
VESA mode (see 'M' command in alphabetical list, and section 'Screen
commands').  The left and right arrows shift the segment of the power spectrum
that is displayed.  The frequency axes will indicate this shift, as will the
filter passband display.







                         Alphabetical list of commands




Commands

    All commands are single letter and may be entered upper or lower case.


A   AGC toggle slow/fast/off

B   BW toggle 2048/4096/8192/16384

C   toggle color map: 16 or 224 colors, 16 or 2 levels grey scale

D   delete filter containing mouse cursor

E   enable/disable filter containing mouse cursor

F   filter on/off

G   Gamma - photographic gamma, intensity = power spectral density ^ gamma

I   inline/bypass

L   record wave file - enter 1-8 character file name only

M   VESA mode 101/105 (640x480 or 1024x768)

N   contrast 0 through 9

P   play wave file - enter 1-8 character file name only

Q   QUIT

R   resolution/pixel 1/2/4/8/16 Hz (depends on BW)

S   scale log/lin

T   send spectrum display to top of screen

V   View filter output on/off - only works in filtering mode - view ON means
    spectral display is of filtered output, view OFF means spectral display is
    of unfiltered input signal

Y   write .pcx (version 3.0) file - enter 1-8 char file name only

Z   clear screen

+-  manual gain (AGC OFF only)

  (up arrow, dn arrow) increase/decrease volume

  (rt arrow, lft arrow) if resolution is set so entire BW cannot be displayed
    on one screen, the right/left arrow keys scroll the spectrum right/left one
    screen

(space)
    toggle enabled/disabled filters

1-6 delete filter 1-6 (if defined)

Mouse movement, clicks and drags are explained in the next section.







                        Filter definition and filtering




    Filter description


    All filters have 3 to 50 dB skirts of 25 Hz and have no more than 0.5 dB
ripple in the active band, independently of passband or stopband frequencies
and bandwidth.  A maximum of six filters may be defined and used
simultaneously.  Minimum pass band or stop band width is 1 Hz.





    Filter abbreviations:

P   bandpass (bandpass filter, BPF)

S   bandstop (notch filter or band stop filter, BSF)

L   low pass (low pass filter, LPF)

H   high pass (high pass filter, HPF)




    Filter display in the grey box:


    Filters are displayed by type, center frequency, and 3 dB BW.

Examples:


L 2500
    a 2500 Hz LPF

H 3500
    a 3500 Hz HPF

P 900 16
    a 16 Hz BPF centered at 900 Hz

S 1000 22
    a 22 Hz BSF centered at 1000 Hz




Filters displayed in BLUE are DISABLED.

Filters displayed in other colors are ENABLED.



A ">" character to left of a particular filter means the mouse cursor lies in
that filter's active band.



The net filter passband is plotted in the area above frequency axes and below
the grey box.  Individual filters displayed in this area are GREEN for ENABLED
and BLUE for DISABLED.



Filter outputs are combined by feeding the input signal to all LPF, HPF, and
BPF's in parallel and summing their outputs.  The summed output of the pass
type filters is then fed to any defined stop type filters in series.  Thus,
several BPF's can be defined and used simultaneously with one or more BSF's.



FILTERS MAY BE DEFINED INSIDE OF OTHER FILTERS.  A bandstop filter may be
defined inside a band pass filter, a narrow band pass filter can be defined
inside a wide band pass filter (either or both may be enabled simultaneously,
but there are advantages to enabling only one and toggling back and forth with
the space bar).



FILTERS MAY OVERLAP ONE ANOTHER.  A series of filters can be overlapped at the
edges to give continuous coverage of a passband.  See Figure 4.  Filters can be
selectively enabled/disabled by mouse clicks, and the enable/disable state ov
all filters can be toggled by the space bar.



NOTE:  some filter combinations do not make sense, e.g., a band stop filter in
the stop band of a band pass filter!  SbFFT does not check for such
combinations.




    Entering/leaving filtering mode


1)  define one or more filters (see below)

2)  use the 'F' command to TOGGLE filter mode ON/OFF





    Filter creation/deletion



    Version 1.2 of SbFFT features a full screen mouse with greatly enhanced
capabilities and performance.  Filters may be created, deleted, or
enabled/disabled via the mouse, or by a combination of mouse movement and
keyboard commands.



    The filter display in the grey box has a ">" character before the filter
containing the mouse cursor.  No ">" will be present if the mouse cursor isn't
in any filter.  For band stop filters, the mouse cursor is considered to be in
the filter only if the cursor is in the actual stop band.



    To create or delete filters:


1)  look at the spectral display of the signal you wish to filter;


2)  with the mouse in the SPECTRAL DISPLAY AREA (the area below the frequency
    axes, point the mouse at either the low frequency or high frequency side
    of the signal.

    Create filters by dragging with left or right (not both) mouse buttons:


    drag with left button creates pass type filters (BPF, LPF, HPF)

    drag with right button creates a bandstop filter (BSF)


    You can also use the 'Freq' display in the grey box to read the mouse
    cursor frequency to determine the filter pass or stop frequencies;


3)  filters may be deleted by any of 3 methods:


    (a) tapping 1-6 on keyboard corresponding to number of filter
        to be deleted;

    (b) single RIGHT click the mouse with the mouse cursor in the filter
        passband that is drawn ABOVE the frequency scale.  Remember to check
        for the ">" character in the filter display in the grey box to verify
        that the mouse is in the active band of the filter you wish to delete;

    (c) with the mouse cursor in the spectral display BELOW the frequency
        scale and positioned in a filter's active band as indicated by the
        ">" character in the filter display, type 'd' to delete the filter;


4)  additional filters may be created while in the filtering mode as in (2),
    and filters may be deleted while filtering as in (3).  If all defined
    filters are deleted while filtering, SbFFT drops out of filtering mode.



    To create high pass filters, left drag the mouse from the lowest pass
frequency to the right hand edge of the spectrum display, or vice versa.



    To create low pass filters, left drag the mouse from the highest pass
frequency to the left hand edge of the spectrum display, or vice versa.




    Filter enable/disable.


Three methods may be used to enable/disable filters:


1)  single LEFT click the mouse with the mouse cursor in the filter
    passband that is drawn ABOVE the frequency scale.  Remember to check
    for the ">" character in the filter display in the grey box to verify
    that the mouse is in the active band of the filter you wish to enable
    or disable;


2)  with the mouse cursor in the spectral display BELOW the frequency
    scale and positioned in a filter's active band as indicated by the
    ">" character in the filter display, type 'e' to toggle the filter's
    enable/disable state;


3)  Use the space bar to toggle the enable/disable states of all filters
    at once.


    In the passband display:

    Filters displayed in BLUE are DISABLED.

    Filters displayed in GREEN are ENABLED.



    Filters may be enabled or disabled while in filtering mode.  If all defined
filters are disabled while filtering, SbFFT temporarily suspends filtering
mode.  In this case, enabling one or more filters or pressing the space bar to
enable all filters causes SbFFT to resume filtering.




    Other filter commands


V   Toggles View on/off -- active in filter mode only.  If view is on, spectral
    display is of filtered output.  View off shows unfiltered spectrum.


I   Toggles BYPASS/INLINE mode.  In BYPASS, audio is routed directly from
    the SB 16 input to the output, even though SbFFT is still displaying
    spectra.  In filter mode, the program still filters the input signal
    and the filtered spectra are displayed, but the filtered data are
    discarded without being sent to the D/A converter.


    INLINE mode is required for the user to hear the filtered audio.  INLINE
    mode can be used without SbFFT being in Filter mode.


    SbFFT switches automatically to INLINE mode and VIEW mode when filter mode
    is enabled by the 'F' command.  View mode can be toggled with the 'V'
    command.






    Hints and notes



    To enter filtering mode, define one or more filters first, then start
filtering with the 'F' command.  Additional filters may be defined 'on the
fly'.  Filters can be deleted while filtering by typing the number of the
filter to be deleted, or by positioning the mouse cursor in the filter to be
deleted and using the 'D' command.



    It is useful to define two filters, one on each side of a CW QSO, disable
one, then toggle between the two with the space bar as the QSO passes back and
forth.



    Define a narrow filter around a DX station, and a wider one containing the
narrow one.  Disable the wide filter, and use the space bar to toggle between
wide & narrow.  This way, the DX alone can be heard, or the pileup of calling
stations can be heard (Figure 2).



    Define two filters, one LP, the other HP to split the RCVR passband in
half.  Disable one, and use the space bar to toggle between the halves of the
passband (Figure 3).



    Define a narrow BPF containing a CW or SSB signal, then define a wider BPF
about the narrow BPF, disable one, then use the space bar to toggle narrow/wide
as conditions permit (Figure 4).



    Band stop (notch) filters may be defined inside LPF's, HPF's, or BPF's
(Figure 5).  Note that multiple BSF's can be defined inside the pass type
filters to notch more than one carrier, and that multiple BSF's can be defined
even if no other filters are defined.  The BSF's then act as multiple notch
filters.



    Band pass filters can be defined for each RTTY mark and space tone (Figure
6).  One filter can be enabled at a time depending on interference and fading.



    Custom data filters can be defined as BPF's.  Figure 7 shows a WEFAX
filter.



    I have personally used BPF's as narrow as 8 Hz in ham communications.
Filters as narrow as 1 Hz may be defined.  The limitation of usability is
determined by ringing.



    Notice the ripple in the filter passbands when filtering and viewing white
noise in the LOG scale!  If this ripple is disturbing, turn off View, or switch
to the LIN scale.



    If the filtered output contains pops and clicks, turn the AGC OFF with one
or more repetitions of the 'A' command and use the +/- keys to set the A/D gain
manually until the clicks stop.



    A fast CPU is required to run filters at the lower resolutions (i.e., 8 or
16 Hz per pixel).  Also, the CPU power required to run more than one filter
simultaneously increases with the number of filters ENABLED at one time.  The
CPU requirements also increase with increasing filter bandwidth.  It is more
time consuming to run a 2300 Hz BPF than a 2 Hz BPF!  If SbFFT detects that the
CPU is pegged, it will either drop out of filter mode or terminate with an
error message.  I have succeeded in running 3 fairly broad BPF's at 16K Hz Bw
and 16 Hz/pixel resolution on a P133 with a  CPU utilization averaging 95%.







                                Screen commands




M   toggles VESA mode: 640x480 or 1024x768

C   changes color map

G   cycles gamma 1-8 -- the intensity of a displayed pixel is approximately
    Intensity = pixel value ^ gamma.  This is the photographic gamma

N   cycless contrast 0-9 -- contrast of zero means all non-zero Fourier
    components of the power spectral density are displayed.  Setting the
    contrast to N means the lowest 10N % of power spectral density bins are
    not displayed.

R   changes spectral resolution; cycles among resolutions available at
    the selected bandwidth

S   toggles scale LOG/LIN

T   move the PSD display line to the top of the screen

Z   clear the PSD display area

  (rt arrow, lft arrow) if resolution is set so entire BW cannot be displayed
    on one screen, the right/left arrow keys scroll the spectrum right/left one
    screen




Hints


    The contrast command 'N' is used to remove spectral clutter to make signals
more distinct.


    Signals that are not plainly visible at one resolution may be visible at a
lower resolution (more Hz/pixel) since this amounts to the coaddition of power
spectral density bins.





                                   Color Maps




    There are four color maps available for viewing power spectra.  These are
selected cyclically with the 'C' command.  The maps are:


16 C    16 colors, basic VGA palette

224C    224 colors, custom palette, rainbow from Blue through Red with the
        addition of White, fairly smooth color gradation

16 G    16 level grey scale

2 G     2 level grey scale where pixels are either black or
        maximum intensity white



Each of the four maps can be used in either linear or logarithmic scale.  SbFFT
selects a default Contrast and Gamma as each map is selected with the 'C'
command.  The user may change these settings with the 'N' and 'G' commands.




The author has found the various maps useful in different circumstances as
outlined below.  All color maps were used with the default Gamma and Contrast.
The properties of the maps are greatly affected by Gamma and Contrast in LINEAR
scale and by Contrast in LOG scale.  As the preferred screen display is a
matter of personal taste, some experimentation will be required.




  Map    Colors     Scale    Comments


 16 C      16        LOG     General purpose viewing, bright screen

 16 C      16        LIN     General purpose viewing, darker screen, cooler
                             colors

 224C      224       LOG     Fine color resolution of spectrum with relatively
                             faithful color mapping.
                             Map runs rainbow colors plus White:

                             Blue->Green->Yellow->Orange->Red->White

                             with largest PSD values in White, smallest in
                             Blue.
                             Suitable for viewing strong signals.
                             Screen is bright.

 224C      224       LIN     Same color resolution as above.
                             Weak signal search in background of noise.
                             Dark screen.
                             Mixed weak/strong signals with higher Gamma
                             settings.

 16 G      16        LOG     General viewing, bright screen.

 16 G      16        LIN     General viewing, darker screen.

  2 G       2        LOG     Shows all PSD components detected when contrast is
                             zero.
                             Useful for locating very weak Fourier components.

  2 G       2        LIN     Same as 2G LOG scale.







                       Bandwidth and resolution commands




B   cycle bandwidth amoung 2048, 4096, 8192 and 16384 Hz

R   cycle pixel resolution among 1, 2, 4, 8 and 16 Hz (not all resolutions are
    available at all bandwidths).







                        AGC and volume control commands




A   toggles AGC SLOW / FAST / OFF

When AGC is OFF, grey -+ keys change the gain manually from 0-31.



  (up arrow, dn arrow) increase/decrease volume



Hints


    If filtered output contains pops and clicks, turn the AGC OFF with one or
more 'A' commands, and use the +/- keys to set the A/D gain manually until the
clicks stop.







                               Wave input/output




P   play a wave file -- only 4k, 8k 16k or 32k samples/second, 16 bits.
    Enter file name without extension, ESC cancels entry.  SbFFT will not
    play wave files recorded at other sampling rates.

L   record wave file -- 16 bits and 4k, 8k, 16k or 32k samples/second,
    depending on bandwidth.  Enter file name without extension, ESC cancels
    entry.




Hints and notes


    Watch disk space at high bandwidths!


    Simultaneous play and record are not supported.


    While playing a .wav file, set SbFFT for the same bandwidth at which the
.wav file was recorded to hear and display frequencies correctly.  Otherwise,
the displayed spectrum and reproduced audio frequencies will be 2, 4, or 8, or
1/2, 1/4 or 1/8 times those of the original signal.  Sometimes you may want to
use a bandwidth other than that at which the signal was recorded to slow down
or speed up the signal and decrease/increase it's audio frequencies.


    SbFFT drops into INLINE mode when playing a .wav file to permit the user to
hear the audio.  The user may put SbFFT into BYPASS mode by the 'I' command if
only spectral display is desired.  In this case, SbFFT will reproduce the
spectrum as fast as it can read and display the data.


    As an example of .wav input capability, put SbFFT into 2048 Hz BW ('B'
command), and use the 'P' command to play rs-12.wav:  type 'P' and enter
rs-12<CR> at the prompt.  This is the 29408 KHz CW beacon of the RS-12
satellite.  This file was recorded with SbFFT from an actual satellite
transmissiion.  Note the Doppler shift!  Refer to Figure 11 for a spectral
display captured from this same transmission.  The file RS-12.WAV can also be
played on a standard WAVE player.







                                 Graphic output




Y   write pcx file. Requests file name, do not enter extension.  ESC
    cancels entry.  The file written conforms to version 3.0 of the pcx
    specification.







                            Command line parameters




    SbFFT accepts a number of command line parameters that will cause the
program to start in various user-defined modes.  The default startup mode is

4096 Hz BW
8 Hz/pixel resolution
LOG scale
16 colors
Gamma=1
Contrast=3
640x480 VESA mode.



The startup configuration may be altered by the user by entering one or more
command line parameters when the program is invoked.  Options set on the
command line will be merged with the defaults shown above.


Usage:

SBFFT [-m<xxx>] [-c<c>] [-b<b>] [-r<r>] [-s<s>] [-n<n>] [-g<g>]


Where:

xxx     101 or 105, indicating 640x480 or 1024x768 VESA modes, respectively

c       0,1,2,3 - specifying color maps 16C, 224C, 16G, and 2G, respectively

b       0,1,2,3 - specifying bandwidths 2048, 4096, 8192, and 16384,
        respectively

r       0,1,2,3,4 - specifying resolutions of 1, 2, 4, 8, or 16 Hz,
        respectively.
        Note:  not all bandwidths support all resolutions.  If you enter
        a resolution not supported for a given bandwidth, the closest
        available resolution will be selected.

s       0,1 - LIN or LOG scale

n       0 through 9, inclusive, the Contrast

g       1 through 8, inclusive, the Gamma

Do not enter a space between the -option and the following digit(s).







                           Limited Windows Operation




    SbFFT is an extremely high performance real-time program that does direct
hardware control for efficiency, hence has difficulty operating in
multiprogrammed environments.  In particular, it is incompatible with and will
not function under Windows NT and has only limited functionality under Windows
3.1/3.11 and Windows 95.  SbFFT has not been tested with releases of 16-bit
Windows earlier than 3.1.


    SbFFT has limited functionality under 16-bit Windows 3.1 or 3.11 as
follows.  A file SBFFT.PIF has been provided with this release, and should be
in the same directory as the program file SBFFT.EXE.

    Start Windows and do not start any application programs that access the
Sound Blaster.  Start SbFFT by either: (1) from File Manager, open a window on
the SbFFT directory, and double click on SBFFT.EXE, or (2) from the Run menu
item of the Program Manager File menu, browse to the SbFFT directory, and start
SbFFT by double clicking on SBFFT.EXE.

     The program usually starts, and will show varying degrees of
functionality.  Don't be surprised if Windows pops back on screen with a
message that an application has 'violated system integrity' or that the Sound
Blaster card is in use by another device.  In that case, terminate Windows and
reboot.

    To switch from the SbFFT window, QUIT the program first.  DO NOT try
application switching directly.  This produces unpredictable results.



    SbFFT has limited functinality under Windows 95 as follows.  Double click
on the My Computer icon, double click on the hard drive on which SbFFT is
installed, and open the directory containing SBFFT.EXE.  RIGHT click on
SBFFT.EXE, select Properties, go to the Program tab, go to Advanced, select MS
DOS program.  Select OK, select OK.  Start SbFFT by double clicking on
SBFFT.EXE.

    To switch from the SbFFT window, QUIT the program first.  DO NOT try
application switching directly.  This produces unpredictable results.




Windows, Windows 95, and Windows NT are trademarks of the Microsoft
Corporation.







                                Troubleshooting




Can't set mode 101 or 105

    A very common problem is a buggy VESA BIOS extension (VBE), an outdated
VBE, or you may have a graphics card with a chipset that isn't supported by the
graphics library used to build SbFFT.  If SbFFT can't set mode 101 or 105 on
your card, you can get the SciTech Software Display Doctor that contains the
UniVBE drivers.  This is available at http://www.scitechsoft.com or
ftp://ftp.scitechsoft.com.  Look for the Display Doctor link.  The UniVBE
drivers support over 200 chipsets and make graphics boards more usable.  This
is probably your best bet for making your card work with SbFFT.  The author has
made every effort to obtain a modern graphics library that supports many SVGA
chipsets, but there will always be some chipsets that aren't supported by a
given graphics library.



SB 16 compatibility

    SbFFT uses nearly every feature of the Sound Blaster card, and many
"compatibles" are simply not sufficiently compatible!  Some "compatible" cards
may be command compatible but not data compatable.  They will accept all SB16
commands given by SbFFT but return only 8 bits of data when 16 bits are
requested (and required).




BLASTER environment variable

    If SbFFT starts and stops but does not display spectra, the BLASTER
environment variable may be set inconsistently with actual Sound Blaster
hardware settings.  These settings are configured with the SB16SET and SBCONFIG
programs supplied by Creative Labs.  See the Sound Blaster documentation.



DMA or IRQ conflicts

    If the sound card is 100% compatible and you've checked the BLASTER
environment variable, it's possible you have DMA and/or IRQ conflicts.  Use the
DOS 'msd' command to list IRQ's and DMA channels in use.  Consult with a DOS
guru since this is an arcane subject.




Plug 'N' Play

    If you have a Plug 'N' Play BIOS, remember that PNP can shuffle IRQ's and
I/O port addresses.  Consult the BIOS documentation that came with your
computer.



Out of memory

    SbFFT allocates extra buffers for writing .pcx graphics files.  If you run
out of memory, you may move DOS to upper memory, de-install tsr programs, or
elect not to dump graphics files.  Consult MSDOS documentation.



Hiss

    If the hiss generated by the Sound Blaster is troublesome, you can elect to
not use the Blaster's audio amplifier (by changing jumpers on the Sound Blaster
card), and instead run the speaker outputs to the line inputs of a stereo
amplifier or a pair of amplified speakers.  See the Sound Blaster
documentation.



CPU power required

    As noted in the 'Filter commands' section, SbFFT requires a reasonable
amount of CPU power to filter.  If SbFFT drops out of filter mode after
defining another filter, either switch to a higher resolution (fewer Hz/pixel),
define narrower filters, define fewer filters (or no filters!), or run SbFFT in
a faster CPU.  We're up against the wall of thermodynamics here...







                                Figure captions




    All figures included in this package were captured with SbFFT using the 'Y'
command.  They were converted offline to JPEG format to save space.  With the
exception of Figure 11 (RS-12 satellite), they are from live transmissions.
Figure 11 was produced by first recording  a live RS-12 beacon transmission
with the 'L' command.  The spectrum in Figure 11 was then produced by playing
the .wav file with the 'P' command.

    Please note that graphics files loose sharpness when compressed.  The SbFFT
screen displays are considerably better!



Figure 1.  Basic SbFFT display screen, 640 x 480 mode.

    BW      Bandwidth = 4096 Hz
    Res     Resolution = 8 Hz/pixel
    LOG     Scale is logarithmic
    224C    Color map contains 224 colors
    Gam     Gamma = 1
    Cont    Contrast = 3
    Low     Lowest frequency present = 188 Hz
    Max     Strongest frequency present = 1416 Hz
    High    Highest frequency present = 2504 Hz
    Freq    The mouse cursor is at 1568 Hz
    PLY     Not playing .wav file
    REC     Not recording .wav file
    Filter  Not filtering
    View    Not viewing
    BYPASS  Audio is passing through the SB card with no filtering and
                is not being reproduced in software by SbFFT
    AGC SLOW
    Gain    Current A/D gain = 16


Six filters are defined:

(1) LPF     Highest pass freq. 288
(2) BPF     CF 1944 BW  720
(3) BPF     CF 2500 BW  296
(4) HPF     Lowest pass freq. 3264
(5) BPF     CF  460 BW   72
(6) BSF     CF 2108 BW   24

Notice that filter (6) is defined INSIDE filter (2).

The mouse cursor is in filter (5), indicated by the ">".

The net audio passband is displayed in green between the frequency axis and the
bottom of the grey box.  Notice the mouse cursor inside the narrow BPF.  The
cursor frequency is 472 Hz.

The spectrum is from 40 meter CW operation on a typical evening.





Figure 2.  A narrow BPF is defined inside a wide LPF.  The wide LPF is disabled
by placing the mouse cursor inside the LPF, indicated by a ">" next to the
filter display, and using the 'E' command.  The narrow filter encloses a DX
station and the wide filter brackets the pile up of calling stations.  Pressing
the space bar toggles the enable/disable status of each filter defined, so the
wide LPF would be enabled and the narrow BPF would be disabled.  Pressing the
space bar again would return the filters to the state shown.  This is a serious
DX pileup heard on 40 meter CW.





Figure 3.  The output of a receiver passband can be conveniently split into two
parts by defining two side filters and disabling one.  This permits a quick
assessment of the usage of each half of the passband.  The other half of the
passband can be heard by pressing the space bar.





Figure 4.  A wide LPF is defined for an SSB signal, and a narrow LPF is defined
inside the wide LPF.  The wide LPF is disabled.  The user can toggle between
the wide and narrow filters using the space bar as QRM and QRN conditions
require.





Figure 5.  A wide LPF is used to eliminate QRM from an SSB signal, and a BSF is
defined inside the LPF to notch out a carrier.  Note that multiple BSF's can be
defined inside the LPF to notch more than one carrier, and that multiple BSF's
can be defined even if no other filters are defined.  The BSF's then act as
multiple notch filters.





Figure 6.  Two narrow BPF's can be defined around RTTY tones.  This is a very
simple operation since the individual tones can be seen in the spectral
display.  Note that the top of the display was in 16 colors prior to defining
the filters.  The filters were defined and filter mode is switched on.  The
resulting 'two-legged' display is the View mode of the filters' output.  The
bottom of the display is in 224 colors, also in View mode.





Figure 7.  Custom data filters can be defined visually.  This is a filter for a
WEFAX signal.





Figure 8.  This signal consists of 7 binary FSK channels and a single carrier
on the right hand side of the display.  Several BPF's were defined to separate
out a few channels of interest.  Notice the selective fading of all of the
channels.





Figure 9.  WWV at 5 MHz.  Notice the 100 Hz BCD time code, the 500 and 600 Hz
carriers, and the 'ticks' near 1000 Hz.  Note also the one minute tone marker
at 1000 Hz and the voice announcement near the top of the figure.





Figure 10.  On the left is a drifting signal from Cuba heard on 40 meter CW.
This figure was made with version 1.1 of SbFFT.





Figure 11.  The 29408 KHz CW beacon from the RS-12 satellite.  Notice the
Doppler shift!  This spectral display was generated by playing a wave file
'29408.wav' with the 'P' command that had been previously recorded with the 'L'
command.





Figure 12.  A packet QSO next to an FSK signal.  This figure was made with
version 1.1 of SbFFT.





Figure 13.  ARRL Sweepstakes 1996.  40 meter CW at 0555 UTC 4 November.  This
figure was made with version 1.1 of SbFFT.





Figure 14.  High high resolution spectrum of WWV.  Notice the wealth of
spectral detail in the one second ticks centered at 1000 Hz.





Figure 15.  High resolution spectrum of WNU31 at 4294.69 KHz LSB.  The bottom
half of the figure is the signal filtered through an 8 Hz BPF.  The BPF was
defined to contain the center frequency and one of the sidebands.  Some of the
audio from this filter has been recorded as wnu31.wav.  Put SbFFT into 2K BW, 8
Hz resolution, and play wnu31.wav using the 'P' command.  You will see that the
missing sideband is reproduced on the screen!  This is because an amplitude
modulated signal (CW is an extreme case of AM) can be faithfully reproduced
from one of its sidebands.  While ringing is clearly evident, the signal is
still readable.
