Beispiele von Nachrichtensystemen/Sprachcodierung: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
 
(12 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 8: Zeile 8:
  
 
==Verschiedene Sprachcodierverfahren== 
 
==Verschiedene Sprachcodierverfahren== 
 +
<br>
 +
Jedem GSM-Teilnehmer steht maximal die Netto–Datenrate&nbsp; $\text{22.8 kbit/s}$&nbsp; zur Verfügung, während im ISDN–Festnetz mit einer Datenrate von&nbsp; $\text{64 kbit/s}$&nbsp; (bei &nbsp;$8$&nbsp; Bit Quantisierung)&nbsp; bzw.&nbsp; $\text{104 kbit/s}$&nbsp; (bei&nbsp;$13$&nbsp;Bit Quantisierung)&nbsp; gearbeitet wird. Aufgabe der Sprachcodierung bei GSM ist die Beschränkung der Datenmenge zur Sprachsignalübertragung auf&nbsp; $\text{22.8 kbit/s}$&nbsp; und eine bestmögliche Reproduktion des Sprachsignals auf der Empfängerseite. Die Funktionen des GSM–Coders und des GSM–Decoders sind meist in einer Funktionseinheit zusammengefasst, die als &bdquo;Codec&rdquo; bezeichnet wird.
  
Jedem GSM-Teilnehmer steht maximal die Netto–Datenrate 22.8 kbit/s zur Verfügung, während im ISDN–Festnetz mit einer Datenrate von 64 kbit/s (bei 8 Bit Quantisierung) bzw. 104 kbit/s (bei 13 Bit Quantisierung) gearbeitet wird. Aufgabe der Sprachcodierung bei GSM ist die Beschränkung der Datenmenge zur Sprachsignalübertragung auf 22.8 kbit/s und eine bestmögliche Reproduktion des Sprachsignals auf der Empfängerseite. Die Funktionen des GSM–Coders und des GSM–Decoders sind meist in einer Funktionseinheit zusammengefasst, die als '''Codec''' bezeichnet wird.
+
Zur Sprachcodierung und –Decodierung werden verschiedene Signalverarbeitungsverfahren angewandt:
 +
*Der&nbsp; '''GSM Fullrate Vocoder'''&nbsp; (deutsch:&nbsp; GSM–Vollraten–Sprachcodec)&nbsp; wurde 1991 aus einer Kombination von drei Kompressionsmethoden für den GSM–Funkkanal standardisiert. Er basiert auf&nbsp; ''Linear Predictive Coding''&nbsp; (LPC) in Verbindung mit&nbsp; ''Long Term Prediction''&nbsp; (LTP) und&nbsp; ''Regular Pulse Excitation''&nbsp; (RPE).
 +
*Der&nbsp; '''GSM Halfrate Vocoder'''&nbsp; (deutsch:&nbsp; GSM–Halbraten–Sprachcodec)&nbsp; wurde 1994 eingeführt und bietet die Möglichkeit, Sprache bei nahezu gleicher Qualität in einem halben Verkehrskanal $($Datenrate&nbsp; $\text{11.4 kbit/s})$&nbsp; zu übertragen.
 +
*Der&nbsp; '''Enhanced Fullrate Vocoder'''&nbsp; (EFR–Codec) wurde 1995 standardisiert und implementiert, ursprünglich für das nordamerikanische DCS1900–Netz. Der EFR–Codec bietet gegenüber dem herkömmlichen Vollraten–Codec eine bessere Sprachqualität.
 +
*Der&nbsp; '''Adaptive Multi–Rate Codec'''&nbsp; (AMR–Codec) ist der neueste Sprachcodec für GSM. Er wurde 1997 standardisiert und 1999 vom&nbsp; ''Third Generation Partnership Project''&nbsp; (3GPP) auch als Standard–Sprachcodec für Mobilfunksysteme der dritten Generation wie UMTS vorgeschrieben.
  
Zur Sprachcodierung und –Decodierung werden verschiedene Signalverarbeitungsverfahren angewandt:
 
*Der '''GSM Fullrate Vocoder''' (deutsch: GSM–Vollraten–Sprachcodec) wurde 1991 aus einer Kombination von drei Kompressionsmethoden für den GSM–Funkkanal standardisiert. Er basiert auf ''Linear Predictive Coding'' (LPC) in Verbindung mit einer ''Long Term Prediction'' (LTP) und einer ''Regular Pulse Excitation'' (RPE).
 
*Der '''GSM Halfrate Vocoder '''(deutsch: GSM–Halbraten–Sprachcodec) wurde 1994 eingeführt und bietet die Möglichkeit, Sprache bei nahezu gleicher Qualität in einem halben Verkehrskanal (Datenrate 11.4 kbits/s) zu übertragen.
 
*Der '''Enhanced Fullrate Vocoder''' (EFR–Codec) wurde 1995 standardisiert und implementiert, ursprünglich für das nordamerikanische DCS1900–Netz. Der EFR–Codec bietet gegenüber dem herkömmlichen Vollraten–Codec eine bessere Sprachqualität.
 
*Der '''Adaptive Multi–Rate Codec''' (AMR–Codec) ist der neueste Sprachcodec für GSM. Er wurde 1997 standardisiert und 1999 vom ''Third Generation Partnership Project'' (3GPP) auch als Standard–Sprachcodec für Mobilfunksysteme der 3. Generation wie UMTS vorgeschrieben.
 
  
Sie können sich die Qualität dieser Sprachcodierverfahren bei Sprache und Musik mit dem folgenden Interaktionsmodul verdeutlichen:
+
Sie können sich die Qualität dieser Sprachcodierverfahren bei Sprache und Musik mit dem interaktiven Applet&nbsp; [[Applets:Qualität_verschiedener_Sprach–Codecs_(Applet)|Qualität verschiedener Sprach–Codecs ]]&nbsp; verdeutlichen. Diese Audio–Animation berücksichtigt auch den&nbsp; [https://de.wikipedia.org/wiki/Adaptive_Multi-Rate Wideband–AMR], der 2007 für UMTS entwickelt und standardisiert wurde.  
Qualität verschiedener Sprach–Codecs (Dateigröße: 11.3 MB)
 
  
Diese Audio–Animation berücksichtigt auch den '''Wideband–AMR''', der momentan (2007) für UMTS entwickelt und standardisiert wird. Im Gegensatz zum herkömmlichen AMR, bei dem das Sprachsignal auf den Frequenzbereich von 300 Hz bis 3.4 kHz bandbegrenzt wird, geht man beim WB–AMR von einem Wideband–Signal (50 Hz – 7 kHz) aus. Dieser ist somit auch für Musiksignale geeignet.
+
Im Gegensatz zum herkömmlichen AMR, bei dem das Sprachsignal auf den Frequenzbereich von&nbsp; $\text{300 Hz}$&nbsp;  bis &nbsp; $\text{3.4 kHz}$&nbsp; bandbegrenzt wird, geht man beim WB–AMR von einem Wideband–Signal &nbsp; $\text{(50 Hz – 7 kHz)}$&nbsp; aus. Dieser ist somit auch für Musiksignale geeignet.
  
 
   
 
   
 
==GSM Fullrate Vocoder – Vollraten–Codec==   
 
==GSM Fullrate Vocoder – Vollraten–Codec==   
 +
<br>
 +
Beim&nbsp; '''GSM–Vollraten-Codec'''&nbsp; (englisch:&nbsp; ''Full Rate Vocoder'') wird das analoge Sprachsignal im Frequenzbereich zwischen&nbsp; $300 \ \rm Hz$&nbsp; und&nbsp; $3400 \ \rm Hz$&nbsp; zunächst mit&nbsp; $8 \ \rm kHz$&nbsp; abgetastet und danach mit&nbsp; $13$&nbsp; Bit linear quantisiert ('''A/D–Wandlung'''), was eine Datenrate von&nbsp; $104 \ \rm kbit/s$&nbsp; ergibt.
 +
[[Datei:P_ID1203__Bei_T_3_2_S2_v3.png|right|frame|LPC&ndash;, LTP&ndash; und RPE&ndash;Parameter beim GSM-Vollraten-Codec]]
 +
Die Sprachcodierung erfolgt bei diesem Verfahren in vier Schritten:
 +
*die Vorverarbeitung,
 +
*die Einstellung des Kurzzeitanalyse–Filters&nbsp; (''Linear Predictive Coding'', LPC),
 +
*die Steuerung des Langzeitanalyse–Filters&nbsp; (''Long Term Prediction'', LTP) und
 +
*die Codierung des Restsignals durch eine Folge von Pulsen&nbsp; (''Regular Pulse Excitation'', RPE).
 +
 +
 +
In der Grafik bezeichnet&nbsp; $s(n)$&nbsp; das im Abstand&nbsp; $T_{\rm A} = 125\ \rm &micro; s$&nbsp; abgetastete und quantisierte Sprachsignal nach der kontinuierlich durchgeführten Vorverarbeitung, wobei
 +
*das digitalisierte Mikrofonsignal von einem eventuell vorhandenen Gleichsignalanteil (Offset) befreit wird, um bei der Decodierung einen störenden Pfeifton von ca.&nbsp; $2.6 \ \rm  kHz$&nbsp; bei der Wiedergewinnung der höheren Frequenzanteile zu vermeiden, und
 +
*zusätzlich höhere Spektralanteile von&nbsp; $s(n)$&nbsp; angehoben werden, um die Rechengenauigkeit und Effektivität der nachfolgenden LPC–Analyse zu verbessern.
 +
 +
 +
Die Tabelle zeigt die&nbsp; $76$&nbsp; Parameter&nbsp; $(260$ Bit$)$&nbsp; der Funktionseinheiten LPC, LTP und RPE. Die Bedeutung der einzelnen Größen wird auf den folgenden Seiten im Detail beschrieben.
  
Beim '''GSM–Vollraten-Codec''' (''Full Rate Vocoder'') wird das analoge Sprachsignal im Frequenzbereich zwischen 300 und 3400 Hz zunächst mit 8 kHz abgetastet und danach mit 13 Bit linear quantisiert (A/D–Wandlung), was eine Datenrate von 104 kbit/s ergibt. Die Sprachcodierung erfolgt bei diesem Verfahren in vier Schritten:
+
[[Datei:P_ID1218__Bei_T_3_2_Sb2_v3.png|center|frame|Tabelle der Vollraten&ndash;Codec&ndash;Parameter]]
*die Vorverarbeitung,
 
*die Einstellung des Kurzzeitanalyse–Filters
 
(''Linear Predictive Coding'', LPC),
 
*die Steuerung des Langzeitanalyse–Filters
 
(''Long Term Prediction'', LTP) und
 
*die Codierung des Restsignals durch eine Folge von Pulsen (''Regular Pulse Excitation'', RPE).
 
  
In obiger Grafik bezeichnet $s(n)$ das im Abstand $T_{\rm A}$ = 125 µs abgetastete und quantisierte Sprachsignal nach der kontinuierlich durchgeführten Vorverarbeitung, wobei
+
Alle Verarbeitungsschritte (LPC, LTP, RPE) erfolgen jeweils in Blöcken von&nbsp; $20 \ \rm ms$&nbsp; Dauer über&nbsp; $160$&nbsp; Abtastwerte des vorverarbeiteten Sprachsignals, die man als&nbsp; '''GSM–Sprachrahmen'''&nbsp; bezeichnet.
*das digitalisierte Mikrofonsignal von einem eventuell vorhandenen Gleichsignalanteil (Offset) befreit wird, um bei der Decodierung einen störenden Pfeifton von ca. 2.6 kHz bei der Wiedergewinnung der höheren Frequenzanteile zu vermeiden, und
+
*Beim Vollraten–Codec werden pro Sprachrahmen insgesamt&nbsp; $260$ Bit&nbsp; erzeugt, woraus sich eine Datenrate von&nbsp; $13  \ \rm kbit/s$&nbsp; ergibt.  
*zusätzlich höhere Spektralanteile von $s(n)$ angehoben werden, um die Rechengenauigkeit und Effektivität der nachfolgenden LPC–Analyse zu verbessern.
+
*Dies entspricht einer Kompression des Sprachsignals um den Faktor&nbsp; $8$&nbsp; $(104  \ \rm kbit/s$ bezogen auf $13  \ \rm kbit/s)$.
  
Die Tabelle zeigt die 76 Parameter (260 Bit) der Funktionseinheiten LPC, LTP und RPE. Die Bedeutung der einzelnen Größen wird auf den folgenden Seiten im Detail beschrieben.
 
  
Alle Verarbeitungsschritte (LPC, LTP, RPE) erfolgen jeweils in Blöcken von 20 ms Dauer über 160 Abtastwerte des vorverarbeiteten Sprachsignals, die man als '''GSM–Sprachrahmen''' bezeichnet. Beim Vollraten–Codec werden pro Sprachrahmen insgesamt 260 Bit erzeugt, woraus sich eine Datenrate von 13 kbit/s ergibt. Dies entspricht einer Kompression des Sprachsignals um den Faktor 8 (104 kbit/s bezogen auf 13 kbit/s).
 
 
 
 
 
  
 
==Linear Predictive Coding – Kurzzeitprädiktion== 
 
==Linear Predictive Coding – Kurzzeitprädiktion== 
 +
<br>
 +
[[Datei:P_ID1206__Bei_T_3_2_S3_v1.png|right|frame|Bausteine der GSM-Kurzzeitprädiktion (LPC)]]
 +
Der Block&nbsp; '''Linear Predictive Coding'''&nbsp; (LPC) führt eine Kurzzeitprädiktion durch, das heißt, es werden die statistischen Abhängigkeiten der Abtastwerte untereinander in einem kurzen Bereich von einer Millisekunde ermittelt.
 +
<br clear=all>
 +
Es folgt eine Kurzbeschreibung des LPC–Prinzipschaltbildes:
 +
*Zunächst wird dazu das zeitlich unbeschränkte Signal&nbsp; $s(n)$&nbsp; in Intervalle&nbsp; $s_{\rm R}(n)$&nbsp; von&nbsp; $20 \ \rm ms$ Dauer&nbsp; $(160$ Samples$)$ segmentiert. Die Laufvariable innerhalb eines solchen Sprachrahmens kann vereinbarungsgemäß die Werte&nbsp; $n = 1$, ... , $160$&nbsp; annehmen.
 +
*Im ersten Schritt der&nbsp; '''LPC-Analyse'''&nbsp; werden Abhängigkeiten zwischen den Abtastwerten durch die Autokorrelationskoeffizienten  mit Indizes&nbsp; $0 ≤ k ≤ 8$&nbsp; quantifiziert:
 +
:$$φ_{\rm s}(k) = \text{E}\big [s_{\rm R}(n) · s_{\rm R}(n + k)\big ].$$
 +
*Aus diesen neun AKF–Werten werden mit Hilfe der so genannten&nbsp; ''Schur–Rekursion''&nbsp; acht Reflexionskoeffizienten&nbsp; $r_{k}$&nbsp; berechnet, die als Grundlage für die Einstellung der Koeffizienten des LPC–Analysefilters für den aktuellen Rahmen dienen.
 +
*Die Koeffizienten&nbsp; $r_{k}$&nbsp; haben Werte zwischen&nbsp; $±1$. Schon geringe Änderungen der&nbsp; $r_{k}$&nbsp; am Rand ihres Wertesbereichs bewirken große Änderungen für die Sprachcodierung. Die acht Reflexionswerte&nbsp; $r_{k}$&nbsp; werden logarithmisch dargestellt &nbsp; ⇒  &nbsp; '''LAR–Parameter''' (''Log Area Ratio''):
 +
:$${\rm LAR}(k) = \ln \ \frac{1-r_k}{1+r_k}, \hspace{1cm} k = 1,\hspace{0.05cm} \text{...}\hspace{0.05cm} , 8.$$
 +
 +
*Anschließend werden die acht LAR–Parameter entsprechend ihrer subjektiven Bedeutung durch unterschiedlich viele Bit quantisiert, codiert und zur Übertragung bereitgestellt. Die beiden ersten Parameter werden mit je sechs Bit, die beiden nächsten mit je fünf Bit, $\rm LAR(5)$&nbsp; und&nbsp; $\rm LAR(6)$&nbsp; mit je vier Bit und die beiden letzten &ndash; &nbsp; $\rm LAR(7)$&nbsp; und&nbsp; $\rm LAR(8)$&ndash; &nbsp; mit je drei Bit dargestellt.
 +
*Bei fehlerfreier Übertragung kann am Empfänger aus den acht LPC–Parametern&nbsp; (insgesamt&nbsp;  $36$&nbsp; Bit)&nbsp; mit dem entsprechenden LPC–Synthesefilter das ursprüngliche Signal&nbsp; $s(n)$&nbsp; wieder vollständig rekonstruiert werden, wenn man von den unvermeidbaren zusätzlichen Quantisierungsfehlern durch die digitale Beschreibung der LAR-Koeffizienten absieht.
 +
*Weiterhin wird mit Hilfe des LPC–Filters das Prädiktionsfehlersignal&nbsp; $e_{\rm LPC}(n)$&nbsp; gewonnen. Dieses ist gleichzeitig das Eingangssignal für die nachfolgende Langzeitprädiktion. Das LPC–Filter ist nicht rekursiv und hat nur ein kurzes Gedächtnis von etwa einer Millisekunde.
 +
  
Der Block '''Linear Predictive Coding''' (LPC) führt eine Kurzzeitprädiktion durch, das heißt, es werden die statistischen Abhängigkeiten der Abtastwerte untereinander in einem kurzen Bereich von einer Millisekunde ermittelt. Zunächst wird dazu das zeitlich unbeschränkte Signal $s(n)$ mit $n$ = 1, 2, ... in Intervalle $s_{\rm R}(n)$ von 20 ms Dauer, also 160 Samples, segmentiert. Die Laufvariable innerhalb eines solchen Sprachrahmens kann vereinbarungsgemäß die Werte $n$ = 1, ... , 160 annehmen.
+
{{GraueBox|TEXT= 
 +
$\text{Beispiel 1:}$&nbsp;
 +
Die Grafik aus&nbsp; [Kai05]<ref name ='Kai05'>Kaindl, M.: ''Kanalcodierung für Sprache und Daten in GSM-Systemen''. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 764, 2005.</ref>&nbsp; zeigt oben einen Ausschnitt des Sprachsignals&nbsp; $s(n)$&nbsp; und dessen Zeit–Frequenzdarstellung. Unten ist das LPC–Prädiktionsfehlersignal&nbsp; $e_{\rm LPC}(n)$&nbsp; dargestellt.
  
Hier folgt eine Kurzbeschreibung des obigen LPC–Prinzipschaltbildes:
+
[[Datei:P_ID1207__Bei_T_3_2_S3b_v3.png|right|frame|LPC&ndash;Prädiktionsfehlersignal bei GSM (Zeit&ndash;Frequenzdarstellung)]]
*Im ersten Schritt der '''LPC-Analyse''' werden statistische Abhängigkeiten zwischen den Abtastwerten durch die Autokorrelationskoeffizienten $φ_{\rm s}(k) = \text{E}[s_{\rm R}(n) · s_{\rm R}(n + k)]$ mit 0 $k$ ≤ 8 quantifiziert. Aus diesen neun AKF–Werten werden mit Hilfe der sog. ''Schur–Rekursion'' acht Reflexionskoeffizienten $r_{\rm k}$ berechnet, die als Grundlage für die Einstellung der Koeffizienten des LPC–Analysefilters für den aktuellen Rahmen dienen.
+
 
*Die Koeffizienten $r_{\rm k}$ können Werte zwischen ±1 annehmen. Schon geringe Änderungen der $r_{\rm k}$ am Rand ihres Wertesbereichs bewirken große Änderungen für die Sprachcodierung. Die acht Reflexionswerte $r_{\rm k}$ werden logarithmisch dargestellt  ⇒  '''LAR–Parameter''' (''Log Area Ratio''):
+
<br><br>Man erkennt aus diesen Bildern
+
*die kleinere Amplitude von&nbsp; $e_{\rm LPC}(n)$&nbsp; gegenüber&nbsp; $s(n)$,
*Anschließend werden diese acht LAR–Parameter entsprechend ihrer subjektiven Bedeutung durch unterschiedlich viele Bits quantisiert, codiert und zur Übertragung bereitgestellt. Die beiden ersten Parameter werden mit je 6 Bit, die beiden nächsten mit je 5 Bit, LAR(5) und LAR(6) mit je 4 Bit und die beiden letzten mit je 3 Bit dargestellt.
+
*den deutlich reduzierten Dynamikumfang, und
*Bei fehlerfreier Übertragung kann am Empfänger aus den acht LPC–Parametern (insgesamt 36 Bit) mit dem entsprechenden LPC–Synthesefilter das ursprüngliche Signal s(n) wieder vollständig rekonstruiert werden, wenn man von den unvermeidbaren zusätzlichen Quantisierungsfehlern durch die digitale Beschreibung der LAR-Koeffizienten absieht.
+
*das flachere Spektrum des verbleibenden Signals.}}
*Weiterhin wird mit Hilfe des LPC–Filters das Prädiktionsfehlersignal $e_{\rm LPC}(n)$ gewonnen. Dieses ist gleichzeitig das Eingangssignal für die nachfolgende Langzeitprädiktion. Das LPC–Filter ist nicht rekursiv und hat nur ein kurzes Gedächtnis von etwa einer Millisekunde.
+
 
 +
 
 +
== Long Term Prediction – Langzeitprädiktion== 
 +
<br>
 +
Bei der&nbsp; '''Long Term Prediction'''&nbsp; (LTP) wird die Eigenschaft des Sprachsignals ausgenutzt, dass es auch periodische Strukturen (stimmhafte Abschnitte) besitzt. Dieser Umstand wird dazu verwendet, um die im Signal vorhandene Redundanz zu reduzieren.
 +
[[Datei:P_ID1208__Bei_T_3_2_S4_v1.png|right|frame|Bausteine der GSM-Langzeitprädiktion (LTP)]]
 +
*Die Langzeitprädiktion (LTP–Analyse und –Filterung) wird viermal pro Sprachrahmen, also alle&nbsp; $5 \ \rm ms$&nbsp; durchgeführt.
 +
*Die vier Subblöcke bestehen aus jeweils $40$ Samples und werden mit&nbsp; $i = 1$, ... , $4$&nbsp; nummeriert.
 +
<br clear=all>
 +
Es folgt eine Kurzbeschreibung gemäß dem obigen LTP&ndash;Prinzipschaltbild – siehe&nbsp; [Kai05]<ref name ='Kai05'>Kaindl, M.: ''Kanalcodierung für Sprache und Daten in GSM-Systemen''. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 764, 2005.</ref>.
 +
 
 +
*Das Eingangssignal ist das Ausgangssignal&nbsp; $e_{\rm LPC}(n)$&nbsp; der Kurzzeitprädiktion. Die Signale nach der Segmentierung in vier Subblöcken werden mit&nbsp; $e_i(l)$&nbsp; bezeichnet, wobei jeweils&nbsp; $l = 1, 2$, ... , $40$&nbsp; gilt.
 +
 
 +
*Zu dieser Analyse wird die Kreuzkorrelationsfunktion&nbsp; $φ_{ee\hspace{0.03cm}',\hspace{0.05cm}i}(k)$&nbsp;  des aktuellen Subblocks&nbsp; $i$&nbsp; des LPC–Prädiktionsfehlersignals&nbsp; $e_i(l)$&nbsp; mit dem rekonstruierten LPC–Restsignal&nbsp; $e\hspace{0.03cm}'_i(l)$&nbsp; aus den drei vorherigen Teilrahmen berechnet. Das Gedächtnis dieses LTP–Prädiktors beträgt zwischen&nbsp; $5 \ \rm ms$&nbsp; und&nbsp; $15 \ \rm ms$&nbsp; und ist somit deutlich länger als das des LPC–Prädiktors&nbsp; $(1 \ \rm ms)$.
 +
* $e\hspace{0.03cm}'_i(l)$&nbsp; ist die Summe aus dem LTP–Filter–Ausgangssignal&nbsp; $y_i(l)$&nbsp; und dem Korrektursignal&nbsp; $e_{\rm RPE,\hspace{0.05cm}i}(l)$, das von der folgenden Komponente&nbsp; (''Regular Pulse Excitation'')&nbsp; für den&nbsp; $i$–ten Subblock bereitgestellt wird.
 +
*Der Wert von&nbsp; $k$, für den die Kreuzkorrelationsfunktion&nbsp; $φ_{ee\hspace{0.03cm}',\hspace{0.05cm}i}(k)$&nbsp; maximal wird, bestimmt die für jeden Subblock&nbsp; $i$&nbsp; optimale LTP–Verzögerung&nbsp; $N(i)$. Die Verzögerungen&nbsp; $N(1)$&nbsp; bis&nbsp; $N(4)$&nbsp; werden jeweils mit sieben Bit quantisiert und zur Übertragung bereitgestellt.
 +
*Der zu&nbsp; $N(i)$&nbsp; gehörige Verstärkungsfaktor&nbsp; $G(i)$&nbsp; – auch ''LTP–Gain''&nbsp; genannt – wird so bestimmt, dass der an der Stelle&nbsp; $N(i)$&nbsp; gefundene Subblock nach Multiplikation mit&nbsp; $G(i)$&nbsp; am besten zum aktuellen Teilrahmen&nbsp; $e_i(l)$&nbsp; passt. Die Verstärkungsfaktoren&nbsp; $G(1)$&nbsp; bis&nbsp; $G(4)$&nbsp; werden jeweils mit zwei Bit quantisiert und ergeben zusammen mit&nbsp; $N(1)$, ..., $N(4)$&nbsp; die&nbsp; $36$&nbsp; Bit für die acht LTP–Parameter.
 +
*Das Signal&nbsp; $y_i(l)$&nbsp; nach LTP–Analyse und –Filterung ist ein Schätzsignal für das LPC–Signal&nbsp; $e_i(l)$&nbsp; im&nbsp; $i$–ten Subblock. Die Differenz zwischen beiden ergibt das LTP–Restsignal&nbsp; $e_{\rm LTP,\hspace{0.05cm}i}(l)$, das an die nächste Funktionseinheit „RPE” weitergegeben wird.
 +
 
 +
 
 +
{{GraueBox|TEXT= 
 +
$\text{Beispiel 2:}$&nbsp;
 +
Die Grafik aus&nbsp; [Kai05]<ref name ='Kai05'>Kaindl, M.: ''Kanalcodierung für Sprache und Daten in GSM-Systemen''. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 764, 2005.</ref>&nbsp;  zeigt
 +
*oben das LPC–Prädiktionsfehlersignal&nbsp; $e_{\rm LPC}(n)$&nbsp; – gleichzeitig das LTP-Eingangssignal,
 +
*unten das Restfehlersignal&nbsp; $e_{\rm LTP}(n)$&nbsp; nach der Langzeitprädiktion.  
  
{{Beispiel}}
+
[[Datei:P_ID1209__Bei_T_3_2_S4b_v2.png|right|frame|LTP&ndash;Prädiktionsfehlersignal bei GSM (Zeit&ndash;Frequenzdarstellung)]]
Die Grafik aus <ref>Kaindl, M.: ''Kanalcodierung für Sprache und Daten in GSM-Systemen''. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 764, 2005.</ref> zeigt oben einen Ausschnitt des Sprachsignals $s(n)$ und dessen Zeit–Frequenzdarstellung. Unten ist das LPC–Prädiktionsfehlersignal $e_{\rm LPC}(n)$ dargestellt.
 
  
Man erkennt aus diesen Bildern
 
*die kleinere Amplitude von $e_{\rm LPC}(n)$ gegenüber $s(n)$,
 
*den deutlich reduzierten Dynamikumfang und
 
*das flachere Spektrum des verbleibenden Signals.
 
  
{{end}}
+
Es wird nur ein Subblock betrachtet. Deshalb wird hier für die diskrete Zeit bei LPC und LTP der gleiche Buchstabe&nbsp; $n$&nbsp; verwendet.
  
  
== Long Term Prediction – Langzeitprädiktion== 
+
Man erkennt aus diesen Darstellungen
 +
*die kleineren Amplituden von&nbsp; $e_{\rm LTP}(n)$&nbsp; gegenüber&nbsp; $e_{\rm LPC}(n)$&nbsp; und
 +
*den deutlich reduzierten Dynamikumfang von&nbsp; $e_{\rm LTP}(n)$,
 +
*besonders in periodischen, also stimmhaften Abschnitten.
  
Bei der '''Long Term Prediction''' (LTP) wird die Eigenschaft des Sprachsignals ausgenutzt, dass es auch periodische Strukturen (stimmhafte Abschnitte) besitzt. Dieser Umstand wird dazu verwendet, um die im Signal vorhandene Redundanz zu reduzieren. Die Langzeitprädiktion (LTP–Analyse und –Filterung) wird viermal pro Sprachrahmen, also alle 5 ms durchgeführt. Die Subblöcke bestehen aus jeweils 40 Abtastwerten und werden mit i = 1, ..., 4 nummeriert.
 
  
Es folgt eine Kurzbeschreibung der Langzeitprädiktion gemäß dem obigen Prinzipschaltbild – siehe <ref>Kaindl, M.: ''Kanalcodierung für Sprache und Daten in GSM-Systemen''. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 764, 2005.</ref>. Das Eingangssignal ist das Ausgangssignal $e_{\rm LPC}(n)$ der Kurzzeitprädiktion. Die Signale nach der Segmentierung in vier Subblöcken werden mit $e_i(l)$ bezeichnet, wobei jeweils $l$ = 1, 2, ... , 40 gilt.
+
Auch im Frequenzbereich zeigt sich eine Reduktion des Prädiktionsfehlersignals aufgrund der Langzeitprädiktion.}}
*Zu dieser Analyse wird die Kreuzkorrelationsfunktion $φ_{ee',i}(k)$ des aktuellen Subblocks $i$ des LPC–Prädiktionsfehlersignals $e_i(l)$ mit dem rekonstruierten LPC–Restsignal $e'_i(l)$ aus den drei vorherigen Teilrahmen berechnet. Das Gedächtnis dieses LTP–Prädiktors beträgt zwischen 5 und 15 ms und ist somit deutlich länger als das des LPC–Prädiktors (1 ms).
 
* $e'_i(l)$ ist die Summe aus dem LTP–Filter–Ausgangssignal $y_i(l)$ und dem Korrektursignal $e_{\rm RPE,i}(l)$, das von der folgenden Komponente (''Regular Pulse Excitation'') für den $i$–ten Subblock bereitgestellt wird.
 
*Der Wert von $k$, für den die Kreuzkorrelationsfunktion $φ_{ee',i}(k)$ maximal wird, bestimmt die für jeden Subblock $i$ optimale LTP–Verzögerung $N(i)$. Die Verzögerungen $N(1)$ bis $N(4)$ werden jeweils mit 7 Bit quantisiert und zur Übertragung bereitgestellt.
 
*Der zu $N(i)$ gehörige Verstärkungsfaktor $G(i)$ – auch LTP–Gain genannt – wird so bestimmt, dass der an der Stelle $N(i)$ gefundene Subblock nach Multiplikation mit $G(i)$ am besten zum aktuellen Teilrahmen $e_i(l)$ passt. Die Verstärkungsfaktoren $G(1)$ bis $G(4)$ werden jeweils mit 2 Bit quantisiert und ergeben zusammen mit $N(1)$, ..., $N(4)$ die 36 Bit für die acht LTP–Parameter.
 
*Das Signal $y_i(l)$ nach LTP–Analyse und –Filterung ist ein Schätzsignal für das LPC–Signal $e_i(l)$ im $i$–ten Subblock. Die Differenz zwischen beiden ergibt das LTP–Restsignal $e_{\rm LTP,i}(l)$, das an die nächste Funktionseinheit „RPE” weitergegeben wird.
 
  
 
 
 
 
 
==Regular Pulse Excitation – RPE–Codierung ==  
 
==Regular Pulse Excitation – RPE–Codierung ==  
 +
<br>
 +
Das Signal nach LPC– und LTP–Filterung ist bereits redundanz&ndash;reduziert, das heißt, es benötigt eine geringere Bitrate als das abgetastete Sprachsignal&nbsp; $s(n)$.
  
Das Signal nach LPC– und LTP–Filterung ist bereits redundanzreduziert, das heißt, es benötigt eine geringere Bitrate als das abgetastete Sprachsignal $s(n)$. Nun wird in der nachfolgenden Funktionseinheit '''Regular Pulse Excitation''' (RPE) die Irrelevanz weiter verringert. Das bedeutet: Signalanteile, die für den subjektiven Höreindruck weniger wichtig sind, werden entfernt.
+
[[Datei:P_ID1210__Bei_T_3_2_S5_v2.png|right|frame|Bausteine der Regular Pulse Excitation (RPE) bei GSM]]
 +
*Nun wird in der nachfolgenden Funktionseinheit&nbsp; '''Regular Pulse Excitation'''&nbsp; (RPE) die Irrelevanz weiter verringert.
 +
*Das bedeutet: &nbsp; Signalanteile, die für den subjektiven Höreindruck weniger wichtig sind, werden entfernt.
 +
<br clear=all>
 +
Zu diesem Blockschaltbild ist anzumerken:
 +
*Die RPE–Codierung wird jeweils für&nbsp; $5 \ \rm ms$–Teilrahmen&nbsp; $(40$ Abtastwerte$)$&nbsp; durchgeführt. Dies ist hier durch den Index&nbsp; $i$&nbsp; im Eingangssignal&nbsp; $e_{\rm LTP},\hspace{0.03cm} i(l)$&nbsp; angedeutet, wobei mit&nbsp; $i = 1, 2, 3, 4$&nbsp; wieder die einzelnen Subblöcke durchnummeriert sind.
 +
*Im ersten Schritt wird das LTP–Prädiktionsfehlersignal&nbsp; $e_{{\rm LTP}, \hspace{0.03cm}i}(l)$&nbsp; durch ein Tiefpassfilter auf etwa ein Drittel der ursprünglichen Bandbreite – also auf&nbsp; $1.3 \ \rm  kHz$&nbsp; – bandbegrenzt. Dies ermöglicht in einem zweiten Schritt eine Reduktion der Abtastrate um ca. den Faktor&nbsp; $3$.
 +
*So wird das Ausgangssignal&nbsp; $x_i(l)$&nbsp; mit&nbsp; $l = 1$, ... , $40$&nbsp; durch Unterabtastung in vier Teilfolgen&nbsp; $x_{m, \hspace{0.03cm} i}(j)$&nbsp; mit&nbsp; $m = 1$, ... , $4$&nbsp; und&nbsp; $j = 1$, ... , $13$&nbsp; zerlegt. Diese Aufspaltung ist in der Grafik verdeutlicht.
 +
*Die Teilfolgen&nbsp; $x_{m,\hspace{0.03cm} i}(j)$&nbsp; beinhalten folgende Abtastwerte des Signals&nbsp; $x_i(l)$:
 +
**$m = 1$:  &nbsp;    $l = 1, \ 4, \ 7$, ... , $34, \ 37$ (rote Punkte),
 +
**$m = 2$:  &nbsp;  $l = 2, \ 5, \ 8$, ... , $35, \ 38$ (grüne Punkte),
 +
**$m = 3$:  &nbsp;  $l = 3, \ 6, \ 9$, ... , $36, \ 39$ (blaue Punkte),
 +
**$m = 4$:  &nbsp;  $l = 4, \ 7, \ 10$, ... , $37, \ 40$ $($ebenfalls rot, weitgehend identisch mit&nbsp; $m = 1)$.
  
Zum obigen Blockschaltbild ist Folgendes anzumerken:
+
 
*Die RPE–Codierung wird jeweils für 5 ms–Teilrahmen (40 Abtastwerte) durchgeführt. Dies ist hier durch den Index $„i”$ im Eingangssignal $e_{\rm LTP}, i(l)$ angedeutet, wobei mit $i$ = 1, 2, 3, 4 wieder die einzelnen Subblöcke durchnummeriert sind.
+
*Für jeden Subblock&nbsp; $i$&nbsp; wird im Block&nbsp; ''RPE Grid Selection''&nbsp; die Teilfolge&nbsp; $x_{m,\hspace{0.03cm}i}(j)$&nbsp; mit der höchsten Energie ausgewählt und der Index&nbsp; $M_i$&nbsp; der&nbsp; ''optimalen Folge''&nbsp; mit zwei Bit quantisiert und als&nbsp; $\mathbf{M}(i)$ &nbsp; übertragen. Insgesamt benötigen die vier RPE–Teilfolgen–Indizes&nbsp; $\mathbf{M}(1)$, ... ,&nbsp; $\mathbf{M}(4)$&nbsp; somit acht Bit.
*Im ersten Schritt wird das LTP–Prädiktionsfehlersignal $e_{{\rm LTP}, i}(l)$ durch ein Tiefpassfilter auf etwa ein Drittel der ursprünglichen Bandbreite – also auf 1.3 kHz – bandbegrenzt. Dies ermöglicht in einem zweiten Schritt eine Reduktion der Abtastrate um ca. den Faktor 3.
+
*Von der optimalen Teilfolge für den Subblock&nbsp; $i$&nbsp; $($mit Index&nbsp; $M_i)$&nbsp; wird das&nbsp; ''Betragsmaximum''&nbsp; $x_{\rm max,\hspace{0.03cm}i}$&nbsp; ermittelt, dieser Wert mit sechs Bit logarithmisch quantisiert und als&nbsp; $\mathbf{x_{\rm max}}(i)$&nbsp; zur Übertragung bereit gestellt. Insgesamt benötigen die vier RPE–Blockamplituden&nbsp; $24$&nbsp; Bit.
*So wird das Ausgangssignal $x_i(l)$ mit $l$ = 1, ... , 40 durch Unterabtastung in vier Teilfolgen $x_{m, i}(j)$ mit m = 1, ... , 4 und j = 1, ... , 13 zerlegt. Diese Aufspaltung ist in der Grafik verdeutlicht.
+
*Zusätzlich wird für jeden Subblock&nbsp; $i$&nbsp; die optimale Teilfolge auf&nbsp; $x_{{\rm max},\hspace{0.03cm}i}$&nbsp; normiert. Die so erhaltenen&nbsp; $13$&nbsp; Abtastwerte werden anschließend mit jeweils drei Bit quantisiert und als&nbsp; $\mathbf{X}_j(i)$&nbsp; codiert übertragen. Die&nbsp; $4 · 13 · 3 = 156$&nbsp; Bit beschreiben den so genannten&nbsp; '''RPE–Pulse'''.
*Die Teilfolgen $x_{m, i}(j)$ beinhalten folgende Abtastwerte des Signals $x_i(l)$:
+
*Anschließend werden diese RPE–Parameter lokal wieder decodiert und als Signal&nbsp; $e_{{\rm RPE},\hspace{0.03cm}i}(l)$&nbsp; an das LTP–Synthesefilter im vorherigen Subblock zurückgeführt, woraus zusammen mit dem LTP–Schätzsignal&nbsp; $y_i(l)$&nbsp; das Signal&nbsp; $e\hspace{0.03cm}'_i(l)$&nbsp; erzeugt wird (siehe&nbsp; [[Beispiele_von_Nachrichtensystemen/Sprachcodierung#Long_Term_Prediction_.E2.80.93_Langzeitpr.C3.A4diktion|LTP&ndash;Grafik]]).
$m$ = 1:    $l$ = 1, 4, 7, ... , 34, 37 (rote Punkte),
+
*Durch das Zwischenfügen von jeweils zwei Nullwerten zwischen zwei übertragenen RPE–Abtastwerten wird näherungsweise das Basisband von Null bis&nbsp; $1300 \ \rm Hz$&nbsp; in den Bereich von&nbsp; $1300 \ \rm Hz$&nbsp; bis&nbsp; $2600 \ \rm Hz$&nbsp; in Kehrlage und von&nbsp; $2600 \ \rm Hz$&nbsp; bis&nbsp; $3900 \ \rm Hz$&nbsp; in Normallage gefaltet. Dies ist der Grund für die notwendige Gleichsignalbefreiung in der Vorverarbeitung. Sonst entstünde durch die beschriebene Faltungsoperation ein störender Pfeifton bei&nbsp; $2.6 \ \rm kHz$.
$m$ = 2:    $l$ = 2, 5, 8, ... , 35, 38 (grüne Punkte),
 
$m$ = 3:    $l$ = 3, 6, 9, ... , 36, 39 (blaue Punkte),
 
$m$ = 4:    $l$ = 4, 7, 10, ... , 37, 40 (ebenfalls rot, weitgehend identisch mit $m$ = 1).
 
*Für jeden Subblock $i$ wird im Block ''RPE Grid Selection'' diejenige Teilfolge $x_{m,i}(j)$ mit der höchsten Energie ausgewählt und der Index $M_i$ der '''optimalen Folge''' mit 2 Bit quantisiert und als $\mathbf{M(i)}$ übertragen. Insgesamt benötigen die vier RPE–Teilfolgen–Indizes $\mathbf{M(1)}$ ... $\mathbf{M(4)}$ somit 8 Bit.
 
*Von der optimalen Teilfolge für den Subblock $i$ (mit Index $M_i$) wird das '''Betragsmaximum''' $x_{\rm max,i}$ ermittelt, dieser Wert mit 6 Bit logarithmisch quantisiert und als $\mathbf{x_{\rm max}(i)}$ zur Übertragung bereit gestellt. Insgesamt benötigen die vier RPE–Blockamplituden 24 Bit.
 
*Zusätzlich wird für jeden Subblock $i$ die optimale Teilfolge auf $x_{{\rm max},i}$ normiert. Die so erhaltenen 13 Abtastwerte werden anschließend mit jeweils 3 Bit quantisiert und als $\mathbf{X_j(i)}$ codiert übertragen. Die 4 · 13 · 3 = 156 Bit beschreiben den so genannten RPE–Pulse.
 
*Anschließend werden diese RPE–Parameter lokal wieder decodiert und als Signal $e_{{\rm RPE},i}(l)$ an das LTP–Synthesefilter im vorherigen Subblock zurückgeführt, woraus zusammen mit dem LTP–Schätzsignal $y_i(l)$ das Signal $e'_i(l)$ erzeugt wird (siehe Grafik auf der Seite 4a).
 
*Durch das Zwischenfügen von jeweils zwei Nullwerten zwischen zwei übertragenen RPE–Abtastwerten wird näherungsweise das Basisband von 0 bis 1300 Hz in den Bereich von 1300 bis 2600 Hz in Kehrlage und von 2600 bis 3900 Hz in Normallage gefaltet.
 
*Dies ist der Grund für die notwendige Gleichsignalbefreiung in der Vorverarbeitung. Sonst entstünde durch die beschriebene Faltungsoperation ein störender Pfeifton bei 2.6 kHz.
 
 
 
 
 
  
 
==Halfrate Vocoder und Enhanced Fullrate Codec== 
 
==Halfrate Vocoder und Enhanced Fullrate Codec== 
 
+
<br>
 
Nach der Standardisierung des Vollraten–Codecs im Jahre 1991 ging es in der Folgezeit um die Entwicklung neuer Sprachcodecs mit zwei spezifischen Zielen, nämlich um
 
Nach der Standardisierung des Vollraten–Codecs im Jahre 1991 ging es in der Folgezeit um die Entwicklung neuer Sprachcodecs mit zwei spezifischen Zielen, nämlich um
 
*die bessere Ausnutzung der in GSM–Systemen verfügbaren Bandbreite, und
 
*die bessere Ausnutzung der in GSM–Systemen verfügbaren Bandbreite, und
 
*die Verbesserung der Sprachqualität.
 
*die Verbesserung der Sprachqualität.
 +
  
 
Diese Entwicklung kann wie folgt zusammengefasst werden:
 
Diese Entwicklung kann wie folgt zusammengefasst werden:
*Bis 1994 wurde mit dem '''Halfrate Vocoder''' (deutsch: Halbraten-Codec) ein neues Verfahren entwickelt. Dieser hat eine Datenrate von 5.6 kbit/s und bietet so die Möglichkeit, Sprache in einem halben Verkehrskanal bei annähernd gleicher Qualität zu übertragen. Dadurch können auf einem Zeitschlitz zwei Gespräche gleichzeitig abgewickelt werden. Der Halbraten–Codec wurde allerdings von den Mobilfunkbetreibern nur dann eingesetzt, wenn eine Funkzelle überlastet war. Heute spielt der Halfrate–Codec keine Rolle mehr.
+
*Bis 1994 wurde mit dem&nbsp; '''Halfrate Vocoder'''&nbsp; (deutsch:&nbsp; Halbraten-Codec)&nbsp; ein neues Verfahren entwickelt. Dieser hat eine Datenrate von&nbsp; $5.6 \ \rm kbit/s$&nbsp; und bietet so die Möglichkeit, Sprache in einem halben Verkehrskanal bei annähernd gleicher Qualität zu übertragen. Dadurch können auf einem Zeitschlitz zwei Gespräche gleichzeitig abgewickelt werden. Der Halbraten–Codec wurde allerdings von den Mobilfunkbetreibern nur dann eingesetzt, wenn eine Funkzelle überlastet war. Inzwischen spielt der Halfrate–Codec keine Rolle mehr.
*Um die GSM–Sprachqualität weiter zu verbessern, wurde 1995 der '''Enhanced Fullrate Codec''' (EFR–Codec) eingeführt. Dieses Sprachcodierverfahren – ursprünglich für das US–amerikanische DCS1900–Netz entwickelt – ist ein Vollraten–Codec mit einer Datenrate von 12.2 kbit/s. Die Nutzung dieses Codecs muss natürlich vom Mobiltelefon unterstützt werden.
+
*Um die Sprachqualität weiter zu verbessern, wurde 1995 der&nbsp; '''Enhanced Fullrate Codec'''&nbsp; (EFR–Codec) eingeführt. Dieses Sprachcodierverfahren – ursprünglich für das US–amerikanische DCS1900–Netz entwickelt – ist ein Vollraten–Codec mit der (etwas niedrigeren) Datenrate&nbsp; $12.2 \ \rm kbit/s$. Die Nutzung dieses Codecs muss natürlich vom Mobiltelefon unterstützt werden.
*Statt der RPE–LTP–Komprimierung (Regular Pulse Excitation – Long Term Prediction) beim herkömmlichen Vollraten–Codec wird bei dieser Weiterentwicklung '''Algebraic Code Excitation Linear Prediction''' (ACELP) angewandt, was eine deutlich bessere Sprachqualität und eine ebenfalls verbesserte Fehlererkennung und –verschleierung bietet. Nähere Informationen darüber finden Sie auf der übernächsten Seite.
+
*Statt der RPE–LTP–Komprimierung (''Regular Pulse Excitation – Long Term Prediction'') beim herkömmlichen Vollraten–Codec wird bei dieser Weiterentwicklung zudem&nbsp; '''Algebraic Code Excitation Linear Prediction'''&nbsp; (ACELP) angewandt, was eine deutlich bessere Sprachqualität und eine ebenfalls verbesserte Fehlererkennung und –verschleierung bietet. Nähere Informationen darüber finden Sie auf der übernächsten Seite.
  
 
   
 
   
 
==Adaptive Multi–Rate Codec==   
 
==Adaptive Multi–Rate Codec==   
 +
<br>
 +
Die bisher beschriebenen GSM–Codecs arbeiten hinsichtlich Sprach– und Kanalcodierung unabhängig von den Kanalbedingungen und der Netzauslastung stets mit einer festen Datenrate. 1997 wurde ein neues adaptives Sprachcodierverfahren für Mobilfunksysteme entwickelt und kurz darauf durch das ''European Telecommunications Standards Institute'' (ETSI) nach Vorschlägen der Firmen Ericsson, Nokia und Siemens standardisiert. Bei den Forschungsarbeiten zum Systemvorschlag der Siemens AG war der Lehrstuhl für Nachrichtentechnik der TU München, der dieses Lerntutorial $\rm LNTwww$ zur Verfügung stellt, entscheidend beteiligt. Näheres finden Sie unter&nbsp; [Hin02]<ref name ='Hin02'>Hindelang, T.: ''Source-Controlled Channel Decoding and Decoding for Mobile Communications''. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 695, 2002.</ref>.
  
Die bisher beschriebenen GSM–Codecs arbeiten hinsichtlich Sprach– und Kanalcodierung unabhängig von den Kanalbedingungen und der Netzauslastung stets mit einer festen Datenrate. 1997 wurde ein neues adaptives Sprachcodierverfahren für Mobilfunksysteme entwickelt und kurz darauf durch das ''European Telecommunications Standards Institute'' (ETSI) nach Vorschlägen der Firmen Ericsson, Nokia und Siemens standardisiert. Bei den Forschungsarbeiten zum Systemvorschlag der Siemens AG war der Lehrstuhl für Nachrichtentechnik der TU München, der dieses Lerntutorial ''LNTwww'' zur Verfügung stellt, entscheidend beteiligt. Näheres hierzu finden Sie unter <ref>Hindelang, T.: ''Source-Controlled Channel Decoding and Decoding for Mobile Communications''. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 695, 2002.</ref>.
+
Der&nbsp; '''Adaptive Multi–Rate Codec'''&nbsp; – abgekürzt AMR – hat folgende Eigenschaften:
 
 
Der '''Adaptive Multi–Rate Codec''' – abgekürzt AMR – hat folgende Eigenschaften:
 
 
*Er passt sich flexibel an die aktuellen Kanalgegebenheiten und an die Netzauslastung an, indem er entweder im Vollraten–Modus (höhere Sprachqualität) oder im Halbraten–Modus (geringere Datenrate) arbeitet. Daneben gibt es noch etliche Zwischenstufen.
 
*Er passt sich flexibel an die aktuellen Kanalgegebenheiten und an die Netzauslastung an, indem er entweder im Vollraten–Modus (höhere Sprachqualität) oder im Halbraten–Modus (geringere Datenrate) arbeitet. Daneben gibt es noch etliche Zwischenstufen.
*Er bietet sowohl beim Vollraten– als auch beim Halbratenverkehrskanal eine verbesserte Sprachqualität, was auf die flexibel handhabbare Aufteilung der zur Verfügung stehenden Brutto–Kanalrate zwischen Sprach– und Kanalcodierung zurückzuführen ist.
+
*Er bietet sowohl beim Vollraten– als auch beim Halbratenverkehrskanal eine verbesserte Sprachqualität, was auf die flexibel handhabbare Aufteilung der zur Verfügung stehenden Brutto–Kanaldatenrate zwischen Sprach– und Kanalcodierung zurückzuführen ist.
 
*Er besitzt eine größere Robustheit gegenüber Kanalfehlern als die Codecs aus der Frühzeit der Mobilfunktechnik. Dies gilt besonders beim Einsatz im Vollraten–Verkehrskanal.
 
*Er besitzt eine größere Robustheit gegenüber Kanalfehlern als die Codecs aus der Frühzeit der Mobilfunktechnik. Dies gilt besonders beim Einsatz im Vollraten–Verkehrskanal.
  
Der AMR–Codec stellt '''acht verschiedene Modi''' mit Datenraten zwischen 12.2 kbit/s (244 Bit pro Rahmen von 20 ms) und 4.75 kbit/s (95 Bit pro Rahmen) zur Verfügung.
 
  
Drei Modi spielen eine herausgehobene Rolle, nämlich
+
Der AMR–Codec stellt&nbsp; '''acht verschiedene Modi'''&nbsp; mit Datenraten zwischen&nbsp; $12.2 \ \rm kbit/s$&nbsp; $(244$&nbsp; Bit pro Rahmen von&nbsp; $20  \ \rm ms)$&nbsp; und&nbsp; $4.75  \ \rm kbit/s$&nbsp; $(95$ Bit pro Rahmen$)$ zur Verfügung. Drei Modi spielen eine herausgehobene Rolle, nämlich
*12.2 kbit/s – der verbesserte GSM–Vollraten–Codec (EFR-Codec),
+
* $12.2 \ \rm kbit/s$&nbsp; – der verbesserte GSM–Vollraten–Codec (EFR-Codec),
*7.4 kbit/s – die Sprachkompression gemäß dem US–amerikanischen Standard IS–641, und
+
* $7.4 \ \rm kbit/s$&nbsp; – die Sprachkompression gemäß dem US–amerikanischen Standard IS–641, und
*6.7 kbit/s – die EFR–Sprachübertragung des japanischen PDC–Mobilfunkstandards.
+
* $6.7 \ \rm kbit/s$&nbsp; – die EFR–Sprachübertragung des japanischen PDC–Mobilfunkstandards.
 +
 
  
Die nachfolgenden Beschreibungen beziehen sich meist auf den Modus mit12.2 kbit/s.
+
Die folgenden Beschreibungen beziehen sich meist auf den Modus mit&nbsp; $12.2 \ \rm kbit/s$.
  
Alle Vorgänger–Verfahren des AMR basieren auf der Minimierung des Prädiktionsfehlersignals durch eine Vorwärtsprädiktion in den festen Teilschritten LPC, LTP und RPE. Im Gegensatz dazu verwendet der AMR-Codec eine Rückwärtsprädiktion gemäß dem Prinzip „Analyse durch Synthese”. Dieses Codierungsprinzip bezeichnet man auch als '''Algebraic Code Excited Linear Prediction''' (ACELP).
+
[[Datei:P_ID3113__Bei_T_3_3_S8c_v1.png|right|frame|Zusammenstellung der AMR&ndash;Parameter]]
  
In der Tabelle sind die Parameter des Adaptive Multi–Rate Codecs zusammengestellt, die mit 244 Bit pro 20 ms (Modus 12.2 kbit/s) bzw. 95 Bit (Modus 4.75 kbit/s) codiert werden.
+
*Alle Vorgänger–Verfahren des AMR basieren auf der Minimierung des Prädiktionsfehlersignals durch eine Vorwärtsprädiktion in den Teilschritten LPC, LTP und RPE.  
 +
*Im Gegensatz dazu verwendet der AMR-Codec eine Rückwärtsprädiktion gemäß dem Prinzip „Analyse durch Synthese”. Dieses Codierungsprinzip bezeichnet man auch als&nbsp; '''Algebraic Code Excited Linear Prediction'''&nbsp; (ACELP).
  
+
 
 +
In der Tabelle sind die Parameter des Adaptive Multi–Rate Codecs für zwei Modi zusammengestellt:
 +
*&nbsp; $244$&nbsp; Bit pro&nbsp; $20 \ \rm  ms$ &nbsp; &rArr; &nbsp;  Modus&nbsp; $12.2 \ \rm kbit/s$,
 +
*&nbsp; $95$&nbsp; Bit pro&nbsp; $20 \ \rm  ms$ &nbsp; &rArr; &nbsp; Modus&nbsp; $4.75 \ \rm kbit/s$.
 +
<br clear=all>
 
== Algebraic Code Excited Linear Prediction== 
 
== Algebraic Code Excited Linear Prediction== 
 +
<br>
 +
Die Grafik zeigt den auf&nbsp; '''ACELP'''&nbsp; basierenden&nbsp; '''AMR-Codec'''. Es folgt eine kurze Beschreibung des Prinzips. Eine detaillierte Beschreibung finden Sie zum Beispiel in&nbsp; [Kai05]<ref name ='Kai05'>Kaindl, M.: ''Kanalcodierung für Sprache und Daten in GSM-Systemen''. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 764, 2005.</ref>.
  
Die Grafik zeigt den auf '''ACELP''' basierenden '''AMR-Codec'''. Eine detaillierte Beschreibung finden Sie zum Beispiel in <ref>Kaindl, M.: ''Kanalcodierung für Sprache und Daten in GSM-Systemen''. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 764, 2005.</ref>.
+
[[Datei:P_ID1212__Bei_T_3_2_S8_v1.png|center|frame|Algebraic Code Excited Linear Prediction &ndash; Prinzip]]
  
Hier eine kurze Beschreibung des AMR–Prinzips:
+
*Das Sprachsignal&nbsp; $s(n)$, wie beim GSM–Vollraten–Sprachcodec mit&nbsp; $8 \ \rm kHz$&nbsp; abgetastet und mit&nbsp; $13$&nbsp; Bit quantisiert, wird vor der weiteren Verarbeitung in Rahmen&nbsp; $s_{\rm R}(n)$&nbsp; mit&nbsp; $n = 1$, ... , $160$&nbsp; bzw. in Subblöcke&nbsp; $s_i(l)$&nbsp; mit&nbsp; $i = 1, 2, 3, 4$&nbsp; und&nbsp; $l = 1$, ... , $40$&nbsp; segmentiert.
*Das Sprachsignal $s(n)$, wie beim GSM–Vollraten–Sprachcodec mit 8 kHz abgetastet und mit 13 Bit quantisiert, wird vor der weiteren Verarbeitung in Rahmen $s_{\rm R}(n)$ mit $n$ = 1, ... , 160 bzw. in Subblöcke $s_i(l)$ mit $i$ = 1, 2, 3, 4 und $l$ = 1, ... , 40 segmentiert.
+
*Die Berechnung der LPC–Koeffizienten erfolgt im rot hinterlegten Block rahmenweise alle&nbsp; $20 \ \rm ms$&nbsp; entsprechend&nbsp; $160$&nbsp; Abtastwerten, da innerhalb dieser kurzen Zeitspanne die spektrale Einhüllende des Sprachsignal&nbsp; $s_{\rm R}(n)$&nbsp; als konstant angesehen werden kann.
*Die Berechnung der LPC–Koeffizienten erfolgt im rot hinterlegten Block rahmenweise alle 20 ms entsprechend 160 Abtastwerten, da innerhalb dieser kurzen Zeitspanne die spektrale Einhüllende des Sprachsignal $s_{\rm R}(n)$ als konstant angesehen werden kann.
+
*Zur LPC–Analyse wird meist ein Filter&nbsp; $A(z)$&nbsp; der Ordnung&nbsp; $10$&nbsp; gewählt. Beim höchstratigen Modus mit&nbsp; $12.2 \ \rm kbit/s$&nbsp; werden die aktuellen Koeffizienten&nbsp; $a_k \ ( k = 1$, ... , $10)$&nbsp; der Kurzzeitprädiktion alle&nbsp; $10\ \rm  ms$&nbsp; quantisiert, codiert und beim gelb hinterlegten Punkt '''1''' zur Übertragung bereitgestellt.
*Zur LPC–Analyse wird meist ein Filter $A(z)$ der Ordnung 10 gewählt. Beim höchstratigen Modus mit 12.2 kbit/s werden die aktuellen Filterkoeffizienten $a_k$ ( $k$ = 1, ... , 10 ) der Kurzzeitprädiktion alle 10 ms quantisiert, codiert und beim gelb hinterlegten Punkt 1 zur Übertragung bereitgestellt.
+
*Die weiteren Schritte des AMR werden alle&nbsp; $5 \ \rm ms$&nbsp; entsprechend den&nbsp; $40$&nbsp; Abtastwerten der Signale&nbsp; $s_i(l)$&nbsp; durchgeführt. Die Langzeitprädiktion (LTP) – im Bild blau umrandet – ist hier als adaptives Codebuch realisiert, in dem die Abtastwerte der vorangegangenen Subblöcke eingetragen sind.
*Die weiteren Schritte des AMR werden alle 5 ms entsprechend den 40 Abtastwerten der Signale $s_i(l)$ durchgeführt. Die Langzeitprädiktion (LTP) – im Bild blau umrandet – ist hier als adaptives Codebuch realisiert, in dem die Abtastwerte der vorangegangenen Subblöcke eingetragen sind.
+
*Für die Langzeitprädiktion (LTP) wird zunächst die Verstärkung&nbsp; $G_{\rm FCB}$&nbsp; für das&nbsp; ''Fixed Code Book''&nbsp; (FCB) zu Null gesetzt, so dass eine Folge von&nbsp; $40$&nbsp; Samples des adaptiven Codebuchs am Eingang&nbsp; $u_i(l)$&nbsp; des durch die LPC festgelegten Sprachtraktfilters&nbsp; $A(z)^{–1}$&nbsp; anliegen. Der Index&nbsp; $i$&nbsp; bezeichnet den betrachteten Subblock.
*Für die Langzeitprädiktion (LTP) wird zunächst die FCB–Verstärkung $G_{\rm FCB}$ zu Null gesetzt, so dass eine Folge von 40 Samples des adaptiven Codebuchs am Eingang $u_i(l)$ des durch die LPC festgelegten Sprachtraktfilters $A(z)^{–1}$ anliegen. Der Index $i$ bezeichnet den betrachteten Subblock.
+
*Durch Variation der beiden LTP–Parameter&nbsp; $N_{{\rm LTP},\hspace{0.05cm}i}$&nbsp; und&nbsp; $G_{{\rm LTP},\hspace{0.05cm}i}$&nbsp; soll für diesen&nbsp; $i$–ten Subblock erreicht werden, dass der quadratische Mittelwert – also die mittlere Leistung – des gewichteten Fehlersignals&nbsp; $w_i(l)$&nbsp; minimal wird.
*Durch Variation der beiden LTP–Parameter $N_{{\rm LTP},i}$ und $G_{{\rm LTP},i}$ soll für diesen $i$–ten Subblock erreicht werden, dass der quadratische Mittelwert – also die mittlere Leistung – des gewichteten Fehlersignals $w_i(l)$ minimal wird.
+
*Das Fehlersignal&nbsp; $w_i(l)$&nbsp; ist gleich der Differenz zwischen dem aktuellen Sprachrahmen&nbsp; $s_i(l)$&nbsp; und dem Ausgangssignal&nbsp; $y_i(l)$&nbsp; des so genannten Sprachtraktfilters bei Anregung mit&nbsp; $u_i(l)$, unter Berücksichtigung des Wichtungsfilters&nbsp; $W(z)$&nbsp; zur Anpassung an die Spektraleigenschaften des menschlichen Gehörs.
*Das Fehlersignal $w_i(l)$ ist gleich der Differenz zwischen dem aktuellen Sprachrahmen $s_i(l)$ und dem Ausgangssignal $y_i(l)$ des sog. Sprachtraktfilters bei Anregung mit $u_i(l)$, unter Berücksichtigung des Wichtungsfilters $W(z)$ zur Anpassung an die Spektraleigenschaften des menschlichen Gehörs.
+
*In anderen Worten: &nbsp; $W(z)$&nbsp; entfernt solche spektralen Anteile im Signal&nbsp; $e_i(l)$, die von einem „durchschnittlichen” Ohr nicht wahrgenommen werden. Beim Modus&nbsp; $12.2 \ \rm kbit/s$&nbsp; verwendet man&nbsp; $W(z) = A(z/γ_1)/A(z/γ_2)$&nbsp; mit konstanten Faktoren&nbsp; $γ_1 = 0.9$&nbsp; und&nbsp; $γ_2 = 0.6$.
*In anderen Worten: $W(z)$ entfernt solche spektralen Anteile im Signal $e_i(l)$, die von einem „durchschnittlichen” Ohr nicht wahrgenommen werden. Beim Modus für 12.2 kbit/s verwendet man $W(z) = A(z/γ_1)/A(z/γ_2)$ mit konstanten Faktoren $γ_1$ = 0.9 und $γ_2$ = 0.6.
+
*Für jeden Subblock kennzeichnet&nbsp; $N_{{\rm LTP},\hspace{0.05cm}i}$&nbsp; die bestmögliche LTP–Verzögerung, die zusammen mit der LTP–Verstärkung&nbsp; $G_{{\rm LTP},\hspace{0.05cm}i}$&nbsp; nach Mittelung bezüglich&nbsp; $l = 1$, ... , $40$&nbsp; den quadratischen Fehler&nbsp; $\text{E}[w_i(l)^2]$&nbsp; minimiert. Gestrichelte Linien kennzeichnen Steuerleitungen zur iterativen Optimierung.
*Für jeden Subblock kennzeichnet $N_{{\rm LTP},i}$ die bestmögliche LTP–Verzögerung, die zusammen mit der LTP–Verstärkung $G_{{\rm LTP},i}$ nach Mittelung bezüglich $l$ = 1, ... , 40 den quadratischen Fehler $\text{E}[w_i(l)^2]$ minimiert. Gestrichelte Linien kennzeichnen Steuerleitungen zur iterativen Optimierung.
+
*Man bezeichnet die beschriebene Vorgehensweise als&nbsp; '''Analyse durch Synthese'''. Nach einer ausreichend großen Anzahl an Iterationen wird der Subblock&nbsp; $u_i(l)$&nbsp; in das adaptive Codebuch aufgenommen. Die ermittelten LTP–Parameter&nbsp; $N_{{\rm LTP},\hspace{0.05cm}i}$&nbsp; und&nbsp; $G_{{\rm LTP},\hspace{0.05cm}i}$&nbsp; werden codiert und zur Übertragung bereitgestellt.
*Man bezeichnet die beschriebene Vorgehensweise als '''Analyse durch Synthese'''. Nach einer ausreichend großen Anzahl an Iterationen wird der Subblock ui(l) in das adaptive Codebuch aufgenommen. Die ermittelten LTP–Parameter NLTP,i$N_{{\rm LTP},i}$ und $G_{{\rm LTP},i}$ werden codiert und zur Übertragung bereitgestellt.
 
  
Nach der Ermittlung der besten adaptiven Anregung erfolgt die Suche nach dem besten Eintrag im festen Codebuch (''Fixed Code Book'', FCB). Dieser liefert die wichtigste Information über das Sprachsignal. Zum Beispiel werden beim 12.2 kbit/s–Modus hieraus pro Subblock 40 Bit abgeleitet, so dass in jedem Rahmen von 20 Millisekunden 160/244 ≈ 65% der Codierung auf den im Bild auf der letzten Seite grün umrandeten Block zurückgehen.
 
  
Das Prinzip lässt sich anhand obiger Grafik in wenigen Stichpunkten wie folgt beschreiben:
+
==Fixed Code Book &ndash; FCB==
*Im festen Codebuch kennzeichnet jeder Eintrag einen Puls, bei dem genau 10 der 40 Positionen mit +1 bzw. –1 belegt sind. Erreicht wird dies gemäß der Grafik durch fünf Spuren mit jeweils 8 Positionen, von denen genau zwei die Werte ±1 aufweisen und alle anderen 0 sind.
+
<br>
*Ein roter Kreis in obiger Grafik (an den Positionen 2, 11, 26, 30, 38) kennzeichnet eine +1, ein blauer eine –1 (im Beispiel bei 13, 17, 19, 24, 35). In jeder Spur werden die beiden belegten Positionen mit lediglich je 3 Bit codiert (da es nur 8 mögliche Positionen gibt).
+
[[Datei:P_ID1214__Bei_T_3_2_S8b_v1.png|right|frame|Spureinteilung beim ACELP-Sprachcodec]]
 +
Nach der Ermittlung der besten adaptiven Anregung erfolgt die Suche nach dem besten Eintrag im festen Codebuch (''Fixed Code Book'', FCB).
 +
*Dieses liefert die wichtigste Information über das Sprachsignal.
 +
*Zum Beispiel werden beim&nbsp; $12.2 \ \rm kbit/s$–Modus hieraus pro Subblock&nbsp; $40$&nbsp; Bit abgeleitet.
 +
* Somit gehen in jedem Rahmen von&nbsp; $20$&nbsp; Millisekunden&nbsp; $160/244 ≈ 65\%$&nbsp; der Codierung auf den im Bild auf der letzten Seite grün umrandeten Block zurück.
 +
<br clear=all>
 +
Das Prinzip lässt sich anhand der Grafik in wenigen Stichpunkten wie folgt beschreiben:
 +
*Im festen Codebuch kennzeichnet jeder Eintrag einen Puls, bei dem genau&nbsp; $10$&nbsp; der&nbsp; $40$&nbsp; Positionen mit&nbsp; $+1$&nbsp; bzw.&nbsp; $-1$&nbsp; belegt sind. Erreicht wird dies gemäß der Grafik durch fünf Spuren mit jeweils acht Positionen, von denen genau zwei die Werte&nbsp; $±1$&nbsp; aufweisen und alle anderen Null sind.
 +
*Ein roter Kreis in obiger Grafik&nbsp; $($an den Positionen&nbsp; $2,\ 11,\ 26,\ 30,\ 38)$&nbsp; kennzeichnet eine&nbsp; $+1$&nbsp; und  ein blauer eine&nbsp; $-1$&nbsp; $($im Beispiel bei&nbsp; $13,\ 17,\ 19,\ 24,\ 35)$. In jeder Spur werden die beiden belegten Positionen mit lediglich je drei Bit codiert (da es nur acht mögliche Positionen gibt).
 
*Für das Vorzeichen wird ein weiteres Bit verwendet, welches das Vorzeichen des erstgenannten Impulses definiert. Ist die Pulsposition des zweiten Impulses größer als die des ersten, so hat der zweite Impuls das gleiche Vorzeichen wie der erste, ansonsten das entgegengesetzte.
 
*Für das Vorzeichen wird ein weiteres Bit verwendet, welches das Vorzeichen des erstgenannten Impulses definiert. Ist die Pulsposition des zweiten Impulses größer als die des ersten, so hat der zweite Impuls das gleiche Vorzeichen wie der erste, ansonsten das entgegengesetzte.
*In der ersten Spur des obigen Beispiels gibt es positive Pulse auf Position 2 (010) und Position 5 (101), wobei die Positionszählung bei 0 beginnt. Diese Spur ist also gekennzeichnet durch die Positionen „010” und „101” sowie das Vorzeichen „1” (positiv).
+
*In der ersten Spur des obigen Beispiels gibt es positive Pulse auf Position&nbsp; $2 \ (010)$&nbsp; und Position&nbsp; $5 \ (101)$, wobei die Positionszählung bei&nbsp; $0$&nbsp; beginnt. Diese Spur ist also gekennzeichnet durch die Positionen&nbsp; $010$&nbsp; und&nbsp; $101$&nbsp; sowie das Vorzeichen&nbsp; $1$&nbsp; (positiv).
*Die Kennzeichnung für die Spur 2 lautet: Positionen 011 und 000, Vorzeichen 0. Da hier die Pulse an Position 0 und 3 unterschiedliche Vorzeichen haben, steht „011” vor „000”. Das Vorzeichen „0”  ⇒  negativ bezieht sich auf den Puls an der erstgenannten Position 3.
+
*Die Kennzeichnung für die zweite Spur lautet: &nbsp; Positionen&nbsp; $011$&nbsp; und&nbsp; $000$, Vorzeichen&nbsp; $0$. Da hier die Pulse an Position&nbsp; $0$&nbsp; und&nbsp; $3$&nbsp; unterschiedliche Vorzeichen haben, steht&nbsp; $011$&nbsp; vor&nbsp; $000$. Das Vorzeichen $0$ &nbsp; ⇒  &nbsp; negativ bezieht sich auf den Puls an der erstgenannten Position&nbsp; $3$.
*Ein jeder Puls – bestehend aus 40 Impulsen, von denen allerdings 30 das Gewicht 0 besitzen – ergibt ein stochastisches, rauschähnliches Akustiksignal, das nach Verstärkung mit $G_{{\rm LTP},i}$ und Formung durch das LPC–Sprachtraktfilter $A(z)^{–1}$ den aktuellen Sprachrahmen $s_i(l)$ approximiert.
+
*Ein jeder Puls – bestehend aus&nbsp; $40$&nbsp; Impulsen, von denen allerdings&nbsp; $30$&nbsp; das Gewicht &bdquo;Null&rdquo; besitzen – ergibt ein stochastisches, rauschähnliches Akustiksignal, das nach Verstärkung mit&nbsp; $G_{{\rm LTP},\hspace{0.05cm}i}$&nbsp; und Formung durch das LPC–Sprachtraktfilter&nbsp; $A(z)^{–1}$&nbsp; den Sprachrahmen&nbsp; $s_i(l)$&nbsp; approximiert.
  
 
   
 
   
== Aufgaben zu Kapitel 3.3== 
+
== Aufgaben zum Kapitel== 
 +
<br>
 +
[[Aufgaben:Aufgabe_3.5:_GSM–Vollraten–Sprachcodec|Aufgabe 3.5: GSM–Vollraten–Sprachcodec]]
  
 +
[[Aufgaben:Aufgabe_3.6:_Adaptive_Multi–Rate_Codec|Aufgabe 3.6: Adaptive Multi–Rate Codec]]
 
==Quellenverzeichnis==
 
==Quellenverzeichnis==
 
<references />
 
<references />

Aktuelle Version vom 9. August 2019, 15:02 Uhr


Verschiedene Sprachcodierverfahren


Jedem GSM-Teilnehmer steht maximal die Netto–Datenrate  $\text{22.8 kbit/s}$  zur Verfügung, während im ISDN–Festnetz mit einer Datenrate von  $\text{64 kbit/s}$  (bei  $8$  Bit Quantisierung)  bzw.  $\text{104 kbit/s}$  (bei $13$ Bit Quantisierung)  gearbeitet wird. Aufgabe der Sprachcodierung bei GSM ist die Beschränkung der Datenmenge zur Sprachsignalübertragung auf  $\text{22.8 kbit/s}$  und eine bestmögliche Reproduktion des Sprachsignals auf der Empfängerseite. Die Funktionen des GSM–Coders und des GSM–Decoders sind meist in einer Funktionseinheit zusammengefasst, die als „Codec” bezeichnet wird.

Zur Sprachcodierung und –Decodierung werden verschiedene Signalverarbeitungsverfahren angewandt:

  • Der  GSM Fullrate Vocoder  (deutsch:  GSM–Vollraten–Sprachcodec)  wurde 1991 aus einer Kombination von drei Kompressionsmethoden für den GSM–Funkkanal standardisiert. Er basiert auf  Linear Predictive Coding  (LPC) in Verbindung mit  Long Term Prediction  (LTP) und  Regular Pulse Excitation  (RPE).
  • Der  GSM Halfrate Vocoder  (deutsch:  GSM–Halbraten–Sprachcodec)  wurde 1994 eingeführt und bietet die Möglichkeit, Sprache bei nahezu gleicher Qualität in einem halben Verkehrskanal $($Datenrate  $\text{11.4 kbit/s})$  zu übertragen.
  • Der  Enhanced Fullrate Vocoder  (EFR–Codec) wurde 1995 standardisiert und implementiert, ursprünglich für das nordamerikanische DCS1900–Netz. Der EFR–Codec bietet gegenüber dem herkömmlichen Vollraten–Codec eine bessere Sprachqualität.
  • Der  Adaptive Multi–Rate Codec  (AMR–Codec) ist der neueste Sprachcodec für GSM. Er wurde 1997 standardisiert und 1999 vom  Third Generation Partnership Project  (3GPP) auch als Standard–Sprachcodec für Mobilfunksysteme der dritten Generation wie UMTS vorgeschrieben.


Sie können sich die Qualität dieser Sprachcodierverfahren bei Sprache und Musik mit dem interaktiven Applet  Qualität verschiedener Sprach–Codecs   verdeutlichen. Diese Audio–Animation berücksichtigt auch den  Wideband–AMR, der 2007 für UMTS entwickelt und standardisiert wurde.

Im Gegensatz zum herkömmlichen AMR, bei dem das Sprachsignal auf den Frequenzbereich von  $\text{300 Hz}$  bis   $\text{3.4 kHz}$  bandbegrenzt wird, geht man beim WB–AMR von einem Wideband–Signal   $\text{(50 Hz – 7 kHz)}$  aus. Dieser ist somit auch für Musiksignale geeignet.


GSM Fullrate Vocoder – Vollraten–Codec


Beim  GSM–Vollraten-Codec  (englisch:  Full Rate Vocoder) wird das analoge Sprachsignal im Frequenzbereich zwischen  $300 \ \rm Hz$  und  $3400 \ \rm Hz$  zunächst mit  $8 \ \rm kHz$  abgetastet und danach mit  $13$  Bit linear quantisiert (A/D–Wandlung), was eine Datenrate von  $104 \ \rm kbit/s$  ergibt.

LPC–, LTP– und RPE–Parameter beim GSM-Vollraten-Codec

Die Sprachcodierung erfolgt bei diesem Verfahren in vier Schritten:

  • die Vorverarbeitung,
  • die Einstellung des Kurzzeitanalyse–Filters  (Linear Predictive Coding, LPC),
  • die Steuerung des Langzeitanalyse–Filters  (Long Term Prediction, LTP) und
  • die Codierung des Restsignals durch eine Folge von Pulsen  (Regular Pulse Excitation, RPE).


In der Grafik bezeichnet  $s(n)$  das im Abstand  $T_{\rm A} = 125\ \rm µ s$  abgetastete und quantisierte Sprachsignal nach der kontinuierlich durchgeführten Vorverarbeitung, wobei

  • das digitalisierte Mikrofonsignal von einem eventuell vorhandenen Gleichsignalanteil (Offset) befreit wird, um bei der Decodierung einen störenden Pfeifton von ca.  $2.6 \ \rm kHz$  bei der Wiedergewinnung der höheren Frequenzanteile zu vermeiden, und
  • zusätzlich höhere Spektralanteile von  $s(n)$  angehoben werden, um die Rechengenauigkeit und Effektivität der nachfolgenden LPC–Analyse zu verbessern.


Die Tabelle zeigt die  $76$  Parameter  $(260$ Bit$)$  der Funktionseinheiten LPC, LTP und RPE. Die Bedeutung der einzelnen Größen wird auf den folgenden Seiten im Detail beschrieben.

Tabelle der Vollraten–Codec–Parameter

Alle Verarbeitungsschritte (LPC, LTP, RPE) erfolgen jeweils in Blöcken von  $20 \ \rm ms$  Dauer über  $160$  Abtastwerte des vorverarbeiteten Sprachsignals, die man als  GSM–Sprachrahmen  bezeichnet.

  • Beim Vollraten–Codec werden pro Sprachrahmen insgesamt  $260$ Bit  erzeugt, woraus sich eine Datenrate von  $13 \ \rm kbit/s$  ergibt.
  • Dies entspricht einer Kompression des Sprachsignals um den Faktor  $8$  $(104 \ \rm kbit/s$ bezogen auf $13 \ \rm kbit/s)$.



Linear Predictive Coding – Kurzzeitprädiktion


Bausteine der GSM-Kurzzeitprädiktion (LPC)

Der Block  Linear Predictive Coding  (LPC) führt eine Kurzzeitprädiktion durch, das heißt, es werden die statistischen Abhängigkeiten der Abtastwerte untereinander in einem kurzen Bereich von einer Millisekunde ermittelt.
Es folgt eine Kurzbeschreibung des LPC–Prinzipschaltbildes:

  • Zunächst wird dazu das zeitlich unbeschränkte Signal  $s(n)$  in Intervalle  $s_{\rm R}(n)$  von  $20 \ \rm ms$ Dauer  $(160$ Samples$)$ segmentiert. Die Laufvariable innerhalb eines solchen Sprachrahmens kann vereinbarungsgemäß die Werte  $n = 1$, ... , $160$  annehmen.
  • Im ersten Schritt der  LPC-Analyse  werden Abhängigkeiten zwischen den Abtastwerten durch die Autokorrelationskoeffizienten mit Indizes  $0 ≤ k ≤ 8$  quantifiziert:
$$φ_{\rm s}(k) = \text{E}\big [s_{\rm R}(n) · s_{\rm R}(n + k)\big ].$$
  • Aus diesen neun AKF–Werten werden mit Hilfe der so genannten  Schur–Rekursion  acht Reflexionskoeffizienten  $r_{k}$  berechnet, die als Grundlage für die Einstellung der Koeffizienten des LPC–Analysefilters für den aktuellen Rahmen dienen.
  • Die Koeffizienten  $r_{k}$  haben Werte zwischen  $±1$. Schon geringe Änderungen der  $r_{k}$  am Rand ihres Wertesbereichs bewirken große Änderungen für die Sprachcodierung. Die acht Reflexionswerte  $r_{k}$  werden logarithmisch dargestellt   ⇒   LAR–Parameter (Log Area Ratio):
$${\rm LAR}(k) = \ln \ \frac{1-r_k}{1+r_k}, \hspace{1cm} k = 1,\hspace{0.05cm} \text{...}\hspace{0.05cm} , 8.$$
  • Anschließend werden die acht LAR–Parameter entsprechend ihrer subjektiven Bedeutung durch unterschiedlich viele Bit quantisiert, codiert und zur Übertragung bereitgestellt. Die beiden ersten Parameter werden mit je sechs Bit, die beiden nächsten mit je fünf Bit, $\rm LAR(5)$  und  $\rm LAR(6)$  mit je vier Bit und die beiden letzten –   $\rm LAR(7)$  und  $\rm LAR(8)$–   mit je drei Bit dargestellt.
  • Bei fehlerfreier Übertragung kann am Empfänger aus den acht LPC–Parametern  (insgesamt  $36$  Bit)  mit dem entsprechenden LPC–Synthesefilter das ursprüngliche Signal  $s(n)$  wieder vollständig rekonstruiert werden, wenn man von den unvermeidbaren zusätzlichen Quantisierungsfehlern durch die digitale Beschreibung der LAR-Koeffizienten absieht.
  • Weiterhin wird mit Hilfe des LPC–Filters das Prädiktionsfehlersignal  $e_{\rm LPC}(n)$  gewonnen. Dieses ist gleichzeitig das Eingangssignal für die nachfolgende Langzeitprädiktion. Das LPC–Filter ist nicht rekursiv und hat nur ein kurzes Gedächtnis von etwa einer Millisekunde.


$\text{Beispiel 1:}$  Die Grafik aus  [Kai05][1]  zeigt oben einen Ausschnitt des Sprachsignals  $s(n)$  und dessen Zeit–Frequenzdarstellung. Unten ist das LPC–Prädiktionsfehlersignal  $e_{\rm LPC}(n)$  dargestellt.

LPC–Prädiktionsfehlersignal bei GSM (Zeit–Frequenzdarstellung)



Man erkennt aus diesen Bildern

  • die kleinere Amplitude von  $e_{\rm LPC}(n)$  gegenüber  $s(n)$,
  • den deutlich reduzierten Dynamikumfang, und
  • das flachere Spektrum des verbleibenden Signals.


Long Term Prediction – Langzeitprädiktion


Bei der  Long Term Prediction  (LTP) wird die Eigenschaft des Sprachsignals ausgenutzt, dass es auch periodische Strukturen (stimmhafte Abschnitte) besitzt. Dieser Umstand wird dazu verwendet, um die im Signal vorhandene Redundanz zu reduzieren.

Bausteine der GSM-Langzeitprädiktion (LTP)
  • Die Langzeitprädiktion (LTP–Analyse und –Filterung) wird viermal pro Sprachrahmen, also alle  $5 \ \rm ms$  durchgeführt.
  • Die vier Subblöcke bestehen aus jeweils $40$ Samples und werden mit  $i = 1$, ... , $4$  nummeriert.


Es folgt eine Kurzbeschreibung gemäß dem obigen LTP–Prinzipschaltbild – siehe  [Kai05][1].

  • Das Eingangssignal ist das Ausgangssignal  $e_{\rm LPC}(n)$  der Kurzzeitprädiktion. Die Signale nach der Segmentierung in vier Subblöcken werden mit  $e_i(l)$  bezeichnet, wobei jeweils  $l = 1, 2$, ... , $40$  gilt.
  • Zu dieser Analyse wird die Kreuzkorrelationsfunktion  $φ_{ee\hspace{0.03cm}',\hspace{0.05cm}i}(k)$  des aktuellen Subblocks  $i$  des LPC–Prädiktionsfehlersignals  $e_i(l)$  mit dem rekonstruierten LPC–Restsignal  $e\hspace{0.03cm}'_i(l)$  aus den drei vorherigen Teilrahmen berechnet. Das Gedächtnis dieses LTP–Prädiktors beträgt zwischen  $5 \ \rm ms$  und  $15 \ \rm ms$  und ist somit deutlich länger als das des LPC–Prädiktors  $(1 \ \rm ms)$.
  • $e\hspace{0.03cm}'_i(l)$  ist die Summe aus dem LTP–Filter–Ausgangssignal  $y_i(l)$  und dem Korrektursignal  $e_{\rm RPE,\hspace{0.05cm}i}(l)$, das von der folgenden Komponente  (Regular Pulse Excitation)  für den  $i$–ten Subblock bereitgestellt wird.
  • Der Wert von  $k$, für den die Kreuzkorrelationsfunktion  $φ_{ee\hspace{0.03cm}',\hspace{0.05cm}i}(k)$  maximal wird, bestimmt die für jeden Subblock  $i$  optimale LTP–Verzögerung  $N(i)$. Die Verzögerungen  $N(1)$  bis  $N(4)$  werden jeweils mit sieben Bit quantisiert und zur Übertragung bereitgestellt.
  • Der zu  $N(i)$  gehörige Verstärkungsfaktor  $G(i)$  – auch LTP–Gain  genannt – wird so bestimmt, dass der an der Stelle  $N(i)$  gefundene Subblock nach Multiplikation mit  $G(i)$  am besten zum aktuellen Teilrahmen  $e_i(l)$  passt. Die Verstärkungsfaktoren  $G(1)$  bis  $G(4)$  werden jeweils mit zwei Bit quantisiert und ergeben zusammen mit  $N(1)$, ..., $N(4)$  die  $36$  Bit für die acht LTP–Parameter.
  • Das Signal  $y_i(l)$  nach LTP–Analyse und –Filterung ist ein Schätzsignal für das LPC–Signal  $e_i(l)$  im  $i$–ten Subblock. Die Differenz zwischen beiden ergibt das LTP–Restsignal  $e_{\rm LTP,\hspace{0.05cm}i}(l)$, das an die nächste Funktionseinheit „RPE” weitergegeben wird.


$\text{Beispiel 2:}$  Die Grafik aus  [Kai05][1]  zeigt

  • oben das LPC–Prädiktionsfehlersignal  $e_{\rm LPC}(n)$  – gleichzeitig das LTP-Eingangssignal,
  • unten das Restfehlersignal  $e_{\rm LTP}(n)$  nach der Langzeitprädiktion.
LTP–Prädiktionsfehlersignal bei GSM (Zeit–Frequenzdarstellung)


Es wird nur ein Subblock betrachtet. Deshalb wird hier für die diskrete Zeit bei LPC und LTP der gleiche Buchstabe  $n$  verwendet.


Man erkennt aus diesen Darstellungen

  • die kleineren Amplituden von  $e_{\rm LTP}(n)$  gegenüber  $e_{\rm LPC}(n)$  und
  • den deutlich reduzierten Dynamikumfang von  $e_{\rm LTP}(n)$,
  • besonders in periodischen, also stimmhaften Abschnitten.


Auch im Frequenzbereich zeigt sich eine Reduktion des Prädiktionsfehlersignals aufgrund der Langzeitprädiktion.


Regular Pulse Excitation – RPE–Codierung


Das Signal nach LPC– und LTP–Filterung ist bereits redundanz–reduziert, das heißt, es benötigt eine geringere Bitrate als das abgetastete Sprachsignal  $s(n)$.

Bausteine der Regular Pulse Excitation (RPE) bei GSM
  • Nun wird in der nachfolgenden Funktionseinheit  Regular Pulse Excitation  (RPE) die Irrelevanz weiter verringert.
  • Das bedeutet:   Signalanteile, die für den subjektiven Höreindruck weniger wichtig sind, werden entfernt.


Zu diesem Blockschaltbild ist anzumerken:

  • Die RPE–Codierung wird jeweils für  $5 \ \rm ms$–Teilrahmen  $(40$ Abtastwerte$)$  durchgeführt. Dies ist hier durch den Index  $i$  im Eingangssignal  $e_{\rm LTP},\hspace{0.03cm} i(l)$  angedeutet, wobei mit  $i = 1, 2, 3, 4$  wieder die einzelnen Subblöcke durchnummeriert sind.
  • Im ersten Schritt wird das LTP–Prädiktionsfehlersignal  $e_{{\rm LTP}, \hspace{0.03cm}i}(l)$  durch ein Tiefpassfilter auf etwa ein Drittel der ursprünglichen Bandbreite – also auf  $1.3 \ \rm kHz$  – bandbegrenzt. Dies ermöglicht in einem zweiten Schritt eine Reduktion der Abtastrate um ca. den Faktor  $3$.
  • So wird das Ausgangssignal  $x_i(l)$  mit  $l = 1$, ... , $40$  durch Unterabtastung in vier Teilfolgen  $x_{m, \hspace{0.03cm} i}(j)$  mit  $m = 1$, ... , $4$  und  $j = 1$, ... , $13$  zerlegt. Diese Aufspaltung ist in der Grafik verdeutlicht.
  • Die Teilfolgen  $x_{m,\hspace{0.03cm} i}(j)$  beinhalten folgende Abtastwerte des Signals  $x_i(l)$:
    • $m = 1$:   $l = 1, \ 4, \ 7$, ... , $34, \ 37$ (rote Punkte),
    • $m = 2$:   $l = 2, \ 5, \ 8$, ... , $35, \ 38$ (grüne Punkte),
    • $m = 3$:   $l = 3, \ 6, \ 9$, ... , $36, \ 39$ (blaue Punkte),
    • $m = 4$:   $l = 4, \ 7, \ 10$, ... , $37, \ 40$ $($ebenfalls rot, weitgehend identisch mit  $m = 1)$.


  • Für jeden Subblock  $i$  wird im Block  RPE Grid Selection  die Teilfolge  $x_{m,\hspace{0.03cm}i}(j)$  mit der höchsten Energie ausgewählt und der Index  $M_i$  der  optimalen Folge  mit zwei Bit quantisiert und als  $\mathbf{M}(i)$   übertragen. Insgesamt benötigen die vier RPE–Teilfolgen–Indizes  $\mathbf{M}(1)$, ... ,  $\mathbf{M}(4)$  somit acht Bit.
  • Von der optimalen Teilfolge für den Subblock  $i$  $($mit Index  $M_i)$  wird das  Betragsmaximum  $x_{\rm max,\hspace{0.03cm}i}$  ermittelt, dieser Wert mit sechs Bit logarithmisch quantisiert und als  $\mathbf{x_{\rm max}}(i)$  zur Übertragung bereit gestellt. Insgesamt benötigen die vier RPE–Blockamplituden  $24$  Bit.
  • Zusätzlich wird für jeden Subblock  $i$  die optimale Teilfolge auf  $x_{{\rm max},\hspace{0.03cm}i}$  normiert. Die so erhaltenen  $13$  Abtastwerte werden anschließend mit jeweils drei Bit quantisiert und als  $\mathbf{X}_j(i)$  codiert übertragen. Die  $4 · 13 · 3 = 156$  Bit beschreiben den so genannten  RPE–Pulse.
  • Anschließend werden diese RPE–Parameter lokal wieder decodiert und als Signal  $e_{{\rm RPE},\hspace{0.03cm}i}(l)$  an das LTP–Synthesefilter im vorherigen Subblock zurückgeführt, woraus zusammen mit dem LTP–Schätzsignal  $y_i(l)$  das Signal  $e\hspace{0.03cm}'_i(l)$  erzeugt wird (siehe  LTP–Grafik).
  • Durch das Zwischenfügen von jeweils zwei Nullwerten zwischen zwei übertragenen RPE–Abtastwerten wird näherungsweise das Basisband von Null bis  $1300 \ \rm Hz$  in den Bereich von  $1300 \ \rm Hz$  bis  $2600 \ \rm Hz$  in Kehrlage und von  $2600 \ \rm Hz$  bis  $3900 \ \rm Hz$  in Normallage gefaltet. Dies ist der Grund für die notwendige Gleichsignalbefreiung in der Vorverarbeitung. Sonst entstünde durch die beschriebene Faltungsoperation ein störender Pfeifton bei  $2.6 \ \rm kHz$.


Halfrate Vocoder und Enhanced Fullrate Codec


Nach der Standardisierung des Vollraten–Codecs im Jahre 1991 ging es in der Folgezeit um die Entwicklung neuer Sprachcodecs mit zwei spezifischen Zielen, nämlich um

  • die bessere Ausnutzung der in GSM–Systemen verfügbaren Bandbreite, und
  • die Verbesserung der Sprachqualität.


Diese Entwicklung kann wie folgt zusammengefasst werden:

  • Bis 1994 wurde mit dem  Halfrate Vocoder  (deutsch:  Halbraten-Codec)  ein neues Verfahren entwickelt. Dieser hat eine Datenrate von  $5.6 \ \rm kbit/s$  und bietet so die Möglichkeit, Sprache in einem halben Verkehrskanal bei annähernd gleicher Qualität zu übertragen. Dadurch können auf einem Zeitschlitz zwei Gespräche gleichzeitig abgewickelt werden. Der Halbraten–Codec wurde allerdings von den Mobilfunkbetreibern nur dann eingesetzt, wenn eine Funkzelle überlastet war. Inzwischen spielt der Halfrate–Codec keine Rolle mehr.
  • Um die Sprachqualität weiter zu verbessern, wurde 1995 der  Enhanced Fullrate Codec  (EFR–Codec) eingeführt. Dieses Sprachcodierverfahren – ursprünglich für das US–amerikanische DCS1900–Netz entwickelt – ist ein Vollraten–Codec mit der (etwas niedrigeren) Datenrate  $12.2 \ \rm kbit/s$. Die Nutzung dieses Codecs muss natürlich vom Mobiltelefon unterstützt werden.
  • Statt der RPE–LTP–Komprimierung (Regular Pulse Excitation – Long Term Prediction) beim herkömmlichen Vollraten–Codec wird bei dieser Weiterentwicklung zudem  Algebraic Code Excitation Linear Prediction  (ACELP) angewandt, was eine deutlich bessere Sprachqualität und eine ebenfalls verbesserte Fehlererkennung und –verschleierung bietet. Nähere Informationen darüber finden Sie auf der übernächsten Seite.


Adaptive Multi–Rate Codec


Die bisher beschriebenen GSM–Codecs arbeiten hinsichtlich Sprach– und Kanalcodierung unabhängig von den Kanalbedingungen und der Netzauslastung stets mit einer festen Datenrate. 1997 wurde ein neues adaptives Sprachcodierverfahren für Mobilfunksysteme entwickelt und kurz darauf durch das European Telecommunications Standards Institute (ETSI) nach Vorschlägen der Firmen Ericsson, Nokia und Siemens standardisiert. Bei den Forschungsarbeiten zum Systemvorschlag der Siemens AG war der Lehrstuhl für Nachrichtentechnik der TU München, der dieses Lerntutorial $\rm LNTwww$ zur Verfügung stellt, entscheidend beteiligt. Näheres finden Sie unter  [Hin02][2].

Der  Adaptive Multi–Rate Codec  – abgekürzt AMR – hat folgende Eigenschaften:

  • Er passt sich flexibel an die aktuellen Kanalgegebenheiten und an die Netzauslastung an, indem er entweder im Vollraten–Modus (höhere Sprachqualität) oder im Halbraten–Modus (geringere Datenrate) arbeitet. Daneben gibt es noch etliche Zwischenstufen.
  • Er bietet sowohl beim Vollraten– als auch beim Halbratenverkehrskanal eine verbesserte Sprachqualität, was auf die flexibel handhabbare Aufteilung der zur Verfügung stehenden Brutto–Kanaldatenrate zwischen Sprach– und Kanalcodierung zurückzuführen ist.
  • Er besitzt eine größere Robustheit gegenüber Kanalfehlern als die Codecs aus der Frühzeit der Mobilfunktechnik. Dies gilt besonders beim Einsatz im Vollraten–Verkehrskanal.


Der AMR–Codec stellt  acht verschiedene Modi  mit Datenraten zwischen  $12.2 \ \rm kbit/s$  $(244$  Bit pro Rahmen von  $20 \ \rm ms)$  und  $4.75 \ \rm kbit/s$  $(95$ Bit pro Rahmen$)$ zur Verfügung. Drei Modi spielen eine herausgehobene Rolle, nämlich

  • $12.2 \ \rm kbit/s$  – der verbesserte GSM–Vollraten–Codec (EFR-Codec),
  • $7.4 \ \rm kbit/s$  – die Sprachkompression gemäß dem US–amerikanischen Standard IS–641, und
  • $6.7 \ \rm kbit/s$  – die EFR–Sprachübertragung des japanischen PDC–Mobilfunkstandards.


Die folgenden Beschreibungen beziehen sich meist auf den Modus mit  $12.2 \ \rm kbit/s$.

Zusammenstellung der AMR–Parameter
  • Alle Vorgänger–Verfahren des AMR basieren auf der Minimierung des Prädiktionsfehlersignals durch eine Vorwärtsprädiktion in den Teilschritten LPC, LTP und RPE.
  • Im Gegensatz dazu verwendet der AMR-Codec eine Rückwärtsprädiktion gemäß dem Prinzip „Analyse durch Synthese”. Dieses Codierungsprinzip bezeichnet man auch als  Algebraic Code Excited Linear Prediction  (ACELP).


In der Tabelle sind die Parameter des Adaptive Multi–Rate Codecs für zwei Modi zusammengestellt:

  •   $244$  Bit pro  $20 \ \rm ms$   ⇒   Modus  $12.2 \ \rm kbit/s$,
  •   $95$  Bit pro  $20 \ \rm ms$   ⇒   Modus  $4.75 \ \rm kbit/s$.


Algebraic Code Excited Linear Prediction


Die Grafik zeigt den auf  ACELP  basierenden  AMR-Codec. Es folgt eine kurze Beschreibung des Prinzips. Eine detaillierte Beschreibung finden Sie zum Beispiel in  [Kai05][1].

Algebraic Code Excited Linear Prediction – Prinzip
  • Das Sprachsignal  $s(n)$, wie beim GSM–Vollraten–Sprachcodec mit  $8 \ \rm kHz$  abgetastet und mit  $13$  Bit quantisiert, wird vor der weiteren Verarbeitung in Rahmen  $s_{\rm R}(n)$  mit  $n = 1$, ... , $160$  bzw. in Subblöcke  $s_i(l)$  mit  $i = 1, 2, 3, 4$  und  $l = 1$, ... , $40$  segmentiert.
  • Die Berechnung der LPC–Koeffizienten erfolgt im rot hinterlegten Block rahmenweise alle  $20 \ \rm ms$  entsprechend  $160$  Abtastwerten, da innerhalb dieser kurzen Zeitspanne die spektrale Einhüllende des Sprachsignal  $s_{\rm R}(n)$  als konstant angesehen werden kann.
  • Zur LPC–Analyse wird meist ein Filter  $A(z)$  der Ordnung  $10$  gewählt. Beim höchstratigen Modus mit  $12.2 \ \rm kbit/s$  werden die aktuellen Koeffizienten  $a_k \ ( k = 1$, ... , $10)$  der Kurzzeitprädiktion alle  $10\ \rm ms$  quantisiert, codiert und beim gelb hinterlegten Punkt 1 zur Übertragung bereitgestellt.
  • Die weiteren Schritte des AMR werden alle  $5 \ \rm ms$  entsprechend den  $40$  Abtastwerten der Signale  $s_i(l)$  durchgeführt. Die Langzeitprädiktion (LTP) – im Bild blau umrandet – ist hier als adaptives Codebuch realisiert, in dem die Abtastwerte der vorangegangenen Subblöcke eingetragen sind.
  • Für die Langzeitprädiktion (LTP) wird zunächst die Verstärkung  $G_{\rm FCB}$  für das  Fixed Code Book  (FCB) zu Null gesetzt, so dass eine Folge von  $40$  Samples des adaptiven Codebuchs am Eingang  $u_i(l)$  des durch die LPC festgelegten Sprachtraktfilters  $A(z)^{–1}$  anliegen. Der Index  $i$  bezeichnet den betrachteten Subblock.
  • Durch Variation der beiden LTP–Parameter  $N_{{\rm LTP},\hspace{0.05cm}i}$  und  $G_{{\rm LTP},\hspace{0.05cm}i}$  soll für diesen  $i$–ten Subblock erreicht werden, dass der quadratische Mittelwert – also die mittlere Leistung – des gewichteten Fehlersignals  $w_i(l)$  minimal wird.
  • Das Fehlersignal  $w_i(l)$  ist gleich der Differenz zwischen dem aktuellen Sprachrahmen  $s_i(l)$  und dem Ausgangssignal  $y_i(l)$  des so genannten Sprachtraktfilters bei Anregung mit  $u_i(l)$, unter Berücksichtigung des Wichtungsfilters  $W(z)$  zur Anpassung an die Spektraleigenschaften des menschlichen Gehörs.
  • In anderen Worten:   $W(z)$  entfernt solche spektralen Anteile im Signal  $e_i(l)$, die von einem „durchschnittlichen” Ohr nicht wahrgenommen werden. Beim Modus  $12.2 \ \rm kbit/s$  verwendet man  $W(z) = A(z/γ_1)/A(z/γ_2)$  mit konstanten Faktoren  $γ_1 = 0.9$  und  $γ_2 = 0.6$.
  • Für jeden Subblock kennzeichnet  $N_{{\rm LTP},\hspace{0.05cm}i}$  die bestmögliche LTP–Verzögerung, die zusammen mit der LTP–Verstärkung  $G_{{\rm LTP},\hspace{0.05cm}i}$  nach Mittelung bezüglich  $l = 1$, ... , $40$  den quadratischen Fehler  $\text{E}[w_i(l)^2]$  minimiert. Gestrichelte Linien kennzeichnen Steuerleitungen zur iterativen Optimierung.
  • Man bezeichnet die beschriebene Vorgehensweise als  Analyse durch Synthese. Nach einer ausreichend großen Anzahl an Iterationen wird der Subblock  $u_i(l)$  in das adaptive Codebuch aufgenommen. Die ermittelten LTP–Parameter  $N_{{\rm LTP},\hspace{0.05cm}i}$  und  $G_{{\rm LTP},\hspace{0.05cm}i}$  werden codiert und zur Übertragung bereitgestellt.


Fixed Code Book – FCB


Spureinteilung beim ACELP-Sprachcodec

Nach der Ermittlung der besten adaptiven Anregung erfolgt die Suche nach dem besten Eintrag im festen Codebuch (Fixed Code Book, FCB).

  • Dieses liefert die wichtigste Information über das Sprachsignal.
  • Zum Beispiel werden beim  $12.2 \ \rm kbit/s$–Modus hieraus pro Subblock  $40$  Bit abgeleitet.
  • Somit gehen in jedem Rahmen von  $20$  Millisekunden  $160/244 ≈ 65\%$  der Codierung auf den im Bild auf der letzten Seite grün umrandeten Block zurück.


Das Prinzip lässt sich anhand der Grafik in wenigen Stichpunkten wie folgt beschreiben:

  • Im festen Codebuch kennzeichnet jeder Eintrag einen Puls, bei dem genau  $10$  der  $40$  Positionen mit  $+1$  bzw.  $-1$  belegt sind. Erreicht wird dies gemäß der Grafik durch fünf Spuren mit jeweils acht Positionen, von denen genau zwei die Werte  $±1$  aufweisen und alle anderen Null sind.
  • Ein roter Kreis in obiger Grafik  $($an den Positionen  $2,\ 11,\ 26,\ 30,\ 38)$  kennzeichnet eine  $+1$  und ein blauer eine  $-1$  $($im Beispiel bei  $13,\ 17,\ 19,\ 24,\ 35)$. In jeder Spur werden die beiden belegten Positionen mit lediglich je drei Bit codiert (da es nur acht mögliche Positionen gibt).
  • Für das Vorzeichen wird ein weiteres Bit verwendet, welches das Vorzeichen des erstgenannten Impulses definiert. Ist die Pulsposition des zweiten Impulses größer als die des ersten, so hat der zweite Impuls das gleiche Vorzeichen wie der erste, ansonsten das entgegengesetzte.
  • In der ersten Spur des obigen Beispiels gibt es positive Pulse auf Position  $2 \ (010)$  und Position  $5 \ (101)$, wobei die Positionszählung bei  $0$  beginnt. Diese Spur ist also gekennzeichnet durch die Positionen  $010$  und  $101$  sowie das Vorzeichen  $1$  (positiv).
  • Die Kennzeichnung für die zweite Spur lautet:   Positionen  $011$  und  $000$, Vorzeichen  $0$. Da hier die Pulse an Position  $0$  und  $3$  unterschiedliche Vorzeichen haben, steht  $011$  vor  $000$. Das Vorzeichen $0$   ⇒   negativ bezieht sich auf den Puls an der erstgenannten Position  $3$.
  • Ein jeder Puls – bestehend aus  $40$  Impulsen, von denen allerdings  $30$  das Gewicht „Null” besitzen – ergibt ein stochastisches, rauschähnliches Akustiksignal, das nach Verstärkung mit  $G_{{\rm LTP},\hspace{0.05cm}i}$  und Formung durch das LPC–Sprachtraktfilter  $A(z)^{–1}$  den Sprachrahmen  $s_i(l)$  approximiert.


Aufgaben zum Kapitel


Aufgabe 3.5: GSM–Vollraten–Sprachcodec

Aufgabe 3.6: Adaptive Multi–Rate Codec

Quellenverzeichnis

  1. 1,0 1,1 1,2 1,3 Kaindl, M.: Kanalcodierung für Sprache und Daten in GSM-Systemen. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 764, 2005.
  2. Hindelang, T.: Source-Controlled Channel Decoding and Decoding for Mobile Communications. Dissertation. Lehrstuhl für Nachrichtentechnik, TU München. VDI Fortschritt-Berichte, Reihe 10, Nr. 695, 2002.