DE10247227A1 - Processing data stream in radio receiver using Viterbi- and software based procedures divides data flow for series of sequentially-overlapping execution stages - Google Patents
Processing data stream in radio receiver using Viterbi- and software based procedures divides data flow for series of sequentially-overlapping execution stages Download PDFInfo
- Publication number
- DE10247227A1 DE10247227A1 DE2002147227 DE10247227A DE10247227A1 DE 10247227 A1 DE10247227 A1 DE 10247227A1 DE 2002147227 DE2002147227 DE 2002147227 DE 10247227 A DE10247227 A DE 10247227A DE 10247227 A1 DE10247227 A1 DE 10247227A1
- Authority
- DE
- Germany
- Prior art keywords
- symbols
- calculation procedure
- calculation
- hardware
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/03—Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
- H04L25/03006—Arrangements for removing intersymbol interference
- H04L25/03178—Arrangements involving sequence estimation techniques
- H04L25/03184—Details concerning the metric
- H04L25/03197—Details concerning the metric methods of calculation involving metrics
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
Verfahren und Vorrichtung zur Verarbeitung eines Datenstroms in einem Funkempfänger mittels Software- und Hardware-ProzedurenMethod and device for processing a Data stream in a radio receiver using software and hardware procedures
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Verarbeitung eines Datenstroms in einem Funkempfänger mittels Software- und Hardware-Prozeduren.The invention relates to a method and a device for processing a data stream in one radio receiver using software and hardware procedures.
In einem Mobilfunkempfänger werden eine Vielzahl unterschiedlicher Verarbeitungsschritte und Rechenprozeduren ausgeführt, um aus einem empfangenen Funksignal das gesendete Signal zu rekonstruieren. Im Folgenden werden nur die nach einer Analog-Digital-Umsetzung des empfangenen Signals durchzuführenden Verarbeitungsschritte betrachtet. Vor der Entzerrung der empfangenen Symbole wird eine Derotation, eine DC-Korrektur, eine Leistungsnormierung sowie eine Vorfilterung der Symbole durchgeführt. Ferner setzt die adaptive Entzerrung eine Schätzung von Kanalparametern des Übertragungskanals voraus. Bei der Viterbi-Entzerrung müssen Übergangsmetriken und Zustandsmetriken berechnet werden, die ACS-(Add Compare Select- )Operationen auf der Basis der berechneten Zustands- und Übergangsmetriken durchgeführt werden, Zustandsvektoren berechnet und zur Berechnung der Soft-Output-Werte Trace-Back Operationen durchgeführt werden. Anschließend müssen die Soft-Output-Werte entschachtelt und depunktiert werden. Daran schließt sich die Kanaldekodierung an. Da die Kanaldekodierung ebenfalls nach dem Viterbi-Algorithmus erfolgt, sind im Rahmen der Kanaldekodierung ebenfalls Zustandsmetriken und Übergangsmetriken zu berechnen sowie ACS- und Trace-Back Operationen auszuführen.Be in a cellphone receiver a multitude of different processing steps and calculation procedures executed to reconstruct the transmitted signal from a received radio signal. The following are only those after an analog-digital conversion of the received signal Processing steps considered. Before the equalization of the received Symbols become a derotation, a DC correction, a power standardization as well as a pre-filtering of the symbols. Furthermore, the adaptive Equalization an estimate of channel parameters of the transmission channel ahead. Viterbi equalization requires transition metrics and state metrics are calculated, the ACS (Add Compare Select) operations based on the calculated State and transition metrics carried out are calculated, state vectors and for calculating the soft output values Trace back operations performed become. Subsequently have to the soft output values are deinterleaved and depunctured. it includes the channel decoding. Since the channel decoding also done according to the Viterbi algorithm, are part of channel decoding also state metrics and transition metrics to calculate and perform ACS and trace-back operations.
Prinzipiell können sämtliche der genannten Aufgaben mit einem DSP (Digital Signal Processor) ausgeführt werden. In der Praxis ist es jedoch nicht möglich, die gesamte Signalverarbeitung von einem DSP bewerkstelligen zu lassen, da DSPs mit den hierfür erforderlichen hohen Rechenkapazitäten nicht verfügbar oder viel zu teuer sind und außerdem eine zu hohe Leistungsaufnahme zeigen. Aus diesem Grund werden dem DSP Hardware-Module (z.B. in Form von Coprozessoren) zugeordnet, welche bestimmte, immer wiederkehrende Rechenprozeduren in Hardware ausführen. Diese aufgabenspezifischen Hardware-Module, die häufig auch als "dedicated hardware", "hardware supports" oder aufgabenspezifische Datenpfade ("dedicated data paths") bezeichnet werden, sind festverdrahtete Schaltungen, die die durch die Festverdrahtung vorgegebene Rechenprozedur schneller und in der Regel mit geringerer Leistungsaufnahme als bei einer Abarbeitung durch einen Prozessor erledigen.In principle, all of the above tasks can with a DSP (Digital Signal Processor). In practice it is however it is not possible do all the signal processing from a DSP leave because DSPs with the for this required high computing capacity is not available or are far too expensive and also show too high a power consumption. For this reason DSP hardware modules (e.g. in the form of coprocessors) assigned, which certain, recurring computing procedures in hardware To run. These task-specific hardware modules, often too as "dedicated hardware", "hardware supports" or task-specific Data paths ("dedicated data paths ") are hard-wired circuits that are made by hard-wiring Predefined calculation procedure faster and usually with less Power consumption than when processed by a processor take care of.
Bei der Festlegung eines Empfängerkonzepts ist somit zunächst zu überlegen, welche der als solche bekannten Berechnungsprozeduren in Software (d.h. durch Abarbeitung eines Datenverarbeitungsprogramms in einem DSP) und welche der Berechnungsprozeduren in Hardware (d.h. mittels eines geeignet konzipierten aufgabenspezifischen Hardware-Moduls) ausgeführt werden sollen. Ferner sind die Datenübergabe zwischen dem DSP und den Hardware-Modulen sowie die zeitliche Steuerung der diversen Berechnungsprozeduren in Hardware und in Software festzulegen.When defining a recipient concept is thus first to think, which of the known calculation procedures in software (i.e. by processing a data processing program in one DSP) and which of the calculation procedures in hardware (i.e. by means of a suitably designed task-specific hardware module) accomplished should be. Furthermore, the data transfer between the DSP and the hardware modules and the timing of the various Specify calculation procedures in hardware and software.
Hinsichtlich des zuletzt genannten Aspekts ist im Stand der Technik eine sequentielle Abarbeitung von Hardware- und Software-Rechenprozeduren bekannt. D.h., während der Berechnung von Ergebniswerten in einem Hardware-Modul, die von dem DSP für die Weiterverarbeitung benötigt werden, ist die Rechenprozedur für die Weiterverarbeitung der berechneten Ergebniswerte im DSP deaktiv. Erst wenn das Hardware-Modul die benötigten Ergebniswerte geliefert hat, wird die Rechenprozedur für die Weiterberechnung der Ergebniswerte im DSP gestartet. Umgekehrt verhält es sich genauso. Wenn im DSP eine Rechenprozedur ausgeführt wird, deren Ergebniswerte in einem Hardware-Modul weiterverarbeitet werden sollen, nimmt das Hardware-Modul seine Tätigkeit erst dann auf, wenn die Rechenpro zedur im DSP beendet ist und die zu prozessierenden Werte vorliegen.Regarding the latter Aspect in the prior art is a sequential processing of Hardware and software computing procedures known. That is, during the Calculation of result values in a hardware module by the DSP for further processing is required is the calculation procedure for further processing of the calculated result values in the DSP is deactivated. First if the hardware module the needed Has delivered results, the calculation procedure for further calculation of the result values started in the DSP. The opposite is true just like that. If a calculation procedure is carried out in the DSP, its result values that takes place in a hardware module Hardware module its activity only when the computation procedure in the DSP has ended and the values to be processed are available.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren anzugeben, welches in einem Funkempfänger, in welchem bestimmte Rechenschritte in Software und bestimmte andere Rechenschritte in Hardware ausgeführt werden, eine Verbesserung des Zusammenwirkens zwischen Hardware und Software ermöglicht. Ferner soll eine Vorrichtung mit einem verbesserten Zusammenwirken zwischen Hardware- und Software-Rechenprozeduren geschaffen werden.The invention is based on the object Procedure to specify which in a radio receiver in which certain Arithmetic steps in software and certain other arithmetic steps in hardware accomplished an improvement in the interaction between hardware and software enables. Furthermore, a device with an improved interaction should between hardware and software computing procedures are created.
Die der Erfindung zugrunde liegende Aufgabenstellung wird durch die Merkmale der unabhängigen Ansprüche gelöst.The basis of the invention The task is solved by the features of the independent claims.
Nach Anspruch 1 umfasst das erfindungsgemäße Verfahren zum Verarbeiten eines Datenstroms in einem Funkempfänger zumindest eine erste Rechenprozedur, die in Hardware erfolgt und die Ausführung von Viterbi-ACS-Operationen umfasst, und zumindest eine zweite Rechenprozedur, die auf Software-Basis mittels eines Prozessors durchgeführt wird. Beide Rechenprozeduren werden wiederholt ausgeführt, und die Ergebniswerte der zweiten Rechenprozedur repräsentieren dabei Eingabewerte für die erste Rechenprozedur. Erfindungsgemäß wird der zu verarbeitende Datenstrom in eine Mehrzahl von Verarbeitungsabschnitte unterteilt. Die erste Rechenprozedur wird für einen bestimmten Verarbeitungsabschnitt ausgeführt, und zeitlich überlappend mit dem Ausführen der ersten Rechenprozedur wird die zweite Rechenprozedur für einen anderen Verarbeitungsabschnitt ausgeführt.According to claim 1, the method according to the invention for processing a data stream in a radio receiver comprises at least a first computing procedure, which takes place in hardware and includes the execution of Viterbi-ACS operations, and at least a second computing procedure, which is carried out on a software basis by means of a processor , Both calculation procedures are carried out repeatedly, and the result values of the second calculation procedure represent input values for the first calculation procedure. According to the invention, the data stream to be processed is divided into a plurality of processing sections. The first calculation procedure is carried out for a specific processing section and overlaps in time with the execution of the first calculation procedure, the second calculation procedure is carried out for another processing section.
Mit anderen Worten werden beide Rechenprozeduren gleichzeitig miteinander ausgeführt. Die gleichzeitige Ausführung der beiden Rechenprozeduren bewirkt einen Gewinn an Prozesszeit, der sich in vielfältiger Weise ausnutzen lässt. Es kann auf der Software-Seite ein DSP mit einer vergleichsweise niedrigeren Rechenkapazität eingesetzt werden. Damit kann sowohl ein ver minderter Stromverbrauch als auch eine verminderte Chipfläche erreicht werden. Leistungsstarke DSPs haben in der Regel einen höheren Stromverbrauch als dedizierte Hardware. In der dedizierten Hardware wird nur die Funktionalität verwirklicht, die zur Bewältigung der angestrebten Aufgabe erfordderlich ist, ohne – wie beim DSP – auf eine möglichst allgemeine Abdeckung von Funktionen abzuzielen.In other words, both arithmetic procedures executed simultaneously with each other. The simultaneous execution of the two calculation procedures results in a gain in process time, which is in diverse Way can be exploited. On the software side, a DSP with a comparatively lower one can be used computing capacity be used. This can both reduce electricity consumption as well as a reduced chip area can be achieved. Powerful DSPs generally have a higher power consumption as dedicated hardware. In the dedicated hardware, only the Functionality realized, the ones to deal with the intended task is required without - as with DSP - on one preferably to target general coverage of functions.
Eine vorteilhafte Ausgestaltung der Erfindung kennzeichnet sich dadurch, dass die zweite Rechenprozedur mit Eingabewerten, die bei einer früheren Ausführung der ersten Rechenprozedur für einen bereits prozessierten Verarbeitungsabschnitt erhalten wurden, gespeist wird und dabei Ergebniswerte berechnet, die Eingabewerte für die Ausführung der ersten Rechenprozedur für einen später zu prozessierenden Verarbeitungsabschnitt sind. In diesem Fall muss die Einteilung des Datenstroms in Verarbeitungsabschnitte und deren zeitliche Abarbeitungsreihenfolge so vorgenommen werden, dass eine gleichzeitige und verzahnte Ausführung der Rechenprozeduren möglich ist.An advantageous embodiment of the Invention is characterized in that the second calculation procedure with input values that were used in an earlier execution of the first calculation procedure for one already processed processing section were obtained, is fed and calculates result values, the input values for executing the first Calculation procedure for one later processing section to be processed. In this case the division of the data stream into processing sections and their temporal processing order can be made so that a simultaneous and toothed version of the calculation procedures possible is.
Vorzugsweise wird das erfindungsgemäße Verfahren
zum Entzerren eines Signals eingesetzt, wobei die erste Rechenprozedur
als Ergebniswerte die Berechnung von Soft-Output-Werten und/oder Hard-Output-Werten
bei der Viterbi-Entzerrung von Symbolen auf der Basis von berechneten
Kanalparametern umfasst, und die zweite Rechenprozedur die Aktualisierung
von Kanalparametern als Ergebniswerte auf der Basis entzerrter Symbole
(Soft-Output-Werte und/oder Hard-Output-Werte) umfasst. Die Berechnung
bzw. Aktualisierung von Kanalparametern auf der Basis entzerrter
Symbole ist auch als Kanal-Nachführung ("Channel Tracking") bekannt und beispielsweise
in der Patentanmeldung
Beim Entzerren erfolgt die Einteilung des zu entzerrenden Signals in eine Mehrzahl von Verarbeitungsabschnitten vorzugsweise in der folgenden Weise: Sofern das innerhalb eines Zeitschlitzes übertragene Signal eine Trainingssequenz-Mitambel mit im Empfänger bekannten Symbolen umfasst, werden die Verarbeitungsabschnitte beidseitig der Trainingssequenz-Mitambel angeordnet. Mittels der ersten Rechenprozedur werden dann alternierend rechts und links der Trainingssequenz-Mitambel angeordnete Verarbeitungsabschnitte von Empfangssymbolen zeitlich aufeinanderfolgend entzerrt.The division takes place during equalization of the signal to be equalized into a plurality of processing sections preferably in the following way: if this is within a Time slot transmitted Signal a training sequence mitambel with known in the receiver Symbols, the processing sections are bilateral the training sequence mitambel arranged. The first calculation procedure then alternates Processing sections arranged to the right and left of the training sequence mitamble equalized sequentially by reception symbols.
Durch die alternierend rechts und links der Trainingssequenz angeordneten Verarbeitungsabschnitte wird gewährleistet, dass die in der zweiten Rechenprozedur berechneten Kanalparameter nicht für die Entzerrung des aktuell (d.h. während der ersten Rechenprozedur) prozessierten Verarbeitungsabschnittes sondern erst für die Entzerrung des darauf folgenden Verarbeitungsabschnittes benötigt werden. Infolgedessen kann trotz der Tatsache, dass die Ergebniswerte beider Rechenprozeduren jeweils von der anderen Rechenprozedur als Eingabewerte benötigt werden, eine gleichzeitige Ausführung der Rechenprozeduren aufrecht erhalten werden.By alternating right and processing sections arranged to the left of the training sequence is guaranteed that the channel parameters calculated in the second calculation procedure not for the equalization of the current (i.e. during the first calculation procedure) processed processing section but only for the equalization of the subsequent processing section are required. As a result, despite the fact that the earnings values of both Arithmetic procedures are required by the other arithmetic procedure as input values a simultaneous execution the calculation procedures are maintained.
Vor der erfindungsgemäßen Parallelprozessierung der ersten und der zweiten Rechenprozeduren gemäß den Schritten b1 und b2 sieht die Erfindung zweckmäßiger Weise eine Vorverarbeitung der Symbole sämtlicher Verarbeitungsabschnitte des Zeitschlitzes durch einen reinen Software-Verarbeitungsablauf vor. Die Vorverarbeitung kann dabei vorzugsweise die Schritte Derotieren der Symbole und/oder DC-Korrigieren der Symbole und/oder Leistungsnormieren der Symbole und/oder Durchführen einer Schätzung von Kanalparametern auf der Basis der Trainingssequenz und/oder Vorfiltern der Kanalparameter und der Symbole umfassen.Before the parallel processing according to the invention the first and second calculation procedures according to steps b1 and b2 the invention appropriately preprocessing the symbols of all processing sections of the time slot through a pure software processing sequence in front. The preprocessing can preferably derotate the steps correcting the symbols and / or DC correcting the symbols and / or performance standards of symbols and / or performing one estimate of channel parameters based on the training sequence and / or Pre-filter the channel parameters and symbols.
Das erfindungsgemäße Verfahren ist nicht nur auf die Viterbi-Entzerrung beschränkt, sondern kann in vorteilhafter Weise auch zum Viterbi-Kanaldekodieren der entzerrten Symbole eingesetzt werden. In diesem Fall kennzeichnet sich eine bevorzugte Verfahrensausgestaltung dadurch, dass die erste Rechenprozedur die Viterbi-Kanaldekodierung von entschachtelten und depunktierten Daten umfasst, und die zweite Rechenprozedur die Entschachtelung und Depunktierung von Daten (Soft-Output-Werten) umfasst.The method according to the invention is not only to the Viterbi equalization limited, but can also advantageously be used for Viterbi channel decoding of the rectified symbols. In this case, marks is a preferred method design in that the first calculation procedure Viterbi channel decoding of deinterleaved and depunctured Data includes, and the second arithmetic procedure the deinterleaving and Deposition of data (soft output values) includes.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.Advantageous further developments of Invention are in the subclaims specified.
Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme auf die Zeichnung erläutert. In dieser zeigt:The invention is described below of embodiments explained with reference to the drawing. In this shows:
Die generelle Funktionsweise von Viterbi-Berechnungseinheiten ist bekannt und wird hier lediglich kurz erläutert:The general functioning of Viterbi calculation units are known and will only be here briefly explained:
Allgemein liegt der Viterbi-Berechnung
die Idee zugrunde, durch ein rekursives Verfahren einen kürzesten
Weg durch ein Zustandsdiagramm (sogenanntes Trellis-Diagramm) zu
ermitteln, in welchem die Zustände
eines Schieberegisters über
der Zeit aufgetragen sind. Im Falle der Entzerrung repräsentiert
das Schieberegister das Kanalgedächtnis,
während
im Falle der Kanaldekodierung das Schieberegister des im Sender
enthaltenen Kanalkodierers betrachtet wird. In beiden Fällen wird
pro Zeitschritt eine Dateneinheit (beim Entzerrer: ein Symbol; beim
Kodierer: ein Bit) in das entsprechende Schieberegister eingeschoben
und dadurch der Zustand des Schieberegisters verändert. Die Werte der Dateneinheiten, die
dem jeweiligen Schieberegister in jedem Zeitschritt zugeführt werden,
kommen als mögliche
Empfangswerte in Frage. Die Wahrscheinlichkeit für das Auftreten dieser Dateneinheiten
als Empfangswerte wird mittels der Viterbi-Rekursion Zeitschritt
für Zeitschritt
bestimmt. Dabei berechnet die Einheit BMU für jeden möglichen Übergang im (Kanalkodierer- bzw.
Entzerrer-)Trellis-Diagramm Übergangswahrscheinlichkeiten,
die als Übergangsmetrikwerte
bezeichnet werden. Die Berechnung dieser Übergangsmetrikwerte beruht
auf der der Viterbi-Berechnungseinheit aktuell an einem Eingang
Die in der Einheit BMU zur Berechnung
der Übergangsmetrikwerten
berechneten Übergangsmetrikwerte
werden über
die Datenverbindung
Sowohl bei der Viterbi-Entzerrung
als auch bei der Viterbi-Dekodierung
wird der ACS-Schritt innerhalb jedes Zeitschrittes zyklisch für alle Zielzustände ausgeführt, wie
dies durch die Schleife
Nachdem für einen bestimmten Zeitschritt
im Trellis-Diagramm die Metriken sämtlicher Zielzustände bestimmt
sind, werden die zugehörigen
Gewinner-Zustandsübergänge der
Einheit SMU über
die Datenverbindung
Im Falle der Kanaldekodierung gibt
die Einheit SMU über
die Datenverbindung
Die anhand
Die erste Hardware-Schaltung RW1 steht über eine erste bidirektionale Datenverbindung DL1 mit einem ersten flüchtigen Datenspeicher RAM1 und über eine zweite bidirektionale Datenverbindung DL2 mit einem zweiten flüchtigen Datenspeicher RAM2 in Datenaustauschverbindung. Entsprechende dritte und vierte bidirektionale Datenverbindungen DL3 und DL4 sind zwischen der zweiten Hardware-Schaltung RW2 und dem ersten Datenspeicher RAM1 sowie der zweiten Hardware-Schaltung RW2 und dem zweiten Datenspeicher RAM2 vorgesehen.The first hardware circuit RW1 is ready Via a first bidirectional data connection DL1 with a first volatile data memory RAM1 and via a second bidirectional data connection DL2 with a second volatile data memory RAM2 in a data exchange connection. Corresponding third and fourth bidirectional data connections DL3 and DL4 are provided between the second hardware circuit RW2 and the first data memory RAM1 and the second hardware circuit RW2 and the second data memory RAM2.
Beide Hardware-Schaltungen RW1 und RW2 können ferner auf zwei flüchtige Datenspeicher RAMW1 und RAMW2 zugreifen. Wie noch näher erläutert wird, werden in den Datenspeichern RAMW1 und RAMW2 Zwischenergebniswerte abgelegt, die bei der Entzerrung und/oder der Kanaldekodierung in den Hardware-Schaltungen RW1 und RW2 anfallen. Der Zugriff vom DSP erfolgt über zwei Schnittstellen I/O_DEC und I/O_EQ, über einen zentralen Datenbus DB und über die internen Datenbusse DB1 (RAM1), DB2 (RAM2), DB3 (RAMW1) und DB4 (RAMW2). Die Schnittstelle I/O_DEC ist für den Zugriff des DSPs während eines Kanaldekodiervorgangs und die Schnittstelle I/O_EQ ist für den Zugriff des DSPs während eines Entzerrungsvorgangs bestimmt.Both hardware circuits RW1 and RW2 can further on two volatile Access data memory RAMW1 and RAMW2. As will be explained in more detail, are intermediate result values in the data memories RAMW1 and RAMW2 stored in the equalization and / or channel decoding in the Hardware circuits RW1 and RW2 occur. Access from the DSP is via two Interfaces I / O_DEC and I / O_EQ, via a central data bus DB and over the internal data buses DB1 (RAM1), DB2 (RAM2), DB3 (RAMW1) and DB4 (RAMW2). The I / O_DEC interface is for access by the DSP during a Channel decoding process and the interface I / O_EQ is for the access of the DSPs during an equalization process.
Die Hardware-Schaltungen RW1, RW2, die Datenspeicher RAM1, RAM2, RAMW1 und RAMW2 sowie die Datenbusse DB3, DB4 und die Datenverbindungen DL1, DL2, DL3, DL4 können konstruktiv in Form eines separaten Arithmetik-Prozessors zusammengefasst sein.The hardware circuits RW1, RW2, the data memories RAM1, RAM2, RAMW1 and RAMW2 as well as the data buses DB3, DB4 and the data connections DL1, DL2, DL3, DL4 can be constructive be summarized in the form of a separate arithmetic processor.
1. Viterbi-Entzerrer1. Viterbi equalizer
Der konstruktive Aufbau der ersten Hardware-Schaltung RW1 zur Entzerrung von Symbolen ist in der internationalen Anmeldung WO 02/03637 A1 beschrieben, die diesbezüglich durch Bezugnahme dem Inhalt der vorliegenden Schrift hinzugefügt wird. Die erste Hardware-Schaltung RW1 umfasst demnach in hier nicht näher dargestellter Weise die folgenden Hardware-Datenpfade:
- – Datenpfad zur Durchführung der ACS-Operationen,
- – Datenpfad zur Berechnung von Übergangsmetrikwerten,
- – Datenpfad zur Berechnung von Soft-Output-Werten,
- – Datenpfad zur Berechnung neuer Zustandsvektoren,
- – Datenpfad zur Berechnung von Adressen der Partialsummen für Übergangsmetrikwerten, und
- – Datenpfad zur Berechnung von hart entschiedenen Datensymbolen.
- - data path for performing the ACS operations,
- - data path for calculating transition metric values,
- - data path for the calculation of soft output values,
- - data path for the calculation of new state vectors,
- - Data path for calculating addresses of the partial sums for transition metric values, and
- - Data path for the calculation of hard decided data symbols.
Die Speicherorganisation ist wie folgt:The storage organization is like follows:
Der erste flüchtige Datenspeicher RAM1 dient als Eingabespeicher für die Hardware-Schaltung RW1. In RAM1 werden die folgenden Größen gespeichert:
- – die vom Empfänger empfangenen Datensymbole xk, mit k wird der Zeitschritt-Index bezeichnet;
- – vorausberechnete Partialsummen der Übergangsmetrikwerte bestehend aus Produkten von Kanalparametern hi und Symbolen sn des im Sender verwendeten Symbolalphabets: hi·sn; wobei i= 0, 1, ..., L, der Index der Kanalparameter ist (L bezeichnet die Anzahl der Speicherplätze des den Übertragungskanal modellierenden Schieberegisters) und n = 0, 1, ..., N der Symbolindex ist (wobei N+1 die Wertigkeit des Symbolalphabetes ist). Z.B. gilt für das bei EDGE verwendete achtwertige 8PSK-Modulationsalphabet sn = exp(j·n·2π/8), wobei j die imaginäre Einheit ist.
- - The data symbols received by the receiver x k , with k the time step index is called;
- - Predicted partial sums of the transition metric values consisting of products of channel parameters h i and symbols s n of the symbol alphabet used in the transmitter: h i · s n ; where i = 0, 1, ..., L, is the index of the channel parameters (L denotes the number of memory locations of the shift register modeling the transmission channel) and n = 0, 1, ..., N is the symbol index (where N + 1 is the value of the symbol alphabet). For example, for the eight-valued 8PSK modulation alphabet used at EDGE, s n = exp (j · n · 2π / 8), where j is the imaginary unit.
Der zweite flüchtige Datenspeicher RAM2 dient als Ausgabespeicher für die Hardware-Schaltung RW1. In RAM2 werden die folgenden Größen gespeichert:
- – die berechneten Hard-Output-Werte HOk für jeden Zeitschritt k: im Fall von 8PSK werden für jedes empfangene Datensymbol xk drei Hard-Output-Werte HOk (Bits) berechnet, da 8PSK-Symbole durch drei Bit codiert sind;
- – die Soft-Output-Werte SOk für jeden Zeitschritt k: im Fall von 8PSK werden für jedes empfangene Datensymbol xk drei Datenwörter berechnet, wobei jedes Datenwort die Konfidenz eines hart entschiedenen Bits angibt.
- - The calculated hard output values HO k for each time step k: in the case of 8PSK, three hard output values HO k (bits) are calculated for each received data symbol x k , since 8PSK symbols are coded by three bits;
- The soft output values SO k for each time step k: in the case of 8PSK, three data words are calculated for each received data symbol x k , each data word indicating the confidence of a hard-decided bit.
Der erste flüchtige Datenspeicher RAMW1 dient als Zwischenwertspeicher bei der rekursiven Trellis-Prozessierung durch Abarbeitung der ACS-Operationen. In RAMW1 werden die folgenden Größen gespeichert:
- – "alte" Übergangsmetrikwerte im Zeitschritt k–1 vom Zustand m in den Zustand m' : Ik–1 (m→m');
- – "alte" Metrikwerte im Zeitschritt k–1 zu jedem Zustand m: Mk–1 (m);
- – "alte" Zustandsvektoren im Zeitschritt k–1 zu jedem Zustand m: Zk–1 (m).
- - "old" transition metric values in time step k – 1 from state m to state m ': I k – 1 (m → m');
- - "old" metric values in time step k – 1 for each state m: M k – 1 (m);
- - "Old" state vectors in time step k – 1 for each state m: Z k – 1 (m).
Der zweite flüchtige Datenspeicher RAMW2 dient als Zwischenwertspeicher bei der rekursiven Trellis-Prozessierung durch Abarbeitung der ACS-Operationen. In RAMW2 werden die folgenden Größen gespeichert:
- – "neue" Übergangsmetriken im Zeitschritt k vom Zustand m in den Zustand m' : Ik (m→m');
- – "neue" Metrikwerte im Zeitschritt k zu jedem Zustand m: Mk (m);
- – "neue" Zustandsvektoren im Zeitschritt k zu jedem Zustand m: Zk (m).
- - "New" transition metrics in time step k from state m to state m ': I k (m → m');
- - "New" metric values in time step k for each state m: M k (m);
- - "New" state vectors in time step k for each state m: Z k (m).
Mit dem Zeitschrittübergang k→k+1 nach Beendigung der Trellis-Prozessierung zum Zeitschritt k werden "neue" Übergangsmetrikwerte, Metrikwerte und Zustandsvektoren zu "alten" Übergangsmetrikwerten, Metrikwerten und Zustandsvektoren. Die beiden Zwischenergebnisspeicher RAMW1 und RAMW2 vertauschen dann ihre Funktion, d.h. der Zwischenwertspeicher RAMW2 enthält nun die zuvor berechneten, jetzt "alten" Größen und der Zwischenwertspeicher RAMW2 wird gelöscht und dient zur Speicherung der zu berechnenden "neuen" Größen.With the time step transition k → k + 1 after completion of the trellis processing for time step k, "new" transition metric values, metric values and state vectors become "old" transition metric values, metric values and state vectors. The at the intermediate result memory RAMW1 and RAMW2 then interchange their function, ie the intermediate value memory RAMW2 now contains the previously calculated, now "old" variables and the intermediate value memory RAMW2 is deleted and is used to store the "new" variables to be calculated.
Es wird deutlich, dass die gesamte
in
Im EDGE-Standard beträgt die Zeitschlitzdauer 576 μs. Jeder Abschnitt D_r bzw. D_l des Bursts umfasst z.B. 58 Symbole.In the EDGE standard, the time slot duration is 576 μs. Each section D_r or D_l of the burst comprises e.g. 58 symbols.
Zunächst werden in den Vorverarbeitungsschritten v1, v2, ..., v5 Software-Rechenprozeduren ausgeführt. Während dieser Zeitspanne ist die Hardware-Schaltung RW1 inaktiv.First, in the preprocessing steps v1, v2, ..., v5 software calculation procedures executed. During this period is the hardware circuit RW1 inactive.
In dem ersten Software-Vorverarbeitungsschritt v1 wird eine Derotation der erhaltenen Symbole vorgenommen. Bei einer 8PSK-Modulation erfolgt die Derotation der empfangenen Symbole mit einem Phaseninkrement von π/4.In the first software preprocessing step v1, the symbols obtained are derotated. at 8PSK modulation is used to derotate the received symbols with a phase increment of π / 4.
Im zweiten Software-Vorverarbeitungsschritt v2 wird eine Gleichspannungs-Korrektur vorgenommen. Dabei wird ein gegebenenfalls auftretender DC-Anteil aus dem durch die empfangenen Symbole gebildeten Burst herausgerechnet. Im Wesentlichen erfolgt die DC-Korrektur durch eine Signalmittelung über eine bestimmte Anzahl von Symbolen (ggf. auch über mehrere Bursts) und eine nachfolgende Subtraktion des bei der Mittelung berechneten DC-Offsets von jedem empfangenen Symbol.In the second software preprocessing step v2 a DC voltage correction is carried out. In doing so, a DC component, if any, from the one received by the Excludes symbols formed burst. Essentially done DC correction by signal averaging over a certain number of Symbols (possibly also via several bursts) and a subsequent subtraction of the averaging calculated DC offsets from each symbol received.
In dem dritten Software-Vorverarbeitungsschritt v3 erfolgt optional eine Leistungsanpassung ("power balancing"), die im Wesentlichen eine Skalierung der Symbole auf eine bestimmte gewünschte Signalhöhe darstellt.In the third software preprocessing step v3 there is an optional power balancing, which is essentially a scaling which represents symbols at a certain desired signal level.
Die anschließende Kanalschätzung in dem vierten Software-Verarbeitungsschritt v4 erfolgt durch einen Vergleich der empfangenen Symbole der Trainingssequenz TS mit den im Empfänger bekannten Symbolen. Aus diesem Vergleich ergeben sich die Kanaleigenschaften, welche in Form der Kanalparameter h0, h1, ..., hL (für zurückliegende L Zeitschritte (Taps), wobei "0" den aktuellen Zeitpunkt bzw. Zeitschritt bezeichnet) dargestellt werden. Die Kanalparameter h0, h1, ..., hL sind die Filterkoeffizienten des Modellfilters, welches den zeitvarianten Übertragungskanal modelliert.The subsequent channel estimation in the fourth software processing step v4 is carried out by comparing the received symbols of the training sequence TS with the symbols known in the receiver. This comparison results in the channel properties, which are represented in the form of the channel parameters h 0 , h 1 , ..., h L (for previous L time steps (taps), where “0” denotes the current point in time or time step). The channel parameters h 0 , h 1 , ..., h L are the filter coefficients of the model filter which models the time-variant transmission channel.
Anschließend erfolgt in dem fünften Software-Vorverarbeitungsschritt v5 ein Vorfiltern ("prefiltering") der Kanalparameter und der empfangenen Symbole. Mit dem Vorfilter wird die Energie, die in der gesamten Kanalimpulsantwort verteilt ist, in den ersten Kanalparametern konzentriert: Aus der geschätzten Kanalimpulsantwort, deren Energie nicht unbedingt in den ersten Kanalparametern konzentriert ist, wird ein sogenanntes Vorfilter ("Prefilter") berechnet. Aus der geschätzten Kanalimpulsantwort und dem Vorfilter wird eine neue Kanalimpulsantwort berechnet, deren Energie nun in den ersten Kanalparametern konzentriert ist. Diese neue Kanalimpulsantwort wird in der Viterbi-Entzerrung verwendet. Die empfangenen Symbole werden ebenfalls mit dem Vorfilter gefiltert.This is followed in the fifth software preprocessing step v5 a prefiltering of the channel parameters and the symbols received. With the pre-filter, the energy which is distributed throughout the channel impulse response, in the first Channel parameters concentrated: From the estimated channel impulse response, its Energy is not necessarily concentrated in the first channel parameters a so-called pre-filter is calculated. From the estimated channel impulse response and the pre-filter is calculated a new channel impulse response, the Energy is now concentrated in the first channel parameters. This new channel impulse response is used in Viterbi equalization. The received symbols are also filtered with the prefilter.
Nach etwas mehr als 200 μs sind sämtliche in Software durchzuführenden Vorverarbeitungsschritte v1, v2, ..., v5 abgearbeitet. Insbesondere sind die (vorgefilterten) Kanalparameter h0, h1, ..., hL bestimmt . Nachfolgend erfolgt in erfindungsgemäßer Weise eine Parallel-Prozessierung von Software- und Hardware-Rechenprozeduren.After a little more than 200 μs, all preprocessing steps v1, v2, ..., v5 to be carried out in software have been processed. In particular, the (pre-filtered) channel parameters h 0 , h 1 , ..., h L are determined. A parallel processing of software and hardware computing procedures then takes place in the manner according to the invention.
Zur Initialisierung der Hardware-Schaltung RW1
und zur Durchführung
der segmentweisen Entzerrung sind die folgenden im Konfigurationsregister CONFIG
gehaltenen Steuerparameter vorgesehen. Die Steuerparameter sind
durch den DSP steuerbar:
Bis auf b_numb sind sämtliche Steuerparameter binär, d.h. durch das Setzen eines Bits im Konfigurationsspeicher CONFIG einstellbar.All but b_numb Control parameters binary, i.e. by setting a bit in the CONFIG configuration memory adjustable.
Zur Initialisierung wählt der DSP geeignete Parameter für b_mod und b_numb.For initialization, the DSP suitable parameters for b_mod and b_numb.
Anschließend wird eine segmentweise
Entzerrung des in
Zunächst wird in dem Hardware-Verarbeitungsschritt h1 eine Entzerrung der Symbole des Segments l_1 vorgenommen. Hierfür wird b_r/l auf "links" gesetzt und das Laden des Eingabespeichers RAM1 mit empfangenen Datensymbolen xk und Produkten hi·sn erfolgt durch die Steuerung mittels der Bits b_dat_in und b_par_in.First, the symbols of segment l_1 are equalized in hardware processing step h1. For this, b_r / l is set to "left" and the input memory RAM1 is loaded with received data symbols x k and products h i · s n by the control using the bits b_dat_in and b_par_in.
Der Hardware-Verarbeitungsschritt
h1 wird durch das Setzen des Bits b_start gestartet. Im Rahmen der
Entzerrung werden mit der in
Nach der Abarbeitung der Symbole des Segments l_1 mittels der Hardware-Rechenprozedur im Hardware-Verarbeitungsschritt h1 werden die Hard-Output-Werte HOk und die Soft-Output-Werte SOk des prozessierten Segments l_1 dem DSP übergeben. Das Auslesen des Ausgabespeichers RAM2 wird über das Setzen der Bits b_hard_out und b_soft_out gesteuert.After the processing of the symbols of the segment l_1 by means of the hardware calculation procedure in the hardware processing step h1, the hard output values HO k and the soft output values SO k of the processed segment l_1 are transferred to the DSP. The readout of the RAM2 output memory is controlled by setting the b_hard_out and b_soft_out bits.
Der DSP führt dann mittels einer zweiten Rechenprozedur eine Weiterverarbeitung der übermittelten Soft-Output-Werte SOk während des Software-Verarbeitungsschrittes s1 durch.The DSP then uses a second computing procedure to further process the transmitted soft output values SO k during the software processing step s1.
Die von der Software durchgeführte zweite Rechenprozedur umfasst zwei Verarbeitungsabläufe. Zum einen werden die in dem Vorverarbeitungsschritt v4 ermittelten Kanalparameter aktualisiert. Die Aktualisierung von Kanalparametern auf der Basis entzerrter Datensymbole ist bekannt und wird wie bereits erwähnt als Kanal-Nachführung (Channel Tracking) bezeichnet.The second calculation procedure performed by the software comprises two processing sequences. To the the channel parameters determined in the preprocessing step v4 become one updated. The update of channel parameters based on equalized Data symbols are known and, as already mentioned, as Channel tracking (Channel Tracking).
Darüber hinaus umfasst die zweite Rechenprozedur eine Vorfilter-Operation. Mittels der Vorfilter-Operation werden die aktualisierten Kanalparameter sowie die Symbole des Datensegments l_2 vorgefiltert.It also includes the second Arithmetic procedure a prefilter operation. Using the pre-filter operation the updated channel parameters and the symbols of the data segment prefiltered l_2.
Nach dem Software-Verarbeitungsschritt s1 stehen aktualisierte und vorgefilterte Kanalparameter und vorgefilterte empfangene Symbole bereit. Diese Kanalparameter geben die Eigenschaften des Übertragungskanals während der Zeitdauer, in welcher die Symbole des Segments l_1 übertragen wurden, besser wieder als die ursprünglich im Vorverarbeitungsschritt v4 ermittelten Kanalparameter, die sich an der Trainingssequenz TS orientieren.After the software processing step s1 are updated and pre-filtered channel parameters and pre-filtered received symbols ready. These channel parameters give the properties of the transmission channel while the time period in which the symbols of segment l_1 are transmitted again, better than that originally in the preprocessing step v4 determined channel parameters that are based on the training sequence Orient TS.
Zeitgleich oder zumindest zeitlich überlappend mit dem Software-Verarbeitungsschritt s1 wird die erste Rechenprozedur im Hardware-Verarbeitungsschritt h2 wiederholt. Der Berechnung liegen nun die Symbole des Segments r_1 zugrunde. Die Berechnung der Übergangsmetrikwerte erfolgt auf der Basis der in dem Vorverarbeitungsschritt v5 berechneten (ursprünglichen, an der Trainingssequenz orientierten) Kanalparameter. D.h., dass beim Laden des Eingabespeichers RAM1 allein neue Datensymbole xk (zum Segment r_1) in das RAM1 geschrieben werden müssen (wobei der Adresszeiger durch b_dat_in auf die Basisadresse für Datensymbole gesetzt wird), während kein Beschreiben des Speicherbereichs für die Produkte hi·sn der Übergangsmetrikwerte erfolgt (das Bit b_par_in wird nicht gesetzt).Simultaneously or at least overlap in time pend with software processing step s1, the first calculation procedure in hardware processing step h2 is repeated. The calculation is now based on the symbols of the segment r_1. The transition metric values are calculated on the basis of the channel parameters calculated in the preprocessing step v5 (original, based on the training sequence). This means that when loading the input memory RAM1, only new data symbols x k (for segment r_1) have to be written into RAM1 (the address pointer being set to the base address for data symbols by b_dat_in), while the memory area for the products h i · is not written. s n of the transition metric values takes place (the bit b_par_in is not set).
Anschließend werden der Hardware-Verarbeitungsschritt h3 und der Software-Verarbeitungsschritt s2 gleichzeitig oder zumindest zeitlich überlappend ausgeführt. Hierfür werden zunächst die Datensymbole xk des Segments l_2 und die im Software-Verarbeitungsschritt s1 berechneten aktualisierten Produkte hi·sn in den Eingabespeicher RAM1 geladen (b_dat_in und b_par_in werden gesetzt). Im Hardware-Verarbeitungsschritt h3 werden nun die Symbole des Segments l_2 mittels der aktualisierten Kanalparameter (enthalten in den Produkten hi·sn) prozessiert. Da die Symbole des Segments l_2 zeitlich benachbart zu den Symbolen des Segments l_1 liegen, welche zur Kanal-Nachführung verwendet wurden, wird ein besseres Entzerrungsergebnis erhalten, als wenn die in dem Vorverarbeitungsschritt v4 berechneten Kanalparameter benutzt würden. Auf der anderen Seite werden in dem parallel ausgeführten Software-Verarbeitungsschritt s2 bereits aktualisierte Kanalparameter auf der Basis der im Hardware-Verarbeitungsschritt h2 berechneten Soft-Output-Werte SOk für die anschließend erfolgende Entzerrung der Symbole des Segments r_2 berechnet.The hardware processing step h3 and the software processing step s2 are then carried out simultaneously or at least overlapping in time. For this purpose, the data symbols x k of the segment l_2 and the updated products h i · n n calculated in the software processing step s1 are first loaded into the input memory RAM1 (b_dat_in and b_par_in are set). In the hardware processing step h3, the symbols of the segment l_2 are now processed using the updated channel parameters (contained in the products h i · s n ). Since the symbols of segment l_2 are temporally adjacent to the symbols of segment l_1, which were used for channel tracking, a better equalization result is obtained than if the channel parameters calculated in preprocessing step v4 were used. On the other hand, in the software processing step s2 carried out in parallel, channel parameters which have already been updated are calculated on the basis of the soft output values SO k calculated in the hardware processing step h2 for the equalization of the symbols of the segment r_2 which subsequently ensues.
In den Parallelverarbeitungsschritten
s3, h4 und s4, h5 und s5, h6 und s6, h7 werden die beiden Berechnungsprozeduren
in Software/Hardware zur Abarbeitung sämtlicher Segmente der in
Es wird darauf hingewiesen, dass in der Hardware zusätzliche Zwischenspeicher (nicht dargestellt) vorgesehen sein müssen, die nach einem Hardware-Verarbeitungsschritt hi, i=1, 2, ... die Zustandsvektoren Zk(m) und die Metriken Mk(m) des letzten prozessierten Zeitschrittes k speichern, um im übernächsten Hardware-Verarbeitungsschritt hi+2 eine Weiterführung des Entzerrungsprozesses für die Symbole des benachbarten Segments zu ermöglichen. Dabei sind die Anfangs-Zustandsvektoren Zk(m) und die Anfangs-Metrikwerte Mk(m) des Verarbeitungsschrittes hi+2 die End-Zustandsvektoren Zk(m) und End-Metrikwerte Mk(m) des Verarbeitungsschrittes hi.It is pointed out that additional buffers (not shown) must be provided in the hardware which, after a hardware processing step hi, i = 1, 2,..., State vectors Z k (m) and metrics M k (m ) of the last processed time step k in order to enable a continuation of the equalization process for the symbols of the neighboring segment in the next but one hardware processing step hi + 2. The initial state vectors Z k (m) and the initial metric values M k (m) of the processing step hi + 2 are the final status vectors Z k (m) and final metric values M k (m) of the processing step hi.
Der Ausgabespeicher RAM2, der wie bereits erwähnt die bei der Entzerrung für ein Segment berechneten Hard-Output-Werte HOk und Soft-Output-Werte SOk für B_numb Zeitschritte k enthält, wird nach jedem Hardware-Verarbeitungsschritt hi ausgelesen. Die ausgelesenen Soft-Output-Werte SOk werden in einem nicht dargestellten externen Speicher über die Dauer eines Datenblocks (z.B. 4 Bursts) abgespeichert.The output memory RAM2, which, as already mentioned, contains the hard output values HO k and soft output values SO k for B_numb time steps k calculated for the equalization, is read out after each hardware processing step hi. The read soft output values SO k are stored in an external memory (not shown) for the duration of a data block (for example 4 bursts).
2. Kanaldekodierung2. Channel decoding
Bei der anschließenden Kanaldekodierung wird
ebenfalls eine Parallel-Prozessierung von Software- und Hardware-Verarbei tungsschritten
durchgeführt.
Dies wird im Folgenden anhand der
Zunächst wird in einem Vorverarbeitungsschritt v eine Entschachtelung der Soft-Output-Werte SOk durchgeführt. Die Entschachtelung erfolgt für den gesamten Datenblock. Bei der Entschachtelung wird die senderseitig erfolgte blockweise Verschachtelung wieder rückgängig gemacht.First, in a preprocessing step v, the soft output values SO k are deinterleaved. The deinterleaving is carried out for the entire data block. In the case of deinterleaving, the block-by-block interleaving is canceled again.
Anschließend werden in dem Software-Verarbeitungsschritt s1 zwei Verarbeitungsabläufe ausgeführt. Zum einen wird eine Depunktierung der entschachtelten Soft-Output-Werte SOk des Segmentes a1 vorgenommen. Bei der Depunktierung wird eine senderseitig erfolgte Punktierung des Datenstroms wieder rückgängig gemacht.Subsequently, two processing sequences are carried out in the software processing step s1. On the one hand, the deinterleaved soft output values SO k of segment a1 are de-punctured. In the case of depuncturing, puncturing of the data stream by the transmitter is reversed again.
Wie allgemein bekannt, wird unter Punktieren das im Sender erfolgende beabsichtigte Weglassen ("Herausstechen") bestimmter Bits aus dem kanalkodierten Bitstrom verstanden. Die wegzulassenden Bits sind durch ein Punktierschema vorgegeben. Eine Punktierung mit variablen Punktierschemata ermöglicht eine Ratenanpassung des kanalkodierten Datenstroms mit variabler Koderate.As is well known, is under Puncture the intended omission ("sticking out") of certain bits in the transmitter understood from the channel coded bit stream. The bits to be omitted are specified by a puncturing scheme. Dotting with variable Dotting schemes enabled a rate adjustment of the channel coded data stream with variable Code rate.
Unter Depunktieren versteht man das empfängerseitige Wiederauffüllen des Datenstroms mit Nullen an den punktierten Stellen.This is understood as depuncturing receiver-side To refill of the data stream with zeros at the dotted positions.
Der zweite, optionale Verarbeitungsschritt betrifft das Kombinieren der entschachtelten, depunktierten Soft-Output-Werten SOk bei IR (Incremental Redundancy) in einem ARQ(Automatic Repeat Request-)Modus.The second, optional processing step relates to combining the deinterleaved, depunctured soft output values SO k with IR (incremental redundancy) in an ARQ (Automatic Repeat Request) mode.
ARQ bedeutet, dass fehlerhaft empfangene Datenblöcke automatisch erneut angefordert werden. Fehlerhaft empfangene Datenblöcke sind Datenblöcke, bei denen die Kanaldekodierung fehlschlägt. Wenn der erneut erhaltene Datenblock fehlerfrei ist, wird er erfolgreich dekodiert und es ist nichts mehr zu tun. Kann jedoch auch der bei der zweiten Übertragung erhaltene Datenblock nicht dekodiert werden, müsste eine dritte Übertragung angefordert werden. IR ist ein Ansatz, mit welchem sich dies zumindest manchmal vermeiden lässt: Eine Kombination der beiden einzeln nicht dekodierbaren Datenblöcke kann nämlich einen dekodierbaren Datenblock ergeben.ARQ means that data blocks received incorrectly automatically be requested again. Data blocks received incorrectly Data blocks, where channel decoding fails. If the received again Data block is error-free, it is successfully decoded and it there is nothing left to do However, the second transmission can received data block would not be decoded, a third transmission would have to be requested. IR is an approach that at least addresses this can sometimes be avoided: A combination of the two individually non-decodable data blocks can namely result in a decodable data block.
Es gibt verschiedene Möglichkeiten der Kombination zweier nicht dekodierbarer Datenblöcke. Eine einfache Möglichkeit ist z.B. die arithmetische Mittelung, d.h. die paarweise Addition der einander entsprechenden Soft-Output-Werte mit nachfolgender Division durch den Wert 2.There are different possibilities the combination of two non-decodable data blocks. A easy way is e.g. arithmetic averaging, i.e. the pairwise addition of the corresponding soft output values with the following Division by the value 2.
Nach dem Software-Verarbeitungsschritt s1 stehen entschachtelte, depunktierte und ggf. kombinierte Soft-Output-Werte SOk bereit. Diese werden im Hardware-Verarbeitungsschritt h1 der Kanaldekodierung mittels der Hardware-Schaltung RW2 unterzogen.After the software processing step s1, deinterleaved, depunctured and possibly combined soft output values SO k are available. These are subjected to channel decoding by means of the hardware circuit RW2 in the hardware processing step h1.
Der konstruktive Aufbau der Hardware-Schaltung
RW2 für
die Viterbi-Kanaldekodierung ist in der deutschen Patentanmeldung
- – Datenpfad zur Berechnung von Übergangsmetrikwerten;
- – Datenpfad zur Durchführung von ACS-Operationen.
- - Data path for calculating transition metric values;
- - Data path for performing ACS operations.
Der Datenspeicher RAM2, der wie bereits erwähnt die bei der Entzerrung berechneten Hard-Output-Werte HOk und die Soft-Output-Werte SOk enthält, dient für die Hardware-Schaltung RW2 als Eingabespeicher. Für den Hardware-Verarbeitungsschritt h1 nimmt er die auf das Segment a1 zurückgehenden entschachtelten, depunktierten und ggf. kombinierten Soft-Output-Werte SOk zur Durchführung der Viterbi-Kanaldekodierung entgegen.The data memory RAM2, which, as already mentioned, contains the hard output values HO k calculated during the equalization and the soft output values SO k , serves as an input memory for the hardware circuit RW2. For the hardware processing step h1, it accepts the deinterleaved, depunctured and possibly combined soft output values SO k that go back to the segment a1 for carrying out the Viterbi channel decoding.
Mittels des Datenpfads zur Berechnung
von Übergangsmetrikwerten
werden in bekannter Weise aus den entschachtelten, depunktierten
und ggf. kombinierten Soft-Output-Werten SOk die Übergangsmetrikwerte
für die
Kanaldekodierung berechnet. Die hierfür erforderliche Kombination
der Soft-Output-Werte hängt
von der senderseitig verwendeten Koderate und dem bei der senderseitigen Kanalkodierung
verwendeten Generatorpolynom ab und ist in der europäischen Patentanmeldung
Zeitgleich oder zumindest zeitlich überlappend mit dem Hardware-Verarbeitungsschritt h1 wird die erste Rechenprozedur im Software-Verarbeitungsschritt s2 wiederholt. Der Berechnung liegen nun die entschachtelten Soft-Output-werte SOk des Segments a2 zugrunde.At the same time or at least overlapping in time with the hardware processing step h1, the first calculation procedure is repeated in the software processing step s2. The calculation is now based on the deinterleaved soft output values SO k of segment a2.
Nach Beendigung des Software-Verarbeitungsschrittes s2 werden die berechneten entschachtelten, depunktierten und ggf. kombinierten Soft-Output-Werte SOk in den Speicher RAM2 des Empfängers geschrieben und von der Hardware-Schaltung RW2 ausgelesen. Der Hardware-Verarbeitungsschritt h2 wird gestartet, während gleichzeitig bzw. zeitlich überlappend mit dem Hardware-Verarbeitungsschritt h2 bereits die Daten des Segments a3 im DSP verarbeitet werden (Software-Verarbeitungsschritt s3).After the software processing step s2 has ended, the calculated deinterleaved, depunctured and possibly combined soft output values SO k are written into the memory RAM2 of the receiver and read out by the hardware circuit RW2. The hardware processing step h2 is started, while at the same time or overlapping in time with the hardware processing step h2, the data of the segment a3 is already being processed in the DSP (software processing step s3).
Die Steuerung der Hardware-Schaltung RW2 durch den DSP erfolgt ebenfalls über das Konfigurationsregister CONFIG, und zwar mittels entsprechender Steuerparameter (Datenwörter und Bits), wie sie für den Fall der Entzerrung im Einzelnen erläutert wurden.Control of the hardware circuit RW2 through the DSP is also about the configuration register CONFIG, by means of appropriate Control parameters (data words and bits) as for the case of equalization have been explained in detail.
In den folgenden Parallelverarbeitungsschritten
h3, s4 und h4, s5, ... werden die beiden Berechnungsprozeduren in
Software/Hardware zur Abarbeitung sämtlicher Segmente a1, a2, ...,
ap des in
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2002147227 DE10247227A1 (en) | 2002-10-10 | 2002-10-10 | Processing data stream in radio receiver using Viterbi- and software based procedures divides data flow for series of sequentially-overlapping execution stages |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2002147227 DE10247227A1 (en) | 2002-10-10 | 2002-10-10 | Processing data stream in radio receiver using Viterbi- and software based procedures divides data flow for series of sequentially-overlapping execution stages |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10247227A1 true DE10247227A1 (en) | 2004-04-22 |
Family
ID=32038440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2002147227 Withdrawn DE10247227A1 (en) | 2002-10-10 | 2002-10-10 | Processing data stream in radio receiver using Viterbi- and software based procedures divides data flow for series of sequentially-overlapping execution stages |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10247227A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE202005021880U1 (en) | 2005-01-11 | 2010-12-23 | Dorma Gmbh + Co. Kg | Device for opening and / or closing a door |
-
2002
- 2002-10-10 DE DE2002147227 patent/DE10247227A1/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE202005021880U1 (en) | 2005-01-11 | 2010-12-23 | Dorma Gmbh + Co. Kg | Device for opening and / or closing a door |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3910739C2 (en) | ||
DE69929652T2 (en) | Data error correction system | |
WO2003071689A2 (en) | Combined interleaver and deinterleaver, and turbo decoder comprising a combined interleaver and deinterleaver | |
DE102005010006B4 (en) | Method and apparatus for terminating an iterative turbo decoding | |
DE112004002008B4 (en) | Unified Viterbi / Turbo decoder for mobile telecommunication systems | |
DE19827815B4 (en) | receiver | |
DE102012100945A1 (en) | Iterative decoder | |
EP0488456B1 (en) | Maximum likelihood receiver | |
EP3782340A1 (en) | Decoder-supported iterative channel estimation | |
DE10196688B3 (en) | A decoder for trellis-based channel coding | |
EP1198890B1 (en) | Method for generating reliability information for the decoding channel of a radio receiver and corresponding radio receiver | |
EP1334563B1 (en) | Method and device for decoding a sequence of physical signals, reliability detection unit and viterbi decoding unit | |
DE69908820T2 (en) | FAST, MAXIMUM-A-POSTERIORI DECODING METHOD AND SYSTEM | |
DE10010238C2 (en) | Method for storing path metrics in a Viterbi decoder | |
WO2002060071A2 (en) | Viterbi decoder | |
DE10247227A1 (en) | Processing data stream in radio receiver using Viterbi- and software based procedures divides data flow for series of sequentially-overlapping execution stages | |
DE19647653A1 (en) | Digital transmission system with trellis-based, condition-reduced estimation method | |
DE60118716T2 (en) | Log-MAP decoding | |
EP1393514B1 (en) | Method and circuit for transmitting data between a processor and a hardware arithmetic unit | |
EP1223679A1 (en) | Calculation and allocation of transition metrics for Viterbi decoder | |
DE19647314A1 (en) | Fault recognition method for digitally transmitted data | |
DE10000932C2 (en) | Method and device for decoding a sequence of code words of variable length, method and device for generating a data stream and method and device for decoding a data stream | |
DE10300268B4 (en) | Circuit for calculating path metrics in Viterbi decoders | |
DE10213882B4 (en) | Method for decoding a data sequence encrypted using a binary convolutional code | |
EP1488531A1 (en) | Method for decoding a data sequence that has been encoded with the help of a binary convolution code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8139 | Disposal/non-payment of the annual fee |