Difference between revisions of "Aufgaben:Exercise 3.4Z: GSM Full-Rate Voice Codec"

From LNTwww
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
  
  
{{quiz-Header|Buchseite=Mobile Kommunikation/Gemeinsamkeiten von GSM und UMTS
+
{{quiz-Header|Buchseite=Mobile_Communications/Similarities_Between_GSM_and_UMTS
  
 
}}
 
}}
  
[[File:EN_Mob_A_3_4_Z.png|right|frame|LPC-, LTP- und RPE-Parameter beim GSM-Vollraten-Codec]]
+
[[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 Fullrate 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 coder and decoder and combines three methods for the compression of speech signals:
*Linear Predictive Coding ('''LPC'''),
+
*Linear Predictive Coding  $\rm (LPC)$,
*Long Term Prediction ('''LTP'''), and
 
*Regular Pulse Excitation ('''RPE''' ).
 
  
 +
*Long Term Prediction  $\rm (LTP)$, and
  
The numbers shown in the graph indicate the number of bits generated by the three units of this FR speech codec per frame of  $20$  millisecond duration each.
+
*Regular Pulse Excitation  $\rm (RPE)$.
  
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.
+
 
 +
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.
  
 
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 R}(n)$.  
  
 
This results from the analog speech signal  $s(t)$  by
 
This results from the analog speech signal  $s(t)$  by
*a suitable limitation to the bandwidth  $B$,
+
*a suitable limitation to the bandwidth $B$,
*sampling at the sampling rate  $f_{\rm A} = 8 \ \rm kHz$,
+
 
*quantization with  $13 \ \rm Bit$,
+
*sampling at the sampling rate $f_{\rm A} = 8 \ \rm kHz$,
*following segmentation into blocks of each $20 \ \rm ms$.
 
  
The further tasks of preprocessing will not be discussed in detail here.
+
*quantization with $13 \ \rm bit$,
  
 +
*following segmentation into blocks of each $20 \ \rm ms$.
  
  
 +
The further tasks of preprocessing will not be discussed in detail here.
  
  
Line 34: Line 37:
 
''Notes:''  
 
''Notes:''  
  
*This exercise belongs to the chapter    [[Mobile_Kommunikation/Gemeinsamkeiten_von_GSM_und_UMTS|Gemeinsamkeiten von GSM und
+
*The task belongs to the chapter  [[Mobile_Communications/Similarities_Between_GSM_and_UMTS|Similarities between GSM and UMTS]].   
UMTS]].   
+
*Reference is also made to the Chapter   [[Examples_of_Communication_Systems/Voice_Coding|Speech Coding]]   of the book "Examples of Communication Systems".
*Reference is also made to the Chapter   [[Beispiele_von_Nachrichtensystemen/Sprachcodierung|Sprachcodierung]]   des Buches „Beispiele von Nachrichtensystemen”.
 
 
   
 
   
  
Line 45: Line 47:
 
<quiz display=simple>
 
<quiz display=simple>
  
{To which bandwidth&nbsp; $B$&nbsp; must the speech signal be limited?
+
{To which bandwidth $B$&nbsp; must the speech signal be limited?
 
|type="{}"}
 
|type="{}"}
 
$B \ = \ $ { 4 3% } $\ \rm kHz$
 
$B \ = \ $ { 4 3% } $\ \rm kHz$
  
{Of How many samples&nbsp; $(N_{\rm R})$&nbsp; is there a language frame? How large is the input data rate&nbsp; $R_{\rm In}$?
+
{Of how many samples&nbsp; $(N_{\rm R})$&nbsp; is there a speech frame?&nbsp; How large is the input data rate $R_{\rm In}$?
 
|type="{}"}
 
|type="{}"}
 
$N_{\rm R} \hspace{0.18cm} = \ $ { 160 3% } $\ \rm samples$
 
$N_{\rm R} \hspace{0.18cm} = \ $ { 160 3% } $\ \rm samples$
 
$R_{\rm In} \hspace{0.15cm} = \ $ { 104 3% } $\ \rm kbit/s$
 
$R_{\rm In} \hspace{0.15cm} = \ $ { 104 3% } $\ \rm kbit/s$
  
{What is the output data rate&nbsp; $R_{\rm Out}$ of the GSM full rate codec?
+
{What is the output data rate $R_{\rm Out}$ of the GSM&ndash;full rate codec?
 
|type="{}"}
 
|type="{}"}
 
$R_{\rm Out} \ = \ $ { 13 3% } $\ \rm kbit/s$
 
$R_{\rm Out} \ = \ $ { 13 3% } $\ \rm kbit/s$
Line 64: Line 66:
 
+ The&nbsp; $36$&nbsp; LPC bits specify coefficients that the receiver uses to undo the LPC filtering.
 
+ The&nbsp; $36$&nbsp; LPC bits specify coefficients that the receiver uses to undo the LPC filtering.
 
- The filter for short-term prediction is recursive.
 
- The filter for short-term prediction is recursive.
- The LPC output signal is identical to the input&nbsp;  $s_{\rm R}(t)$.
+
- The LPC output signal is identical to the input signal&nbsp;  $s_{\rm R}(t)$.
  
{Which statements regarding the block „LTP” are true?
+
{Which statements regarding the block "LTP" are true?
 
|type="[]"}
 
|type="[]"}
 
+ LTP removes periodic structures of the speech signal.
 
+ LTP removes periodic structures of the speech signal.
Line 77: Line 79:
 
+ RPE removes unimportant parts for the subjective impression.
 
+ RPE removes unimportant parts for the subjective impression.
 
+ RPE subdivides each sub-block into four sub-sequences.
 
+ RPE subdivides each sub-block into four sub-sequences.
- RPE selects the subsequence with the minimum energy.
+
- RPE selects the sub-sequence with the minimum energy.
  
 
</quiz>
 
</quiz>
  
===Sample solution===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
  
'''(1)'''&nbsp; To satisfy the sampling theorem, the bandwidth $B$ must not exceed $ f_{\rm A}/2 \hspace{0.15cm}\underline{= 4 \ \ \rm kHz}$.
+
'''(1)'''&nbsp; To satisfy the sampling theorem, the bandwidth $B$&nbsp; must not exceed&nbsp; $ f_{\rm A}/2 \hspace{0.15cm}\underline{= 4 \ \ \rm kHz}$.
  
  
  
'''(2)'''&nbsp; The given sampling rate $f_{\rm A} = 8 \ \rm kHz$ results in a distance between individual samples of $T_{\rm A} = 0.125 \ \rm ms$.  
+
'''(2)'''&nbsp; The given sampling rate&nbsp; $f_{\rm A} = 8 \ \rm kHz$&nbsp; results in a distance between individual samples of&nbsp; $T_{\rm A} = 0.125 \ \rm ms$.  
*Thus a speech frame of $(20 {\rm ms})$ consists of $N_{\rm R} = 20/0.125 = \underline{160 \ \rm samples}$, each quantized with $13 \ \rm Bit$.  
+
*Thus a speech frame of&nbsp; $20 {\rm ms}$&nbsp; consists of&nbsp; $N_{\rm R} = 20/0.125 = \underline{160 \ \rm samples}$, each quantized with&nbsp; $13 \ \rm bit$.  
 
*The data rate is thus
 
*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}.$$
 
:$$R_{\rm In} = \frac{160 \cdot 13}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 104\,{\rm kbit/s}}\hspace{0.05cm}.$$
Line 95: Line 97:
  
  
'''(3)'''&nbsp;  The graph shows that per speech frame $36 \ {\rm (LPC)} + 36 \ {\rm (LTP)} + 188 \ {\rm (RPE)} = 260 \ \ \rm Bit$ are output.  
+
'''(3)'''&nbsp;  The graph shows that per speech frame&nbsp; $36 \ {\rm (LPC)} + 36 \ {\rm (LTP)} + 188 \ {\rm (RPE)} = 260 \ \ \rm bit$&nbsp; are output.  
 
*From this the output data rate is calculated as
 
*From this the output data rate is calculated as
 
:$$R_{\rm Out} = \frac{260}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 13\,{\rm kbit/s}}\hspace{0.05cm}.$$
 
:$$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.
+
*The compression factor achieved by the full rate speech codec is thus&nbsp; $104/13 = 8$.
 +
 
  
  
 +
'''(4)'''&nbsp; The <u>first two statements</u> are true:
 +
*The 36 LPC bits describe a total of eight filter coefficients of a non-recursive filter, whereby eight&nbsp; $\rm ACF$ values are determined from the short-term analysis and where these are converted into reflection factors&nbsp; $r_{k}$&nbsp; after the so-called "Schur recursion".
 +
*From these the eight LAR coefficients are calculated according to the function&nbsp; ${\rm ln}\big[(1 - r_{k})/(1 + r_{k})\big]$, quantized with a different number of bits and sent to the receiver.
 +
*The LPC output signal has a significantly lower amplitude than its input&nbsp; $s_{\rm R}(n)$, and it has a significantly reduced dynamic range and a flatter spectrum.
  
'''(4)'''&nbsp; Only the <u> first two statements</u> are true:
 
*The 36 LPC&ndash;bits describe a total of eight filter coefficients of a non-recursive filter, whereby eight acf&ndash;values are determined from the short-term analysis and where these are converted into reflection factors $r_{k}$ after the so-called Schur recursion.
 
*From these the eight LAR&ndash;coefficients are calculated according to the function ${\rm ln}[(1 - r_{k})/(1 + r_{k})]$, quantized with a different number of bits and sent to the receiver.
 
*The LPC output signal has a significantly lower amplitude than its input $s_{\rm R}(n)$, and it has a significantly reduced dynamic range and a flatter spectrum.
 
  
  
 +
'''(5)'''&nbsp; Correct are the <u>statements 1 and 3</u>, but not the second:
 +
*The LTP analysis and  filtering is done blockwise every&nbsp; $5 \ \rm ms$&nbsp; &rArr; &nbsp; $(40$&nbsp; samples$)$, i.e. four times per speech frame.
 +
*The cross correlation function&nbsp; $\rm (CCF)$&nbsp; between the current sub-block and the three previous sub-blocks is formed.
 +
*For each sub-block, an LTP delay and an LTP gain are determined which best match the sub-block.
 +
*A correction signal of the following component "RPE" is also taken into account.
 +
*For the long-term prediction, as with the LPC, the output is reduced in redundancy compared to the input.
  
'''(5)'''&nbsp; Correct are the <u>the statements 1 and 3</u>, but not the second:
 
*Die LTP&ndash;Analyse und &ndash;Filterung erfolgt blockweise alle $5 \ \rm ms$ (40 Abtastwerte), also viermal pro Sprachrahmen.
 
*Man bildet hierzu die Kreuzkorrelationsfunktion (KKF) zwischen dem aktuellen und den drei vorangegangenen Subblöcken.
 
*Für jeden Subblock werden dabei eine LTP&ndash;Verzögerung und eine LTP&ndash;Verstärkung ermittelt, die am besten zum Subblock passen.
 
*Berücksichtigt wird hierbei auch ein Korrektursignal der nachfolgenden Komponente &bdquo;RPE&rdquo;.
 
*Bei der Langzeitprädiktion ist wie bei der LPC der Ausgang gegenüber dem Eingang redundanzvermindert.
 
  
  
'''(6)'''&nbsp; Richtig sind die <u>Aussagen 2 und 3</u>:  
+
'''(6)'''&nbsp; The statements <u>2 and 3</u> are correct:  
*Dass die Aussage 1 falsch ist, erkennt man schon aus der Grafik auf der Angabenseite, da $188$ der $260$ Ausgabebits von der RPE stammen. Sprache wäre schon allein mit RPE (ohne LPC und LTP) verständlich.
+
*The fact that statement 1 is wrong can be seen from the graphic on the data page, because&nbsp; $188$&nbsp; of the&nbsp; $260$&nbsp; output bits come from the RPE.&nbsp; Voice would be understandable with RPE alone (without LPC and LTP).
*Zur letzten Aussage: Die RPE sucht natürlich die Teilfolge mit der '''maximalen''' Energie. Die RPE–Pulse sind eine Teilfolge (13 von 40 Abtastwerte) zu je drei Bit pro Teilrahmen von $5 \ \rm ms$ und dementsprechend $12 \ \rm  Bit$ pro $20 \ \rm ms$–Rahmen.  
+
*Regarding the last statement:&nbsp; The RPE is of course looking for the subsequence with the '''maximum''' energy.&nbsp; The RPE pulses are a subsequence&nbsp; $(13$&nbsp; of&nbsp; $40$&nbsp; samples$)$&nbsp; of three bits per subframe of&nbsp; $5 \ \rm ms$&nbsp; and accordingly&nbsp; $12$&nbsp; bits per&nbsp; $20 \ \rm ms$&nbsp; frame.  
*Der „RPE–Pulse” belegt somit $13 \cdot 12 = 156$ der $260$ Ausgabebits.
+
*The "RPE pulse" thus occupies&nbsp; $13 \cdot 12 = 156$&nbsp; of the&nbsp; $260$&nbsp; output bits.
  
  
Genaueres zum RPE–Block finden Sie auf der Seite [[Beispiele_von_Nachrichtensystemen/Sprachcodierung#Regular_Pulse_Excitation_.E2.80.93_RPE.E2.80.93Codierung|RPE&ndash;Codierung]] des Buches „Beispiele von Nachrichtensystemen”.
+
More details about the RPE block can be found on the page&nbsp; [[Examples_of_Communication_Systems/Voice_Coding#Regular_Pulse_Excitation_.E2.80.93_RPE_Coding|RPE coding]]&nbsp; of the book&nbsp; "Examples of Communication Systems".
  
 
{{ML-Fuß}}
 
{{ML-Fuß}}
Line 129: Line 132:
  
  
[[Category:Exercises for Mobile Communications|^3.2 Similarities between GSM and UMTS
+
[[Category:Mobile Communications: Exercises|^3.2 Similarities between GSM and UMTS
 
^]]
 
^]]

Latest revision as of 12:25, 23 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 coder 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 task.

The input signal in the above graphic is the digitalized speech signal  $s_{\rm R}(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 bit$,
  • following segmentation into blocks of each $20 \ \rm ms$.


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



Notes:



Questionnaire

1

To which bandwidth $B$  must the speech signal be limited?

$B \ = \ $

$\ \rm kHz$

2

Of how many samples  $(N_{\rm R})$  is there a speech frame?  How large is the input data rate $R_{\rm In}$?

$N_{\rm R} \hspace{0.18cm} = \ $

$\ \rm samples$
$R_{\rm In} \hspace{0.15cm} = \ $

$\ \rm kbit/s$

3

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

$R_{\rm Out} \ = \ $

$\ \rm kbit/s$

4

Which statements apply to the block "LPC"?

LPC makes a short-term prediction over one millisecond.
The  $36$  LPC bits specify coefficients that the receiver uses to undo the LPC filtering.
The filter for short-term prediction is recursive.
The LPC output signal is identical to the input signal  $s_{\rm R}(t)$.

5

Which statements regarding the block "LTP" are true?

LTP removes periodic structures of the speech signal.
The long-term prediction is performed once per frame.
The memory of the LTP predictor is up to  $15 \ \rm ms$.

6

Which statements apply to the block "RPE"?

RPE delivers fewer bits than LPC and LTP.
RPE removes unimportant parts for the subjective impression.
RPE subdivides each sub-block into four sub-sequences.
RPE selects the sub-sequence with the minimum energy.


Solution

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


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

  • Thus a speech frame of  $20 {\rm ms}$  consists of  $N_{\rm R} = 20/0.125 = \underline{160 \ \rm samples}$, each quantized with  $13 \ \rm bit$.
  • 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)  The graph shows that per speech frame  $36 \ {\rm (LPC)} + 36 \ {\rm (LTP)} + 188 \ {\rm (RPE)} = 260 \ \ \rm bit$  are output.

  • From this the output data rate is calculated as
$$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)  The first two statements are true:

  • The 36 LPC bits describe a total of eight filter coefficients of a non-recursive filter, whereby eight  $\rm ACF$ values are determined from the short-term analysis and where these are converted into reflection factors  $r_{k}$  after the so-called "Schur recursion".
  • From these the eight LAR coefficients are calculated according to the function  ${\rm ln}\big[(1 - r_{k})/(1 + r_{k})\big]$, quantized with a different number of bits and sent to the receiver.
  • The LPC output signal has a significantly lower amplitude than its input  $s_{\rm R}(n)$, and it 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 blockwise every  $5 \ \rm ms$  ⇒   $(40$  samples$)$, i.e. four times per speech frame.
  • The cross correlation function  $\rm (CCF)$  between the current sub-block and the three previous sub-blocks is formed.
  • For each sub-block, an LTP delay and an LTP gain are determined which best match the sub-block.
  • A correction signal of the following component "RPE" is also taken into account.
  • For the long-term prediction, as with the LPC, the output is reduced in redundancy compared to the input.


(6)  The statements 2 and 3 are correct:

  • The fact that statement 1 is wrong can be seen from the graphic on the data page, because  $188$  of the  $260$  output bits come from the RPE.  Voice would be understandable with RPE alone (without LPC and LTP).
  • Regarding the last statement:  The RPE is of course looking for the subsequence with the maximum energy.  The RPE pulses are a subsequence  $(13$  of  $40$  samples$)$  of three bits per subframe of  $5 \ \rm ms$  and accordingly  $12$  bits per  $20 \ \rm ms$  frame.
  • The "RPE pulse" thus occupies  $13 \cdot 12 = 156$  of the  $260$  output bits.


More details about the RPE block can be found on the page  RPE coding  of the book  "Examples of Communication Systems".