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 PDF

Info

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
Application number
DE2002147227
Other languages
German (de)
Inventor
Burkhard Becker
Bin Yang
Michael Weber
Werner Hein
Norbert Metz
Johann Steger
Peter Bohnhoff
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE2002147227 priority Critical patent/DE10247227A1/en
Publication of DE10247227A1 publication Critical patent/DE10247227A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L25/03178Arrangements involving sequence estimation techniques
    • H04L25/03184Details concerning the metric
    • H04L25/03197Details 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

Both computer procedures are repeated. Results of the second procedure form inputs for the first, using the following stages. The data flow is divided into processing sections (I1, I2, I3, I4, r1, r2, r4, r4; a1, a2, ap). The first computer procedure is carried out for a specific processing stage (r1; a1) and (b2) overlapping in time with execution of the first computer procedure, execution of the second computer procedure for another processing stage (I2; a2). An Independent claim is included for corresponding decoding equipment.

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 DE 100 50 330.6 beschrieben. Channel Tracking ermöglicht es, Leistungsschwankungen des empfangenen Signals bei der Entzerrung zu berücksichtigen.The method according to the invention is preferably used for equalizing a signal, the first calculation procedure comprising, as result values, the calculation of soft output values and / or hard output values in the Viterbi equalization of symbols on the basis of calculated channel parameters, and the second calculation procedure comprises the update of channel parameters as result values on the basis of equalized symbols (soft output values and / or hard output values). The calculation or update of channel parameters on the basis of equalized symbols is also known as channel tracking ("channel tracking") and, for example, in the patent application DE 100 50 330.6 described. Channel tracking makes it possible to take fluctuations in the power of the received signal into account when equalizing.

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:

1 eine Schaltung zur Durchführung von Viterbi-Berechnungen in Form von Funktionsblöcken; 1 a circuit for performing Viterbi calculations in the form of function blocks;

2 die Architektur einer Empfängerschaltung, welche einen DSP, eine Hardware-Schaltung für die Viterbi-Entzerrung und eine Hardware-Schaltung für die Kanaldekodierung enthält; 2 the architecture of a receiver circuit including a DSP, a hardware circuit for Viterbi equalization and a hardware circuit for channel decoding;

3 eine schematische Darstellung von Verarbeitungsabschnitten in der Datenstruktur eines Bursts für die Entzerrung desselben; 3 a schematic representation of processing sections in the data structure of a burst for equalization of the same;

4 ein Schaubild, das den zeitlichen Ablauf der in Hardware und in Software durchgeführten Rechenprozeduren bei der Entzerrung darstellt; 4 a diagram illustrating the timing of the computing procedures performed in hardware and software during the equalization;

5 eine schematische Darstellung von Verarbeitungsabschnitten in der Datenstruktur eines Datenblocks für die Kanaldekodierung desselben; und 5 a schematic representation of processing sections in the data structure of a data block for channel decoding the same; and

6 ein Schaubild, das den zeitlichen Ablauf der in Hardware und in Software durchgeführten Rechenprozeduren bei der Kanaldekodierung darstellt. 6 a diagram that shows the temporal sequence of the computing procedures carried out in hardware and in software during the channel decoding.

1 zeigt den generellen Aufbau einer Viterbi-Berechnungseinheit bestehend aus einer Einheit zur Berechnung von Übergangsmetrikwerten BMU (Branch Metric Unit), einer Einheit zur Durchführung von ACS-Operationen, ACS, und einer Einheit zur Durchführung von Trace-Back-Operationen bezüglich der ermittelten Pfade SMU (Survivor Memory Unit). Eine Viterbi-Berechnungseinheit der gezeigten Struktur wird sowohl in Entzerrern (Datendetektoren) als auch in Kanaldekodierern eingesetzt. 1 shows the general structure of a Viterbi calculation unit consisting of a unit for calculating transition metric values BMU (Branch Metric Unit), a unit for performing ACS operations, ACS, and a unit for performing trace-back operations with respect to the determined paths SMU (Survivor Memory Unit). A Viterbi calculation unit of the structure shown is used both in equalizers (data detectors) and in channel decoders.

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 1 zur Verfügung stehenden Information, d.h. im Falle der Entzerrung auf den empfangenen Symbolen und den von einem Kanalschätzer ermittelten Kanalparametern, und im Falle der Kanaldekodierung auf den von dem Entzerrer ausgegebenen Soft-Output-Werten.In general, the Viterbi calculation is based on the idea of using a recursive method to determine a shortest path through a state diagram (so-called trellis diagram) in which the states of a shift register are plotted over time. In the case of equalization, the shift register represents the channel memory, while in the case of channel decoding the shift register of the channel encoder contained in the transmitter is considered. In both cases, one data unit (for the equalizer: one symbol; for the encoder: one bit) is inserted into the corresponding shift register per time step, thereby changing the state of the shift register. The values of the data units that are supplied to the respective shift register in each time step can be considered as possible receive values. The probability of these data units occurring as received values is determined time by time using the Viterbi recursion. The unit BMU calculates transition probabilities for each possible transition in the (channel encoder or equalizer) trellis diagram, which are referred to as transition metric values. The calculation of these transition metric values is based on that of the Viterbi calculation unit currently at one input 1 available information, ie in the case of equalization on the received symbols and the channel parameters determined by a channel estimator, and in the case of channel decoding on the soft output values output by the equalizer.

Die in der Einheit BMU zur Berechnung der Übergangsmetrikwerten berechneten Übergangsmetrikwerte werden über die Datenverbindung 2 der ACS-Einheit zugeführt. In der ACS-Einheit werden die Übergangsmetrikwerte den jeweiligen Zustandsmetriken der Vorgänger-Zustände hinzuaddiert (sogenannte "ADD"-Operation), und es werden die auf diese weise erhaltenen Summen verglichen (sogenannte "COMPARE"-Operation). Derjenige Übergang, dessen Summe aus Übergangsmetrikwert und Metrik des Vorgänger-Zustands minimal ist, wird ausgewählt (sogenannte "SELECT"-Operation) und bildet die Verlängerung des in den Vorgänger-Zustand mündenden Pfades in den Zielzustand. Diese drei Operationen werden als ACS-Operationen bezeichnet und von der ACS-Einheit ausgeführt.The transition metric values calculated in the BMU unit for calculating the transition metric values are transmitted via the data connection 2 fed to the ACS unit. In the ACS unit, the transition metric values are added to the respective state metrics of the previous states (so-called "ADD" operation), and the sums obtained in this way are compared (so-called "COMPARE" operation). The transition whose sum of the transition metric value and the metric of the previous state is minimal is selected (so-called "SELECT" operation) and forms the extension of the path ending in the previous state into the target state. These three operations are called ACS operations and are performed by the ACS unit.

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 3 in 1 angedeutet ist.In both Viterbi equalization and Viterbi decoding, the ACS step is carried out cyclically for all target states within each time step, as is done by the loop 3 in 1 is indicated.

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 4 mitgeteilt. Die Einheit SMU führt eine Trace-Back-Operation zur Ermittlung eines um eine bestimmte Anzahl von Zeitschritten zurückliegenden Datenbits (Kanaldekodierung) bzw. Symbols (Entzerrung) durch. Der Trace-Back-Operation liegt zugrunde, dass im Trellis-Diagramm die einzelnen Pfade in zeitlicher Rückwärtsrichtung konvergieren, d.h., dass Datenbits/Datensymbole, die für einen länger zurückliegenden Übergang ermittelt wurden, für überlebende Pfade eine höhere Sicherheit aufweisen (ob ein Pfad überlebt oder nicht, stellt sich eben erst nach Abarbeitung einer bestimmten Anzahl weiterer Zeitschritte heraus).After the metrics of all target states have been determined for a specific time step in the trellis diagram, the associated winner-state transitions of the unit SMU via the data connection 4 communicated. The SMU unit carries out a trace-back operation to determine a data bit (channel decoding) or symbol (equalization) which is a certain number of time steps away. The trace-back operation is based on the fact that the individual paths converge in the backward direction in time in the trellis diagram, that is to say that data bits / data symbols which were determined for a transition which was carried out a long time ago are more reliable for surviving paths (whether a path survives or not, it only turns out after a certain number of further time steps have been processed).

Im Falle der Kanaldekodierung gibt die Einheit SMU über die Datenverbindung 5 dekodierte Datenbits aus. Im Falle der Entzerrung werden über die Datenverbindung 5 Soft-Output-Werte und Hard-Output-Werte bereitgestellt.In the case of channel decoding, the unit gives SMU over the data link 5 decoded data bits. In the case of equalization, the data connection 5 Soft output values and hard output values provided.

Die anhand 1 erläuterten Rechenschritte werden teilweise in Hardware (von einem Hardware-Modul) und teilweise in Software (von einem Prozessor) ausgeführt. Dies macht Schnittstellen zwischen der Hardware und dem Prozessor erforderlich.The based 1 Computational steps explained are carried out partly in hardware (from a hardware module) and partly in software (from a processor). This requires interfaces between the hardware and the processor.

2 zeigt die Architektur einer Empfängerschaltung mit einem Entzerrer und einem Kanaldekodierer, welche einen digitalen Signalprozessor DSP und eine mit dem DSP über eine Schnittstelle in Verbindung stehendes Hardware-Modul für die Entzerrung und die Kanaldekodierung einsetzt. Der DSP ist über ein oder mehrere Konfigurationsregister CONFIG mit zwei Viterbi-Rechenschaltungen RW1 und RW2 verbunden. Die erste Hardware-Schaltung RW1 dient der Entzerrung des empfangenen Datensignals, die zweite Hardware-Schaltung RW2 führt eine Kanaldekodierung durch. Die Hardware-Schaltungen RW1 und RW2 können eine Entzerrung bzw. Kanaldekodierung sowohl z.B. gemäß dem GSM-(Global System for Mobile Communications-)Standard als auch gemäß dem EDGE-(Enhanced Data Services for GSM Evolution-)Standard ausführen. 2 shows the architecture of a receiver circuit with an equalizer and a channel decoder, which uses a digital signal processor DSP and a hardware module connected to the DSP via an interface for the equalization and the channel decoding. The DSP is connected to two Viterbi computing circuits RW1 and RW2 via one or more configuration registers CONFIG. The first hardware circuit RW1 serves to equalize the received data signal, the second hardware circuit RW2 performs channel decoding. The hardware circuits RW1 and RW2 can perform an equalization or channel decoding both, for example, according to the GSM (Global System for Mobile Communications) standard and also according to the EDGE (Enhanced Data Services for GSM Evolution) standard.

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.
The design of the first hardware circuit RW1 for equalization of symbols is described in international application WO 02/03637 A1, which is added to the content of the present document by reference. The first hardware circuit RW1 accordingly comprises the following hardware data paths in a manner not shown here:
  • - 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 first volatile data memory RAM1 serves as an input memory for the hardware circuit RW1. The following sizes are stored in RAM1:
  • - 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 second volatile data memory RAM2 serves as an output memory for the hardware circuit RW1. The following quantities are stored in RAM2:
  • - 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).
The first volatile data memory RAMW1 serves as an intermediate value memory for recursive trellis processing by processing the ACS operations. The following sizes are stored in RAMW1:
  • - "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).
The second volatile data memory RAMW2 serves as an intermediate value memory in the recursive trellis processing by processing the ACS operations. The following sizes are stored in RAMW2:
  • - "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 1 dargestellte Viterbi-Berechnung bei der in 2 dargestellten Schaltung in Hardware ausgeführt wird. Im Allgemeinen müssen bei der vorliegenden Erfindung jedoch nicht sämtliche bei der Viterbi-Prozessierung durchzuführenden Rechenschritte in Hardware ausgeführt sein, sondern es ist auch möglich, nur Teilschritte (z.B. die ACS-Operationen) in Hardware zu implementieren.It is clear that the entire in 1 Viterbi calculation shown in the in 2 circuit shown is executed in hardware. In general, however, not all of the computing steps to be carried out in Viterbi processing have to be carried out in hardware in the present invention, but it is also possible to implement only partial steps (for example the ACS operations) in hardware.

3 zeigt die Datenstruktur eines innerhalb eines Zeitschlitzes zum Empfänger übertragenen Signals. Das innerhalb eines Zeitschlitzes übertragene Signal wird auch als Burst bezeichnet. In der Mitte des Bursts befindet sich eine Trainingssequenz TS bestehend aus Symbolen, die im Empfänger bekannt sind. Rechts und links der Trainingssequenz TS weist der Burst die Abschnitte D_r bzw. D_l auf. Die Abschnitte D_r und D_l enthalten die im Empfänger zu rekonstruierenden Datensymbole. 3 shows the data structure of a signal transmitted to the receiver within a time slot. The signal transmitted within a time slot is also referred to as a burst. In the middle of the burst there is a training sequence TS consisting of symbols that are known in the receiver. The burst has the sections D_r and D_l on the right and left of the training sequence TS. Sections D_r and D_l contain the data symbols to be reconstructed in the receiver.

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.

4 zeigt die Verarbeitung der in den Abschnitten D_l und D_r enthaltenen Symbole in der in 2 gezeigten Empfängerschaltung, wobei Verarbeitungsprozeduren, die auf Software-Basis erfolgen, unterhalb der Zeitachse t dargestellt sind, während Verarbeitungsprozeduren, die in Hardware (d.h. in der Hardware-Schaltung RW1) durchgeführt werden, oberhalb der Zeitachse t dargestellt sind. 4 shows the processing of the symbols contained in sections D_l and D_r in the in 2 Receiver circuit shown, wherein processing procedures that are carried out on a software basis are shown below the time axis t, while processing procedures that are carried out in hardware (ie in the hardware circuit RW1) are shown above the time axis t.

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: b_mode: Wahl zwischen EDGE- und GSM-Entzerrung; b_numb: Anzahl der Symbole xk in einem Segment l_1, ..., l_4 oder r_1, ..., r_4; b_r/l: Wahl zwischen der Entzerrung des rechten oder linken Halb-Bursts D_r oder D_l; b_start: Starten der Hardware-Schaltung RW1 zur Durchführung der in Hardware implementierten ersten Rechenprozedur; b_dat_in: Setzen des Adresszeigers des Eingabespeichers RAM1 auf den Basiswert für Datensymbole, um die empfangenen Datensymbole xk in den Eingabespeicher RAM1 zu schreiben; b_par_in: Setzen des Adresszeigers des Eingabespeichers RAM1 auf den Basiswert für Partialsummen der Übergangsmetrikwerte, um die berechneten bzw. aktualisierten Produkte hi·sn in den Eingabespeicher RAM1 zu schreiben; b_hard_out: Setzen des Adresszeigers des Ausgabespeichers RAM2 auf den Basiswert für Hard-Output-Werte, um diese aus dem Ausgabespeicher RAM2 zu lesen; b_soft_out: Setzen des Adresszeigers des Speichers RAM2 auf den Basiswert Soft-Output-Werte, um diese aus dem Ausgabespeicher RAM2 zu lesen; The following control parameters held in the configuration register CONFIG are provided for initializing the hardware circuit RW1 and for performing the segmental equalization. The control parameters can be controlled by the DSP: b_Mode: Choice between EDGE and GSM equalization; b_numb: Number of symbols x k in a segment l_1, ..., l_4 or r_1, ..., r_4; B_r / l: Choice between equalization of the right or left half burst D_r or D_l; B_start: Starting the hardware circuit RW1 to carry out the first computing procedure implemented in hardware; b_dat_in: Setting the address pointer of the input memory RAM1 to the base value for data symbols in order to write the received data symbols x k into the input memory RAM1; b_par_in: Setting the address pointer of the input memory RAM1 to the base value for partial sums of the transition metric values in order to write the calculated or updated products h i · s n into the input memory RAM1; b_hard_out: Setting the address pointer of the output memory RAM2 to the base value for hard output values in order to read them from the output memory RAM2; b_soft_out: Setting the address pointer of the memory RAM2 to the base value soft output values in order to read them from the output memory RAM2;

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 3 gezeigten Bursts durchgeführt. Hierfür werden die Abschnitte D_l und D_r der in 3 gezeigten Datenstruktur in einzelne Segmente l_1, l_2, l_3, l_4 bzw. r_1, r_2, r_3, r_4 unterteilt. Die beiden Segmente l_1 und r_1 sind links und rechts benachbart der Trainingssequenz TS angeordnet, die Segmente l_2 und r_2 bzw. l_3 und r_3 bzw. l_4 und r_4 schließen sich in der genannten Reihenfolge beidseitig an und liegen jeweils symmetrisch zu der Trainingssequenz TS.Then a segmental equalization of the in 3 shown bursts performed. For this purpose, the sections D_l and D_r of the in 3 data structure shown divided into individual segments l_1, l_2, l_3, l_4 or r_1, r_2, r_3, r_4. The two segments l_1 and r_1 are arranged on the left and right adjacent to the training sequence TS, the segments l_2 and r_2 or l_3 and r_3 or l_4 and r_4 are connected on both sides in the order mentioned and are each symmetrical to the training sequence TS.

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 2 dargestellten Hardware-Schaltung RW1 die Hard-Output-Werte HOk und die Soft-Output-Werte SOk für die Symbole des Segments l_1 und die entsprechenden Zustandsvektoren Zk berechnet. Hierfür führt die Hardware-Schaltung RW1 eine Trellis-Prozessierung in der bereits beschriebenen Weise durch, d.h. es werden auf der Basis der übermittelten Produkte hi·sn (welche die im Vorverarbeitungsschritt v4 auf der Basis der Trainingssequenz TS ermittelten und im Vorverarbeitungsschritt v5 gefilterten Kanalparameter enthalten) die Übergangsmetrikwerte Ik(m→m') für jeden Zustandsübergang m→m' berechnet, und es werden durch wiederholtes Ausführen der ACS-Operationen neue Zustandsmetriken Mk(m'), Zustandsvektoren Zk(m') und pro Zeitschritt k ein (GSM) bzw. drei (EDGE) Hard-Output-Wert (e) HOk und ein (GSM) bzw. drei (EDGE) Soft-Output-Wert (e) SOk für ein entzerrtes Symbol berechnet, welche bei der Prozessierung Zeitschritt für Zeitschritt in den Ausgabespeicher RAM2 eingeschrieben werden. Die Prozessierung erstreckt sich über b_numb Zeitschritte.Hardware processing step h1 is started by setting bit b_start. As part of the equalization, the in 2 hardware circuit RW1 shown calculates the hard output values HO k and the soft output values SO k for the symbols of the segment l_1 and the corresponding state vectors Z k . For this purpose, the hardware circuit RW1 carries out a trellis processing in the manner already described, ie it is based on the transmitted products h i · s n (which are determined in the preprocessing step v4 on the basis of the training sequence TS and filtered in the preprocessing step v5 Channel parameters include) the transition metric values I k (m → m ') are calculated for each state transition m → m', and new state metrics M k (m '), state vectors Z k (m') and pro are calculated by repeated execution of the ACS operations Time step k calculates one (GSM) or three (EDGE) hard output value (s) HO k and one (GSM) or three (EDGE) soft output value (e) SO k for an equalized symbol, which are written into the output memory RAM2 step by time during processing. The processing extends over b_numb time steps.

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 3 gezeigten Datenstruktur wiederholt. Die in Klammern gesetzten Angaben unter den Software-Verarbeitungsschritten s1, s2, ..., s6 bezeichnen die Verarbeitungsabschnitte, für welche aktualisierte Kanalparameter berechnet werden. Mit der abschließenden Entzerrung der Symbole des Segments r_4 im Hardware-Verarbeitungsschritt h8 mittels der in dem Software-Verarbeitungsschritt s6 berechneten aktualisierten Kanalparameter ist die Entzerrung der Symbole des betrachteten Bursts abgeschlossen.In the parallel processing steps s3, h4 and s4, h5 and s5, h6 and s6, h7, the two calculation procedures in software / hardware for processing all segments of the in 3 data structure shown repeated. The statements in brackets under the software processing steps s1, s2, ..., s6 denote the processing sections for which updated channel parameters are calculated. With the final equalization of the symbols of the segment r_4 in the hardware processing step h8 by means of the updated channel parameters calculated in the software processing step s6, the equalization of the symbols of the burst under consideration is completed.

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 5 und 6 erläutert.In the subsequent channel decoding, a parallel processing of software and hardware processing steps is also carried out. This is explained below using the 5 and 6 explained.

6 zeigt die Verarbeitung eines Datenblockes entzerrter Soft-Output-Werte SOk in der in 2 gezeigten Empfängerschaltung, wobei Verarbeitungsprozeduren, die auf Software-Basis erfolgen, unterhalb der Zeitachse t dargestellt sind und Verarbeitungsprozeduren, die in Hardware durchgeführt werden, oberhalb der Zeitachse t dargestellt sind. 6 shows the processing of a data block of equalized soft output values SO k in the in 2 Receiver circuit shown, wherein processing procedures that are carried out on a software basis are shown below the time axis t and processing procedures that are carried out in hardware are shown above the time axis t.

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.

5 zeigt in schematischer Weise den Datenstrom bestehend aus den über die Dauer eines Datenblockes entzerrten und entschachtelten Soft-Output-Werten SOk. Dieser Datenstrom wird in einzelne Segmente a1, a2, ..., ap (p ist die wählbare Gesamtanzahl der Segmente) unterteilt. 5 schematically shows the data stream consisting of the soft output values SO k equalized and deinterleaved over the duration of a data block. This data stream is divided into individual segments a1, a2, ..., ap (p is the selectable total number of segments).

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 DE 100 64 102 A1 beschrieben, die diesbezüglich durch Bezugnahme dem Inhalt der vorliegenden Schrift hinzugefügt wird. Die zweite Hardware-Schaltung RW2 umfasst demnach in hier nicht näher dargestellter Weise die folgenden Hardware-Datenpfade:

  • – Datenpfad zur Berechnung von Übergangsmetrikwerten;
  • – Datenpfad zur Durchführung von ACS-Operationen.
The construction of the RW2 hardware circuit for Viterbi channel decoding is in the German patent application DE 100 64 102 A1 described, which is added by reference to the content of this document. The second hardware circuit RW2 accordingly comprises the following hardware data paths in a manner not shown here:
  • - 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 EP 1 223 679 A1 näher beschrieben, die diesbezüglich durch Bezugnahme dem Inhalt der vorliegenden Schrift hinzugefügt wird. Die Übergangsmetrikwerte werden von dem Datenpfad zur Durchführung von ACS-Operationen in ebenfalls bekannter Weise prozessiert. Die dabei anfallenden Metrikwerte werden in den flüchtigen Speichern RAMW1 und RAMW2 temporär abgelegt. Pro Trellis-Zustand werden diejenigen Entscheidungswerte der ACS-Operationen ermittelt, die für einen Traceback-Schritt an den DSP übergeben werden.Using the data path for calculating transition metric values, the transition metric values for the channel decoding are calculated in a known manner from the deinterleaved, depunctured and possibly combined soft output values SO k . The combination of the soft output values required for this depends on the code rate used on the transmitter side and the generator polynomial used on the transmitter side channel coding and is in the European patent application EP 1 223 679 A1 described in more detail, which is added by reference to the content of this document. The transition metric values are processed by the data path in order to perform ACS operations in a likewise known manner. The resulting metric values are temporarily stored in the volatile memories RAMW1 and RAMW2. For each trellis state, those decision values of the ACS operations that are transferred to the DSP for a traceback step are determined.

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 5 gezeigten entschachtelten Datenblocks wiederholt. Mit der abschließenden Kanaldekodierung der entschachtelten Soft-Output-Werte SOk des Segments ap im Hardware-Verarbeitungsschritt hp ist die Kanaldekodierung des betrachteten Datenblockes abgeschlossen.In the following parallel processing steps h3, s4 and h4, s5, ... the two calculation procedures in software / hardware for processing all segments a1, a2, ..., ap des in 5 shown deinterleaved data blocks repeated. The channel decoding of the data block under consideration is completed with the final channel decoding of the deinterleaved soft output values SO k of the segment ap in the hardware processing step hp.

Claims (15)

Verfahren zum Verarbeiten eines Datenstroms in einem Funkempfänger mittels zumindest einer ersten Rechenprozedur, die in Hardware (RW1, RW2) erfolgt und die Ausführungen von Viterbi-ACS-Operationen umfasst, und zumindest einer zweiten Rechenprozedur, die auf Software-Basis mittels eines Prozessors (DSP) durchgeführt wird, wobei die beiden Rechenprozeduren wiederholt ausgeführt werden und Ergebniswerte der zweiten Rechenprozedur Eingabewerte für die erste Rechenprozedur sind, mit den Schritten: (a) Unterteilen des Datenstroms in eine Mehrzahl von Verarbeitungsabschnitten (l_1, l_2, l_3, l_4, r_1, r_2, r_3, r_4; a1, a2, ..., ap); (b1) Ausführen der ersten Rechenprozedur für einen bestimmten Verarbeitungsabschnitt (r_1; a1); und (b2) zeitlich überlappend mit dem Ausführen der ersten Rechenprozedur Ausführen der zweiten Rechenprozedur für einen anderen Verarbeitungsabschnitt (l_2; a2).Method for processing a data stream in a radio receiver by means of at least one first computing procedure, which takes place in hardware (RW1, RW2) and comprises the execution of Viterbi-ACS operations, and at least one second computing procedure, which is based on software by means of a processor (DSP ) is carried out, the two calculation procedures being carried out repeatedly and result values of the second calculation procedure being input values for the first calculation procedure, with the steps: (a) dividing the data stream into a plurality of processing sections (l_1, l_2, l_3, l_4, r_1, r_2, r_3, r_4; a1, a2, ..., ap); (b1) executing the first calculation procedure for a specific processing section (r_1; a1); and (b2) overlapping in time with the execution of the first calculation procedure, execution of the second calculation procedure for another processing section (I_2; a2). Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die zweite Rechenprozedur – mit Eingabewerten, die bei einer früheren Ausführung der ersten Rechenprozedur für einen bereits prozessierten Verarbeitungsabschnitt (l_1) erhalten wurden, gespeist wird, und – zur Berechnung von Ergebniswerten, die Eingabewerte für die Ausführung der ersten Rechenprozedur für einen später zu prozessierenden Verarbeitungsabschnitt (l_2) sind, ausgeführt wird.A method according to claim 1, characterized in that the second calculation procedure - with input values at an earlier one execution the first calculation procedure for an already processed processing section (l_1) has been received, is fed, and - to Calculation of result values, the input values for the execution of the first calculation procedure for one later to be processed processing section (I_2) is executed. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das Verfahren zum Entzerren eines Signals eingesetzt wird, 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 als Ergebniswerte die Aktualisierung von Kanalparametern auf der Basis entzerrter Symbole umfasst.A method according to claim 1 or 2, characterized in that that the method is used to equalize a signal, where - the first calculation procedure as result values the calculation of soft output values and / or hard output values in the Viterbi equalization of symbols based on calculated channel parameters, and - the second Calculation procedure as result values, the update of channel parameters based on equalized symbols. Verfahren nach Anspruch 3, dadurch gekennzeichnet, – dass die zweite Rechenprozedur ferner die Vorfilterung sowohl der Kanalparameter als auch der zu entzerrenden Symbole umfasst.A method according to claim 3, characterized in - that the second calculation procedure further pre-filtering both the channel parameters as well as the symbols to be equalized. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, – dass das innerhalb eines Zeitschlitzes übertragene Signal eine Trainingssequenz-Mitambel (TS) mit im Empfänger bekannten Symbolen umfasst, – dass die Verarbeitungsabschnitte (l_1, l_2, l_3, l_4; r_1, r_2, r_3, r_4) beidseitig der Trainingssequenz-Mitambel (TS) angeordnet sind, und – dass alternierend rechts und links der Trainingssequenz-Mitambel (TS) angeordnete Verarbeitungsabschnitte (l_1, l_2, l_3, l_4; r_1, r_2, r_3, r_4) zeitlich aufeinanderfolgend mittels der ersten Rechenprozedur entzerrt werden.A method according to claim 3 or 4, characterized in - that this Signal transmitted within a time slot includes a training sequence mitambel (TS) with symbols known in the receiver, - that the Processing sections (l_1, l_2, l_3, l_4; r_1, r_2, r_3, r_4) are arranged on both sides of the training sequence mitambel (TS), and - that alternating Processing sections arranged to the right and left of the training sequence mitambel (TS) (l_1, l_2, l_3, l_4; r_1, r_2, r_3, r_4) consecutively in time be equalized by means of the first calculation procedure. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die erste Rechenprozedur neben der Berechnung von Soft-Output-Werten und/oder Hard-Output-Werten für die entzerrten Symbole umfasst: – die Berechnung von Übergangsmetriken, – die Berechnung von Zustandsmetriken durch Ausführen der ACS-Operationen, und – die Berechnung von Zustandsvektoren.A method according to claim 5, characterized in that the first calculation procedure in addition to the calculation of soft output values and / or hard output values for the equalized symbols includes: - the calculation of transition metrics, - the calculation of state metrics by executing the ACS operations, and - the Calculation of state vectors. Verfahren nach einem der Ansprüche 3 bis 6, dadurch gekennzeichnet, dass vor den Schritten b1 und b2 eine Vorverarbeitung der Symbole sämtlicher Verarbeitungsabschnitte (l_1, l_2, l_3, l_4, r_1 2, r_3, r_4) durch einen reinen Software-Verarbeitungsablauf (v1, v2, v3, v4, v5) vorgenommen wird.Method according to one of claims 3 to 6, characterized in that that before steps b1 and b2 preprocessing of the symbols all processing sections (l_1, l_2, l_3, l_4, r_1 2, r_3, r_4) through a pure software processing flow (v1, v2, v3, v4, v5) is made. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die Vorverarbeitung die Schritte umfasst: – Derotieren (v1) der Symbole und/oder – DC-Korrigieren (v2) der Symbole und/oder – Leistungsnormieren (v3) der Symbole und/oder – Durchführen einer Schätzung von Kanalparametern (v4) auf der Basis der Trainingssequenz (TS), und/oder – Vorfiltern (v5) der Kanalparameter und der zu entzerrenden Symbole.A method according to claim 7, characterized in that preprocessing includes the steps: - Derotate (v1) the symbols and / or - DC correction (v2) the symbols and / or - standardize performance (v3) the symbols and / or - performing one estimate of channel parameters (v4) based on the training sequence (TS), and / or - pre-filter (v5) the channel parameters and the symbols to be equalized. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren zum Kanaldekodieren eines Datenstroms bestehend aus Soft-Output-Werten entzerrter Symbole eingesetzt wird.A method according to claim 1, characterized in that the method for channel decoding a data stream exists equalized from soft output values. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die erste Rechenprozedur die Viterbi-Kanaldekodierung von entschachtelten und depunktierten Daten umfasst und die zweite Rechenprozedur die Entschachtelung und Depunktierung von Daten umfasst.A method according to claim 9, characterized in that the first arithmetic procedure de-interleaved the Viterbi channel decoding and depunctured data and the second calculation procedure includes Deinterleaving and depuncturing of data includes. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass die zweite Rechenprozedur ferner die Kombination von entschachtelten und depunktierten Daten bei Incremental Redundancy umfasst.A method according to claim 9 or 10, characterized in that that the second calculation procedure furthermore the combination of deinterleaved and depunctured data at incremental redundancy. Verfahren nach einem der Ansprüche 9 bis 11, dadurch gekennzeichnet, dass vor den Schritten b1 und b2 eine Vorverarbeitung der Daten sämtlicher Verarbeitungsabschnitte (a1, a2, ..., ap) durch einen reinen Software-Verarbeitungsablauf (v) vorgenommen wird.Method according to one of claims 9 to 11, characterized in that that preprocessing of the data before steps b1 and b2 all processing sections (a1, a2, ..., ap) through a pure software processing sequence (v) is made. Vorrichtung zum Entzerren eines über einen gestörten Kanal übertragenen Signals nach dem Verfahren eines der Ansprüche 3 bis 8, mit – einer festverdrahteten ersten Hardware-Schaltung (RW1) zum Ausführen der ersten Rechenprozedur, und – einem digitalen Signalprozessor (DSP) zum Ausführen der zweiten Rechenprozedur.Device for equalizing a transmitted over a disturbed channel Signal according to the method of one of claims 3 to 8, with - one hardwired first hardware circuit (RW1) to run the first calculation procedure, and - a digital signal processor (DSP) to run the second calculation procedure. Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, dass die erste Hardware-Schaltung (RW1) umfasst: – einen ersten Hardware-Datenpfad zur Durchführung von ACS-Operationen, welcher Zustandsmetriken berechnet, – einen zweiten Hardware-Datenpfad zur Berechnung von Übergangsmetrikwerten, – einen dritten Hardware-Datenpfad zur Berechnung von Soft-Output-Werten und/oder Hard-Output-Werten für die entzerrten Symbole, und – einen vierten Hardware-Datenpfad zur Berechnung von Zustandsvektoren.Device according to claim 13, characterized in that the first hardware circuit (RW1) comprises: a first hardware data path for implementation ACS operations which calculate state metrics, - a second hardware data path for calculating transition metric values, - a third hardware data path for calculating soft output values and / or hard output values for the equalized symbols, and - a fourth hardware data path for calculating state vectors. Vorrichtung zum Kanaldekodieren eines über einen gestörten Kanal übertragenen Signals nach dem Verfahren der Ansprüche 9 bis 12, mit – einer festverdrahteten zweiten Hardware-Schaltung (RW2) zum Ausführen der ersten Rechenprozedur, und – einem digitalen Signalprozessor (DSP) zum Ausführen der zweiten Rechenprozedur.Device for decoding channels via one disturbed Channel transmitted Signals according to the method of claims 9 to 12, with - one hardwired second hardware circuit (RW2) to run the first calculation procedure, and - a digital signal processor (DSP) to run the second calculation procedure.
DE2002147227 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 Withdrawn DE10247227A1 (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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