-
ALLGEMEINER STAND DER
TECHNIK
-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft im Allgemeinen digitale Kommunikation.
Insbesondere betrifft die Erfindung ein System, in welchem Daten
mit einer variablen Rate übertragen
und auf einem Kommunikationsempfänger
empfangen werden, wo die Daten mit variablen Raten auf einem leistungsstarken,
Mehrkanal-Mehrraten-Datendekodierer
dekodiert werden.
-
BESCHREIBUNG
DES STANDES DER TECHNIK
-
Heutzutage
wird in der fortschrittlichsten Kommunikationstechnologie Spreizspektrum-Modulation
oder Codemultiplex-Vielfachzugriff (CDMA) für Punktzu-Mehrfachpunkt-Telekommunikation
verwendet. Seit den 1950ern wurde CDMA bei Militäranwendungen verwendet, da
das Erkennen und das Stören der
Nachrichtenübertragung
schwierig ist. Diese Eigenschaft ist auf die drahtlose Kommunikationstechnologie
zurückzuführen, bei
der eine viel größere modulierte Übertragungsbandbreite
verwendet wird als die Informationsbandbreite des übertragenen
Signals.
-
Ein
vereinfachtes CDMA-Kommunikationsschema ist in 1 dargestellt.
Ein einzelner Kommunikationskanal einer gegebenen Bandbreite wird mit
einem Spreizcode gemischt. Das modulierte Signal mit einer relativ
schmalen Bandbreite wird durch Sequenz gespreizt, um eine viel breitere übertragene Bandbreite
durch Vervielfachung mit einem einzigartigen Spreizcode zu belegen.
Der Spreizcode umfasst eine geräuschartige,
hochratige, pseudozufällige
Sequenz oder einen solchen Code, die/der zu einem Teil der übertragenen
Daten wird. Die auf niedrigem Pegel geräuschartige Erscheinung des
daraus resultierenden übertragenen
Signals ist derart, dass es unwahrscheinlich ist, dass es andere
Spektrumteilnehmer stört.
-
An
dem Empfänger
wird das Signal entspreizt, indem das empfangene Breitbandsignal mit
einer identischen, vor Ort erzeugten, pseudozufälligen Sequenz korreliert wird,
um die Daten aus einer Vielzahl an Datensignalen herauszulösen, die dieselbe Übertragungsbandbreite
belegen. Das bringt das Signal auf seine originale Bandbreite wieder
zurück
und spreizt ebenfalls jegliche Schmalbandfunksignale, die innerhalb
des belegten Spektrums vorhanden sind, so dass sie nun als Rauschen an
dem Empfänger
erscheinen. Durch Verwenden vieler verschiedener pseudozufälliger Codesequenzen
können
Mehrfachteilnehmer innerhalb desselben Übertragungsspektrums aufgenommen
werden.
-
Dieselben
Eigenschaften, die es ermöglicht haben,
dass CDMA-Kommunikationstechnologien
in militärischen
Anwendungen erfolgreich sind, machen CDMA-Kommunikationssysteme,
insbesondere Systeme mit Breitband-Codemultiplex-VielfachzugriffTM oder
B-CDMATM, ebenfalls für
die effiziente Nutzung des überfüllten kommerziellen
Funkfrequenzspektrums attraktiv. Zu den zahlreichen Eigenschaften
des CDMA-Systems gehört
die praktisch unbegrenzte Kapazität des Systems. Da jeder Teilnehmer
in einem CDMA-Kommunikationssystem über dieselbe Übertragungsbandbreite
Signale überträgt und empfängt, bestehen
weniger strenge Anforderungen an Kanalführung und Schutzband. Im Gegensatz
zu FDMA- und TDMA-Systemen, bei denen die Kapazität durch die
Anzahl der diskreten Kanäle
begrenzt ist, ist die Kapazität
bei CDMA-Systemen durch Interferenz begrenzt. Demzufolge ist die
Anzahl der Teilnehmer, die gleichzeitig über diese gegebene Übertragungsbandbreite
kommunizieren können,
bedeutend höher.
-
Zusätzlich zu
Sprachinformationen kann Nicht-Sprachinformation allein oder eine
Kombination der beiden an den Empfänger übertragen werden. Bestimmte
Kommunikationsstandards, wie zum Beispiel diensteintegrierende digitale
Nachrichtennetze (ISDN), erfordern eine viel größere Datenrate als diejenige
der digitalisierten Sprache. Zur Optimierung des Kommunikationssystems
werden verschiedene Datenraten übertragen,
um das Signal/Rausch-Verhältnis
(SNR) zu allen Empfängern
zu erhöhen.
-
Ein
Maß der
Spreizspektrum-Leistungsfähigkeit
ist die Systemprozessverstärkung,
Gp, welche durch das Verhältnis
der Kanalbitrate zu der Informationsbitrate, Rc/Ri bestimmt ist.
Die Eingangs- und Ausgangssignal/Rausch-Verhältnisse
stehen in folgender Beziehung:
-
Daraus
ist ersichtlich, dass je höher
die Datenrate ist, umso mehr Interferenz produziert wird und das
Signal/Rausch-Verhältnis
in Mitleidenschaft gezogen wird. Die Verminderung von Interferenz äußert sich
direkt in einem Kapazitätsanstieg.
-
Die
meisten CDMA-Telekommunikationssysteme übertragen Daten mit variablen
Raten, um das SNR so groß wie
möglich
zu halten. Um dieses zu erreichen, wird die Übertragungsdatenrate entweder innerhalb
der Systempegelregelungsmeldung identifiziert, welche ein Teil des
Signalkanals ist, oder ein gegebener Empfänger muss in der Lage sein,
die übertragene
Datenrate zu erkennen.
-
Da
sich viele Teilnehmer denselben Spektralübertragungskanal teilen, kann
Interferenz von einem Teilnehmer zu dem anderen geleitet werden, wenn
nicht genügend
Codeisolierung zwischen den Teilnehmern vorhanden ist. Darüber hinaus
muss die Datenrate vor der Fehlerkorrektur-Faltungsdekodierung entweder
in dem Sender oder dem Empfänger bekannt
sein.
-
Die
meisten Empfänger
des Stands der Technik verwenden unabhängige, Einzelraten-Faltungsdekodierer,
um die einmal empfangenen und entspreizten digitalen Daten ordentlich
wiederherzustellen. Da die Datenrateninformationen für jeden Rahmen übertragen
werden, muss der Empfänger nicht
aus dem empfangenen Datenrahmen die Rate bestimmen, mit welcher
die Daten kodiert wurden, wodurch die Komplexität des Empfängers verringert und die Systemgeschwindigkeit
insgesamt erhöht wird.
Die Verwendung von Faltungsdekodierern, die jeder übertragenen
Datenrate zugeordnet werden, vermindert jedoch die gesamte Verarbeitungseffizienz
und erhöht
die Systemkosten.
-
Die
WO-A-95-08 888 offenbart einen Viterbi-Decoder zum Verarbeiten eines
Datenstroms mit einer unbekannten Datenrate. Der Decoder decodiert den
Datenstrom gleichzeitig mit mehreren Datenraten. Ein Prozessor bestimmt,
welche decodierte Datenrate die korrekte Datenrate ist.
-
Die
EP-A-0 712 219 offenbart eine Möglichkeit
zum Bestimmen einer bevorzugten Datenrate eines Kanals. Daten werden
mit vier Datenraten über den
Kanal übertragen.
Vier Viterbi-Decoder decodieren die jeweiligen Datenraten. In jedem
empfangenen Datenratensignal werden Fehler bestimmt, und für den Kanal
wird eine beste Datenrate ausgewählt.
-
Die
vorliegende Erfindung betrifft ein Kommunikationssystem, in welchem
die Datenrate einer gegebenen Übertragung
durch einen Sender kodiert worden ist und dann dafür verwendet
wird, eine Vielzahl von Faltungsdekodierern einzustellen, die sich gemeinsamen
Speicher teilen. In dem System werden gemeinsame Verarbeitungsressourcen
verwendet, um bis zu vier diskrete Kanäle zur Verfügung zu stellen, welche Mehrraten-Fehlerkorrektur-Faltungsdekodierung
aufweisen, die zu einer verkleinerten Siliziumfläche und niedrigem Leistungsbetrieb
führen. Das
System ist in der Lage, Sprachkommunikation von 8 kbit/s bis zu
64 kbit/s für
hohe Raten von ISDN-Kommunikation
zu unterstützen.
Obwohl die vorliegende Erfindung für eine Vielfalt von Kommunikationssystemen
verwendet werden kann, umfassen die bevorzugten Kommunikationssysteme
Mobiltelefon, PCS, drahtlose Ortsanschlüsse und CDMA-Kommunikation. Die
vorliegende Erfindung kann in den Empfängern sowohl der Basisstation
als auch der Standorte von Verbrauchereinheiten verwendet werden.
-
Demzufolge
ist es eine Aufgabe der vorliegenden Erfindung, einen leistungsstarken
Mehrraten-Faltungsdekodierer für
Mehrkanalanwendungen zur Verfügung
zu stellen.
-
Es
ist die weitere Aufgabe der Erfindung, eine Architektur für Mehrkanal-Faltungsdekodierer mit
reduzierter Komplexität
und erhöhter
Leistung zur Verfügung
zu stellen.
-
Andere
Aufgaben und Vorteile des Systems und des Verfahrens werden für den Fachmann
nach der Lektüre
der ausführlichen
Beschreibung der bevorzugten Ausführungsform ersichtlich sein.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung stellt einen Decoder zum Decodieren mehrerer
faltungscodierter Signale nach Anspruch 1 und ein Verfahren zum
Decodieren nach Anspruch 16 bereit. Weitere bevorzugte Aspekte der
Erfindung sind gemäß den abhängigen Ansprüchen vorgesehen.
-
Demzufolge
ist es eine Aufgabe der vorliegenden Erfindung, einen leistungsstarken
Mehrraten-Faltungsdekodierer für
Mehrkanalanwendungen zur Verfügung
zu stellen.
-
Es
ist die weitere Aufgabe der Erfindung, eine Architektur für Mehrkanal-Faltungsdekodierer mit
reduzierter Komplexität
und erhöhter
Leistung zur Verfügung
zu stellen.
-
Andere
Aufgaben und Vorteile des Systems und des Verfahrens werden für den Fachmann
nach der Lektüre
der ausführlichen
Beschreibung der bevorzugten Ausführungsform ersichtlich sein.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Es
zeigen:
-
1 ein
Blockdiagramm eines typischen CDMA-Kommunikationssystems des Stands
der Technik,
-
2 ein
ausführliches
Blockdiagramm eines CDMA-Kommunikationssystems,
-
3a den
ersten Bereich eines ausführlichen
Blockdiagramms der bevorzugten Ausführungsform,
-
3b den
zweiten Bereich eines ausführlichen
Blockdiagramms der bevorzugten Ausführungsform,
-
4 ein
allgemeines Blockdiagramm der bevorzugten Ausführungsform,
-
5 ein
Blockdiagramm der Schnittstelle zwischen einem digitalen Host-Signalprozessor und der
bevorzugten Ausführungsform,
-
6 ein
Diagramm einer QPSK-Konstellation,
-
7 ein
ausführliches
Blockdiagramm eines Addiere-Vergleiche-Wähle-Kanals,
-
8a den
ersten Bereich eines Ablaufdiagramms des Addiere-Vergleiche-Wähle-Sequenzers,
-
8b den
zweiten Bereich eines Ablaufdiagramms des Addiere-Vergleiche-Wähle-Sequenzers,
-
9 ein
ausführliches
Blockdiagramm des Addiere-Vergleiche-Wähle-Sequenzers,
-
10 ein
Ablaufdiagramm des Rückverfolgungsprozesses,
-
11 ein
Ablaufdiagramm des Bitfehlerratenprozesses,
-
12 ein
Schaubild der Leistungsfähigkeit von
Bitfehlerrate (BER) versus Signal/Rausch-Verhältnis.
-
AUSFÜHRLICHE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Die
vorliegende Erfindung wird mit Bezugnahme auf die Zeichnungsfiguren
beschrieben, in welchen gleiche Bezugszeichen durchweg gleiche Elemente
bezeichnen. Der Mehrkanal-Mehrraten-Viterbi-Dekodierer, der nach
der vorliegenden Erfindung hergestellt wurde, wird im Zusammenhang
mit einem CDMA-Mobiltelefonsystem 17 implementiert. Derartige
Dekodierer werden in drahtlosen Mehrkanal-Kommunikationsstationen für den Empfang
von Kommunikationssignalen verwendet. Das System 17, wie
in 2 dargestellt, umfasst einen Sender 19 und
einen Empfänger 21,
welche entweder in einer Basisstation oder einem Mobilteilnehmerempfänger angeordnet
sein können.
-
Der
Sender 19 umfasst einen Signalprozessor 23, welcher
Sprach- oder Nicht-Sprachdaten 25 zu
Rahmen verschiedener Datenraten kodiert, z.B. Rahmenraten von 8
kbit/s, 16 kbit/s, 32 kbit/s, oder 64 kbit/s. Der Signalprozessor 23 wählt eine
Rate in Abhängigkeit
von der Menge der Sprachaktivität
aus, wenn es sich um Sprachdaten handelt, oder beim Ansprechen auf
eine eingestellte Datenrate.
-
Zwei
Schritte sind an der Erzeugung von einem übertragenen Signal in einer
Mehrfachzugriffumgebung beteiligt. Zuerst werden die Eingangsdaten 25,
welche als zweiphasenmoduliertes Signal betrachtet werden können, kodiert,
wobei Vorwärts-Fehlerkorrektur-Kodierung
(FEC) 27 verwendet wird. Da ein R = ½-Faltungscode verwendet werden
aus dem einzelnen zweiphasenmodulierten Datensignal zwei zweiphasenmodulierte
Signale. Einem Signal wird der Inphase-Kanal I zugeteilt. Dem anderen
Signal wird der Quadraturkanal Q zugeteilt. Die zweiphasenmodulierten
I- und Q-Signale werden normalerweise als Quadratur-Phasenumtastung (QPSK)
bezeichnet. Bei der bevorzugten Ausführungsform sind die Abzweig-Generatorpolynome 29, 31 für eine Zwangslänge von
K = 7 und eine Faltungskodierungsrate von R = ½
G1 =
1718 und G2 = 1338.
-
In
dem zweiten Schritt werden die zwei zweiphasenmodulierten Daten
oder Symbole 33a, 33b mit QPSK-pseudozufälligen Sequenzen
Inphase (I) 35a und Quadratur (Q) 356 gespreizt. Die sich
daraus ergebenden mit I 37a und Q 37b gespreizten
Signale werden mit einer Trägerfrequenz 43 gemischt, mit
anderen gespreizten Signalen (Kanälen), die verschiedene Spreizcodes
aufweisen, kombiniert 45 und übertragen 47. Die Übertragung 47 kann
eine Vielzahl von individuellen Kanälen enthalten, die verschiedene
Datenraten aufweisen.
-
Der
Empfänger 21 umfasst
einen Demodulator 49a, 49b, welcher die übertragenen
Breitbandsignale 47 auf eine Zwischenträgerfrequenz 51a, 5lb heruntermischt.
Die QPSK-Signale werden dann gefiltert 53 und mit dem vor
Ort erzeugten QPSK-pseudozufälligen
Code 35a, 35b gemischt 55a, 55b,
welcher dem übertragenen
Code entspricht. Nur die originalen Signalformen, welche durch denselben
Code in dem Sender 19 gespreizt wurden, werden tatsächlich entspreizt.
Andere werden an dem Empfänger 21 als
Rauschen erscheinen. Die Daten 57a, 57b werden
dann an einen Signalprozessor 59 weitergegeben, in dem
die FEC-Dekodierung an den faltungskodierten Daten ausgeführt wird.
-
Die
vorliegende Erfindung 61 führt die Dekodierung aus, indem
ein leistungsstarker Mehrkanal-Mehrraten-Viterbi-Dekodierer 61,
wie in 3a und 3b dargestellt,
verwendet wird. Der Dekodierer 61 umfasst eine Schnittstelle 63 von
dem digitalen Signalprozessor (DSP) zum Viterbi-Dekodierer, eine
gemeinsame Euklidische Distanzberechnungsmaschine 65, eine
Vielzahl von Addiere-Vergleiche-Wähle-(ACS)-Kanälen 67a, 67b, 67c, 67d,
eine Zustandsmetrikspeicheranordnung 69, einen ACS-Sequenzer 71,
eine Rückverfolgungsspeicheranordnung 73,
einen Rückverfolgungsprozessor 75 und
eine Dekodierer-zu-System-Schnittstelle 77. Das System,
wie es in 3a und 3b dargestellt
ist, kann diskret zusammengestellt oder als eine leistungsstarke,
anwendungsspezifische integrierte Schaltung (ASIC) 79 implementiert
werden.
-
Bei
der bevorzugten Ausführungsform
kann irgendeiner der vier Kanäle
(0, 1, 2, 3) innerhalb des Dekodierers 61 eine Vielzahl
von Datenraten verarbeiten: 8 kbit/s, 16 kbit/s, 32 kbit/s oder
64 kbit/s. Andere Datenraten können
bei alternativen Ausführungsformen
verwendet werden. Die niedrigeren Datenraten werden erreicht, indem
eine Zeit-Diversity-Kombinierungsfunktion aktiviert wird, welche
auf redundant empfangene Symbole wirkt. Dieses erhöht wirkungsvoll
das SNR der in Zeit-Diversity empfangenen Signale. Bei denjenigen
Symbolen in Rahmen, die Datenraten entsprechen, die niedriger als
die höchste
erwartete Datenrate sind, werden die Symboldaten wiederholt, um
eine konstante Symbolrate für
den Rahmen aufrechtzuerhalten.
-
Für die 64
kbit/s Datenrate wird 1 QPSK-Symbol alle 15,625 μs gesendet. Für die 32 kbit/s
Datenrate wird das entsprechende QPSK-Symbol zweimal durch einen
Kanal gesendet. Die Symbole werden weiterhin mit der Rate von 64 kbit/s
gesendet, aber mit doppelter Redundanz, wodurch die Informationsrate
praktisch auf 32 kbit/s abgesenkt wird. Für eine 16-kbit/s-Datenrate
werden die entsprechenden QPSK-Symbole
mit vierfacher Diversity durch den Kanal geschickt, für einen 8-kbit/s-Datenkanal mit achtfacher
Diversity.
-
Mit
Bezugnahme auf 3a und 3b, teilt
sich der Mehrkanal-Dekodierer 61 gemeinsame Ressourcen,
um die Siliziumfläche
zu minimieren. Wie dargestellt, sind der Zustandsmetrikspeicher 69 und
der Rückverfolgungsspeicher 73 statische
Direktzugriffsspeicher (SRAMs) und werden gemeinsam für jeden
Kanal verwendet. Die gemeinsame Euklidische Distanzberechnungsmaschine 65,
welche die quadrierte Euklidische Distanz zwischen dem empfangenen
QPSK-Symbol und den vier möglichen Konstellationspunkten
in dem QPSK-Raum für
alle vier Kanäle
berechnet, erhöht
den Wirkungsgrad zusätzlich.
-
Die
Systemarchitektur, wie dargestellt, implementiert den Viterbi-Algorithmus
und dekodiert die faltungskodierten Daten. Die Abzweig-Generatorpolynome,
die einer Zwangslänge
von K = 7 und einer Coderate von R = ½ entsprechen, sind G1 = 1718 (29)
und G2 = 1338 (31). Es wird davon ausgegangen bei, dass andere Abzweig-Generatorpolynome in
alternativen Ausführungsformen
in Abhängigkeit von
unterschiedlichen Zwangslängen
und Ratencodes verwendet werden können. Beispielsweise sind bei
einer Zwangslänge
von K = 9 und einer Coderate von R = % die Abzweig-Generatorpolynome G1
= 7538 und 5618. Die Verwendung von Abzweig-Generatorpolynomen ist
in der Telekommunikationstechnik wohlbekannt und wird im FEC-Kodierer 27 verwendet.
-
In 4 ist
eine globale Systemarchitektur dargestellt. Ein Host-Mikrocontroller 81 programmiert ein
Zeitablauf- und Steuermodul (TCM) 83, das auf der ASIC 79 angeordnet
ist, über
Datenleitungen 85, Adressenleitungen 87 und Schreibimpuls 89 des
Mikrocontrollers. Der Mikrocontroller 81 bestimmt aus dem übertragenen
Rahmen den Zeit-Diversity-Faktor für einen gegebenen Kanal. Die Diversity-Kombinierung
wird durch selektives Belegen und Freigeben der Diversity-Kombinierungssignale 91a, 91b, 91c, 91d jeweils
für die
Kanäle
0 bis 3 gesteuert. Ein Datenausgang 93 verlässt einen
Host-DSP 95 und befördert
die I- und Q-Signale für
alle vier Kanäle
zu der Viterbi-Dekodierer-Schnittstelle 63. Die Freigabesignal 97 und
Adressenleitungen 99 des Host-DSP 95 sind ebenfalls
mit der Viterbi-Dekodierer-Schnittstelle 63 gekoppelt.
Der Host-Mikrocontroller 81 steuert jedes Diversity-Kombinierungssignal 91a, 91b, 91c, 91d.
Der Host-DSP 95 steuert die individuellen Kanaldaten 93 zu
der Dekodierer-Schnittstelle 63.
-
Das
TCM 83 akzeptiert ein extern abgeleitetes Hochfrequenz-Referenzsignal 103 für den gesamten
Systemzeitablauf. Das TCM 83 verwendet das Referenzsignal 103 und
leitet einen Hochfrequenzspeicherabzug 105 und Signale
des Viterbi-Taktgebers 107 ab.
Das TCM 83 produziert ebenfalls eine globale Dekodiererrücksetzung 109.
-
Die
Datenrate von einem bestimmten Kanal wird durch den Mikrocontroller 81 abgesenkt,
indem das entsprechende Diversity-Kombinierungssignal 91a, 91b, 91c, 91d freigegeben
wird. Für
eine 32-kbit/s-Datenrate werden zwei benachbarte Symbole kombiniert;
für eine
16-kbit/s-Datenrate werden vier Symbole kombiniert; und für eine 8-kbit/s-Datenrate
werden acht Symbole kombiniert.
-
Bei
der bevorzugten Ausführungsform
wird Zeit-Diversity verwendet, um die Mehrratendaten zu verarbeiten.
Bei einer 64-kbit/s-Datenrate wird jedes einzelne übertragene
Bit verwendet. Jedoch wird bei der niedrigsten Datenrate, 8 kbit/s,
jedes Bit mit einem Faktor acht vervielfacht. Wenn mit der niedrigsten
Datenrate verarbeitet wird, werden die redundanten Symbole einfach
zusammenaddiert. Wie schon beim Stand der Technik diskutiert, wird
jedes Mal, wenn ein Symbol durch einen entsprechenden Kanal gesendet
wird, eine gewisse Verstärkungs-
und Rauschgröße empfangen.
Demzufolge, wenn dasselbe Signal zweimal durch den Kanal gesendet
wird, hat sich das SNR praktisch verdoppelt. Der Grund dafür ist, dass
die redundanten Symbole kohärent addiert
werden, wohingegen zufällig
eingeführtes Rauschen
nicht kohärent
addiert wird. Von der höchsten
Datenrate, 64 kbit/s, zu der niedrigsten, 8 kbit/s, wird die Signalverstärkung praktisch
mit einem Faktor Acht vervielfacht.
-
Wenn
die Datenbitrate abgesenkt wird und Zeit-Diversity verwendet wird,
kann die Signalübertragungsleistung
entsprechend abgesenkt werden, weil die Verstärkung zurückgewonnen wird, wenn die verschiedenartigen
Symbole zusammengestellt werden. Die Verwendung von Diversity-kombinierung führt zu niedrigeren
Datenraten, ohne dass die unter niedrigeren SWRs nachteiligen Auswirkungen
leiden.
-
Für den maximalen
Datendurchsatz von 64 kbit/s muss die Diversity-Kombinierungsfunktion abgeschaltet sein.
Dies wird implementiert, indem das Diversity-Kombinierungssignal 91a, 91b, 91c, 91d für diesen
bestimmten Kanal hoch gehalten wird. Wenn der Mehrkanal-Dekodierer 61 bei
niedrigeren Datenraten betrieben wird, steuert das Diversity-Kombinierungssignal 91a, 91b, 91c, 91d,
welche benachbarten Symbole kombiniert werden, wenn der Dekodierer
eingeschaltet und wenn die Schnittstelle 63 für einen
neuen Satz von Symbolen freigegeben ist.
-
Die
Dekodierer-Schnittstelle 63 akzeptiert, wie in 5 dargestellt,
8-Bit-Zweierkomplement-I- und
Q-Abtastwerte über
den Datenbus 93 vom Host-DSP 95. Die Daten vom
Host-DSP 95 werden über
den Datenbus 93 in einen Adressendekodierer 111 eingegeben.
Der Datenbus 93 ist ein paralleler Eingangsbus, jedoch
kommen die Daten sequentiell zwischen allen vier Kanälen an.
Die Daten werden dann in die individuellen, Inphase- und Quadratur-Komponenten
für jeden
Kanal getrennt und zu jedem Sättigungs-Integrator
und der Speicherabzugsschaltung 113I, 113Q, 115I, 115Q, 117I, 117Q, 119I, 119Q über die
Leitungen 121I, 121Q, 123I, 123Q, 125I, 125Q, 127I, 127Q,
jeweils für
die Kanäle
0 bis 3, ausgegeben. Die Schnittstelle 63 umfasst 8-Bit-Akkumulatoren, die
Sättigungslogik
aufweisen. Der maximale positive Sättigungswert ist 0×7f16 und der
maximale negative Sättigungswert
ist 0×8016.
-
Innerhalb
der Viterbi-Dekodierer-Schnittstelle 63 wird die Zeit-Diversity-Kombinierung ausgeführt, indem
binäre
Zweierkomplement-Operationen verwendet werden. Alle der redundanten
I- und Q-Abtastwerte werden addiert, wenn sie bei den niedrigeren
Datenraten sind. Auf ähnliche
Weise werden Sättigungsaddierglieder
verwendet, um einen Zeichenwechsel auszuschalten, wenn ein Überlauf besteht.
Anstatt dass die Diversity-Kombinierungsfunktion in einem separaten
DSP-IC gespeichert ist, wurde dieses Kundenmerkmal in die ASIC eingebunden.
Nachdem die Diversitykombinierungsfunktion durchgeführt wurde,
werden die Ergebnisse auf den Leitungen 129I, 129Q, 131I, 131Q, 133I, 133Q, 135I, 135Q,
jeweils für
die Kanäle
0 bis 3 ausgegeben. Die Sättigungs-Integrator-Speicherabzugsschaltungen steuern
ebenfalls, dass die Euklidische Distanzberechnungsmaschine 65 die 137a, 137b, 137c und 137d jeweils
für die
Kanäle
0 bis 3 aktiviert.
-
Wieder
unter Bezugnahme auf 3a und 3b sind
alle internen Prozessoren des Mehrkanal-Dekodierers 61 auf
den Viterbi-Taktgeber 107 synchronisiert. Der Host-DSP 95 ist
durch seinen eigenen asynchronen (nicht dargestellten) Taktgeber getaktet.
Der DSP-Taktgeber und das Speicherabzugssignal 105 werden
auf den Viterbi-Taktgeber 107 zurücksynchronisiert.
Der Dekodierer 61 erfordert, dass der Viterbi-Taktgeber 107 geringfügig schneller sein
muss als das Speicherabzugssignal 105.
-
Alle
Kanäle
sind von der Dekodierer-Schnittstelle 63 zu der Euklidischen
Distanzberechnungsmaschine 65 auf individuellen I- und
Q- und Freigabe-Leitungen gekoppelt, wie in 4 dargestellt.
Mit Bezugnahme auf 3a berechnet die Euklidische Distanzberechnungsmaschine 65 die
vier quadratischen Euklidischen Distanzen zwischen jedem empfangenen
I- und Q-Symbol und den vier möglichen QPSK-Konstellationspunkten.
Eine gemeinsame Maschine berechnet die Distanzen für jeden
Kanal nur, wenn sie von ihrem entsprechenden Kanal aktiviert wird.
-
Wie
in 6 dargestellt, vergleicht die Euklidische Distanzberechnungsmaschine 65 alle
pro Kanal empfangenen Symbole p, indem sie sie auf einer QPSK-Konstellation
x00, x01, x10, x11 abbildet. Es ist notwendig, auf Grund von Verfälschung
während der Übertragung 47 durch
Rauschen und Verzerrung, jeden empfangenen Punkt p zu untersuchen,
ob Mehrwege- oder Funkfrequenz. Die Geometriemaschine 65 berechnet
aus dem empfangenen Symbol p die vier Distanzen d00, d01, d10, d11
und wählt
die kürzeste
Distanz d00.
-
Der
verwendete Freigabemechanismus basiert auf der übertragenen Datenrate für einen
bestimmten Kanal. Eine Verstärkung
des gesamten Verarbeitungswirkungsgrads wird erreicht, da die Berechnungen
in der Euklidischen Distanzberechnungsmaschine 65 nur durchgeführt werden,
wenn ein neues I- und Q-Symbol
zu ihr freigegeben und die Geometriemaschine 65 ordentlich
freigegeben worden ist. Der Wirkungsgrad wird gesteigert, da keine unnötigen Berechnungen
gemacht werden, wenn niedrigere Datenraten verarbeitet werden.
-
Wieder
unter Bezugnahme auf 3a und 3b werden,
nachdem die Euklidischen Distanzen berechnet worden sind, diskrete
12-Bit-Ausgänge 139a, 139b, 139c, 139d für jeden
Kanal zusammen mit den zugeordneten Freigabesignalen 141a, 141b, 141c, 141d seriell
an die vier diskreten ACS-Schaltungen 67a, 67b, 67c, 67d gekoppelt,
wo die Euklidischen Distanzen auf einem Gitter abgebildet werden,
das auf dem Kodierer beruht. Die Verwendung eines Gittermusters
zum Dekodieren FEC-faltungskodierter
Daten ist denjenigen, die mit der Technik vertraut sind, wohlbekannt.
-
Bei
der vorliegenden Erfindung wird jedes Symbol normalisiert und die
kürzeste
Gitterdistanz berechnet, wobei Sättigungslogik
verwendet wird. Vorausgehende Zustandsmetriken werden zu jedem neuen
empfangenen, übertragenen
Symbol addiert. Jeder individuelle Datenpunkt pro Kanal entwickelt und
aktualisiert das Gitter. Die Zustandsmetrikdaten werden aus dem
Zustandsmetrikspeicher 69 gelesen. Die ACS-Schaltungen 67a, 67b, 67c, 67d implementieren
den Viterbi-Algorithmus. Der Maximum-Likelihood-Dekodierer verlässt sich
auf das Gitter, welches eine unendliche Nachbildung eines Zustandsdiagramms
ist. Irgendein Codewort eines Faltungscodes entspricht den Symbolen
entlang eines Pfades auf dem Gitter. Bei jedem Zustand und auf jeder
Stufe des Gitters ist eine ACS-Operation involviert. Um einen Dekodierer,
der auf dem Viterbi-Algorithmus basiert, zu implementieren, ist
Speicher für
zwei verschiedene Datensätze
erforderlich. Der erste Speicher ist für den Pfadzustand oder den
Metrikspeicher 69, der für jede nachfolgende Stufe des
Gitters aktualisiert wird. Der zweite Datensatz besteht aus den Auswahlen
an jedem Knoten oder in jedem Zustand in dem Gitter, Pfadspeicher 73 genannt.
-
Beim
Stand der Technik würde
jeder entsprechende Dekodierer oder jede ACS-Schaltung individuelle Speicher für die zwei
Datensätze
erfordern. Bei der vorliegenden Erfindung sind sowohl die Anordnungen
des Metrikspeichers 69 als auch des Pfadspeichers 73 in
einem gemeinsamen Speicher für
jeden Kanal auf neuartige Weise zusammengelegt, um die Größe der Siliziumfläche wesentlich
zu reduzieren. Auch werden weiterhin gemeinsame Adressierung und
Datentransfer kombiniert, wodurch der Wirkungsgrad erhöht wird.
Die Zustandsmetrikdaten werden auf 143a, 143b, 143c, 143d in
den Zustandsmetrikspeicher 69 geschrieben und über 145a, 145b, 145c, 145d aus
diesem gelesen.
-
Es
gibt zwei mögliche
Gitterpfade, die jedem Zustand enden. Eine Beschneidungsoperation
wird in den ACS-Schaltungen 67a, 67b, 67c, 67d durchgeführt, wo
die beste Metrik in einem gegebenen Zustand endet. Die beste Metrik
wird bestimmt, indem die kleinste akkumulierte Gitterdistanz gewählt wird. Der
gewählte Pfad,
der obere oder der untere, wird jeweils durch eine 0 oder eine 1
dargestellt. Diese Information wird in den Rückverfolgungsspeicher 73 auf
den Leitungen 149a, 149b, 149c, 149d geschrieben.
-
Das
Gitter wird über
viele empfangene Symbole zusammengestellt. Die bevorzugte Ausführungsform
erfordert 35 Symbole in diskreter Zeit und wird bei dem Empfang
jedes getakteten Symbols aktualisiert. Nachdem 35 Symbole
akkumuliert worden sind, findet eine Festlegung den Gitterpfad,
der den kleinsten Fehler aufweist. Dieses Verfahren zum Dekodieren
bestimmt, welches QPSK-Symbol gesendet wurde. Die Gitterstruktur
führt Redundanzen
ein und akkumuliert die zurückliegenden
Ereignisse.
-
Eine
ACS-Schaltung 67a für
Kanal 0 wird in 7 dargestellt. Jedes neue Symbol,
das einen QPSK-Konstellationspunkt repräsentiert, wird eingegeben 139a.
Da jeder Knoten in dem Gitter zwei eingehende und ausgehende Pfade
aufweist, werden die Werte auf der Basis des gegenwärtigen Zustandes
in dem Gitter und dessen, was kodiert worden ist, gespalten und
ausgewählt.
Jeder Konstellationswert wird in separate 4-Eingang-Multiplexer 189u, 189l eingegeben.
Der Ausgang 191u, 191l jedes Multiplexers 189u, 189l beruht
auf dem gegenwärtigen
Zustand in dem Gitter und dem Kodierer. Diese Entscheidung 153a wird
in dem ACS-Sequenzer 71 erzeugt, welcher später in der
Beschreibung erläutert wird.
Die Zustandsmetrik 145a wird aus Speicher 69 gelesen
und ähnlich
sowohl für
den oberen als auch den unteren Pfad aufgespalten und in gespiegelte bistabile
8-Bit-Kippschaltungen 193u, 193l eingegeben. Die
bistabilen Kippschaltungen 193u, 193l geben in
Sättigungssubtrahierer 197u, 197l aus,
mit der vorhergehenden besten Metrik 201 und kombiniert mit
dem neuen Symbolwert 191u, 191l mit Sättigungssubtrahierern 199u, 199l.
Sowohl der obere als auch der untere Pfad eines jeden Gitterknotens
wird mit einer 8-Bit-Wertevergleichsschaltung 203 verglichen.
Jeder ACS-Kanal verarbeitet 64 Gitterzustände für jedes bestimmte Symbol. Jeder
Pfad wird untersucht, um zu bestimmen, welche Distanz oder Trajektorie
die kürzeste
ist. Sowohl der obere als auch der untere Pfad 205u, 205l werden
in einen 2-Eingang-Multiplexer 207 eingegeben, wo die kürzeste Distanz
oder Zustandsmetrik 145a gewählt und in dem Speicher 209 gespeichert
wird. Dieser Wert wird mit dem nächsten
Symboleingang für
Normalisation verwendet. Die vorliegende Erfindung normalisiert alle
Eingänge
für jede
Operation nach.
-
Beim
Stand der Technik wird Normalisierung typischerweise auf einer Blockbasis
durchgeführt oder
nachdem viele Symbole mit Information verarbeitet worden sind. Jedoch
wird die Leistung durch Nachnormalisierung, nachdem jede Metrik
gewählt worden
ist, bedeutend erhöht.
Nachnormalisierung erfordert Sättigungslogik,
weil der Normalisierungsprozess zu Überlauf führen kann. Wenn keine Sättigungslogik
angewendet wird, kann die Zählmenge letztendlich überlaufen,
und die binäre
Zählmenge kann
völlig
von dem gewünschten
Wert abweichen. Das System kann nicht entscheiden, ob der Wert realistisch
ist. Wenn Sättigungslogik
angewendet wird, wird der Wert am Ende stabil bleiben.
-
Weil
jeder Knoten auf dem Gitter zwei Pfade aufweist, die an ihm enden,
und zwei Pfade, die von ihm ausgehen, muss der Prozess ständig beschneiden.
Das Gitter repräsentiert
die Metriken für
zwei Pfade, wo ein Pfad durch eine Entscheidung, welche auf der
kürzesten
Distanz beruht, gewählt
wird. Der bessere Pfad oder die beste Metrik wird in dem Zustandsmetrikspeicher 69 gespeichert
und die Entscheidung, oder das Pfadbit, wird in dem Rückverfolgungsspeicher 149a, 149b, 149c, 149d gespeichert.
-
Zu
Beginn eines Symbols wird jeder ACS-Kanal 67a, 67b, 67c, 67d ein
Dekodiererstartsignal 141a, 141b, 141c, 141d empfangen,
um den Kanal zu initialisieren. Wie vorstehend beschrieben, wird
der Überlebende
der Beschneidungsoperation, der in dem Speicher gespeichert wurde,
mit dem ersten verglichen, wenn der zweite Überlebende kleiner ist als
der erste, dann wird dieser bestimmte Wert als die beste Metrik
ausgewählt.
Diese Operation ist für die
verbleibenden 63 Ausgaben des Gitters ähnlich.
-
Die
Ereignisabhängigkeit
von Symbolen, wenn sie in einen Viterbi-Dekodierer eingehen, akkumuliert
Energie von den vielen Symbolen, wobei sich eine beachtliche Verstärkung ergibt.
Die Verstärkung der
Energie beruht auf der Integration der Energie von über 35 Symbolen,
was praktisch die Bandbreite einengt.
-
Das
Sequenzieren der Operation von ACS 67a, 67b, 67c, 67d wird
durch den ACS-Sequenzer 71 über die Leitungen 151a, 151b, 151c, 151d gesteuert.
Ein einziger ACS-Sequenzer 71 wird verwendet, um die individuellen
ACS-Schaltungen 67a, 67b, 67c, 67d für jeden
Kanal, der dekodiert wird, zu steuern. Wenn ein bestimmter Kanal
nicht aktiviert worden ist 141a, 141b, 141c, 141d,
entweder wegen einer niedrigeren Datenrate oder wenn der Kanal leer ist,
werden die Schreiboperationen zu den Speichern von Zustandsmetrik 69 und
Pfad 73 für
diesen bestimmten Kanal über
die Leitungen 153a, 153b, 153c, 153d gesperrt.
-
Der
ACS-Sequenzer 71 steuert die gesamte Operation der vorliegenden
Erfindung. Die Funktion des ACS-Sequenzers 71 ist ähnlich derjenigen
eines Automaten. Anstatt jedoch eine programmierfähige Vorrichtung
zu verwenden und ausführbaren
Code herunterzuladen, wie normalerweise im Stand der Technik, ist
der ACS-Sequenzer 71 strikt als Hardware ausgeführt, die
einen unerwarteten Wirkungsgrad erzielt.
-
Der
Betrieb des ACS-Sequenzers 71 ist demjenigen einer Zählschaltung,
die von einem Zähler
gesteuert wird, ähnlich
und steuert die vier unabhängigen
ACS-Schaltungen 67a, 67b, 67c, 67d parallel
mit einem gemeinsamen Speicher 69. Der ACS-Sequenzer 71 funktioniert
ebenfalls als ein Bitscheibenanordnungsprozessor. Ein Ablaufdiagramm für den ACS-Sequenzer 71 ist
in 8a und 8b dargestellt.
Nach der Initialisierung (Schritt 401) erstellt der ACS-Sequenzer 71 eine
Basiszählung,
die gleich Null (Schritt 403) ist. Da ein Sequenzer im
Wesentlichen eine Zählschaltung
ist, ist ein Rückpfad
für das
Heraufzählen
(Schritt 415) erforderlich. Eine Entscheidung (Schritt 405)
bestimmt, abhängig
vom Inkrementieren von 0 bis 127, ob der Prozess vollständig ist,
die mit den 64 Lese- und 64 Schreiboperationen des Gitters auf Gleichheit
geprüft
werden. Der Sequenzer wird mit der Viterbi-Rate getaktet, die die Adressierung
(Schritte 411, 419, 425, 429)
und das Sequenzieren der Adressen und das Sequenzieren der Operationen
des Lesens (Schritte 413, 421) und des Schreibens
(Schritt 427, 431) steuert. Der ACS-Sequenzer 71 verarbeitet
jeden ACS-Kanal 67a, 67b, 67c, 67d parallel
mit einem gemeinsamen Speicher 69.
-
Die
Zustandsmetrikspeicheranordnung 69 ist 64 Bits breit und
in einem Ping-Segment
und einem Pong-Segment angeordnet. Die ersten 32 Bits sind das Ping-
und die zweiten 32 Bits des 64-Bitworts sind das Pong-Segment. Jedes
8-Bit-Segment des 32-Bitsegments repräsentiert einen anderen Kanal (0,
1, 2, 3). Wenn der ACS-Sequenzer 71 aus
dem Pong-Segment liest, wird er in Sequenz in das Ping-Segment schreiben.
Der Sequenzer wird aus dem Ping lesen und in das Pong schreiben
und beim nächsten
Symbol aus dem Pong lesen und in das Ping schreiben. Dieses Verfahren
des geteilten Speicherzugriffs ist dem Fachmann bekannt.
-
Der
ACS-Sequenzer 71 wickelt vier Kanäle ab, die Daten mit verschiedenen
Datenraten verarbeiten können,
so dass der Sequenzen 71 gerade aus dem Ping für Kanal
0 liest, aus dem Pong für
Kanal 1 liest, weder Lesen noch Schreiben für Kanal 2 ausführt und
aus dem Ping für
Kanal 3 liest. Dieses Verfahren des Speicherzugriffs ist extrem
flexibel. Dieses wird für
jeden Kanal durchgeführt,
der ein zugeordnetes Startsignal 141a, 141b, 141c, 141d aufweist.
-
Der
ACS-Sequenzer 71 greift auf die Zustandsmetrikspeicheranordnung 69 und
jede ACS-Schaltung 67a, 67b, 67c, 67d zu,
indem die Basiszählung
(Schritt 405) überprüft und die
zwei niedrigstwertigen Bits (LSB) der Basiszählung (Schritt 407) überwacht
werden. Die ersten zwei Zustände
der Sequenz sind immer Operationen des Lesens (Schritt 413, 421).
Die letzten zwei Zustände
der Sequenz sind Operationen des Schreibens (Schritt 427, 431).
Die Schreiboperationen übertragen
die Ergebnisse zu dem Zustandsmetrikspeicher 69.
-
Wie
in 9 dargestellt, wird die Implementierung des ACS-Sequenzers 71 mit
minimaler Hardware durchgeführt.
Zählschaltung 211 stellt
mit den bistabilen Kippschaltungen 213a, 213b, 213c, 213d, 215a, 215b, 215c, 215d die
Basiszählung
zur Verfügung,
wobei die Verschiebeoperationen und das Schreiben und das Lesen
für die
Datenkanäle
mit den vier variablen Raten bereitgestellt werden. Ein 4-Eingang-Multiplexer
217 greift auf die Zustandsmetrikadressen für alle Kanäle zu.
-
Die
Zustandsmetrikspeicheranordnung 69 hat ausreichend Speicher
für 64
Zustandsmetriken pro Kanal. Zur Erleichterung des Lesens aus 145a, 145b, 145c, 145d der
und des Schreibens in 143a, 143b, 143c, 143d die
Zustandsmetrikspeicheranordnung 69 erleichtert die Ping-Pong-Organisation
des Speichers beide Operationen während der individuellen ACS-Operationen,
die durch den ACS-Sequenzer 71 über die Ping-Pong-Leitung 155 und
den Adressenbus 157 koordiniert werden. Die gesamte Kapazität der Zustandsmetrikspeicher-SRAM-Anordnung 69 ist
4.096 Bits.
-
Die
Rückverfolgungsspeicheranordnung 73 wird
dafür verwendet
aufzuzeichnen, welcher Pfad der Überlebende
in jeden Zustand für
jedes dekodierte Signal war. Da ein Gitterdiagramm in der Theorie eine
unendliche Nachbildung eines Zustandsdiagramms ist, wäre eine
unendliche Speichermenge notwendig, um alle Informationen für jedes übertragene
Symbol aufzuzeichnen. Jedoch wird die Rückverfolgung der Ereignisse
nur für
35 aufeinanderfolgende Symbole beibehalten und durch die ACS-Schaltungen 67a, 67b, 67c, 67d über die
Leitungen 149a, 149b, 149c, 149d überschrieben.
Der Rückverfolgungsspeicher 73 erfordert
8.960 Bits an SRAM, organisiert in einer 32-mal-280-Anordnung. Die
Rückverfolgung
ist 35 Symbole tief, und demzufolge hat, bevor ein dekodiertes Symbol
ausgegeben wird, eine Akkumulierung von 35 Symbolen an Information
stattgefunden. Das Eingangssymbol, das einen gegebenen Ausgang produziert,
fand zeitmäßig 35 Symbole
früher
statt.
-
Der
Rückverfolgungsspeicher 73 ist
als ein Kreispuffer angeordnet. Jedes Mal, wenn ein neues Symbol
in den Rückverfolgungsspeicher 73 geschrieben
wird, werden alle vorher gespeicherten Symbole verschoben, wobei
der älteste
Symbolwert verworfen wird. Der erforderliche Speicher beruht auf der
Regel von fünfmal
die Zwangslänge,
dadurch sind 35 Symbole an Speicherwert für eine K=7-Zwangslänge erforderlich.
-
Die
Rückverfolgungsoperation
ist in 10 dargestellt. Der Rückverfolgungsprozessor 75 ist eine
rekursive Operation ähnlich
derjenigen des ACS-Prozessors 71 insofern,
als eine Zählschaltung initialisiert
(Schritt 501) und eingestellt (Schritt 503) wird,
wobei ein Wert von 34 zugeordnet wird, wie vorstehend erläutert (fünfmal die
Zwangslänge).
Die lokale beste Metrik wird dann dem besten Metrikwert zugeordnet
(Schritt 505). Eine Entscheidung, ob die Rückverfolgungszählung gleich
0 (Schritt 507) ist, muss getroffen werden. Wenn die Rückverfolgungszählung gleich
0 ist, ist der Prozess abgeschlossen (Schritt 531) und
die Trajektorie bekannt, die am wahrscheinlichsten war, und der
Dekodierer gibt ein Bit (Schritt 529) aus. Wenn die Rückverfolgungszählung nicht
gleich 0 ist, wird die Operation noch einmal durchgeführt, um
zu der besten Metrik zu gelangen.
-
Da
vier verschiedene Datenraten verarbeitet werden können, wird
der Rückverfolgungsspeicher 73 entsprechend
gebraucht, z.B. wenn Kanal 0 mit 64 kbit/s läuft, wäre der Rückverfolgungsspeicher nach 35
Symbolen auf Kanal 0 für
diesen bestimmten Kanal gefüllt,
wenn jedoch Kanal 2 mit der halben Rate läuft, z.B. 32 kbit/s, würde Kanal
2 den Rückverfolgungsspeicher 73 nur
zur Hälfte
füllen.
-
Der
Rückverfolgungsspeicher 73 wird
der Reihe nach zugewiesen, weil ein Kanal gegenüber einem anderen Kanal sehr
verzögert
sein kann. Der Rückverfolgungsprozess 75 ist
für jeden
Kanal einmalig, weil die Daten, die an dem Sender kodiert wurden,
einzigartig sind. Demzufolge wird die Rück verfolgungsoperation für jeden
der vier Kanäle
einzigartig sein. Darüber
hinaus können
die Datenraten zwischen den vier Kanälen verschieden sein.
-
Der
Rückverfolgungsprozess
ist seriell und der Prozessor 75 funktioniert sequentiell
für Kanal
0, dann Kanal 1, dann Kanal 2 und schließlich Kanal 3, weil sie keine
gemeinsamen Adressen haben. Die Speicherung der Rückverfolgungsinformationen
ist adressenabhängig,
was erfordert, dass jeder Prozess für jeden Kanal zeitmäßig abgetrennt
wird. Wenn alle vier Kanäle
mit derselben maximalen Rate übertragen
werden, würde
der Speicher dennoch eine Abtrennung erfordern, weil die Daten,
die an dem Sender kodiert wurden, ein anderes Gitter oder eine andere
Rückverfolgungstrajektorie
zwischen jedem der vier Kanäle
erzeugt haben. Ihre Verarbeitung mit verschiedenen Raten verkompliziert
den Prozess zusätzlich.
-
Wenn
mit Bezugnahme auf das Ablaufdiagramm in 10 die
Rückverfolgungszählung nicht gleich
0 (Schritt 507) ist, muss der Prozess für die Trajektorie, die am wahrscheinlichsten
ist, zeitmäßig zurückverfolgt
werden. Der Prozessor liest die 9-Bit-Adresse, welche ein Feld,
eine Byteadresse, und eine Bitadresse umfasst. Dieses wird durchgeführt, indem
die Adresse um 4 Bits (Schritt 509), dann um 1 Bit (Schritt 511)
nach rechts verschoben wird und die 3 niedrigstwertigen Bits (Schritt 513)
ausgeblendet werden. Die lokale beste Metrik ist eine 7-Bit-Zahl.
Die 4 höchstwertigen
Bits werden zu der Byteadresse, die nächsten 3 Bits werden die Bitnummer,
und die 4 niedrigstwertigen Bits werden ignoriert. Das Pfadbit wird
untersucht (Schritt 515), um herauszufinden, ob es eine
1 oder eine 0 ist. Wenn das Pfadbit eine 0 ist, wird der vorhergehende
lokale beste Metrikwert um 1 nach rechts verschoben, wodurch er
praktisch durch 2 geteilt wird. Wenn das Pfadbit gleich 0 ist, wird
die lokale beste Metrik um 1 nach rechts verschoben (Schritt 517).
Wenn das Pfadbit nicht gleich 0 ist, wird 64 zu der lokalen besten
Metrik addiert, wodurch das Ergebnis zwischen einem Wert von einer
32 und 63 angeordnet wird. Der Prozessor 75 verfolgt laufend
(Schritte 521, 523, 525, 527)
alle Trajektorien und wird wiederholt, bis das kodierte Bit gefunden
ist.
-
Der
Prozessor findet die Trajektorie, die in allen 64 Zuständen mit
der minimalen Energie endet, wobei der minimale Fehler angezeigt
wird. Der Rückverfolgungsspeicher
speichert die 35 Trajektorien, die allen 64 Zuständen zugeordnet sind, mit einem Bit,
das anzeigt, ob die Trajektorie von oben oder von unten her kommt,
weil es nur zwei Pfade in einen gegebenen Zustand gibt. Demzufolge
zeigt eine 0 oder 1 den Pfad an. Der zugeordnete Bitpfad für die lokale beste
Metrik wird zusammen mit der Byteadresse und der Bitadresse gespeichert.
Da alle Informationen in Bytes gespeichert werden, wird eine Auflösung durchgeführt, weil
es 64 Zustände
mit 8 Bytes gibt, mit 8 Bits pro Byte. Weil es 8 Bits innerhalb
des ersten Byte gibt, würden
die 8 Bits Zustände
von 0 bis 7 anzeigen. Dieses zeigt an, welche lokale beste Metrik
auf diese Zustände
deutet. Das nächste
Byte würde
für Zustände von
8 bis 15 sein und so weiter bis zu dem 63 sten Zustand.
-
In
dem Prozess wird immer das niedrigstwertige Bit von der 7-Bit-Zahl
verworfen. Die 3 höchstwertigen
Bits, wie schon vorher erläutert,
deuten auf eine bestimmte Byteadresse. Die 3 Bits, die auf die 3 höchstwertigen
Bits folgen, deuten auf ein bestimmtes Bit in der Byteadresse. Das
ist das Pfadbit. Das Pfadbit wird dazu verwendet, die lokale beste
Metrik zu modifizieren.
-
Der
Rückverfolgungsprozess
arbeitet 512-mal schneller als die maximale Durchsatzrate. Die Steuerung
des Adressenbusses wird zwischen dem ACS-Sequenzer 71 und
dem Rückverfolgungsprozessor 75 koordiniert.
Während
der ACS-Phase der Dekodiereroperation, steuert der ACS-Sequenzer über die
Leitungen 151a, 151b, 151c, 151d den Adressenbus 159 sowohl
des Zustandsmetrikspeichers als auch des Rückverfolgungsspeichers. Wenn die
ACS-Operation beendet ist, wird die Steuerung des Adressenbusses
des Rückverfolgungsspeichers an
den Rückverfolgungsprozessor 75 übergeben.
-
Der
Rückverfolgungsspeicher 73 wird
in einer Vorgehensweise verwendet, die „Rückverkettung" oder Rückverfolgung
genannt wird, wobei an dem letzten Knotenpunkt in dem Gitter angefangen und
der Entscheidungspfad rückwärts, von
der letzten Entscheidung bis zu der ersten, zurückverfolgt wird. In diesem
Prozess wird das dekodierte Symbol, das als ein Ausgang 161a, 161b, 161c, 161d freigegeben
werden soll, bestimmt. Der Rückverfolgungsprozess
für die
vier Kanäle
kann nicht parallel innerhalb eines gemeinsamen SRAM-Blocks 69, 75 durchgeführt werden,
weil erwartet wird, dass die Adressierungscharakteristiken des Rückverfolgungsprozesses
für die
separaten Datenkanäle
unabhängig
sind. Es ist notwendig, den Rückverfolgungsprozess
für jeden
individuellen Kanal zu sequenzieren. Wenn ein Kanal nicht für ein bestimmtes
Symbolintervall freigegeben worden ist, wird der Rückverfolgungsprozess
für diesen Kanal übersprungen.
Der Prozess erfordert ein Minimum von 35 Taktzyklen, um den Rückverfolgungsprozess
für einen
gegebenen Kanal durchzuführen.
-
Die
vorliegende Erfindung weist ebenfalls ein Merkmal für die Leistungsfähigkeitsdiagnose
auf, mit dem die Bitfehlerrate berechnet wird. Die Euklidische Distanzmaschine 65 gibt
eine feste Entscheidung 163 in den Rückverfolgungsprozessor 75 aus.
Die feste Entscheidung wird in eine 35-Symbole-FIFO-(Warteschlange) gepuffert und dann
mit dem rückfaltungskodierten
Symbolausgang 161a, 161b, 161c, 161d verglichen,
welcher durch den Rückverfolgungsprozessor 75 freigegeben
wurde. Die Bitunterschiede zwischen den zweien werden akkumuliert. Nach 256 Symbolen
wird der Akkumulator in dem Rückverfolgungsprozessor 75 in
einen Bitfehlerraten-Ausgangsschaltkreis 77 geleert 165,
der in 7 dargestellt ist. Wenn ein neuer akkumulierter
8-Bit Bitfehlerratenwert für
den Host-Mikroprozessor zum Lesen bereitsteht, wird das BER-Bereitschaftssignal 167 für diesen
bestimmten Kanal aktiviert.
-
Wie
in dem Ablaufdiagramm in 11 dargestellt,
wird der Diagnoseprozess für
Bitfehlerraten beschrieben. Für
den Prozess der Bitfehlerratenberechnung ist ein Senderbereich und
ein Empfängerbereich
erforderlich. Daten werden in den Sender eingegeben (Schritt 601)
und einer Vorwärts-Fehlerkorrektur-Kodierung,
QPSK-Modulation
und Quadratursignalspreizung unterzogen. Das Signal wird nicht der Übertragung
unterzogen, sondern es wird direkt in den Empfängerbereich eingegeben, in
dem das Signal entspreizt wird. Die Ausgabe des Entspreizungsprozesses
wird den Viterbi-Dekodierer umgehen (Schritt 603) und für 35 Symbole
verzögert (Schritte 607, 609, 611),
um dem Viterbi-Dekodierer zu ermöglichen,
die Information zu dekodieren (Schritt 605). Die Daten,
die der festen Entscheidung (nicht dekodiert) unterzogen wurden,
werden mit der Ausgabe des Viterbi-Dekodierers verglichen. Dieses stellt
einen Hinweis auf SNR- und Prozessorleistungsfähigkeit zur Verfügung.
-
Die
Leistungsfähigkeit
der vorliegenden Erfindung wird in 12 dargestellt. 12 zeigt
ein Schaubild einer Bitfehlerraten-Wahrscheinlichkeit versus Signal/Rausch-Verhältnis, wobei
nicht faltungskodierte Daten mit kodierten Daten verglichen werden.
Zwei Ausführungsformen
der Erfindung werden dargestellt. In der ersten Ausführungsform
wird eine Zwangslänge
von K = 7 verwendet. In einer alternativen Ausführungsform wird eine Zwangslänge von
K = 9 verwendet. Wie aus dem Schaubild ersichtlich ist zeigt die
Leistungsfähigkeit
der nicht faltungskodierten Daten, wenn das Signal/Rausch-Verhältnis bis
auf 5 steigt, eine Bitfehlerraten-Wahrscheinlichkeit von 0,05%. Bei demselben
Signal/Rausch-Verhältnis,
zeigen faltungskodierte Daten jedoch einen dramatischen Anstieg
der Leistungsfähigkeit
von über
einem Bitfehler in einer Million. Das Schaubild zeigt ebenfalls
eine Verbesserung über
die Zwangslänge
von 7, wenn in einer alternativen Ausführungsform eine Zwangslänge von
9 verwendet wird.
-
Anstatt
einen Vierfach-Viterbi-Dekodierer zu zusammenzustellen, der vier
Eingangskanäle
aufweist, die jeweils zwei Paare I- und Q-Signale haben, wird eine
Distanzberechnungsmaschine verwendet, um vier Kanäle zu durchzusetzen
und 16 Distanzen auszugeben. Die 16 Distanzen werden dann mit ACS-Blöcken gekoppelt.
Die Ausgaben des Euklidischen Distanzberechnungsblocks werden dann
anteilsmäßig auf
den individuellen ACS-Block auf einer Pro-Kanal-Basis aufgeteilt.
-
Anstatt
vier diskrete ACS-Blöcke
für jeden
individuellen Kanal aufzuweisen, könnte bei einer alternativen
Ausführungsform
eine drastische Reduzierung mit einem linearen Anstieg der Taktgeschwindigkeit
ausgestaltet werden. Das ACS-Merkmal, welches die Gitteroperation
umfasst, kann auf zwei oder sogar auf eine ACS-Schaltung reduziert
werden, indem der Dateneingang zusammen mit einem Anstieg der Taktgeschwindigkeit
gemultiplext wird
-
Während spezifische
Ausführungsformen der
vorliegenden Erfindung gezeigt und beschrieben worden sind, könnten viele
Modifikationen und Variationen von dem Fachmann ausgeführt werden.