# Introduction | pltSig version 12Jul24 Copyright © 2024, Paul Mennen |

The pltSig Matlab toolbox is derived from an earlier toolbox called plt which is an alternative plotting interface to Matlab's native plot and plotyy routines. This alternative plotting interface is still the foundation of the toolbox but I changed the name to pltSig because the main focus of the toolbox has shifted from the plotting interface to the applications that depend on it. (Sometimes I still call the toolbox plt for conciseness as well as habit.)

## The pltSig applications:
with practical or educational value in various topics of signal processing, math, & engineering

▪ afilt.m ▪ airspeed.m ▪ carlo.m ▪ circles12.m ▪ curves.m ▪ editz.m ▪ erip.m ▪ fseries.m ▪ gauss.m | classical analog filter design aircraft performance modeling Monte Carlo simulation geometrical puzzle classic plane curves z-plane analysis equal ripple digital filter design synthesis of harmonic functions summation of random variables | ▪ gpsLog.m ▪ julia.m ▪ hermite.m ▪ motion.m ▪ pltmap.m ▪ psdZoom.m ▪ weight.m ▪ wfall.m ▪ winplt.m | GPS data analysis & simulation Mandelbrot & Julia set fractals Hermite polynomial interpolation Brownian motion simulation 2D cubic interpolation & convolution power spectral averaging & zoom classic sound level weighting curves clipping distortion effects 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 to encourages its use.
- Using 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.

## The pltSig utilities:

If you write Matlab programs, you will almost certainly find one or more of the included utilities useful. Most, but not all, are focused on the problems of GUI programming. Some of the more notable utilities are described 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. Features are added to plt regularly based on suggestions from users.
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.
colorpick | Creates a color palette that allows you to easily choose the color that you find most satisfying for a particular trace or screen element. Usually, if you are even given such a choice, you will be presented with a single palette including all possible color choices. The problem with that is that the color you want will occupy a microscopic portion of the palette, making the choice a frustrating trial-and-error process. colorpick is different because you can adjust the palette to focus on the range of colors that interest you. A large rectangle filled with the candidate color choice eliminates most of the trial-and-error repetition.
pp | A vector pretty printer which overcomes several of the annoyances of the Matlab disp function.

### Requirements

- This toolbox has been extensively tested and verified to run under all Matlab releases from 12.1 (ver 6.1) to R2023b under all versions of windows from Windows XP thru Windows 11. Brief testing has also been done under the Mac and other Unix-based platforms.
- No toolboxes are required to use plt. However the following applications (in the sig folder) are enhanced when certain Matlab toolboxes are present:
  1. Normally the winplt.m application can display 16 different windows which is quite extensive and covers by far most of the applications of FFT windowing. However if you have the signal processing toolbox an additional 13 windows (defined in that toolbox) are available for display. Also winplt's user-defined FFT window capability does not require any toolboxes, so there is no reason to think of the signal processing toobox as a requirement.
  2. When using a Unix based operating system, the erip.m application must have the DSP system toolbox installed if you want to use erip to design IIR filters or non-linear phase FIR filters. This is because erip calls functions in that toolbox to design such filters. This limitation does not apply to Windows based systems because a compiled Windows application will be used instead of the functions in the DSP system toolbox if that toolbox is not installed. However, even for Unix based systems no toolboxes are required to design FIR filters which can satisfy most filtering requirements.
  3. afilt.m itself does not require any toolboxes, although a different version of that application (called aftiltALT.m) is included to demonstrate an alternative programming approach. This alternative version uses the signal processing toolbox to make that code more concise. Most users will use the standard version for designing and learning about the classical analog filters, and are unlikely to even be aware of the alternate version, so they won't run into this toolbox requirement.
- If you don't have Matlab, you can still run all the applications listed above by running a Windows compiled application called pltSig.exe. (See the pltSig.exe section.) of the help file.

I'm interested in hearing about your problems and suggestions relating to this toolbox.
You can reach me at paul@mennen.org.
I hope using pltSig enhances your Matlab experience
and increases your knowledge about signal processing.