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 ,
, and
are 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.