Aufgaben:Aufgabe 3.6: Adaptive Multi–Rate Codec: Unterschied zwischen den Versionen
Zeile 68: | Zeile 68: | ||
===Musterlösung=== | ===Musterlösung=== | ||
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' | + | |
− | '''(2)''' | + | '''(1)''' Mit der Datenrate $12.2 \ \rm kbit/s$ ergeben sich innerhalb von $20 \ \rm ms$ genau $\underline{244 \ \rm Bit}$, während zum Beispiel im $4.75 \ \rm kbit/s$–Modus nur $95 \ \rm Bit$ übertragen werden. |
− | '''(3)''' | + | |
− | '''(4)''' | + | '''(2)''' In jedem Unterrahmen benötigt der FCB–Puls $35 \ \rm Bit$ (fünf Spuren zu je sieben Bit) und die FCB–Verstärkung fünf Bit. Bei vier Unterrahmen kommt man so auf $N_{\rm FCB} \underline{= 160 \ \rm Bit}$. |
− | + | ||
− | '''( | + | '''(3)''' Hierfür verbleiben die Differenz aus (1) und (2), also $N_{\rm LPC/LTP}\underline{ = 84 \ \rm 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 | ||
+ | :$$|N_1| \ = \ 3 \hspace{0.1cm}{\rm(da \hspace{0.1cm} Spur \hspace{0.1cm}3)} + 5\cdot 1 \hspace{0.1cm} {\rm(Bitangabe \hspace{0.1cm} 001)} = 8\hspace{0.05cm}, $$ | ||
+ | :$$ |N_2| \ = \ 3 \hspace{0.1cm}{\rm(da \hspace{0.1cm} Spur \hspace{0.1cm}3)} + 5\cdot 3 \hspace{0.1cm} {\rm(Bitangabe \hspace{0.1cm} 011)} = 18\hspace{0.05cm}.$$ | ||
+ | Einzugeben sind deshalb $N_{1} \underline{ = –8}$ und $N_{2} \underline{ = –18}$ | ||
+ | |||
+ | '''(5)''' In analoger Weise erhält man für die Spur 4 die Werte $N_{1} \underline{ = +39}$ und $N_{2} \underline{ = –14}$ | ||
+ | |||
+ | '''(6)''' Die fünfte Spur liefert $N_{1} \underline{ = –30}$ und $N_{1} \underline{ = +5$ | ||
+ | |||
{{ML-Fuß}} | {{ML-Fuß}} | ||
Version vom 20. Dezember 2017, 11:57 Uhr
Ende der 90er Jahre wurde mit dem AMR–Codec ein sehr flexibler, adaptiver Sprachcodec entwickelt und standardisiert. Dieser stellt insgesamt $8$ verschiedene Modi mit Datenraten zwischen $4.75 \ \rm kbit/s$ und $12.2 \ \rm kbit/s$ zur Verfügung.
Der AMR-Codec beinhaltet wie der Vollraten–Codec (FRC) – siehe Aufgabe A3.5 – 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 aber 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 ($5 \ \rm ms$) derjenige FCB–Puls und diejenige FCB–Verstärkung ausgewählt, die am besten zum Restsignal passt, das heißt, 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$ bzw. $–1$ belegt sind. Hierzu ist zu bemerken:
- Der Puls ist in fünf Spuren mit jeweils acht möglichen Positionen aufgeteilt, wobei die Spur $1$ die Positionen $1, 6, ... , 36$ des Unterrahmens und Spur $5$ die Positionen $5, 10, ... , 40$ beschreibt.
- In jeder Spur sind genau zwei Werte $+1$ oder $–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 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 FCB–Verstärkung.
In der Grafik sind die $35 \ \rm Bits$ zur Beschreibung eines FCB–Pulses beispielhaft angegeben. In der ersten Spur erkennt man einen positiven Impuls (${\rm VZ} = 1$) bei
- $$1 \hspace{0.1cm}{\rm(erste \hspace{0.1cm}m\ddot{o}gliche \hspace{0.1cm}Position \hspace{0.1cm}f\ddot{u}r\hspace{0.1cm} Spur \hspace{0.1cm}1)} + 0\hspace{0.1cm} {\rm(Bitangabe \hspace{0.1cm} 000)} = 1$$
und einen weiteren positiven Impuls ($110 > 000$) bei der Position
- $$1 +5\hspace{0.1cm}{\rm (Pulsabstand \hspace{0.1cm}in \hspace{0.1cm}jeder \hspace{0.1cm} Spur) } \cdot 6\hspace{0.1cm} {\rm(Bitangabe \hspace{0.1cm} 110)} = 31\hspace{0.05cm}.$$
Die Spur 2 beinhaltet einen negativen Impuls (${\rm VZ} = 0$) bei
- $$2 \hspace{0.1cm}{\rm(erste \hspace{0.1cm}m\ddot{o}gliche \hspace{0.1cm}Position \hspace{0.1cm}f\ddot{u}r\hspace{0.1cm} Spur \hspace{0.1cm}2)} + 5\cdot 4 \hspace{0.1cm} {\rm(Bitangabe \hspace{0.1cm} 100)} = 22\hspace{0.05cm}.$$
Da $011 < 100$ ist, hat der Impuls bei der Position $2 + 5 \cdot 3$ (Bitangabe $011$) $= 17$ das umgekehrte Vorzeichen, ist also positiv. Die Angaben zu den Spuren $3, 4$ und $5$ sollen in den Teilfragen (1),(2) und (4) von Ihnen interpretiert werden.
Hinweis:
Diese Aufgabe bezieht sich auf Sprachcodierung.
Eingabe der Pulspositionen für die Aufgaben (4), (5), (6): Man müsste zum Beispiel für Spur $2$ die Werte $„–22”$ und $„+17”$ eintragen. $N_{1}$ bezeichnet das erste Bit–Tripel und $N_{2}$ das zweite.
Fragebogen
Musterlösung
(1) Mit der Datenrate $12.2 \ \rm kbit/s$ ergeben sich innerhalb von $20 \ \rm ms$ genau $\underline{244 \ \rm Bit}$, während zum Beispiel im $4.75 \ \rm kbit/s$–Modus nur $95 \ \rm Bit$ übertragen werden.
(2) In jedem Unterrahmen benötigt der FCB–Puls $35 \ \rm Bit$ (fünf Spuren zu je sieben Bit) und die FCB–Verstärkung fünf Bit. Bei vier Unterrahmen kommt man so auf $N_{\rm FCB} \underline{= 160 \ \rm Bit}$.
(3) Hierfür verbleiben die Differenz aus (1) und (2), also $N_{\rm LPC/LTP}\underline{ = 84 \ \rm 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
- $$|N_1| \ = \ 3 \hspace{0.1cm}{\rm(da \hspace{0.1cm} Spur \hspace{0.1cm}3)} + 5\cdot 1 \hspace{0.1cm} {\rm(Bitangabe \hspace{0.1cm} 001)} = 8\hspace{0.05cm}, $$
- $$ |N_2| \ = \ 3 \hspace{0.1cm}{\rm(da \hspace{0.1cm} Spur \hspace{0.1cm}3)} + 5\cdot 3 \hspace{0.1cm} {\rm(Bitangabe \hspace{0.1cm} 011)} = 18\hspace{0.05cm}.$$
Einzugeben sind deshalb $N_{1} \underline{ = –8}$ und $N_{2} \underline{ = –18}$
(5) In analoger Weise erhält man für die Spur 4 die Werte $N_{1} \underline{ = +39}$ und $N_{2} \underline{ = –14}$
(6) Die fünfte Spur liefert $N_{1} \underline{ = –30}$ und $N_{1} \underline{ = +5$