Difference between revisions of "Aufgaben:Exercise 3.5: GSM Full Rate Vocoder"
Line 125: | Line 125: | ||
− | [[Category:Examples of Communication Systems: Exercises|^3.3 | + | [[Category:Examples of Communication Systems: Exercises|^3.3 Voice Coding^]] |
Revision as of 14:15, 2 January 2023
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:
- Diese Aufgabe gehört zum Kapitel Sprachcodierung.
Fragebogen
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.