DE2163105A1 - Verfahren und schaltungsanordnung zum dekodieren und korrigieren eines sogenannten convolutional-code - Google Patents

Verfahren und schaltungsanordnung zum dekodieren und korrigieren eines sogenannten convolutional-code

Info

Publication number
DE2163105A1
DE2163105A1 DE2163105A DE2163105A DE2163105A1 DE 2163105 A1 DE2163105 A1 DE 2163105A1 DE 2163105 A DE2163105 A DE 2163105A DE 2163105 A DE2163105 A DE 2163105A DE 2163105 A1 DE2163105 A1 DE 2163105A1
Authority
DE
Germany
Prior art keywords
bit
output
modulo
adder
bits
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.)
Granted
Application number
DE2163105A
Other languages
English (en)
Other versions
DE2163105B2 (de
DE2163105C3 (de
Inventor
Charles Dipl Ing Kurvin
Gustav Liefeld
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.)
Airbus Defence and Space GmbH
Original Assignee
Messerschmitt Bolkow Blohm 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 Messerschmitt Bolkow Blohm AG filed Critical Messerschmitt Bolkow Blohm AG
Priority to DE2163105A priority Critical patent/DE2163105C3/de
Priority to US00311383A priority patent/US3842400A/en
Publication of DE2163105A1 publication Critical patent/DE2163105A1/de
Publication of DE2163105B2 publication Critical patent/DE2163105B2/de
Application granted granted Critical
Publication of DE2163105C3 publication Critical patent/DE2163105C3/de
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Description

Messerschmitt-Bölkow-Blohm Ottobrunn, 1.12.1971
Gesellschaft mit 7331
beschränkter Haftung B5II Pu/gö München
Verfahren und Schaltungsanordnung ziara Dekodieren und Korrigieren eines sogenannten CONVOLUTIONAL-CODE
Die Erfindung bezieht sich auf ein Verfahren zum Dekodieren ■ιαύ Korrigieren eines sogenannten CONVOLUTIONAL-CODE mit Hilfe eines Modalo-2-Addierers als erstem Dekodierer und eines auf die Einflußlänge des Codes abgestimmten, mit einer entsprechenden, aus weiteren Modulo-2-Addierern gebildeten ParLty-3it-Verknüpfung versehenen Schieberegisters, dessen
309827/0925 ßAn Λ
ßAD original
erste Stufe fehlt, und das den zweiten Kodierer bildet, sowie auf eine Schaltungsanordnung zur Durchführung dieses Verfahrens.
Der besonders für Telernetrieaufgaben in der Raumfahrttechnik zunehmend benutzte CONVOLUTIONAL-CODE benutzt eine bestimmte Bitzahl von der sog. Einflu31änge, wobei z.B. durch sog. Generator Matrixen vorgegebene Kombinationen unterschiedlicher Bits miteinander in Modulo-2-Addierern Parity-Bits erzeugt werden, die z.B. über einen Multiplexschalter abgefragt werden können. Die zu übertragende Information wird dabei in ein Bereitstellungsregister mit einer durch die Einflußlänge gegebenen Stellenzahl eingeschoben, wobei für jeden Schiebetakt, also nach jedem Weiterschieben der Information um eine Stelle in dem Register, von dem Multi- olexschalter sämtliche Parity-3its abgefragt werden, so da.; also pro Iriformationsbit soviel Paritäts-Bits erzeugt und ■!bertragen werden, wie von dem Multiplexschalter abgetastete Schaltpurikte vorgesehen sind. Vorzugsweise wird bei derartigen Kodierern mit einer doppelten 3itrate gearbeitet, d.h. einem Multiplexschalter, der nach jedem Verschieben der Information in dem Register an jeweils eine Stelle zwei unterschiedliche Leitungen abtastet, v/ob ei an vier ersten Leitung ein durch Kombination des Inhaltes beliebig vieler der ersten Generatormatrix entsprechenden Stellen des Schieberegisters einschlieSlich der ersten Stufe gebildetes Paritätsbits ansteht, während auf der zweiten Leitung ein in gleicher Weise jedoch zusätzlich mit dem Inhalt der zweiten Stelle gebildetes Paritätsbit erzeugt wird. Die erste und zweite Generatormatrix unterscheiden sich dann also nur uia ein Glied. Die Erzeugung eines solchen CONVOLUTIONAL-CODE und auch der prinzipielle Aufbau eines dazu geeigneten Kodierers wurde z.B. durch einen Vortrag bekannt, der bei der Diskussionssitzung "Aktuelle
309827/0925 BAD ORIGINAL
Codeprobleme" des Fachausschusses 1 der Nachrichtentechnischen Gesellschaft, in der TU Berlin am 16. März 197o gehalten wurde. Ein solcher Kodierer ist schematisch in Fig. 1 dargestellt.
Die in der vorstehend erläuterten V/eise kodierten Daten wurden auf der Empfangsseite bisher mit Hilfe eines Pufferspeichers zur Speicherung der ankommenden Symbole, einer Nachbildung des Kodierers und einer Berechnungseinheit dekodiert. Die 3erechnungseinheit ist dabei ein Computer, der Bit-Hypothesen und deren Zuverlässigkeit berechnet. Dadurch ist auch bei stärker gestörten Signalen eine Regenerierung der übertragenen Daten möglich. Selbstverständlich ist die Dekodierung der Daten mit Hilfe eines Computers mit einem erheblichen Aufwand verbunden, so daß besonders bei geringen Übertragungsentfernungen und Testanlagen das Bedürfnis nach einem einfacheren Verfahren zum Dekodieren dieser Daten besteht, da hier vorausgesetzt werden kann, da*3 diese Daten bei der Übertragung nur wenig gestört sind.
Aufgabe der Erfindung ist es daher, ein neues Verfahren und eine Schaltungsanordnung zur Durchführung dieses Verfahrens anzugeben, mit denen in einfacherer Weise nach dem CONVOLU-TI0NAL-C0DE verschlüsselte Daten dekodiert werden können, wobei gleichzeitig bis zu einem gewissen Umfang auftretende Fehler erkannt und automatisch korrigiert werden sollen.
Bei einem Verfahren der eingangs genannten Art ist diese Aufgabe gemäß der Erfindung dadurch gelöst, daß der jeweils einem Parity-Bitpaar entsprechende Datenfluß D des ersten Modulo-2-Addierers mit dem dem ersten Bit eines verzögerten Bitpaares entsprechenden DatenfluG A und dem dem zweiten Bit des verzögerten Bitpaares entsprechenden Datenfluß B vergli-
309827/0925
chen wird und der aus einem Korrekturglied an das Schieberegister abgegebene Datenfluß Df nach den Bedingungen
1. wenn A=B=D dann ist Df = D
2. wenn A=B^D dann ist D1 = D J>, wenn A^B dann ist D' = D
Bit für Bit weitergegeben wird, wobei die Bedingung 2.) eine Korrektur bedeutet.
Bei diesem Verfahren wird unter der Voraussetzung der Ver- ψ wendung eines oben beschriebenen CONVOLUTIONAL-CODE doppelter Bitrate mit Generator-Matrixen, die sich nur in einem Glied unterscheiden, von der Möglichkeit einer sehr einfachen Dekodierung der empfangenen Signale durch Kombination jeweils zweier aufeinanderfolgender Bits in einem Modulo-2-Addierer als erstem Dekodierer Gebrauch gemacht, wobei jedes erste eintreffende Paritätsbit auf den einen Eingang und jedes zweite eintreffende Bit auf den anderen Eingang des Modulo-2-Addierers gegeben wird. Der Ausgang dieses Modulo-2-Addierers entspricht dann, unter der Voraussetzung, daß die richtigen aufeinanderfolgenden Bits zu einem Paar zusammengefaSt werden, dem unkodierten Signal, wobei jedoch auf Wk dem Übertragungsweg aufgetretene Fehler auch hier vorhanden sind.
In zwei weiteren auch als Dekodierer arbeitenden Modulo-2-Addierern wird auf den einen Eingang je ein Bit von einem eintreffenden Parity-Bit-Paar gegeben, das jedoch um einen Doppeltakt gegenüber dem obigen verzögert ist. Am jeweils anderen Eingang des Modulo-2-Addierers ist ein in gleicher Weise wie der benutzte Kodierer aufgebautes, jedoch um die erste Stufe verkürztes, und mit einer Parity-Bit-Verknüpfung versehenes Schieberegister angeschlossen, das wiederum Paritätsbits erzeugt. Dabei kann das Schieberegister mit seinen
-5-309827/0925
eigenen dekodierten Daten oder aber mit den am Ausgang des ersten Modulo-2-Addierers erscheinenden dekodierten Daten gefüllt werden. Wird jetzt außerdem in der erfindungsgemässen Weise in dem Korrekturglied ein Vergleich der gebildeten drei dekodierten Datenflüsse vorgenommen, so kann nicht nur festgestellt werden, ob das jeweils empfangene und dekodierte Bit richtig oder falsch ist, sondern darüberhinaus im letzteren Fall auch eine automatische Korrektur des falschen Bits durchgeführt werden, in dem der Wert dieses Bit invertiert wird. Da für jedes Bit nur zwei logische Zustände, nämlich 0 und 1 unterschieden werden, wird ein als falsch festgestelltes Bit durch Inversion automatisch richtig. Die dekodierten und teilweise korrigierten Bits stehen dann in dem Schieberegister, aus dem sie zu ihrer weiteren Verarbeitung entnehmbar sind.
Gemäß einer Weiterbildung des erfxndungsgemäßen Verfahrens wird überwacht, wie oft innerhalb einer bestimmten Anzahl von Bit die Bedingung 2.) auftritt, d.h. eine Fehlerkorrektur durchgeführt wird, und nach einem zweiten Auftreten innerhalb der vorgegebenen Anzahl wird eine weitere Korrektur vorerst unterbunden, da sonst in das Schieberegister falsche Daten eingeschoben werden und dann die Schaltung Korrekturen durchführt, die nicht nur auf Fehler im Eingang sondern im Schieberegister zurückzuführen sind, d.h. das Verfahren arbeitet nicht mehr entsprechend seiner vorgegebenen Funktion. Um das Verfahren nun wieder ^richtig anlaufen zu lassen, muß das Schieberegister mit unkorrigierten Daten gefüllt werden. Waren diese Daten fehlerfrei, funktioniert die Fehlerkorrektur wieder einwandfrei nach ihrer erneuten Freigabe.
-6-
309827/0925 ■
-D-
Ab dem Zeitpunkt des zweiten Fehlers in der vorgegebenen Anzahl von Bit kann ein Fehlersignal an die die dekodierten Daten weiterverarbeitende Einrichtung gegeben werden. Dieses Signal kann wieder aufgehoben werden, wenn nach dem erneuten Einschalten des Korrekturgliedes keine weiteren Korrekturen durchgeführt zu werden brauchen.
Die vorzugebende Anzahl von Eingangs-Bits in der nicht mehr als eine Korrektur durchgeführt werden sollte, muß größer als 4 sein, sollte jedoch ein Vielfaches davon betragen, da sonst die Gefahr besteht, daß ein Ausgangssignal entsteht, das bei gestörter Übertragung keinen Bezug zum unkodierten Signal hat, ohne daß dies bemerkt wird. Eine Möglichkeit ist, die vorzugebende Anzahl gleich der Einflußlänge zu wählen.
Da die Kombination jeweils benachbarter Bits zu einem Bitpaar in zwei unterschiedlichen Weisen möglich ist, jedoch zur richtigen Dekodierung der Daten nur eine dieser beiden Möglichkeiten zulässig ist, wird gemäß einer Weiterbildung der Erfindung beim Auftreten von mehr als zwei Fehlern jeweils die Art der Kombination zweier benachbarter Bits geändert, d.h. also von drei aufeinanderfolgenden Bits einmal entweder die ersten beiden oder aber jeweils die letzten beiden zu einem Bitpaar zusammengefaßt.
Gemäß einer anderen Weiterbildung der Erfindung wird eine Schaltungsanordnung zur Durchführung des erfindungsgemässen Verfahrens geschaffen, die einen ersten Modulo-2-Addierer, ein Korrektierglied und ein über weitere Modulo-2-Addierer mit einer einem zu dekodierenden CONVOLUTIONAL-CODE entsprechenden Parity-Bit-Verknüpfung versehenen Schieberegister aufweist, und die sich dadurch auszeichnet,
309827/0925
_■ 7 -
da 3 der erste Modulo-2-Addierer mit den den Xnformationsinhalt angebenden Ausgängen eines ersten 2-Bit-Sehiebespeichers verbunden ist, dessen Eingang die zu dekodierenden
Daten Bit für 3it zugeführt sind und dessem Ausgang ein zweiter 2-Bit-Schiebespeicher nachgeschaltet ist, dessen den Informations inhalt abgebenden Ausgänge über jeweils einen weiteren Moclulo-2-Addierer mit zwei Vergleichseingängen des
Korrekturgliedes verbunden sind, dessen Eingang mit dem Ausgang des ersten Modulo-2-Addierers verbunden ist und dessen Ausgang mit dem Eingang des Schieberegisters verbunden ist, dessem ivusgang oder einer beliebigen Stufe des Schieberegisters je nach gewünschter Verzögerung die dekodierten Daten entnehmbar sind und dessen Parity-Bit-Verknüpfung mit dem jevjeils zweiten Eingang der beiden weiteren Modulo-2-Addierer verbunden ist, und daß die logische Verknüpfung des Korrekturgliedes derart aufgebaut ist, daß für die an das Schieberegister gegebenen Ausgangssignale des Korrekturgliedes die Dl=(Ä3+3A) D+AB erfüllt ist, wobei D das Ausgangssignal des ersten Modulo-2-Addierers und A und B die an die Vergleichseingänge des Korrekturglieds gelangenden Signale sind. '
Mit Hilfe dieser relativ einfach aufgebauten Schaltungsanordnung können die ankommenden Daten nicht nur in sehr einfacher V/eise dekodiert, sondern gleichzeitig Fehler erkannt und bis zu einem gewissen Umfange automatisch ,korrigiert
werden.
Gemäß einer Weiterbildung der Erfindung ist ein der Bit-Kate des zu kodierenden Signals entsprechendes Taktsignal
mit Hilfe eines Flip-Flops um den Faktor 2 untersetzt, wobei über zx^ei UND-Glieder jeweils eine der an je einem Ausgang des Flip-Flops abnehmbaren und gegenseitig um l8o Grad
Bedingung _g_
309827/0925
phasenverschobenen Taktfolgen zur Steuerung des ersten und zweiten Schiebespeichers auswählbar sind, wodurch jeweils zwei andere benachbarte Bit zu einem Bitpaar zusammenfaßbar sind.
Mit Hilfe einer solchen in bekannter Weise durch ein Flip-Flop untersetzten'Taktimpulsfolge in zwei gegeneinander um l8o Grad phasenverschobene neue Taktfolgen, deren Folgefrequenz jeweils gleich ist, sind in einfacher Weise allein durch Ansteuerung jeweils einer von zwei UND-Schaltungen z.B. von drei aufeinanderfolgenden Bits der ankommenden Datenfolge entweder jeweils die beiden ersten oder aber die beiden letzten Bits zusammenfaßbar.
Gemäß einer weiteren Ausgestaltung der Erfindung ist ein von der untersetzten Taktfolge angesteuerter Zähler vorgesehen, der jeweils auf eine bestimmte, frei wählbare Anzahl von Bit, die größer als vier Eingangsbit ist, zählbar ist und beim zweiten Auftreten der Bedingung 2.) innerhalb-jedes Zählerdurchlaufs zurücksetzbar ist.
Mit Hilfe dieses Zählers wird in einfacher Weise überwacht, ob nur ein oder aber mehrere Fehler während eines vorgegebenen Bit-Zyklus auftreten, dessen Lange gemäß einer weiteren Ausgestaltung der Erfindung der Einfachheit halber gleich der Einflußlänge des jeweils gewählten Codes gewählt ist. Tritt maximal nur ein Fehler während eines Bit-Zyklus auf, so wird dieser Fehler automatisch korrigiert und die dekodierten Daten an eine diese verarbeitende Einrichtung weitergegeben. Treten dagegen zwei oder aber mehrere Fehler während eines Bit-Zyklus auf, so wird die Korrektur der Daten in dem Korrekturglied unterbunden.
309827/0925
Gemäß einer weiteren Ausgestaltung der Erfindung sind Flip-Flop-Schaltungen und/oder andere logische Schaltelemente vorgesehen, die nach dem zweiten Auftreten der Bedingung 2,) innerhalb jedes Zählerdurchlaufs die Korrektur der Ausgangsdaten des ersten Modulo-2-Addierers im Korrekturglied sperren und an eine die Daten' weiterverarbeitende Einrichtung ein Fehlersignal geben.
Die Erfindung wird anhand eines in der Zeichnung dargestellten Ausführungsbeispiels näher erläutert. Im einzelnen zeigen:
Figur 1 den schematischen Aufbau eines Kodierers für den CONVOLUTIONAL-CODE und
Figur 2 schematisch ein Ausführungsbeispiel für die erfindungsgemäße Schaltungsanordnung zur Durchführung des erfindungsgemäßen Verfahrens.
Wie bereits in der Beschreibungsejaleitung kurz erläutert, wird die nach dem CONVOLUTIONAL-CODE verschlüsselte Information in einem Kodierer kodiert, der aus einem mehrstelligen Schieberegister 1 besteht, das so viele Registerstufen R aufweist, wie Bit für die jeweils gewünschte Einflußlänge benutzt werden. Über mehrere Modulo-2-Addierer 2 werden entsprechend der gewählten Generator-Matrixen die Informationsausgänge einer bestimmten Anzahl der Registerstufen auf einer ersten Leitung I1 und mit Hilfe eines zusätzlichen Modulo-2-Addierers 21 auf einer davon getrennten zweiten Leitung Ip zusammengefaßt, wobei die erste Leitung den Informationsausgang der zweiten Registerstufe Rp des Schieberegisters nicht berücksichtigt, jedoch die zweite Leitung den Informationsausgang der zweiten Stufe des Schieberegisters mit berücksichtigt. Die beiden Leitungen I1 und Ip sind an einen Multiplexschalter j5 geführt,der bei jedem Weiterrücken der Information
-lo-309827/0925
in dem Schieberegister beide Leitungen je einmal abfragt, d.h. also zwei Bit pro neuem Informationsbit in dem Schieberegister erzeugt. Die auf diese Weise gewonnenen zwei Parity-Bits werden mit Hilfe geeigneter Sende- und Empfangsanlagen übertragen und am anderen Ende der Übertragungsstrecke mit Hilfe eines Dekodierers aus ihnen die jeweils in dem Schieberegister des Kodierers stehende Information wiedergewonnen.
In Figur 2 ist ein Ausfübrungsbeispiel einer erfindungsgemäßen Schaltungsanordnung zum Dekodieren und gleichzeitigen Korrigieren der z.B. von einem Kodierer nach Figur 1 abgegebenen Daten gezeigt. Diese kodierten Daten werden Bit für Bit in zwei erste hintereinandergeschaltete 2-Bit-Schiebespeicher 4 und 5 eingespeichert. Die Informationsausgänge der Stufen des Schiebespeichers 4 sind über einen Modulo-2-Addierer 6 zusammengefaßt, an dessen Ausgang ein erster Datenfluß D abnehmbar ist, der an ein Korrekturglied 7 gegeben wird, dessen logisches Verhalten der Bool*sehen Gleichung (Ä*B +BA) D + ΪΑΒ + ID entspricht, wobei die Bedeutung der einzelnen Buchstaben später näher erläutert wird. Das Korrekturglied 7 erhält über zwei Leitungen zwei weitere Datenflüsse A und B, die ebenfalls Aus gangs Signa Ie von Mo- _ dulo-2-Addierern 8 und 9 sind. Die beiden Addierer 8 und 9 ™ erhalten dabei als ihr eines Eingangssignal jeweils die Informationssignale des ersten und zweiten Bits des in dem zweiten Schiebe speicher 5 gespeicherten Bitpaares, das wegen der Hintereinanderschaltung der beiden Schiebespeicher 4 und 5 gegenüber dem in dem ersten Schiebespeicher 4 eingespeicherten Bitpaar jeweils um ein Bitpaar verzögert ist. Die aus dem Korrekturglied 7 abgegebenen Daten werden als Datenfluß D* an ein Schieberegister Io gegeben, das einen grundsätzlich gleichen Aufbau wie der in Figur 1 gezeigte Ko-
309827/0925
- li -
dierer hat, wobei lediglich die erste Registerstufe und der Multiplexschalter 3 fortgelassen sind. Die die Paritätsbits führenden Leitungen dieses Schieberegisters Io sind jeweils auf die noch freien Eingänge der Modulo-2-Addierer 8 und 9 geführt. Am Ausgang bzw. jeder beliebigen Stufe des Schieberegisters Io sind dann die dekodierten und korrigierten Daten abnehmbar.
Die ersten beiden Schiebespeicher 4 und 5 werden von einer Taktfrequenz gesteuert, die dem Umschalttakt des bei dem in Figur 1 gezeigten Kodierer verwendeten Multiplexschalters 3 entspricht. Diese gleiche Taktfrequenz wird außerdem auf eine Flip-Flop-Schaltung 11 gegeben, die daher an ihren beiden Ausgängen zwei gegenüber der Eingangstaktfrequenz um den Faktor 2 untersetzte Taktimpulsfolgen abgibt, die gegenseitig um l8o Grad phasenverschoben sind. Diese beiden gegenseitig phasenversehobenen Taktimpulsfolgen gelangen auf jeweils einen Eingang zweier UND-Glieder 12 und IJ, deren Ausgänge über ein ODER-Glied 14 zusammengefaßt sind, so daß am Ausgang des ODER-Glieds 14 eine um den Faktor 2 gegenüber der ursprünglichen Taktfrequenz untersetzte Taktimpulsfolge auftritt, die über einen geeigneten Impulsformer 15 und ein Verzögerungsglied 16 an den Takteingang des Schieberegisters 1o.gegeben ist. Außerdem gelangt diese Taktimpulsfolge als Zählsignal auf einen Zähler 17, der so viel Zählstufen aufweist, daß er maximal «ttf die Anzahl der in dem in Figur 1 gezeigten Kodierer gleichzeitig einspeicherbaren Bits zählen kann, die wiederum der Einflußlänge des benutzten Kodes entspricht.
Das Korrekturglied 7 hat einen zusätzlichen Ausgang, an dem immer dann ein Signal auftritt, wenn die augenblicklichen Werte der Datenflüsse A und B einander nicht gleich sind.
309827/0925
Dieses Signal Af^B wird auf ein UND-Glied 18 gegeben, dessen anderer Eingang ebenfalls von der untersetzten Taktimpulsfolge angesteuert wird. Der Ausgang des UND-Glieds 18 ist auf den Eingang einer Flip-Flop-Schaltung 19 und außerdem über einen geeigneten Impulsformer 2o, einen Verstärker 21 eine geeignete Fehleranzeige 22 geführt. Außerdem ist der Ausgang des UND-Glieds 18 mit dem Zähleingang des Zählers verbunden, der die Anzahl der auftretenden Fehler zählt.
Der eine Ausgang des Flip-Flops 19 ist mit dem Eingang eines weiteren Flip-Flops 24 verbunden, dessen einer Ausgang über einen Impulsformer 25 mit einem Eingang eines ODER-Gliedes 26 verbunden ist, dessen Ausgang mit dem Rücksetzeingang des Zählers 17 verbunden ist. Die jeweils anderen beiden Ausgänge der Flip-Flops 19 und 24 sind auf ein UND-Glied 27 geführt, dessen Ausgang mit dem jeweils anderen Eingang des ODER-Gliedes 26 verbunden ist. Dadurch.bleibt der Zähler stehen, solange kein Signal A+B auftritt. Der Ausgang der letzten Zählstufe des Zählers 17 ist mit dem Eingang einer weiteren Flip-Flop-Schaltung 28 verbunden, deren Ausgang mit einem dritten Eingang des UND-Glieds 27 und mit einem ersten Eingang eines UND-Gliedes 29 verbunden ist, dessen zweiter Eingang mit dem invertierten Ausgang des Flip-Flops 24 verbunden ist. Der Ausgang des UND-Gliedes 29 ist mit einer die dekodierten Daten weiterverarbeitenden Einrichtung, z.3. einem hier nicht gezeigten Computer, verbunden, so daß dieser nur dann die an ihn gegebenen Daten verarbeitet, wenn am Ausgang des UND-Gliedes 29 ein OK-Signal erscheint. Außerdem ist der Ausgang des UND-Gliedes 29 über einen Verstärker ^o mit einer Anzeigeeinrichtung j51 verbunden, die angibt, daß die gerade abgegebenen Daten richtig'sind und von dem Computer verarbeitet werden. Der Ausgang des Flip-Flops 24 ist zusätzlich mit einem Eingang des Korrekturgliedes 7
-13-
309827/0925
verbunden, so daß dieses immer dann eine - dann meist fehlerhafte - Korrektur des Datenflusses D sperrt, solange dieser Eingang ein Signal erhält. Dieses gleiche Signal gelangt außerdem an den Eingang eines weiteren UND-Gliedes 32, und außerdem über einen Verstärker 33 an eine weitere Anzeigeeinrichtung 34, die angibt, daß die Korrektur unterbrochen ist. Der zweite Eingang des UND-Gliedes 32 wird von dem Ausgangssignal der letzten Zählstufe des Zählers 17 über ein Verzögerungsglied 35 beaufschlagt. Das Ausgangssignal der letzten Zählstufe des Zählers YJ gelangt außerdem über einen Impulsformer y6 als Rücksetzsignal an die beiden Plip-Plop-Schaltungen 19 und 24. Der Ausgang des UND-Gliedes 32 ist mit einer weiteren Flip-Flop-Schaltung 37 verbunden, deren Ausgänge mit den jeweils zweiten Eingängen der UND-Schaltungen 12 und 13 verbunden sind, wodurch festgelegt" wird, welcher der beiden Ausgänge der Flip-Flop-Schaltung 11 die jeweils um l8o° gegeneinander phasenverschobene Impulsfolgen der um den Faktor 2 untersetzten Eingangs-Taktfrequenzen führen, durchgeschaltet wird.
Die Wirkungsweise der erfindungsgemäßen Schaltungsanordnung und damit die Funktionsweise des erfindungsgemäßen Verfahrens ist folgende:
Nach Einschaltung der in Figur 2 dargestellten Schaltungsanordnung stehen die Flip-Flop-Schaltungen 19, 24, 28 sowie der Zähler 17 beliebig. Dadurch wird die UND-Bedingung des UND-Gliedes 29 nicht erfüllt und das die Daten weiterverarbeitende System erhält kein OK-Signal. Soll dieses jedoch erzwungen werden, so muß mit dem Einschalten ein Rücksetzinpuls für diese drei Flip-Flop-Schaltungen erzeugt werden. Die Eingangs-Taktfrequenz wird von dem Flip-Flop 11 um den Faktor 2 heruntergeteilt, wobei einer der Ausgänge des Flip-Flops 11 über die UND-Glieder 12 oder 13 und das ODER-
309827/0925
Glied 14 sowohl mit dem Korrektierglied J und dem Schieberegister Io als auch mit dem Zähler I7 durchverbunden wird. Das Schieberegister Io enthält zu diesem Zeitpunkt statistisch verteilte Daten, d.h. die Bedingung A=B=D ist nicht erfüllt. In kurzer Zeit wird auch die Bedingung A=B nicht erfüllt sein, so daß das Flip-Flop 19 umgeschaltet wird und damit über die nicht mehr erfüllte UND-Bedingung des UND-Gliedes 27 der Zähler freigegeben wird. Die Bedingung A=B wird kurz darauf aber-■ mais nicht erfüllt sein, da das Schieberegister Io immer noch falsche Daten enthält. Daher schaltet auch das Flip-Flop 24 um und setzt über den Impulsformer 25 den Zähler 17 zurück. Nach dem Umschalten des Flip-Flops 24 erhält das Korrekturglied 7 ein Sperrsignal I, so daß, bis der Zähler I7 voll ist und die Flip-Flop-Schaltung 24 zurückgesetzt ist, keine Korrektur von Bits im Korrekturglied stattfinden kann. Daher werden für die Dauer einer Einflußlänge D=D1-Bits in das Schieberegister Io eingeschrieben. Hat die von dem ODER-Glied 14 abgegebene Taktimpulsfolge die richtige Phasenlage, d.h. werden jeweils die richtigen beiden aufeinanderfolgenden Bits zu einem Bitpaar zusammengefaßt, so gelangen nur unkorrigierte Bits in das Schieberegister lo. Hat während dieser Zeit der Zähler I7 einen Zählerstand erreicht, der der Ein-JP flußlänge entspricht, so verschwindet das Sperrsignal I. Treten während der nächsten gleichen Anzahl von Bit einer oder kein Fehler auf und waren in den unkorrigierten Bits keine Fahler enthalten, so wird das Flip-Flop 28 gesetzt und das Flip-Flop 19 zurückgesetzt, wenn ein Fehler aufgetreten war. Der Zähler I7 wird dann gestoppt und bleibt gestoppt, da alle Eingänge des UND-Gliedes 27 1-Signal erhalten. Da das Flip-Flop 24 und das Flip-Flop 28 an das UND-Glied 29 jeweils ebenfalls 1-Signale abgeben, wird das OK-Signal an die die Daten weiterverarbeitende Einrichtung gegeben und es verlassen richtige Daten den Dekodierer.
309827/0925
Tritt ein Fehler auf, so steht dieser zuerst in einer der beiden Stufen des Schieberegisters 4. Dadurch wird auch D falsch und D! wird im Korrekturglied D korrigiert, da die Bedingung D^A -B nicht erfüllt ist. Die Korrektur geschieht während der Verzögerungszeit des Verzögerungsgliedes 16, so dal dann durch den Takt in das Schieberegister Io die korrigierten Daten eingelesen v/erden. Danach steht in einem Teil des Schiebespeichers 5 der Fehler, wodurch Affe wird.Dadurch wird das Flip-Flop 19 gesetzt und der Zähler beginnt seinen Zähldurchgang, da -das Rücksetzsignal unterbrochen wird. Tritt während der Dauer der Einflußlänge kein weiterer Fehler auf, so wird das Flip-Flop 19 zurückgesetzt und der Zähler angehalten, der einzige aufgetretene Fehler wurde korrigiert. Tritt dagegen ein zweiter Fehler während des Zählvorgangs des Zählers auf, so tritt infolge des dann erfolgenden Setzens des Flip-Flops 24 das Sperrsignal I auf und das OK-Signal am Ausgang des UND-Gliedes 29 verschwindet.
Wie bereits beschrieben, erfolgte dieser Ablauf unter der Annahme, daß die am Ausgang des ODER-Gliedes 14 abgegebene Taktimpulsfolge die richtige Phasenlage hat. Ist dieses dagegen nicht der Fall, so werden bereits in dem Modulo-2-Addierer 6 jeweils die falschen zwei Bits zu einem Bitpaar zusammengefaßt. In diesem Fall tritt das gleiche auf, wie vorstehend beschrieben, wobei jedoch nach dem zweiten Zählerdurchlauf des Zählers zusätzliche Fehler auftreten werden. Der zweite Fehler während des zweiten Zählerdurchlaufs veranlaßt das Auftreten von 1-Signal am Ausgang des UND-Gliedes ^2, da der Ausgang der letzten Zählstufe des Zählers 17 ebenfalls 1-Signal hat und vom Flip-Flop 24 das UND-Glied 52 ebenfalls ein 1-Signal erhält. Durch das Flip-Flop 24 wird der Zähler VJ zurückgesetzt weshalb zwischen dem Zähleraus-
309827/09 2.5
gang iond dem UND-Glied 32 eine Verzögerung geschaltet werden muß. Nach Ablauf der Verzögerung wird auch das Ausgangssignal des UND-Gliedes J>2 wieder O und das Flip-Flop 37 schaltet um. Damit wird aber auch das Jeweils andere UND-Glied der UND-Glieder 12 und 13 durchlässig geschaltet, so daß jetzt am
Ausgang des ODER-Gliedes 14 eine um l8o Grad gegenüber der vorher abgegebenen verschobene Taktimpulsfolge erscheint
und auch an das Schieberegister Io und den Zähler 17 gegeben wird, so daß jetzt gerade zwei andere benachbarte Bits zu einem Bitpaar zusammengefaßt werden.
Auf diese Weise ist sichergestellt, daß jeweils bei einem
zwei- oder mehrmaligen Auftreten von zwei oder aber mehreren Fehlern während eines einzigen Zählerdurchlaufe die erfindungsgemäße Schaltungsanordnung kein OK-Signal an den Computer abgibt und jeweils die Phasenlage der zur Synchronisierung bzw, Zusammenfassung benachbarter Bits zu jeweils
einem Bitpaar benutzten Taktimpulsfolge gewechselt wird.
Ohne den Erfindungsgedanken zu verlassen, ist für die Phasenumschaltung des Taktimpulses eine funktionell schnellere
schaltungstechnisch dafür aufwendigere Ausführungsform der Vorrichtung zur Durchführung des beschriebenen Verfahrens
denkbar. Hierbei sind z.B. der erste Dekodierer, das Korrekturglied und der zweite Dekodierer doppelt vorzusehen. Sie sind jeweils von den um l8o° in der Phasenlage gegeneinander verschobenen Taktimpulsen zu steuern. In einem zusätzlichen Glied wird verglichen, welche der beiden Schaltungskombination wenige oder keine Korrekturen durchführt und welche fast dauernd korrigiert. Der Ausgang der Schaltungskombination, die nur wenige oder keine Korrekturen durchführt, ist dann auf die die Daten weiterverarbeitende Einrichtung durchzuschalten.
Patentansprüche: -17-
309827/0925

Claims (1)

  1. Messerschmitt-Bölkow-Blohm Ottobrunn, 1.12.1971
    Gesellschaft mit 7331
    beschränkter Haftung B511 Pu/gö München
    Patentansprüche
    Verfahren zum Dekodieren und Korrigieren eines sog. CONVOLUTIONAL-CODE mit Hilfe eines ersten Modulo-2-Addierers als ersten Dekodierer und eines auf die EinflUi31änge des Kodes abgestimmten, mit einer entsprechenden aus weiteren Modulo-2-Addierern gebildeten Parity-Bit -Verknüpfung versehenen Schieberegisters, dessen erste Stufe fehlt und das den zweiten Dekodierer bildet, dadurch gekennzeichne t, daß der jeweils einem Bitpaar entsprechende Datenfluß D des ersten Modulo-2-Addierers (6) mit dem dem ersten Bit eines verzögerten Bitpaares entsprechenden Datenfluß A und dem dem zweiten Bit des verzögerten Bitpaares entsprechenden Datenfluß B verglichen wird und der aus einem Korrekturglied (7) an das Schieberegister (Io) abgegebene Datenfluß D1 nach den Bedingungen
    l.)wenn A=B=D dann ist D* = D 2,)wenn A=B^D dann ist Df = D 3,)wenn A^B dann ist D* = D
    Bit für Bit weitergegeben wird, wobei die Bedingung 2.) eine Korrektur bedeutet. /
    2. Verfahren nach Anspruch 1, dadurch ge k e η η zeichnet, daß beim öfteren Auftreten der Bedingung 2.) als einmal während einer bestimmten Anzahl von Eingangsbit , die größer als vier ist, ein Fehler-Signal an eine die dekodierten Daten verarbeitende Einrichtung gegeben wird.
    309827/0925
    3. Verfahren nach Anspruch 1 und 2, dadurch gekennzeichnet, daß die Häufigkeit des Auftretens der Bedingung 2.) gezählt wird.
    4. Verfahren nach Anspruch 1 oder 2, dadurch ge kenn zeichnet, daß beim öfteren Auftreten der Bedingung 2.) als einmal während der bestimmten Anzahl von Bit eine Korrektur der im Korrekturglied (7) befindlichen Daten für die Einflußlänge des CGNVOLU-TIONAL-CODE unterbunden wird.
    5. Verfahren nach einem der Ansprüche 2 bis 4-, dadurch gekennzeich net, daß beim zweimaligen Auftreten des zwei- oder mehrmaligen Erscheinens der Bedingung 2.) während der bestimmten Anzahl von Bit jeweils zwei andere benachbarte Bit zu einem Bitpaar zusammengefaßt werden,
    6. Verfahren nach einem der Ansprüche 2 bis 5, dadurch gekennze ichnet , daß zur Überwachung des Auftretens der Bedingung 2.) die anschließend dann zwangsläufig auftretende Gegebenheit Af^B benutzt wird.
    7. Schaltungsanordnung mit einem ersten Moduio-2-Addierer, mit einem Korrekturglied und mit einem über weitere Modulo-2-Addierer mit einer einem zu dekodierenden CONVOLUTIONAL-CODE entsprechenden Parity-Bit-Verknüpfung versehenen Schieberegister, insbesondere zur Durchführung des Verfahrens nach mindestens einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß der erste Modulo-2-Addierer (6) mit den den Informationsinhalt abgebenden Ausgängen eines ersten 2-Bit-SchiebeSpeichers (4) verbunden ist, dessem Eingang die zu de-
    -19-
    309827/0925
    kodierenden Daten Bit für Bit zugeführt sind und dessem Ausgang ein zweiter 2-Bit-Schiebespeicher (5) nach-, geschaltet ist, dessen den Informationsinhalt abgebende Ausgänge über jeweils einen weiteren Modulo-2-Addierer (8,9) mit Vergleichseingängen des Korrekturgliedes (7) verbunden sind, dessen Eingang mit dem Ausgang des ersten Modulo-2-Addierers verbunden ist und dessen Ausgang mit dem Eingang des Schieberegisters (lo) verbunden ist, dessem Ausgang oder einer beliebigen Stufe
    des Schieberegisters je nach gewünschter Verzögerung
    die dekodierten Daten entnehmbar sind, und dessen Parity-Bit-Verknüpfung mit dem jeweils zweiten Eingang der beiden weiteren Modulo-2-Addierer verbunden ist, und
    daß die logische Verknüpfung des Korrekturgliedes derart aufgebaut ist, daß für die an das Schieberegister
    gegebenen AusgangsSignaIe des Korrekturgliedes die Bedingung D'=(ÄB+AB) D+AB erfüllt ist, wobei D das Ausgangssignal des ersten Modulo-2-Addierers und A und B
    die an die Vergleichseingänge des Korrekturgliedes gelangenden Signale sind.
    3. Schaltungsanordnung nach Anspruch Y3 dadurch g e kenn zeich net, daß ein der Bitrate des
    zu dekodierenden Signals entsprechendes Taktsignal mit Hilfe eines Flip-Flops (11) um den Faktor 2 untersetzt ist, wobei über zwei UND-Glieder (12,13) jeweils eine der an je einem Ausgang des Flip-Flops abnehmbaren und gegenseitig um l8o Grad phasenverschobenen
    Taktfolgen zur Steuerung des ersten und zweiten Schiebespeichers (4,5) auswählbar sind, wodurch jeweils zwei andere benachbarte Bit zu einem Bitpaar zusammenfaßbar sind.
    309827/0925
    9. Schaltungsanordnung nach Anspruch o, dadurch g e kenn zeichnet, da<3 ein von der untersetzten Taktfolge angesteuerter Zähler (17) vorgesehen ist, der jeweils auf eine bestimmte, frei wählbare anzahl von Bit, die größer als vier Eingangsbit ist, zählbar ist und beim zweiten Auftreten der Bedingung 2.) innerhalb jedes Zählerdurchlaufs zurücksetzbar ist.
    Io. Schaltungsanspruch nach Anspruch 9, dadurch g e _ kennzeichnet, daß der Zähler (17) zur zu-
    ™ sätzlichen Zählung der in das Schieberegister (Io) eingebbaren unkorrigierten Bit auf eine mindestens durch die Einflußlänge des benutzten Kodes gegebene, um 1 verminderte Anzahl zählbar ist.
    11. Schaltungsanordnung nach Anspruch 9 oder 10, dadurch gekenn zeichnet, daß Flip-Flops und/oder andere logische Schaltelemente (19,24,28,27,29,32) vorgesehen sind, die nach dem zweiten Auftreten der Bedingung 2.) innerhalb jeden Zählerdurchlaufs die Korrektur der Ausgangs-Daten des ersten Modulo-2-Addierers (6) im Korrekturglied (7) sperren und an eine die Daten weiterverarbeitende Einrichtung ein Fehlersignal geben.
    309827/0925
    BAD OBiGlNAL
    Leerseite
DE2163105A 1971-12-18 1971-12-18 Verfahren und Schaltungsanordnung zum Dekodieren und Korrigieren eines sogenannten nichtsystematischen Convolutional-Code Expired DE2163105C3 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE2163105A DE2163105C3 (de) 1971-12-18 1971-12-18 Verfahren und Schaltungsanordnung zum Dekodieren und Korrigieren eines sogenannten nichtsystematischen Convolutional-Code
US00311383A US3842400A (en) 1971-12-18 1972-12-01 Method and circuit arrangement for decoding and correcting information transmitted in a convolutional code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2163105A DE2163105C3 (de) 1971-12-18 1971-12-18 Verfahren und Schaltungsanordnung zum Dekodieren und Korrigieren eines sogenannten nichtsystematischen Convolutional-Code

Publications (3)

Publication Number Publication Date
DE2163105A1 true DE2163105A1 (de) 1973-07-05
DE2163105B2 DE2163105B2 (de) 1973-11-08
DE2163105C3 DE2163105C3 (de) 1975-01-16

Family

ID=5828528

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2163105A Expired DE2163105C3 (de) 1971-12-18 1971-12-18 Verfahren und Schaltungsanordnung zum Dekodieren und Korrigieren eines sogenannten nichtsystematischen Convolutional-Code

Country Status (2)

Country Link
US (1) US3842400A (de)
DE (1) DE2163105C3 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2261666B1 (de) * 1974-02-19 1979-09-28 Thomson Csf
US4038636A (en) * 1975-06-18 1977-07-26 Doland George D Multiple decoding system
US4081789A (en) * 1975-11-12 1978-03-28 Siemens Aktiengesellschaft Switching arrangement for correcting the polarity of a data signal transmitted with a recurrent code
FR2643763B1 (fr) * 1989-02-24 1991-05-10 Alcatel Transmission Codeur/decodeur correcteur d'erreur pour installation de transmission numerique
US5150369A (en) * 1989-06-13 1992-09-22 Costa Tony M High-speed convolutional decoder

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3447132A (en) * 1962-07-25 1969-05-27 Codex Corp Apparatus and method for processing digital data affected by errors
US3665396A (en) * 1968-10-11 1972-05-23 Codex Corp Sequential decoding
US3587042A (en) * 1969-07-03 1971-06-22 Gen Electric Random error correcting coding and decoding system having inversion tolerance and double code capability
US3593282A (en) * 1969-11-04 1971-07-13 Bell Telephone Labor Inc Character-error and burst-error correcting systems utilizing self-orthogonal convolution codes

Also Published As

Publication number Publication date
DE2163105B2 (de) 1973-11-08
US3842400A (en) 1974-10-15
DE2163105C3 (de) 1975-01-16

Similar Documents

Publication Publication Date Title
DE69022705T2 (de) System zur Kodierung/Dekodierung von digitalen Signalen zur Übertragung und/oder Speicherung.
DE3208240A1 (de) Serien-parallel-umsetzer
DE2736967C3 (de) Fernwirkanordnung
DE2154019C3 (de) Zufallskodegenerator
DE2047868A1 (de) Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes
DE3840493C1 (de)
DE2655443A1 (de) Vervielfachte zeitsteuerung zum erzeugen von zeitsignalen fuer installationen mit signalverarbeitenden schaltungen
DE2228320B2 (de) Rundsteuerempfänger
DE2163105A1 (de) Verfahren und schaltungsanordnung zum dekodieren und korrigieren eines sogenannten convolutional-code
DE1449334B2 (de) Decodierer für einen rekurrenten Code
DE2826454A1 (de) Faksimilesignal-codiersystem
DE2057256A1 (de) Verfahren und Schaltungsanordnung zur Datensicherung bei der UEbertragung binaerer Daten
DE1296192B (de) Binaere Codeschaltung
DE69008896T2 (de) Fehlerkorrekturkodierer/-dekodierer für numerische Übertragungsanlage.
DE1524884C3 (de) VerfahFen und Schaltungsanordnung zur Übertragung digitaler Nachrichten unter Bildung und Einfügung von Prüfbits
DE2455477C3 (de) Verfahren zur Sprachverschleierung durch zeitliches Vertauschen der Sprachabschnitte
DE2334528A1 (de) Vorrichtung zur synchronisation eines empfaengers von numerischen informationen
DE2203414A1 (de) Schaltungsanordnung zur herstellung des gleichlaufs von sende- und empfangseinrichtungen bei der uebertragung von datenbloecken
DE2113819C2 (de) Fernsteuerverfahren und Vorrichtung zur Durchführung dieses Verfahrens
DE2241089C3 (de) Schaltungsanordnung zur Übertragung einer Vielzahl von binär codierten Fernschreibnachrichtensignalen, Dauersignalen und Wählsignalen zwischen Signalsendern und Signalempfängern
DE2445508A1 (de) Verfahren zur gesicherten uebertragung von in digitaler form vorliegender signale
DE3816203C2 (de)
DE2902133A1 (de) Verfahren und einrichtung zur datenuebertragung
DE2447255C (de) Verfahren und Schaltungsanordnungen zur Fehlerprüfung in digitalen Datenübertragungsanlagen
DE1762570C3 (de)

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee