man pages section 3: Multimedia Library Functions
Updated: July 2014

## mlib_SignalCepstral_S16 (3MLIB)

### Name

mlib_SignalCepstral_S16 - perform cepstral analysis

### Synopsis

```cc [ flag... ] file... –lmlib [ library... ]
#include <mlib.h>

mlib_status mlib_SignalCepstral_S16(mlib_s16 *cepst,
mlib_s32 cscale, const mlib_s16 *signal, void *state);```

### Description

The mlib_SignalCepstral_S16() function performs cepstral analysis. The user supplied scaling factor will be used and the output will be saturated if necessary.

The basic operations to compute the cepstrum is shown below.

```      +-----------+      +--------+       +-----------+
|  Fourier  |      |        |       |  Inverse  |
----->|           |----->| log|*| |------>|  Fourier  |----->
x(n) | Transform | X(k) |        | X'(k) | Transform | c(n)
+-----------+      +--------+       +-----------+
```

where x(n) is the input signal and c(n) is its cepstrum. In mathematics, they are

```       N-1                2*PI*k*n
X(k) = SUM x(n) * exp(-j*----------)
n=0                   N

X'(k) = log|X(k)|

1  N-1                2*PI*k*n
c(n) = --- SUM X'(k) * exp(j*----------)
N  n=0                   N
```

Since X'(k) is real and even (symmetric), i.e.

```X'(k) = X'(N - k)
```

the c(n) is real and the equation becomes Cosine transform.

```        1  N-1              2*PI*k*n
c(n) = --- SUM X'(k) * cos(----------)
N  n=0                 N
```

The cepstral coefficients in LPC is a special case of the above.

See Digital Signal Processing by Alan V. Oppenheim and Ronald W. Schafer, Prentice Hall, 1974.

See Fundamentals of Speech Recognition by Lawrence Rabinerand Biing-Hwang Juang, Prentice Hall, 1993.

### Parameters

The function takes the following arguments:

cepst

The cepstral coefficients.

cscale

The scaling factor of cepstral coefficients, where actual_data = output_data * 2**(-scaling_factor).

signal

The input signal vector, the signal samples are in Q15 format.

state

Pointer to the internal state structure.

### Return Values

The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.

### Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
MT-Safe