DE69426231T2 - Komplexes adaptives fir-filter - Google Patents
Komplexes adaptives fir-filterInfo
- Publication number
- DE69426231T2 DE69426231T2 DE69426231T DE69426231T DE69426231T2 DE 69426231 T2 DE69426231 T2 DE 69426231T2 DE 69426231 T DE69426231 T DE 69426231T DE 69426231 T DE69426231 T DE 69426231T DE 69426231 T2 DE69426231 T2 DE 69426231T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- filter
- imaginary
- real
- coefficient
- 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 - Fee Related
Links
- 230000003044 adaptive effect Effects 0.000 title claims description 71
- 238000000034 method Methods 0.000 claims description 24
- 238000009825 accumulation Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 8
- 238000005070 sampling Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000035508 accumulation Effects 0.000 description 11
- 238000001914 filtration Methods 0.000 description 11
- 239000013598 vector Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000001934 delay Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 101150018444 sub2 gene Proteins 0.000 description 2
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H21/00—Adaptive networks
- H03H21/0012—Digital adaptive filters
Landscapes
- Filters That Use Time-Delay Elements (AREA)
- Complex Calculations (AREA)
Description
- Die Erfindung betrifft ein Filter mit endlicher Impulsantwort (FIR-Filter), das komplexe digitale Signale so filtert, daß Realteil und Imaginärteil eines komplexen digitalen Signals separat in gesonderten parallelen Datenpfaden gefiltert werden. Das Filter ist adaptiv, da es eine Schaltung enthält, die die im Filterungsprozeß als komplexe Gewichte verwendeten Multiplikanden aktualisiert und in das Filter lädt, ohne den Filterungsprozeß zu unterbrechen oder zu beenden. Die Erfindung betrifft weiterhin ein Verfahren zum Verarbeiten von komplexen digitalen Daten.
- Es existieren zahlreiche elektrische und elektronische Vorrichtungen, die für die Verarbeitung von abgetasteten Daten von Mikroprozessoren Gebrauch machen. Die typischen Datenoperationen des Mikroprozessors, die benötigt werden, umfassen die Multiplikation, die Addition, die Subtraktion die logische UND- und ODER-Verknüpfung und Kombinationen dieser Operationen in Wiederholung, um z. B. zu multiplizieren und zu dividieren. Obwohl Mikroprozessoren bei Anwendungen, bei denen die Geschwindigkeit und der Umfang der Datenhandhabung nicht kritisch sind, sehr nützlich sind, sind sie für viele datenintensive Anwendungen nicht geeignet. In Radar- und Sonarsystemen, medizinischen Bilderzeugungssystemen und Spracherkennungssystemen z. B. müssen üblicherweise sehr große Datenmengen mit hoher Geschwindigkeit verarbeitet werden. Bei einem typischen Mikroprozessor kann eine einzige Multiplizier-Akkumulier- Operation 25 Taktzyklen dauern. Um die Verarbeitungsgeschwindigkeit zu erhöhen, enthalten viele dieser Systeme jetzt digitale Signalprozessoren (DSP), das sind Mikroprozessoren, deren Architekturen für die Verarbeitung der abgetasteten Daten mit hohen Datenraten optimiert sind. Die Architektur eines DSP ist so aufgebaut, daß sie die Wiederholungsnatur der Signalverarbeitung ausnutzten. So kann ein DSP, der einen schnellen Array-Multiplizierer und -Akkumulator besitzt, die einzelne Multiplizier-Akkumulier-Operation in einem einzigen Taktzyklus ausführen.
- DSP-Chips können als anwendungsspezifische Vorrichtungen eingesetzt werden, die eine Funktion genauer, schneller und kosteneffizienter ausführen können. So erfordert z. B. eine wachsende Zahl von digitalen Filter- und Fourier-Transformations-Anwendungen DSP-Chips. Ein spezieller Typ von digitalen Filtern, nämlich ein Filter mit endlicher Impulsantwort ("FIR"-Filter), d. h. ein Filter das durch eine Impulsantwort endlicher Länge charakterisiert ist, eignet sich in idealer Weise für eine exakte lineare (oder nahezu lineare) Phasenantwort. Es eignet sich ideal für die Benutzung in Systemen, bei denen es überaus wichtig ist, daß die Phase die Form des Ausgangssignals des FIR-Filters allenfalls durch eine Zeitverzögerung beeinträchtigt. In Radarsystemen mit Phased-Array-Antennen z. B. benötigt man digitale FIR-Filter für die Verarbeitung von komplexen digitalen Signalen, d. h. von Signalen, die reale und imaginäre Komponenten haben. Üblicherweise arbeitet das Filter so, daß durch Fehlabgleich der Antenne oder durch Störflecke hervorgerufenes Rauschen beseitigt wird. Wenn komplexe digitale Signale gefiltert werden, werden der Realteil und der Imaginärteil des digitalen Signals und ihre zeitverzögerten Versionen jeweils mit einem komplexen Gewicht multipliziert, und die Ergebnisse werden dann summiert. Um die Filterungsfunktion durchzuführen, müssen sowohl der Realteil als auch der Imaginärteil des Gewichts und der Negativwert des Imaginärteils des Gewichts als Multiplikanden (Koeffizienten) zur Verfügung stehen. Die meisten digitalen Filter lassen sich problemlos mit DSP-Chips realisieren, die Elemente zum Multiplizieren der Koeffizienten, Addierer oder Summiervorrichtungen und Verzögerungselemente (Speichervorrichtungen) enthalten. Das Filter wird als "adaptiv" betrachtet, wenn die Koeffizienten variabel sind und von einem Host-Prozessor aktualisiert werden, der einen Aktualisierungs-Algorithmus implementiert.
- Derzeit sind integrierte Schaltungschips verfügbar, die zum Filtern von digitalen Signalen verwendet werden. Der INMOS-Signalverarbeitungschip IMSA100 ist z. B. in der Lage, bis zu 32 parallele Multiplikationen und Additionen (oder Subtraktionen) auszuführen, was ihn als FIR-Filter geeignet macht. Dieses spezielle DSP-Filter wurde für die Verwendung in einem Mikroprozessorsystem entwickelt, so daß die Koeffizienten über einen Eingangs-Port in eine oder zwei Registerbänke oder alternativ in ein externes ROM oder RAM geladen werden können. Wenn reale Daten gefiltert werden, wird eine Speicherbank zur Lieferung der Koeffizienten für das Filter benutzt. Für die adaptive Filterung wird eine Speicherbank benutzt, während die andere Speicherbank mit neuen Koeffizienten aktualisiert wird. Für eine komplexe adaptive Filterung wird jedoch die Zweibank-Architektur jedoch selbst bei geringen Datenraten unbrauchbar. Dies liegt daran, daß beide Koeffizientenbänke für die Erzeugung des Filterausgangssignals benötigt werden, d. h. eine Bank erzeugt den Realteil und die andere den Imaginärteil des Ausgangssignals. Für die Aktualisierung der Koeffizienten muß der Filterungsprozeß angehalten werden, während die neuen Daten geladen werden. Üblicherweise ist die für das Laden neuer Koeffizienten erforderliche Zeit lang im Vergleich zur Datenrate der meisten existierenden Prozessoren. So können die meisten existierenden Prozessoren komplexe Verarbeitung nur mit der halben Datenrate ausführen.
- Um exzessive Verzögerungen bei der Aktualisierung der Koeffizienten zu umgehen, wurden alternative Konfigurationen implementiert, bei denen die Koeffizienten zirkular aus einem externen Speicher abgerufen werden. Mit Hilfe einer geeigneten Steuerschaltung kann eine Speicherbank die Koeffizienten an das Filter liefern, während die andere Speicherbank aktualisiert wird. Diese Anordnung vereinfacht das Aktualisierungsproblem, es nutzt die Geometrie des komplexen Filters jedoch nicht voll aus und erfordert einen erheblichen Aufwand an externer Steuerschaltung.
- Um die adaptive Filterung richtig durchzuführen, muß zusätzlich ein Fehlersignal, das als Summe aus dem Filterausgangssignal und einem "Sollwert"-Eingangssignal berechnet wird, als Ausgangsgröße an den Host-Prozessor ausgegeben werden, um die aktualisierten Gewichtskoeffizienten zu berechnen. Derzeitige DSP-Prozessoren sehen diese Möglichkeit nicht vor, so daß üblicherweise eine externe Addierschaltung für die Berechnung des Fehlers zur Aktualisierung der Gewichte erforderlich ist. Der Zwang, einen externen Addierer und die entsprechende Steuerschaltung vorzusehen, beeinträchtigt die Filterleistung und benötigt wertvollen Platz auf der Schaltungskarte.
- Bei den meisten verfügbaren FIR-Filterchips muß auch das Fließkommaergebnis, das aus dem Host-Prozessor kommt, fixiert und abgeschnitten werden. Dies liegt daran, daß die interne Verarbeitung keine Fließkommaverarbeitung ist. Eine der Folgen hiervon ist, daß der üblicherweise für die adaptive Verarbeitung erforderliche Dynamikbereich nicht beibehalten wird.
- Wegen der vorangehend beschriebenen Einschränkungen der gegenwärtigen Generation von adaptiven FIR-Filtern besteht Bedarf an einem komplexen adaptiven FIR-Filter, das komplexe digitale Signale schneller und effizienter verarbeiten kann, wenn das zu verarbeitende Signal aus komplexen digitalen Daten besteht und wenn die Anforderungen an die Verarbeitungsgeschwindigkeit oder Datenrate den Einsatz kommerziell erhältlicher FIR-Filterchips aus funktionellen Gründen verbieten.
- Die Erfindung hat sich deshalb das Ziel gesetzt, ein komplexes adaptives FIR-Filter zu schaffen, dessen innere Verarbeitungsarchitektur zwei parallele Datenpfade aufweist, von denen der eine den realen Datenstrom eines komplexen Signals und der andere den imaginären Datenstrom filtert, wobei die Architektur die für die erforderlichen Berechnungen verfügbare Zeit maximal ausnutzt.
- Es ist weiteres Ziel, ein komplexes adaptives FIR-Filter zur Verfügung zu stellen, das eine komplexe adaptive digitale Filterung ermöglicht, ohne daß der Filterungsprozeß unterbrochen oder angehalten werden muß, wenn die Gewichtskoeffizienten aktualisiert werden.
- Es ist ein weiteres Ziel der Erfindung, ein komplexes adaptives FIR-Filter zur Verfügung zu stellen, das einen Eingang für die Aufnahme eines "Sollwert"-Eingangssignals aufweist und ein Addierelement, das die Erzeugung eines Fehlersignals für eine effizientere Implementierung des adaptiven Filters ermöglicht.
- Ein weiteres Ziel der Erfindung besteht darin, ein komplexes adaptives FIR-Filter zur Verfügung zu stellen, das Fließkommaverarbeitung ermöglicht, um den für die adaptive Verarbeitung erforderlichen Dynamikbereich beizubehalten.
- Es ist ein weiteres Ziel, ein komplexes adaptives FIR-Filter zur Verfügung zu stellen, das als eigenständige Vorrichtung aufgebaut ist und keine externe Schaltung als Schnittstelle zu einem Host-Prozessor benötigt.
- Ein weiteres Ziel der Erfindung besteht darin, ein komplexes adaptives FIR-Filter zur Verfügung zu stellen, das in Kaskade angeordnet werden kann, um die Schaffung längerer Filter zu ermöglichen, mit denen längere Koeffizientensätze auf den Datenstrom angewendet werden können.
- Ein weiteres Ziel der vorliegenden Erfindung besteht darin, ein komplexes adaptives FIR-Filter zur Verfügung zu stellen, das einen eindeutigen und effizienten Weg zur Aktualisierung der Gewichtskoeffizienten vorsieht, ohne daß Hardwareunterstützung in signifikantem Umfang benötigt wird.
- Die vorliegende Erfindung ist auf ein komplexes Filter mit endlicher Impulsantwort (FIR-Filter) mit adaptiven Gewichten gerichtet sowie auf ein Verfahren zur Verarbeitung von komplexen digitalen Daten mit realen und imaginären Eingangsdaten, wie in Anspruch 1 bzw. 10 angegeben. Nach einem ersten Ausführungsbeispiel der Erfindung umfaßt das Filter einen ersten Datenpfad zur Verarbeitung des Realteils der Eingangsdaten der komplexen Eingangsdaten. Der erste Datenpfad enthält eine erste Mehrzahl von adaptiven Gewichtsschaltungen zum Multiplizieren der realen Eingangsdaten mit vorbestimmten Koeffizienten, um einen Satz von Multiplikationsergebnissen zu generieren. Ein zweiter Datenpfad dient zur Verarbeitung des Imaginärteils der komplexen Eingangsdaten. Der zweite Datenpfad enthält eine zweite Mehrzahl von adaptiven Gewichtsschaltungen zum Multiplizieren der imaginären Eingangsdaten mit vorbestimmten Koeffizienten, um einen Satz von Multiplikationsergebnissen zu generieren. Das Filter besitzt ferner eine Steuerschaltung, die die realen Eingangsdaten während eines ersten Zeitintervalls und danach während aufeinanderfolgender erster Zeitintervalle simultan an die erste Mehrzahl von adaptiven Gewichtsschaltungen liefert und die imaginären Eingangsdaten während eines zweiten Zeitintervalls und danach während aufeinanderfolgender zweiter Zeitintervalle simultan an die zweite Mehrzahl von adaptiven Gewichtsschaltungen liefert. Eine erste Mehrzahl von Akkumulatorschaltungen verbindet eine erste Untermenge der ersten Mehrzahl von adaptiven Gewichtsschaltungen und eine erste Untermenge der zweiten Mehrzahl von adaptiven Gewichtsschaltungen miteinander, um einen ersten Satz von Multiplikationsergebnissen aus diesen zu akkumulieren und den Realteil der Ausgangsdaten des Filters zu bilden. Eine 1-Taktzyklus-Verzögerungsschaltung, die in dem ersten Datenpfad angeordnet ist, verzögert die Multiplikation der realen Eingangsdaten mit einer zweiten Untermenge der ersten Mehrzahl von adaptiven Gewichtsschaltungen um ein Zeitintervall, und eine 1-Taktzyklus- Verzögerungsschaltung, die in dem zweiten Datenpfad angeordnet ist, verzögert die Multiplikation der imaginären Eingangsdaten mit einer zweiten Untermenge der zweiten Mehrzahl von adaptiven Gewichtsschaltungen.
- Die erste und die zweite Verzögerungsschaltung gewährleisten eine passende Zeitmuitiplexverschachtelung des Imaginärteils der Ausgangsdaten des Filters. Eine zweite Mehrzahl von Akkumuiatorschaltungen verbinden die zweite Untermenge aus der ersten Mehrzahl von adaptiven Gewichtsschaltungen und die zweite Untermenge der zweite Mehrzahl von adaptiven Gewichtsschaltungen miteinander, um einen zweiten Satz von Multiplikationsergebnissen zu akkumulieren und den Imaginärteil der Ausgangsdaten des Filters zu bilden. Die Real- und Imaginärteile der Ausgangsdaten werden an dem Ausgang des Filters einer Multiplexverschachtelung unterzogen, um die komplexen Ausgangssignale zu bilden.
- Die Koeffizientendatenwerte der adaptiven Gewichtsschaltungen werden in zwei Speicherbänken gespeichert und stehen für den Zugriff durch das Filter oder den Host-Prozessor zur Verfügung. Diese Werte können auch in alternativen oder Wechselspeicherbänken gespeichert werden, so daß dann, wenn das Filter auf Daten der Speicherbank zugreift, Daten bei Anforderung des Host-Prozessors in die alternative Speicherbank eingeschrieben werden können und umgekehrt. Die kontinuierliche Filterfunktion wird durch eine Koeffizientenauslagerungsschaltung gesichert, die während zweiter Zeitintervalle den Zugriff nur auf die aktualisierten vorbestimmten Koeffizientenwerte der ersten Untermenge der ersten Mehrzahl und die zweite Untermenge der zweiten Mehrzahl von adaptiven Gewichten erlaubt. Ebenso erlaubt die Koeffizientenauslagerungsschaltung während der ersten Zeitintervalle nur Zugriff auf die vorbestimmten Koeffizientenwerte der ersten Untermenge der zweiten Mehrzahl und der zweiten Untermenge der ersten Mehrzahl von adaptiven Gewichten.
- Weitere nützliche Merkmale und Vorteile der Erfindung werden aus der Betrachtung der folgenden detaillierten Beschreibung deutlich, die auf die anliegenden Zeichnungen Bezug nimmt, in denen bevorzugte Ausführungsbeispiele der Erfindung dargestellt sind.
- Fig. 1 zeigt ein Blockdiagramm eines Systems mit dem adaptiven FIR-Filter gemäß der Erfindung,
- Fig. 2 zeigt ein verallgemeinertes Blockschaltbild des adaptiven Filters mit zwei Sätzen von parallelen Pfaden, nämlich einem Satz zur Verarbeitung des realen Datenteils des Eingangssignals und dem anderen Satz zur Verarbeitung des imaginären Datenteils des Eingangssignals,
- Fig. 3 zeigt eine typische Anwendung für ein adaptives Filter, die mit Hilfe des Filters gemäß der Erfindung realisiert werden kann,
- Fig. 4 zeigt ein Zeitdiagramm für die Eingangssignale und die internen Steuersequenzen des komplexen adaptiven FIR-Filters,
- Fig. 5 zeigt die Blockdiagrammdarstellung des Filters, wenn dieses als Filter mit drei komplexen Gewichten aufgebaut ist,
- Fig. 6a zeigt eine Tabelle der Berechnungsergebnisse, die bei der Verarbeitung des realen Datenteils eines komplexen digitalen Eingangssignals des Filters von Fig. 5 gewonnen werden,
- Fig. 6b zeigt eine Tabelle der Berechnungsergebnisse, die bei der Verarbeitung des imaginären Datenteils eines komplexen digitalen Eingangssignals des Filters von Fig. 5 gewonnen werden,
- Fig. 7a zeigt ein Zeitdiagramm der Signale, die während der Aktualisierung der Gewichtskoeffizienten (d. h. der Gewichtsauslagerung) benutzt werden, wenn dieser Prozeß in dem adaptiven Filter gemäß der Erfindung implementiert ist,
- Fig. 7b zeigt die logische Wahrheitstabelle und die entsprechende Legende, aus der die Signalzustände in der Gewichtsauslagerungsschaltung hervorgehen, die für die Gewichtsauslagerungsfunktion erforderlich ist,
- Fig. 7c zeigt die digitale logische Schaltung zur Implementierung des Befehls zur Gewichtsauslagerung,
- Fig. 8 zeigt ein verallgemeinertes Blockdiagramm der Schaltung, die festlegt, in welcher Speicherbank eingeschrieben wird und welche Speicherbank die aktualisierten Koeffizienten empfängt,
- Fig. 9 zeigt ein Übersichtsdiagramm, in dem die Eingangs-/Ausgangsanschlüsse des komplexen adaptiven FIR-Filters gemäß der Erfindung zusammengefaßt sind.
- Die Erfindung betrifft ein Filter mit endlicher Impulsantwort und ein Verfahren zur Verarbeitung von komplexen Daten. Das Filter besitzt zwei parallele Datenpfade, von denen der eine den realen Datenstrom und ein zweiter den imaginären Datenstrom filtert. Das Filter verarbeitet komplexe digitale Signale, indem es die Signale und zeitverzögerte Versionen der Signale jeweils mit einem komplexen Gewicht multipliziert und die Ergebnisse dieser Multiplikationen summiert. Da das Filter zwei parallele Datenpfade benutzt, müssen sowohl der Realteil als auch der Imaginärteil des komplexen Gewichts sowie der Negativwert des Imaginärteils des Gewichts als Multiplikanden verfügbar sein, die im folgenden als Koeffizienten bezeichnet werden. Die Koeffizienten sind variabel. Deshalb kann das Filter als adaptives Filter arbeiten, wenn es mit einem Host-Prozessor verbunden ist, der den adaptiven Algorithmus ausführt und die Koeffizienten aktualisiert. Aufgrund der besonderen Geometrie der komplexen digitalen Signalverarbeitung nutzen diese parallelen Datenpfade die verfügbare Zeit maximal aus, um die erforderlichen Filterberechnungen durchzuführen. Das Filter gemäß vorliegender Erfindung besitzt auch einen "Sollwert-Eingang", der eine externe Summiervorrichtung zur Berechnung des Fehlerausdrucks erübrigt, wie sie oft für die Aktualisierung der Koeffizienten benötigt wird. Fig. 3 zeigt eine Anwendung für das adaptive Filter gemäß der Erfindung, bei der sich die externe Summiervorrichtung 71 erübrigt.
- Fig. 1 zeigt ein Blockdiagramm des erfindungsgemäß ausgebildeten komplexen adaptiven Filters 10 mit endlicher Impulsantwort. Entsprechend zeigt Fig. 9 eine summarische Übersicht der I/O- Anschlüsse für das Filter 10. In der Anordnung von Fig. 1 wird das von dem Filter 10 zu verarbeitende komplexe digitale Signal Yin(n) dem Filter 10 über eine Referenzeingangssignalleitung 12 zugeführt. Yin(n) ist ein digitales Multiplexsignal mit einem realen Eingangsdatenteil und einem imaginären Eingangsdatenteil. Es kann z. B. ein gepulstes Radar-Echosignal sein, das mit einer XMHz-Taktrate abgetastet, dann in seine realen und imaginären Komponenten zerlegt und im Zeitmultiplex verschachtelt wurde. Die Referenzeingangssignalleitung 12 ist mit einem ersten Schalterkreis 32 verbunden, der in jeder Position das Signal Yin(n) sowohl einer Realteil-Verarbeitungsschaltung 17 als auch einer Imaginärteil-Verarbeitungsschaltung 16 zuführt. In einer Position wird Yin(n) z. B. sowohl in der Realteil-Verarbeitungsschaltung 17 als auch in der Imaginärteil- Verarbeitungsschaltung 16 mit adaptiven Gewichten multipliziert, die reale Koeffizientendaten aufweisen. In der zweiten Position wird Yin(n) sowohl in der Realteil-Verarbeitungsschaltung 17 als auch in der Imaginärteil-Verarbeitungsschaltung 16 mit adaptiven Gewichten multipliziert, die imaginäre Koeffizientendaten aufweisen. Es ist zu beachten, daß die Eingangssignale Yin(n), Din(n), Cin(n) und die Ausgangssignale Cout (n) und E(n) komplexe digitale Signale mit Real- und Imaginärteilen sind. Die Eingangssignale bilden einen Multiplex-Datenstrom, wobei zuerst der reale Eingangsdatenteil und dann der imaginäre Eingangsdatenteil eingegeben wird. Die Schalterkreise 32, 33 und 34 bestehen im wesentlichen aus Demultiplexern, die die realen und imaginären Eingangsdatenteile den jeweiligen Verarbeitungsschaltungen für die realen Daten bzw. für die imaginären Daten zu führen. Die Schalterkreise sind in Fig. 1 als einfache Umschalter dargestellt, es versteht sich jedoch, daß für die Demultiplexerfunktion jede Schaltung benutzt werden kann, die bei jedem Takt ein Signal zwischen zwei Eingängen umschaltet. Umgekehrt arbeiten die Schalterkreise 35 und 36 als Multiplexer, die auf einer einzigen Datenausgangsleitung einen kontinuierlichen Datenstrom mit Real- und Imaginärteilen eines komplexen Signals erzeugen.
- Das Sollwert-Eingangssignal Din(n) wird dem Filter 10 über die Sollwert-Eingangssignalleitung 13 zugeführt. Die Sollwert-Eingangssignalleitung 13 ist mit einem zweiten Schalterkreis 33 verbunden, die das Signal Din(n) entweder einer ersten Summierschaltung 20 oder einer zweiten Summierschaltung 22 zuführt. Der reale Datenteil des Sollwert-Eingangssignals Din(n) wird zu dem Realteil des Ausgangssignals Cout(n) addiert, wenn der zweite Schalterkreis 33 so geschaltet ist, daß er das Signal Din(n) der ersten Summierschaltung 20 zuführt. Der imaginäre Datenteil Din(n) wird zu dem Imaginärteil des Ausgangssignals Cout(n) addiert, wenn der zweite Schalterkreis 33 das Signal Din(n) der zweiten Summierschaltung 22 zuführt. In dem bevorzugten Ausführungsbeispiel wird das den betreffenden Summierschaltungen zugeführte Eingangssignal Din(n) mit der XMHz-Taktrate geschaltet, es muß jedoch in Abhängigkeit von der Länge des Filters, z. B. der Zahl der Gewichte, extern verzögert werden, um der Wartezeit des Filters 10 Rechnung zu tragen.
- Über eine Schreib-Strobesignalleitung 14 wird dem Filter 10 ein Schreib-Strobe oder Schreib- Freigabesignal Wr zugeführt. Das Schreib-Freigabesignal Wr wird von dem (nicht dargestellten) Host-Prozessor zugeführt und bewirkt, daß die Koeffizienten während des weiter unten beschriebenen Koeffizientenaktualisierungsprozesses in den betreffenden Koeffizienten-/Koeffizientenaktualisierungs-Speicherbänken 24 und 27 gehalten werden.
- Adressenleitungen Adr(2:φ), die über Signalleitungen 15 verlaufen, sind die Adressenleitungen, mit denen auf die individuellen Koeffizientenregister in den Speicherbänken 24 und 27 zugegriffen wird. Die Adressen werden von einem Host-Prozessor übertragen und einer Adressen-Decodierschaltung 28 zugeführt, in denen sie zu sechs REGSELECT(5:φ)-Signalen 44 decodiert werden, die die einzelnen Koeffizientenregister in den Koeffizienten-/Koeffizientenaktualisierungs-Speicherbänken 24 und 27 adressieren. Ein Signal Ce, das dem Filter 10 über eine Signalleitung 18 zugeführt wird, dient zum Auftasten des Adressendecodierers 28, so daß das Filter 10 sich gegenüber einem Host-Prozessor wie ein speicherkonformes Peripheriegerät verhält.
- Der Takteingang des Filters 10 ist mit XMHz bezeichnet und in Fig. 1 als Eingangsleitung 19 dargestellt. Dieser Takt steuert das Filter und läuft mit der Rate der Realteildaten, die doppelt so groß ist wie die Rate der komplexen Daten. Wie weiter unten anhand des Zeitdiagramms von Fig. 4 näher erläutert wird, werden die Steuersignale 40, 42, die zur Steuerung des Datenflusses in die Realteil- und Imaginärteil-Verarbeitungsschaltungen dienen, von einer Steuerschaltung 30 erzeugt. Man sieht, daß die Steuerschaltung 30 auch die Signale liefert, die die Schaltvorgänge der Eingangs-Schalterkreise 32, 33 und 34 und der Ausgangs-Schalterkreise 35 und 36 steuern.
- Das Signal WSWAPREQ, das dem Filter über die Leitung 21 zugeführt wird, ist das Anforderungssignal für die Gewichtsauslagerung und zeigt der Gewichtsauslagerungsschaltung 38 an, daß ein Wechsel der Bänke erforderlich ist.
- Das Signal DATAIN, das über die Leitung 23 zugeführt wird, liefert die Fließkomma-Koeffizientendaten an die Koeffizientenregister, die durch adr(2:φ) und REGSELECT(5:φ) adressiert werden. Die Leitung 23 DATAIN kann aus einem 32-Bit-Bus bestehen. Beide Signale DATAIN und WSWAPREQ werden von einem Host-Prozessor zugeführt.
- Das Filter 10 ist durch Kaskadierung erweiterbar, so daß es für eine größere Zahl von Koeffizienten geeignet ist und damit größere Datenmengen verarbeiten kann. Das Kaskaden-Eingangssignal Cin(n) wird dem Filter 10 über die Kaskaden-Eingangssignalleitung 24 zugeführt. Die Kaskaden-Eingangssignalleitung 24 ist mit einem dritten Schalterkreis 34 verbunden, der den realen Datenteil eines Cout(n)-Signals aus einer vorhergehenden Filterstufe der Realteil-Verarbeitungshälfte 17 des Filters und den imaginären Teil des Signals Cout(n) aus einer vorhergehenden Filterstufe der Imaginärteil-Verarbeitungshälfte 16 des Filters zuführen kann. Das Kaskaden-Aus gangssignal Cout(n) bildet das Kaskaden-Ausgangssignal des Filters 10 und wird über eine Signalleitung 25 ausgegeben, die mit einem vierten Schalterkreis 36 verbunden ist. Der Schalterkreis 36 ist ein Demultiplexer, der zwischen den realen Ausgangsdaten der Realteil-Verarbeitungsschaltung 17 und dem imaginären Ausgangsdatenteil der Imaginärteil-Verarbeitungsschaltung 16 umschaltet, um auf der Ausgangssignalleitung 25 das komplexe Signal CoutIn) zu erzeugen.
- Das Fehlersignal E(n) ist die Fehler-Ausgangsgröße, die im wesentlichen eine Summierung des Sollwert-Eingangssignals Din(n) und sowohl der realen als auch der imaginären Ausgangsdaten darstellt, die mit Cout(n) zur Verfügung stehen. Das Fehlersignal wird über die Ausgangssignalleitung 31 ausgegeben, die mit einem fünften Schalterkreis 35 verbunden ist. Der Realteil des Fehlersignals E(n) entspricht der Summierung in der ersten Summierschaltung 20, in der der reale Datenteil von Din(n) zu den realen Ausgangsdaten aus der Realteil-Verarbeitungsschaltung 17 addiert wird. Der Imaginärteil des Fehlersignals E(n) entspricht der Summierung in der zweiten Summierschaltung 22, in der der imaginäre Datenteil von Din(n) zu den imaginären Ausgangsdaten der Imaginärteil-Verarbeitungsschaltung 16 addiert wird. Aufgrund der Schaltung, die das Filter 10 implementiert, erscheint der Realteil des ersten Terms einer komplexen Korrelation oder Faltung an dem Ausgang des Filters nach 2*N Taktzyklen, wobei "N" die Zahl der Gewichte ist, die das Filter implementiert. So wird das Signal Din(n), wie oben erwähnt, durch externe Steuermittel um wenigstens 2*N Taktzyklen verzögert, um der Wartezeit des Filters Rechnung zu tragen.
- Es werde nun auf Fig. 2 Bezug genommen, in der ein schematisches Blockdiagramm eines FIR- Filters 10 mit 32 komplexen Gewichten dargestellt ist, das eine Realteil-Verarbeitungsschaltung 17 und eine Imaginärteil-Verarbeitungsschaltung 16 besitzt. Der Schalterkreis 32 ist in einer ersten Position gezeigt, in der der reale Eingangsdatenteil des (im folgenden mit "Re[Yin(n)]" bezeichneten) Eingangssignals mit der Hälfte der Realteil-Verarbeitungsschaltung 17 verbunden ist, die die ungeradzahligen 'a'-Koeffizienten enthält, und gleichzeitig über ein 1-Takzyklus-Speicherelement 65 mit der Hälfte der Imaginärteil-Verarbeitungsschaltung 16 verbunden ist, die die ungeradzahligen 'b'-Koeffizienten enthält. Die Verbindung zu den ungeradzahligen 'a' und ungeradzahligen 'b' Koeffizienten wird im folgenden als Verbindung mit den Koeffizienten der ungeradzahligen Seite bezeichnet. Wie erkennbar ist, ist diese vom Konzept her als ein erster paralleler Datenpfad zur Verarbeitung der realen Eingangsdaten von Yin(n) konfiguriert. Wenn sich der Schalterkreis 32 in seiner zweiter Position befindet, in die er von der weiter unten erläuterten Steuerschaltung 30 geführt wird, ist der imaginäre Eingangsdatenteil des Eingangssignals, der im folgenden mit "IM[Yin(n)]" bezeichnet wird, mit der Hälfte der Realteil-Verarbeitungsschaltung 17 verbunden, die die geradzahligen 'b' Koeffizienten enthält, und gleichzeitig über ein 1-Taktzyklus-Speicherelement 65 mit der Hälfte der Imaginärteil-Verarbeitungsschaltung 16 verbunden, die die geradzahligen 'a' Koeffizienten enthält. Die Verbindung zu den geradzahligen 'a' und ge radzahligen 'b' Koeffizienten wird im folgenden als Verbindung zu den Koeffizienten der geradzahligen Seite bezeichnet. Diese Konfiguration illustriert vom Konzept her einen zweiten parallelen Datenpfad zur Verarbeitung der imaginären Eingangsdaten von Yin(n). Die Speicherelemente 65 in den Pfaden der Imaginärteil-Verarbeitungsschaltung liefern die Verzögerung, die für die Multiplexverschachtelung des realen und imaginären Ausgangssignals des Filters benötigt wird.
- Dem einschlägigen Fachmann ist bekannt, daß eine komplexe Signalverarbeitung (z. B. Faltung oder Korrelation) die Multiplikation des Eingangssignals mit einem ausgewählten Satz von realen und imaginären Multiplikanden, d. h. Koeffizienten, erfordert, damit ein komplexes Ausgangssignal entsteht, wenn die Ergebnisse akkumuliert werden. Es ist zu beachten, daß das komplexe Filter gemäß der Erfindung so konfiguriert ist, daß der obere Teil 17 von Fig. 2 solche Koeffizienten enthält, die zu einem Realteil der Ausgangsdaten des Filters 10 führen, wenn sie mit Yin(n) multipliziert und selektiv akkumuliert werden. Der untere Teil 16 enthält die Koeffizienten, die den Imaginärteil der Ausgangsdaten des Filters 10 erzeugen. Alle Koeffizienten der geradzahligen und ungeradzahligen Seite sind Gewichte, deren Werte davon abhängen, welche Art von Funktion das Filter erfüllen soll, z. B. komplexe Korrelation oder Faltung. Die realen und imaginären Datenteile von Yin(n) werden mit den entsprechenden Koeffizienten multipliziert, die in den Koeffizienten-Speicherbänken 24, 27 gespeichert sind, wobei jede Multiplikation von einer Multiplizierschaltung 4 vorgenommen wird. Die in Fig. 2 mit 6 bezeichneten Verzögerungselemente dienen zur Erläuterung und zeigen an, daß die Eingangssignale in dem Akkumulator einen Taktzyklus lang gespeichert werden müssen, bevor sie an dem Ausgang erscheinen. In dem bevorzugten Ausführungsbeispiel sind die Verzögerungselemente 6 nicht als solche implementiert, vielmehr sind die Steuerschaltung 30 und die Steuersignale 39 (siehe Fig. 1), die die Multiplizierschaltungen 4 und die Akkumulatorschaltungen 5 steuern, für die Verzögerung verantwortlich. Jede Akkumulatorschaltung 5 stellt eine Summierschaltung dar, die zwei Eingangssignale addiert und ein Ausgangssignal erzeugt, das auf der rechten Seite des Akkumulators ausgegeben wird. So addiert z. B. der in Fig. 2 dargestellte Akkumulator 5 das Ergebnis von a&sub3;&sub1;*Re[Yin(n)] zu dem Ergebnis der Multiplikation von b&sub3;&sub0; mit Im[Yin(n)] einen Taktzyklus später als die Multiplikation auf der 'b'-Seite stattgefunden hat. Anhand der Beschreibung des Zeitdiagramms von Fig. 4 wird man erkennen, daß die Verwendung von parallelen Pfaden die verfügbare Zeit maximal ausnutzt, um die erforderlichen Multiplikationen und Akkumulierungen auszuführen.
- Fig. 4 zeigt die von der Steuerschaltung 30 und den Steuersignalen 39 implementierte Zeitsequenz für die Steuerung der realen und der imaginären Eingangssignale der Multiplizierer 4 und der Akkumulatoren 5. Das Eingangssignal Yin(n) wird mit dem XMHz-Takt 19 eingetaktet. Die Dateneingabe für die Realteil- und die Imaginärteil-Verarbeitungsschaltung wird von dem Signal QSWITCH gesteuert, das das Signal 40 bildet. Dieses Signal wird zur Steuerung des Schalterkreises 32 benutzt, um das Eingangssignal Yin(n), das Signal 12, zwischen den Multiplizierern 4 umzuschalten, die mit den Koeffizienten der a'-Seite bzw. mit den Koeffizienten der 'b'-Seite verbunden sind. Die Anstiegsflanke des QSWITCH-Signals 40 taktet den Realteil Re[Yin(n)] in die ungeradzahlige Seite ein, während die Abstiegsflanke von QSWITCH über das Signal QSWITCH~-Signal 42 den Imaginärteil Im[Yin(n)] in die ungeradzahlige Seite eintaktet. [Wie aus der Figur erkennbar ist, laufen QSWITCH und QSWITCH~ mit der halben Taktfrequenz XMHz.] Da die Datenverarbeitung des Realteil und des Imaginärteils parallel ablaufen, werden die realen Daten sowohl mit den ungeradzahligen 15- als auch mit den ungeradzahligen 'a'-Koeffizienten multipliziert, und die imaginären Daten werden sowohl mit den geradzahligen 'a'- als auch mit den geradzahligen 'b'-Koeffizienten multipliziert. Die Imaginärteil-Verarbeitung wird um einen Takt verzögert, um das Multiplex-Ausgangssignal korrekt zu erzeugen.
- Sobald die realen Daten für die Multiplizierer auf der ungeradzahligen Seite zur Verfügung stehen, beginnt mit der Anstiegsflanke von XMHz~ (Signal 43), d. h. dem invertierten XMHz-Taktsignal, die Multiplikation Re[Yin(n)]*'a'-ungeradzahlige und Im[Yin(n-1)]*'a'-geradzahlige Koeffizienten. Diese Multiplikation der 'a'-Seite findet statt, wenn QSWITCH 40 hohen Pegel (d. h. logisch 1) hat. Wenn QSWITCH 40 niedrigen Pegel hat, startet die Abstiegsflanke von XMHz die Multiplikation der 'b'-Seite, d. h. Im[Yin(n)]*'b'-geradzahlige Koeffizienten und Re [Yin(n-1)]* 'b'-ungeradzahlige Koeffizienten. Die Akkumulierung der Ergebnisse, die durch die erwähnten Multiplikationen gewonnen werden, bei denen die Koeffizienten der 'b'-Seite betroffen sind, wird dann durchgeführt, wenn die Multiplikation der Koeffizienten der 'a'-Seite stattfindet. Entsprechend wird die Akkumulierung der Ergebnisse, die aus den erwähnten Multiplikationen gewonnen werden, bei denen Koeffizienten der 'a'-Seite betroffen sind, dann durchgeführt, wenn die Multiplikation der Koeffizienten der 'b'-Seite stattfindet. Sobald die Akkumulierung auf der 'a'-Seite begonnen hat, kann auf die alternativen 'a'-Koeffizientenregister umgeschaltet werden, da die alten Koeffizienten nicht mehr benötigt werden, da sie von den Multiplizierern nicht benutzt werden. Entsprechend kann, wenn die Akkumulierung auf der 'b'-Seite begonnen hat, auf die alternativen 'b'-Koeffizientenregister umgeschaltet werden. Die Änderung des Datenzugriffs von einem Satz von 'a'- und 'b'-Koeffizientenregistern aus der Speicherbank 24 (z. B. der Bank φ) auf den anderen Satz von 'a'- und 'b'-Koeffizientenregistern aus der Speicherbank 27 (z. B. der Bank 1) wird als "Gewichtsauslagerung" bezeichnet. Dieses Merkmal wird im folgenden näher beschrieben.
- Wie Fig. 4 zeigt, laufen QSWITCH 40 und QSWITCH~ 42 mit der halben XMHz-Taktfrequenz. Somit laufen die internen Berechnungen mit der Rate X/2 MHz ab, während das Ausgangssignal des Filters auf der Datenrate XMHz gehalten wird. In diesem speziellen Ausführungsbeispiel benötigt jeder Multiplizier- und Akkumulierzyklus 2/X · 10³ ns (wobei ein XMHz-Takt verwendet wird). In herkömmlichen FIR-Filterauslegungen muß die Multiplikation in der kürzeren Zeitspanne 1/X · 10³ ns stattfinden (d. h. mit der XMHz-Taktrate).
- Wie oben erwähnt wurde, liefert die Koeffizienten-/Koeffizientenaktuafisierungs-Speicherbank 24 und die alternative Koeffizienten-/Koeffizientenaktualisierungs-Speicherbank 27 alle Koeffizientenwerte der 'a'-Seite und der 'b'-Seite an die betreffenden Multiplizierer 4 (Fig. 2). Die in Fig. 1 dargestellte Anordnung erlaubt eine einfache Erfassung des Prozesses. Wie dort gezeigt ist, liefern beide Koeffizienten-Speicherbänke 24 und 27 die geradzahligen 'b'- und die ungeradzahligen 'a'-Koeffizienten an die Realteil-Verarbeitungsschaltung 17 des Filters und die geradzahligen 'a'- und die ungeradzahligen 'b'-Koeffizienten an die Imaginärteil-Verarbeitungsschaltung 16 des Filters. Die jeweiligen 'a'- und 'b'-Koeffizienten werden auf die Multiplizierer in den Realteil- oder Imaginärteil-Verarbeitungsschaltung 17 bzw. 16 über entsprechende Gewichts-Signalleitungen 26 und 29 verteilt.
- Für die Auslagerung der Koeffizienten in die Speicherbank 24 oder die Bank φ und die Speicherbank 27 oder die Bank 1 sind verschiedene Anordnungen möglich. So würde z. B. eine effizientere Anordnung halb so viele Koeffizienten und dementsprechend halb so viele Register benötigen, wenn die Registerwerte an zwei Multiplizierer verteilt werden können und die Akkumulatoren sowohl subtrahieren als auch addieren können. Dies ist deshalb so, weil in komplexen Korrelationsberechnungen der erste imaginäre Koeffizient, z. B. a&sub0;, gleich dem nachfolgenden realen Koeffizienten a&sub1; ist und der erste reale Koeffizient b&sub0; gleich dem Negativwert des folgenden imaginären Koeffizienten b&sub1; ist, wie weiter unten gezeigt wird.
- Das erfindungsgemäß vorgesehene Merkmal der Gewichtsauslagerung wird nun anhand der Zeitdiagramme von Fig. 4 und 7 beschrieben. Gemäß Fig. 4 und wie oben erwähnt wurde, werden die Koeffizienten der 'a'-Seite und der 'b'-Seite aktualisiert, wenn die Akkumulierung der jeweils entsprechenden 'a'-Seite und 'b'-Seite stattfindet, d. h. wenn die Koeffizienten nicht von den Multiplizierern 4 benutzt werden. Wie man sieht, gibt es keine Zeit, in der sowohl die Koeffizienten der 'a'-Seite als auch die Koeffizienten der 'b'-Seite von den Multiplizierern nicht benutzt werden, so daß jeder separat ausgelagert werden muß.
- Die Gewichtsauslagerungsschaltung 38 (siehe Fig. 1) liefert die Zeit- und Steuersignale, die für die Gewichtsauslagerungsfunktion in den realen und imaginären Koeffizienten-/Koeffizientenaktualisierungs-Speicherbänken 24 und 27 benötigt werden. Die Steuer- und Zeitsignale, die während des Gewichtsauslagerungsprozesse benutzt werden, sind in Fig. 7 dargestellt. Die Signale WSWAPA 54 und WSWAPB 58, die von der Gewichtsauslagerungsschaltung 38 (Fig. 1) erzeugt werden, veranlassen die Gewichtsauslagerung der 'a'-Seite bzw. der 'b'-Seite. Der Gewichtsauslagerungsschaltung 38 werden zugeführt: Das XMHz-Taktsignal 19, das WSWAPREQ~-Signal 21 und MULTIPLYA und MULTIPLYB, die die von der Steuerschaltung 30 erzeugten Signale 53 und 56 sind.
- Anhand von Fig. 7a und Fig. 8 wird nun die Auslagerung der Koeffizienten der 'a'-Seite zwischen der Bank φ und der Bank 1 erläutert. Das in Fig. 7a dargestellte Zeitdiagramm gilt entsprechend auch für die Auslagerung der Koeffizienten der 'b'-Seite. Das von dem Host erzeugte Eingangssignal WSWAPREQ~ (21) zeigt an, daß der Host die Koeffizienten in der Registerbank aktualisiert hat, die von dem Filter nicht benutzt wird. Die Anforderung WSWAPREQ~ (21) ist mit dem XMHz-Takt (19) synchronisiert, um die Gewichtsauslagerungs-Anforderung synch-WSWAPRE- QSA~ zu erzeugen, die das Signal 48 bildet. Wenn Koeffizienten der " a"-Seite ausgelagert werden, wird dieses Signal als WSWAPREQSA~ dargestellt. Fig. 7b zeigt die Tabelle 70, die die Logik beschreibt, welche die Erzeugung der folgenden Signale regelt: WSWAPREQSA~ (Signal 48); Verzögerung der Anforderung zur Gewichtsauslagerung A, WSWAPREQDELA~ (Signal 52); Verzögerung der Anforderung zur Gewichtsauslagerung B, WSWAPREQDELB~ (Signal 55); Quittung zur Gewichtsauslagerung A, WSWAPAKA~ (Signal 57); Quittung zur Gewichtsauslagerung B, WSWAPAKB~ (Signal 59); Quittung zur Gewichtsauslagerung, WSWAPAK~ (Signal 60). Die Legende in Fig. 7b liefert die Definitionen der in der Wahrheitstabelle von Fig. 7b benutzten Symbole. So geht z. B. das WSWAPAK~-Signal 60 bei dem nächsten Takt auf niedrigen Pegel (logisch 0), falls das Signal 57, WSWAPAKA~, und das Signal 59, WSWAPAKB~, beide niedrigen Pegel haben. Das Signal 60, WSWAPAK~, wird erzeugt und von dem Filter ausgegeben, wenn die Koeffizienten sowohl der 'a'-Seite als auch der 'b'-Seite ausgelagert wurden. Es ist zu beachten, daß die Auslagerungs-Logikschaltung 38, die die in der Wahrheitstabelle 70 von Fig. 7b dargestellte Logik implementiert, durch eine programmierbare Array-Logik implementiert werden kann, vorzugsweise jedoch in dem ASIC implementiert ist.
- Wie oben erwähnt wurde, veranlaßt das Signal 54, WSWAPA, die Gewichtsauslagerung auf der 'a'-Seite. Das Signal WSWAPREQDELA~ (52) wartet auf das Signal 53, MULTIPLYA, bevor das WSWAPA-Signal 54 erzeugt wird. Dieser Zustand zeigt an, daß mit dem nächsten Takt die Multiplikation der 'a'-Seite beendet wird und die Akkumulierung beginnt. Wie aus Fig. 7a und 7c ersichtlich ist, wird WSWAPA als Ausgangssignal des J-K-Flipflops 61 bei der Abfallflanke 62 von WSWAPREQDELA~ (Signal 52) erzeugt. Es ist zu beachten, daß sich nach einer Auslagerung auf der 'a'-Seite entsprechend der in der Wahrheitstabelle 70 angegebenen logischen Bedingung das Signal 57, WSWAPAKA~ durchsetzt.
- Das WSWAPB-Signal 58, das die Auslagerung der Koeffizienten der 'b'-Seite veranlaßt, nachdem die Auslagerung der 'a'-Seite stattgefunden hat, wird als Ausgangssignal eines (nicht dargestellten) zweiten J-K-Flipflops mit der Abfallflanke von WSWAPREQDELB~ (Signal 55) erzeugt. Bevor die Auslagerung der 'b'-Seite stattfindet, wartet WSWAPREQDELB~ auf die Kombination der Signale MULTIPLYB (Signal 56) und WSWAPAKA~ (Signal 57) entsprechend der von der Wahrheitstabelle 70 der Auslagerungslogik von Fig. 7b vorgegebenen Logik. Nachdem eine Auslagerung der 'b'-Seite stattgefunden hat, setzt sich entsprechend der in der Wahrheitstabelle 70 von Fig. 7b angegebenen logischen Bedingung das WSWAPAKB~-Signal 59 durch.
- Die Vorteile der Architektur mit zwei Speicherbänken für jede Hälfte des Filters sind leicht erkennbar. Vor allem wird eine maximale Filterverarbeitungszeit zur Verfügung gestellt, weil z. B. die Multiplizierer auf einen neuen Satz von aktualisierten Koeffizienten der 'a'-Seite in der Speicherbank 1 zugreifen können, während die Akkumulierung der Ergebnisse stattfindet, die aus den Multiplikationen der Eingangsdaten mit den Koeffizienten der 'a'-Seite gewonnen werden, die derzeit in der Bank φ geladen sind. Dadurch wird sichergestellt, daß jederzeit Koeffizienten der 'a'-Seite verfügbar sind, so daß der Filterungsprozeß nicht unterbrochen wird. Entsprechendes gilt für die Koeffizienten der 'b'-Seite, obwohl hier eine Verzögerung um einen Taktzyklus auftritt.
- Mit herkömmlichen Filtern nach dem Stand der Technik benötigt man mehr als einen Taktzyklus, um Daten in eine Speicherbank von Registern einzuschreiben, nachdem diese Bank die Koeffizienten für die Multiplikation mit dem Eingangssignal während eines vorangehenden Taktzyklus geliefert hat. Somit konnte in einem Filter mit nur einer Koeffizienten-Speicherbank der neue Satz von Koeffizientendaten während des Akkumulierungszyklus, der nominell einen Taktzyklus dauert (siehe Fig. 4) nicht in diese Speicherbank geladen werden. Deshalb ist nach Beendigung des Akkumulierungszyklus eine Zeitverzögerung in der Filterverarbeitung vorgesehen, die solange dauert, bis das Laden von neuen Koeffizientendaten in die Speicherbank beendet ist. Während dieser Zeitverzögerung kann keine Multiplikation stattfinden, so daß die Filterleistung beeinträchtigt wird.
- Bei der 2-Bank-Architektur des Anmelders wird die alternative Speicherbank, d. h. diejenige, die von dem Filter nicht benutzt wird, mit dem neuen Satz von Koeffizienten aktualisiert, während das Filter mit den in der ersten Koeffizienten-Speicherbank vorhandenen Daten arbeitet. Dadurch ist sichergestellt, daß die Multiplikation mit neuen Koeffizienten, die in der alternativen Bank geladen sind, unter der Steuerung der Gewichtsauslagerungsschaltung unverzüglich erfolgen kann, nachdem die Akkumulierung stattgefunden hat. Deshalb ist die Ausgaberate der komplexen Daten des Filters gleich der Eingaberate der komplexen Daten, ohne daß eine Zeitverzögerung in der Filterverarbeitung auftritt. Wie oben erwähnt wurde, ist zu beachten, daß die Koeffizientendaten zunächst in die erste Koeffizienten-Speicherbank (z. B. die Bank φ) geladen werden. Die nachfolgenden aktualisierten Koeffizientendaten werden nach jeder Gewichtsauslagerungs-Anforderung unter der automatischen Steuerung der Gewichtsauslagerungsschaltung sukzessiv in die alternative Speicherbank geladen, d. h. in diejenige, die nicht von den Multiplizierern benutzt wird.
- Das Einschreiben der Koeffizientendaten in die Speicherbänke während des Gewichtsauslagerungsprozesses wird nun anhand von Fig. 8 erläutert. Fig. 8 zeigt, wie die Koeffizienten der 'a'- Seite zwischen den Koeffizientenregistern in der Bank φ und der Bank 1 ausgelagert werden.
- Man erkennt, daß dann, wenn das Filter 10 auf die Koeffizientenregister in der Bank φ zugreift, die Koeffizienten der 'a'-Seite enthalten, der Host-Computer auf die Koeffizientenregister in der Bank 1 zugreifen kann, die Koeffizienten der 'a'-Seite enthalten, um dort aktualisierte 'a'-Koeffizientendaten einzuschreiben und umgekehrt. Die Koeffizienten der 'b'-Seite werden in ähnlicher Weise ausgelagert, d. h. in einem gegebenen Zeitpunkt greift entweder das Filter 10 oder der Host-Computer auf die Koeffizientenregister der 'b'-Seite in der Bank φ zu.
- Im Betrieb wird auf die einzelnen Koeffizientenregister der 'a'-Seite zugegriffen, um die Daten aufzunehmen, die auf dem Bus 23 DATAIN anliegen. Wie Fig. 8 zeigt, bestimmt das WSWAPA- Signal 54 zusammen mit dem Wr~-Signal 14, auf welche Koeffizienten-/Koeffizientenaktualisierungs-Speicherbank das Filter 10 zugreift (z. B. die Bank φ), und welche Speicherbank die aktualisierten Koeffizienten aufnehmen soll (z. B. die Bank 1). Das Signal 44, REGSELECT(5:φ), wählt das individuelle Koeffizientenregister in der ausgewählten Speicherbank, d. h. dasjenige der Register C&sub0; bis C&sub5; aus, das die anliegenden Daten DATAIN aufnehmen soll. Wie oben erwähnt wurde, enthalten die Daten DATAIN Fließkomma-Koeffizienten mit bis zu 32 Bits für höhere mathematische Genauigkeit. Eine identische Operation wird ausgeführt, wenn Koeffizienten in der alternativen Koeffizienten-/Koeffizientenaktualisierungs-Speicherbank φ aktualisiert werden, während das Filter 10 auf die in der Bank 1 vorhandenen Koeffizienten zugreift. Hier bestimmt wieder das Signal 54, WSWAPA, zusammen mit dem Wr~-Signal 14 diejenigen Koeffizientenregister in der Bank φ, die die aktualisierten Koeffizientendaten aufnehmen. Das Signal 44, REGSELECT(5:φ), wählt dann das individuelle Koeffizientenregister in der Bank φ aus, das die auf DATAIN vorhandenen aktualisierten Koeffizientendaten aufnehmen soll.
- Die oben erwähnten Prozesse gelten auch für die Auslagerung der Koeffizienten der 'b'-Seite. Bei der Aktualisierung der Koeffizienten der 'b'-Seite bestimmt das Signal WSWAPB (58) zusammen mit Wr~ (14), auf welche Gewichts-/Gewichts-Aktualisierungs-Speicherbank das Filter 10 zugreift (z. B. die Bank φ), und welche Speicherbank die aktualisierten Koeffizienten aufnehmen soll (z. B. die Bank 1) und umgekehrt. Man sieht, daß das Filter für den Host wie ein speicherkonformes Peripheriegerät aussieht und daß die Koeffizienten an aufeinanderfolgende Speicherstellen heruntergeladen werden. Obwohl dies in Fig. 8 nicht dargestellt ist, muß das Ce~- Signal 18 in Fig. 1 sich durchsetzen, während das Wr~-Signal (14) aktiviert ist, wie dies bei speicherorientierten Peripheriegeräten Standardpraxis ist.
- Es wird eine komplexe Korrelation zweier Vektoren beschrieben, um zu veranschaulichen, wie das Filter gemäß der Erfindung für digitale Signalverarbeitungsanwendungen benutzt wird. Eine komplexe Korrelation mit N Gewichten erfordert vom Konzept her 2 · 2 N Koeffizienten. In diesem Beispiel wird eine komplexe Korrelation mit drei Gewichten ausgeführt, dementsprechend wer den 12 Koeffizienten benötigt. Die vorliegende Erfindung ist jedoch nicht auf eine bestimmte Zahl von Koeffizienten beschränkt, abgesehen davon, daß es eine gerade Zahl pro Abschnitt sein muß, damit die Kaskadierung korrekt arbeitet. Nach der Herleitung der Koeffizienten für eine komplexe Korrelation mit drei Gewichten wird gezeigt, daß es tatsächlich nur sechs eindeutige Koeffizienten gibt. In einem bevorzugten Ausführungsbeispiel wird ein Verfahren zur Implementierung des Filters mit nur sechs Koeffizienten vorgestellt.
- In Fig. 5 ist ein Filter mit drei Gewichten dargestellt. Die Implementierung des komplexen Filters mit drei Gewichten wird beschrieben, um den Aufbau einschließlich der Kaskadierung von den Koeffizienten höherer Ordnung zu den Koeffizienten niedrigerer Ordnung und die Summierung des Filterausgangssignals und des Sollwert-Eingangssignal zur Erzeugung des Fehlerterms zu zeigen.
- Eine allgemeine digitale Signalverarbeitungsfunktion, die als FIR-Filter implementiert wird, ist eine komplexe Korrelation. Die komplexe Korrelation zweier Vektoren ist gegeben durch
- (1) Rwy(m) = w*(k)y(k+m)
- worin w*(k) die konjugierte Komplexe des Gewichtsvektors w(k), y(k+m) eine zeitverschobene Version des Referenzeingangssignals y(m) und N die Zahl der komplexen Koeffizienten, in diesem Beispiel gleich 3, bedeuten. Die Erweiterung der Summierung in Gleichung (1) für m gleich 0 ergibt
- (2) Rwy(0) = w*(0)y(0) + w*(1)y(1) + w*(2)y(2)
- Der Gewichtsvektor w(k) ist gegeben durch
- (3) w(k) = rw(k) + j[iw(k)]
- worin rw(k) der Realteil des Gewichtsvektors und [iw(k)] der Imaginärteil des Gewichtsvektors bedeutet. Die Erweiterung von Gleichung (3) für Werte von k im Bereich von 0 bis N-1 ergibt
- (4) w(0) = rw(0) + J[iw(0)]
- w(1) = rw (1) + j[iw(1)]
- w(2) = rw (2) + j[iw(2)]
- Die konjugierte Komplexe der Gewichtsvektoren von Gleichung (4) sind gegeben durch
- (5) w*(0) (0) = rw(0) - j[iw(0)]
- w*(1) = rw(1) - J[iw(1)]
- w*(2) = rw(2) - j[iw(2)]
- Der Referenz-Eingangsvektor y(k+m) ist gegeben durch
- (6) y(0) = ry (0) + j[iy(0)]
- y(1) = ry(1) + j[iy(1)]
- y(2) = ry(2) + j[iy(2)]
- Durch Substituieren der Gleichung (5) und (6) in die Gleichung (2) erhält man
- (7) Rwy(0) = (rw(0) - j[iw(0)]) (ry(0) + j[iy(0)])
- + (rw(1) - j[iw(1)]) (ry(1) + j[iy(1)])
- + (rw(2) - j[iw(2)]) (ry(2) + j[iy(2)])
- Durch Erweitern der Gleichung (7) erhält man
- (8) Rwy(0) = rw(0)ry(0) - j[iw(01]ry(0) + iw(0)iy(0) + rw(0)j[iy(0)]
- + rw(1)ry(1) - j[iw(1)]ry(1) + iw(1)iy(1) + rw(1)j[iy(1)]
- + rw(2)ry(2) - j[iw(2)]ry(2) + iw(2)iy(2) + rw(2)j[iy(2)]
- Das Neuordnen der Gleichung (8) in die Real-, und Imaginärteile ergibt
- (9) Rwy(0) = rw (0)ry(0) + iw(0)iy(0)
- + rw (1)ry(1) + iw(1)iy(1)
- + rw (2)ry(2) + iw(2)iy(2)
- + j[rw(0)iy(0) - ry(0)iw(0)
- + rw(1)iy(1) - ry(1)iw(1)
- + rw (2)iy(2) - ry(2)iw(2)]
- Das Referenzeingangssignal Yin wird zuerst dem Realteil des Filters zugeführt. Dementsprechend sind die Werte für Yin gegeben durch
- (10) Yin(0) = ry(0)
- Yin(1) = iy(0)
- Yin(2) = ry(1)
- Yin(3) = iy(1)
- Yin(4) = ry(2)
- Yin(5) = iy(2)
- Die Koeffizienten werden auf der Basis der spezifischen Implementation des in Fig. 5 dargestellten Filters ausgewählt und sind gegeben durch:
- (11) a0 = rw(2) b0 = iw(2)
- a1 = rw(2) b1 = -iw(2)
- a2 = rw(1) b2 = iw(1)
- a3 = rw(1) b3 = -iw(1)
- a4 = rw(0) b4 = iw(0)
- a5 = rw(0) b5 = -iw(0)
- Es ist klar, daß a&sub0; = a&sub1;, a&sub2; = a&sub3;, a&sub5; = a&sub5;, b&sub0; = -b&sub1;, b&sub2; = -b&sub3; und b&sub4; = -b&sub5;. Deshalb müssen in dem bevorzugten Ausführungsbeispiel nur die Koeffizienten a&sub0;, a&sub1;, a&sub2;, a&sub4;, b&sub0;, b&sub2; und b&sub4; vorgesehen sein. So wird in der Anordnung von Fig. 5 der Koeffizient a&sub0; an beide Multiplizierschaltungen 82' und 80 ausgegeben; der Koeffizient a&sub2; wird an die Multiplizierschaltungen 78' und 76 ausgegeben; der Koeffizient a&sub4; wird an die Multiplizierschaltungen 74' und 72 ausgegeben; der Koeffizient b&sub0; wird an die Multiplizierschaltungen 82 und 80' ausgegeben; der Koeffizient b&sub2; wird an die Multiplizierschaltungen 76 ' und 78 ausgegeben; und der Koeffizient b&sub4; wird an die Multiplizierschaltungen 72' und 74 ausgegeben. Wenn man die Koeffizienten von Gleichung (11) und die Werte der Referenzeingangssignale von Gleichung (10) in die Gleichung (9) substituiert, erhält man
- (12) Rwy(0) = a&sub5; yin(1) + b&sub4; yin(1) + a&sub3; yin(2) + b&sub2; yin(3)
- + a&sub1; yin(4) + b&sub0; yin(5) + b0 yin(5) + j[b&sub5; yin(0) + a&sub4; yin(1)
- + b&sub3; yin(2) + a&sub2; yin(3) + b&sub1; yin(4) + a&sub0; yin(5)]
- Die komplexe Korrelation Rwy(0) ist, als Filterausgangssignal, gegeben durch
- (13) Rwy(0) = Cout(6) + jCout(7)
- worin Cout(6) der Realteil von Rwy(0) und Cout (7) der Imaginärteil von Rwy(0) bedeuten. Gleichung (13) ist das Ergebnis der mathematischen Berechnung der komplexen Korrelation zweier Vektoren.
- Die Blockdiagrammdarstellung des Filters in Fig. 5 soll demonstrieren, daß die Operation des Filters dem oben erhaltenen mathematischen Ergebnis entspricht. Jede Vorrichtung in Fig. 5 ist durch einen Namen und eine Zahl identifiziert, die den Spaltenüberschriften in Fig. 6a und 6b entsprechen. Die Verarbeitung, die in der oberen Hälfte des FIR-Filters von Fig. 5, d. h. der Realteil-Verarbeitungsschaltung 17, stattfindet, ist in Fig. 6a tabellarisch zusammengefaßt und entspricht dem realen Ausgangssignal des komplexen Filters mit drei Gewichten. Die untere Hälfte von Fig. 5, d. h. die Imaginärteil-Verarbeitungsschaltung 16, ist in Fig. 6b tabellarisch zusammengefaßt und entspricht dem imaginären Ausgangssignal des komplexen Filters mit drei Gewichten. Die Verarbeitungstabelle 6a, die der Realteil-Verarbeitungsschaltung 17 entspricht, macht von den folgenden Gleichungen (14) bis (19) Gebrauch.
- In dem Realteil-Pfad des Filters ist das Ausgangssignal accum5 der sechsten Summierschaltung 71 gegeben durch
- (14) accum5 = Cin + mult5
- worin Cin das Kaskaden-Eingangssignal 19 ist und mult5 das Ausgangssignal der sechsten Multiplizierschaltung 72 repräsentiert. Das Ausgangssignal accum4 der fünften Summierschaltung 73 ist gegeben durch
- (15) accum4 = accum5 + mult4
- worin accum5 durch Gleichung (14) gegeben ist und mult4 das Ausgangssignal der fünften Multiplizierschaltung 74 repräsentiert. Das Ausgangssignal accum3 der vierten Summierschaltung 75 ist gegeben durch
- (16) accum3 = accum4 + mult3
- worin accum4 durch die Gleichung (15) gegeben ist und mult3 das Ausgangssignal der vierten Multiplizierschaltung 76 repräsentiert. Das Ausgangssignal accum2 der dritten Summierschaltung 77 ist gegeben durch
- (17) accum2 = accum3 + mult2
- worin accum3 durch die Gleichung (16) gegeben ist und mult2 das Ausgangssignal der dritten Multiplizierschaltung 78 repräsentiert. Das Ausgangssignal accum1 der zweiten Summierschaltung 79 ist gegeben durch
- (18) accum1 = accum2 + mult1
- worin accum2 durch Gleichung (17) gegeben ist und mult1 das Ausgangssignal der zweiten Multiplizierschaltung 80 repräsentiert. Das Ausgangssignal accumφ der ersten Summierschaltung 81 ist gegeben durch
- (19) accumφ = accum1 + multφ
- worin accum1 durch Gleichung (18) gegeben ist und multφ das Ausgangssignal der ersten Multiplizierschaltung 82 repräsentiert.
- Die Ergebnisse für den Realteil des Ausgangssignals Cout(n) des Filters mit drei Gewichten bilden das Ausgangssignal zur Zeit n, die in diesem Fall gleich 6 ist. Somit entspricht das Ergebnis Cout(6) bei dem sechsten Taktzyklus dem Ergebnis, das mathematisch in der Gleichung (12) gewonnen wird.
- Die Verarbeitungstabelle 6b, die der Imaginärteil-Verarbeitungsschaltung 16 des Filters 10 entspricht, macht von den unten angegebenen Gleichungen (20) bis (25) Gebrauch. In dem Imaginärteil-Pfad des Filters von Fig. 5 ist das Ausgangssignal accum5 der sechsten Summierschaltung 71' gegeben durch
- (20) accum5 = Cin + mult5
- worin Cin das Kaskaden-Eingangssignal 19 ist und mult 5 das Ausgangssignal der sechsten Multiplizierschaltung 72' repräsentiert. Das Ausgangssignal accum4 der fünften Summierschaltung 73' ist gegeben durch
- (21) accum4 = accum5 + mult4
- worin accum5 durch die Gleichung (20) gegeben ist und mult4 das Ausgangssignal der fünften Multiplizierschaltung 74' repräsentiert. Das Ausgangssignal accum3 der vierten Summierschaltung 75' ist gegeben durch
- (22) accum3 = accum4 + mult3
- worin accum4 durch die Gleichung (21) gegeben ist und mult3 das Ausgangssignal der vierten Multiplizierschaltung 76' repräsentiert. Das Ausgangssignal accum2 der dritten Summierschaltung 77' ist gegeben durch
- (23) accum2 = accum3+ mult2
- worin accum3 durch die Gleichung (22) gegeben ist und mult2 das Ausgangssignal der dritten Multiplizierschaltung 78' repräsentiert. Das Ausgangssignal accum1 der zweiten Summierschaltung 79' ist gegeben durch
- (24) accum1 = accum² + mult1
- worin accum2 durch die Gleichung (23) gegeben ist und mult1 das Ausgangssignal der zweiten Multiplizierschaltung 80' repräsentiert. Das Ausgangssignal accumφ der ersten Summierschaltung 81' ist gegeben durch
- (25) accumφ = accum1 + multφ
- worin accum1 durch die Gleichung (24) gegeben ist und multφ das Ausgangssignal der ersten Multiplizierschaltung 82' repräsentiert.
- In dem bevorzugten Ausführungsbeispiel des Filters mit drei Gewichten, bei dem nur 2 N oder sechs Koeffizienten verwendet werden, muß das Filter die Subtraktion ausführen, z. B.: accum1 = accum2 - mult1; und accum3 = accum4 - mult3, um die (-)-Vorzeichen in den Koeffizienten b1, b&sub3; und b&sub5; anzupassen.
- Somit sind die Ergebnisse für den Imaginärteil des Ausgangssignals Cout(n) dieses Filters mit drei Gewichten das Ausgangssignal zu der Zeit n, die in diesem Fall gleich 7 ist. Es ist zu beachten, daß das in dem siebten Taktzyklus das Ergebnis Cout(7) dem Imaginärteil des Ergebnisses entspricht, das mathematisch in der Gleichung (12) gewonnen wird. Aufgrund der anfänglichen Koeffizienten-Speicherverzögerung um einen Taktzyklus in den Speichervorrichtungen 65 des Imaginärteil-Verarbeitungspfads 16 des Filters steht das imaginäre Ausgangssignal Cout (7) in dem siebten Taktzyklus zur Verfügung. Die Verzögerung um einen Taktzyklus in diesem Pfad ist erforderlich, um eine passende Multiplexverschachtelung des Signals 25, Cout(n), (Filterausgangssignal) zu gewährleisten.
- Die Erfindung wurde speziell an ihren bevorzugten Ausführungsbeispielen dargestellt und beschrieben. Der einschlägige Fachmann erkennt, daß die oben beschriebenen Änderungen sowie weitere Änderungen in der Form und im Detail möglich sind, ohne daß damit der Schutzbereich der Erfindung verlassen wird, der nur durch den Schutzumfang der anliegenden Ansprüche begrenzt ist.
Claims (12)
1. Filter mit endlicher Impulsantwort (FIR-Filter) (10) mit adaptiven Gewichten zur
Verarbeitung eines komplexen Datensignals, das sowohl reale als auch imaginäre
Eingangsdatenkomponenten enthält, wobei das FIR-Filter aufweist:
a) eine erste Datenverarbeitungsschaltung (17) zum Erzeugen einer realen
Ausgangsdatenkomponente eines komplexen Filterausgangssignals, wobei die erste
Verarbeitungsschaltung einen ersten Eingang besitzt, der verbunden ist mit einer ersten Mehrzahl
von Multipliziereinrichtungen (4) zum Multiplizieren des realen Eingangsdatenkomponente
mit einem ersten Satz von adaptiven Gewichten während eines ersten Zeitintervalls und
aufeinanderfolgender erster Zeitintervalle und zum Erzeugen von entsprechenden ersten
Sätzen von gewichteten Daten für die Ausgabe in jeder Multipliziereinrichtung der
genannten ersten Mehrzahl von Multipliziereinrichtungen, sowie einen zweiten Eingang, der
verbunden ist mit einer zweiten Mehrzahl von Multipliziereinrichtungen zum Multiplizieren der
imaginären Eingangsdatenkomponente mit einem zweiten Satz von adaptiven Gewichten
während eines zweiten Zeitintervalls und aufeinanderfolgender zweiter Zeitintervalle und
zum Erzeugen von entsprechenden zweiten Sätzen von gewichteten Daten für die Ausgabe
in jeder Multipliziereinrichtung der genannten zweiten Mehrzahl von
Multipliziereinrichtungen,
b) eine zweite Datenverarbeitungsschaltung (16) zum Erzeugen einer imaginären
Ausgangsdatenkomponente des komplexen Filterausgangssignals, wobei die zweite
Verarbeitungsschaltung einen ersten Eingang besitzt, der verbunden ist mit einer dritten
Mehrzahl von Multipliziereinrichtungen zum Multiplizieren der realen Eingangsdatenkomponente
mit einem dritten Satz von adaptiven Gewichten während der genannten
aufeinanderfolgenden zweiten Zeitintervalle und zum Erzeugen von entsprechenden dritten Sätzen von
gewichteten Daten für die Ausgabe in jeder Multipliziereinrichtung der dritten Mehrzahl von
Multipliziereinrichtungen, sowie einen zweiten Eingang, der verbunden ist mit einer vierten
Mehrzahl von Multipliziereinrichtungen zum Multiplizieren der imaginären
Eingangsdatenkomponente mit einem vierten Satz von adaptiven Gewichten während
aufeinanderfolgender erster Zeitintervalle und zum Erzeugen von entsprechenden vierten Sätzen von
gewichteten Daten für die Ausgabe in jeder Multipliziereinrichtung der genannten vierten Mehrzahl
von Multipliziereinrichtungen,
c) eine Abtasteinrichtung für die Eingabe der realen Eingangsdatenkomponente in
den ersten Eingang während des ersten Zeitintervalls und danach während
aufeinanderfolgender erster Zeitintervalle und für die Eingabe der imaginären Eingangsdatenkomponente
in den zweiten Eingang während des zweiten Zeitintervalls und danach während
aufeinanderfolgender zweiter Zeitintervalle,
d) eine an dem ersten Eingang der zweiten Datenverarbeitungsschaltung (16)
angeordnete erste Eingangsspeichereinrichtung zum Verzögern der Multiplikation der realen
Eingangsdatenkomponente mit der dritten Mehrzahl von Multipliziereinrichtungen um ein
Zeitintervall und eine an dem zweiten Eingang der zweiten Datenverarbeitungsschaltung
angeordnete zweite Eingangsspeichereinrichtung zum Verzögern der Multiplikation der
imaginären Eingangsdatenkomponente mit der vierten Mehrzahl von Multipliziereinrichtungen um
ein Zeitintervall,
e) eine erste Mehrzahl von Akkumulatorschaltungen (5), die Ausgänge jeder
Multipliziereinrichtung aus der ersten Mehrzahl von Multipliziereinrichtungen (5) mit Ausgängen
jeder Multipliziereinrichtung aus der zweiten Mehrzahl von Multipliziereinrichtungen
verbinden, um aufeinanderfolgend ausgewählte erste Sätze von gewichteten Daten und
ausgewählte zweite Sätze von gewichteten Daten zu akkumulieren und die reale
Ausgangsdatenkomponente des komplexen Ausgangssignals zu bilden, und eine zweite Mehrzahl von
Ackumulatorschaltungen, die Ausgänge jeder Multipliziereinrichtung aus der dritten Mehrzahl
von Multipliziereinrichtungen mit Ausgängen jeder Multipliziereinrichtung aus der vierten
Mehrzahl von Multipliziereinrichtungen verbinden, um ausgewählte dritte Sätze von
gewichteten Daten und ausgewählte vierte Sätze von gewichteten Daten sukzessiv zu
akkumulieren und die imaginäre Ausgangsdatenkomponente des komplexen Ausgangssignals zu
bilden,
f) eine Steuereinrichtung (30) zum simultanen Steuern der ersten Mehrzahl von
Ackumulatorschaltungen und der zweiten Mehrzahl von Akkumulatorschaltungen in der Weise,
daß sie die ersten Sätze von gewichteten Daten bzw. die vierten Sätze von gewichteten
Daten während der aufeinanderfolgenden zweiten Zeitintervalle akkumulieren, und zum
simultanen Steuern der ersten Mehrzahl von Akkumulatorschaltungen und der zweiten Mehrzahl
von Akkumulatorschaltungen in der Weise, daß sie die zweiten Sätze von gewichteten
Daten bzw. die dritten Sätze von gewichteten Daten während der aufeinanderfolgenden
ersten Zeitintervalle akkumulieren, und
g) eine Koeffizientenauslagerungsschaltung (38) zum Aktualisieren der adaptiven
Gewichtswerte der vorbestimmten Koeffizientensätze, wobei diese Schaltung simultan die
Werte der ersten Mehrzahl und der vierten Mehrzahl von adaptiven Gewichten während der
aufeinanderfolgenden zweiten Zeitintervalle aktualisiert und simultan die Werte der zweiten
Mehrzahl und der dritten Mehrzahl von adaptiven Gewichten während der
aufeinanderfolgenden ersten Zeitintervalle aktualisiert.
2. Filter nach Anspruch 1, mit einer Speichereinrichtung zum Speichern der ersten
Mehrzahl, der zweiten Mehrzahl, der dritten Mehrzahl und der vierten Mehrzahl von adaptiven
Gewichtswerten für die jeweiligen Multiplikationen.
3. Filter nach Anspruch 2, bei dem die Koeffizientenauslagerungsschaltung die erste, die
zweite, die dritte und die vierte Mehrzahl von adaptiven Gewichtswerten steuert, die bei
Anforderung der Steuereinrichtung in die Speichereinrichtung zu laden sind.
4. Filter nach Anspruch 3, ferner mit einer Ausweichspeichereinrichtung zur Aufnahme der
aktualisierten ersten Mehrzahl und der aktualisierten vierten Mehrzahl von adaptiven
Gewichtswerten, während die in der Speichereinrichtung gespeicherte erste Mehrzahl und
vierte Mehrzahl von adaptiven Gewichtswerten für die Multiplikation verwendet werden,
wobei die Ausweichspeichereinrichtung die aktualisierte zweite Mehrzahl und die
aktualisierte dritte Mehrzahl von adaptiven Gewichtswerten aufnimmt, während die in der
Speichereinrichtung gespeicherte zweite Mehrzahl und dritte Mehrzahl von adaptiven
Gewichtswerten für die Multiplikation verwendet werden.
5. Filter nach Anspruch 4, bei dem die Koeffizientenauslagerungsschaltung ein
Gewichtsauslagerungs-Quittungssignal erzeugt, um die Steuerschaltung zu informieren, daß
entweder die genannte Speichereinrichtung für die Aufnahme von aktualisierten
Koeffizientenwerten verfügbar ist oder die Ausweichspeichereinrichtung für die Aufnahme von aktualisierten
Koeffizientenwerten verfügbar ist.
6. Filter nach Anspruch 1, ferner mit einer Einrichtung zum Erzeugen eines Fehlersignals für
Verwendung in der Prozessoreinrichtung.
7. Filter nach Anspruch 6, bei dem die Einrichtung zum Erzeugen eines Fehlersignals eine
erste Summierschaltung aufweist zum Addieren der realen Filterausgangskomponente und
eines gewünschten realen Ausgangssignals sowie eine zweite Summierschaltung zum
Addieren der imaginären Filterausgangskomponente und eines gewünschten imaginären
Ausgangssignals.
8. Filter nach Anspruch 1, bei dem die Steuerschaltung ferner eine Multiplexereinrichtung
aufweist zum Multiplexen der realen Ausgangsdatenkomponente aus der ersten
Datenverarbeitungsschaltung und der imaginären Ausgangsdatenkomponente aus der zweiten
Datenverarbeitungsschaltung zur Bildung des komplexen Ausgangssignals an dem
ausgangsseitigen Ende des Filters.
9. Filter nach Anspruch 8, ferner mit einer Kaskadenausgangsschaltung zum Verbinden der
Multiplexereinrichtung an dem ausgangsseitigen Ende des Filters mit einer
Kaskadeneingangsschaltung einer aufeinanderfolgenden FIR-Filterstufe, um dadurch die FIR-Filter in
Kaskade anzuordnen.
10. Verfahren zum Verarbeiten von komplexen digitalen Daten, die sowohl reale als auch
imaginäre Eingangsdaten enthalten, wobei das Verfahren die Verfahrensschritte umfaßt:
a) abwechselndes Laden der realen Eingangsdaten in einen ersten Datenpfad und
der imaginären Eingangsdaten in einen zweiten Datenpfad während aufeinanderfolgender
Zeitintervalle, wobei der erste Datenpfad eine erste Mehrzahl und eine zweite Mehrzahl von
adaptiven Gewichten aufweist, die Koeffizientendaten mit vorbestimmten Werten besitzen,
und wobei der zweite Datenpfad eine dritte Mehrzahl und eine vierte Mehrzahl von
adaptiven Gewichten aufweist, die Koeffizientendaten mit vorbestimmten Werte n besitzen,
b) Speichern der realen Eingangsdaten in den ersten Datenpfad mit der genannten
zweiten Mehrzahl von adaptiven Gewichten während eines Zeitintervalls nach dem Laden
der realen Eingangsdaten in den ersten Datenpfad, und Speichern der imaginären
Eingangsdaten in den ersten Datenpfad mit der genannten vierten Mehrzahl von adaptiven
Gewichten während eines Zeitintervalls nach dem Laden der imaginären Eingangsdaten in den
zweiten Datenpfad,
c) simultanes Multiplizieren der realen Eingangsdaten bzw. der imaginären
Eingangsdaten mit den Koeffizientendatenwerten der ersten Mehrzahl von adaptiven Gewichten und
der vierten Mehrzahl von adaptiven Gewichten während eines ersten Zeitintervalls und
aufeinanderfolgender erster Zeitintervalle, um daraus eine erste bzw. eine vierte Mehrzahl von
Multiplikationsergebnissen zu gewinnen,
d) simultanes Multiplizieren der imaginären Eingangsdaten bzw. der realen
Eingangsdaten mit den Koeffizientendatenwerten der zweiten Mehrzahl von adaptiven Gewichten
und der dritten Mehrzahl von adaptiven Gewichten während eines zweiten Zeitintervalls und
aufeinanderfolgender zweiter Zeitintervalle, um daraus eine zweite bzw. eine dritte
Mehrzahl von Multiplikationsergebnissen zu gewinnen,
e) abwechselndes Akkumulieren der Ergebnisse sowohl der ersten Mehrzahl als
auch der zweiten Mehrzahl von Multiplikationsergebnissen, um daraus einen Realteil der
Filterausgangsdaten zu bilden, und
f) abwechselndes Akkumulieren der Ergebnisse sowohl der dritten Mehrzahl als
auch der vierten Mehrzahl von Multiplikationsergebnissen, um daraus einen Imaginärteil der
Filterausgangsdaten zu bilden,
wobei die erste Mehrzahl und die vierte Mehrzahl von Multiplikationsergebnissen
während der zweiten Zeitintervalle simultan akkumuliert werden und die zweite Mehrzahl
und die dritte Mehrzahl von Multiplikationsergebnissen während aufeinanderfolgender
erster Zeitintervalle simultan akkumuliert werden, und
g) Aktualisieren der Koeffizientendatenwerte der ersten Mehrzahl und der vierten
Mehrzahl von adaptiven Gewichten während der Akkumulierung der ersten Mehrzahl und
der vierten Mehrzahl von Multiplikationsergebnissen während der aufeinanderfolgenden
zweiten Zeitintervalle, und simultanes Aktualisieren der Koeffizientendatenwerte der
zwei
ten Mehrzahl und der dritten Mehrzahl von adaptiven Gewichten während der
Akkumulierung der zweiten Mehrzahl und der dritten Mehrzahl von Multiplikationsergebnissen
während der aufeinanderfolgenden ersten Zeitintervalle.
11. Verfahren nach Anspruch 10, bei dem der ersten und der vierten Mehrzahl von
adaptiven Gewichten eine erste Speichereinrichtung und eine erste Ausweichspeichereinrichtung
zum Speichern der Koeffizientendaten zugeordnet sind, wobei der Verfahrensschritt des
Aktualisierens den Verfahrensschritt umfaßt, daß während einer Akkumulierung der ersten
Mehrzahl und der vierten Mehrzahl von Multiplikationsergebnissen abwechselnd auf
Koeffizientendatenwerte entweder aus der ersten Speichereinrichtung oder aus der ersten
Ausweichspeichereinrichtung zugegriffen wird.
12. Verfahren nach Anspruch 10, bei dem der zweiten und der dritten Mehrzahl von
adaptiven Gewichten eine zweite Speichereinrichtung und eine zweite
Ausweichspeichereinrichtung zum Speichern der Koeffizientendaten zugeordnet sind, wobei der Verfahrensschritt
des Aktualisierens den Verfahrensschritt umfaßt, daß während einer Akkumulierung der
zweiten Mehrzahl und der dritten Mehrzahl von Multiplikationsergebnissen abwechselnd auf
Koeffizientendatenwerte entweder aus der zweiten Speichereinrichtung oder aus der
zweiten Ausweichspeichereinrichtung zugegriffen wird.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/068,932 US5381357A (en) | 1993-05-28 | 1993-05-28 | Complex adaptive fir filter |
PCT/US1994/005831 WO1994028499A1 (en) | 1993-05-28 | 1994-05-24 | Complex adaptive fir filter |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69426231D1 DE69426231D1 (de) | 2000-12-07 |
DE69426231T2 true DE69426231T2 (de) | 2001-04-05 |
Family
ID=22085635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69426231T Expired - Fee Related DE69426231T2 (de) | 1993-05-28 | 1994-05-24 | Komplexes adaptives fir-filter |
Country Status (4)
Country | Link |
---|---|
US (1) | US5381357A (de) |
EP (1) | EP0700543B1 (de) |
DE (1) | DE69426231T2 (de) |
WO (1) | WO1994028499A1 (de) |
Families Citing this family (84)
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 |
US5642382A (en) * | 1995-03-01 | 1997-06-24 | Hitachi America, Ltd. | Fir filters with multiplexed inputs suitable for use in reconfigurable adaptive equalizers |
KR0181165B1 (ko) * | 1995-06-29 | 1999-04-01 | 김광호 | 유한장 임펄스응답 필터 및 그 필터링 방법 |
US6058408A (en) * | 1995-09-05 | 2000-05-02 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US6237016B1 (en) | 1995-09-05 | 2001-05-22 | Intel Corporation | Method and apparatus for multiplying and accumulating data samples and complex coefficients |
US6470370B2 (en) | 1995-09-05 | 2002-10-22 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US5983253A (en) * | 1995-09-05 | 1999-11-09 | Intel Corporation | Computer system for performing complex digital filters |
DE19541853C1 (de) * | 1995-11-09 | 1996-08-14 | Siemens Ag | Schaltungsanordnung und Verfahren zur Mehrfachnutzung eines digitalen Transversalfilters |
US5777912A (en) * | 1996-03-28 | 1998-07-07 | Crystal Semiconductor Corporation | Linear phase finite impulse response filter with pre-addition |
GB9607863D0 (en) * | 1996-04-16 | 1996-06-19 | Central Research Lab Ltd | Filter switching method |
EP0932838B1 (de) * | 1996-10-17 | 2007-02-14 | Saab Bofors Dynamics AB | Verfahren zur störungsunterdrückung in einem fmcw-radar |
US5949997A (en) * | 1997-01-03 | 1999-09-07 | Ncr Corporation | Method and apparatus for programming a microprocessor using an address decode circuit |
US5933797A (en) * | 1997-02-28 | 1999-08-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive dual filter echo cancellation |
CA2229737A1 (en) * | 1998-02-18 | 1999-08-18 | Philsar Electronics Inc. | Analog to digital converter for radio applications |
FR2785747B1 (fr) * | 1998-11-09 | 2004-02-13 | Commissariat Energie Atomique | Filtre numerique a architecture parallele et recepteur de signaux a etalement de spectre utilisant un tel filtre |
US6724706B1 (en) * | 1999-02-26 | 2004-04-20 | Matsushita Electric Industrial Co., Ltd. | Digital adaptive equalizer for different quality signals |
US6225928B1 (en) * | 1999-03-10 | 2001-05-01 | Cirrus Logic Inc. | Complex bandpass modulator and method for analog-to-digital converters |
US6745218B1 (en) * | 1999-03-16 | 2004-06-01 | Matsushita Electric Industrial Co., Ltd. | Adaptive digital filter |
US6628923B1 (en) | 2000-05-03 | 2003-09-30 | Nokia Networks Oy | Adaptive phase and amplitude linearization method and apparatus |
US6714956B1 (en) * | 2000-07-24 | 2004-03-30 | Via Technologies, Inc. | Hardware accelerator for normal least-mean-square algorithm-based coefficient adaptation |
US7716712B2 (en) * | 2003-06-18 | 2010-05-11 | General Instrument Corporation | Narrowband interference and identification and digital processing for cable television return path performance enhancement |
DE102004052418B4 (de) * | 2004-10-28 | 2012-05-10 | Infineon Technologies Ag | Gewichtungsschaltung und Verfahren zum Einregeln eines Regelkreises |
WO2007010678A1 (ja) * | 2005-07-15 | 2007-01-25 | Nec Corporation | 適応ディジタルフィルタ、fm受信機、信号処理方法、およびプログラム |
US8620980B1 (en) | 2005-09-27 | 2013-12-31 | Altera Corporation | Programmable device with specialized multiplier blocks |
US8301681B1 (en) | 2006-02-09 | 2012-10-30 | 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 |
US8266199B2 (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 |
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 |
US7930336B2 (en) * | 2006-12-05 | 2011-04-19 | Altera Corporation | Large multiplier for programmable logic device |
US8386553B1 (en) | 2006-12-05 | 2013-02-26 | 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 |
US7865541B1 (en) | 2007-01-22 | 2011-01-04 | Altera Corporation | Configuring floating point operations in a programmable logic device |
US8650231B1 (en) | 2007-01-22 | 2014-02-11 | Altera Corporation | Configuring floating point operations in a programmable device |
US8645450B1 (en) | 2007-03-02 | 2014-02-04 | Altera Corporation | Multiplier-accumulator circuitry and methods |
US8457191B2 (en) * | 2007-08-24 | 2013-06-04 | Comtech Ef Data Corp. | Adaptive equalizer and related 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 |
US8706790B1 (en) | 2009-03-03 | 2014-04-22 | Altera Corporation | Implementing mixed-precision floating-point operations in a programmable integrated circuit device |
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 |
US8645449B1 (en) | 2009-03-03 | 2014-02-04 | Altera Corporation | Combined floating point adder and subtractor |
US8805916B2 (en) * | 2009-03-03 | 2014-08-12 | Altera Corporation | Digital signal processing circuitry with redundancy and bidirectional data paths |
US8886696B1 (en) | 2009-03-03 | 2014-11-11 | Altera Corporation | Digital signal processing circuitry with redundancy and ability to support larger multipliers |
US8468192B1 (en) | 2009-03-03 | 2013-06-18 | Altera Corporation | Implementing multipliers 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 |
US8396914B1 (en) | 2009-09-11 | 2013-03-12 | Altera Corporation | Matrix decomposition in an integrated circuit device |
US8412756B1 (en) | 2009-09-11 | 2013-04-02 | Altera Corporation | Multi-operand floating point operations in a programmable 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 |
US8862650B2 (en) | 2010-06-25 | 2014-10-14 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US8589463B2 (en) | 2010-06-25 | 2013-11-19 | 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 |
US8949298B1 (en) | 2011-09-16 | 2015-02-03 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US9053045B1 (en) | 2011-09-16 | 2015-06-09 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
KR20140084294A (ko) * | 2011-10-27 | 2014-07-04 | 엘에스아이 코포레이션 | 복소 지수 비선형 함수와 함께 명령어를 갖는 디지털 처리 |
RU2012102842A (ru) | 2012-01-27 | 2013-08-10 | ЭлЭсАй Корпорейшн | Инкрементное обнаружение преамбулы |
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 |
US9923595B2 (en) | 2013-04-17 | 2018-03-20 | Intel Corporation | Digital predistortion for dual-band power amplifiers |
US9813223B2 (en) | 2013-04-17 | 2017-11-07 | Intel Corporation | Non-linear modeling of a physical system using direct optimization of look-up table values |
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 |
US9684488B2 (en) | 2015-03-26 | 2017-06-20 | Altera Corporation | Combined adder and pre-adder for high-radix multiplier circuit |
RU2601143C1 (ru) * | 2015-05-25 | 2016-10-27 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Донской государственный технический университет" | Адаптивный экстраполятор |
US10942706B2 (en) | 2017-05-05 | 2021-03-09 | Intel Corporation | Implementation of floating-point trigonometric functions in an integrated circuit device |
CN113381730B (zh) * | 2021-05-19 | 2022-10-28 | 浙江传媒学院 | 一种鲁棒性自适应滤波系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61113314A (ja) * | 1984-11-08 | 1986-05-31 | Nec Corp | サンプル値間引きデイジタルフイルタ− |
US4947362A (en) * | 1988-04-29 | 1990-08-07 | Harris Semiconductor Patents, Inc. | Digital filter employing parallel processing |
DE69125806T2 (de) * | 1990-12-27 | 1997-09-25 | Nippon Electric Co | Adaptiver Filter geeignet zur schnellen Identifikation eines unbekannten Systems |
JPH04266210A (ja) * | 1991-02-21 | 1992-09-22 | Toshiba Corp | 入力加重型トランスバーサルフィルタ |
US5282155A (en) * | 1992-11-19 | 1994-01-25 | Bell Communications Resarch, Inc. | Adaptive digital filter architecture for parallel output/update computations |
-
1993
- 1993-05-28 US US08/068,932 patent/US5381357A/en not_active Expired - Lifetime
-
1994
- 1994-05-24 DE DE69426231T patent/DE69426231T2/de not_active Expired - Fee Related
- 1994-05-24 EP EP94919221A patent/EP0700543B1/de not_active Expired - Lifetime
- 1994-05-24 WO PCT/US1994/005831 patent/WO1994028499A1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
WO1994028499A1 (en) | 1994-12-08 |
DE69426231D1 (de) | 2000-12-07 |
EP0700543A4 (de) | 1997-11-26 |
EP0700543A1 (de) | 1996-03-13 |
EP0700543B1 (de) | 2000-11-02 |
US5381357A (en) | 1995-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69426231T2 (de) | Komplexes adaptives fir-filter | |
DE3854818T2 (de) | Transformationsverarbeitungsschaltung | |
DE3875979T2 (de) | Schaltung zur berechnung des quantisierten koeffizienten der diskreten cosinustransformation von digitalen signalabschnitten. | |
DE19835216B4 (de) | Prozessor und Verfahren zur parallelen Datenverarbeitung | |
DE3882487T2 (de) | Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen. | |
DE69520974T2 (de) | Eine integrierte Halbleiterschaltung | |
DE69815986T2 (de) | FIR-Filter für programmierbare Dezimation | |
DE69229464T2 (de) | Quasi radix-16 prozessor und verfahren | |
DE60130175T2 (de) | Hardware-Beschleuniger für eine auf Basis einer geringsten quadratischen Mittelwert-Algorithmus Koeffizientenanpassung | |
DE3933171A1 (de) | Einzelchip-prozessor fuer komplexe gleitkommazahlen | |
DE69924170T2 (de) | Programmierbare Verarbeitungsschaltung mit einem rekonfigurierbaren Speicher zur Darstellung eines digitalen Filters | |
DE68921161T2 (de) | Programmierbares digitales Filter. | |
DE68926154T2 (de) | Pipelineprozessor zur Durchführung des LMS Algorithmus | |
DE69123328T2 (de) | Gerät zur Schallfeldkompensation | |
DE4345029C2 (de) | Schaltkreis für diskrete Kosinustransformation | |
DE69802426T2 (de) | Taktschema für digitales signalprozessorsystem | |
DE69424790T2 (de) | Prozessor für schnelle Fourier-Transformation | |
DE69838091T2 (de) | Programmierbare Schaltung zur Realisierung eines digitalen Filters | |
DE19504089A1 (de) | Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren | |
DE3751159T2 (de) | Adressierungsverfahren für gleichzeitige Lese-, Änderungs- und Schreib-Operationen mit schlangenförmiger RAM-Konfiguration. | |
DE69626609T2 (de) | Pipeline-datenverarbeitungsschaltung | |
DE10204647A1 (de) | Matrizenrechner des Zeitteilungstyps | |
DE19637369C2 (de) | Digitaler Signalprozessor mit Multipliziereinrichtung und -Verfahren | |
DE69226816T2 (de) | Verarbeitungssystem zur Geisterbildauslöschung eines Videosignales | |
DE69225628T2 (de) | Gerät für die orthogonale Transformation für die Videosignalverarbeitung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |