-
QUERVERWEIS AUF VERWANDTE PATENTANMELDUNG
-
Diese Patentanmeldung beansprucht die Priorität der provisorischen US-Patentanmeldung Nr.
62/782,481 , eingereicht am 20. Dezember 2018, die hiermit durch Bezugnahme in ihrer Gesamtheit einbezogen ist.
-
GEBIET DER ERFINDUNG
-
Die vorliegende Offenbarung betrifft allgemein Gerätesysteme und -verfahren zur Signalverarbeitung und insbesondere Gerätesysteme und -verfahren zur Umabtastung von Signaldaten von einer ersten Abtastrate zu einer zweiten Abtastrate, die sich von der ersten Abtastrate unterscheidet.
-
STAND DER TECHNIK
-
Signalverarbeitung und -analyse, insbesondere die Hochfrequenz(HF)-Vektorsignalverarbeitung und -analyse, sind in der heutigen hochtechnologischen Welt von wesentlicher Bedeutung. Häufig werden Signale von einer Vorrichtung generiert oder aufgezeichnet und dann durch ein separates Prüfgerät verarbeitet und/oder analysiert. Es kann wünschenswert sein, dass das Prüfgerät fähig ist, Signale auf zwei unterschiedliche Arten zu verarbeiten und zu analysieren: 1) offline mit aufgezeichneten Signaldaten; und 2) in Echtzeit mit einer geeigneten Verbindung zu der Quelle der Signaldaten.
-
In einigen Fällen kann sich die Abtastperiode T der ersten Vorrichtung von der Abtastperiode T' der zweiten Vorrichtung unterscheiden. In diesen Fällen ist es erwünscht, dass ein Umabtastungsalgorithmus durchgeführt wird, um 7 ohne Verlust von Informationen in T' umzuwandeln. In vielen Fällen ist es nicht einfach, die Umwandlung von der Abtastrate der Wellenform in die Abtastrate des Prüfgeräts durchzuführen, da das Prüfgerät eine vordefinierte Abtastrate (z. B. 250 MHz) aufweisen kann, die Abtastrate der Wellenform möglicherweise aber kein ganzzahliges Vielfaches der Abtastrate des Prüfgeräts sein kann. Die Komplexität der durch das Prüfgerät durchgeführten Umabtastung führt dazu, dass der Prozess relativ langsam ist und/oder zu viel Speicher- und/oder Verarbeitungsressourcen verwendet, um zum Abschluss zu kommen - was alles unerwünscht ist.
-
Eine herkömmliche rationale Umabtastung kann nicht angemessen sein. Wie in 1 gezeigt, umfasst eine klassische Signalverarbeitungstechnik 10 zur Durchführung einer rationalen Abtastratenumwandlung zwei Verarbeitungsblöcke 12, 16 und ein digitales Tiefpassfilter 14, das zwischen den zwei Blöcken 12, 16 verbunden ist. Die rationale Abtastratenumwandlung wird durch Interpolation der Signaldaten x[n] um eine ganze Zahl L in Block 12 und ihre Dezimation um eine ganze Zahl M in Block 16 durchgeführt, um den Ausgang y[m] zu bilden. Das digitale Tiefpassfilter 14 weist eine Grenzfrequenz auf, die durch die Funktion max[L,M] gelenkt wird.
-
Theoretisch stellt die klassische Technik 10 zur Durchführung einer rationalen Abtastratenumwandlung eine Umwandlung mit einem beliebigen rationalen Faktor von L/M bereit. Diese Technik 10 weist jedoch mehrere Nachteile auf. Während mehrphasige Implementierungen eingesetzt werden können, um den Rechenaufwand gering zu halten, kann ein großes L/M-Verhältnis die Koeffizientenspeicherungs- und -verarbeitungsanforderungen in die Höhe treiben, was unerwünscht ist. Darüber hinaus kann ein programmierbares L/M-Verhältnis die Hardware-Implementierung der Technik 10 verkomplizieren. Außerdem können Abtastraten nicht fließend über die Zeit verändert werden, und die Implementierung kann unter anderem ungeeignet sein, um eine variable Gruppenlaufzeit zu regeln.
-
Demgemäß gibt es einen Bedarf an und einen Wunsch nach einer verbesserten Technik zur Signalumabtastung, die verwendet werden kann, um eine erste Abtastrate in eine zweite Abtastrate umzuwandeln, und die gleichzeitig ermöglicht, Abtastraten fließend über die Zeit zu verändern, ohne dass dabei große Koeffizientenspeicherungs- und -verarbeitungsanforderungen und eine komplexe Hardware-Implementierung benötigt werden.
-
ÜBERSICHT
-
Gemäß einem Aspekt der Offenbarung wird ein System zur digitalen Signalverarbeitung offenbart. Das System kann ein Gerät umfassen, das konfiguriert ist, um Signaldaten durch das Steuern und/oder Verändern der Abtastrate der Signaldaten zu verarbeiten.
-
In einer oder mehreren Ausführungsformen kann ein Gerät bereitgestellt werden, das konfiguriert ist, um erste Signaldaten zu verarbeiten. Das Gerät beinhaltet Folgendes: einen Eingang, der angepasst ist, um die ersten Signaldaten zu empfangen, wobei die ersten Signaldaten eine erste Abtastrate aufweisen; und eine Steuereinrichtung, die mit dem Eingang verbunden ist. In einer oder mehreren Ausführungsformen kann die Steuereinrichtung Folgendes beinhalten: ein Formungsfilter, das angepasst ist, um die ersten Signaldaten von dem Eingang zu empfangen und die ersten Signaldaten unter Verwendung einer Formungsfunktion in zweite Signaldaten zu transformieren, die eine zweite Abtastrate aufweisen, die sich von der ersten Abtastrate unterscheidet; und eine Timing-Steuereinrichtung, die angepasst ist, um das Timing des Formungsfilters unter Verwendung eines Doppel-Modulo-Zählers zu steuern.
-
In einer oder mehreren Ausführungsformen kann der Doppel-Modulo-Zähler einen digitalen Delta-Sigma-Modulator zur mehrstufigen Rauschformung (MASH DDSM, Multi-stAge noise Shaping Digital Delta-Sigma Modulator) beinhalten.
-
Figurenliste
-
Die detaillierte Beschreibung bezieht sich insbesondere auf die folgenden Figuren, wobei:
- 1 eine klassische Signalverarbeitungs-Umabtastungstechnik illustriert;
- 2 eine Blockdiagrammillustration eines Beispiels einer analogen Signalumabtastung ist, die im Idealfall die Whittaker-Shannon-Interpolationstechnik darstellt;
- 3 ein vereinfachtes Blockdiagramm ist, das ein beispielhaftes Gerät zur Verarbeitung von Signaldaten gemäß den offenbarten Prinzipien zeigt;
- 4 ein vereinfachtes Blockdiagramm einer Logik zur Durchführung eines Umabtastungsprozesses gemäß den offenbarten Prinzipien ist, die durch das Gerät aus 3 benutzt werden kann;
- 5 ein vereinfachtes Blockdiagramm einer beispielhaften Timing-Steuereinrichtung gemäß den offenbarten Prinzipien ist, die in der Umabtastungsimplementierung aus 4 verwendet werden kann;
- 6 ein vereinfachtes Blockdiagramm eines Beispiels der Timing-Steuerlogik und eines Beispiels eines digitalen Delta-Sigma-Modulators zur mehrstufigen Rauschformung (MASH DDSM) gemäß den offenbarten Prinzipien ist, die in der Umabtastungslogik aus 4 verwendet werden können;
- 7 eine schematische Darstellung eines beispielhaften Fehlerrückkopplungsmodulators (EFM, Error Feedback Modulator) gemäß den offenbarten Prinzipien illustriert, der in dem MASH DDSM aus 6 verwendet werden kann;
- 8 eine schematische Darstellung eines beispielhaften linearisierten EFM gemäß den offenbarten Prinzipien illustriert, der bei der Analyse des MASH DDSM aus 6 verwendet werden kann;
- 9 ein illustrativer Graph der Spektraldichte der Rauschenergie eines EFM des MASH DDSM aus 6 gemäß den offenbarten Prinzipien ist; und
- 10 eine schematische Darstellung eines Beispiels des MASH DDSM aus 6 gemäß den offenbarten Prinzipien illustriert.
-
DETAILLIERTE BESCHREIBUNG DER FIGUREN
-
Auch wenn die Konzepte der vorliegenden Offenbarung verschiedene Modifikationen erfahren und alternative Formen annehmen können, sind in den Zeichnungen spezifische Ausführungsbeispiele davon beispielshalber gezeigt worden und werden hierin im Detail beschrieben. Es versteht sich jedoch, dass es nicht beabsichtigt ist, die Konzepte der vorliegenden Offenbarung auf die bestimmten offenbarten Formen zu begrenzen, sondern dass die Absicht vielmehr darin besteht, alle Modifikationen, Äquivalente und Alternativen abzudecken, die in dem Geist und Umfang der Erfindung, wie durch die angehängten Ansprüche definiert, enthalten sind.
-
Es versteht sich, dass im analogen Bereich eine perfekte Interpolation einer zeitkontinuierlichen, bandbegrenzten Funktion beispielsweise durch die Whittaker-Shannon-Interpolationstechnik 20, die in 2 gezeigt ist, garantiert werden kann. Die Technik 20 kann einen idealen DAC (Digital-to-Analog Converter, Digital-AnalogWandler) 22, ein perfektes Tiefpassfilter 24 und einen idealen ADC (Analog-to-Digital Converter, Analog-Digital-Wandler) 26 umfassen. Das Eingangssignal x[nT] wird als ein Eingang für den DAC 22 verwendet, der Ausgang des DAC 22 wird als ein Eingang für das Tiefpassfilter 24 verwendet, dessen Ausgang durch den ADC 26 als ein Eingang verwendet wird. Der Ausgang des ADC 26 ist der interpolierte Ausgang y[mT'].
-
Den Whittaker-Shannon-Interpolationsansatz 20 kann man sich vorstellen als die Rekonstruktion eines bandbegrenzten Signals von dem idealen DAC 22 unter Verwendung des perfekten Tiefpassfilters 24 und die anschließende Umabtastung des Signals mit der neuen Abtastperiode T' mit dem idealen ADC 26. Das ideale Tiefpassfilter 24 führt eine perfekte Bandbegrenzung der Abtastfolge, x[nT], auf den Bereich | f | < 1/(2T) durch (d. h. ein Rechteckfilter) und weist eine Impulsantwort h(t) auf, die der Funktion sin(t)/t entspricht (d. h. der sinc(t)-Funktion).
-
Der Satz von Paley-Wiener gibt vor, dass eine beliebige Funktion, die zeitbegrenzt ist, nicht gleichzeitig frequenzbegrenzt sein kann. Für eine perfekte Rekonstruktion muss der Filterkernel (d. h. die hinlänglich bekannte Sinc-Funktion) eine unendliche Unterstützung aufweisen, aber um das Problem berechenbar zu machen, muss der Kernel durch einen ersetzt werden, der eine endliche Unterstützung aufweist. Dies geschieht typischerweise durch eine dementsprechende Fensterung der Sinc-Funktion (z. B. durch einen Lanczos-Algorithmus, ein Kaiser-Fenster usw.). Der Lanczos-Rekonstruktionskernel, h(t), ist beispielsweise unten wiedergegeben:
-
Die Fensterungslänge fällt typischerweise mit dem k-ten Nulldurchgang der Sinc-Funktion zusammen (sinc(0) = 1, sinc(n) = 0 für alle anderen n ganzen Zahlen).
-
Nunmehr unter Bezugnahme auf 3 wird ein Beispiel eines Geräts 100 zur Verarbeitung von Signaldaten gemäß den offenbarten Prinzipien gezeigt. In einer oder mehreren Ausführungsformen kann das Gerät 100 Signale und/oder Wellenformen eingeben, die eine erste Abtastrate aufweisen, die sich von der Abtastrate des Geräts 100 unterscheidet (z. B. da die Signale eventuell durch eine Vorrichtung produziert und/oder erfasst wurden, die eine oder mehrere Abtastraten aufweist, die sich von der Abtastrate des Geräts 100 unterscheiden). Wie unten noch genauer diskutiert, kann das Gerät 100 konfiguriert sein, um das Eingangssignal umabzutasten und das Signal mit der Abtastrate des Geräts 100 zu verarbeiten. Außerdem können, gemäß den offenbarten Prinzipien, die Umabtastung in Echtzeit oder in einer Offline-Weise erfolgen und die Abtastraten fließend über die Zeit verändert werden.
-
In dem illustrierten Beispiel umfasst das Gerät 100 eine Steuereinrichtung 110, die mit einer Vielzahl von E/A-Ports 112 und mit einer Benutzerschnittstelle 126 verbunden ist. In der illustrativen Ausführungsform umfasst die Steuereinrichtung 110 ein feldprogrammierbares Gate-Array (FPGA) 116 (weiter unten genauer diskutiert) und eine Speicherungsvorrichtung, wie etwa beispielsweise einen Speicher 118. In einer oder mehreren Ausführungsformen kann der Speicher 118 konfiguriert sein, um aufgezeichnete Signaldaten und andere Daten zu speichern, auf die das FPGA 116 zugreifen kann und/oder die durch dieses ausgegeben werden können. Es sollte anerkannt werden, dass die Steuereinrichtung 110 in anderen Ausführungsformen andere Schaltkreise umfassen kann, wie etwa beispielsweise einen Mikroprozessor, einen Prozessor, eine anwendungsspezifische integrierte Schaltung (ASIC), einen ADC und/oder einen DAC.
-
In dem illustrierten Beispiel umfassen die E/A-Ports 112 einen Ethernet-Port 120, einen USB(Universal Serial Bus)-Port 122 und einen Verbinder 124 zum Aufnehmen einer Antenne (nicht gezeigt). Die E/A-Ports 112 gestatten es dem Gerät 100, Signal- und andere Daten zu übertragen und zu empfangen. In einer Ausführungsform können die E/A-Ports 112 mit einer Quelle der Signaldaten verbunden werden, die eine andere Vorrichtung, die Echtzeitsignaldaten ausgibt, oder eine Speicherungsvorrichtung, wenn das Gerät 100 in einer Offline-Weise (d. h. Nicht-Echtzeit-Weise) verwendet wird, sein könnte. Es sollte anerkannt werden, dass das Gerät 100 in anderen Ausführungsformen andere Ports umfassen kann, die fähig sind, Daten zu übertragen und zu empfangen.
-
Wie in 3 gezeigt, umfasst das Gerät 100 auch die Benutzerschnittstelle 126, die durch den Benutzer bedient werden kann, um die Operation des Geräts 100 zu steuern. In einer oder mehreren Ausführungsformen kann die Benutzerschnittstelle 126 eine Anzeige und eine Tastatur umfassen. Es sollte anerkannt werden, dass das Gerät 100 in anderen Ausführungsformen konfiguriert sein kann, um mit Peripherieeinheiten wie etwa einem Anzeigebildschirm, einer Tastatur und einer Maus verbunden zu werden, um es einem Benutzer zu gestatten, die Operation des Geräts 100 zu steuern.
-
Das Gerät
100 kann konfiguriert sein, um Signaldaten zu verarbeiten, die eine Anzahl unterschiedlicher Wellenformen umfassen können, und in vielen Fällen kann jede Wellenform eine Abtastrate aufweisen, die sich von der des Geräts
100 unterscheidet. Wie unten noch genauer beschrieben, kann das Gerät
100 konfiguriert sein, um die Abtastrate der Wellenform in die kardinale Abtastrate des Geräts umabzutasten. Hierzu weist das Gerät
100 eine Logik auf, die ein gefenstertes Sinc-Filter auf Basis der folgenden Gleichung benutzt:
-
Die Ausgangsabtastung (y) zum Zeitindex m wird aus der Faltung von 2*k Eingangsabtastungen mit Kernelwerten, die dem passenden Zeitindex entsprechen, konstruiert. Bei einer gefensterten Sinc-Funktion wächst die Anzahl der erforderlichen Filterkoeffizienten mit dem Interpolationsverhältnis p und das Gerät 100 kann konfiguriert sein, um den Filterkernelwert (d. h. den gefensterten Sinc-Funktionswert) gemäß dem Zeitindex anhand einer Nachschlagetabelle von Kernelwerten zu interpolieren. In einer oder mehreren Ausführungsformen kann die durch das Gerät 100 verwendete Interpolation eine lineare Interpolation sein. Es sollte jedoch anerkannt werden, dass in anderen Ausführungsformen andere Interpolationsstrategien (kubisch, quadratisch, vom Typ Farrow) verwendet werden können. Allgemein wird bei einer Interpolation höherer Ordnung die geringere Zahl an Kernelwerten in der Nachschlagetabelle mit einem größeren Rechenaufwand erkauft.
-
Nunmehr unter Bezugnahme auf 4 ist dies ein Blockdiagramm, das ein Beispiel der Logik 200 illustriert, die durch das Gerät 100 verwendet werden kann, um den gemäß den offenbarten Prinzipien durchgeführten Umabtastungsprozess zu implementieren. In einer oder mehreren Ausführungsformen kann der Umabtastungsprozess, und somit die in 4 illustrierte Logik 200, eine Form der Interpolation für die Verarbeitung von Signaldaten benutzen, wie weiter unten genauer beschrieben. In einer oder mehreren Ausführungsformen ist die Logik 200 in dem FPGA 116 implementiert.
-
Wie in 4 gezeigt, kann die Logik 200 ein Formungsfilter, das als ein gefenstertes Sinc-Filter 210 implementiert ist, und eine Timing-Steuereinrichtung 280 zum Steuern des gefensterten Sinc-Filters 210 umfassen. In der illustrierten Ausführungsform umfasst das gefensterte Sinc-Filter 210 einen Schalter 212, der durch einen „gültig“-Signalausgang von der Timing-Steuereinrichtung 280 gesteuert wird. Wenn das Umabtastungsfilter eine neue Eingangsabtastung benötigt, wird der Schalter 212 durch das gültig-Signal vorübergehend geschlossen.
-
In der geschlossenen Position verbindet der Schalter 212 das Eingangssignal x[n] mit einer Verzögerungsleitungsstruktur, die aus einer Reihe von Registern 214, 216, 218 besteht, und auch mit einem ersten Multiplizierer 220. Jedes Register 214, 216, 218 kann zu den Daten, die es eingibt, eine einmalige Timing-Abtastverzögerung hinzufügen. Es sollte anerkannt werden, dass die Länge des Filters (also auch der Verzögerungsleitung, der Multiplizierer, der Addierer usw.) beliebig groß sein kann, wie durch die Auslassungszeichen in den Figuren angegeben. Der Ausgang des Registers 214 wird in das Register 216 eingegeben. Der Ausgang des Registers 216 wird in das Register 218 eingegeben. Außerdem wird der Ausgang jedes Registers 214, 216, 218 als ein Eingang für einen jeweils damit verbundenen Multiplizierer 222, 224, 226 verwendet. Die Multiplizierer 220, 222, 224, 226 empfangen jeweils ein weiteres Eingangssignal, gezeigt als Koeffizienten c0[m], c1[m], c2[m], c2k-1[m] (weiter unten genauer erläutert). Die Ausgänge der Multiplizierer 220, 222, 224, 226 werden mit Hilfe einer Reihe von Addierern 228, 230, 232 zusammengezählt. In der illustrierten Ausführungsform ist der Ausgang des Addierers 232 das umabgetastete Wellenform-Ausgangssignal y[m].
-
Weitere Logikelemente in dem gefensterten Sinc-Filter 210 können zusätzliche Multiplizierer 234, 238, 242, 246 und Addierer 236, 240, 244, 248 sowie Speicher 250, 252, 254, 256, 258, 260, 262, 264 umfassen. In einer oder mehreren Ausführungsformen verwenden die Multiplizierer 234, 238, 242, 246 das Zeitrestsignal („Zeit_Rest“), das von der Timing-Steuereinrichtung 280 ausgegeben wird, als einen ihrer Eingänge.
-
In einer oder mehreren Ausführungsformen sind die Speicher 250, 252, 254, 256, 258, 260, 262, 264 Nur-Lese-Speicher (ROM). In einer oder mehreren Ausführungsformen können die Speicher 250, 252, 254, 256, 258, 260, 262, 264 innerhalb der Kernelwerte vorberechnete Filterkernelwerte (kernel[addr]), die für jeden Nulldurchgang zusammen mit dem Differenzwert (kernel_diff[addr] = kernel[addr+1] - kernel[addr]) gespeichert werden, umfassen. In der illustrierten Ausführungsform können die Speicher 250, 254, 258, 262 jeweils die Differenzwerte kernel_diff0[addr], kernel_diff1[addr], kernel_diff2[addr], kernel_diff2k-1[addr] speichern, während die Speicher 252, 256, 260, 264 jeweils die Kernelwerte kernel0[addr], kernel1[addr], kernel2[addr], kernel2k-1[addr] speichern können.
-
In der illustrierten Ausführungsform werden die Speicher 250, 252, 254, 256, 258, 260, 262, 264 durch das „Adresse“-Signal, das von der Timing-Steuereinrichtung 280 ausgegeben wird, indiziert. In einer oder mehreren Ausführungsformen werden die Ausgänge der Speicher 250, 254, 258, 262 (z. B. die Differenzwerte kernel_diff0[addr], kernel_diff1[addr], kernel_diff2[addr], kernel_diff2k-1[addr]) von den Multiplizierern 234, 238, 242, 246 jeweils als Eingänge verwendet. In einer oder mehreren Ausführungsformen werden die Ausgänge der Speicher 252, 256, 260, 264 (z. B. die Kernelwerte kernel0[addr], kernel1[addr], kernel2[addr], kernel2k-1[addr]) von den Addierern 236, 240, 244, 248 als Eingänge verwendet.
-
In einer oder mehreren Ausführungsformen kann der Koeffizient c0[m] mittels linearer Interpolation durch das Addieren des Ausgangs des Multiplizierers 234 (z. B. Zeit_Rest * kernel_diff0[addr]) zu dem Ausgang des Speichers 252 (z. B. kernel0[addr]) am Addierer 236 generiert werden, kann der Koeffizient c01[m] durch das Addieren des Ausgangs des Multiplizierers 238 (z. B. Zeit_Rest * kernel_diff1[addr]) zu dem Ausgang des Speichers 256 (z. B. kernel1[addr]) am Addierer 240 generiert werden, kann der Koeffizient c2[m] durch das Addieren des Ausgangs des Multiplizierers 242 (z. B. Zeit_Rest * kernel_diff2[addr]) zu dem Ausgang des Speichers 260 (z. B. kernel2[addr]) am Addierer 244 generiert werden und kann der Koeffizient c2k-1[m] durch das Addieren des Ausgangs des Multiplizierers 246 (z. B. Zeit_Rest * kernel_diff2k-1[addr]) zu dem Ausgang des Speichers 264 (z. B. kernel2k-1[addr]) am Addierer 248 generiert werden.
-
In einer oder mehreren Ausführungsformen kann das gefensterte Sinc-Filter 210 durch die Timing-Steuereinrichtung 280 gesteuert werden, die die (oben diskutierten) Signale „gültig“, „Adresse“ und „Zeit_Rest“ anhand eines Zählers produziert, der die aktuelle Abtastzeit darstellt. Wie in 5 gezeigt, umfasst ein Beispiel der Timing-Steuereinrichtung 280 (hierin auch als Timing-Steuerung oder Timing-Zustandsmaschine bezeichnet) einen Zähler 282, einen Splitter 284 und ein Register 286.
-
In einer oder mehreren Ausführungsformen kann der Zähler 282 als ein Fehlerrückkopplungsmodulator (d. h. modulo-2w) implementiert sein, der einen ersten Eingang (x) zum Empfangen einer ganzen Zahl N und einen zweiten Eingang (y) zum Empfangen eines Rückkopplungssignals von dem Register 286 aufweist. In einer Ausführungsform kann der Zähler 282 um den Wert der ganzen Zahl N inkrementiert werden, die in einer oder mehreren Ausführungsformen der nächsten ganzen Zahl entsprechen kann, die durch das Umabtastungsverhältnis p ausgedrückt wird (d. h. N = p*2w). In einer oder mehreren Ausführungsformen kann das Übertragsbit (c) des Zählers 282 als das „gültig“-Signal verwendet werden, da es die Überschreitung des Zeitwerts und die Übernahme einer neuen Abtastung in das gefensterte Sinc-Filter 210 angibt. In einer Ausführungsform werden in den Speichern 250, 252, 254, 256, 258, 260, 262, 264 (4) innerhalb der Kernelwerte 2M vorberechnete Filterkernelwerte für jeden Nulldurchgang zusammen mit dem Differenzwert gemäß Folgendem gespeichert: kernel_diff[addr] = kernel[addr+1] - kernel[addr], wobei addr = [0:2M-1]
-
In einer oder mehreren Ausführungsformen enthält der Splitter 284 eine Logik, um den Ausgang des Zählers 282 (x+y) in das oben diskutierte „Adresse“-Signal und das oben diskutierte „Zeit-Rest“-Signal aufzusplitten. In einer Ausführungsform bilden die M höchstwertigen Bits von dem Ausgang des Zählers 282 (x+y) beispielsweise die „Adresse“, die für jeden Nulldurchgang als ein Index für die Kernelspeicher 250, 252, 254, 256, 258, 260, 262, 264 (4) verwendet wird. In einer Ausführungsform bilden die W-M niedrigstwertigen Bits von dem Ausgang des Zählers 282 (x+y) das „Zeit_Rest“-Signal und stellen den Rest des idealen Kernelzeitwerts und des gespeicherten Kernelwerts so dar, dass Zeit_Rest für die Ausgangsabtastung m bei einer Umabtastrate p durch m*p - floor(m*p) gegeben ist. Wie oben angemerkt, werden die Koeffizienten cg[m] für den Zeitwert unter Verwendung einer linearen Interpolation gebildet: cg[m] = Zeit_Rest*kernel_diffg[addr] + kernelg[addr], wobei g = [0:2k-1].
-
Die zuvor erwähnte Logik 200 kann eine beliebige Menge an Interpolationsgenauigkeit mit einer ausreichend großen Zeitzähler-Registerbreite, W, erzielen. Jedoch kann der tatsächliche Interpolationsratenfehler für Raten, die nicht genau als ein Verhältnis von N/2w ausgedrückt werden können, nicht gleich Null gemacht werden. Bei vielen Anwendungen kann dies unproblematisch sein, da die Länge der Wellenform klein genug sein kann, dass Fehler der Interpolationsrate im Sub-Hertz-Bereich nicht ins Gewicht fallen. Bei Signalen, die über maßgebliche Zeitperioden hinweg beobachtet werden, kann sich der Interpolationsratenfehler jedoch summieren, was zu zunehmenden Fehlern bei der Zeitgenauigkeit führt. Deshalb kann die Logik 200 verbessert werden, um die offenbarten Prinzipien weiterzuentwickeln.
-
Der Erfinder hat festgestellt, dass zusätzliche Genauigkeit erzielt werden kann, indem in der Timing-Steuerlogik ein Doppel-Modulo-Zähler verwendet wird. Ein Doppel-Modulo-Zähler kann beispielsweise so implementiert werden, dass p = T'/T = f
ein/ f
aus, sodass die Eingänge N, A und B in die Timing-Steuereinrichtung unter Verwendung der folgenden Gleichungen berechnet werden können:
wobei:
- fein die Basisband-Abtastrate der Zielwellenform ist,
- faus die Abtastrate des Geräts 100 (z. B. 250 MHz) ist und
- W eine Konstante (z. B. 32) ist.
-
Effektiv wird der Zeitzähler bei B-A-Zyklen um N inkrementiert und zählt dann mit N+1 für A-Zyklen, was einen durchschnittlichen Inkrementwert von N + A/B ergeben kann. Ein potentieller Nachteil bei diesem Ansatz besteht darin, dass bei Vielfachen von A/B von der Ausgangsfrequenz ein Frequenzinhalt mit Alias erscheinen kann. Deshalb kann der Doppel-Modulo-Vorgang des Zeitzählers in einer oder mehreren Ausführungsformen einem „Dithering“ unterzogen werden, um den Störinhalt aufzubrechen und über die Frequenz zu verteilen.
-
Demgemäß kann die Logik des FPGA 116 in einer oder mehreren Ausführungsformen einen digitalen Delta-Sigma-Modulator zur mehrstufigen Rauschformung (MASH DDSM) 310, wie in 6 gezeigt, benutzen, um gemäß den offenbarten Prinzipien den Störinhalt aufzubrechen und über die Frequenz zu verteilen. Der MASH DDSM 310 ist in einer neuartigen Timing-Zustandsmaschine oder Timing-Steuerlogik 300 enthalten, die die Signale „gültig“, „Adresse“ und „Zeit_Rest“ ausgibt, die verwendet werden können, um das gefensterte Sinc-Filter 210 zu steuern (4).
-
In der illustrierten Ausführungsform umfasst der MASH DDSM 310 eine Vielzahl von Fehlerrückkopplungsmodulatoren (EFM, Error Feedback Modulators) 320, 330, 340, die mit einem Rauschformungsnetzwerk 350 verbunden sind. In der illustrierten Ausführungsform weist der erste EFM 320 einen Modulo-B-Akkumulator 322 und ein Register 324 auf. Der Modulo-B-Akkumulator 322 weist einen Eingang (x), der verbunden ist, um das A-Signal zu empfangen, und einen zweiten Eingang (y), der verbunden ist, um ein Rückkopplungssignal w1[n] von dem Register 324 zu empfangen, auf. Das Register 324 gibt e1[n] von dem Ausgang des Modulo-B-Akkumulators 322 (x+y) ein und fügt ein Rückkopplungssignal w1[n] mit einer Verzögerung von einer Abtastung hinzu.
-
In der illustrierten Ausführungsform weist der zweite EFM 330 einen Modulo-B-Akkumulator 332 und ein Register 334 auf. Der Modulo-B-Akkumulator 332 weist einen Eingang (x), der verbunden ist, um e1[n] von dem Ausgang des Modulo-B-Akkumulators 322 (x+y) zu empfangen, und einen zweiten Eingang (y), der verbunden ist, um ein Rückkopplungssignal w2[n] von dem Register 334 zu empfangen, auf. Das Register 334 gibt e2[n] von dem Ausgang des Modulo-B-Akkumulators 332 (x+y) ein und fügt ein Rückkopplungssignal w2[n] mit einer Verzögerung von einer Abtastung hinzu.
-
In der illustrierten Ausführungsform weist der dritte EFM 340 einen Modulo-B-Akkumulator 342 und ein Register 344 auf. Der Modulo-B-Akkumulator 342 weist einen Eingang (x), der verbunden ist, um e2[n] von dem Ausgang des Modulo-B-Akkumulators 332 (x+y) zu empfangen, und einen zweiten Eingang (y), der verbunden ist, um ein Rückkopplungssignal w3[n] von dem Register 344 zu empfangen, auf. Das Register 344 gibt e3[n] von dem Ausgang des Modulo-B-Akkumulators 342 (x+y) ein und fügt ein Rückkopplungssignal w3[n] mit einer Verzögerung von einer Abtastung hinzu.
-
Die Übertragsbits y1[n], y2[n], y3[n], die aus dem Übertragsbit(c)-Abschnitt der EFM 320, 330, 340 ausgegeben werden, werden an das Rauschformungsnetzwerk 350 ausgegeben. In der illustrierten Ausführungsform beinhaltet das Rauschformungsnetzwerk 350 zwei Addierer 352, 356 und zwei Register 354, 358. Der erste Addierer 352 kann das Übertragsbit y1[n] von dem ersten EFM 320 eingeben und der zweite Addierer 356 kann das Übertragsbit y2[n] von dem zweiten EFM 330 eingeben und das zweite Register 358 kann das Übertragsbit y3[n] von dem dritten EFM 340 eingeben.
-
Der Ausgang des zweiten Registers 358, der ein verzögertes Übertragsbit y3[n] ist, wird an dem Addierer 356 zu dem Übertragsbit y2[n] von dem zweiten EFM 330 und dem Übertragsbit y3[n] von dem dritten EFM 330 addiert. Der Ausgang des Addierers 356 wird durch das Register 354 eingegeben. Der Ausgang des Registers 354, der eine verzögerte Summierung von dem Addierer 356 ist, wird an dem Addierer 352 zu dem Übertragsbit y1[n] von dem ersten EFM 320 und der Summierung von dem Addierer 356 addiert. Der Ausgang des Addierers 352 ist das A/B-Signal, welches einen Momentanwert aufweist, der gemäß der Ordnung des MASH DDSM variiert, dessen Durchschnittswert über die Zeit jedoch dem Verhältnis A/B entspricht und von dem Addierer 302 als ein Eingang verwendet wird. Der Ausgang des Addierers 302, der N + A/B sein kann, wird als ein Eingang (x) des Akkumulators 282 der Timing-Steuereinrichtung 280 verwendet.
-
Allgemein ist jeder Fehlerrückkopplungsmodulator 320, 330, 340 ein Delta-Sigma-Modulator und verwendet eine Rückkopplungsschleife, die die Differenz zwischen seinem Eingangssignal und dem vorherigen quantisierten Ausgang (Delta) berechnet, gefolgt von einem diskreten Integrator/Akkumulator (Sigma). Die Implementierung jedes EFM 1. Ordnung ist ein Modulo-B-Akkumulator, wobei die Fehlerrückkopplung der Modulo ist, der sich aus einem Überlauf ergibt. Die Funktionstheorie der EFM 320, 330, 340 kann anhand der beispielhaften schematischen Darstellungen 420, 520 verstanden werden, die jeweils in den 7 und 8 gezeigt sind.
-
Beispielsweise illustriert
7 ein EFM-Modell erster Ordnung
420, das zwei Addierer
422,
426, ein Rückkopplungs-/Verzögerungsregister
424 und die Verarbeitungsblöcke
428,
430 beinhaltet. Der Eingang x[n] wird an dem Addierer
422 zu einem Rückkopplungssignal w[n] addiert. Der Ausgang v[n] des Addierers
422 wird in den Block
428 eingegeben, dessen Ausgang y[n] der Ausgang des EFM
420 ist. Der Ausgang y[n] wird in den Block
430 eingespeist, dessen Ausgang durch einen negativen Anschluss des Addierers
426 eingegeben wird. Der Addierer
426 gibt auch den Ausgang v[n] von dem Addierer
422 ein, um einen Ausgang e[n] zu erzeugen, der in das Register
424 eingespeist wird, welches das Rückkopplungssignal w[n] an den Addierer
422 ausgibt. Die folgenden Variablen können während des Prozesses berechnet werden:
-
8 illustriert ein linearisiertes EFM-Modell erster Ordnung
520, das drei Addierer
522,
526,
532, ein Rückkopplungs-/Verzögerungsregister
524 und die Verarbeitungsblöcke
528,
530 beinhaltet. Der Eingang x[n] wird an dem Addierer
522 zu einem Rückkopplungssignal w[n] addiert. Der Ausgang v[n] des Addierers
522 wird in den Block
528 eingegeben, dessen Ausgang in den Addierer
532 eingespeist wird. Der andere Eingang des Addierers
532 empfängt das Quantisierungsrauschen e
c[n]. Der Ausgangsaddierer
532 ist der Ausgang y[n] des EFM
520. Der Ausgang y[n] wird in den Block
530 eingespeist, dessen Ausgang durch einen negativen Anschluss des Addierers
526 eingegeben wird. Der Addierer
526 gibt auch den Ausgang v[n] von dem Addierer
522 ein, um einen Ausgang e[n] zu erzeugen, der in das Register
524 eingespeist wird, welches das Rückkopplungssignal w[n] an den Addierer
522 ausgibt. In dem linearisierten Modell wird der nichtlineare Modulo-Operator, Q(·), des EFM
520 als Quantisierungsrauschen, e
q[n], absorbiert. Der durchschnittliche Ausgang des Übertragssignals, y[n], ist der Wert x[n]/B. Die folgenden Variablen können während des Prozesses berechnet werden:
-
Unter erneuter Bezugnahme auf 6 sind die Fehlerrückkopplungsmodulatoren 320, 330, 340 des MASH DDSM 310 kaskadiert, wobei die Ausgänge in das Rauschformungsnetzwerk 350 eingespeist werden. Das Rauschformungsnetzwerk 350 besteht aus kaskadierten Differentiatoren, die eine Transferfunktion mit einer Hochpassantwort besitzen. Die Differentiatoren heben das Quantisierungsrauschen des vorherigen EFM perfekt auf. Das Rauschen wird durch die Hochpassantwort des Differentiatornetzwerks geformt, was dazu führt, dass die Spektraldichte des Rauschens bei 0 Hz minimiert wird und zu der Nyquist-Frequenz hin zunimmt. Dieses Ergebnis wird durch den in 9 gezeigten Graphen angezeigt.
-
Die Funktionstheorie eines MASH DDSM kann erläutert werden, indem zunächst die Operation des Fehlerrückkopplungsmodulators (EFM) 1. Ordnung
420, der in
7 gezeigt ist, analysiert wird. Der EFM 1. Ordnung besteht aus einem digitalen Akkumulator mit Modulo B, Eingang x[n], Registerzustand w[n] und Ausgang y[n] (dem Übertragsbit des Akkumulators). Gemäß
7 wird der Zustand des EFM
420 wie folgt ausgedrückt:
-
Der Ausgang des EFM
420 wird wie folgt ausgedrückt:
-
Der nichtlineare Modulo-Operator Q(·)
428 des Modulo-B-Akkumulators kann durch die folgende Annäherung linearisiert werden:
wobei e
q[n] eine Quantisierung mit einer gleichmäßigen Spektraldichte ist. Die schematische Darstellung des linearisierten EFM-Modells 1. Ordnung
520 ist in
8 gegeben. Das Fehlersignal e[n] wird dann ausgedrückt durch:
folglich erweist sich der Ausgang y[n] des EFM
520 als:
welcher das folgende z-Transformations-Äquivalent aufweist:
-
Ein Netzwerk eines MASH DDSM
310 besteht aus mehreren kaskadierten EFM
420. Das Akkumulator-Ausgangssignal, e[n], jedes EFM wird in den nachfolgenden EFM eingespeist. Das Übertrags-Ausgangssignal, y[n], jedes EFM wird in ein Rauschformungsnetzwerk eingespeist. Die Kaskade aus drei EFM 1. Ordnung mit dem Rauschformungsnetzwerk (MASH 1-1-1 DDSM
310) ist in
10 illustriert. Das Rauschformungsnetzwerk besteht aus einer Kaskade aus digitalen Differentiatoren. Die Differentiatoren aus
10 heben das Rauschen des mittleren EFM-Fehlersignals, e
1[n], auf und formen das Quantisierungsrauschen des letzten EFM gemäß einer Hochpassantwort:
-
Die Funktionstheorie des 1-1-1 MASH DDSM 310 kann durch die schematische Darstellung in 10 erläutert werden. Der MASH DDSM 310 kann beispielsweise ein 1-1-1 MASH DDSM sein und kann drei EFM 1. Ordnung 320, 330, 340 umfassen, deren jeweilige Ausgänge y1[n], y2[n], y3[n] in das Rauschformungsnetzwerk 350 eingespeist werden. Der nichtlineare Modulo-Operator, Q(), der Modulo-B-Akkumulatoren kann als Quantisierungsrauschen mit einer gleichmäßigen Spektraldichte angenommen werden. Das Quantisierungsrauschen e1[n] von dem ersten EFM 320 wird in den zweiten EFM 330 eingegeben, dessen Quantisierungsrauschen e2[n] in den dritten EFM 340 eingegeben wird. Das Register 358 gibt den Ausgang y3[n] ein und verzögert ihn um eine Abtastung, bevor er an den Addierer 356 ausgegeben wird. Der Addierer 356 gibt auch den ursprünglichen Ausgang y3[n] ein. Der Ausgang des Addierers 356 (y2[n] + y3[n] + verzögerter y3[n]) wird in das Register 354 eingegeben, welches ihn um eine Zeitabtastung verzögert und das verzögerte Ergebnis an den Addierer 352 ausgibt. Der Addierer 352 addiert den Ausgang y1[n] von dem EFM 320, den ursprünglichen Ausgang von dem Addierer 356 und den verzögerten Ausgang von dem Addierer 356 (über das Register 354), um den Ausgang y[n] zu bilden.
-
In einer oder mehreren Ausführungsformen werden durch das Einschließen des MASH DDSM 310 in die ganzzahlige Komponente des Zeitzählers Beschränkungen für eine perfekte Rateninterpolation für die Raten, die als ein Verhältnis des Zählermodulo ausgedrückt werden können, überwunden. Beliebiges potentielles MASH DDSM-Rauschen wird zu der Nyquist-Frequenz herausgedrängt und durch die Tiefpassantwort des Filters natürlich gedämpft. Außerdem stellt der MASH DDSM ein geformtes Dither-Rauschen bereit, das die Störgenerierung in der Filterantwort als Ergebnis einer Koeffizientenquantisierung verbessert. Der Modulo (B) des MASH DDSM gemäß den offenbarten Prinzipien kann auf einen beliebigen Wert bis zu der maximalen MASH-Akkumulatorzählerbreite programmiert werden, was die erzielbaren Interpolationsraten weiter ausbaut.
-
Es sollte anerkannt werden, dass die MASH DDSM-Implementierung nur ein Ansatz für das Hinzufügen von geformtem Rauschen zum Zwecke einer zeitvarianten Filterung ist. Geformtes Rauschen wird typischerweise durch eine Delta-Sigma-Modulation verwirklicht, wobei die MASH-Implementierung eine, jedoch nicht exklusive, Möglichkeit zur Generierung der Folge ist. In anderen Ausführungsformen können andere Verfahren zum absichtlichen Hinzufügen von Rauschen zu einer Filterimplementierung, welches sich auf einem niedrigen Pegel befindet und geformt ist, um durch den Filterungsvorgang selber ausgesondert zu werden, verwendet werden, um die Umabtastung und die Verarbeitung der Signaldaten zu verbessern.
-
Es sollte anerkannt werden, dass die Anwendungen für die oben beschriebenen Ansätze weit gefächert sind und über die oben beschriebenen Geräte hinaus auch eine digitale Audio-, Bild- oder Videoumabtastung und andere digitale Signalanwendungen umfassen.
-
Obwohl die Offenbarung in den Zeichnungen und in der vorausgehenden Beschreibung detailliert illustriert und beschrieben wurde, ist eine solche Illustration und Beschreibung als beispielhaft und vom Charakter her nicht beschränkend zu betrachten, wobei es sich versteht, dass nur illustrative Ausführungsformen gezeigt und beschrieben wurden und dass alle Veränderungen und Modifikationen, die in dem Geist der Offenbarung liegen, geschützt werden sollen.
-
Es gibt eine Vielzahl von Vorteilen der vorliegenden Offenbarung, die sich aus den verschiedenen Merkmalen des hierin beschriebenen Verfahrens, Apparats und Systems ergeben. Es sei angemerkt, dass alternative Ausführungsformen des Verfahrens, Apparats und Systems der vorliegenden Offenbarung nicht alle der beschriebenen Merkmalen enthalten können, aber trotzdem von mindestens einigen der Vorteile solcher Merkmale profitieren können. Fachleute werden leicht in der Lage sein, ihre eigenen Implementierungen des Verfahrens, Apparats und Systems zu ersinnen, die ein oder mehrere der Merkmale der vorliegenden Erfindung einbeziehen und in dem Geist und Umfang der vorliegenden Offenbarung, wie sie durch die angehängten Ansprüche definiert wird, enthalten sind.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-