Beschreibungdescription
Verfahren zur Decodierung einer mit Hilfe eines binären Fal¬ tungscodes verschlüsselten DatenfolgeA method for decoding a using a binary Fal ¬ tung codes encrypted data sequence
Die vorliegende Erfindung betrifft ein Verfahren zur Decodie¬ rung einer mit Hilfe eines binären Faltungscodes verschlüsselten Datenfolge aus K Informationsbits mittels einem Max- LogMAP-Algorithmus .The present invention relates to a process for Decodie ¬ tion of an encrypted using a binary convolutional code data sequence from K information bits using a Max LogMAP algorithm.
Bei Sprachkanälen und bei Datenkanälen eines Funkkommunikationssystems, das beispielsweise nach dem GSM/EDGE-Mobilfunk- standard ausgeprägt ist, werden zur Datencodierung bzw. Datendecodierung binäre Faltungscodes verwendet. Ein bevorzug- ter Algorithmus für eine sogenannte „Softinput/Softoutput-De- codierung* ist der bekannte ,,symbol-by-symbol log-likelihood maximum aposteriori probability*-Algorithmus (LogMAP-Algo- rithmus) , der im allgemeinen mit Hilfe einer Maximum-Approximation (MaxLogMAP-Algorithmus) realisiert wird.In the case of voice channels and data channels of a radio communication system, which is designed, for example, according to the GSM / EDGE mobile radio standard, binary convolutional codes are used for data coding or data decoding. A preferred algorithm for a so-called “soft input / soft output decoding * is the well-known“ symbol-by-symbol log-likelihood maximum aposteriori probability * algorithm (LogMAP algorithm), which is generally based on a Maximum approximation (MaxLogMAP algorithm) is realized.
Der grundlegende MAP-Algorithmus ist beispielsweise in der Druckschrift „Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate , L.R. Bahl et al . , IEEE Transactions on Information Theory, pp. 284 - 287, March 1974 beschrieben, der MaxLogMAP-Algorithmus kann der Druckschrift „Iterative Decoding of Binary Block and Convolutional Codes*, J. Hage- nauer et al . , IEEE Transactions on Information Theory, vol. 42, no. 2, pp. 429 - 445, March 1996 entnommen werden.The basic MAP algorithm is described, for example, in the publication "Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate, L.R. Bahl et al. , IEEE Transactions on Information Theory, pp. 284-287, March 1974, the MaxLogMAP algorithm can be described in the document “Iterative Decoding of Binary Block and Convolutional Codes *, J. Hagenauer et al. , IEEE Transactions on Information Theory, vol. 42, no. 2, pp. 429-445, March 1996.
Ein mit Hilfe eines sogenannten „gleitenden Fensters* (Deco- dierfenster) durchgeführter indow-MaxLogMAP-Algorithmus ist in der Druckschrift „An Intuitive Justification and a Simpli-
fied Implementation of the MAP Decoder for Convolutional Codes* , A. J. Viterbi, IEEE Journal on Selected Areas in Communications, vo. 16, no.2, pp. 260 - 264, Feb. 1998, beschrieben.An indow MaxLogMAP algorithm carried out with the help of a so-called “sliding window * (decoding window) is described in the publication“ An Intuitive Justification and a Simplified fied Implementation of the MAP Decoder for Convolutional Codes *, AJ Viterbi, IEEE Journal on Selected Areas in Communications, vo. 16, no.2, pp. 260-264, Feb. 1998.
Als Grundlage für die Decodierung einer mit Hilfe eines binären Faltungscodes verschlüsselten Datenfolge dient das binäre Trellis-Diagramm. Ein zu einem Informationsbit der Datenfolge gehörendes Segment des Trellis-Diagramms erfasst alle mögli- chen Kombinationen von m (Gedächtnislänge des Faltungscodes) vorausgegangen Informationsbits als 2m Ausgangszustände. Weiterhin werden alle sich daraus ergebenden „Umrechnungen* (Codierungen) des Informationsbits als 2lm+1) Zustandsübergän- ge und resultierende 2m Zielzustände als Ausgangszustände für das nächste nachfolgende Informationsbit erfasst. Eine Informationsbitfolge entspricht dabei einem bestimmten Pfad innerhalb des Trellis-Diagramms, wobei mit Hilfe des MaxLogMAP-Algorithmus eine Abfolge der wahrscheinlichsten Informationsbits im Trellis-Diagramm ermittelt wird.The binary trellis diagram serves as the basis for decoding a data sequence encrypted with the aid of a binary convolutional code. A segment of the trellis diagram belonging to an information bit of the data sequence captures all possible combinations of m (memory length of the convolutional code) preceding information bits as 2 m initial states. Furthermore, all resulting “conversions * (encodings) of the information bit are recorded as 2 lm + 1) state transitions and resulting 2 m target states as initial states for the next subsequent information bit. An information bit sequence corresponds to a specific path within the trellis diagram, with the MaxLogMAP algorithm being used to determine a sequence of the most likely information bits in the trellis diagram.
Bei der Realisierung des MaxLogMAP-Algorithmus ist grundsätzlich zwischen einer systolischen Realisierung einerseits, und einer prozessor-orientierten Realisierung andererseits zu unterscheiden. Bei der systolischen Realisierung wird eine möglichst hohe Parallelität von Decodierschritten im gesamten Trellis- Diagramm angestrebt. Diese Realisierung kommt bei extrem hohen Datendurchsatz-Anforderungen von bis zu 50 Gbit/s zur Anwendung. Die prozessor-orientierte Realisierung ist bei geringem Hardwareaufwand für moderate Datendurchsatz-Anforderungen von einigen Mbit/s geeignet.
Bei beiden Realisierungen wird vorausgesetzt, dass für große, blockweise übertragene Datenfolgen eine Decodierung nur mit Hilfe eines Decodierfenster sinnvoll realisiert werden kann.When implementing the MaxLogMAP algorithm, a distinction must be made between a systolic implementation on the one hand and a processor-oriented implementation on the other. In the systolic implementation, the greatest possible parallelism of decoding steps in the entire trellis diagram is sought. This implementation is used for extremely high data throughput requirements of up to 50 Gbit / s. The processor-oriented implementation is suitable for moderate data throughput requirements of a few Mbit / s with little hardware expenditure. In both implementations, it is assumed that for large data sequences transmitted in blocks, decoding can only be sensibly implemented with the aid of a decoding window.
Aus Gründen des Datendurchsatzes und des Hardwareaufwands wird zur Decodierung in der Regel der Window-MaxLogMAP- Algorithmus verwendet .For reasons of data throughput and hardware expenditure, the Window MaxLogMAP algorithm is generally used for decoding.
Decodierungs-Ergebnisse (Softoutput-Werte) , die vergleichend dazu mit einem MaxLogMAP-Algorithmus ohne Decodierfenster gewonnen werden, sind zwar genauer, jedoch wird hierbei ein großer Aufwand an Hardware und an Speicher benötigt.Decoding results (soft output values), which are obtained in comparison with a MaxLogMAP algorithm without a decoding window, are more accurate, but this requires a great deal of hardware and memory.
Eine Alternative zum MaxLogMAP-Algorithmus wird, bezogen auf eine Blockfehlerrate bei einem gegebenem Signal-Rausch-An alternative to the MaxLogMAP algorithm is based on a block error rate for a given signal-to-noise
Abstand, durch den in DE 39 10 739 C3 bzw. in DE 42 24 214 C2 beschriebenen „Softoutput-Viterbi-Algorithmus* (SOVA) gebildet. Der SOVA-Algorithmus weist vergleichend zum MaxLogMAP- Algorithmus jedoch eine geringere Korrelation zwischen Deco- dierfehlern und gebildeten Softoutput-Werten auf.Distance formed by the “soft output viterbi algorithm * (SOVA) described in DE 39 10 739 C3 or DE 42 24 214 C2. Compared to the MaxLogMAP algorithm, however, the SOVA algorithm has a lower correlation between decoding errors and the soft output values formed.
Die Aufgabe der vorliegenden Erfindung besteht darin, eine Decodierung einer mit Hilfe eines binären Faltungscodes verschlüsselten Datenfolge mittels MaxLogMAP-Algorithmus derart durchzuführen, dass bei geringem Hardwareaufwand genaueThe object of the present invention is to carry out a decoding of a data sequence encrypted with the aid of a binary convolutional code by means of the MaxLogMAP algorithm in such a way that with low hardware expenditure, precise
Softoutput-Werte als Decodierungs-Ergebnisse gebildet werden.Soft output values are formed as decoding results.
Die Aufgabe der Erfindung wird durch die Merkmale des Anspruchs 1 gelöst. Vorteilhafte Weiterbildungen sind in den Unteransprüchen angegeben.The object of the invention is solved by the features of claim 1. Advantageous further developments are specified in the subclaims.
Das erfindungsgemäße Verfahren gehört zu den prozessororientierten Realisierungen des MaxLogMAP-Algorithmus.
Durch die erfindungsgemäße Speicherkaskadierung einerseits und durch die Verwendung von Stützstellen zur Metrikberech¬ nung andererseits, ist der MaxLogMAP-Algorithmus effizient auf genau einem anwenderspezifischen Baustein (ASIC) integrierbar.The method according to the invention is one of the processor-oriented implementations of the MaxLogMAP algorithm. The inventive Speicherkaskadierung one hand, and by the use of support points for Metrikberech ¬ voltage on the other hand, the MaxLogMAP algorithm is efficient on exactly one user-specific module (ASIC) can be integrated.
Durch den Verzicht auf die Verwendung eines Decodierfensters müssen keine Abstriche bei der Genauigkeit der Decodierungs- ergebnisse erfolgen.By not using a decoding window, there is no need to compromise on the accuracy of the decoding results.
Die Metrikwerte werden erfindungsgemäß bei einem ersten Berechnungsdurchgang produktiv und bei weiteren Berechnungsdurchgängen auf den abgespeicherten Stützstellen basierend reproduktiv berechnet.According to the invention, the metric values are calculated productively in a first calculation run and reproductively in further calculation runs based on the stored reference points.
Durch die erfindungsgemäße Speicherkaskadierung wird ein optimaler Datendurchsatz realisiert.An optimal data throughput is realized by the storage cascading according to the invention.
Durch das erfindungsgemäße Verfahren wird Speicherplatz und damit Fläche auf einem ASIC-Baustein eingespart. Die eingesparte Fläche steht somit für weitere Signalverarbeitungsalgorithmen zur Verfügung, wodurch zusätzliche Algorithmen im ASIC-Baustein realisierbar sind.The method according to the invention saves storage space and thus area on an ASIC module. The space saved is thus available for further signal processing algorithms, which means that additional algorithms can be implemented in the ASIC module.
Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand einer Zeichnung näher erläutert. Dabei zeigt:An exemplary embodiment of the invention is explained in more detail below with reference to a drawing. It shows:
FIG 1 eine prinzipielle Darstellung eines MaxLogMAP- Algorithmus zur exakten Berechnung von Softoutput-1 shows a basic representation of a MaxLogMAP algorithm for the exact calculation of soft output
Werten gemäß dem Stand der Technik,
FIG 2 eine prinzipielle Darstellung eines Window-MaxLogMAP- Algorithmus zur Berechnung von Softoutput-Werten gemäß dem Stand der Technik,State-of-the-art values, 2 shows a basic illustration of a window MaxLogMAP algorithm for calculating soft output values according to the prior art,
FIG 3 eine prinzipielle Darstellung eines erfindungsgemäßen MaxLogMAP-Algorithmus zur exakten Berechnung von Softoutput-Werten, und3 shows a basic illustration of a MaxLogMAP algorithm according to the invention for the exact calculation of soft output values, and
FIG 4 ein Beispiel zur erfindungsgemäßen Metrikwert- Berechnung und Abspeicherung.4 shows an example of the metric value calculation and storage according to the invention.
FIG 1 zeigt eine prinzipielle Darstellung eines MaxLogMAP- Algorithmus zur exakten Berechnung von Softoutput-Werten gemäß dem Stand der Technik.1 shows a basic representation of a MaxLogMAP algorithm for the exact calculation of soft output values according to the prior art.
Mit Hilfe des MaxLogMAP-Algorithmus wird eine Decodierung ei- ner mit Hilfe eines binären Faltungscodes verschlüsselten Datenfolge aus K Informationsbits durchgeführt.The MaxLogMAP algorithm is used to decode a data sequence encoded using a binary convolutional code from K information bits.
Bei einem Trellis-Diagramm TREL werden an einem Trellis- Segment Tl beginnend Alfa-Metrikwerte Mα-calc-store für je- des einzelne Trellis-Segment TSN als logarithmische Übergangs-Wahrscheinlichkeiten berechnet und abgespeichert. Parallel dazu werden gleichzeitig an einem Trellis-Segment T2 beginnend Beta-Metrikwerte Mß-calc-store für jedes einzelne Trellis-Segment TSN berechnet und abgespeichert.In a trellis diagram TREL, alfa metric values Mα-calc-store for each individual trellis segment TSN starting with a trellis segment T1 are calculated and stored as logarithmic transition probabilities. At the same time, beta metric values Mß-calc-store for each individual trellis segment TSN are calculated and stored starting at a trellis segment T2.
Die beiden Berechnungen passieren einander an einem Trellis- Segment TSM, wobei ab diesem Zeitpunkt ein Entscheidungspro- zess zur Errechnung eines Softoutputwerts durchgeführt wird, d.h. die Decodierung eines Informationsbits der Datenfolge erfolgt. Dabei werden bei einem in Vorwärtsrichtung durchgeführten „Forward-Decision-Process* FDP nach dem Passieren des Trellis-Segments TSM aktuell berechnete Alfa-Metrikwerte
Mα-calc mit den früher berechneten und abgespeicherten Beta- Metrikwerten Mß-calc-store zur Errechnung des Softoutputwerts verwendet .The two calculations take place on a trellis segment TSM, from which point on a decision process for calculating a soft output value is carried out, ie the decoding of an information bit of the data sequence takes place. In the case of a “forward decision process * FDP carried out in the forward direction, after passing the trellis segment TSM, currently calculated alfa metric values are obtained Mα-calc with the previously calculated and stored beta metric values Mß-calc-store used to calculate the soft output value.
Dieser Vorgang erfolgt zeitgleich bei einem in Rückwärtsrichtung durchgeführten „Backward-Decision-Process* BDP, bei dem aktuell berechnete Beta-Metrikwerten Mß-calc mit den früher berechneten und abgespeicherten Alfa-Metrikwerten Mα-calc- store zur Errechnung des Softoutputwerts verwendet werden.This process takes place at the same time in a backward decision process * BDP, in which the currently calculated beta metric values Mß-calc are used with the previously calculated and stored Alfa metric values Mα-calc-store to calculate the soft output value.
Im Folgenden gilt: K Informationsbitanzahl, s Zustand einer Faltungscode-Decodierung, Codegedächtnislänge, T benötigte Anzahl an Trellis-Segmenten, mit T = K + m, und π Länge einer Einschwingphase, mit π > 5*mThe following applies: K information bit number, s state of a convolutional code decoding, code memory length, T required number of trellis segments, with T = K + m, and π length of a transient phase, with π> 5 * m
Mit einer Wortbreite w eines Metrikspeichers und unter der Annahme, dass die jeweiligen Metrikwerte normiert werden, werden für diese Realisierung des MaxLogMAP-Algorithmus zweiWith a word width w of a metric memory and assuming that the respective metric values are normalized, there are two for this implementation of the MaxLogMAP algorithm
Metrik-Prozessoren und insgesamt 2 -K/2 - w - 2m Speicherplätze benötigt. Es wird ein Datendurchsatz erreicht von: 1Metric processors and a total of 2 -K / 2 - w - 2 m memory spaces required. A data throughput of: 1
[Mbit/s; t segment - 10[Mbit / s; t segment - 10
Der oben genannte Parameter tsegment ist dabei abhängig von der zur Implementierung des Algorithmus verwendeten Baustein- Technologie (ASIC) , von der Speicherarchitektur und von der beim ASIC-Baustein verwendeten Taktrate.
Bei terminierten Codes beginnt die jeweilige Berechnung der Metrikwerte unter der Annahme einer ungleichmäßigen Wahrscheinlichkeitsverteilung bei einem Trellis-Segment mit einem Startzustandswert („initial-state* ) , der eine Wahrscheinlich- keit von 100% aufweist, während alle weiteren „states* eine Wahrscheinlichkeit von 0% aufweisen.The above-mentioned parameter t segmen t is dependent on the module technology (ASIC) used to implement the algorithm, on the memory architecture and on the clock rate used in the ASIC module. In the case of terminated codes, the respective calculation of the metric values begins with the assumption of an uneven probability distribution in a trellis segment with a start state value (“initial state”), which has a probability of 100%, while all further “states * have a probability of Have 0%.
Bei den sogenannten „Tailbiting-Codes* ist kein Startzustand von vornherein bekannt, weshalb eine Einschwingphase der Län- ge π für beide Richtungen eingeführt werden muss. Zugehörige Metrikwerte der Einschwingphase sind mit Mα-pre bzw. mit Mß-pre bezeichnet.With the so-called “tailbiting codes *”, no start state is known from the outset, which is why a settling phase of length π must be introduced for both directions. Associated metric values of the transient phase are designated with Mα-pre or with Mß-pre.
FIG 2 zeigt eine prinzipielle Darstellung eines Window- MaxLogMAP-Algorithmus zur Berechnung von Softoutput-Werten gemäß dem Stand der Technik.2 shows a basic illustration of a window MaxLogMAP algorithm for calculating soft output values according to the prior art.
Bei langen Datenfolgen wird der Window-MaxLogMAP-Algorithmus, der mit Hilfe eines gleitenden Decodierfensters realisiert wird, verwendet. Als besonderer Vorteil des Window-MaxLogMAP- Algorithmus ist dessen effiziente Implementierung zu nennen.The Window-MaxLogMAP algorithm, which is implemented with the help of a sliding decoding window, is used for long data sequences. A particular advantage of the Window MaxLogMAP algorithm is its efficient implementation.
Vergleichend mit FIG 1 werden Alfa-Metrikwerte Mα-calc in Vorwärtsrichtung bei einem Trellis-Segment Tl beginnend exakt berechnet. Demgegenüber werden Beta-Metrikwerte Mß-calc-1 eines ersten Decodierfensters DPI bzw. Beta-Metrikwerte Mß- calc-2 eines zweiten Decodierfensters DP2 geschätzt.In comparison with FIG. 1, alpha metric values Mα-calc are calculated exactly starting in the forward direction with a trellis segment Tl. In contrast, beta metric values Mß-calc-1 of a first decoding window DPI or beta metric values Mß-calc-2 of a second decoding window DP2 are estimated.
Erreichen die beiden Decodierfenster DPI und DP2 den rechten Rand des Trellis-Diagramms TREL, sind alle Terminierungsin- formationen vorhanden. Es werden die Beta-Metrikwerte
Mß-calc-1 bzw. Mß-calc-2 exakt berechnet und die entsprechen¬ den Softoutput-Werte gebildet.If the two decoding windows DPI and DP2 reach the right edge of the trellis diagram TREL, all termination information is available. It will be the beta metric values Mß-calc-1 or Mß-calc-2 calculated exactly and the corresponding ¬ the soft output values formed.
Metrikwerte Mα-pre, Mß-pre-1 und Mß-pre-2 werden wiederum ei- ner Einschwingphase zugeordnet.Metric values Mα-pre, Mß-pre-1 and Mß-pre-2 are in turn assigned to a settling phase.
Der Window-MaxLogMAP-Algorithmus ist in der oben genannten Druckschrift „An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes* näher beschrieben.The Window-MaxLogMAP algorithm is described in more detail in the above-mentioned publication “An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes *.
Bei dieser Realisierung werden bei einem mit FIG 1 vergleichbaren Datendurchsatz insgesamt |w/ζ- +l Metrik-Prozessoren sowie \ + θ)- ψ - w - 2m Speicherplätze benötigt.In this implementation, with a data throughput comparable to FIG. 1, a total of | w / ζ- + l metric processors and \ + θ) - ψ - w - 2 m memory locations are required.
Dabei ist: ψ die Anzahl an Trellis-Segmenten, für die jeweils 2m Here is: ψ the number of trellis segments, for each 2 m
Metriken gespeichert werden, w die Größe des Decodierfensters in Trellis- Segmenten, und θ e {θ,l} ein Parameter, der abhängig von der zur Implementierung des Algorithmus verwendeten Baustein- Technologie (ASIC) , von der Speicherarchitektur und von der beim ASIC-Baustein verwendeten Taktrate ist.Metrics are stored, w the size of the decoding window in trellis segments, and θ e {θ, l} a parameter that depends on the chip technology (ASIC) used to implement the algorithm, on the memory architecture and on the ASIC Block rate used is.
Speziell bei Coderaten nahe eins (mit Hilfe von Punktierung erzeugt) hochratiger Kanäle, werden durch Verwendung des Decodierfensters jedoch nicht mehr tolerierbare Performance- Verschlechterungen verursacht.
FIG 3 zeigt eine prinzipielle Darstellung eines erfindungsgemäßen MaxLogMAP-Algorithmus zur exakten Berechnung von Softoutput-Werten.Especially at code rates close to one (generated with the help of puncturing) of high-rate channels, however, performance degradations that are no longer tolerable are caused by using the decoding window. 3 shows a basic illustration of a MaxLogMAP algorithm according to the invention for the exact calculation of soft output values.
Vergleichend mit FIG 1 werden wieder Alfa-Metrikwerte in einer Vorwärtsrichtung und Beta-Metrikwerte in einer Rückwärtsrichtung jedes Trellis-Segments TSN berechnet. Jedoch werden jetzt erfindungsgemäß nur Metrikwerte einer ausgewählten Anzahl an Trellis-Segmenten, die als Stützstellen dienen, aus- gewählt und abgespeichert.In comparison with FIG. 1, again Alfa metric values in a forward direction and beta metric values in a backward direction of each trellis segment TSN are calculated. However, according to the invention, only metric values of a selected number of trellis segments that serve as support points are now selected and stored.
Die Abspeicherung erfolgt in einer bevorzugten Ausführungsform innerhalb eines in Ebenen kaskadiert aufgeteilten Speichers .In a preferred embodiment, the storage takes place within a memory cascaded in levels.
Im Folgenden gilt: m Codegedächtnislänge, sm „memory-length-shift* eines Feed-Forward-The following applies: m code memory length, sm “memory length shift * of a feed forward
Terminated-Cödes (bei einem Rekursiv-Terminated- Code und bei einem Tail-Biting-Code ist sm = 0) ,Terminated cödes (for a recursive terminated code and for a tail biting code sm = 0),
K Informationsbitanzahl, T benötigte Anzahl an Trellis-Segmenten, es gilt T = K + m; π Länge der Einschwingphase mit π > 5*m . δ(l) Speichertiefe einer ersten Speicherebene SP(1) für Stützstellen einer ersten Metrikwert-Berechnung, δ(n-l) Speichertiefe einer n-1 ten Speicherebene SP(n-l) für Stützstellen einer n-1 ten Metrikwert- Berechnung, und δ(n) Speichertiefe einer n-ten Speicherebene SP(n) für Stützstellen einer n-1 ten Metrikwert-Berechnung.
Beim Trellis-Diagramm TREL werden in einem ersten Durchgang an einem Trellis-Segment Tl beginnend Alfa-Metrikwerte Mα-calc(l) in einer Vorwärtsrichtung FDP und an einem Trel¬ lis-Segment T2 beginnend Beta-Metrikwerte Mß-calc(l) in einer Rückwärtsrichtung BDP für jedes einzelne der Trellis-Segmente TSN als logarithmische Übergangs-Wahrscheinlichkeiten berechnet.K number of information bits, T required number of trellis segments, T = K + m; π Length of the settling phase with π> 5 * m. δ (l) storage depth of a first storage level SP (1) for support points of a first metric value calculation, δ (nl) storage depth of an n-1 th storage level SP (nl) for support points of an n-1 th metric value calculation, and δ (n ) Storage depth of an n-th storage level SP (n) for nodes of an n-1 th metric value calculation. Be at the trellis diagram TREL in a first pass on a trellis segment Tl starting Alfa-metric values Mα-calc (l) in a forward direction FDP and at a Trel ¬ lis segment T2 starting beta metric values MSS calc (l) in a reverse direction BDP for each of the trellis segments TSN as logarithmic transition probabilities.
Erfindungsgemäß werden jedoch jetzt aus den errechneten Met- rikwerten Mα-calc(l) bzw. Mß-calc(l) des ersten Durchgangs für eine Auswahl von K/δ(l) Trellis-Segmenten, die als Stützstellen dienen, Metrikwerten Mα-calc-sel (1) bzw. Mß-calc- sel(l) des ersten Durchgangs jeweils in einer ersten Spei- - cherebene SP(1) mit einer Speichertiefe von δ(l) abgelegt.According to the invention, however, the calculated metric values Mα-calc (l) or Mß-calc (l) of the first pass for a selection of K / δ (l) trellis segments which serve as support points are now metric values Mα-calc -sel (1) or Mß-calc- sel (l) of the first pass are each stored in a first storage level SP (1) with a storage depth of δ (l).
Bei einem zweiten Durchgang werden, basierend auf je zwei benachbarten Stützstellen des ersten Durchgangs, wiederum Metrikwerte Mα-calc(2) bzw. Mß-calc(2) derjenigen Trellis- Segmente TSN berechnet, die zwischen den jeweiligen Stütz- stellen des ersten Durchgangs angeordnet sind.In a second run, based on two neighboring support points of the first run, metric values Mα-calc (2) or Mß-calc (2) of those trellis segments TSN which are arranged between the respective support points of the first run are again calculated are.
Wie beim ersten Durchgang werden aus den errechneten Metrikwerten Mα-calc(2) bzw. Mß-calc(2) des zweiten Durchgangs für eine Auswahl von K/δ(l)/δ(2) Trellis-Segmenten, die wiederum als Stützstelen dienen, die entsprechenden MetrikwerteAs in the first run, the calculated metric values Mα-calc (2) and Mß-calc (2) of the second run for a selection of K / δ (l) / δ (2) trellis segments, which in turn serve as support columns , the corresponding metric values
Mα-calc-sel (2) bzw. Mß-calc-sel (2) des zweiten Durchgangs in einer zweiten Speicherebene SP(2) mit einer Speichertiefe von δ(2) abgelegt.Mα-calc-sel (2) or Mß-calc-sel (2) of the second pass are stored in a second storage level SP (2) with a storage depth of δ (2).
Diese auf den Stützstellen eines vorhergehenden Durchgangs basierende Metrikwert-Berechnung wird dementsprechend sowohl
in Vorwärtsrichtung als auch in Rückwärtsrichtung fortgesetzt. Dabei werden nach dem Passieren des Trellis-Segments TSM entsprechende Softoutput-Werte gebildet, wobei freiwerdende Speicherebenen entsprechend neu eingesetzt werden.This metric value calculation based on the support points of a previous run is accordingly both continued in the forward and backward directions. Corresponding soft output values are formed after passing through the TSM trellis segment, with memory levels that are freed up being used accordingly.
Der Entscheidungsprozess zur Bestimmung der Softoutputwerte erfolgt dabei wie in FIG 1 beschrieben. Die einzelnen Speicherebenen sind zueinander kaskadiert aufgebaut.The decision process for determining the soft output values takes place as described in FIG. 1. The individual storage levels are cascaded.
Nach n Durchgängen sind alle Softoutputwerte bestimmt, wobei die n-te Speicherebene eine Speichertiefe von δ(n) mit abgespeicherten Metrikwerten von K/δ (1) /δ (2) / .... / δ(n) Trellis- Segmenten bzw. Stützstellen aufweist.After n passes, all soft output values are determined, the nth memory level having a memory depth of δ (n) with stored metric values of K / δ (1) / δ (2) / .... / δ (n) trellis segments or Has support points.
Vergleichend mit den in den Figuren FIG 1 bzw. FIG 2 angegebenen Datendurchsatz werden durch das erfindungsgemäße Verfahren insgesamt 2 - n Metrik-Prozessoren sowieIn comparison with the data throughput indicated in FIGS. 1 and 2, a total of 2 - n metric processors and
« w - 2m Speicherplätze benötigt. «W - 2 m of storage space required.
Es gilt dabei: = K , θx e {θ,l} , in Abhängigkeit davon, wievie-
le ASIC-Taktzyklen für ein Trellis-Segment benötigt werden und wieviele Ports an den Speichern zur Verfügung stehen.The following applies: = K, θ x e {θ, l}, depending on how many le ASIC clock cycles are required for a trellis segment and how many ports are available in the memories.
Anhand von existierenden Realisierungen des MaxLogMAPWindow- Algorithmus können Parameter abgeleitet und für einen Vergleich zwischen den aus FIG 1 bzw. FIG 2 bekannten, herkömmlichen Realisierungen und der erfindungsgemäßen Realisierung verwendet werden.
Die Ergebnisse sind der nachfolgenden Tabelle zu entnehmen:Using existing implementations of the MaxLogMAPWindow algorithm, parameters can be derived and used for a comparison between the conventional implementations known from FIG. 1 or FIG. 2 and the implementation according to the invention. The results are shown in the table below:
Bei gleichem Datendurchsatz und ohne Abstriche bei der Genauigkeit des MaxLogMAP-Algorithmus, ermöglicht durch die Vermeidung eines Decodierfensters, wird der Hardware-Aufwand bei der erfindungsgemäßen speicherkaskadierten Realisierung um mehr als 80% gegenüber der herkömmlichen in FIG 1 beschriebenen Realisierung verringert.With the same data throughput and without sacrificing the accuracy of the MaxLogMAP algorithm, made possible by avoiding a decoding window, the hardware outlay in the memory-cascaded implementation according to the invention is reduced by more than 80% compared to the conventional implementation described in FIG.
Dabei wurde für diesen Vergleich vorausgesetzt:The following was assumed for this comparison:
- ein Overhead durch Softinput- und Softoutput Puffer an einer Systemschnittstelle mit (R-1 + l)- wsoft - k - amemory wobei in der Regel k=K ist, jedoch k=W+((np - 1)*δ) bei der Realisierung mit Decodierfenster sein kann; mit R als Code-- an overhead through soft input and soft output buffers at a system interface with (R -1 + l) - w soft - k - a memory where usually k = K, but k = W + ((n p - 1) * δ ) can be implemented with a decoding window; with R as code
Rate, wSOt als Wortbreite der Softwerte sowie a memory als Flächeneinheit pro Speicherbit,Rate, w SO t as the word width of the software and a memory as the unit of area per memory bit,
- ein Overhead durch Ansteuerung und Schnittstelle: AoVerhead.- An overhead through control and interface: A oVerhead .
- ein Metrik-Prozessor incl. Skalierung der Registerbits: t rH M' /parallel + ^→ ■ W ■ ü fll≠op wobei AViterbi die Viterbi-Arithmetik für eine gegebene Wortbreite w und aflipflop die Registerflächeneinheit pro Bit darstellen, fparallel ist die Anzahl der in einem ASIC- Taktzyklus ausgeführten Butterfly-Berechnungen und kann folgende Werte annehmen: {1,2, ..., 2( ~1)},
- eine Metrik-Wortbreite w = 16,- a metric processor including scaling of the register bits: t rH M '/ parallel + ^ → ■ W ■ ü fll ≠ op where A V iterbi represent the Viterbi arithmetic for a given word width w and a flip-flop the register area unit per bit, f parallel is the number of butterfly calculations carried out in an A S I C cycle and can take the following values: {1,2, ..., 2 (~ 1) }, a metric word width w = 16,
- eine Softwert-Wortbreite wsoft = 8,- a software word length w soft = 8,
- eine Speicherbitfläche amemσry = 2,a memory bit area a memσr y = 2,
- eine Registerbitfläche amPfχ0p = 10 Einheiten,a register bit area at P fχ 0 p = 10 units,
- ein Viterbi-Arithmetik/Butterfly Ävieü = 12500 Einheiten,- a Viterbi arithmetic / butterfly equivalent = 12500 units,
- ein Overhead Aoverhead = 50000 Einheiten.- an overhead A over head = 50,000 units.
Die Einheiten entsprechen einem Gatteräquivalent einer 0,18 μm ASIC-Technologie bei einer Taktfrequenz von rund 150 MHz.The units correspond to a gate equivalent of 0.18 μm ASIC technology at a clock frequency of around 150 MHz.
Im Folgenden werden Daten eines GSM/EDGE-Standard relevanten Parametersatz verglichen:In the following, data of a GSM / EDGE standard relevant parameter set are compared:
- Code-Rate R = 1/6- Code rate R = 1/6
- Gedächtnislänge m = 6 - Blockgröße K = 1000- Memory length m = 6 - Block size K = 1000
- Decoder-Durchsatz größer als 2 Mbit/s- Decoder throughput greater than 2 Mbit / s
- Parallelität fparaiiei = 1
- parallelism fparaiiei = 1
Bei UMTS (W-CDMA) und bei UTRAN TDD Faltungscodes sind für die Faltungsdecodierung folgende Parameter zu verwenden:With UMTS (W-CDMA) and with UTRAN TDD convolutional codes the following parameters have to be used for the convolution decoding:
- Code-Rate R = 1/3- Code rate R = 1/3
- Gedächtnislänge m = 8- Memory length m = 8
- Maximale Blockgröße K = 300- Maximum block size K = 300
- Decoder-Durchsatz größer als 2 Mbit/s- Decoder throughput greater than 2 Mbit / s
- Parallelität fparallel = 8- parallelism fparallel = 8
Bei UMTS (W-CDMA) und bei UTRAN TDD Turbo Codes kommt ein MaxLogMAP-Decoder mit geringfügigen Erweiterungen als Teil der Turbo-Decodierung in Betracht. So kann auch hier die speicherkaskadierte Realisierung mit der direkten und der Fenster-Realisierung verglichen werden: With UMTS (W-CDMA) and UTRAN TDD Turbo Codes, a MaxLogMAP decoder with minor extensions can be considered as part of the turbo decoding. Here, too, the memory cascaded implementation can be compared with the direct and the window implementation:
Code-Rate R = 1/3 Gedächtnislänge m = 3 Maximale Blockgröße K = 5200 Decoder-Durchsatz größer als 2 Mbit/s Parallelität f arallel = 1/4Code rate R = 1/3 memory length m = 3 Maximum block size K = 5200 Decoder throughput greater than 2 Mbit / s parallelism f arallel = 1/4
FIG 4 zeigt ein Beispiel zur erfindungsgemäßen Metrikwert- Berechnung und Abspeicherung.4 shows an example of the metric value calculation and storage according to the invention.
Bei einem ersten Durchgang Dl werden Alfa-Metrikwerte bzw. Beta-Metrikwerte berechnet. Von jedem sechsten Trellis- Segment TSN = 1, 7, 13, ..., 73 als Stützstelle werden je-
weils 2 berechnete Alfa-Metrikwerte in einer Speicherebene SP(αl) und jeweils 2m berechnete Beta-Metrikwerte in einer Speicherebene SP(ßl) abgespeichert.In a first run D1, alpha metric values or beta metric values are calculated. From every sixth trellis segment TSN = 1, 7, 13, ..., 73 as support point because 2 calculated alpha metric values are stored in a storage level SP (αl) and 2 m calculated beta metric values in each case in a storage level SP (ßl).
In einem zweiten Durchgang D2 werden diese Metrikwerte aus den Speicherebenen SP(αl) bzw. SP(ßl) ausgelesen und von den zwischen den Stützstellen angeordneten Trellis-Segmenten die zugehörigen Alfa-Metrikwerte bzw. Beta-Metrikwerte exakt berechnet. Wieder wird eine entsprechende Auswahl an Trellis- Segmenten als Stützstellen getroffen und die zugehörigen Metrikwerte abgespeichert. Beispielhaft sind hier zwei Speicherebenen SP(α2) und SP(α2') bzw. SP(ß2) und SP(ß2') angegeben.In a second pass D2, these metric values are read out from the memory levels SP (αl) or SP (β1) and the associated alpha metric values or beta metric values are calculated exactly from the trellis segments arranged between the support points. Again, a corresponding selection of trellis segments is made as support points and the associated metric values are stored. Two memory levels SP (α2) and SP (α2 ') or SP (ß2) and SP (ß2') are given here as examples.
In einem dritten Durchgang D3 wird von beiden Seiten her das Trellis-Segment TSM erreicht und es werden für den „Backward- Decision-Process* aktuell berechnete 2m Beta-Metrikwerte mit abgespeicherten 2m Alfa-Metrikwerten, die im Speicher SP(α2) abgelegt sind, zur Bestimmung von Softoutput-Werten verwendet. Genauso werden für den „Forward-Decision-Process* aktu- eil berechnete 2m Alfa-Metrikwerte mit abgespeicherten 2m Beta-Metrikwerten, die im Speicher SP(ß2) abgelegt sind, zur Bestimmung von Softoutput-Werten verwendet.In a third pass D3, the trellis segment TSM is reached from both sides and 2 m beta metric values currently calculated for the “backward decision process *” with stored 2 m Alfa metric values are stored in the memory SP (α2). are used to determine soft output values. Likewise, 2 m alpha metric values currently calculated for the “forward decision process *” with stored 2 m beta metric values, which are stored in the memory SP (β2), are used to determine soft output values.
Nach insgesamt n=3 Durchgängen Dn wurden alle Entscheidungs- werte Mdecisions gebildet.
After a total of n = 3 passes Dn, all decision values Mdecisions were formed.