DE69937100T2 - Mehrkanalfilterungsvorrichtung und Verfahren - Google Patents

Mehrkanalfilterungsvorrichtung und Verfahren Download PDF

Info

Publication number
DE69937100T2
DE69937100T2 DE69937100T DE69937100T DE69937100T2 DE 69937100 T2 DE69937100 T2 DE 69937100T2 DE 69937100 T DE69937100 T DE 69937100T DE 69937100 T DE69937100 T DE 69937100T DE 69937100 T2 DE69937100 T2 DE 69937100T2
Authority
DE
Germany
Prior art keywords
data
filter
unit
vector
memory
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
Application number
DE69937100T
Other languages
English (en)
Other versions
DE69937100D1 (de
Inventor
Eran Pisek
Moshe Tarrab
David Moshe
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.)
NXP USA Inc
Original Assignee
Freescale Semiconductor 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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of DE69937100D1 publication Critical patent/DE69937100D1/de
Application granted granted Critical
Publication of DE69937100T2 publication Critical patent/DE69937100T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0283Filters characterised by the filter structure
    • H03H17/0292Time multiplexed filters; Time sharing filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0294Variable filters; Programmable filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/04Recursive filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H2218/00Indexing scheme relating to details of digital filters
    • H03H2218/06Multiple-input, multiple-output [MIMO]; Multiple-input, single-output [MISO]

Description

  • BEREICH DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein ein Verfahren und eine Vorrichtung zum Filtern von mehreren Kommunikationskanälen zugeordneten Daten und insbesondere das Filtern von Daten in unterschiedlichen Modi, wie einem rekursiven Filtermodus, einem Filtermodus mit unbegrenztem Impulsansprechverhalten, einem Extrapolationsmodus, einem Dezimationsmodus und einem Echounterdrückungsmodus.
  • HINTERGRUND DER ERFINDUNG
  • Drahtlose Kommunikationssysteme erfordern eine extensive digitale Signalverarbeitung, wobei das digitale Signal von mehreren Kommunikationskanälen stammen kann. Eine digitale Signalverarbeitung kann ein rekursives Filtern (d.h. eine FIR-Filterung, FIR: finite impulse response, begrenz tes Impulsansprechverhalten), ein Filtern mit unbegrenztem Impulsansprechverhalten (eine IIR-Filterung, IIR: infinite impulse response, unbegrenztes Impulsansprechverhalten), eine Dezimation und eine Extrapolation umfassen. Sowohl eine Dezimation als auch eine Extrapolation schließen eine FIR-Filterung ein.
  • Ein digitales Filteransprechverhalten hilft auch bei der Unterdrückung von Echos, die aus der Kopplung von Benutzern am entfernten Ende und Benutzern am nahegelegenen Ende resultieren. Auch die Echounterdrückung schließt eine FIR-Filterung ein.
  • Digitale Signalprozessoren gemäß dem Stand der Technik handhaben die Mehrkanalfilterung auf ineffiziente Weise, wobei das Springen von dem Prozess eines Kanals zu einem weiteren die Speicherung einer verhältnismäßig großen Menge an Datenstatus erforderte. Ein digitaler Prozessor gemäß dem Stand der Technik musste mindestens zwei Register zur Speicherung des Status jedes Kanals verwenden.
  • In der US-A-5 262 972 ist ein Mehrkanalfilter gemäß dem Oberbegriff des Patentanspruchs 1 offenbart.
  • Es besteht Bedarf an einem verbesserten Filter zur Verarbeitung von Daten von mehreren Kanälen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Obwohl die Erfindung in den beiliegenden Ansprüchen definiert ist, werden Ausführungsformen der Erfindung in der folgenden genauen Beschreibung im Zusammenhang mit den beiliegenden Zeichnungen offenbart. Es zeigen:
  • 1 eine schematische Beschreibung eines mit einem externen Speicher und mehreren Kommunikationskanälen gekop pelten Filters mit einer zweiten Direktspeicherzugriffssteuerung (d.h. einer DNA-Steuerung (DNA: direct memory access)) gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 2 eine schematische Beschreibung einer Adressenerzeugungseinheit (d.h. einer AGU (address generation unit)) gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 3 ein Ablaufdiagramm eines Verfahrens zur Umwandlung eines Filters in ein Filter mit 2Z Anschlüssen;
  • 4 eine schematische Beschreibung der allgemeinen Organisation von Daten und Koeffizienten, die einem einzigen Kanal zugeordnet sind, wenn das Filter in unterschiedlichen Modi arbeitet, gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 5 eine schematische Beschreibung der allgemeinen Organisation von Daten und Koeffizienten, die mehreren Kanälen zugeordnet sind, gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 6 eine schematische Beschreibung der allgemeinen Organisation von Daten und Koeffizienten im internen Speicher gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 7 eine schematische Beschreibung des Inhalts des ersten Abschnitts der ersten Speicherbank während verschiedener Stadien eines Filterprozesses gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 8 eine schematische Beschreibung der allgemeinen Organisation von Daten und Koeffizienten, die mehreren Kanälen zugeordnet sind, in unterschiedlichen Stadien eines FIR-Filterungsprozesses gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 9 ein Ablaufdiagramm eines Verfahrens zur Durchführung einer FIR-Filterung gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 10 eine schematische Beschreibung des Inhalts des (W + 1)-ten Abschnitts der ersten Speicherbank während unterschiedlicher Stadien des Filterungsprozesses gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 11 eine schematische Beschreibung der allgemeinen Organisation von Daten und Koeffizienten, die mehreren Kanälen zugeordnet sind, in unterschiedlichen Stadien eines IIR-Filterungsprozesses gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 12 ein Ablaufdiagramm eines Verfahrens zur Ausführung einer IIR-Filterung gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 13 eine schematische Beschreibung des Inhalts des (2W + 1)-ten Abschnitts der ersten Speicherbank während unterschiedlicher Stadien eines Dezimationsprozesses gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 14 ein Ablaufdiagramm eines Verfahrens zur Ausführung einer Dezimation um den Faktor M gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 15 ein Ablaufdiagramm eines Verfahrens 1000 zum Ausführen einer Extrapolation um den Faktor M gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 16 eine schematische Beschreibung der allgemeinen Organisation von Daten und Koeffizienten, die einem einzigen Kanal zugeordnet sind, gemäß einer bevorzugten Ausführungsform der Erfindung;
  • 17 eine schematische Ausführungsform eines mit einem Benutzer am nahegelegenen Ende, einem Benutzer am entfernten Ende, einem Hybridverbindungselement, einem Echosummierelement, einem Prozessor und einem externen Speicher gekoppelten Filters gemäß einer bevorzugten Ausführungsform der Erfindung; und
  • 18 ein Ablaufdiagramm eines Verfahrens zur Unterdrückung von Echos gemäß einer bevorzugten Ausführungsform der Erfindung.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Es wird darauf hingewiesen, dass die besonderen, verwendeten Begriffe und Ausdrücke und die speziellen, in der genauen Beschreibung und den beiliegenden Zeichnungen offenbarten, strukturellen und operativen Einzelheiten nur veranschaulichenden Zwecken dienen und den in den beiliegenden Ansprüchen beschriebenen Rahmen der Erfindung in keiner Weise einschränken sollen.
  • Allgemein ist ein Aspekt der Erfindung ein verbessertes Filter zur Verarbeitung von Daten von mehreren Kanälen.
  • Überdies betrifft die Erfindung die Möglichkeit des Umschaltens aus einem Betriebsmodus in einen anderen Betriebsmodus, wobei das Umschalten lediglich das Speichern einer vernachlässigbaren Menge an Statusparametern erfordert.
  • 1 ist eine schematische Beschreibung eines mit einem externen Speicher 110, mehreren Kanälen 100 und einer zweiten Direktspeicherzugriffssteuerung (d.h. einer DMA-Steuerung) 160 gekoppelten Filters 90 gemäß einer bevorzugten Ausführungsform der Erfindung.
  • Das Filter 90 kann mehrere Modi unterstützen. Bei der bevorzugten Ausführungsform werden fünf Betriebsmodi unterstützt:
    Mehr- oder Einkanal-FIR-Filterung
    Mehr- oder Einkanal-IIR-Filterung
    Mehr- oder Einkanalechounterdrückung
    Mehr- oder Einkanaldezimation
    Mehr- oder Einkanalextrapolation
  • Zweckmäßigerweise umfasst ein Einkanalmodus das Filtern von einem einzigen Kanal zugeordneten Daten. Das Filter 90 kann das Filtern eines Kanals in einem Einkanalmodus beenden und mit dem Filtern bzw. Verarbeiten eines weiteren Kanals in einem anderen Einkanalmodus beginnen. Ein Mehrkanalmodus umfasst die gleichzeitige Verarbeitung oder Filterung von aus mehreren Kanälen empfangenen Daten.
  • Zweckmäßiger Weise haben die sämtlichen W Kommunikationskanälen zugeordneten Filter bei der Verarbeitung mehrerer Kanäle die gleiche Länge – die Anzahl V der Anschlüsse. Anderenfalls arbeitet das Filter 90 in einem Einkanalmodus.
  • Verschiedene Kommunikationskanäle (d.h. Kanäle) können in unterschiedlichen Modi verarbeitet oder gefiltert werden. Der K-te Kanal kann beispielsweise mittels eines FIR-Filters gefiltert werden, während der (K + 1)-te Kanal durch ein IIR-Filter gefiltert werden kann, wobei K ein Index mit Werten von 1 bis W ist. Zweckmäßigerweise arbeitet das Filter 90 in einem Mehrkanalmodus, wenn sämtliche W Kanäle auf die gleiche Weise verarbeitet werden (beispielsweise durch eine FIR-Filterung, eine IIR-Filterung, eine Extrapolation, eine Dezimation oder eine Echounterdrückung).
  • Wenn das Filter 90 in einem Mehrkanalmodus aktiviert wird, verarbeitet es die verschiedenen Kanäle normalerweise ein einer festen Reihenfolge. So beginnt das Filter 90 beispielsweise mit der Verarbeitung des ersten Kanals, dann beginnt es mit der Verarbeitung des zweiten Kanals, etc., dies ist jedoch nicht notwendig, und das Filter 90 kann so programmiert werden, dass es verschiedene Kanäle in einer veränderlichen Reihenfolge filtert.
  • Zur Erleichterung der Erläuterung wird davon ausgegangen, dass die Länge sämtlicher W Filter übereinstimmt und dass sämtliche W Kanäle auf die gleiche Weise verarbeitet bzw. gefiltert werden, wenn das Filter 90 in einem Mehrkanalmodus arbeitet.
  • Das Filter 90 umfasst einen internen Speicher 130, eine Adresserzeugungseinheit (d.h. eine AGU) 190 und eine Multiplikations- und Summiereinheit (d.h. eine MAC-Einheit) 170. Das Filter 90 kann auch eine Steuereinheit 180 sein. Die Steuereinheit 180 kann auch durch einen (in 17 dargestellten) externen Prozessor (d.h. einen Prozessor) 1220 implementiert sein.
  • Mehrere Kanäle 100 liefern mehrere zu durch das Filter 90 filternde Datenabtastungen. Mehrere Kanäle 100 weisen mehrere, kollektiv durch 102 bezeichnete Ausgänge auf.
  • Der externe Speicher 110 weist Eingänge/Ausgänge (d.h. I/Os) 116 und 114 und einen Eingang 112 auf. Ein DMA 120 weist I/Os 126, 122 und 124 auf und kann auch einen I/O 128 aufweisen. Der interne Speicher 130 weist I/Os 132, 136 und einen Eingang 134 auf und kann auch einen I/O 138 aufweisen. Die MAC-Einheit 170 weist einen I/O 176 und einen Eingang 174 auf und kann auch einen I/O 172 aufweisen. Die Steuereinheit 180 weist Ausgänge 182, 184 und 186 auf und kann auch einen Ausgang 188 aufweisen. Ein zweiter DMA 160 weist I/Os 166 und 164 und einen Eingang 162 auf.
  • Zweckmäßiger Weise ist das Filter 90 mit dem DMA 120 und dem externen Speicher 110 gekoppelt. Wie durch gestrichelte Linien dargestellt, sind die Steuereinheit 180 und die MAC-Einheit 170 mit einem zweiten DMA 160 gekoppelt, die MAC-Einheit 170 ist mit einem DMA 120 gekoppelt, und der interne Speicher 130 ist mit mehreren Kanälen gekoppelt, wodurch eine effizientere Übertragung von Daten, Koeffizienten, und Ergebnissen von MAC-Operationen (die kollektiv als Informationen bezeichnet werden) zwischen der MAC-Einheit 170 und dem externen Speicher 110, zwischen der MAC-Einheit 170 und dem internen Speicher 130 und zwischen mehreren Kanälen 100 und dem inneren Speicher 130 erzielt wird.
  • Der I/O mehrerer Kanäle 100 ist mit dem I/O 112 des externen Speichers 110 gekoppelt. Der I/O 126 des DMA 120 ist mit dem I/O 116 des externen Speichers 110 gekoppelt. Der I/O 122 des DMA 120 ist mit dem I/O 132 des internen Speichers 110 gekoppelt. Der I/O 138 des externen Speichers 130 ist mit dem I/O 102 mehrerer Kanäle 100 gekoppelt. Der I/O 176 der MAC-Einheit 170 ist mit dem I/O 136 des internen Speichers 110 gekoppelt. Der I/O 178 der MAC-Einheit 170 ist mit dem I/O 128 des DMA 120 gekoppelt. Der I/O 172 der MAC-Einheit 170 ist mit dem I/O 166 eines zweiten DMA 160 gekoppelt. Die Ausgänge 182 184, 186 und 188 der Steuereinheit 180 sind dementsprechend mit dem Eingang 124 des DMA 120, dem Eingang 174 der MAC-Einheit 170, dem Eingang 196 der AGU 190 und dem Eingang 162 des zweiten DMA 160 gekoppelt.
  • Im externen Speicher 110 können Datenworte, Anschlüsse und die Ergebnisse des Filterprozesses gespeichert werden. Arbeitet das Filter 90 in einem Mehrkanal-FIR-Filterungs-, Dezimations- oder Extrapolationsmodus, werden im externen Speicher W externe Datenvektoren mit Y Elementen gespeichert. Arbeitet das Filter 90 mit einer Mehrkanal-IIR-Filterung, werden im externen Speicher 110 W externe Daten-/Ergebnisvektoren gespeichert. Ein externer Daten-/Ergebnisvektor umfasst anfänglich Datenworte, die nach und nach durch die Ergebnisse der IIR-Filterung ersetzt werden. Wenn das Filter 90 in einem Mehrkanalechounterdrückungsmodus arbeitet, werden im externen Speicher 110 W externe Daten-/Abtastungsvektoren gespeichert. Ein externer Daten-/Abtastungsvektor umfasst anfänglich Datenworte, die nach und nach durch Abtastungen von Signalen ersetzt werden, die die W Kommunikationskanäle durchlaufen.
  • Wenn das Filter 90 in einem Mehrkanal-FIR-Filterungs-, IIR-Filterungs-, Dezimations- oder Echounterdrückungsmodus arbeitet, sind im externen Speicher 110 W Koeffizientenvektoren mit Z Elementen gespeichert. Arbeitet das Filter 90 im Extrapolationsmodus, werden im externen Speicher 110 W externe Koeffizientenvektoren mit Z Elementen gespeichert.
  • In dem externen Speicher 110 können auch die Ergebnisse der Filter- und Verarbeitungsoperationen gespeichert werden.
  • In dem internen Speicher 130 können Datenworte, Anschlüsse und die Ergebnisse des Filterprozesses gespeichert werden. Wenn das Filter 90 im Mehrkanal-FIR-Filter- oder Dezimationsmodus arbeitet, werden im internen Speicher W Datenvektoren mit Z Elementen gespeichert. Wenn das Filter 90 in einem Mehrkanalextrapolationsmodus arbeitet, werden im internen Speicher 130 W Datenvektoren mit Z'' Elementen gespeichert. Arbeitet das Filter 90 mit einer Mehrkanal-IIR-Filterung, werden im internen Speicher 130 W Daten-/Ergebnisvektoren mit Z Elementen gespeichert. Ein Daten/Ergebnisvektor umfasst anfänglich Datenworte, die nach und nach durch die Ergebnisse der IIR-Filterung ersetzt werden. Arbeitet das Filter 90 in einem Mehrkanalechounterdrückungsmodus, werden in dem internen Speicher 130 W Daten-/Abtastungsvektoren mit Z Elementen gespeichert. Ein Daten-/Abtastungsvektor umfasst anfänglich Datenworte, die nach und nach durch Abtastungen von Signalen ersetzt werden, die die W Kommunikationskanäle durchlaufen.
  • Arbeitet das Filter 90 in einem Mehrkanal-IR-Filter-, IIR-Filter-, Dezimations- oder Echounterdrückungsmodus, werden in dem internen Speicher 130 W Koeffizientenvektoren mit Z Elementen gespeichert. Arbeitet das Filter 90 in einem Extrapolationsmodus, werden in dem internen Speicher 130 W externe Koeffizientenvektoren mit Z'' Elementen gespeichert.
  • Im internen Speicher 130 können auch die Ergebnisse der Filter- und Verarbeitungsvorgänge gespeichert werden.
  • Zur Zweckmäßigkeit der Erläuterung wird ein dem K-ten Kommunikationskanal zugeordneter Vektor (entweder ein Datenvektor, ein externer Datenvektor, ein Koeffizientenvektor, ein externer Koeffizientenvektor, ein Daten/Ergebnisvektor, ein externer Daten-/Ergebnisvektor, ein Daten-/Abtastungsvektor oder ein externer Daten-/Abtastungsvektor) als K-ter Vektor bezeichnet.
  • Das Filter 90 filtert oder verarbeitet Daten*-Vektoren mittels einer Folge von MAC-Funktionen eines Daten*-Vektors und eines Koeffizientenvektors. Ein Daten*-Vektor ist bei einem Betrieb des Filters im FIR-Filtermodus, im Extrapolationsmodus und im Dezimationsmodus ein Datenvektor, bei einem Betrieb des Filters im IIR-Filtermodus ein Daten/Ergebnisvektor und bei einem Betrieb des Filters im Echounterdrückungsmodus ein Daten-/Abtastungsvektor.
  • Im FIR-Filter-, IIR-Filter-, Dezimations- und Echounterdrückungsmodus führt das Filter 90 Z MAC-Funktionen zwischen zwei Z-Elementvektoren gleichzeitig aus. Im Extrapolationsmodus führt das Filter 90 Z'' MAC-Funktionen zwischen zwei Vektoren mit Z'' Elementen gleichzeitig aus. Zur Zweckmäßigkeit der Erläuterung wird eine einzige Folge von Z'' (wenn das Filter 90 im Extrapolationsmodus ist) bzw. Z MAC-Funktionen als Iteration bezeichnet.
  • Zweckmäßiger Weise empfängt die MAC-Einheit 170 die Daten, Abtastungen, Koeffizienten und Ergebnisse vom internen Speicher 130. Der interne Speicher 130 ist normalerweise schneller und kleiner als der externe Speicher 110. Der interne Speicher 130 umfasst eine erste und eine zweite Speicherbank 140 und 150 (die in 2 nicht dargestellt sind), wobei beide Abschnitte mit der MAC-Einheit 170 parallel geschaltet sind, wodurch der MAC-Einheit 170 das gleichzeitige Abrufen von Daten, eines Ergebnisses oder eines abgetasteten Worts und eines Anschlusses ermöglicht wird.
  • Zweckmäßiger Weise sind die den unterschiedlichen Modi des Filters 90 zugeordneten Datenvektoren, Daten-/Ergebnisvektoren und Daten-/Abtastungsvektoren in unterschiedlichen Abschnitten einer ersten Speicherbank 141 des internen Speichers 130 gespeichert. Die den unterschiedlichen Modi des Filters 90 zugeordneten Koeffizientenvektoren sind in unterschiedlichen Abschnitten einer zweiten Speicherbank 150 des internen Speichers 130 gespeichert.
  • Die dem FIR-Filtermodus zugeordneten Daten- und Koeffizientenvektoren sind dementsprechend in den ersten W Abschnitten der ersten und der zweiten Filterbank 140 und 150 des internen Speichers 130 gespeichert. Ihnen folgen die dem IIR-Filtermodus zugeordneten Daten- und Koeffizientenvektoren, die dem Dezimationsmodus zugeordneten Daten- und Koeffizientenvektoren und die dem Extrapolationsmodus und dem Echounterdrückungsmodus zugeordneten Daten- und Koeffizientenvektoren. Zur Zweckmäßigkeit der Erläuterung ist die Adresse des ersten dem FIR-Filtermodus zugeordneten Speicherworts in der ersten (zweiten) Speicherbank 140 (150) durch DBASEF (CBASEF) bezeichnet. Die Adresse des ersten dem IIR-Filtermodus zugeordneten Speicherworts in der ersten (zweiten) Speicherbank 140 (150) ist durch DBASEI (CBASEI) bezeichnet. Die Adresse des ersten dem Dezimationsmodus zugeordneten Speicherworts in der ersten (zweiten) Speicherbank 140 (150) ist durch DBASED (CBASED) bezeichnet. Die Adresse des ersten dem Extrapolationsmodus zugeordneten Speicherworts in der ersten (zweiten) Speicherbank 140 (150) ist durch DBASEE (CBASEE) bezeichnet. Die Adresse des ersten dem Echounterdrückungsmodus zugeordneten Speicherworts in der ersten (zweiten) Speicherbank 140 (150) durch DBASEA (CBASEA) bezeichnet.
  • 2 ist eine schematische Beschreibung einer AGU 190 gemäß einer bevorzugten Ausführungsform der Erfindung.
  • Die AGU 190 umfasst ein V-Register (d.h. vreg) 210, einen V/Z-Konverter (d.h. Konverter) 220, ein Datenbankregister (d.h. dbaser) 230, einen P-Zähler (d.h. pcount) 250, einen P-Komperator (d.h. pcomp) 240, eine Datenadressenad ditionseinrichtung (d.h. dadd) 260, eine erste Additionseinrichtung 270, einen K-Zähler (d.h. kcount) 280, einen Teilungsmultiplexer (d.h. smux) 290, einen K-Komperator (d.h. kcount) 300, eine Koeffizientenadressenadditionseinrichtung (d.h. cadd) 310, ein Koeffizientenbankregister (d.h. cdaser) 320, einen L-Zähler 330 und einen L-Komperator (d.h. lcomp) 340.
  • Das verg 210 weist einen Eingange 212 und einen Ausgang 224 auf. Der Konverter 220 weist einen Eingang 224 und einen Ausgang 222 auf. Der pcomp 240 weist einen Eingang 242, einen I/O 244 und einen Ausgang 246 auf. Der kcount 280 weist einen Eingang 282 und Ausgänge 284 und 286 auf. Der kcomp 300 weist einen I/O 302 und einen Ausgang 304 auf. Der lcount 330 weist einen Eingang 332 und einen I/O 334 auf. Der lcomp 340 weist einen I/O 342 und einen Ausgang 344 auf. Der pcount 250 weist einen I/O 254 und einen Ausgang 256 auf. Die erste Additionseinrichtung 270 weist Eingänge 272 und 274 und einen Ausgang 276 auf. Der smux 290 weist Eingänge 292, 294 und 298 und einen Ausgang 296 auf. Der dbreg 230 weist einen Eingang 234 und einen Ausgang 232 auf. Der dadd 260 weist Eingänge 264 und 262 und einen Ausgang 266 auf. Der cbreg 320 weist einen Eingang 324 und einen Ausgang 322 auf. Der cadd 310 weist Eingänge 314 und 312 und einen Ausgang 316 auf.
  • Der Ausgang des verg 210 ist mit dem Eingang 224 des Konverters 220 gekoppelt. Der Ausgang 222 des Konverters ist mit dem Eingang 242 des pcomp 240 gekoppelt. Der Ausgang 246 des pcomp 240 ist mit dem Eingang 282 des kcount 280 gekoppelt. Der I/O des kcount 280 ist mit dem I/O 302 des kcomp 300 gekoppelt. Der Ausgang 304 des kcomp 300 ist mit dem Eingang 332 des lcoumt 330 gekoppelt. Der I/O des lcount 330 ist mit dem I/O 342 des lcomp 340 gekoppelt. Der I/O 244 des pcomp 240 ist mit dem I/O 254 des pcount 250 gekoppelt. Der Ausgang 256 des pcount 250 ist mit dem Eingang 272 der ersten Additionseinrichtung 270 und dem Eingang 294 des smux 290 gekoppelt. Der Ausgang 286 des kcount 280 ist mit dem Eingang 274 der ersten Additionseinrichtung 270 gekoppelt. Der Ausgang 276 der ersten Additionseinrichtung 270 ist mit dem Eingang 292 des smux 290 gekoppelt. Der Ausgang 278 der ersten Additionseinrichtung 270 ist mit dem Eingang 262 des dadd 260 gekoppelt. Der Ausgang 296 des smux 290 ist mit dem Eingang 314 des cadd 310 gekoppelt. Der Ausgang 323 des dbreg 230 ist mit dem Eingang 264 des dadd 266 gekoppelt. Der Eingang 312 des cadd 310 ist mit dem Ausgang 322 des cbreg 320 gekoppelt. Der Eingang 243 des dbreg 230, der Eingang 324 des cbreg 320 und der Eingang 212 des verg 210 sind mit dem externen Speicher 110 bzw. dem internen Speicher 130 gekoppelt.
  • Im verg 210 ist V gespeichert, wobei V die Länge eines Filters oder die Anzahl der Anschlüsse eines Filters ist. V kann durch den Programmierer des Filters definiert werden. Zweckmäßiger Weise empfängt das verg 210 V von dem externen Speicher 110. Vorzugsweise stimmen Z und V bei sämtlichen Kanälen überein. Stimmen sie nicht überein, kann das Filter 90 in einem Einkanalmodus arbeiten.
  • Der Konverter 220 empfängt V und gibt Z aus, wobei Z = 2F und Z ≥ V > Z/2 gilt. Ein Filter wird durch einen Koeffizientenvektor mit Z Elementen repräsentiert. Der Koeffizientenvektor ist vorzugsweise in der zweiten Speicherbank 150 gespeichert.
  • Der pcount 250 wird nach jeder Lese-/Schreiboperation im internen Speicher 130 bzw. nach jeder MAC-Operation hochgezählt. Das Ausgangssignal des pcount 250 ist durch P bezeichnet. Der pcount 250 wird von dem pcomp 240 zurückgesetzt, wenn P > Z gilt. Der pcount 250 und der pcomp 240 können durch einen programmierbaren Zähler implementiert werden, der nach Z-maligem Hochzählen zurückgesetzt wird. Der kcount 280 zählt die durch K bezeichnete Anzahl der Rückstellungen des pcount 250. Jedes Mal, wenn der kcount 280 inkrementiert wird, wird das Ausgangssignal am Ausgang 286 inkrementiert, und das Ausgangssignal des Ausgangs 286 wird um Z hochgezählt. Der kcount 280 wird vom kcomp 300 zurückgesetzt, wenn K > W gilt, wobei W die Anzahl der Kanäle bezeichnet.
  • Der lcount 330 wird hochgezählt, wenn der kcount 280 zurückgesetzt wird. Das Ausgangssignal des lcount 330 wird durch L bezeichnet. Der lcount 330 wird hochgezählt, wenn sämtliche W Datenvektoren einer einzigen Iteration unterzogen wurden. Der lcount 330 wird durch den lcomp 340 zurückgesetzt, wenn L einen vorgegebenen Wert erreicht. Bei einer Mehrkanal-FIR-Filterung wird der lcomp 330 beispielsweise zurückgesetzt, wenn L > Y/Z gilt. Im IIR-Modus wird der lcomp 330 zurückgesetzt, wenn L > T gilt. Y repräsentiert die Anzahl der Elemente innerhalb eines externen Datenvektors. T repräsentiert die Anzahl der von einem IIR-Filter benötigten Iterationen.
  • Im dbreg 230 ist ein Zeiger gespeichert. Zweckmäßiger Weise zeigt der Zeiger auf das erste Datenwort, das verarbeitet wird, wenn das Filter 90 zu arbeiten beginnt. Wenn das Filter 90 initialisiert wird, zeigt der Zeiger normalerweise auf das erste Element des ersten Daten-, Daten-/Ergebnis- oder Daten-/Abtastungsvektors.
  • Im cbreg 320 ist ein Zeiger gespeichert. Zweckmäßiger Weise zeigt der Zeiger auf den ersten Anschluss, der verarbeitet wird, wenn das Filter 90 zu arbeiten beginnt. Wenn das Filter 90 initialisiert wird, zeigt der Zeiger normalerweise auf das erste Element des ersten Koeffizientenvektors.
  • Die erste Additionsvorrichtung 270 empfängt die Ausgangssignale vom Ausgang 286 des kcount 280 und vom pcount 250. Das Ausgangssignal der ersten Additionsvorrichtung 270 wird an den dadd 260 gesendet, der das Ausgangssignal der ersten Additionsvorrichtung 270 zum Ausgangssignal des dbreg 230 addiert. Das Ausgangssignal ist eine Adresse in der ersten Speicherbank 140. Das Signal wird an die erste Speicherbank 140 gesendet.
  • Der smux 290 wählt aus, ob das Ausgangssignal des pcount 250 oder das Ausgangssignal der ersten Additionsvorrichtung 270 an den cadd 310 gesendet wird.
  • Der cadd 310 addiert das Ausgangssignal des smux 290 zu dem Ausgangssignal des cbreg 320. Das Ausgangssignal ist eine Adresse in der zweiten Speicherbank 150. Das Signal wird an die zweite Speicherbank 150 gesendet. Wenn sämtliche W Kanäle durch das gleiche Filter gefiltert werden, wählt der smux 290 das Ausgangssignal des pcount 250 aus.
  • 3 ist ein Ablaufdiagramm eines Verfahrens zur Umwandlung eines Filters in ein Filter mit 2Z Anschlüssen.
  • In einem Abfrageschritt 360 überprüft der Konverter 220, ob das Q-te Bit von V „1" ist. Q ist eine ganze Zahl mit Werten von 1 bis QMAX, wobei QMAX die höchste Anzahl an zur Repräsentation von Z verfügbaren Bits ist. Gilt beispielsweise Q = 1, überprüft der Konverter das am wenigsten signifikante Bit von V. Ist die Antwort „JA", folgt auf den Schritt 360 ein Schritt 370, in dem Z den Wert 2Q erhält. Anderenfalls folgt auf den Schritt 360 ein Schritt 380, in dem Q verringert wird. Auf den Schritt 380 folgt der Schritt 360.
  • 4 ist eine schematische Beschreibung der allgemeinen Organisation von einem einzigen Kanal zugeordneten Daten und Koeffizienten, wenn das Filter 90 in unterschiedlichen Modi arbeitet, gemäß einer bevorzugten Ausführungsform der Erfindung.
  • Die Daten und Koeffizienten sind auf diese Weise organisiert, wenn das Filter 90 in einem der folgenden Modi arbeitet: einem Mehr- oder Einkanal-FIR-Filter-, einem Mehr- oder Einkanal-Dezimations- oder einem Mehr- oder Einkanalextrapolationsmodus.
  • Ein Abschnitt 111 des externen Speichers 110 umfasst Y + Z Speicherworte aus Adressen 11100 bis 11198. Der erste externe Datenvektor, der Datenworte D(1, 1) bis D(1, Y) 51005188 umfasst, ist in den Adressen 11100 bis 11188 gespeichert. Der erste Koeffizientenvektor, der Z Anschlüsse C(1, 1) bis C1, Z) 61006108 umfasst, ist in den Adressen 11190 bis 11198 gespeichert.
  • In weiteren Abschnitten des externen Speichers 110 sind andere externe Datenvektoren und andere Koeffizientenvektoren gespeichert. In dem externen Speicher 110 werden ferner die Ergebnisse der FIR-Filterung, der Dezimation bzw. der Extrapolation gespeichert.
  • Das Filter 90 kann eine programmierbare Abfragetabelle zur Speicherung der Position verschiedener externer Datenvektoren und Koeffizientenvektoren enthalten. In der Abfragetabelle ist jedem Kanal ein Index K zugeordnet, der die Reihenfolge der Verarbeitung der den verschiedenen Kanälen zugeordneten Daten definiert.
  • 5 ist eine schematische Beschreibung der allgemeinen Organisation der mehreren Kanälen zugeordneten Daten und Koeffizienten gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
  • W externen Datenvektoren und W Koeffizientenvektoren sind W Kanäle zugeordnet. D(K, b) ist das b-te Datenelement des K-ten externen Datenvektors, wobei b Werte von 1 bis Y und K Werte von 1 bis W aufweist.
  • C(K, P) ist das P-te Koeffizientenelement des K-ten Koeffizientenvektors, wobei P Werte von 1 bis Z und K Werte von 1 bis W aufweist. Zweckmäßiger Weise ist jeder externe Datenvektor in einem separaten Abschnitt des externen Speichers 110 gespeichert.
  • 6 ist eine schematische Beschreibung der allgemeinen Organisation von Daten und Koeffizienten im internen Speicher gemäß einer bevorzugten Ausführungsform der Erfindung. 6 beschreibt den anfänglichen Inhalt des internen Speichers 130, wenn das Filter 90 in den folgenden Modi aktiviert wird: dem Mehrkanal-FIR-Filter-, dem Mehrkanal-IIR-Filter- und dem Mehrkanalechounterdrückungsmodus.
  • Der erste Datenvektor, der D(1, 1) – D(1, Z) 51005108 umfasst, ist in einem ersten Abschnitt 1141 der ersten Speicherbank 140 gespeichert. Der erste Abschnitt 1141 der ersten Speicherbank 140 umfasst Z Speicherworte 1141011418. Der zweite Datenvektor, der D(2, 1) – D(2, Z) 52005208 umfasst, ist in einem zweiten Abschnitt 1142 der ersten Speicherbank 140 gespeichert. Der zweite Abschnitt 1142 der ersten Speicherbank 140 umfasst Z Speicherworte 1142011428. Der W-te interne Datenvektor, der D(W, 1) – D(W, Z) 58005808 umfasst, ist im W-ten Abschnitt 1148 der ersten Speicherbank 140 gespeichert. Der W-te Abschnitt 1148 der ersten Speicherbank 140 umfasst Z Speicherworte 1148011488. Zweckmäßiger Weise ist der K-te Abschnitt zwischen dem (K – 1)-ten und dem (K + 1)-ten Abschnitt angeordnet.
  • Der erste Koeffizientenvektor, der C(1, 1) – C(1, Z) 610608 umfasst, ist in einem ersten Abschnitt 1151 der zweiten Speicherbank 150 gespeichert. Der erste Abschnitt 1151 der zweiten Speicherbank 150 umfasst Z Speicherworte 1151011518. Der zweite Koeffizientenvektor, der C(2, 1)– C(2, Z) 620628 umfasst, ist in einem zweiten Abschnitt 1152 der zweiten Speicherbank 150 gespeichert. Der zweite Abschnitt 1152 der zweiten Speicherbank 150 umfasst Z Speicherworte 1152011528. Der W-te Koeffizientenvektor, der D(W, 1) bis D(W, Z) 680688 umfasst, ist im W-ten Abschnitt 1158 der zweiten Speicherbank 150 gespeichert. Der W-te Abschnitt 1158 der zweiten Speicherbank 150 umfasst Z Speicherworte 1158011588.
  • Die Adresse des P-ten Datenworts des dem FIR-Filtermodus zugeordneten K-ten Datenvektors ist DBASEF + (K·Z) + P. Die Adresse des P-ten Anschlusses des dem FIR-Filtermodus zugeordneten K-ten Koeffizientenvektors ist CBASEF + (K·Z) + P.
  • Als der vom Filter 90 ausgeführte Prozess zur Beendigung des Betriebs in einem bestimmten Modus (d.h. dem ersten Modus) ist eine „Modusumschaltung" definiert. Der erste Modus kann ein beliebiger der folgenden Modi sein: Ein Ein- oder Mehrkanal-FIR-Filter-, IIR-Filter, Extrapolations-, Dezimations- oder Echounterdrückungsmodus.
  • Ein einzigartiger Aspekt des Filters 90 ist seine Fähigkeit, sogar vor dem Ende des Filterprozesses eine Modus umschaltung auszuführen, wobei der Wechsel das Speichern einer vernachlässigbaren Anzahl an Statusparametern einschließt. Das Speichern der Statusparameter ermöglicht dem Filter 90 die Wiederaufnahme der Arbeit im ersten Modus an der gleichen Stelle, an der es die Arbeit im ersten Modus beendet hat. Zweckmäßiger Weise umfassen die Statusparameter zwei Adressen. Die erste Adresse ist die Adresse des Koeffizientenworts, das bei der nächsten Iteration an die MAC-Einheit 170 gesendet werden soll. Die zweite Adresse ist die Adresse eines Datenworts (wenn das Filter 90 im Ein- oder Mehrkanal-FIR-Filter-, Extrapolations- oder Dezimationsmodus arbeitet), die Adresse des Daten-/Ergebnisworts (wenn das Filter 90 in einem Ein- oder Mehrkanal-IIR-Filtermodus arbeitet) oder die Adresse eines Daten-/Abtastungsworts (wenn das Filter 90 in einem Ein- oder Mehrkanalechounterdrückungsmodus arbeitet), die bei der nächsten Iteration an die MAC-Einheit 170 gesendet werden soll.
  • Diese Adressen definieren sowohl den Kanal, der verarbeitet wird, als auch die Anzahl der bereits ausgeführten Iterationen.
  • Wenn das Filter 90 beispielsweise das Ausführen der FIR-Filterung beendet und das nächste zu filternde Wort das P-te Wort des K-ten Kanals ist, speichert das Filter 90 jeweils die Adresse des P-ten Datenworts und des P-ten Anschlusses des K-ten Kanals DAD(P, K) = (DBASEF + (K·Z) + P) und CAD (K, P) = (CBASEF + (K – Z) + P) im internen Speicher 130. Wenn das Filter 90 den FIR-Filterprozess beginnt, liest der kcount 280 K, pcount 250 liest P, das dbreg 230 empfängt DBASEF und das cbreg 320 empfängt CBASEF. P zeigt an, dass der K-te Kanal P – 1 Iterationen unterzogen wurde.
  • 9 ist ein Ablaufdiagramm eines Verfahrens 700 zum Ausführen einer FIR-Filterung gemäß einer bevorzugten Ausführungsform der Erfindung. 8 ist eine schematische Beschreibung der allgemeinen Organisation von Daten und Koeffizienten, die mehreren Kanälen zugeordnet sind, in unterschiedlichen Stadien eines FIR-Filterprozesses gemäß einer bevorzugten Ausführungsform der Erfindung. 7 ist eine schematische Beschreibung des Inhalts des ersten Abschnitts 141 der ersten Speicherbank 140 während verschiedener Stadien eines FIR-Filterprozesses gemäß einer bevorzugten Ausführungsform der Erfindung.
  • Jede Iteration der FIR-Filterung umfasst eine Folge von MAC-Funktionen zwischen einem Datenvektor mit Z Elementen und einem Koeffizientenvektor mit Z Elementen. Der K-te Datenvektor weist Z Elements auf, während das K-te externe Datenelement Y Elemente aufweist, daher müssen nach der Verarbeitung der Z Elemente des K-ten Datenvektors Datenelemente des K-ten externen Datenvektors abgerufen werden.
  • Das Verfahren 700 umfasst die folgenden Schritte:
    Einen Initialisierungsschritt 710. Im Schritt 710 überprüft das Filter 90 den Wert von V und verändert Z entsprechend. Es gelten Z = 2F und Z ≥ V > Z/2. Wie durch die Pfade 714 und 724 dargestellt, folgt auf den Schritt 710 ein Schritt 720, auf den ein Schritt 730 folgt.
  • In den Schritten 720 und 730 werden, wie unter Bezugnahme auf 12 erläutert, die ersten Z Datenelemente der K externen Datenvektoren und K Koeffizientenvektoren an den internen Speicher 130 gesendet, so dass die Adresse des P-ten Datenworts des K-ten Datenvektors DBASE + (K·Z) + P ist. Die Adresse des P-ten Anschlusses des K-ten Koeffi zientenvektors ist CBASE + (K·Z) + P. Wie durch den Pfad 734 dargestellt, folgt auf den Schritt 730 ein Schritt 740.
  • Im Schritt 740 führt das Filter 90 eine Iteration aus, es führt Z MAC-Operationen zwischen dem K-ten Datenvektor und dem K-ten Koeffizientenvektor aus. Die erste Gruppe von MAC-Operationen wird beispielsweise zwischen dem ersten Datenvektor, der die ersten Z Elemente D(1, 1) bis D(1, Z) 51005108 des ersten externen Datenvektors umfasst, und dem ersten Koeffizientenvektor ausgeführt, der C(1, 1) bis C(1, Z) 610618 umfasst.
  • Wie durch die Pfade 744 und 746 dargestellt, folgen auf den Schritt 740 die Schritte 750 und 760. Der Schritt 750 wird zweckmäßiger Weise parallel zu den Schritten 760790 ausgeführt.
  • Während des Schritts 760 wird das Ergebnis R(K, L) der L-ten Iteration, das den K-ten externen Datenvektor umfasst, im externen Speicher 110 gespeichert. K wird erhöht, so dass der (k + 1)-te Datenvektor bei der nächsten Ausführung des Schritts 740 einer Filterung unterzogen wird.
  • Wie durch den Weg 764 dargestellt, folgt auf den Schritt 760 ein Abfrageschritt 760. Im Abfrageschritt 760 überprüft das Filter 90, ob K > W gilt. Ist die Antwort „NEIN", folgt auf den Schritt 740 ein Schritt 770, wie durch einen Pfad 776 dargestellt. Ist die Antwort „JA", wodurch angezeigt wird, dass sämtliche W Datenvektoren der L-ten Iteration unterzogen wurden, werden L erhöht und K zurückgesetzt.
  • Wie durch einen Pfad 784 dargestellt, folgt auf den Schritt 780 ein Abfrageschritt 790. Im Abfrageschritt 790 überprüft das Filter 90, ob L > W gilt. Ist die Antwort „NEIN", folgt auf den Schritt 790 der Schritt 740, wie durch einen Pfad 796 dargestellt. Ist die Antwort „JA", wodurch angezeigt wird, dass sämtliche Elemente der W externen Datenvektoren gefiltert wurden, folgt auf den Schritt 790 ein Schritt 798, in dem der Filterprozess endet und L zurückgesetzt wird.
  • In den Schritten 740790 wird dafür gesorgt, dass sämtliche Elemente der W externen Datenvektoren gefiltert werden.
  • Wie durch einen Pfad 744 dargestellt, wird beim Ausführen der Schritte 760790 und selbst beim Ausführen des Schritts 740 entsprechend dem (K + 1)-ten Datenvektor das (K + L)-te Datenwort des K-ten externen Datenvektors aus dem externen Speicher 110 abgerufen und ersetzt das (MODz(L))-te Datenwort des K-ten Datenvektors.
  • Wie in 7 gezeigt, wird beispielsweise das (Z + 1)-te Datenwort D(1, Z + 1) 5110 des ersten externen Datenvektors aus dem externen Speicher 110 abgerufen und ersetzt das vorherige erste Datenwort 5100 des ersten Datenvektors, nachdem der erste Datenvektor, der die ersten Z Elemente der ersten externen Daten umfasst, einer Iteration unterzogen wurde. Das Abrufen von D(1, Z + 1) 5110 kann erfolgen, während ein weiterer Datenvektor einer Iteration unterzogen wird. Nachdem die ersten Z Datenelemente sämtlicher W externen Datenvektoren verarbeitet sind, wird der erste Datenvektor, der (D(1, Z + 1) 5100 und D(1, 2) bis D(1, Z) 51025108 umfasst, einer Iteration unterzogen. Auf die Iteration folgen das Abrufen des (Z + 2)-ten Datenelements D(1, Z + 2) 5112 der ersten externen Daten und das Ersetzten von D(1, 2) 5112 des ersten Datenvektors. Nach Y – Z Iterationen wird D(1, Y) 5188 abgerufen und ersetzt D(1, Y – Z) 5178; daher umfasst der erste Datenvektor D(1, Y – Z + 1) – D(Y) 51805188.
  • Wie in 8 gezeigt, wird beispielsweise das erste Datenelement des K-ten Datenvektors durch das (W + 1)-te Datenelement des K-ten externen Datenvektors ersetzt, nachdem der K-te Datenvektor, der die ersten Z Datenelemente des K-ten externen Datenvektors umfasst, einer einzigen Iteration unterzogen wurde. Nachdem der erste Datenvektor, der die ersten Z Elemente des ersten externen Datenvektors umfasst, einer Iteration unterzogen wurde, wird das (Z + 1)-te Datenelement D(1, Z + 1) 5110 des ersten externen Datenvektorelements abgerufen und ersetzt das erste Datenwort D(1, 1) 5100 des ersten Datenvektors. Nachdem der zweite Datenvektor, der die ersten Z Elemente des zweiten externen Datenvektors umfasst, einer Iteration unterzogen wurde, wird das (Z + 1)-te Datenelement D(2, Z + 1) 5210 des zweiten externen Datenvektorelements abgerufen und ersetzt das erste Datenwort D(2, 1) 5200 des zweiten Datenvektors. Nachdem der dritte Datenvektor, der die ersten Z Elemente des dritten externen Datenvektors umfasst, einer Iteration unterzogen wurde, wird das (Z + 1)-te Datenelement D(3, Z + 1) 5310 des ersten externen Datenvektorelements abgerufen und ersetzt das erste Datenwort D(3, 1) 5300 des dritten Datenvektors. Nachdem der W-te Datenvektor, der die ersten Z Elemente des W-ten externen Datenvektors umfasst, einer Iteration unterzogen wurde, wird das (Z + 1)-te Datenelement D(W, Z + 1) 5810 des W-ten externen Datenvektorelements abgerufen und ersetzt das erste Datenwort D(W, 1) 5800 des W-ten Datenvektors.
  • 12 ist ein Ablaufdiagramm eines Verfahrens 800 zum Ausführen einer IIR-Filterung gemäß einer bevorzugten Ausführungsform der Erfindung. 11 ist eine schematische Beschreibung der allgemeinen Organisation der Daten und Koeffizienten, die mehreren Kanälen zugeordnet sind, in unterschiedlichen Stadien eines IIR-Filterprozesses gemäß einer bevorzugten Ausführungsform der Erfindung. 10 ist eine schematische Beschreibung des Inhalts des (W + 1)-ten Abschnitts 1241 der ersten Speicherbank 140 während unterschiedlicher Stadien innerhalb des Filterprozesses gemäß einer bevorzugten Ausführungsform der Erfindung.
  • Ein Mehr- oder Einzelkanal-IIR-Filtern ist durch die folgende Gleichung definiert:
  • Figure 00250001
  • T ist ein Index, der die Anzahl der von dem IIR-Filter ausgeführten Iterationen angibt.
  • Eine IIR-Filterung eines einzigen Kanals erfolgt durch eine Folge von MAC-Operationen zwischen einem Daten/Ergebnisvektor mit Z Datenelementen und einem Koeffizientenvektor mit Z Elementen. Der K-te Daten-/Ergebnisvektor und der Koeffizientenvektor werden dementsprechend im (W + K)-ten Abschnitt der ersten und der zweiten Speicherbank 140 und 150 gespeichert. So werden beispielsweise der erste, der zweite, der dritte und der W-te Datenvektor entsprechend im (W + 1)-ten, im (W + 2)-ten, im (W + 3)-ten und im 2W-ten Abschnitt 1241, 1242, 1243 und 1248 der ersten Speicherbank 140 gespeichert. Der erste, der zweite, der dritte und der W-te Koeffizientenvektor werden dementsprechend im (W + 1)-ten, im (W + 2)-ten, im (W + 3)-ten und im 2W-ten Abschnitt 1251, 1252, 1253 und 1258 der zweiten Speicherbank 150 gespeichert. Der (W + 1)-te Abschnitt 1241 der ersten Speicherbank 140 umfasst Z Speicherworte 1241012418.
  • Das Verfahren 800 umfasst die folgenden Schritte:
    Einen Initialisierungsschritt. Im Schritt 810 überprüft das Filter 90 den Wert von V und verändert Z entsprechend. Es gelten Z = 2F und Z ≥ V > Z/2. Wie durch Pfade 814 und 824 dargestellt, folgt auf den Schritt 810 ein Schritt 820, auf den ein Schritt 830 folgt.
  • In den Schritten 820 und 830 werden K Datenvektoren und K Koeffizientenvektoren an den internen Speicher 130 gesendet, so dass die Adresse des P-ten Datenworts des K-ten Datenvektors DBASEI + (K·Z) + P ist. Die Adresse des P-ten Anschlusses des K-ten Koeffizientenvektors ist CBASEI + (K·Z) + P. Wie durch einen Pfad 834 dargestellt, folgt auf den Schritt 830 ein Schritt 840.
  • Im Schritt 840 führt das Filter 90 eine Iteration aus; es führt Z MAC-Operationen zwischen dem K-ten Daten-/Ergebnisvektor und dem K-ten Koeffizientenvektor aus. Die erste Gruppe MAC-Operationen wird beispielsweise zwischen den Z Elementen D(1, 1) bis D(1, Z) 51005108 des ersten Daten-/Ergebnis- und den Z Elementen C(1, 1) bis C(1, Z) 610618 des ersten Koeffizientenvektors ausgeführt. Wie durch Pfade 844 und 846 dargestellt, folgen auf den Schritt 840 Schritte 850 und 860. Der Schritt 850 wird zweckmäßiger Weise parallel zu den Schritten 860890 ausgeführt.
  • Während des Schritts 860 wird K erhöht, so dass die nächste Ausführung des Schritts 840 den (K + 1)-ten Daten- und Koeffizientenvektor einschließt.
  • Wie durch einen Pfad 864 dargestellt, folgt auf den Schritt 860 ein Abfrageschritt 860. Im Abfrageschritt 860 überprüft das Filter 90, ob K > W gilt. Wenn die Antwort „NEIN" ist, folgt auf den Schritt 870 der Schritt 840, wie durch einen Pfad 876 dargestellt. Ist die Antwort „JA", wodurch angezeigt wird, dass bei der aktuellen (d.h. L-ten) Iteration sämtliche W internen Vektoren gefiltert wurden, wird L erhöht und K zurückgesetzt.
  • Wie durch einen Pfad 884 dargestellt, folgt auf den Schritt 880 ein Abfrageschritt 890. Im Abfrageschritt 890 überprüft das Filter 90, of L > T gilt. Ist die Antwort „NEIN", folgt auf den Schritt 890 der Schritt 840, wie durch einen Pfad 896 dargestellt. Ist die Antwort „JA", wodurch angezeigt wird, dass T Iterationen ausgeführt wurden, folgt auf den Schritt 890 ein schritt 898, in dem der Filterprozess endet und L zurückgesetzt wird.
  • In den Schritten 840890 wird dafür gesorgt, dass sämtliche Kanäle T Mal gefiltert werden.
  • Wie durch einen Pfad 844 dargestellt, ersetzt bei der Ausführung der Schritte 860890 und selbst bei der Ausführung des Schritts 840 entsprechend dem (K – 1)-ten Daten-/Ergebnis- und Koeffizientenvektor das Ergebnis R(K, L) der dem K-ten Daten-/Ergebnisvektor zugeordneten L-ten Iteration das (MODz(L))-te Wort des K-ten Daten-/Ergebnisvektors.
  • Wie in 10 gezeigt, ersetzt beispielsweise das Ergebnis R(1, 1) 6110 der Iteration das im (W + 1)-ten Abschnitt 1241 der ersten Speicherbank 140 gespeicherte vorherige erste Datenwort 5100 des ersten Daten-/Ergebnisvektors, nachdem der erste Datenvektor, der die ersten Z Elemente des ersten externen Daten-/Ergebnisvektors umfasst, einer ersten Iteration unterzogen wurde. Das Ergebnis wird abgerufen, während weitere Daten-/Ergebnisvektoren einer ersten Iteration unterzogen werden. Nachdem die W Daten-/Ergebnisvektoren einer ersten Iteration unterzogen wurden, wird der erste Daten-/Ergebnisvektor, der R(1, 1) 6110 und D(1, 2) bis D(1, Z) 51025108 umfasst, einer Iteration unterzogen. Auf diese Iteration folgt das Ersetzen des zweiten Datenworts D(1, 2) 5112 des ersten Daten-/Ergebnisvektors durch das Ergebnis R(1, 2) 6112 der Iteration. Nach T Iterationen wird D(1, T) 6188 abgerufen und ersetzt R(1, Y – Z) 6178. Der Filterprozess endet nach T Iterationen.
  • Wie in 11 gezeigt, ersetzten beispielsweise die Ergebnisse der ersten Iteration jedes der W Daten-/Ergebnisvektoren das vorherige erste Datenelement des Daten-/Ergebnisvektors. R(1, 1) 6110 ersetzt D(1, 1) 5100, R(2, 1) 6210 ersetzt D(2, 1) 5200, R(3, 1) 5310 ersetzt D(3, 1) und R(W, 1) 5810 ersetzt D(W, 1) 5800.
  • 14 ist ein Ablaufdiagramm eines Verfahrens 900 zum Ausführen einer Dezimation um einen Faktor M gemäß einer bevorzugten Ausführungsform der Erfindung. 13 ist eine schematische Beschreibung des Inhalts des (2W + 1)-ten Abschnitts 1341 der ersten Speicherbank 140 während unterschiedlicher Stadien eines Dezimationsprozesses gemäß einer bevorzugten Ausführungsform der Erfindung.
  • Eine Dezimation umfasst eine FIR-Filterung. Das Verfahren 900 ist analog zum Verfahren 700, der Schritt 950 umfasst jedoch statt dem Abrufen eines einzigen Datenworts während des Schritts 750 das Abrufen von M Datenworten aus dem externen Speicher 110. In einem Schritt 990 wird die Anzahl 1 der Iterationen statt mit Y/Z, wie im Schritt 790, mit Y/(M·Z) verglichen.
  • Wie in 13 gezeigt, werden beispielsweise D(1, 1 + Z) bis D(1, Z + M) 51105114 aus dem externen Speicher 110 abgerufen und ersetzen D(1, 1) bis D(1, M) 51005104 des ersten Datenvektors, nachdem der erste Datenvektor, der die ersten Z Elemente der ersten externen Daten umfasst, einer Iteration unterzogen wurde. D(1, 1 + Z) bis D(1, Z + M) 51105114 werden abgerufen, während das Filter 90 weitere Datenvektoren verarbeitet. Nachdem die W Daten-/Ergebnisvektoren einer ersten Iteration unterzogen wurden, wird der erste Datenvektor, der D(1, 1 + Z) bis D(1, Z + M) 51105114 umfasst, einer zweiten Iteration unterzogen. Nach ((Y – Z)/M) – 1 Iterationen werden D(1, Y – M + 1) bis D(1, Y) 51865188 abgerufen und ersetzen D(1, Y – 2M) bis D(1, Y – M) 5178 bis 5184. Der Filterprozess endet nach (Y + Z)/((M – 1)·Z) Iterationen.
  • 15 ist ein Ablaufdiagramm eines Verfahrens 1000 zum Ausführen einer Extrapolation um einen Faktor M gemäß einer bevorzugten Ausführungsform der Erfindung. 16 ist eine schematische Beschreibung der allgemeinen Organisation von Daten und Koeffizienten, die einem einzigen Kanal zugeordnet sind, gemäß einer bevorzugten Ausführungsform der Erfindung.
  • Eine Extrapolation umfasst eine FIR-Filterung. Das Verfahren 1000 ist analog zum Verfahren 700, umfasst jedoch das Ausführen von weniger MAC-Operationen pro Iteration und kleinere Koeffizienten- und Datenvektoren.
  • Im Extrapolationsmodus ist jeder Kanal einem als externen Koeffizientenvektor bezeichneten Koeffizientenvektor mit Z Elementen zugeordnet. Im internen Speicher 130 ist ein Teil des externen Koeffizientenvektors gespeichert. Wenn der Extrapolationsfaktor M ist, ist im internen Spei cher ein Koeffizientenvektor mit (Z/M) = Z'' Elementen gespeichert. Eine Iteration umfasst Z'' MAC-Funktionen zwischen einem Koeffizientenvektor mit Z'' Elementen und einem Datenvektor mit Z'' Elementen. Ein Datenvektor umfasst Z'' aufeinanderfolgende Datenworte. Ein Koeffizientenvektor umfasst die (S·M + J)-ten Elemente des externen Koeffizientenvektors, wobei J ein Index mit Werten von 1 bis Z'' und S ein Index mit Werten von 0 bis M – 1 ist. Gelten beispielsweise Z = 64 und M = 4, so ist ein einziger externer Koeffizientenvektor vorhanden, und es existieren vier Koeffizientenvektoren, die jeweils 16 Elemente aufweisen. Der erste Koeffizientenvektor umfasst das 1., 5., 9., 13., 17., 21., 25., 29., 33., 37., 41., 45., 49., 53., 57. und 61. Element des externen Koeffizientenvektors.
  • Der dem ersten Kanal zugeordnete externe Koeffizientenvektor (d.h. der erste externe Koeffizientenvektor) ist beispielsweise im externen Speicher 110 gespeichert und umfasst C(1, 1) bis C(1, Z) 6100 bis 6188. Der erste externe Koeffizientenvektor wird in M Koeffizientenvektoren aufgeteilt. Einer der M Koeffizientenvektoren wird in einen internen Speicher 130 eingelesen. Anschließend wird dieser Vektor zum Filtern von Daten verwendet, und ein weiterer Koeffizientenvektor wird abgerufen. Anfänglich wird der Koeffizientenvektor mit Z'' Elementen, der C(1, 1), C(1, M + 1), ..., C(1, Z – M + 1) 6100, 6106, ..., 6184 umfasst, an den (3W + 1)-ten Abschnitt der zweiten Speicherbank 150 gesendet. Der nächste in den (3W + 1)-ten Abschnitt der zweiten Speicherbank 150 einzulesende Vektor umfasst C(1, 2), C(1, M + 2), ..., C(1, Z – M + 2) 6102, 6108, ..., 6186. Der M-te Koeffizientenvektor, der in den (3W + 1)-ten Abschnitt der zweiten Speicherbank 150 eingelesen wird, umfasst C(1, M – 1), ..., C(1, Z) 6104 bis 6188.
  • Das Verfahren 1000 umfasst die folgenden Schritte:
    Einen Initialisierungsschritt 1010. Im Initialisierungsschritt 1010 überprüft das Filter 90 die Werte von V und M und verändert Z'' dementsprechend. Es gelten Z'' = Z/M, Z = 2F und Z > V > Z/2. Wie durch Pfade 1014 und 1024 dargestellt, folgt auf den Schritt 1010 ein Schritt 1020, auf den ein Schritt 1030 folgt. In den Schritten 1020 und 1030 werden K Datenvektoren und K Koeffizientenvektoren an den internen Speicher 130 gesendet, so dass die Adresse des P-ten Datenworts des K-ten Datenvektors DBASEE + (K·Z'') + P ist. Die Adresse des P-ten Anschlusses des K-ten Koeffizientenvektors ist CBASEE + (K·Z'') + P. Wie durch den Pfad 1034 dargestellt, folgt auf den Schritt 1030 ein Schritt 1040.
  • Ein Datenvektor umfasst Z'' aufeinanderfolgende Datenworte. Der Koeffizientenvektor umfasst die (S·M + t)-ten Elemente des externen Koeffizientenvektors. In einem Schritt 1040 führt das Filter 90 Z'' MAC-Operationen zwischen dem K-ten Datenvektor und dem K-ten Koeffizientenvektor aus.
  • Wie durch Pfade 1044 und 1046 dargestellt, folgen auf den Schritt 1040 Schritte 1050 und 1060. Der Schritt 1050 wird zweckmäßiger Weise parallel zu Schritten 10601090 ausgeführt. Während des Schritts 1060 wird das dem K-ten Kommunikationskanal zugeordnete L-te Ergebnis R(K, L, S) im externen Speicher 110 gespeichert, und K wird erhöht.
  • Wie durch einen Pfad 1064 dargestellt, folgt auf den Schritt 1060 ein Abfrageschritt 1070. Im Abfrageschritt 1070 überprüft das Filter 90, ob K > W gilt. Ist die Ant wort „NEIN", folgt auf den Schritt 1070 der Schritt 1040, wie durch einen Pfad 1076 dargestellt. Ist die Antwort „JA", wodurch angezeigt wird, dass sämtliche W Datenvektoren L Iterationen unterzogen wurden, werden L erhöht und K zurückgesetzt.
  • Wie durch einen Pfad 1084 dargestellt, folgt auf den Schritt 1080 ein Abfrageschritt 1090. Im Abfrageschritt 1090 überprüft das Filter 90, ob L > (Y/(W·Z)) gilt. Ist die Antwort „NEIN", folgt auf den Schritt 1090 der Schritt 1040, wie durch einen Pfad 1096 dargestellt. Ist die Antwort „JA", wodurch angezeigt wird, dass sämtliche Y Elemente der Daten sämtlicher W externen Datenvektoren durch Z'' Koeffizientenvektoren gefiltert wurden, folgt auf den Schritt 1090 ein schritt 1100.
  • Im Schritt 1100 werden L zurückgesetzt und S erhöht.
  • Wie durch einen Pfad 1104 dargestellt, folgt auf den Schritt 1100 ein Schritt 1110. Im Schritt 1110 überprüft das Filter 90, ob S > M gilt. Ist die Antwort „JA", wodurch angezeigt wird, dass der Extrapolationsprozess beendet ist, folgt auf den Schritt 1100 ein Schritt 1118, wie durch einen Pfad 1114 dargestellt. Ist die Antwort „NEIN", folgt auf den Schritt 1100 der Schritt 1040.
  • Wie durch einen Pfad 1044 dargestellt, ersetzt bei der Ausführung der Schritte 10601090 entsprechend dem K-ten Datenvektor und selbst bei der Ausführung des Schritts 1040 entsprechend einem weiteren Datenvektor das (Z + L)-te Datenwort des K-ten externen Datenvektors das (MODz(L))-te Datenwort des K-ten Datenvektors.
  • 17 ist eine schematische Ausführungsform eines mit einem Benutzer 1200 am nahegelegenen Ende, einem Benutzer 1230 am entfernten Ende, einem Hybridverbindungselement 1210, einer Echoadditionseinrichtung 1240, einem Prozessor 1220 und dem externen Speicher 110 gekoppelten Filters 90 gemäß einer bevorzugten Ausführungsform der Erfindung. 18 ist ein Ablaufdiagramm eines Verfahrens 1200 zur Unterdrückung von Echos gemäß einer bevorzugten Ausführungsform der Erfindung.
  • Das Verfahren 1200 umfasst die folgenden Schritte:
    Einen Initialisierungsschritt 1210. Im Schritt 1210 überprüft das Filter 90 den Wert von V und ändert Z entsprechend. Es gelten Z = 2F und Z ≥ V > Z/2. Wie durch Pfade 1214 und 1224 dargestellt, folgt auf den Schritt 1210 ein Schritt 1220, auf den ein Schritt 1230 folgt.
  • Wie unter Bezugnahme auf 12 erläutert, werden in den Schritten 1220 und 1230 K Daten-/Abtastungsvektoren und K Koeffizientenvektoren an den internen Speicher 130 gesendet, so dass die Adresse des P-ten Worts des K-ten Daten-/Abtastungsvektors DBASEA + (K·Z) + P ist. Die Adresse des P-ten Anschlusses des K-ten Koeffizientenvektors ist CBASEA + (K·Z) + P. Wie durch einen Pfad 1234 dargestellt, folgt auf den Schritt 1230 ein Schritt 1236.
  • Im Schritt 1236 empfängt das Filter 90 eine dem K-ten Kommunikationskanal zugeordnete L-te Datenabtastung. Diese Abtastung wird durch SP(K, L) bezeichnet. L ist ein Index mit positiven Werten. Das MODz(L)-te Wort des K-ten Daten-/Abtastungsvektors wird durch SP(K, L) überschrieben. Wie durch einen Pfad 1238 dargestellt, folgt auf den Schritt 1236 ein Schritt 1240.
  • Im Schritt 1240 führt das Filter 90 eine Iteration aus – es führt Z MAC-Funktionen zwischen dem K-ten Daten-/Abtastungsvektor und dem K-ten Koeffizientenvektor aus.
  • Wie durch Pfade 1244 und 1246 dargestellt, folgen auf den Schritt 1240 Schritte 1250 und 1260. Der Schritt 1250 wird zweckmäßiger Weise parallel mit Schritten 12601290 ausgeführt. Während des Schritts 1260 wird K erhöht, so dass der (K + 1)-te Daten-/Abtastungsvektor während der nächsten Ausführung des Schritts 1240 einer Iteration unterzogen wird.
  • Wie durch einen Pfad 1264 dargestellt, folgt auf den Schritt 1260 ein Abfrageschritt 1270. Im Abfrageschritt 1270 überprüft das Filter 90, ob K > W gilt. Ist die Antwort „NEIN", folgt auf den Schritt 1270 der Schritt 1240, wie durch einen Pfad 1276 dargestellt. Ist die Antwort „JA", folgt auf den Schritt 1270 ein Schritt 1280. Während des Schritts 1280 werden L erhöht und K zurückgesetzt. Wie durch einen Pfad 1284 dargestellt, folgt auf den Schritt 1280 ein Schritt 1236.
  • Wie durch einen Pfad 1244 dargestellt, folgt auf den Schritt 1240 der Schritt 1250. Im Schritt 1250 wird R(K, H) an den externen Speicher 110 gesendet. Wie durch einen Pfad 1254 dargestellt, folgt auf den Schritt 1250 der Schritt 1290. Im Schritt 1290 empfängt der Prozessor 1220 ein Signal SE(K, L), das aus dem Leiten der Abtastung SP(K, L) durch das Hybridverbindungselement 1210 resultiert. Der Prozessor 1220 vergleicht dann das Signal SE(K, L) mit der Abtastung SP(K, L). Die Differenz zwischen den beiden Signalen ist ein durch E(K, L) bezeichnetes Fehlersignal. Der Prozessor 1210 überprüft auch, ob E(K, L) > E(K) gilt. E(K) ist ein vorgegebener Wert, der den dem K-ten Kommunikationskanal zugeordneten erforderlichen Fehler angibt. Ist die Antwort „NEIN", folgt auf den Schritt 1290 ein Schritt 1300, wie durch einen Pfad 1294 dargestellt. Ist die Ant wort „JA", folgt auf den Schritt 1290 ein Schritt 1310, in dem der Echounterdrückungsprozess endet und L zurückgesetzt wird. Wie durch einen Pfad 1304 dargestellt, folgt auf den Schritt 1300 der Schritt 1236.
  • Wie durch einen Pfad 1244 dargestellt, werden die Schritte 1250 und 1300 während der Ausführung der Schritte 12601290 und selbst während der Ausführung des Schritts 1240 entsprechend einem weiteren Daten-/Abtastungsvektor ausgeführt.
  • Daher wird hier eine Ausführungsform beschrieben, die zumindest eine bevorzugte Ausführungsform eines verbesserten Verfahrens und einer verbesserten Vorrichtung zur Gruppierung von Datenprozessoranweisungen und Ausführungsformen von Anweisungssystemen umfasst. Für Fachleute ist ersichtlich, dass der offenbarte Gegenstand auf unterschiedlichste Weise verändert werden und zahlreiche Ausführungsformen annehmen kann, die sich von den vorstehend speziell ausgeführten und beschriebenen unterscheiden, wobei der Rahmen der Erfindung durch die Ansprüche definiert ist.

Claims (11)

  1. Filter (90), das zum Koppeln mit einem externen Speicher (110) zum Speichern von Daten und Koeffizienten und mit W Kommunikationskanälen (100) geeignet ist, mit einem internen Speicher (130) zum Speichern von Daten und Koeffizienten mit einer ersten Speicherbank und einer zweiten Speicherbank, einer mit dem internen Speicher (130) gekoppelten Adressenerzeugungseinheit (190) zur Erzeugung von Speicheradressen, einer mit dem internen Speicher (130) gekoppelten Multiplikations- und Summiereinheit (einer MAC-Einheit) (170) zum Ausführen von Multiplikations- und Summierfunktionen und einer mit dem internen Speicher (130), dem externen Speicher (110) und der Multiplikations- und Summiereinheit (MAC-Einheit) (170) gekoppelten Steuereinheit (180) zur Steuerung des Filters (90) in mehreren Betriebsmodi, gekennzeichnet durch eine mit der Steuereinheit (180), dem externen Speicher (110) und dem internen Speicher (130) gekoppelte erste Direktspeicherzugriffssteuerung (DNA-Steuerung) (120) zum Verbinden des externen Speichers (110) mit dem internen Speicher (130) und eine mit der Steuereinheit (180), dem externen Speicher (110) und der Multiplikations- und Summiereinheit (MAC-Einheit) (170) gekoppelte zweite DNA-Steuerung (160) zum Verbinden des externen Speichers (110) mit der Multiplikations- und Summiereinheit (MAC-Einheit) (170).
  2. Filter (90) nach Anspruch 1, bei dem ein Betriebsmodus ein Filtern mit begrenztem Impulsansprechverhalten (FIR-Filtern) von W Kommunikationskanälen zugeordneten Daten umfasst.
  3. Filter (90) nach Anspruch 2, bei dem die Multiplikations- und Summiereinheit (MAC-Einheit) (170) zwischen einem Koeffizientenvektor und einem Datenvektor, die dem gleichen Kommunikationskanal zugeordnet sind, arbeitet, um eine Filteroperation an einem Datenvektor auszuführen, wobei das Filter (90) einen Moduswechsel ausführen und den Betrieb in einem bestimmten Modus beenden kann und der Moduswechsel das Speichern der Adresse eines nächsten an die Multiplikations- und Summiereinheit (MAC-Einheit) (170) zu sendenden Koeffizientenworts und das Speichern der Adresse eines nächsten an die Multiplikations- und Summiereinheit (MAC-Einheit) (170) zu sendenden Datenworts umfasst.
  4. Filter (90) nach Anspruch 1, bei dem der Betriebsmodus ein Filtern mit unbegrenztem Impulsansprechverhalten (ein IIR-Filtern) von mehreren Kommunikationskanälen zugeordneten Daten umfasst.
  5. Filter (90) nach Anspruch 4, das zum Ausführen eines Moduswechsels und einer Beendigung des Betriebs in einem bestimmten Modus geeignet ist, wobei der Moduswechsel das Speichern der Adresse eines nächsten an die Multiplikations- und Summiereinheit (MAC-Einheit) (170) zu sendenden Koeffizientenworts und das Speichern der Adresse eines nächsten an die Multiplikations- und Summiereinheit (MAC-Einheit) (170) zu sendenden Daten/Ergebnisworts umfasst.
  6. Filter (90) nach Anspruch 1, bei dem ein Betriebsmodus eine Extrapolation von mehreren Kommunikationskanälen zugeordneten Daten umfasst.
  7. Filter (90) nach Anspruch 6, bei dem die Multiplikations- und Summiereinheit (MAC-Einheit) (170) so beschaffen ist, dass sie zum Ausführen einer Extrapolation durch eine Filteroperation an Datenvektoren eine Folge von MAC-Funktionen zwischen einem Koeffizientenvektor und einem Datenvektor ausführt, die dem gleichen Kommunikationskanal zugeordnet sind.
  8. Filter (90) nach Anspruch 7, das einen Moduswechsel durchführen und den Betrieb in einem bestimmten Modus beenden kann, wobei der Moduswechsel das Speichern der Adresse des nächsten an die Multiplikations- und Summiereinheit (MAC-Einheit) (170) zu sendenden Koeffizientenworts und das Speichern der Adresse des nächsten an die Multiplikations- und Summiereinheit (MAC-Einheit) (170) zu sendenden Datenworts umfasst.
  9. Filter (90) nach Anspruch 1, bei dem ein Betriebsmodus eine Dezimierung von mehreren Kommunikationskanälen zugeordneten Daten umfasst.
  10. Filter (90) nach Anspruch 9, bei dem die Multiplikations- und Summiereinheit (MAC-Einheit) (170) so beschaffen ist, dass sie zum Ausführen einer Dezimierung durch Filtern von Datenvektoren eine Folge von MAC-Funktionen zwischen einem Koeffizientenvektor und einem Datenvektor ausführt, die dem gleichen Kommunikationskanal zugeordnet sind.
  11. Filter (90) nach Anspruch 10, das einen Moduswechsel ausführen und den Betrieb in einem bestimmten Modus beenden kann, wobei der Moduswechsel das Speichern der Adresse des nächsten an die Multiplikations- und Summiereinheit (MAC-Einheit) (170) zu sendenden Koeffizientenworts und das Speichern der Adresse des nächsten an die Multiplikations- und Summiereinheit (MAC-Einheit) (170) zu sendenden Datenworts umfasst.
DE69937100T 1999-03-20 1999-03-20 Mehrkanalfilterungsvorrichtung und Verfahren Expired - Fee Related DE69937100T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP99105743A EP1039635B1 (de) 1999-03-20 1999-03-20 Mehrkanalfilterungsvorrichtung und Verfahren

Publications (2)

Publication Number Publication Date
DE69937100D1 DE69937100D1 (de) 2007-10-25
DE69937100T2 true DE69937100T2 (de) 2008-01-10

Family

ID=8237828

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69937100T Expired - Fee Related DE69937100T2 (de) 1999-03-20 1999-03-20 Mehrkanalfilterungsvorrichtung und Verfahren

Country Status (3)

Country Link
US (1) US6658440B1 (de)
EP (1) EP1039635B1 (de)
DE (1) DE69937100T2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7551575B1 (en) * 2002-11-05 2009-06-23 Marvell Israel (M.I.S.L.) Ltd. Context-switching multi channel programmable stream parser
US20060002475A1 (en) * 2004-07-02 2006-01-05 Fuchs Robert J Caching data for video edge filtering
KR100724533B1 (ko) * 2005-12-08 2007-06-04 한국전자통신연구원 다중채널 처리 시스템 및 그의 대역통과 필터링 방법
EP1892834A1 (de) 2006-08-23 2008-02-27 Sony Deutschland GmbH FIR-Filterverfahren und FIR-Filteranordnung
JPWO2010001562A1 (ja) * 2008-07-02 2011-12-15 ルネサスエレクトロニクス株式会社 フィルタ処理装置及び半導体装置
US10748603B2 (en) * 2018-09-28 2020-08-18 Intel Corporation In-memory multiply and accumulate with global charge-sharing
US10877752B2 (en) 2018-09-28 2020-12-29 Intel Corporation Techniques for current-sensing circuit design for compute-in-memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4881191A (en) 1987-01-13 1989-11-14 Hewlett-Packard Company Multichannel decimation/interpolation filter
US4918637A (en) 1987-01-13 1990-04-17 Hewlett-Packard Company Multichannel decimation/interpolation filter
US5262972A (en) * 1991-07-17 1993-11-16 Hughes Missile Systems Company Multichannel digital filter apparatus and method
JPH0537298A (ja) * 1991-07-29 1993-02-12 Rohm Co Ltd デイジタルフイルタ
US5339264A (en) * 1992-07-27 1994-08-16 Tektronix, Inc. Symmetric transposed FIR digital filter
KR100295257B1 (ko) * 1993-01-20 2001-09-17 다카노 야스아키 디지탈필터
US5652903A (en) 1994-11-01 1997-07-29 Motorola, Inc. DSP co-processor for use on an integrated circuit that performs multiple communication tasks
US5621800A (en) 1994-11-01 1997-04-15 Motorola, Inc. Integrated circuit that performs multiple communication tasks
US6487190B1 (en) * 1996-06-27 2002-11-26 Interdigital Technology Corporation Efficient multichannel filtering for CDMA modems
US6405229B1 (en) * 1998-01-29 2002-06-11 Sanyo Electric Co., Ltd. Digital filters

Also Published As

Publication number Publication date
US6658440B1 (en) 2003-12-02
DE69937100D1 (de) 2007-10-25
EP1039635A1 (de) 2000-09-27
EP1039635B1 (de) 2007-09-12

Similar Documents

Publication Publication Date Title
DE2730328C3 (de) Schaltungsanordnung zur Feststellung des bestübereinstimmenden Datenworts von in einem Datenwort-Speicher gespeicherten Datenworten mit einem Suchwort
DE60215835T2 (de) Reduzierung von komponenten in einer montgomery multiplikations-recheneinheit
DE3209073C2 (de) Anordnung zum Umsetzen der Zahl von Abtastlinien
DE19835216B4 (de) Prozessor und Verfahren zur parallelen Datenverarbeitung
DE3044208C2 (de) Interpolator zur Erhöhung der Wortgeschwindigkeit eines digitalen Signals
DE10129926B4 (de) Abtastratenwandlungsapparat und Verfahren dazu
DE69937100T2 (de) Mehrkanalfilterungsvorrichtung und Verfahren
US4323980A (en) Digital filter for shared-time processing on several channels
DE2145404A1 (de) Nichtrekursive Digitalfiltereinrichtung mit Verzögerungs- und Addier-Anordnung
DE3303488A1 (de) Digitales signalverarbeitungssystem
DE19737639A1 (de) Digitales Filter der Rekursiv-Bauart
DE3116042A1 (de) Digitalfiltervorrichtung
DE19514069C2 (de) Digitalfilter
DE69914087T2 (de) Digitales filter ohne multiplizierer
US4992967A (en) Digital filter using fourier transformation
DE69926576T2 (de) Betriebsmittelteilung in einem digitalen filter
DE60112998T2 (de) Automatische Prüfmustererzeugung für Funktional Register Transfer Level Schaltungen mit Zuweisungsentscheindungsdiagramme
DE2451235C2 (de) Schaltungsanordnung für ein digitales Filter
WO1990000780A1 (en) Apparatus for simultaneously filtering and resampling digital data
DE4022381C2 (de) Verwendung langer Digitalfilter bei Vorkommnis von Abrundungsfehlern
EP1120708A2 (de) Anordnung und Verfahren zur Signalverarbeitung und Speicherung
DE3416536C2 (de)
DE60021479T2 (de) Verfahren und Einrichtung zur inversen Fouriertransformation in Pipeline-Architektur
DE3216143C2 (de)
DE19741427C2 (de) Linearer Interpolator zur Interpolation eines abgetasteten Signals und lineares Interpolationsverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee