3.3.1 Filter bank and computation of sub-band levels

26.0943GPPAdaptive Multi-Rate (AMR) speech codecMandatory speech CODEC speech processing functionsRelease 17TSVoice Activity Detector (VAD)

The input signal is divided into frequency bands using a 9-band filter bank (figure 3.2). Cut-off frequencies for the filter bank are shown in table 3.1.

Table 3.1. Cut-off frequencies for the filter bank

Band number

Frequencies

1

0 – 250 Hz

2

250 – 500 Hz

3

500 – 750 Hz

4

750 – 1000 Hz

5

1000 – 1500 Hz

6

1500 – 2000 Hz

7

2000 – 2500 Hz

8

2500 – 3000 Hz

9

3000 – 4000 Hz

Input for the filter bank is the speech frame pointed by the new_speech pointer of the speech encoder [1]. Input values for the filter bank are scaled down by one bit. This ensures safe scaling, i.e. saturation can not occur during calculation of the filter bank.

Figure 3.2: Filter bank

The filter bank consists of 5th and 3rd order filter blocks. Each filter block divides the input into high-pass and low-pass parts and decimates the sampling frequency by 2. The 5th order filter block is calculated as follows:

(3.1a)

(3.1b)

where

x(i) input signal for a filter block

low-pass component

high-pass component

The 3rd order filter block is calculated as follows:

(3.2a)

(3.2b)

The filters ,, andare first order direct form all-pass filters, whose transfer function is given by:

, (3.3)

where C is the filter coefficient.

Coefficients for the all-pass filters ,, and are COEFF5_1, COEFF5_2, and COEFF3, respectively.

Signal level is calculated at the ouput of the filter bank at each frequency band as follows:

, (3.4)

where:

n index for the frequency band

sample i at the output of the filter bank at frequency band n

=

=

Negative indices of refer to the previous frame.