--- pltSig version 14Sep23 ---
The pltSig toolbox (sometimes called plt for short) includes the following applications with
practical or educational value in various topics of signal processing, math, & engineering
afilt classical analog filter design
airspeed aircraft performance modeling
carlo Monte Carlo simulation
circles12 geometrical puzzle
curves classic plane curves
editz z-plane analysis
erip equal ripple digital filter design
fseries synthesis of harmonic functions
gauss summation of random variables
gpsLog GPS data analysis & simulation
julia Mandelbrot & Julia set fractals
hermite Hermite polynomial interpolation
motion Brownian motion simulation
pltmap 2D cubic interpolation & convolution
psdZoom power spectral averaging & zoom
weight classic sound level weighting curves
wfall clipping distortion effects
winplt FFT windowing
These applications include capabilities and features not found elsewhere on the file exchange,
and most of them merit an individual file exchange submission. However, I chose to combine
them into a single toolbox because my goals go beyond the individual applications - primarily
to promote a particular graphical interface style that makes applications easier to use.
Some aspects of this style include:
* A "flat" interface (i.e. all menus and controls to be visible at the same time).
* The use of pseudo objects - collections of traditional Matlab objects combined to serve
a specific purpose. The pseudo objects simplify application development and allow
familiarity with one application to carry over to the others. The pseudo objects are
designed to conserve screen area, allowing a flat design even when many controls are needed.
* Including a way to adjust the size, position, and color of the screen elements
directly in the application (i.e. without requiring opening an additional design tool).
* The use of dark backgrounds. This allows higher color saturation, making color more useful
for distinguishing traces and other screen elements. You can use traditional Matlab colors
if you want, but the dark mode is the default which encourages its use.
* Uses mouse movements and clicks more smoothly and consistently to make it easier to pan or
zoom plots, move cursors, and adjust control values.
* The use of super legends (where legend entries also are controls for disabling/enabling
traces and other functions).
* The use of on-screen help text to make it easier to get started with a new application. Also
the inclusion of a help button to provide quick access to the full documentation.
* Providing consistent methods across applications for mouse & keyboard-driven data editing,
metric prefixes, and cursoring features such as peak/valley finding, delta, rms, and average
value readouts.
In addition to the applications listed above, the pltSig toolbox also includes many utilities
that will help solve many of the problems encountered when creating a GUI application. Some
of the more notable utilities are listed below:
plt --------------------
An alternative to the native Matlab plot and plotyy routines. A common complaint
programmers have about plot (and even more so with plotyy) is that to do anything
beyond the mundane one needs to use obscure handle graphics commands that are
only easy to find if you are already familiar with them. plt solves this problem
by clearly explaining every option and parameter in one place, giving many examples
of the use of every important parameter. There are also many other advantages to
plt, to numerous to mention here.
prin -------------------
This is what sprintf would have looked like if it was first written for Matlab
instead of for the c library.
figpos -----------------
It is often difficult to size and position a figure window in a way that is ideal for
all computers because of the wide disparities of screen resolutions and aspect ratios
as well as different taskbar sizes and locations. These problems become even more
difficult for applications requiring more than one figure window. The figpos routine
makes solving such problems trivial, or at the very least, more manageable.
pltwater & pltImage -------------
These routines allow you to easily create 3D waterfall and intensity plots, and like
plt, they include many well-documented options.
pp ---------------------
A vector pretty printer which overcomes several of the annoyances of the Matlab disp function.
This toolbox has been verified under all Matlab releases from version 6.1 to R2023a using
all Windows versions from XP to Windows 11. Brief testing has also been done under the Mac
and other Unix platforms.