Exercise 3.5: GSM Full Rate Vocoder

From LNTwww
Revision as of 21:06, 21 January 2023 by Noah (talk | contribs)

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.

Auch Fragen und Lösungen kannst Du (fast vollständig?) übernehmen aus https://en.lntwww.de/Aufgaben:Exercise_3.4Z:_GSM_Full-Rate_Voice_Codec


Hinweis:



Fragebogen

1

Auf welche Bandbreite muss das Sprachsignal begrenzt werden?

$B \ = \ $

$ \ \rm kHz$

2

Aus wievielen Abtastwerten  $(N_{\rm R})$  besteht ein Sprachrahmen? Wie groß ist die Eingangsdatenrate  $R_{\rm In}$?

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

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

$\ \rm kbit/s$

3

Wie groß ist die Ausgangsdatenrate  $R_{\rm Out}$  des GSM-Vollraten-Codecs?

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

$ \ \rm kbit/s$

4

Welche Aussagen treffen hinsichtlich des Blocks „LPC” zu?

LPC macht eine Kurzzeitprädiktion über eine Millisekunde.
Die  $36$  LPC–Bits sind Filterkoeffizienten, die beim Empfänger genutzt werden, um die LPC–Filterung rückgängig zu machen.
Das Filter zur Langzeitprädiktion ist rekursiv.
Der LPC–Ausgang ist identisch mit seinem Eingang  $s_{\rm R}(t)$.

5

Welche Aussagen sind hinsichtlich des Blocks „LTP” zutreffend?

Es werden periodische Strukturen des Sprachsignals entfernt.
Die Langzeitprädiktion wird pro Rahmen einmal durchgeführt.
Das Gedächtnis des LTP–Prädiktors beträgt bis zu  $15 \ \rm ms$.

6

Welche Aussagen treffen für den Block „RPE” zu?

RPE liefert weniger Informationen als LPC und LTP.
RPE entfernt für den subjektiven Eindruck unwichtige Anteile.
RPE unterteilt jeden Subblock nochmals in vier Teilfolgen.
RPE wählt davon die Teilfolge mit der minimalen Energie aus.


Musterlösung

(1)  Um das Abtasttheorem zu erfüllen, darf die Bandbreite nicht größer als $f_{\rm A}/2 \hspace{0.15cm} \underline{= 4 \ \rm kHz}$ sein.


(2)  Aus der gegebenen Abtastrate $f_{\rm A} = 8 \ \rm kHz$ ergibt sich ein Abstand zwischen einzelnen Samples von $T_{\rm A} = 0.125 \ \rm ms$.

  • Somit besteht ein Sprachrahmen $(20 \ \rm ms)$ aus $N_{\rm R} = 20/0.125\hspace{0.15cm} \underline{= 160 \ \rm Abtastwerten}$, jeweils quantisiert mit $13 \ \rm Bit$.
  • Die Datenrate beträgt somit
$$R_{\rm In} = \frac{160 \cdot 13}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 104\,{\rm kbit/s}}\hspace{0.05cm}.$$


(3)  Aus der Grafik ist ersichtlich, dass pro Sprachrahmen $36$ (LPC) $+ 36$ (LTP) $+ 188$ (RPE) $= 260 \ \rm Bit$ ausgegeben werden.

  • Daraus berechnet sich die Ausgangsdatenrate zu
$$R_{\rm Out} = \frac{260}{20 \,{\rm ms}} \hspace{0.15cm} \underline {= 13\,{\rm kbit/s}}\hspace{0.05cm}.$$
  • Der vom Vollraten–Sprachcodec erzielte Kompressionsfaktor ist somit $104/13 = 8$.


(4)  Richtig sind die Aussagen 1 und 2:

  • Die $36$ LPC–Bits beschreiben insgesamt acht Filterkoeffizienten eines nichtrekursiven Filters, wobei aus der Kurzzeitanalyze acht AKF–Werte ermittelt und diese nach der so genannten Schur-Rekursion in Reflexionsfaktoren $r_{k}$ umgerechnet werden.
  • Aus diesen werden die acht LAR–Koeffizienten entsprechend der Funktion ${\rm ln}[(1 – r_{k})/(1 + r_{k})]$ berechnet, mit einer unterschiedlichen Anzahl von Bits quantisiert und an den Empfänger weitergereicht.
  • Das LPC–Ausgangssignal besitzt gegenüber seinem Eingang $s_{\rm R}(n)$ eine deutlich kleinere Amplitude, hat einen deutlich reduzierten Dynamikumfang und ein flacheres Spektrum.


(5)  Richtig sind die Aussagen 1 und 3, nicht jedoch die zweite:

  • Die LTP–Analyse und –Filterung erfolgt blockweise alle $5 \rm ms \ (40 \ \rm 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–Verzögerung und eine LTP–Verstärkung ermittelt, die am besten zum Subblock passen.
  • Berücksichtigt wird hierbei auch ein Korrektursignal der anschließenden Komponente „RPE”.
  • Bei der Langzeitprädiktion ist wie bei der LPC der Ausgang gegenüber dem Eingang redundanzvermindert.


(6)  Richtig sind die Aussagen 2 und 3:

  • Dass die Aussage 1 falsch ist, erkennt man schon aus der Grafik auf der Angabenseite, da $188$ der $260$ Ausgabebits von der RPE stammen.
  • Zur letzten Aussage:  Die RPE sucht die Teilfolge mit der maximalen Energie.
  • Dieser Parameter „RPE–Pulse” belegt allein $156$ der $260$ Ausgabebit.