Difference between revisions of "Aufgaben:Exercise 3.5: GSM Full Rate Vocoder"

From LNTwww
 
(6 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
}}  
 
}}  
  
[[File:EN_Mob_A_3_4_Z.png|right|frame|LPC, LTP and RPE parameters in the GSM Full-Rate Vocoder]]
+
[[File:EN_Mob_A_3_4_Z.png|right|frame|LPC, LTP and RPE parameters in the GSM Full Rate Vocoder]]
This codec called "GSM Full-Rate Vocoder"  (which was standardized for the GSM system in 1991)   stands for a joint realization of coder and decoder and combines three methods for the compression of speech signals:
+
This codec called  "GSM Full Rate Vocoder"  (which was standardized for the GSM system in 1991)   stands for a joint realization of encoder and decoder and combines three methods for the compression of speech signals:
 
*Linear Predictive Coding  $\rm (LPC)$,
 
*Linear Predictive Coding  $\rm (LPC)$,
  
*Long Term Prediction  $\rm (LTP)$, and
+
*Long Term Prediction  $\rm (LTP)$,  and
  
 
*Regular Pulse Excitation  $\rm (RPE)$.
 
*Regular Pulse Excitation  $\rm (RPE)$.
  
  
The numbers shown in the graphic indicate the number of bits generated by the three units of this Full-Rate speech codec per frame of  $20$  millisecond duration each.
+
The numbers shown in the graphic indicate the number of bits generated by the three units of this full rate speech codec per frame of  $20$  millisecond duration each.
  
It should be noted that LTP and RPE, unlike LPC, do not work frame by frame, but with sub-blocks of  $5$  milliseconds.  However, this has no influence on solving the task.
+
It should be noted that LTP and RPE,  unlike LPC,  do not work frame by frame,  but with sub-blocks of  $5$  milliseconds.  However,  this has no influence on solving the exercise.
  
The input signal in the above graphic is the digitalized speech signal   $s_{\rm R}(n)$.  
+
The input signal in the above graphic is the digitalized speech signal   $s_{\rm block}(n)$.  This results from the analog speech signal  $s(t)$  by
 +
*a suitable limitation to the bandwidth  $B$,
  
This results from the analog speech signal  $s(t)$  by
+
*sampling at the sampling rate  $f_{\rm A} = 8 \ \rm kHz$,
*a suitable limitation to the bandwidth $B$,
 
  
*sampling at the sampling rate $f_{\rm A} = 8 \ \rm kHz$,
+
*quantization with  $13 \ \rm bits$,
 
 
*quantization with $13 \ \rm bit$,
 
  
 
*following segmentation into blocks of each $20 \ \rm ms$.
 
*following segmentation into blocks of each $20 \ \rm ms$.
Line 29: Line 27:
  
 
The further tasks of preprocessing will not be discussed in detail here.
 
The further tasks of preprocessing will not be discussed in detail here.
 
You can also take questions and solutions (almost completely?) from
 
[https://en.lntwww.de/Aufgaben:Exercise_3.4Z:_GSM_Full-Rate_Voice_Codec " Exercise 3.4Z"]
 
  
  
Hint:
 
  
*This exercise belongs to the chapter  [[Examples_of_Communication_Systems/Voice_Coding|"Voice Coding"]].
+
<u>Hint:</u> &nbsp; This exercise belongs to the chapter&nbsp; [[Examples_of_Communication_Systems/Voice_Coding|"Speech Coding"]].
 
   
 
   
  
Line 49: Line 43:
 
$B \ = \ $ { 4 3% } $ \ \rm kHz$
 
$B \ = \ $ { 4 3% } $ \ \rm kHz$
  
{How many samples&nbsp; $(N_{\rm R})$&nbsp; does a speech frame consist of? What is the input data rate&nbsp; $R_{\rm In}$?
+
{How many samples&nbsp; $(N_{\rm block})$&nbsp; does a speech lock consist of?&nbsp; What is the input data rate&nbsp; $R_{\rm in}$?
 
|type="{}"}
 
|type="{}"}
$N_{\rm R} \hspace{0.25cm} = \ $ { 160 3% }  
+
$N_{\rm block} \hspace{0.25cm} = \ $ { 160 3% }  
$R_{\rm In} \hspace{0.22cm} = \ $ { 104 3% } $\ \rm kbit/s$
+
$R_{\rm in} \hspace{0.22cm} = \ $ { 104 3% } $\ \rm kbit/s$
  
{What is the output data rate&nbsp; $R_{\rm Out}$&nbsp; of the GSM full rate codec?
+
{What is the output data rate&nbsp; $R_{\rm out}$&nbsp; of the GSM full rate codec?
 
|type="{}"}
 
|type="{}"}
$R_{\rm Out} \hspace{0.09cm} = \ $ { 13 3% } $ \ \rm kbit/s$
+
$R_{\rm out} \hspace{0.09cm} = \ $ { 13 3% } $ \ \rm kbit/s$
  
  
{Which statements are true regarding the block "LPC"?
+
{Which statements are true regarding the block&nbsp; "LPC"?
 
|type="[]"}
 
|type="[]"}
 
+ LPC makes a short-term prediction over one millisecond.
 
+ LPC makes a short-term prediction over one millisecond.
 
+ The&nbsp; $36$&nbsp; LPC bits are filter coefficients used at the receiver to undo the LPC filtering.
 
+ The&nbsp; $36$&nbsp; LPC bits are filter coefficients used at the receiver to undo the LPC filtering.
 
- The filter for long-term prediction is recursive.
 
- The filter for long-term prediction is recursive.
- The LPC output is identical to its input&nbsp; $s_{\rm R}(t)$.
+
- The LPC output is identical to its input&nbsp; $s_{\rm block}(t)$.
  
 
{Which statements are true regarding the block "LTP"?
 
{Which statements are true regarding the block "LTP"?
 
|type="[]"}
 
|type="[]"}
 
+ Periodic structures of the speech signal are removed.
 
+ Periodic structures of the speech signal are removed.
- Long-term prediction is performed once per frame.
+
- Long-term prediction is performed once per block.
 
+ The memory of the LTP predictor is up to&nbsp; $15 \ \rm ms$.
 
+ The memory of the LTP predictor is up to&nbsp; $15 \ \rm ms$.
  
Line 84: Line 78:
 
{{ML-Kopf}}
 
{{ML-Kopf}}
  
'''(1)'''&nbsp; To satisfy the sampling theorem, the bandwidth must not exceed $f_{\rm A}/2 \hspace{0.15cm} \underline{= 4 \ \rm kHz}$.
+
'''(1)'''&nbsp; To satisfy the sampling theorem,&nbsp; the bandwidth must not exceed&nbsp; $f_{\rm A}/2 \hspace{0.15cm} \underline{= 4 \ \rm kHz}$.
 +
 
  
 +
'''(2)'''&nbsp; From the given sampling rate&nbsp; $f_{\rm A} = 8 \ \rm kHz$ &nbsp; results a distance between individual samples of&nbsp; $T_{\rm A} = 0.125 \ \rm ms$.
 +
*Thus,&nbsp; a speech block $(20 \ \rm ms)$ consists of $N_{\rm block} = 20/0.125\hspace{0.15cm} \underline{= 160 \ \rm samples}$,&nbsp; each quantized with&nbsp; $13 \ \rm bits$.
 +
 +
*The data rate&nbsp; is thus
 +
:$$R_{\rm in} = \frac{160 \cdot 13}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 104\,{\rm kbit/s}}\hspace{0.05cm}.$$
  
'''(2)'''&nbsp; From the given sampling rate $f_{\rm A} = 8 \ \rm kHz$ results a distance between individual samples of $T_{\rm A} = 0.125 \ \rm ms$.
 
*Thus, a speech frame $(20 \ \rm ms)$ consists of $N_{\rm R} = 20/0.125\hspace{0.15cm} \underline{= 160 \ \rm samples}$, each quantised with $13 \ \rm bits$.
 
*The data rate is thus
 
:$$R_{\rm In} = \frac{160 \cdot 13}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 104\,{\rm kbit/s}}\hspace{0.05cm}.$$
 
  
 +
'''(3)'''&nbsp; From the graph,&nbsp; it can be seen that&nbsp; $36$&nbsp; (LPC)&nbsp; $+\ 36$&nbsp; (LTP) $+\ 188$&nbsp; (RPE)&nbsp; $= 260 \ \rm bits$&nbsp; are output per speech block.
 +
*From this,&nbsp; the output data rate is calculated to be
 +
:$$R_{\rm out} = \frac{260}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 13\,{\rm kbit/s}}\hspace{0.05cm}.$$
  
'''(3)'''&nbsp; From the graph, it can be seen that $36$ (LPC) $+ 36$ (LTP) $+ 188$ (RPE) $= 260 \ \rm bits$ are output per speech frame.
+
*The compression factor achieved by the full rate speech codec is thus&nbsp; $104/13 = 8$.
*From this, the output data rate is calculated to be
 
:$$R_{\rm Out} = \frac{260}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 13\,{\rm kbit/s}}\hspace{0.05cm}.$$
 
*The compression factor achieved by the full rate speech codec is thus $104/13 = 8$.
 
  
  
  
'''(4)'''&nbsp; Correct are <u>statements 1 and 2</u>:  
+
'''(4)'''&nbsp; Correct are the&nbsp; <u>statements 1 and 2</u>:  
*The $36$ LPC bits describe a total of eight filter coefficients of a non-recursive filter, where eight AKF values are determined from the short-time analysis and these are converted into reflection coefficients $r_{k}$ according to the so-called Schur recursion.
+
*The&nbsp; $36$&nbsp; LPC bits describe a total of eight filter coefficients of a non-recursive filter,&nbsp; where eight ACF values are determined from the short-time analysis.
*From these, the eight LAR coefficients are calculated according to the function ${\rm ln}[(1 - r_{k})/(1 + r_{k})]$, quantised with a different number of bits and passed on to the receiver.
 
*The LPC output signal has a significantly smaller amplitude compared to its input $s_{\rm R}(n)$, has a significantly reduced dynamic range and a flatter spectrum.
 
  
 +
*These are converted into reflection coefficients&nbsp; $r_{k}$&nbsp; according to the so-called&nbsp; "Schur recursion".
 +
 +
*From these,&nbsp; the eight LAR coefficients are calculated according to the function&nbsp; ${\rm ln}[(1 - r_{k})/(1 + r_{k})]$,&nbsp; quantized with a different number of bits and passed on to the receiver.
 +
 +
*The LPC output signal has a significantly smaller amplitude compared to its input&nbsp; $s_{\rm block}(n)$,&nbsp; has a significantly reduced dynamic range and a flatter spectrum.
 +
 +
 +
 +
'''(5)'''&nbsp; Correct are the&nbsp;  <u>statements 1 and 3</u>,&nbsp; but not the second:
 +
*The LTP analysis and filtering is done in blocks every $5 \rm ms \ (40 \rm samples)$,&nbsp; i.e.&nbsp; four times per speech block.
 +
 +
*To do this,&nbsp; the cross-correlation function (CCF) is formed between the current and the three preceding sub-blocks.
 +
 +
*For each sub-block,&nbsp; an LTP delay and an LTP gain are determined that best fit the sub-block.
 +
 +
*A correction signal of the subsequent component&nbsp; "RPE"&nbsp; is also taken into account.
 +
 +
*In the case of long-term prediction,&nbsp; as with LPC,&nbsp; the output is redundancy-reduced compared to the input.
  
  
'''(5)'''&nbsp; Correct are <u>statements 1 and 3</u>, but not the second:
 
*The LTP analysis and filtering is done in blocks every $5 \rm ms \ (40 \rm samples)$, i.e. four times per speech frame.
 
*To do this, the cross-correlation function (CCF) is formed between the current and the three preceding sub-blocks.
 
*For each sub-block, an LTP delay and an LTP gain are determined that best fit the sub-block.
 
*A correction signal of the subsequent component "RPE" is also taken into account.
 
*In the case of long-term prediction, as with LPC, the output is redundancy-reduced compared to the input.
 
  
 +
'''(6)'''&nbsp; Correct are the&nbsp; <u>statements 2 and 3</u>:
 +
*That statement 1 is false can already be seen from the graph on the statements page,&nbsp; since $188$&nbsp; of the&nbsp; $260$&nbsp; output bits come from the RPE.
  
 +
*To the last statement:&nbsp; The RPE searches for the sub-sequence with the maximum energy.
  
'''(6)'''&nbsp; Correct are <u>statements 2 and 3</u>:
+
*This parameter&nbsp; "RPE pulses"&nbsp; alone occupies&nbsp; $188$&nbsp; of the&nbsp; $260$&nbsp; output bits.  
*That statement 1 is false can already be seen from the graph on the statements page, since $188$ of the $260$ output bits come from the RPE.
 
*To the last statement:&nbsp; The RPE searches for the subsequence with the maximum energy.
 
*This parameter "RPE pulses" alone occupies $156$ of the $260$ output bits.  
 
  
 
{{ML-Fuß}}
 
{{ML-Fuß}}
Line 125: Line 131:
  
  
[[Category:Examples of Communication Systems: Exercises|^3.3 Voice Coding^]]
+
[[Category:Examples of Communication Systems: Exercises|^3.3 Speech Coding^]]

Latest revision as of 10:39, 25 January 2023

LPC, LTP and RPE parameters in the GSM Full Rate Vocoder

This codec called  "GSM Full Rate Vocoder"  (which was standardized for the GSM system in 1991)  stands for a joint realization of encoder and decoder and combines three methods for the compression of speech signals:

  • Linear Predictive Coding  $\rm (LPC)$,
  • Long Term Prediction  $\rm (LTP)$,  and
  • Regular Pulse Excitation  $\rm (RPE)$.


The numbers shown in the graphic indicate the number of bits generated by the three units of this full rate speech codec per frame of  $20$  millisecond duration each.

It should be noted that LTP and RPE,  unlike LPC,  do not work frame by frame,  but with sub-blocks of  $5$  milliseconds.  However,  this has no influence on solving the exercise.

The input signal in the above graphic is the digitalized speech signal  $s_{\rm block}(n)$.  This results from the analog speech signal  $s(t)$  by

  • a suitable limitation to the bandwidth  $B$,
  • sampling at the sampling rate  $f_{\rm A} = 8 \ \rm kHz$,
  • quantization with  $13 \ \rm bits$,
  • following segmentation into blocks of each $20 \ \rm ms$.


The further tasks of preprocessing will not be discussed in detail here.


Hint:   This exercise belongs to the chapter  "Speech Coding".



Questions

1

To what bandwidth must the speech signal be limited?

$B \ = \ $

$ \ \rm kHz$

2

How many samples  $(N_{\rm block})$  does a speech lock consist of?  What is the input data rate  $R_{\rm in}$?

$N_{\rm block} \hspace{0.25cm} = \ $

$R_{\rm in} \hspace{0.22cm} = \ $

$\ \rm kbit/s$

3

What is the output data rate  $R_{\rm out}$  of the GSM full rate codec?

$R_{\rm out} \hspace{0.09cm} = \ $

$ \ \rm kbit/s$

4

Which statements are true regarding the block  "LPC"?

LPC makes a short-term prediction over one millisecond.
The  $36$  LPC bits are filter coefficients used at the receiver to undo the LPC filtering.
The filter for long-term prediction is recursive.
The LPC output is identical to its input  $s_{\rm block}(t)$.

5

Which statements are true regarding the block "LTP"?

Periodic structures of the speech signal are removed.
Long-term prediction is performed once per block.
The memory of the LTP predictor is up to  $15 \ \rm ms$.

6

Which statements are true for the block "RPE"?

RPE provides less information than LPC and LTP.
RPE removes parts that are unimportant for the subjective impression.
RPE divides each subblock again into four sub-sequences.
RPE selects the subsequence with the minimum energy.


Solution

(1)  To satisfy the sampling theorem,  the bandwidth must not exceed  $f_{\rm A}/2 \hspace{0.15cm} \underline{= 4 \ \rm kHz}$.


(2)  From the given sampling rate  $f_{\rm A} = 8 \ \rm kHz$   results a distance between individual samples of  $T_{\rm A} = 0.125 \ \rm ms$.

  • Thus,  a speech block $(20 \ \rm ms)$ consists of $N_{\rm block} = 20/0.125\hspace{0.15cm} \underline{= 160 \ \rm samples}$,  each quantized with  $13 \ \rm bits$.
  • The data rate  is thus
$$R_{\rm in} = \frac{160 \cdot 13}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 104\,{\rm kbit/s}}\hspace{0.05cm}.$$


(3)  From the graph,  it can be seen that  $36$  (LPC)  $+\ 36$  (LTP) $+\ 188$  (RPE)  $= 260 \ \rm bits$  are output per speech block.

  • From this,  the output data rate is calculated to be
$$R_{\rm out} = \frac{260}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 13\,{\rm kbit/s}}\hspace{0.05cm}.$$
  • The compression factor achieved by the full rate speech codec is thus  $104/13 = 8$.


(4)  Correct are the  statements 1 and 2:

  • The  $36$  LPC bits describe a total of eight filter coefficients of a non-recursive filter,  where eight ACF values are determined from the short-time analysis.
  • These are converted into reflection coefficients  $r_{k}$  according to the so-called  "Schur recursion".
  • From these,  the eight LAR coefficients are calculated according to the function  ${\rm ln}[(1 - r_{k})/(1 + r_{k})]$,  quantized with a different number of bits and passed on to the receiver.
  • The LPC output signal has a significantly smaller amplitude compared to its input  $s_{\rm block}(n)$,  has a significantly reduced dynamic range and a flatter spectrum.


(5)  Correct are the  statements 1 and 3,  but not the second:

  • The LTP analysis and filtering is done in blocks every $5 \rm ms \ (40 \rm samples)$,  i.e.  four times per speech block.
  • To do this,  the cross-correlation function (CCF) is formed between the current and the three preceding sub-blocks.
  • For each sub-block,  an LTP delay and an LTP gain are determined that best fit the sub-block.
  • A correction signal of the subsequent component  "RPE"  is also taken into account.
  • In the case of long-term prediction,  as with LPC,  the output is redundancy-reduced compared to the input.


(6)  Correct are the  statements 2 and 3:

  • That statement 1 is false can already be seen from the graph on the statements page,  since $188$  of the  $260$  output bits come from the RPE.
  • To the last statement:  The RPE searches for the sub-sequence with the maximum energy.
  • This parameter  "RPE pulses"  alone occupies  $188$  of the  $260$  output bits.