96

D. Rocchesso: Sound Processing

subtractive synthesis

excitation signal

allpole filter

pitch shifting

time stretching

data reduction

digital oscillator

5.1.3

LPC Modelling

As explained in section 4.2, the Linear Predictive Coding can be used to model

piecewise stationary spectra. The LPC synthesis proceeds according to the feed-

forward scheme of figure 5. Essentially, it is a subtractive synthesis algorithm

where a spectrally-rich excitation signal is filtered by an allpole filter. The exci-

tation signal can be the residual e that comes directly from the analysis, or it is

selected from a code book. Alternatively, we can make use of voiced/unvoiced

information to generate an excitation signal that can either be a random noise

or a pulse train. In the latter case, the pulse repetition period is derived from

pitch information, available as a parameter.
a , ..., a

1

P

Excitation

Synthesis

v/uv

pitch

e

RMS amplitude

Allpole

Filter

Figure 5: LPC Synthesis

Between the analysis and synthesis stages, several modifications are possible:

· pitch shifting, obtained by modification of the pitch parameter;

· time stretching, obtained by stretching the window where the signal is

assumed to be stationary;

· data reduction, by model order reduction or residual coding.

5.2

Time-domain models

While the description of sound is more meaningful if done in the spectral domain,

in many applications it is convenient to approach the sound synthesis directly

in the time domain.

5.2.1

The Digital Oscillator

We have seen in section 5.1.1 how a complex sound made of several sinusoidal

partials is conveniently synthesized by the FFT
-1

method. If the sinusoidal

components are not too many, it may be convenient to synthesize each partial

by means of a digital oscillator.

From the obvious identity

e

j

0

(n+1)

= e

j

0

e

j

0

n

,

(6)

said e

j

0

n

= x

R

(n)+jx

I

(n), it is evident that the oscillator can be implemented

by one complex multiplication, i.e., 4 real multiplications, at each time step:

x

R

(n + 1) = cos

0

x

R

(n) - sin

0

x

I

(n)

(7)

x

I

(n + 1) = sin

0

x

R

(n) + cos

0

x

I

(n) .

(8)