next up previous contents index
Next: 8. Implementation Up: 7. Sound Synthesis with Previous: 7.1 Additive Synthesis

   
7.2 Filtering

If the sound to be changed is not represented by partials but comes as a time-domain signal, the modulating spectral envelope has to be converted to a filter that is to be applied to the signal. There are always two possibilities how to actually carry out the filtering:

How to calculate either one of the forms of the filter will be described in the following, for each possible representation of the spectral envelope.

Spectral representation

If the spectral envelope is in canonical representation directly as a curve in the frequency-amplitude domain, the frequency-domain filter is given straightforward by the evaluation of the spectral envelope v(f) at the frequencies fi, which are the frequency bins used for filtering::

H(fi) = v(fi)

The time-domain filter is the inverse Fourier transform of the frequency-domain filter:

  h = F-1(H)

This time-domain filter will in general be more costly to apply than a time-domain filter derived from filter coefficients as shown below, since the impulse response can be as long as the number of bins in H.

Cepstral coefficients

If the spectral envelope is represented as cepstral coefficients ci, for frequency-domain filtering, we have to reconstruct the spectral envelope, which defines the transfer function of H, by inversing the operations carried out in cepstrum estimation (section 3.3):

H = exp(F-1 (ci))

Which is equivalent to an evaluation of this formula at the desired frequency bins $\omega_j$:7.1

\begin{displaymath}H(\omega_j) = exp \left( \sum_{i=1}^p {c_i \cos i \omega_j} \right)
\end{displaymath}

For time-domain filtering, the impulse response h is computed by the inverse Fourier transform of the transfer function H:

h = F-1(H) = F-1(exp(F-1 (ci)))

LPC-coefficients

The predictor coefficients ai, i=1..p are well suited to frequency-domain filtering. They describe the analysis filter A, which is inverse of the transfer function H, corrected by a gain factor g:

\begin{displaymath}H(\omega_i) = \frac{g}{A(\omega_i)}
= \frac{g}{1 - \sum_{i=1}^p a_i e^{-i\omega_i}}
\end{displaymath}

The time-domain filter could be derived as usual by equation (6.6), however, it follows from the properties of LPC-estimation (section 3.2) that we can use the predictor coefficients directly:

\begin{displaymath}y(n) = gx(n) + \sum_{i=1}^p a_i y(n - i)
\end{displaymath}

What's more, by using the reflection coefficients ki, we can apply the much more efficient filter structure of a lattice filter , and can implement the filter directly as shown in figure 6.2.

pics/lattice.gif


next up previous contents index
Next: 8. Implementation Up: 7. Sound Synthesis with Previous: 7.1 Additive Synthesis
Diemo Schwarz
1998-09-07