Sign in

username:

password:



Not a member?

Search Online Books



Search tips

Free Online Books

Chapters

Chapter Contents:

Search Physical Audio Signal Processing

  

Book Index | Global Index


Would you like to be notified by email when Julius Orion Smith III publishes a new entry into his blog?

  

Delay-Filter Design

Let $ t_{60}(\omega)$ denote the desired reverberation time at radian frequency $ \omega $, and let $ H_i(z)$ denote the transfer function of the lowpass filter to be placed in series with delay line $ i$. The problem we consider now is how to design these filters to yield the desired reverberation time. We will specify an ideal amplitude response for $ H_i(z)$ based on the desired reverberation time at each frequency, and then use conventional filter-design methods to obtain a low-order approximation to this ideal specification.

Since losses will be introduced by the substitution $ z^{-1}\leftarrow
G(z)z^{-1}$, we need to find its effect on the pole radii of the lossless prototype. Let

$\displaystyle p_i \isdef e^{j\omega_iT}
$

denote the $ i$th pole. (Recall that all poles of the lossless prototype are on the unit circle.) If the per-sample loss filter $ G(z)$ were zero phase, then the substitution $ z^{-1}\leftarrow
G(z)z^{-1}$ would only affect the radius of the poles and not their angles. If the magnitude response of $ G(z)$ is close to 1 along the unit circle, then we have the approximation that the $ i$th pole moves from $ z=e^{j\omega_iT}$ to

$\displaystyle p_i = R_i e^{j\omega_iT}
$

where

$\displaystyle R_i = G\left(R_i e^{j\omega_iT}\right) \approx G\left(e^{j\omega_iT}\right).
$

In other words, when $ z^{-1}$ is replaced by $ G(z)z^{-1}$, where $ G(z)$ is zero phase and $ \vert G(e^{j\omega})\vert$ is close to (but less than) 1, a pole originally on the unit circle at frequency $ \omega_i$ moves approximately along a radial line in the complex plane to the point at radius $ R_i \approx G\left(e^{j\omega_iT}\right)$.3.15

The radius we desire for a pole at frequency $ \omega_i$ is that which gives us the desired $ t_{60}(\omega_i)$:

$\displaystyle R_i ^{t_{60}(\omega_i)/T} = 0.001
$

Thus, the ideal per-sample filter $ G(z)$ satisfies

$\displaystyle \left\vert G(\omega)\right\vert^{t_{60}(\omega)/T} = 0.001
$

The lowpass filter in series with a length $ M_i$ delay line should therefore approximate

$\displaystyle H_i(z) = G^{M_i}(z)
$

which implies