Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Aufgabe 3.6: Adaptive Multi–Rate Codec

Aus LNTwww
Version vom 10. August 2019, 16:48 Uhr von Guenter (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

Spuren des AMR–Codecs

Ende der 1990er Jahre wurde mit dem AMR–Codec ein sehr flexibler, adaptiver Sprachcodec entwickelt und standardisiert. Dieser stellt insgesamt acht verschiedene Modi mit Datenraten zwischen  4.75 kbit/s  und  12.2 kbit/s  zur Verfügung.

Der AMR-Codec beinhaltet wie der in  Aufgabe 3.5  behandelte Vollraten–Codec (FRC) sowohl eine Kurzzeitprädiktion (LPC) als auch eine Langzeitprädiktion (LTP). Allerdings sind diese beiden Komponenten anders realisiert als beim FRC.

Der wesentliche Unterschied von AMR gegenüber FRC stellt die Codierung des Restsignals (nach LPC und LTP) dar:

  • Anstelle von „Regular Pulse Excitation” (RPE) wird beim AMR–Code das Verfahren „Algebraic Code Excitation Linear Prediction” (ACELP) angewendet.
  • Aus dem festen Codebuch (FCB) wird für jeden Unterrahmen von  5 ms  Dauer derjenige FCB–Puls und diejenige FCB–Verstärkung ausgewählt, die am besten zum Restsignal passen (für die der mittlere quadratische Fehler des Differenzsignals minimal wird).


Jeder Eintrag im festen Codebuch kennzeichnet einen Puls, bei dem genau  10  der  40  Positionen mit  ±1  belegt sind. Hierzu ist anzumerken:

  • Der Puls ist in fünf Spuren mit jeweils acht möglichen Positionen aufgeteilt, wobei die Spur  1  die Positionen  1, 6, 11, ... , 36  des Unterrahmens und Spur  5  die Positionen  5, 10, 15, ... , 40  beschreibt.
  • In jeder Spur sind genau zwei Werte  ±1, während alle anderen sechs Werte  0  sind. Die beiden  ±1–Positionen werden mit je drei Bit – also mit  000, ... ,  111 – codiert.
  • Für das Vorzeichen des erstgenannten Pulses wird ein weiteres Bit verwendet, wobei eine „1” ein positives Vorzeichen und eine „0” ein negatives Vorzeichen kennzeichnet.
  • Ist die Pulsposition des zweiten Impulses größer als die des ersten Impulses, so hat der zweite Impuls das gleiche Vorzeichen wie der erste, ansonsten das umgekehrte.
  • Zum Empfänger werden somit pro Spur sieben Bit übertragen, außerdem noch fünf Bit für die so genannte  FCB–Verstärkung.


In der Grafik sind die  35  Bit zur Beschreibung eines FCB–Pulses beispielhaft angegeben.

Spur 1 beinhaltet

  • einen positiven Impuls  (VZ=1)  bei  1  (erste mögliche Position für Spur 1)  plus0 (Bitangabe für „ 000”) =1,
  • einen weiteren positiven Impuls (da 110>000) bei der Position 1plus5 (Pulsabstand in jeder Spur) mal6 (Bitangabe für „ 110”) = 31.


Spur 2 beinhaltet

  • einen negativen Impuls (VZ=0) bei 2 (erste mögliche Position für Spur 2) plus5mal4 (Bitangabe für „ 100”) = 22,
  • einen positiven Impuls (Vorzeichenumkehr wegen 011>100) bei der Position 2plus5mal3 (Bitangabe für „ 011”) = 17.




Hinweise:

  • Bei der Eingabe der Pulspositionen bezeichnet  N1  das erste Bit–Tripel und  N2  das zweite.
  • Man müsste zum Beispiel für Spur  2  die Werte  N1=22  und  N2=+17  eintragen.


Fragebogen

1

Wie viele Bit beschreiben einen Sprachrahmen (der Dauer  20 ms)  im  12.2 kbit/s–Modus?

N12.2 = 

 Bit

2

Wie viele Bit werden für FCB–Puls und –Verstärkung pro Rahmen benötigt?

NFCB = 

 Bit

3

Wie viele Bit verbleiben somit für LPC und LTP?

NLPC/LTP = 

 Bit

4

Welche Impulspositionen des Unterrahmens und Vorzeichen beschreibt die Spur  3?
Beachten Sie die Hinweise zur Eingabe auf der Angabenseite.

N1 = 

N2 = 

5

Welche Impulspositionen inklusive Vorzeichen beschreiben die Spur  4?

N1 = 

N2 = 

6

Welche Impulspositionen inklusive Vorzeichen beschreiben die Spur  5?

N1 = 

N2 = 


Musterlösung

(1)  Mit der Datenrate 12.2 kbit/s ergeben sich innerhalb von 20 ms genau 244 Bit_, während zum Beispiel im 4.75 kbit/s–Modus nur 95 Bit übertragen werden.


(2)  In jedem Unterrahmen benötigt der FCB–Puls 35 Bit (fünf Spuren zu je sieben Bit) und die FCB–Verstärkung fünf Bit.

  • Bei vier Unterrahmen kommt man so auf NFCB=160 Bit_.


(3)  Hierfür verbleiben die Differenz aus (1) und (2), also NLPC/LTP=84 Bit_.


(4)  Das Vorzeichenbit „0” deutet auf einen negativen ersten Impuls hin.

  • Wegen 001<011 hat der zweite Impuls das gleiche Vorzeichen.
  • Die beiden Beträge ergeben sich zu
|N1| = 3(daSpur3)+51(Bitangabe001)=8,
|N2| = 3(daSpur3)+53(Bitangabe011)=18.
  • Einzugeben sind deshalb für die dritte Spur N1=8_ und N2=18_.


(5)  In analoger Weise erhält man für die Spur 4 die Werte  N1=+39_  und  N2=14_.


(6)  Die fünfte Spur liefert  N1=30_  und  N2=+5_