StoZ Transfer Function Conversion
The application STOZXFR.EXE was initially conceived as a tool for adjusting the poles and zeros of a z-domain transfer function in order to obtain a frequency response with either a desired magnitude response, a desired phase characteristic, or a desired delay characteristic. Because of the interaction between magnitude and phase it is not possible to achieve arbitrary magnitude and arbitrary phase simultaneously. The starting point could be a filter designed by DISPRO, or any z-domain transfer function, up to order 10. STOZXFR was then expanded to include the conversion of an s-domain transfer function to a z-domain transfer function. By adjusting the poles and/or zeros of the resulting z-domain transfer function, a closer match can be obtained to the s-domain frequency response.
In DISPRO the conversion from s-plane
biquads to z-plane biquads is done with the bilinear-z mapping. If s = σ + jω
represents the complex variable for the analog transfer function, and s' the
complex variable for the warped analog transfer function, then s = 2/T tanh(s'T/2),
where T = 1/FS with FS the sampling frequency. To obtain a good
approximation to the analog filter FS/2 should be much greater than any of the
poles of the analog filter. When s and s' are real-valued,
then tanh(x) differs little from x for x ≤
.25, which corresponds to σ ≤
FS /2. Thus, real-valued poles and zeros are not materially affected by the
bilinear-z mapping. For s = jω we have ω = tan(ω'T/2) which shows what we know,
namely that this mapping warps the frequency axis, converting the infinite range
in the s plane to the finite range of ±FS /2 in the s' and z planes. This
bilinear-z mapping is most appropriately applied to standard filter designs,
simply because the classical filters with pass and stop bands depend upon corner
frequency specifications; the pole and zero values for the analog prototypes
are a function of these corner frequencies. In this case, pre-warping of the
corner frequencies works very well in achieving a z-plane design which
corresponds accurately to the s-plane prototype, as in DISPRO.
The Windows® 7 Problem
The current version of STOZXFR.EXE was developed using Visual Basic 3.0. Unfortunately VB 3 programs do not execute in Win 7. There is a somewhat complicated workaround, which I have implemented on my computer, namely, the installation of a Windows XP Mode Virtual PC. Installation of this Virtual PC requires a CPU with "hardware assisted virtualization (HAV)." The installation package can be obtained at www.microsoft.com/windows/virtual-pc/download.aspx. Go to http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=592 to download a program which will test your computer for HAV, and which will also tell you if HAV is enabled. If your computer has HAV but it is not enabled then you will have to contact the computer's manufacturer to learn how to enable it.
[This is the personal web site of Dr. John O'Donnell]