-
Hintergrund
der Erfindung
-
Diese
Erfindung, wie sie in den angehängten Ansprüchen definiert
ist, bezieht sich allgemein auf Signalgeneratoren und insbesondere
auf einen Signalgenerator mit einer flexiblen Architektur zum Erzeugen
von Testsignalen.
-
Drahtlose
Kommunikation, einschließlich
digitalen Zellulartelefonen und PCS-Telefonen (PCS = Personal Communications
Service = Personal-Kommunikationsdienst) werden schnell zu einem
Hauptsektor der Kommunikationsindustrie. Aufstrebende drahtlose
Kommunikationstechnologien sind eine treibende Kraft hinter der
sich schnell ausdehnenden Anzahl komplexer Signale, wie z. B. digitalmodulierte Signale,
die nun durch den Signalgenerator sowohl in der Entwurfs- als auch
der Herstellungsumgebung untergebracht werden müssen. Der Entwickler des drahtlosen
Systems, der eine bestimmte digitale Modulation auswählen muß, steht
einer Anzahl von Herausforderungen gegenüber. Das drahtlose System muß Signalstärken ermöglichen,
die im Verlauf der Zeit und an verschiedenen Orten variieren, mit
Mehrweg, Fading bzw. Schwund und Störung. Drahtlose Handapparate
werden zunehmend kleiner und weisen eine zunehmend begrenzte Batteriekapazität auf. Gleichzeitig
steigen die Benutzeranforderungen nach höheren Datenraten, besserer
Sprachqualität, weniger
abgebrochenen Anrufen und längeren Sprechzeiten.
Das Entwerfen, Herstellen und die Wartung von drahtlosen Geräten erfordert
somit geeignete Testausrüstungen,
wie z. B. Signalgeneratoren, die in der Lage sind, Testsignale zum
genauen Simulieren von echten Bedingungen sowie bekannte Signale,
die Industriestandards entsprechen, zu erzeugen. Eine Erörterung
verschiedener digitalmodulierter Signaltypen, die es gibt, sind
zu finden in „Digital
Communication, Second Edition",
Lee, Edward, A. und Messerschmitt, David G., Kluwer Academic Publishers,
Massachusetts, 1994.
-
Signalgeneratoren
müssen
vielseitig einsetzbar und leistungsfähig genug sein, um sowohl bestehende
als auch neu erzeugte Modulationstypen handzuhaben. Während der
Entwicklung eines neuen drahtlosen Systems können Entwickler dem Problem
gegenüberstehen,
keinen Empfänger
zu haben, um den Betrieb des Signalgenerators zu verifizieren, und
keinen Signalgenerator zu haben, der in der Lage ist, den Betrieb
des Empfängers
zu verifizieren. Eine vielseitige Signalquelle trägt dazu
bei, dieses Dilemma zu vermeiden, durch Liefern eines bekannten Testsignals,
durch das die Leistungsfähigkeit
des neuen Empfängers
bestimmt werden kann, ohne spezialisierte Prototypen zu entwickeln.
-
Signalgeneratoren
können
verwendet werden, um drahtlose Kommunikationsgeräte auf eine Vielzahl von Weisen
zu testen. Beispielsweise kann es sinnvoll sein, die Antwort des
Gerätes
auf nicht ideale Signale zu untersuchen, durch Liefern eines Testsignals,
das auf bekannte Weise von einem idealen Signal abweicht. Als ein
weiteres Beispiel müssen
drahtlose Kommunikationsgeräte
in überfüllten spektralen
Umgebungen neben anderen Kommunikationssystemen arbeiten. Eine Anzahl
von Signalgeneratoren kann parallel kombiniert werden, um auf gesteuerte
Weise eine vollständige
spektrale Umgebung zu simulieren, durch Erzeugen einer Mehrzahl von
Störsignalen
mit einer Vielzahl von Signalstärken,
Frequenzen und Modulationstypen.
-
Bei
der Herstellungs-Umgebung muß die gleiche
Teststation häufig
unterschiedliche Typen von drahtlosen Geräten handhaben, die eine Vielzahl von
Modulationstypen aufweisen. Eine vielseitige Signalquelle reduziert
den Bedarf an zusätzlicher
Ausrüstung
und vereinfacht Testsystemanforderungen. Funktionsgeneratoren sind
für ihre
Vielseitigkeit beim Bereitstellen von Testsignalen gut bekannt,
die über Frequenzbereiche
die typischerweise Gleichstrom bis zu etwa 20 Megahertz (MHz) umfassen,
amplituden-, frequenz- oder phasenmoduliert sind. Funktionsgeneratoren
sind gut geeig net zum Testen analoger Geräte und Simulieren traditioneller
analoger Modulationstypen und haben den Vorteil, in der Lage zu sein,
ein Eingangssignal anzunehmen und ansprechend auf das Eingangssignal
ein Testsignal mit Echtzeitmodulation zu erzeugen. Die Fähigkeit
des Funktionsgenerators zum Erzeugen komplexerer digitaler Modulationstypen
ist jedoch aufgrund der hauptsächlich
analogen Architektur desselben sehr beschränkt.
-
Signalverlaufgeneratoren
für beliebige
Signalverläufe
(AWG = Arbitrary waveform generators) sind ein aktuellerer Entwurf,
der Digitalsignalverlaufspeicher und Digital/Analog-Wandler (DAC
= Digital to Analog Converter) verwendet, um Testsignale mit größerer Komplexität zu erzeugen.
Bei einer angemessenen Speichergröße und maximalen Abtastrate können AWGs
beim Simulieren einer Vielzahl von Testsignalen sehr vielseitig
sein. AWGs haben im allgemeinen jedoch keine Fähigkeit, digitale Eingangssignale
anzunehmen, um Echtzeitsignale zu erzeugen, die tatsächliche
Informationen kommunizieren. Das Testsignal, das durch den AWG erzeugt
wird, muß zeitlich
vorher als vorberechnete Abtastwerte berechnet und in dem Digitalsignalverlaufspeicher gespeichert
werden. Weil vorberechnete Abtastwerte bezüglich Spannungswerten gespeichert
werden, die bei einer ausgewählten
Abtastrate abgespielt werden sollen, können die Berechnungen, die
notwendig sind, um ein gewünschtes
Testsignal zu erzeugen, beträchtlich
sein.
-
Die
Fähigkeit
des AWG, komplexe Signale zu erzeugen, ist weiter begrenzt durch
die Größe des Digitalsignalverlaufspeichers
und der maximalen Abtastrate, was häufig Kompromisse zwischen Frequenzinhalt
und Signalverlaufkomplexität
erfordert. Weil der Digitalsignalverlaufspeicher häufig verwendet
wird, um das Testsignal durch fortlaufendes Wiederholen der Inhalte
des Digitalsignalverlaufsspeichers zu erzeugen, muß darauf
geachtet werden, eine Diskontinuität zwischen vorberechneten Abtastwerten,
die am Anfang und am Ende des digitalen Signalverlaufsspeichers
gespeichert werden, zu vermeiden. Diese potentielle Diskontinuität begrenzt weiter
die Fähigkeit
des AWG, die gewünschten
Testsignale zu erzeugen.
-
Es
ist allgemein klar, daß herkömmliche
digitale Signalverarbeitungschips (DSP-Chips; DSP = Digital Signal
Processing), die im wesentlichen Mikroprozessoren sind, die für Signalverarbeitungsanwendungen
optimiert sind, in der Lage sind, Testsignale zu erzeugen, wenn
dieselben ordnungsgemäß programmiert
sind und mit einem geeigneten DAC und unterstützenden Hardware-Vorrichtungen
gekoppelt sind. Der DSP-Chip
kann ein Echtzeiteingangssignal annehmen, typischerweise in der
Form eines digitalen Datenstroms, um ein in Echtzeit digitalmoduliertes
Signal zu erzeugen, wobei die Signalverarbeitungsberechnungen durch
den DSP-Chip in Echtzeit gehandhabt werden. Aufgrund der relativ hohen
Komplexität,
die erforderlich ist, um jeden Ausgangsabtastwert des digitalmodulierten
Signals in Echtzeit zu berechnen, ist die Signalbandbreite, die erhalten
werden kann, durch den Durchsatz des DSP-Chips und der umgebenden
Hardware begrenzt. Ferner ist das Neukonfigurieren eines Signalgenerators,
der unter Verwendung eines DSP-Chips implementiert ist, um mit einer
Vielzahl von digitalen Modulationstypen zu arbeiten, schwierig und
zeitaufwendig.
-
Daher
wäre es
wünschenswert,
einen vielseitigen Signalgenerator zum Erzeugen einer Vielzahl von
Testsignalen zu schaffen, einschließlich digitalmodulierter Signale
mit Echtzeitmodulation. Es wäre
ferner wünschenswert,
daß der
vielseitige Signalgenerator nur unter Verwendung von speziell zugewiesenen,
in Hardware integrierten Schaltungen und Speichern implementiert
wird, die ohne weiteres für
unterschiedliche Testsignale konfiguriert werden können.
-
Zusammenfassung
der Erfindung
-
Gemäß der vorliegenden
Erfindung und wie es in den nachfolgenden Ansprüchen 1 und 8 definiert ist,
ist ein flexibler Signalgenerator zum Erzeugen komplexer Signale,
die in Echtzeit berechnet werden, vorgesehen. Ein Datenmultiplexer
(MUX) wählt
die Quelle der Eingangsdaten für
verschiedene Felder in der übertragenen
Datensequenz. Ein Codierer, der mit dem MUX gekoppelt ist, erzeugt
eine Sequenz von Symbolcodes gemäß einer
Symboltabelle, die dann an eine Abbildungsfunktion geliefert werden,
die jeden Symbolcode in eine Sequenz von Signalabtastwerten umwandelt,
einschließlich
echten Abtastwerten, komplexen Eingangswerten und I/Q (gleichphasige/Quadratur)
Abtastwerte. Die Signalabtastwerte werden an einen Filter geliefert,
das eine ausgewählte
Frequenzantwort liefert, um gefilterte Signalabtastwerte zu erhalten.
-
Die
gefilterten Signalabtastwerte werden an einen Neu-Abtaster geliefert,
der die Signalabtastwerte interpoliert, um eine höhere Abtastrate
zu erhalten, die mit der Grenzfrequenz von analogen Rekonstruktionsfiltern
an der Ausgangsstufe übereinstimmt.
Ein Modulator empfängt
das Ausgangssignal des Neu-Abtasters und verschiebt dessen Frequenz unter
Verwendung eines komplexen lokalen Oszillators, um eine komplexe
Abtastsequenz zu erhalten. Das Ausgangssignal des Modulators wird
an Digital-Analog-Wandler geliefert, die die komplexe Abtastwertsequenz
in analoge Ausgangssignale umwandeln, die durch die analogen Glättungsfilter
gefiltert werden, die als Tiefpaßfilter implementiert sind.
-
Jeder
der Blöcke
der Signalquelle, einschließlich
dem MUX, Codierer, Abbildung, Filter, Neu-Abtaster und Modulator
sind in ausreichend flexibler Weise implementiert, um eine fertige
Konfiguration zu ermöglichen,
um jedes von einer Vielzahl von digitalmodulierten Signale und auch
qualitativ hochwertige analoge modulierte Signale zu erzeugen. Jeder der
Blöcke
kann in Hardware oder Software implementiert werden.
-
Bei
dem bevorzugten Ausführungsbeispiel werden
die Blöcke
unter Verwendung von anwendungsspezifischen integrierten Schaltungen
(ASIC) und Direktzugriffspeicher (RAM) implementiert, um hohe Symbolraten
und Ausgangssignale mit der gewünschten
Bandbreite zu erhalten. Gleichzeitig können die Blöcke nach Bedarf neu konfiguriert
werden für
unterschiedliche Testsignale, einfach durch Ändern der Inhalte des RAM.
Kein Mikroprozessor oder keine DSP-Hardware wird verwendet, um die
Gerätanforderungen
zu vereinfachen und Schaltungsplatinenplatz einzusparen.
-
Ein
handelsübliches
Ausführungsbeispiel der
vorliegenden Erfindung liefert die vielseitige Signalquelle als
Schaltungsplatinenmodul, das zusammen mit anderen vielseitigen Signalquellen
auf einer Trägerplatine
befestigt werden kann, um eine Mehrfachkanalsignalquelle in einem
kompakten physikalischen Gehäuse
zu erzeugen. Jede der vielseitigen Signalquellen kann synchronisiert
mit der anderen sein, um weitere Vielseitigkeit zu erhalten, wie
z. B. das Simulieren von Mehrwegsignalen, die eine ausgewählte Amplitude
und Phasenbeziehungen zueinander haben. Die vielseitige Signalquelle
gemäß der vorliegenden
Erfindung ist in der Lage, Echtzeitdaten an dem MUX anzunehmen und
ein komplexeres Signal zu erzeugen, das gemäß den Echtzeitdaten moduliert
wird.
-
Jeder
der Blöcke
der Signalquelle, einschließlich
dem MUX, dem Codierer, der Abbildung, dem Filter, dem Neu-Abtaster
und dem Modulator, kann gemäß einem
Satz von Parametern gesteuert werden, die in der Technik für Signalverarbeitung
bekannt ist, einschließlich
Modulationstyp, Abtastrate und Anzahl von Symbolbits, ohne die Notwendigkeit, vorberechnete
Abtastwerte zu liefern oder die Signalparameter in einer niederen
Programmiersprache zu programmieren. Der Satz von Parametern kann
unter Verwendung von Software-GUIs (GUI = Graphical User Interface
= graphische Benutzeroberfläche),
die allgemein in der Industrie erhältlich sind, und eines Satzes
von Software-Bibliotheksfunktionen für die Verwendung beim Programmieren
von Umgebungen programmiert werden.
-
Ein
Merkmal der vorliegenden Erfindung ist es, eine vielseitige Signalquelle
zu liefern. Ein weiteres Merkmal der vorliegenden Erfindung ist
es, eine Signalquelle zu liefern, die eine vielseitige Architektur aufweist,
die ohne weiteres für
unterschiedliche Testsignaltypen angepaßt werden kann.
-
Ein
weiteres Merkmal der vorliegenden Erfindung ist es, eine Signalquelle
zu liefern, die eine vielseitige Architektur aufweist, die durch
Einstellen von Signalparametern für unterschiedliche Typen von Testsignalen
angepaßt
werden kann.
-
Es
ist ein zusätzliches
Merkmal der vorliegenden Erfindung, eine Signalquelle zu liefern,
die eine Echtzeiteingabe zum Empfangen von Eingangsdaten aufweist,
um ein Ausgangssignal in Echtzeit zu modulieren.
-
Andere
Merkmale, Fertigkeiten und Vorteile werden für einen Fachmann auf diesem
Gebiet beim Lesen der folgenden Beschreibungen in Verbindung mit
den beiliegenden Zeichnungen offensichtlich werden.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist ein Blockdiagramm
eines Signalverlaufgenerators für
beliebige Signalverläufe
gemäß dem Stand
der Technik;
-
2 ist ein Blockdiagramm
eines vielseitigen Signalgenerators gemäß der vorliegenden Erfindung;
-
3 ist ein Blockdiagramm
eines Komplexsignal-Generators,
der Teil des vielseitigen Signalgenerators von 2 bildet;
-
4 ist ein Blockdiagramm
eines Codierers, der Teil des Komplexsignal-Generators von 3 bildet;
-
5 ist ein Blockdiagramm
eines ersten Ausführungsbeispiels
einer Abbildung und eines Filters, die Teil des Komplexsignal-Generators
von 3 bilden;
-
6 ist ein Blockdiagramm
eines zweiten Ausführungsbeispiels
der Abbildung und des Filters, die Teil des Komplexsignal-Generators
von 3 bilden;
-
7 ist eine detaillierte
Ansicht der in 6 gezeigten
RAM-Adresse;
-
8 ist ein Hardware-Blockdiagramm
des vielseitigen Signalgenerators, der das zweite Ausführungsbeispiel
der Abbildung und des Filters gemäß 6 verwendet; und
-
9 ist ein Beispiel eines
Benutzerschnittstellenbildschirms zum Programmieren des vielseitigen
Signalgenerators gemäß der vorliegenden
Erfindung.
-
Detaillierte
Beschreibung der Erfindung
-
In 1 ist ein Blockdiagramm
eines Signalverlaufgenerators für
beliebige Signalverläufe
(AWG) 10 gemäß dem Stand
der Technik gezeigt. Ein Akkumulator 12 wirkt als ein binärer Zähler durch
Inkrementieren durch eine Serie von Adressen mit einer Rate, die
durch einen Abtasttakt 14 bestimmt wird, wobei die Adresse
um einen Inkrementwert 16 inkrementiert wird. Die Adresse
von dem Akkumulator 12 wird über einen Satz von Adreßleitungen 18 an
einen Signalverlaufspeicher 20 geliefert. Der Signalverlaufspeicher 20 enthält einen
Satz von vorberechneten Abtastwerten, die ein komplexes Signal darstellen. Vorberechnete
Abtastwerte werden gemäß der Adresse
von dem Akkumulator 12 an einen DAC 22 geliefert.
Der DAC 22 erzeugt Spannungen gemäß den Werten der vorberechneten
Abtastwerte bei einer Abtastrate, die dann an ein Tiefpaßfilter 24 geliefert
werden. Das Tiefpaßfilter 24 weist
eine Frequenzcharakteristika auf, die mit dem Abtasttakt übereinstimmt,
so daß Abtastfrequenzkomponenten von
dem Ausgangssignal entfernt sind.
-
Das
Ausgangssignal enthält
keine Echtzeitinformationen, weil der Satz von vorberechneten Abtastwerten
geladen werden muß,
bevor der AWG 10 damit beginnt, ein Ausgangssignal zu erzeugen.
Es müssen
Kompromisse geschlossen werden zwischen Signalkomplexität und Bandbreite,
weil die Länge
des Signalverlaufspeichers 20 begrenzt ist. Das Ausgangssignal
ist bezüglich
Abtastwerten und Abtastraten streng definiert, die gemäß den vorberechneten
Abtastwerten und der Abtasttaktrate eingestellt sind. Komplexe Signale
sind jedoch eher bezüglich
Datenströmen
und Symbolen definiert anstatt bezüglich Abtastzerten und Spannungspegeln,
und erfordern somit, daß an
den vorberechneten Abtastwerten mühsame Berechnungen durchgeführt werden,
um das Testsignal zu erhalten.
-
In 2 ist ein Blockdiagramm
eines vielseitigen Signalgenerators 100 gemäß der vorliegenden Erfindung
gezeigt. Ein Komplexsignal-Generator 102 erzeugt ein komplexes
Ausgangssignal, das eine Sequenz von digitalisierten Abtastwerten
ist, die das gewünschte
Testsignal darstellen. Die Sequenz von digitalisierten Abtastwerten
kann aus verschachtelten echten und imaginären Ausgangssignalen bestehen. Alternativ
kann das komplexe Ausgangssignal als ein echtes Ausgangssignal ohne
ein verschachteltes imaginäres
Ausgangssignal ausgewählt
werden, oder mit einem imagi nären
Ausgangssignal, wobei die digitalisierten Abtastwerte auf Nullwerte
gesetzt sind.
-
Ein
Neu-Abtaster 104 nimmt das komplexe Ausgangssignal von
dem Komplexsignal-Generator 102 bei einer Eingangsabtastrate
an. Der Neu-Abtaster 104 wandelt das komplexe Ausgangssignal
zu einer Ausgangssignalabtastrate um, die typischerweise gemäß einer
gewünschten
Abtastrate und Signalbandbreite des Ausgangssignals fest ist. Das
Verhältnis
zwischen der Eingangsabtastrate und der Ausgangsabtastrate ist ein
programmierbarer Gleitkommaparameter. Bei dem bevorzugten Ausführungsbeispiel
ist die Ausgangssignalabtastrate bei 15 Mega-Abtastwerten pro Sekunde
(MS/s) fest, um mit einer festen 15 MS/s Abtastrate des Ausgangssignals übereinzustimmen.
Die Eingangssignalabtastrate ist typischerweise weniger als 15 MS/s.
Neuabtasttechniken zum effektiven Ändern der Abtastrate nach oben
oder unten, während
die Frequenzinformationen beibehalten werden, werden erörtert in
dem U.S.-Patent 5,235,534 „METHOD
AND APPARATUS FOR INTERPOLATING BETWEEN DATA SAMPLES", erteilt am 10.
August 1993 an Ronald W. Potter und übertragen an die Hewlett Packard
Company.
-
Der
Komplexsignal-Generator 102 weist einen Echtzeiteingang 106 zum
Empfangen von digitalen Daten auf, die zum Modulieren des komplexen
Signals verwendet werden können.
Auf diese Weise können
die Informationen von den digitalen Daten verwendet werden, um das
Ausgangssignal zu modulieren, das durch den vielseitigen Signalgenerator 100 in
Echtzeit erzeugt wird.
-
Der
Neu-Abtaster 104 fordert ein komplexes Ausgangssignal von
dem Komplexsignal-Generator 102 an, wenn es benötigt wird.
Der Komplexsignal-Generator 102 wiederum fordert Eingangsdaten von
dem Echtzeiteingang 106 an, wenn diese benötigt werden.
Ruf diese Weise implementiert der vielseitige Signalgenerator 100 einen „Daten-Zieh"-Flußsteuermechanismus,
der Signalzeitgebungsanforderungen für die Eingangsdaten vereinfacht,
die an dem Echtzeiteingang 106 ankommen.
-
Ein
Puffer 108 nimmt das neu abgetastete Ausgangssignal von
dem Neu-Abtaster 104 und teilt die verschachtelten echten
und imaginären
Teile in getrennte echte und imaginäre Datenströme. Der Puffer 108 ist
bei dem bevorzugten Ausführungsbeispiel
als eine getrennte ASIC implementiert, um höhere Durchsatzgeschwindigkeiten
zu erreichen. Die echten und imaginären Datenströme, die
durch den Puffer 108 erzeugt werden, werden dann an einen komplexen
Modulator 110 geliefert. Die Funktion des Puffers 108 kann
ohne weiteres in den komplexen Modulator 110 eingebaut
werden, falls Leistungsfähigkeitbetrachtungen
dies ermöglichen,
so daß der komplexe
Modulator 110 das neu abgetastete Ausgangssignal direkt
von dem Neu-Abtaster 104 annehmen kann. Der Puffer 108 kann
von dem vielseitigen Signalgenerator 100 ausgelassen werden,
falls nur echte Ausgangssignale erzeugt werden sollen, wodurch der
Komponentenzählwert
reduziert wird, aber bei einem dazugehörigen Verlust der Vielseitigkeit.
-
Der
komplexe Modulator 110 nimmt die imaginären und echten bzw. realen
Datenströme
von dem Puffer 108 an I- (echt) und Q- (imaginär) Eingängen an
und behandelt die I- und Q-Eingangssignale als
eine komplexe Zahl, die mit dem Ausgangssignal eines komplexen lokalen
Oszillators multipliziert wird, der in dem komplexen Modulator 110 (nicht
gezeigt) vorliegt, um das komplexe Signal hochzuwandeln, um ein
neu abgetastetes Signal bei einer gewünschten Trägerfrequenz zu erhalten. Das
neu abgetastete Signal kann ohne Aufwärtswandlung direkt erhalten werden
durch Auswählen
einer Null-Hz-Trägerfrequenz
für den
komplexen lokalen Oszillator. Alternativ kann der komplexe Modulator 110 als
ein Frequenzmodulator arbeiten, um ein Ausgangssignal zu erzeugen,
mit der Größe die durch
das I-Eingangssignal bestimmt wird und die Frequenzabweichung, die durch
das Q-Eingangssignal
bestimmt wird.
-
Der
komplexe Modulator 110 erzeugt das abgetastete Signal als
Ströme
von echten Abtastwerten und imaginären Abtastwerten, die für die Umwandlung
zu echten und imaginären
Ausgangssignalen an Digital/Analog-Wandler (DACs) 112 bzw. 114 geliefert
werden. Tiefpaßfilter 116 und 118 filtern
die echten und imaginären
Ausgangssignale, die durch die DACs 112 und 114 geliefert
werden, um Frequenzrollcharakteristika zu erhalten, die mit der
ausgewählten
Abtastrate von 15 MS/s übereinstimmen.
Bei dem bevorzugten Ausführungsbeispiel
hat jedes der Tiefpaßfilter 116 und 118 eine
Frequenzübertragungsfunktion,
die ausgewählt
ist, um eine flache Amplitude über
einer Frequenzantwort bis zu 6.3 MHz zu liefern, während die
höheren
Frequenzkomponenten eliminiert werden, die Artefakte des Abtastprozesses sind.
Die Tiefpaßfilter 116 und 118 liefern
die echten und imaginären
Ausgangssignale mit den gewünschten
Frequenzcharakteristika an den Ausgangssignalanschlüssen 120 bzw. 122.
Falls nur ein echtes Ausgangssignal gewünscht wird, kann der komplexe
Modulator 110 ohne weiteres konfiguriert werden, um nur
Echtzeitabtastwerte zu erzeugen.
-
In 3 ist ein Blockdiagramm
des Komplexsignal-Generators 102 (in 2 gezeigt) gezeigt, um den
Betrieb desselben näher
darzustellen. Ein Multiplexer (MUX) 200 wählt zwischen
verschiedenen Eingängen
aus, die mit verschiedenen Quellen von Eingangsdaten verbunden sind,
einschließlich
dem Echtzeiteingang 106, einem Rauscheingang 130,
einem Daten-RAM-Eingang 132 und einem Registereingang 134 zum
Modulieren des komplexen Ausgangssignals. Der Rauscheingang 130 kann
mit einem Zufallsdatengenerator gekoppelt sein, um Pseudozufallsdaten
zu empfangen, um Zufallsdatenverkehr zu simulieren, oder um Rauschen
mit den gewünschten
Charakteristika für
Test- und Auswertungsprozesse zu erhalten. Der Daten-RAM-Eingang 132 kann
mit einem RAM auf der Leiterplatte verbunden sein, der eine vorher
gespeicherte Datensequenz enthält,
auf die für
Test- und Auswertungszwecke zugegriffen werden kann, um feste Daten strukturen
für die
Synchronisation einzurichten und um vorbestimmte Typen von Datenverkehr
zu simulieren. Der Registereingang 134 liefert eine kleine
Datenmenge für
die Verwendung bei ausgewählten
Feldern, typischerweise diejenigen, die ein Null-Wert-Datenwort
erfordern.
-
Die
meisten digitalen Kommunikationsprotokolle definieren Felder in
einer Übertragungssequenz.
Felder sind Zeitblöcke,
die spezifischen Informationstypen zugeordnet sind, die das komplexe
Signal bilden. Ein Feld kann eine feste Datenstruktur enthalten,
die für
Synchronisation verwendet wird. Ein weiteres Feld kann eine bestimmte
Anzahl von Verkehrsdatenwörtern
enthalten. Noch andere Felder können
Schutzfelder mit einer festen Datenstruktur am Anfang und am Ende
einer Übertragung
sein. Bei TDMA-Zellulartelefonsystemen (TDMA = Time Division Multiple
Access = Mehrfachzugriff im Zeitmultiplex) beispielsweise, kann
der Zwischenraum zwischen Datenstößen bzw. Datenbursts als weiteres
Feld betrachtet werden, das aus speziellen Datenwörtern besteht,
die ein Null-Signal-Ausgangssignal erzeugen. Es ist wünschenswert,
daß der
vielseitige Signalgenerator 100 die Fähigkeit aufweist, eine ausreichende
Felderzeugungsflexibilität
zu liefern, durch die Verwendung des MUX 200, des Rauscheingangs 130,
des Daten-RAM-Eingangs 132, des Registereingangs 134 und
des Echtzeiteingangs 106. Die Zeitgebung und Sequenz der
Felder kann an einem Feldzählereingang
auf dem MUX 200 gesteuert werden, der durch den Benutzer
als ein Parameter eingestellt werden kann oder unter Softwaresteuerung
programmiert werden kann. Zusätzliche MUXs
und Eingänge
können
nach Bedarf hinzugefügt
werden, um zusätzliche
Felder zu unterstützen.
-
Der
MUX 200 liefert Datenwörter
an einen Codierer 202, der Symbolcodes aus den Datenwörtern erzeugt.
Die Symbolcodes, die derzeit erzeugt werden, können eine definierte Abhängigkeit
auf der Basis vergangener Symbolcodes und Datenwörtern aufweisen, die zum Implementieren
von Fehlercodier- und
Differentialcodierfunktionen sinnvoll ist. Die Aus gangssymbolcodes,
die durch den Codierer 202 geliefert werden, können eine
andere Anzahl von Bits aufweisen als die Eingangsdatencodes oder Mehrfachsymbolcodes,
die für
jeden Eingangsdatencode erzeugt werden können. Der Codierer 202 ist unter
Verwendung einer Codierertabelle programmiert, die durch den Benutzer
spezifiziert ist und in dem RAM in dem Codierer 202 gespeichert
ist, um Symbolcodes an eine Abbildung 204 zu liefern. Der Betrieb
des Codierers 202 ist nachfolgend näher erläutert.
-
Die
Abbildung 204 liefert eine Möglichkeit zum Abbilden von
Symbolcodes von dem Codierer 202 in Symbolwerte. Bei dem
bevorzugten Ausführungsbeispiel
weisen die Symbolwerte eine Amplitudenauflösung von 16 Bits auf, um mit
der verfügbaren Auflösung der
DACs 112 und 114 übereinzustimmen. Das Abbilden
von Symbolcodes auf Symbolwerte kann durch Bezugnehmen auf eine
benutzerspezifizierte Nachschlagetabelle erreicht werden, die in dem
Speicher gespeichert ist. Eine benutzerspezifizierte Phasenrotation
kann auch von einem Symbol zum nächsten
spezifiziert werden. Die Symbolwerte, die durch die Abbildung 204 erzeugt
werden, werden dann an ein Filter 206 geliefert.
-
Das
Filter 206 filtert die Sequenz von Symbolwerten, die durch
die Abbildung 204 geliefert werden, unter Verwendung eines
finiten Impulsantwortfilters (FIR-Filter; FIR = Finite Impulse Response
= finite Impulsantwort) zum Erzeugen eines komplexen Ausgangssignals
mit einer gewünschten
Frequenzantwort. Das Filter 206 muß in der Lage sein, echte Signale,
komplexe Signale oder verschachtelte I/Q- (echte und imaginäre) Signale
handzuhaben. Für komplexe
Signale können
die Filterkoeffizienten des FIR-Filters komplexe Werte sein, um
das Erzeugen asymmetrischer Frequenzantworten zu ermöglichen, die
beim Simulieren bestimmter Signalübertragungsbeeinträchtigungen
nützlich
sind. Für
eine Versatzmodulation ist es notwendig, Filter mit unterschiedlichen
Verzögerungsmengen
in dem echten (Ein-Phase „I") und imaginären (Quadratur „Q") Ausgangssignal
zu erzeugen. Das Filter 206 ermöglicht es, daß die Sequenz
von Symbolwerten hochgetastet wird, was bedeutet, daß die Anzahl
von Ausgangsabtastwerten für
jeden Eingangsabtastwert erhöht
wird, typischerweise durch Einfügen
von Nullen in die Eingangsdaten. Der Betrieb des Filters 206 wird
nachfolgend näher
erläutert.
-
In 4 ist ein Blockdiagramm
des Codierers 202 (in 3 gezeigt)
näher gezeigt.
Ein Eingangsdatenregister 210 weist einen Datenausgang und
einen Dateneingang auf, wobei der Dateneingang die Datenwörter von
dem MUX 200 empfängt (in 3 gezeigt). Das Datenausgangssignal
des Eingangsdatenregisters 210 und das Rückkopplungsausgangssignal
eines Rückkopplungsregisters 216 sind
zu dem Adreßeingangssignal
eines Direktzugriffsspeichers (RAM) 212 gekoppelt, die
eine Codiererdatentabelle 214 enthält, der eine Nachschlagtabelle
zum Abbilden der Datenwörter
auf Symbolcodes gemäß dem Adreßeingangssignal
ist. Das Symbolausgangssignal des RAM 212, das die Symbolcodes
enthält,
wird an die Abbildung 204 und auch an den Eingang des Rückkopplungsregisters 216 geliefert.
-
Weil
die Kombination des Datenausgangssignals des Eingangsdatenregisters 210 und
des Rückkopplungsausgangssignals
des Rückkopplungsregisters 216 die
RAM-Adresse bildet, die dem RAM 212 präsentiert wird, können die
Symbolcodes, die durch den Codierer 202 erzeugt werden,
von vorher erzeugten Symbolcodes abhängen. Diese Abhängigkeit
des aktuellen Symbolcodes von vergangenen Symbolcodes und auch den
Datenwörtern,
die an dem Dateneingang des Eingangsdatenregisters 210 vorliegen,
kann in der Codierertabelle 214 bestimmt werden, unter
Verwendung gut bekannter Zustandsmaschinenkonzepte zum Implementieren
gewünschter
Modulationstypen, wie z. B. Differentialcodieren und auch verschiedene
Fehlercodierschemata.
-
Eine
ausgewählte
Anzahl von Bits von dem Ausgangssignal des RAM 212 wird
an das Rückkopplungsregister 216 geliefert,
um die RAM-basierte Zustandsmaschine zu implementieren. Die Anzahl von
Adreßbits,
die von dem Eingangsdatenregister 210 und von dem Rückkopplungsregister 216 genommen
werden, um die RAM-Adresse zu bilden, kann durch den Benutzer ausgewählt werden.
Alternativ kann das Rückkopplungsregister 216 deaktiviert
werden, wodurch es dem Codierer 202 ermöglicht wird, einfach Datenwörter auf
Symbolcodes abzubilden, ohne Abhängigkeiten
von vorhergehenden Symbolcodes.
-
Die
Verwendung der allgemeinen RAM-basierten Zustandsmaschine zum Implementieren
der Codiererfunktion in dem Codierer 202 erzeugt einen unerwarteten
Vielseitigkeitspegel bei der Umwandlung von Datenwörtern zu
Symbolen. Der internationale Morsecode dient als ein einfaches Beispiel
der Vielseitigkeit, die mit dem Codierer 202 gemäß der vorliegenden
Erfindung erhalten werden kann. Als eine Sammlung von Symbolen,
die aus verschiedenen Kombinationen der Punkte und Striche besteht, ist
der Morsecode ein Satz von Symbolen für die Buchstaben des Alphabets
und für
Zahlen. Dieser Satz von Symbolen kann ohne weiteres unter Verwendung
einer Kombination von Zuständen
definiert werden, die in der Codiererdatentabelle 214 erzeugt werden.
Durch Verwenden einer allgemeinen RAM-basierten Zustandsmaschinenarchitektur
muß keine
speziell zugewiesene oder spezialisierte Hardware implementiert
werden, um die verschiedenen Morsecode-Buchstaben und -Zahlen zu
erzeugen. Statt dessen kann die Codiererdatentabelle 214,
die notwendig ist, um den Morsecodesymbolsatz zu implementieren,
gemäß Hilfssoftwareroutinen
definiert werden, die ohne weiteres gemäß bekannten Zustandsmaschinenkonzepten
und Programmiertechniken implementiert werden können, die in dem RAM 212 gespeichert
sind.
-
In 5 ist ein detaillierteres
Blockdiagramm der Abbildung 204 und des Filters 206 gezeigt,
die unter Verwendung eines Finit-Impuls-Antwort-Filters implementiert
sind. Wie es oben erklärt ist,
wandelt die Abbildung 204 Symbolcodes zu Symbolwerten um.
Die Symbolwerte sind vorzugsweise von hoher Auflösung, wie z. B. 16 Bits. In
dem Filter 206 werden die Symbolwerte, die mit D1, D2,
.... D23 bezeichnet werden, von einem ersten Eingang eines MUX 240 empfangen.
Ein zweiter Eingang des MUX 240 empfängt einen Null-Abtastwert. Ein mod(N)-Zähler 236 ist
mit einem Steuereingang des MUX 240 verbunden, um selektiv
eine N Anzahl von Null-Abtastwerten zwischen jedem Symbolwert einzufügen, um
hochgetastete Symbolwerte zu erzeugen. Das effektive Hochtasten
erhöht
die Abtastrate und die verfügbare
Nyquistbandbreite, über
die die Filterantwort spezifiziert werden kann, wodurch die Vielseitigkeit
des Filters 206 erhöht
wird.
-
Zwischen
der Abbildung 204 und dem Filter 206 ist ein komplexer
lokaler Oszillator 238 angeordnet, der einen Eingang mit
einer Erregungsfunktion einΦ aufweist, die eine optionale
Symbolrotation ermöglicht,
bevor die Symbolwerte durch das Filter 206 gefiltert werden.
Die Symbolwerte und die Null-Abtastwerte werden an ein Array 242 geliefert,
das eine Reihe von Schieberegistern ist, wobei jedes Schieberegister
einen Abgriff aufweist, um den gespeicherten Wert desselben an einen
Satz von Multiplizierern 244 und einen Satz von Akkumulatoren 246 zu
liefern. Das Array 242, der Satz von Multiplizierern 244 und der
Satz von Akkumulatoren 246 bilden somit ein FIR-Filter 248.
-
Das
FIR-Filter 248 kann verwendet werden, um den vielseitigen
Signalgenerator 100 gemäß der vorliegenden
Erfindung als ein erstes Ausführungsbeispiel
effektiv zu implementieren, mit dem Vorteil, daß das FIR-Filter 248 in
einer relativ einfachen Implementierung verwendet wird. Das FIR-Filter 248 kann
ohne weiteres gemäß bekannten
Techniken programmiert werden, um ein komplexes Signal mit gewünschten
Frequenzcharakteristika zu liefern.
-
6 ist ein Blockdiagramm
eines zweiten Ausführungsbeispiels
des Filters 206, bei dem die Abbildungs- und Filterfunktionen
kombiniert wurden. Das Filter 206 gemäß dem zweiten Ausführungsbeispiel
führt die
Funktionen des Abbil dens und Filterns durch, um das komplexe Ausgangssignal
als eine Funktion der Symbolcodes zu erzeugen, ohne zunächst die
Symbolcodes zu Symbolwerten umzuwandeln. Die Abbildung 204 würde somit
gemäß dem zweiten
Ausführungsbeispiel
von dem Blockdiagramm von 3 weggelassen
werden. Im Gegensatz zu dem in 5 gezeigten
ersten Ausführungsbeispiel
wurde das zweite Ausführungsbeispiel
auf eine Weise implementiert, die Flexibilität und Durchsatz verbessert.
-
Das
Filter 206 gemäß dem zweiten
Ausführungsbeispiel
plaziert die Null-Eingangswerte nicht in das Array 302 und
reduziert somit erheblich die Menge an Berechnungen, die im Vergleich
zum ersten Ausführungsbeispiel
durchgeführt
werden müssen. Das
Filter 206 speichert die Symbolcodes, die tendenziell eine
niedrige Auflösung
haben, in dem Array 300 anstatt als Symbolwerte mit hoher
Auflösung, wie
bei dem ersten Ausführungsbeispiel.
Die Symbolcodes werden zusammen als Cluster gruppiert, um gepackte
Arraysymbolcodes zu bilden.
-
Die
Multiplikationsoperationen werden, anstatt während der Laufzeit ausgeführt zu werden,
als eine Tabelle von Produkten aller möglichen Symbole mit jedem Abgriff
vorausberechnet, wobei die Tabelle von Produkten in einer Tabelle
von Abgriffprodukten 308 in dem RAM 212 gespeichert
ist. Während
der Laufzeit können
die Ergebnisse von der Tabelle von Produkten 308 abgerufen
werden, durch Nachschlagen des Produkts der Symbolcodes unter Verwendung
der Abgriffnummer und des Symbolcodes zum Bilden der Adresse des
Ergebnisses. Beispielsweise würde
ein 32 (25) Abgriff-Filter mit 4 (22) möglichen Symbolen
nur eine 7 (5 + 2) Bitlänge
einer RAM-Adresse 17 in
dem RAM 212 erfordern, um alle erforderlichen Multiplizierer-Ausgangssignale
zu speichern und wiederzugewinnen.
-
Da
der typische RAM in seinem RAM-Adreßplatz mehr Adreßbits verfügbar hat,
ist es möglich, daß mehr als
ein Abgriffpro dukt gleichzeitig nachgeschlagen werden kann. Das
Array 302 enthält
die Symbolcodes D1–D23,
die jeweils 2 Bits breit sind. Jedes von fünf benachbarten Elementen des
Arrays 302 ist zusammen als Cluster gruppiert. Die 10-Bit-Adresse,
die durch die Symbolcodes D1–D5 gebildet
ist, bildet ein Cluster, das an dem ersten Eingang eines MUX 304 als
gepackter Arraysymbolcode präsentiert
wird. Andere Cluster erscheinen an anderen Eingängen des MUX 304,
die später
gemäß einem
Steuereingangssignal des MUX 304 ausgewählt werden. Auf diese Weise
können
die Ergebnisse von der Tabelle von Produkten 308, die in
dem RAM 212 gespeichert ist, unter Verwendung der 10-Bit-Adresse
wieder abgerufen werden.
-
Weil
die Ergebnisse der anderen Cluster ebenfalls zu den Ergebnissen
des ersten Clusters hinzugefügt
werden müssen,
um das abgeschlossene komplexe Ausgangssignal zu erzeugen, wird
das Ausgangssignal des RAM 212, wie es gemäß der RAM-Adresse 17 aufgerufen
ist, an einen Summierknoten 310 geliefert, der das Ausgangssignal
des RAM 212 mit dem aktuellen Wert summiert, der in einem
Akkumulator 312 gespeichert ist. Der Wert in dem Akkumulator 312 wird
durch das Ergebnis von dem RAM 212 für jedes Cluster inkrementiert.
-
Verschiedene
Zähler
sind implementiert, um den Prozeß des Neuaufrufens und Addierens
der Ergebnisse der verschiedenen Cluster auszuführen. Ein mod(C)-Zähler 314 inkrementiert
einmal für
jedes Cluster bis zu der Gesamtzahl von Clustern. Das Ausgangssignal
des mod(C)-Zählers 314 ist
mit dem Steuereingangssignal des MUX 304 verbunden, das wiederum
das Cluster auswählt,
das die Adresse an dem Ausgang desselben bildet. Das Ausgangssignal des
mod(C)-Zählers 314 bildet
auch einen Teil der Adresse, die als der Abgriff-Cluster-Index an den RAM 212 geliefert
wird. Sobald der Clusterzähler
den maximalen Clusterzählwert
c überschreitet,
was bedeutet, daß die
Ergebnisse aller Cluster in dem Akkumulator 312 addiert
wurden, wird das Ergebnis des Akkumulators 312 als abgeschlossenes
Filterausgangssignal ausgetaktet, der Akkumulator 312 wird dann
gelöscht
und ein mod(I)-Zählwert 316 wird
inkrementiert. Der mod(I)-Zählwert 316 enthält einen 1-Bit-Wert,
der anzeigt, ob der Wert in dem Akkumulator 312 ein I-Wert
oder ein Q-Wert ist.
-
Nachdem
sowohl der I-Wert und der Q-Wert als abgeschlossene Filterausgangssignale
ausgetaktet wurden, um den komplexen Wert zu bilden, springt der
mod(I)-Zählwert 316 zurück, und
ein mod(N)-Zählwert 318 ist
inkrementiert, um anzuzeigen, daß ein anderer als dieser Null-Wert
eingefügt wurde.
Es werden jedoch keine Null-Werte physikalisch in das Array 302 eingefügt. Statt
dessen wird für jeden
der gewünschten
Anzahl von N-Null-Werten ein Ausgangsfilterwert berechnet, als ob
Null-Werte in das Array 302 eingefügt würden, aber auf eine rechentechnisch
effizientere Weise. Nachdem die gewünschte Anzahl von Berechnungen
gemäß den N-Null-Werten
durchgeführt
wurden, um den Hochtastprozeß zu
erreichen, wird ein neues Symbolwertsignal an einen Takteingang
des Arrays 302 geliefert, um einen neuen Symbolcode in
das Array 302 zu verschieben, um den Prozeß erneut
zu beginnen. Ein mod(P)-Zählwert 320,
der als Lokaloszillator- (LO) Phasenzähler arbeitet, wird ebenfalls
inkrementiert.
-
Die
Ausgangssignale des mod(I)-Zählwerts 316 und
des mod(N)-Zählwerts 318 können einen Teil
der Adresse bilden, der an den RAM 212 als die RAM-Adresse 17 geliefert
wird. Gleichartig dazu kann das Ausgangssignal des mod(P)-Zählwerts 320 als Teil
der Adresse an den RAM 212 geliefert werden, um die Wirkungen
eines komplexen Lokaloszillators auf den vollständigen Satz von Symbolcodes aufzunehmen,
die im Array 302 gespeichert sind. Die Auswirkungen des
komplexen Lokaloszillators können
in der Tabelle der Abgriffprodukte 308 enthalten sein,
durch Ausdehnen des Adreßraums
zum Umfassen aller möglichen
Drehungen des aktuellsten Symbols.
-
In 7 ist eine detaillierte
Ansicht der RAM-Adresse 17 gezeigt, die an dem Eingang
zu dem RAM 212 gebildet ist. Wie es gezeigt ist, umfaßt die RAM-Adresse 17 die
gepackten Arraysymbolcodes mit 10 Bits, Clusterabgriffindex mit
5 Bits, I/Q mit 1 Bit, Verzögerung
mit 3 Bits und Phase mit 3 Bits. Praktische Begrenzungen der maximalen
Breite des Adreßraums
des RAM 212 können
gewisse Beschränkungen
erzeugen, welche Ausgangssignale des mod(I)-Zählers 316, mod(N)-Zählers 318 und mod(P)-Zählers 320 tatsächlich in
der RAM-Adresse 17 verwendet
werden. Die Auswahl, welche Ausgangssignale die RAM-Adresse 17 bilden,
muß dann getroffen
werden, wenn die Tabelle der Abgriffprodukte 308 erstellt
wird und hängt
von den spezifischen Bedürfnissen
der Anwendung ab.
-
In 8 ist ein Hardware-Blockdiagramm des
vielseitigen Signalgenerators 100 gemäß dem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung gezeigt. Ein feldprogrammierbares Gatterarray
(FPGA) 350 ist eine anwendungsspezifische integrierte Schaltung
(ASIC), die das Echtzeiteingangssignal 106 (in 2 gezeigt) empfängt. Der RAM 212 kann
als diskrete integrierte Schaltung implementiert sein, oder als
ein Teil von anderen integrierten Schaltungen. Das FPGA 350 ist
mit dem RAM 212 gekoppelt, um den gesamten Komplexsignal-Generator 102 zu
implementieren, einschließlich dem
MUX 200, dem Codierer 202 und dem Filter 206 (in 6 gezeigt). Der RAM 212 enthält die Tabelle der
Abgriffprodukte 308 und auch die Codierertabelle 214 und
den Daten-RAM 132. Der Neu-Abtaster 104 ist als
eine diskrete ASIC implementiert. Ein FPGA 352, ebenfalls
eine ASIC, implementiert den Puffer 108 (der in 2 gezeigt ist). Der komplexe
Modulator 110, die DACs 112 und 114 und
die Tiefpaßfilter 116 und 118 können unter
Verwendung diskreter Komponenten aufgebaut werden.
-
Weil
die Hardware-Implementierung des vielseitigen Signalgenerators 100 keinen
speziell zugewiesenen Mikroprozessor erfordert und durch Ändern der
Inhalte des RAM 212 ohne weiteres neu programmiert und
angepaßt
werden kann, kann der vielseitige Signalgenerator 100 auf
einer relativ kleinen Schaltungsplatine oder einem relativ kleinen
Modul mit geringen Kosten und mit geringer Herstellungskomplexität implementiert
werden. Mehrere Module, die jeweils einen vielseitigen Signalgenerator 100 enthalten,
können
ohne weiteres miteinander verbunden werden, um komplexe spektrale
Simulationen zu erzeugen, einschließlich Mehrwegsimulationen,
die eine Synchronisation zwischen verschiedenen Signalquellen erfordern.
-
In 9 ist ein Benutzerschnittstellenbildschirm 400 zum
Programmieren des vielseitigen Signalgenerators 100 gemäß der vorliegenden
Erfindung gezeigt. Der Benutzerschnittstellenbildschirm 400 kann
in Hochpegelsoftware erzeugt werden unter Verwendung einer Vielzahl
von graphischen Benutzeroberflächentechniken,
die in der Technik zum Eingeben und Anzeigen von Daten auf Personalcomputern
und Workstations gut bekannt sind. Der vielseitige Signalgenerator 100 ist äußerst anpaßbar und in
der Lage, eine große
Vielzahl von komplexen Signalen zu erzeugen, einschließlich digitalmodulierten Signalen
und auch traditionellen Funktionsgeneratorsignalen, einschließlich Sinus-
und Rechteckwellen. Der vielseitige Signalgenerator 100 bildet
typischerweise eine Schnittstelle mit einem Personalcomputer oder
einer Workstation gemäß bekannten
Techniken, die eine Computersteuerung gemäß ausgewählten Parametern ermöglicht.
-
Das
Programmieren des vielseitigen Signalgenerators 100 wird
vorzugsweise unter Verwendung einer Menü-Hierarchie durchgeführt, die
einen Satz von Benutzerschnittstellenbildschirmen enthält, der es
dem Benutzer ermöglicht,
Signalparameter auf eine logische und intuitive Weise zu steuern.
Wie es gezeigt ist, wurde ein Benutzerschnittstellenbildschirm 400 von
der Menü-Hierarchie
ausgewählt,
der das Programmieren der Parameter des Filters 206 ermöglicht.
Die verschiedenen Parameter können numerisch
eingegeben werden, unter Verwendung von Pull-down-Menüs oder jeder
von einer Vielzahl von Dateneingabetechniken, die in der Technik
bekannt sind. Die verschiedenen Abhängigkeiten zwischen den Parametern
können
in der Benutzerschnittstelle gehandhabt werden, zum Vereinfachen der
Programmierung. Alternativ kann ein Satz von Software-Bibliotheksfunktionen
geliefert werden, um auf die Parameter des vielseitigen Signalgenerators 100 in
einem automatischen Testsystem zuzugreifen, wo keine Benutzerprogrammierung
benötigt
wird.
-
Unter
Verwendung der Architektur des vielseitigen Signalgenerators 100 kann
eine große
Vielzahl von komplexen Signalen erzeugt werden, einschließlich Kombinationen
von Frequenzmodulation (FM), Amplitudenmodulation (AM), Quadratur-Amplitudenmodulation
(QAM), Phasenmodulation (PM) und Phasenamplitudenmodulation (PAM).
Die Abbildung 204 und das Filter 206 können umgangen
werden, so daß die
Symbolcodes, die durch den Codierer 202 erzeugt werden,
als direkte Darstellung der Symbolwerte behandelt werden. Auf diese
Weise kann der vielseitige Signalgenerator 100 als herkömmlicher
Signalverlaufsgenerator für
beliebige Signalverläufe
arbeiten, wo die Ausgangsabtastwerte direkt mit den Datencodes getrieben
werden.
-
Für einen
Durchschnittsfachmann auf diesem Gebiet ist es offensichtlich, daß bei den
Einzelheiten der oben beschriebenen bevorzugten Ausführungsbeispiele
der Erfindung viele Änderungen durchgeführt werden
können,
ohne von dem Schutzbereich der Erfindung in seinen breiteren Aspekten, wie
er in den angehängten
Ansprüchen
definiert ist, abzuweichen. Beispielsweise kann eine Vielzahl von unterschiedlichen
Typen von anwendungsspezifischen integrierten Schaltungen (ASIC)
ohne weiteres für
die FPGA 350 und 352 eingesetzt werden, während die
Vorteile des minimalen Komponentenzählwerts und der leichten Anpaßbarkeit
beibehalten werden. Eine weitere Integration des RAM und der anwendungsspezifischen
Funktionen kann ohne weiteres ermöglicht werden, sofern es die
Gerätefähigkeiten
erlauben. Wo kein Quadratur- (Q-) Ausgangskanal benötigt wird,
können
der zugeord nete DAC und das Filter ohne weiteres eliminiert werden,
während
nach wie vor die Vorteile der flexiblen Architektur beibehalten
werden. Daher sollte der Schutzbereich der vorliegenden Erfindung
durch die folgenden Ansprüche
bestimmt werden.