Polynomial Manipulation
The most fundamental function in classical signal processing is the rational transfer function:
which is a ratio of two polynomials in z–1. The ability to manipulate polynomials is therefore one of the most fundamental operations in signal processing. The PV‑WAVE Signal Processing Toolkit provides a rich set of polynomial manipulation functions that greatly enhance your ability to extend the functionality of the Signal Processing Toolkit.
The polynomial manipulation functions belong to one of two classes. Those that manipulate standard polynomials of the form
c(x) = c0 + c1x + c2x2 + ... + cNxN
 
Standard Polynomial Manipulation Routines 
Routine
Description
CONVOL1D
One dimensional convolution
DBLPOLY
Polynomial function evaluation
PAIRCONJ
Pair conjugate complex numbers
PAIRINV
Pair reciprocal complex numbers
P_DEG
Numerical determination of polynomial degree
P_DIV
Polynomial division
P_MULT
Polynomial multiplication
P_SQRT
Polynomial spectral factorization
P_SUM
Polynomial sum
ROOT2POLY
Compute coefficients of polynomial with specified roots
ZEROPOLY
Polynomial root finding
Those functions that manipulate polynomials in z–1 of the form:
D(z) = d0 + d1z–1 + d2z–2 + ... + dNz–N
 
Functions for Polynomials in z–1
Function
Description
P_STAB
Polynomial stabilization
SCHURCOHN
Schur-Cohn stability test
A common signal processing problem is having to simultaneously manipulate polynomials in both z and z–1. For example, the magnitude frequency response of a real-coefficient FIR filter:
B(z) = b0 + b1z–1 + b2z–2 + ... + bMz–M
may be found by evaluating B(z)B(z–1) for values of z on the unit circle.
The REVERSE function in PV‑WAVE Advantage is useful for manipulating polynomials in z and z–1. The mathematical equivalent of reversing the coefficients of a polynomial is given by:
One way to compute D(z) = B(z)B(z–1) is to compute:
which has the same coefficient ordering as D(z).
Using PV‑WAVE Signal Processing Toolkit commands, the operation:
D(z) = B(z)B(z–1)
is simply:
d = P_MULT(b, REVERSE(b))
where the arrays b and d contain the coefficients of the polynomials B(z) and D(z), respectively.