Note: This page has been translated by MathWorks. Please click here

To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

Allpass to Wave Digital Filter coefficient transformation

`w = allpass2wdf(a)`

`W = allpass2wdf(A)`

accepts
the cell array of allpass polynomial coefficient vectors `W`

= allpass2wdf(`A`

)`A`

.
Each cell of `A`

holds the coefficients of a section
of a cascade allpass filter. `W`

is also a cell
array, and each cell of `W`

contains the transformed
version of the coefficients in the corresponding cell of `A`

.
W can be used with allpass filter objects such as `dsp.AllpassFilter`

and `dsp.CoupledAllpassFilter`

,
with structure set to `'Wave Digital Filter'`

.

In the more general case, the input coefficients `A`

define
a cascade or multisection allpass filter. `allpass2wdf`

applies
separately to each section of the same transformation used in the
single-section case. In the single-section case, the numeric coefficients
vector *a* contains a standard polynomial representation
of an allpass filter of order 1, 2, or 4. For example, in the first
order case,

$$a=\left[{a}_{1}\right]$$

$${H}_{1}(z)=\frac{{z}^{-1}+{a}_{1}}{1+{a}_{1}{z}^{-1}}$$

$$a=\left[{a}_{1},{a}_{2}\right]$$

$${H}_{2}(z)=\frac{{z}^{-2}+{a}_{1}{z}^{-1}+{a}_{2}}{1+{a}_{1}{z}^{-1}+{a}_{2}{z}^{-2}}$$

The allpass transfer functions *H _{1}* and

$${\stackrel{~}{H}}_{1}(z)=\frac{{z}^{-1}+{w}_{1}}{1+{w}_{1}{z}^{-1}}$$

$$\stackrel{}{{\stackrel{~}{H}}_{2}(z)=\frac{{z}^{-2}+{w}_{2}(1+{w}_{1}){z}^{-1}+{w}_{1}}{1+{w}_{2}(1+{w}_{1}){z}^{-1}+{w}_{1}{z}^{-2}}}$$

For allpass coefficients, *w* is often used
to derive adaptor multipliers for Wave Digital Filter structures,
and it is required by a number of allpass based filters in DSP System
Toolbox™ when `Structure`

is
set to `'Wave Digital Filter'`

(e.g. `dsp.AllpassFilter`

,
and `dsp.CoupledAllpassFilter`

).

For a given vector of section coefficients *a*, `allpass2wdf`

computes
the corresponding vector *w* such that

$$\begin{array}{l}when\text{}i\text{}=\text{}1,\text{}2\text{}or\text{}4\\ {\stackrel{~}{H}}_{i}(z)={H}_{i}(z)\end{array}$$

$$\begin{array}{l}for\text{}order\text{}1:\\ {w}_{1}={a}_{1}\\ for\text{}order\text{}2:\\ {w}_{1}={a}_{2}\\ {w}_{2}=\frac{{a}_{1}}{1+{a}_{2}}\\ for\text{}order\text{}4:\\ {w}_{1}={a}_{4}\\ {w}_{3}=\frac{{a}_{2}}{1+{a}_{4}}\\ {w}_{2}={w}_{4}=0\end{array}$$

[1] M. Lutovac, D. Tosic, B. Evans, *Filter Design
for Signal Processing using MATLAB and Mathematica*. Prentice
Hall, 2001.

`dsp.AllpassFilter`

| `dsp.CoupledAllpassFilter`

| `tf2ca`

| `tf2latc`

| `wdf2allpass`

Was this topic helpful?