Free Books

Computing $ \rho $

Our goal is to find the allpass coefficient $ \rho $ such that the frequency mapping

$\displaystyle a(\omega )=$   angle$\displaystyle \left\{{\cal A}_{-\rho }(e^{j\omega }) \right\}

best approximates the Bark scale $ b(\omega )$ for a given sampling rate $ f_s$ . (Note that the frequencies $ \omega$ , $ a(\omega )$ , and $ b(\omega )$ are all expressed in radians per sample, so that a frequency of half of the sampling rate corresponds to a value of $ \pi$ .)

Using squared frequency errors to gauge the fit between $ a(\omega )$ and its Bark-warped counterpart, the optimal mapping-parameter $ \rho ^*$ may be written as

$\displaystyle \rho ^*= \hbox{Arg}\left[\min_{\rho }\left\{\left\Vert\,a(\omega )- b(\omega )\,\right\Vert\right\}\right],

where $ \left\Vert\,\cdot\,\right\Vert$ represents the $ L2$ norm. (The superscript `$ \ast$ ' denotes optimality in some sense.) Unfortunately, the frequency error

$\displaystyle \epsilon _{\hbox{\tiny A}}\isdef a(\omega )- b(\omega )

is nonlinear in $ \rho $ , and its norm is not easily minimized directly. It turns out, however, that a related error,

$\displaystyle \epsilon _{\hbox{\tiny C}}\isdef e^{ja(\omega )}- e^{jb(\omega )},

has a norm which is more amenable to minimization. The first issue we address is how the minimizers of $ \left\Vert\,\epsilon _{\hbox{\tiny A}}\,\right\Vert$ and $ \left\Vert\,\epsilon _{\hbox{\tiny C}}\,\right\Vert$ are related.

Figure E.2: Frequency Map Errors

Denote by $ \zeta $ and $ \beta $ the complex representations of the frequencies $ a(\omega )$ and $ b(\omega )$ on the unit circle,

$\displaystyle \zeta = e^{ja(\omega )}, \qquad \beta = e^{jb(\omega )}.

As seen in Fig.E.2, the absolute frequency error $ \vert\epsilon _{\hbox{\tiny A}}\vert$ is the arc length between the points $ \zeta $ and $ \beta $ , whereas $ \vert\epsilon _{\hbox{\tiny C}}\vert$ is the chord length or distance:

$\displaystyle \vert\epsilon _{\hbox{\tiny C}}\vert = 2\sin(\vert\epsilon _{\hbox{\tiny A}}\vert/2).

The desired arc length error $ \epsilon _{\hbox{\tiny A}}$ gives more weight to large errors than the chord length error $ \epsilon _{\hbox{\tiny C}}$ ; however, in the presence of small discrepancies between $ \zeta $ and $ \beta $ , the absolute errors are very similar,

$\displaystyle \vert\epsilon _{\hbox{\tiny C}}\vert \approx \vert\epsilon _{\hbox{\tiny A}}\vert, \quad \mbox{when } \vert\epsilon _{\hbox{\tiny A}}\vert\ll1.

Accordingly, essentially the same $ \rho ^*$ results from minimizing $ \left\Vert\,\epsilon _{\hbox{\tiny A}}\,\right\Vert$ or $ \left\Vert\,\epsilon _{\hbox{\tiny C}}\,\right\Vert$ when the fit is uniformly good over frequency.

The error $ \epsilon _{\hbox{\tiny C}}$ is also nonlinear in the parameter $ \rho $ , and to find its norm minimizer, an equation error is introduced, as is common practice in developing solutions to nonlinear system identification problems [152]. Consider mapping the frequency $ z=e^{j\omega}$ via the allpass transformation $ {\cal A}_{-\rho }(z)$ ,

$\displaystyle \zeta = {z- \rho \over 1- z\rho }.

Now, multiply (E.3.1) by the denominator $ (1-z\rho )$ , and substitute $ \zeta =\beta +\epsilon _{\hbox{\tiny C}}$ from (E.3.1), to get

$\displaystyle (\beta + \epsilon _{\hbox{\tiny C}}) (1 - z\rho ) = z- \rho .

Rearranging terms, we have

$\displaystyle (\beta - z) - (\beta z- 1) \rho = \epsilon _{\hbox{\tiny E}},

where $ \epsilon _{\hbox{\tiny E}}$ is an equation error defined by

$\displaystyle \epsilon _{\hbox{\tiny E}}\isdef (z\rho - 1) \epsilon _{\hbox{\tiny C}}.

It is shown in [269] that the optimal weighted least-squares conformal map parameter estimate is given by

$\displaystyle \rho ^*= {\hbox{\boldmath$s$}^\top \hbox{\boldmath$V$}\hbox{\boldmath$d$}\over \hbox{\boldmath$s$}^\top \hbox{\boldmath$V$}\hbox{\boldmath$s$}} .

If the weighting matrix $ \hbox{\boldmath $V$}$ is diagonal with kth diagonal element $ v(\omega_{k})>0$ , then the weighted least-squares solution (E.3.1) reduces to
$\displaystyle \rho ^*$ $\displaystyle =$ $\displaystyle \frac{\sum_{k=1}^K
v(\omega _k)
v(\omega _k)\sin^2\left[\frac{b(\omega_{k})+\omega_{k}}{2}\right]}$  
  $\displaystyle =$ $\displaystyle \frac{\sum_{k=1}^{K}
v(\omega _k)
\left\{\cos\left[b(\omega_{k})\right]- \cos(\omega_{k})\right\}}{%
\sum_{k=1}^{K} v(\omega_{k}) \left\{\cos\left[b(\omega_{k}) + \omega_{k}\right]- 1\right\}}.$  

The kth diagonal element of an optimal diagonal weighting matrix $ \hbox{\boldmath $V$}$ is given by [269]

$\displaystyle v(\omega_{k}) = {1\over 1 + \rho ^2 - 2\rho \cos\omega_{k}},

Note that the desired weighting depends on the unknown map parameter $ \rho $ . To overcome this difficulty, we suggest first estimating $ \rho ^*$ using $ \hbox{\boldmath $V$}= \hbox{\boldmath $I$}$ , where $ \hbox{\boldmath $I$}$ denotes the identity matrix, and then computing $ \rho ^*$ using the weighting (E.3.1) based on the unweighted solution. This is analogous to the Steiglitz-McBride algorithm for converting an equation-error minimizer to the more desired ``output-error'' minimizer using an iteratively computed weight function [151].

Next Section:
Optimal Frequency Warpings
Previous Section:
Gaussian Central Moments