DE69815986T2 - FIR-Filter für programmierbare Dezimation - Google Patents

FIR-Filter für programmierbare Dezimation Download PDF

Info

Publication number
DE69815986T2
DE69815986T2 DE69815986T DE69815986T DE69815986T2 DE 69815986 T2 DE69815986 T2 DE 69815986T2 DE 69815986 T DE69815986 T DE 69815986T DE 69815986 T DE69815986 T DE 69815986T DE 69815986 T2 DE69815986 T2 DE 69815986T2
Authority
DE
Germany
Prior art keywords
input
output
valid
clock
decimation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69815986T
Other languages
English (en)
Other versions
DE69815986D1 (de
Inventor
R. Slavin Beaverton Keith
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tektronix Inc
Original Assignee
Tektronix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tektronix Inc filed Critical Tektronix Inc
Publication of DE69815986D1 publication Critical patent/DE69815986D1/de
Application granted granted Critical
Publication of DE69815986T2 publication Critical patent/DE69815986T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0621Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
    • H03H17/0635Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies
    • H03H17/065Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer
    • H03H17/0664Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer where the output-delivery frequency is lower than the input sampling frequency, i.e. decimation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Description

  • STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft Filter mit begrenzten Ansprechen auf einen Impuls (FIR-Filter), und im Besonderen betrifft die vorliegende Erfindung einen FIR-Filter für eine programmierbare Dezimation durch Zweierpotenzen.
  • Ein Filter für eine Dezimation durch zwei weist die folgenden idealen Kenndaten auf:
    Figure 00010001
  • In der Praxis weist ein Parks-McClellan Equi-Ripple-Algorithmus unter Verwendung des Remez-Austauschalgorithmus in Verbindung mit der Theorie von Tschebyscheff in dem Übergangsbereich der Gleichung (2) ein ruhiges und monotones Ansprechverhalten auf. Bei diesem Ansprechverhalten kann jede zweite Ausgabe des Filters ohne Aliasing-Probleme verworfen werden, und das Übergangsband wird zu dem verworfenen Band für jede folgende Dezimationsstufe, was eine Kaskadierung möglicht macht. Somit kann eine Dezimation durch 2m mit m in Reihe geschalteten Filterstufen durchgeführt werden. Ein derart direkter Ansatz für eine Dezimation durch 2m mit großem m führt zu einem großen Hardwareaufwand. Ferner weisen spätere Dezimationsstufen eine geringere strukturelle Nutzung auf, die als Operationen je Glied je Taktereignis definiert ist.
  • Gewünscht wird ein FIR-Filter für eine programmierbare Dezimation durch Zweierpotenzen, wobei der erforderliche Hardwareaufwand reduziert wird, während die Operationen je Glied je Taktereignis maximiert werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß der vorliegenden Erfindung somit ein FIR-Filter zur programmierbare Dezimation durch Zweierpotenzen unter Verwendung von Kontextregistern, wobei die Ausgabe von dem Filter zurück zu dem Eingang geführt wird. Ein Eingangssignal wird mit der halben Eingangstaktfrequenz abgetastet und progressiv dezimiert, wobei jedes Dezimationsergebnis in einem separaten Register in jedem Kontextregister gespeichert wird. Ein Ausgangs-Kontextregister speichert das Ergebnis für jede Dezimationsstufe durch zwei, und die gewünschte Dezimationsausgabe wird gemäß einem ausgesuchten Ausgangssignal zur Ausgabe ausgewählt. Eine Kaskade von Taktschaltungen sieht entsprechende Taktsignale für den FIR-Filter vor, wobei je eine Taktschaltung für jede Dezimationsstufe gemäß der Anzahl der einzelnen Register in jedem Kontextregister vorgesehen ist. Auf diese Weise steht jede Dezimation zur Ausgabe zur Verfügung und mehrere Geräte können auf den FIR-Filter zugreifen, um für das gleiche Eingangssignal verschiedene Dezimationsfaktoren zu erhalten.
  • Die Aufgaben, Vorteile und neuartigen Merkmale der vorliegenden Erfindung werden aus der folgenden genauen Beschreibung in Verbindung mit den anhängigen Ansprüchen und den beigefügten Zeichnungen deutlich.
  • BESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNG
  • Es zeigen:
  • 1 eine Tabellenansicht, welche die Taklung für einen FIR-Filter für eine programmierbare Dezimation durch Zweierpotenzen gemäß der vorliegenden Erfindung veranschaulicht;
  • 2 eine Blockdiagrammansicht eines FIR-Filters für eine programmierbare Dezimation durch Zweierpotenzen gemäß der vorliegenden Erfindung;
  • 3 eine Blockdiagrammansicht einer repräsentativen Taktschaltung für den FIR-Filter aus 2; und
  • 4 eine Blockdiagrammansicht eines repräsentativen Kontextregisters zur Verwendung in dem FIR-Filter aus 2.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Die folgenden Grundsätze bilden die Basis für den Entwurf des FIR-Filters für die programmierbare Dezimation durch Zweierpotenzen:
    • 1. Die Datenrate in einen Filter und aus einem Filter kann geringer sein als der Systemtakt, indem gültige Eingangs- und Ausgangssignale verwendet werden, die die Zustandsänderungen der Register in dem Design regeln. Derartige Zustandsänderungen können mit synchronen Eingangsfreigabesignalen implementiert werden, die vollständig synchrone Designs ermöglichen.
    • 2. Für einen dezimierenden Filter entspricht die Ausgangsdatenrate der Hälfte der Eingangsrate.
    • 3. Für jede endliche Integerzahl m ist die geometrische Summe bekannt: Σi=1→m(1/2i) = 1 (1/2m) < 1 (4)
    • 4. Der aktuelle und der neue Zustand jedes auf Register ausgerichteten Hardwaresystems ist nur von dem Zustand der Register und Eingänge abhängig, analog zu "Kontexten" in Software.
  • Wenn der FIR-Filter gemäß dessen Entwurf eine anfängliche Eingangsfrequenz von fs/2 empfängt, wobei fs die Taktfrequenz darstellt, so ist die Ausgangsfrequenz gleich fs/4, welche die Eingangsfrequenz für den nächsten Filter darstellt, usw. Aus der obigen Gleichung ergibt sich die Summe der Eingangsfrequenzen fs/2 + fs/4 + fs/8..., für m derartige Filter als weniger als fs, so dass die gesamte Bandbreite aller Eingänge bzw. Eingaben in alle m Filter in die Taktfrequenz fs für jede Anzahl von Dezimationsstufen m passt.
  • Jedes Register in einem Filterentwurf wird mit einer m-Registerdatei für m Filterkontexte ersetzt, und die Steuerung des Filtereingangs erfolgt entweder über den externen Eingangsstrom mit fs/2 oder weniger oder über den Ausgang des Filters in dem vorherigen Kontext, und zwar in beiden Fällen in Verbindung mit den gültigen Daten von der entsprechenden Quelle oder dem Kontext, so dass nur der erste Dezimationskontext Daten von dem Filtersystemeingang empfängt. Ein derartiger Filter dezimiert um jeden Faktor bis zu 2m durch einfache Kennzeichnung, welcher gültige Ausgangskontext von dem Filtersystem ausgesendet wird. Ein derartiges Design dezimiert tatsächlich um jede Zweierpotenz bis zu 2m gleichzeitig, indem separate gültige Signale erzeugt werden, welche die erforderlichen Daten für jedes System markieren, das den Filterausgangsstrom empfängt.
  • Dieser Ansatz in Bezug auf die Hardware wirtschaftlicher als die Kaskadierung dezimierender Filter, da nur die Register m-fach dupliziert werden und nicht die Logik zwischen diesen, welche Multiplizierer und Addierglieder aufweist. Dies für zu einer Hardwareeinsparung etwa einer Zweierpotenz. Die Einschränkung bei der Verwendung willkürlich großer Werte von m ist das Ausmaß des für m Kontexte erforderlichen Registerspeichers. Ein weiterer Vorteil ist es, dass die Veränderung der Dezimationsfaktoren lediglich eine Angelegenheit der Erzeugung entsprechender gültiger Signale ist, so dass die Filterkoeffizienten feststehend sein können, wie etwa unter Verwendung von Verschiebungs-Additions-Strukturen, wodurch noch wirtschaftlichere Designs ermöglicht werden.
  • Der Trick liegt in der Steuerung der Taktung eines derartigen Systems. Zum konzeptionellen Verständnis wird ein rekursives Argument verwendet, wobei das Filtern au der Perspektive des p-ten Dezimationskontexts angenommen wird, 0 ≤ p ≤ m. An Stelle eines einzelnen gültigen Signals sind zwei Steuersignale zwischen jeder Stufe definiert, so dass:
    CLK_EN[p] den "Taktkontext" markiert, in dem die p-te Stufe arbeitet, d. h. andere Taktflankenereignisse in diesem kleinen Universum nicht existieren
    VALID[p] die Eingangsdaten als gültig markiert.
  • Die Tabelle aus 1 veranschaulicht eine Steuerfolge, wobei jede Spalte in Zeitintervallen von 2p Taktperioden abgetastet wird, d. h. bei jedem Takt für p = 0. "!" bezeichnet eine logische Inversion und "toggle[p]" ist ein Register für den Kontext p, dessen Zustand sich wie folgt ändert:
    wenn CLK_EN[p] dann
    toggle [p] ← !toggle[p].
  • Aus der Tabelle aus 1 sind die abgeleiteten Ausgaben mit den Eingaben identisch, wenn die Spalten bei CLK_EN[p + 1] gleich Null ignoriert werden, so dass das neue Muster mit dem alten identisch ist, wobei die freigegebenen Taktereignisse jedoch jetzt an Stelle durch 2p für die Eingaben bzw. Eingänge durch 2p+1 Takte getrennt sind. Wenn für die erste Stufe p = 0 CLK_EN[0] für alle Takte wahr ist und VALID[0] mit einer Frequenz von fs/2 freigegeben wird, und wenn die wahre Taktsteuerung für p impliziert, dass sie auch für p + 1 wahr ist, solange p < m ist, so arbeitet das gesamte System induktiv.
  • Damit der "Kontextwechsel" funktioniert, treten alle Zustandsänderungen für einen gegebenen Kontext p auf, wenn VALID[p] = 1. Wenn ansonsten zusätzliche Zustandsänderungen auftreten, sind Zeitkonflikte für unterschiedliche Kontextzugriffe auf den Registerzustand gegeben. Ferner erscheint die entsprechende VALID[p + 1] Signalausgabe zu einem Zeitpunkt, der nicht mit VALID[p] zusammenfällt, was ein vorhandenes Ausgaberegister OUT[p] voraussetzt, dessen Eingangsstufe sich nur ändert, wenn VALID[p] = 1, und das den Ausgang für den Kontext darstellt, wenn VALID[p + 1] = 1. Die Voraussetzung wird mit einer Registerdatei erfüllt, die eine separate Registerschreib-Leseauswahl bei jeder gegebenen Taktdauer aufweist. Alle anderen Kontextregister in dem FIR-Filter teilen sich eine gemeinsame Schreib-Lese-Adressauswahl teilen.
  • Die FIR-Faltungsoperation Vt = Σi=0→(n–1)hixt–i (5)entspricht für einen n-Anzapfungs-FIR-Filter mit einer abgetasteten Eingangsfolge xt als eine Funktion der Zeit und n-Filterkoeffizienten {hi}, 0 ≤ i < n. Diese Summe kann in zwei Summen geteilt werden, und zwar eine für die geraden Werte von i und die andere für die verbleibenden ungeraden Werte Vt = Σj=O→((n+1)/2–1)h2jxt–2j + Σk=0→(n/2–1)h2kxt–2k–1 (6)wobei die erste Summe über j einer Änderung der Variable i = 2j entspricht, und wobei die zweite Summe über k einer Änderung der Variable i = 2k + 1 entspricht. Für eine Dezimation durch zwei werden die Ausgaben Vt für ein ungerades t oder ein gerades t verworfen. Eine Änderung der Variable, so dass t = 2T für ganzzahlige T erzeugt die Ausgabe für eine gerade Zeit t wie folgt: V2T = Σj=0→((n+1)/2–1)h2jx2(T–j) + Σk=0→(n/2–1)h2k+1x2(T–k)–1 (7)wobei die erste Summe eine Faltungsoperation der geraden Zeitreihe in {x} darstellt, (übereinstimmend mit der Ausgabe V2T) mit den geraden Indexkoeffizienten von {h}, und wobei die zweite Summe eine Faltungsoperation der ungeraden Zeitreihe in {x} mit den ungeraden Indexkoeffizienten von {h} darstellt. Somit muss der erste Filter seinen Zustand nur bei einer geraden Zeit ändern, wobei der zweite Filter seinen Zustand bei einer ungeraden Zeit ändert. Jeder FIR-Filter weist etwa die Hälfte der Koeffizienten der ursprünglichen Faltungsoperation auf (bei ungeradem n ist die Länge des ersten Filters um eines größer als die Länge des zweiten Filters).
  • Zur Pipeline-Implementierung dieser Filter an Stelle der vorstehenden direkten Implementierung unter Verwendung einer Induktion oder z-Transformationen für einen n-Anzapfungs-Filter, definieren die folgenden Relationen eine Struktur mit einer Übertragungsfunktion, die der obigen Basisgleichung für die FIR-Faltungsoperation entspricht: Vt = R[t,n – 2] + h0x[t] (8) R[t,j] ← R[t – 1,i – 1] + hn–1–ix[t–1] (9) R[t,j] = 0 für i < 0 (10)wobei "←" eine Registerzuweisung bezeichnet, und wobei R[t,i] den i-ten Registerinhalt zum Zeitpunkt t darstellt. Das Hinzufügen eines zusätzlichen Pipeline-Registers zu dem Ausgang erzeugt: OUTt ← Vt–1 (11)so dass OUTt = R[t,n – 1] (12)wenn n1 = floor((n + 1)/2) (13) n2 = floor(n/2) (14)wobei "floor" eine Funktion darstellt, die den ganzzahligen Teil des Ergebnisses zurückführt;
    wobei aus den Gleichungen 8, 9 und 10 folgt: OUT2T = R[2T,n1 – 1] + R[2T – 1,n2 – 1] (15)wobei für t = 2T, T eine Integerzahl ist; R[2T,j] ← R[2(T – 1),j – 1] + hn–1–2jx[2(T–1)] (16) R[2T – 1,k] ← R[2(T – 1) – 1,k – 1] + hn–2kx[2(T – 1) – 1] (17)
  • Diese Gleichungen beschreiben separate transversale Pipeline-Filter, wobei jetzt 2T Verzögerungen zwischen benachbarten Anzapfungen gegeben sind, und wobei der Zustand jeder Rekursion nur entsprechend von ungeraden und geraden t Termen abhängig ist. Die Verzögerungen können durch ein einzelnes Register für jeden Kontext p implementiert werden, jeweils an alternierenden VALID[p] Eingängen, so dass bei t = 0 toggle[p] = 0, die Taktfreigaben für den p-ten Kontext wie folgt gegeben sind:
    clk_enable_A[p] = VALID[p] & toggle[p] (18)
    clk_enable_B[p] = VALID[p] & !toggle[p] (19)
    wobei die Terme auf der rechten Seite in Bezug auf die Tabelle aus 1 beschrieben werden.
  • Somit ändern sich jetzt die Terme in 2T und 2T – 1 in den obigen Gleichungen bei alternierenden VALID[p] = 1 Ereignissen aufgrund des Terms toggle[p], und der rechte Terms für OUT2T ist eine Zeitperiode t hinter dem linken Term, d. h. er weist einen Zeitindex auf, der um eins kleiner ist als 2T, so dass der rechte Term um eine weitere Registerverzögerung verzögert wird, die bei clk_enable_A[p] freigegeben wird, ebenso wie für den linken Term R[2T,n1 – 1], so dass sich folgendes Ergebnis ergibt: Z[2T] ← R[2T – 1,n2 – 1] (20)so dass: OUT2T = R[2T,n1 – 1] + Z [2T] (21)
  • Durch Substitution in die obige Gleichung in den links hinzugefügten Term und Bewegen der Addition vor die letzten mit der Freigabe zusammenfallenden Register R[2T,n1 – 1] und Z[2T] folgt: OUT2T ← ([2(T – 1),n1 – 2] + h0x[2(T – 1)]) + R[2T – 1,n2 – 1] (22)wobei die Klammer die Additionsrangfolge bezeichnet, die in den Gleichungen implizit definiert ist. Für eine schnellere Pipeline-Verarbeitung wird ein kurzer Pfad von h0x[2(T – 1)] zu OUT2T durch folgende Umstellung erreicht: OUT2T ← (R[2(T – 1),n1 – 2] + R[2T – 1,n2 – 1]) + h0x[2(T – 1)] (23)
  • Die Abbildung aus 2 zeigt ein Diagramm einer finalen FIR-Filterstruktur mit vier Anzapfungen auf der Basis der obengenannten Gleichungen. Ein Eingangssignal INPUT[0] wird einem Eingang eines 2 : 1-Multiplexers zugeführt, wobei die Ausgabe des Multiplexers in eine Mehrzahl von Multiplizierern 14 eingegeben wird. Jeder Multiplizierer 14 multipliziert die ausgewählte Ausgabe des Multiplexers 12 mit einem entsprechenden Filterkoeffizienten h0, h1,...h3. Die Ausgaben der ungeraden Multiplizierer 141 und 143 werden durch ein erstes Addierglied 16 verknüpft, nachdem die Ausgabe von dem Multiplizierer 143 durch ein erstes Kontextregister 18 verzögert worden ist. Die Ausgabe des ersten Addierglieds 16 wird durch ein zweites Kontextregister 20 verzögert. Die ersten und zweiten Kontextregister 18, 20 werden durch ein Signal CLK_ENABLE_B[p] freigegeben. Die Ausgabe des zweiten Kontextregisters 20 sieht den Term R[2T – 1,n2 – 1] der Gleichung 23 vor.
  • Die durch ein drittes Kontextregister 22 verzögerte Ausgabe des Multiplizierers 142 sieht den Term R[2(T – 1),n1 – 2] der Gleichung 23 vor, der durch ein zweites Addierglied 24 zu der Ausgabe des zweiten Kontextregisters 20 addiert wird. Schließlich wird der Term h0x[2(T – 1)] der Gleichung 23 durch die Ausgabe des Multiplizierers 140 vorgesehen, der wiederum durch ein drittes Addieralied 26 zu der Ausgabe des zweiten Addierglieds 24 addiert wird. Die Ausgabe des dritten Addierglieds 26 wird in ein Ausgabe-Kontextregister 28 eingegeben, das separate Eingabe- und Ausgabe-Freigabe-Ports aufweist. Ein Signal CLK_ENABLE_A[p] gibt das dritte Kontextregister 22 und den Eingabe-Freigabe-Port des Ausgabe-Kontextregiaters 28 frei. Bei der Ausgabe aus dem Ausgabe-Kontextregister 28 handelt es sich um das Ausgangssignal OUT2T aus Gleichung 23. Die Auswahl der jeweiligen Dezimationsausgabe aus dem Ausgabe-Kontextregister 28 wird durch einen Multiplexer 27 bestimmt, der eine der Zeilen VALID[p + 1] zum Auslesen des gewünschten Kontexts aus dem Kontextregister gemäß einem gewünschten Dezimationsfaktor 2p auswählt. Die Programmierbarkeit kann auch auf andere Art und Weise erreicht werden, wie dies für den Fachmann offensichtlich ist.
  • Die anderen Eingaben in den FIR-Filter sind für die Taktung erforderlich, das heißt VALID[p] und CLK_EN[p]. Die Taktschaltungen 28 sind in einer Kaskadenanordnung vorgesehen, mit je einer Taktschaltung für jeden der m Kontexte. Das in die erste Taktschaltung 290 eingegebene Signal VALID[0] sieht das Auswahlsignal an den Multiplexer 12 zur Auswahl der Eingabe INPUT[0] vor. Ansonsten wird das Ausgangssignal OUT2T über den Multiplexer 12 für eine weitere Division durch zwei Iteration zurückgeführt. Für eine gegebene Taktschaltung 29p gemäß der Abbildung aus 3 wird ein toggle[p] Register 30 durch das Signal VALID[p] freigegeben und so konfiguriert, dass es für jeden Impuls VALID[p] den Zustand ändert. Die Eingabe in das toggle[p] Register 30 und das Signal VALID[p] werden durch ein erstes UND-Glied 32 verknüpft, so dass das Signal CLK_ENABLE_B[p] mit der halben Frequenz des Signals VALID[p] auftritt. Die Ausgabe des toggle[p] Registers 30, die die entgegengesetzte Phase der Eingabe aufweist, wird durch ein zweites UND-Glied 34 mit dem Signal VALID[p] verknüpft, so dass das Signal CLK_ENABLE_A[p] erzeugt wird. Das Signal VALID[p] wird durch eine Inverterschaltung 36 invertiert und danach durch ein drittes UND-Glied 38 mit dem Signal CLK_EN[p] verknüpft, so dass ein Signal CLK_EN[p + 1] als Ausgabe an die nächste Taktschaltung 29p+1 erzeugt wird. Das Signal CLK_EN[p + 1] wird durch ein viertes UND-Glied 40 mit der Ausgabe des toggle[p] Registers 30 verknüpft, um als Ausgabe ein Signal VALID[p + 1] zu erzeugen. Das Signal VALID[p + 1] und das Signal CLK_ENABLE_A[p] sind phasenungleich, und das Signal VALID[p + 1] wird dem Ausgabe-Freigabe-Fort des Ausgabe-Kontextregisters 28 zugeführt, so dass das Register Daten speichert und Daten an eine nicht störende Basis überträgt. Das Signal VALID[p + 1] wird auch in die nächste Taktschaltung 29p+1 eingegeben.
  • Jedes Kontextregister 18, 20, 22, 28 weist m interne Register 42 auf, mit je einem für jeden Kontext. Jedes der Bussignale ENABLE[p] bildet eine Adresse, die nur eines der Register 42 gleichzeitig zum Speichern von Daten freigibt. Die Ausgaben der Register 42 werden in entsprechende UND-Glieder 44 eingegeben, die für die Kontextregister 18, 20, 22 ebenfalls durch das Bussignal ENABLE[p] freigegeben werden. Die Ausgaben des UND-Glieds 44 werden in ein ODER-Glied 46 eingegeben, das die Ausgabe des ausgewählten Registers 42 für das Kontextregister 18, 20, 22 vorsieht. Für das Ausgabe-Kontextregister 28 werden die UND-Glieder 44 durch den Bus VALID[p + 1] freigegeben, wie dies durch die gestrichelte Linie dargestellt ist, so dass die Daten störungsfrei gespeichert und ausgelesen werden. Durch entsprechende Auswahl des gewünschten Kontexts oder p-Wertes für OUT2T wird die gewünschte Ausgabe einer Dezimalion durch zwei vorgesehen. Da alle Ergebnisse einer Dezimalion durch eine Zweierpotenz zu jedem Zeitpunkt in dem Ausgabe-Kontextregister 28 verfügbar sind, kann von verschiedenen Endverbrauchern auf die gleiche FIR-Filterausgabe zugegriffen werden, um jede gewünschte Dezimalion durch Zweierpotenzen bis zu 1/2m zu erreichen.
  • Vorgesehen ist gemäß der vorliegenden Erfindung somit ein FIR-Filter für eine programmierbare Dezimation durch. Zweierpotenzen, der Kontextregister und nur eine Anordnung von Multiplizierern und Addiergliedern mit kaskadierten Taktschaltungen verwendet, deren Ausgabe zu dem Eingang zurückgeführt wird, um gleichzeitig alle Ergebnisse einer Dezimation durch Zweierpotenzen bis zu 1/2m zu erzeugen, aus denen ein gewünschtes Dezimationsergebnis programmierbar ausgewählt werden kann.

Claims (4)

  1. Vorrichtung für eine programmierbare Dezimation mit Zweierpotenzen, wobei die Vorrichtung folgendes umfasst: einen Dezimations-FIR-Filter mit einem Eingang zum Empfang eines Eingangssignals, das um Zweierpotenzen dezimiert werden soll, und mit einem Ausgang, wobei der Ausgang zurück zu dem Eingang geführt wird, und wobei der Dezimations-FIR-Filter Kontextregister (18, 20, 22) aufweist, so dass ein zum Vorsehen des Ausgangs gekoppeltes Ausgangs-Kontextregister (28) gleichzeitig alle Ergebnisse einer Dezimation durch zwei bis zu 1/2m aufweist, wobei m gleich der Anzahl der Kontexte für jedes Kontextregister ist; und eine Einrichtung zur Taktung des Dezimations-FIR-Filters für jede Dezimation einer Zweierpotenz, die als Eingabe ein anfängliches Taktsignal und ein anfängliches gültiges Signal auf der halben Frequenz des anfänglichen Taktsignals aufweist, und die als Ausgabe Taktsignale an den Dezimations-FIR-Filter vorsieht, wobei die Kontextregister selektiv freigegeben werden, wobei ein gewünschtes Dezimationsergebnis zur Ausgabe durch Auswahl eines geeigneten Ausgangs-Dezimationsfaktors 2p bestimmt wird, mit 0 ≤ p ≤ m.
  2. Vorrichtung nach Anspruch 1, wobei der Dezimations-FIR-Filter folgendes umfasst: einen n-Anzapfungs-FIR-Filter, der erstens die Kontextregister verwendet, wobei die ungeraden Anzapfungen summiert werden, um ein ungerades dezimiertes Ergebnis vorzusehen, und zweitens die Kontextregister, wobei die geraden Anzapfungen summiert werden, um ein gerades dezimiertes Ergebnis vorzusehen; eine Einrichtung zum Summmieren (24, 26) der ungeraden und geraden dezimierten Ergebnisse, um die Ausgabe über die Ausgangs-Kontextregister vorzusehen; und eine Einrichtung zur Auswahl (12) zur Kopplung mit dem Eingang des n-Anzapfungs-FIR-Filters entweder des Eingangssignals oder der Ausgabe aus dem Ausgangs-Kontextregister als Reaktion auf als anfängliches gültige Signal.
  3. Vorrichtung nach Anspruch 2, wobei die Takteinrichtung eine Mehrzahl von Taktschaltungen (29) aufweist, die in Kaskade geschaltet sind, wobei jede Schaltung einen Taktfreigabeeingang und einen gültigen Eingang aufweist, wobei jeder gültige Eingang die halbe Frequenz des Taktfreigabeeingangs aufweist, und mit einem Taktfreigabeausgang mit der halben Frequenz des Taktfreigabeeingangs und einem gültigen Ausgang mit der halben Frequenz des gültigen Eingangs, wobei der Taktfreigabeausgang und der gültige Ausgang entsprechende Taktfreigabe- und gültige Eingänge in die nächste Taktschaltung der Kaskade darstellen, wobei die Taktschaltung ein Paar phasenungleicher Freigabesignale (M) für die Kontextregister vorsieht, wobei eines der Freigabesignale für die Kontextregister für die ungeraden dezimierten Ergebnisse verwendet wird, während das andere Freigabesignal für die Kontextregister für die geraden dezimierten Ergebnisse verwendet wird, wobei es sich bei den Freigabesignalen und den gültigen Ausgängen um Taktsignale handelt.
  4. Vorrichtung nach Anspruch 3, wobei jede Taktschaltung folgendes umfasst: ein Wechselregister (30), das einen Eingang und ein Paar von Ausgängen mit entgegengesetzter Polarität (Q, Q) aufweist, wobei einer der Ausgänge mit dem Eingang gekoppelt ist, wobei die Ausgänge den Zustand für jede Zustandsänderung des gültigen Eingangs ändern; eine Einrichtung zum Erzeugen (32) eines der Freigabesignale aus dem gültigen Eingang und dem Eingang des Wechselregisters und zum Erzeugen (36) des anderen Freigabesignals aus dem gültigen Eingang und dem Ausgang des nicht mit dem Eingang gekoppelten Wechselregisters; und eine Einrichtung zum Erzeugen (40) des gültigen Ausgangs und (38) des Taktfreigabeausgangs als eine Funktion des gültigen Eingangs, des Taktfreigabeeingangs und des nicht mit dem Eingang gekoppelten Ausgangs des Wechselregisters.
DE69815986T 1997-09-16 1998-09-15 FIR-Filter für programmierbare Dezimation Expired - Lifetime DE69815986T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US931408 1997-09-16
US08/931,408 US5910908A (en) 1997-09-16 1997-09-16 Fir filter for programmable decimation

Publications (2)

Publication Number Publication Date
DE69815986D1 DE69815986D1 (de) 2003-08-07
DE69815986T2 true DE69815986T2 (de) 2004-06-03

Family

ID=25460742

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69815986T Expired - Lifetime DE69815986T2 (de) 1997-09-16 1998-09-15 FIR-Filter für programmierbare Dezimation

Country Status (3)

Country Link
US (1) US5910908A (de)
EP (1) EP0909028B1 (de)
DE (1) DE69815986T2 (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556044B2 (en) * 2001-09-18 2003-04-29 Altera Corporation Programmable logic device including multipliers and configurations thereof to reduce resource utilization
US6260053B1 (en) * 1998-12-09 2001-07-10 Cirrus Logic, Inc. Efficient and scalable FIR filter architecture for decimation
US6427158B1 (en) 2000-12-14 2002-07-30 Texas Instruments Incorporated FIR decimation filter and method
GB2384376A (en) 2002-01-22 2003-07-23 Zarlink Semiconductor Inc Flexible decimator
KR20050084992A (ko) * 2002-11-06 2005-08-29 디지비전, 인크. 다차원들에서 화상 강조를 위한 시스템들 및 방법들
US8107760B2 (en) * 2003-11-06 2012-01-31 Z Microsystems Visualization Technologies, Llc Systems and methods for image enhancement in multiple dimensions
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
EP1775833A1 (de) * 2005-10-12 2007-04-18 Infineon Technologies AG Digitales Filter und Verfahren zum Entwurf digitaler Filter mittels Integrations- und Löschfilter
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US10050606B2 (en) * 2014-12-17 2018-08-14 Stmicroelectronics International N.V. Decimation FIR filters and methods
US10050607B2 (en) * 2014-12-17 2018-08-14 Stmicroelectronics International N.V. Polyphase decimation FIR filters and methods
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0377418A (ja) * 1989-08-18 1991-04-03 Mitsubishi Electric Corp ディジタルフィルタ
US5157395A (en) * 1991-03-04 1992-10-20 Crystal Semiconductor Corporation Variable decimation architecture for a delta-sigma analog-to-digital converter
JP2823751B2 (ja) * 1992-09-16 1998-11-11 株式会社ケンウッド サンプリング周波数変換装置
US5717617A (en) * 1993-04-16 1998-02-10 Harris Corporation Rate change filter and method
US5548540A (en) * 1994-06-24 1996-08-20 General Electric Company Decimation filter having a selectable decimation ratio
US5751615A (en) * 1995-11-14 1998-05-12 Advanced Micro Devices, Inc. Implementation of a digital decimation filter and method

Also Published As

Publication number Publication date
EP0909028A3 (de) 2000-11-08
DE69815986D1 (de) 2003-08-07
EP0909028A2 (de) 1999-04-14
EP0909028B1 (de) 2003-07-02
US5910908A (en) 1999-06-08

Similar Documents

Publication Publication Date Title
DE69815986T2 (de) FIR-Filter für programmierbare Dezimation
DE3851053T2 (de) Fir digitale filteranordnung.
DE68927120T2 (de) Interpolator und Verfahren zur Interpolierung von digitalen Signalmustern
DE69426680T2 (de) Rekonfigurierbare, programmierbare digitale Filterarchitektur
DE69619615T2 (de) Verfahren zur digitalen Breitbandfilterung und Filter zur Durchführung des Verfahrens
DE69123365T2 (de) Verfahren zur reduzierung des leistungsverbrauchs einer digitalen filterbank durch verringern der anzahl der multiplikationen
EP0491422B1 (de) Schaltungsanordnung zur Taktumsetzung eines digitalen Signals
DE2616660B2 (de) Arithmetische Einheit
DE68926154T2 (de) Pipelineprozessor zur Durchführung des LMS Algorithmus
EP0215810B1 (de) Schaltungsanordnung zur mittelwertbildung
DE2422583B2 (de)
EP0889587B1 (de) Einrichtung zur Reduktion der Datenrate
DE69623871T2 (de) Hardwareeffizientes Interpolationsfilter
DE69320218T2 (de) Digitales Filter
DE3602585C2 (de)
EP0305708B1 (de) Digitales Dezimierungsfilter
DE3788779T2 (de) Digitales, nicht-rekursives Filter mit Multiplizierkoeffizienten der Basis zwei.
DE69226816T2 (de) Verarbeitungssystem zur Geisterbildauslöschung eines Videosignales
DE69230924T2 (de) Multiplizierer-Schaltungen mit seriellem Eingang
EP1176717A1 (de) Programmierbare Filterachitektur
EP0860051B1 (de) Schaltungsanordnung und verfahren zur mehrfachnutzung eines digitalen transversalfilters
DE69223166T2 (de) Eingangs-gewichtetes Transversalfilter
DE2011772B2 (de) Filter mit einer periodischen frequenzcharakteristik
DE19741427C2 (de) Linearer Interpolator zur Interpolation eines abgetasteten Signals und lineares Interpolationsverfahren
DE19925464C2 (de) Verfahren und Schaltungsanordnung zur Abtastratenanpassung digitaler Signale

Legal Events

Date Code Title Description
8364 No opposition during term of opposition