DE3216143C2 - - Google Patents

Info

Publication number
DE3216143C2
DE3216143C2 DE19823216143 DE3216143A DE3216143C2 DE 3216143 C2 DE3216143 C2 DE 3216143C2 DE 19823216143 DE19823216143 DE 19823216143 DE 3216143 A DE3216143 A DE 3216143A DE 3216143 C2 DE3216143 C2 DE 3216143C2
Authority
DE
Germany
Prior art keywords
memory
input
output
arrangement
counter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE19823216143
Other languages
English (en)
Other versions
DE3216143A1 (de
Inventor
Rudolf Dipl.-Ing. 2000 Hamburg De Geppert
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.)
Philips Intellectual Property and Standards GmbH
Original Assignee
Philips Patentverwaltung GmbH
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 Philips Patentverwaltung GmbH filed Critical Philips Patentverwaltung GmbH
Priority to DE19823216143 priority Critical patent/DE3216143A1/de
Publication of DE3216143A1 publication Critical patent/DE3216143A1/de
Application granted granted Critical
Publication of DE3216143C2 publication Critical patent/DE3216143C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Description

Die Erfindung betrifft eine Anordnung zur Berechnung eines Ausgangs­ wertes y(i) aus zwei gespeicherten Datensätzen x(i), w(n) gemäß y(i) = Σ x(i-n) · w(n) mit einem ersten Speicher für den ersten und einem zweiten Speicher für den zweiten Datensatz, wobei mindestens der eine Datensatz x(i) von außerhalb zuführbar und im ersten Speicher speicherbar ist, mit einem Addierer, dessen erster Eingang mit dem Ausgang des ersten Speichers verbunden ist und dessen Ausgang mit einem ersten Eingang eines Multiplizierers mit nachfolgendem Akkumulator verbunden ist, dessen zweiter Eingang jeweils einen anderen Wort des zweiten Datensatzes erhält, wobei die Produkte im Akkumulator aufsummiert werden.
Eine derartige Gleichung zur Bestimmung eines Ausgangswertes aus zwei Eingangsdatensätzen wird auch als Konvolution bezeichnet und ist bei der Verarbeitung von kontinuierlichen Datenfolgen von Bedeutung, die beispielsweise durch periodische Abtastung und Digitalisierung eines analogen Signals gewonnen werden. Für eine digitale Filterung eines solchen zeit- und amplitudenquantisierten Signals besteht der eine Datensatz aus mehreren aufeinanderfolgenden digitalen Signalen des zu filternden Signals und der andere Datensatz aus den Filterkoeffizienten. Bei der Bildung der Autokorrelation handelt es sich bei beiden Datensätzen um zeitlich gegeneinander verschobene aufeinanderfolgende Signalwerte des zu korrelierenden Signals. Entsprechendes gilt für die Kreuz­ korrelation.
Eine Anordnung der eingangs genannten Art ist bekannt aus der GB-PS 20 22 954. Dabei handelt es sich um ein adaptives transversales Filter, das noch weitere Elemente zur Bestimmung der Filterkoeffizienten aufweist. Eine Verwendung dieser bekannten Anordnung für einen anderen Zweck, d. h. für eine andere Art der Konvolution, ist nicht möglich.
Mit den heute bekannten Techniken der Halbleiterbearbeitung ist es möglich, komplexe integrierte Schaltungen relativ preisgünstig herzustellen, wenn diese in große Stückzahlen gefertigt werden können. Die Ausführung der eingangs genannten bekannten Anordnung als integrierte Schaltung kann jedoch nicht sehr preisgünstig sein, da sie nur für den angegebenen speziellen Zweck geeignet ist und die Verwendung einer derartigen Anordnung in großen Stückzahlen unwahr­ scheinlich ist.
Aufgabe der vorliegenden Erfindung ist es, eine Schaltungs­ anordnung der eingangs genannten Art anzugeben, die für sehr unterschiedliche Zwecke einsetzbar ist und weitestgehend selbständig arbeitet, d. h. ohne die Notwendigkeit weiterer externer Schaltungsanordnungen.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß ein vom ersten und zweiten Speicher unabhängiger dritter Speicher vorgesehen ist, dem ebenfalls ein Datensatz von außerhalb der Anordnung zuführbar ist, daß der Eingang der Anordnung über einen ersten Umschalter wahlweise mit dem Eingang des ersten Speichers, des dritten Speichers oder beider Speicher verbindbar ist, daß der zweite Eingang des Addierers mit dem Ausgang des dritten Speichers verbindbar ist, daß für den ersten und den dritten Speicher je getrennte Adressengeneratoren für die Adressierung beim Einschreiben eines Datensatzes von außerhalb und beim Auslesen vorgesehen sind, wobei die Adressengeneratoren für das Auslesen nach jeder Übernahme eines Wertes von außerhalb auf eine vom Adressengenerator für das Einschreiben abhängige Stellung setzbar sind und mindestens ein Adressengenerator für das Auslesen ständig und der andere Adressengenerator wahlweise eine Adressenfolge erzeugt, die in umgekehrter Reihenfolge wie beim Einschreiben verläuft, und daß ferner ein von einem Befehlszähler adressierter Programmspeicher für Folgen von Befehlen sowie ein Dekodierer vorgesehen sind, der das Setzen und die Zählrichtung der Adressengeneratoren und den ersten Umschalter am Eingang der Anordnung steuert, und daß ein Taktsignal das Weiterschalten des Befehlszählers und der Adressengeneratoren für das Auslesen des ersten und des dritten Speichers sowie den Akkumulator steuert.
Mit einer solchen Anordnung ist durch den dabei vorgesehenen Programmspeicher ein sehr flexibler Einsatz als digitales Transversalfilter mit hoher Verarbeitungsgeschwindigkeit für die verschiedensten Zwecke, d. h. für die verschiedensten Filtercharakteristiken möglich.
Eine Ausgestaltung der erfindungsgemäßen Anordnung, die einen noch allgemeineren Einsatz erlaubt, ist dadurch gekennzeichnet, daß der zweite Eingang des Multiplizierers von dem Ausgang des zweiten Speichers über einen ebenfalls vom Dekodierer gesteuerten zweiten Umschalter auf den Ausgang des dritten Speichers umschaltbar ist. Dabei ist es zweck­ mäßig, daß der zweite Eingang des Addierers über einen eben­ falls vom Dekodierer gesteuerten dritten Umschalter von dem Ausgang des dritten Speichers trennbar bzw. auf den festen Wert "0" umschaltbar ist. Mit einer derartigen Anordnung können nicht nur digitale Filter verschiedenster Art realisiert werden, sondern es können auch Kreuz- und Autokorrelations­ koeffizienten mit leicht einstellbaren Parametern bestimmt werden.
Eine andere Ausgestaltung der erfindungsgemäßen Anordnung, die noch weitere Anwendungsmöglichkeiten ergibt, ist dadurch gekennzeichnet, daß der erste Eingang des Addierers über einen ebenfalls vom Dekodierer gesteuerten vierten Umschalter von dem Ausgang des ersten Speichers trennbar bzw. auf den festen Wert "0" umschaltbar ist. Dadurch ist es möglich, insbesondere verschiedene Datensätze nacheinander mit immer dem gleichen zweiten Datensatz zu verarbeiten, beispielsweise für die Kreuzkorrelation eines Signals mit einem festen Signal oder die Realisierung eines digitalen Filters mit unsymmetrischen Aufbau, d. h. mit unsymmetrischer Verteilung der Filterkoeffizienten.
Die Einsatzmöglichkeiten einer elektrischen Schaltung hängen auch von der Verarbeitungsgeschwindigkeit ab. Die Verarbeitungs­ geschwindigkeit der einzelnen Elemente läßt sich jedoch innerhalb einer bestimmten Technologie nicht beliebig steigern, so daß es wichtig ist, durch eine entsprechende Organisation der Verarbeitung eine möglichst hohe Verarbeitungs­ geschwindigkeit zu erzielen. Hierfür ist es zweckmäßig, daß jeder Befehl eine Anzahl Abschnitte aufweist, von denen jeder einer bestimmten Funktion wie die Steuerung von Umschaltern und die Steuerung eines Adressengenerators fest zugeordnet ist, und daß der Dekodierer alle Befehlsabschnitte parallel dekodiert. Dadurch können insbesondere der Addierer und der Multiplizierer parallel Verarbeitungsschritte durchführen. Wenn darüber hinaus der Addierer noch mit einem Auffangregister vor dem Ausgang versehen wird und die Ver­ arbeitung nach dem Pipeline-Prinzip erfolgt, kann die maximale Verarbeitungsgeschwindigkeit der Elemente ausgenutzt werden. Bei der Realisierung eines Filters mit symmetrischer Verteilung der Koeffizienten ist durch Verwendung der zwei Speicher die Verarbeitungszeit für einen Eingangssignalwert halbiert.
Um die Steuerung der verschiedenen möglichen Verarbeitungen zu vereinfachen bzw. den Programmspeicher klein zu halten, ist es vorteilhaft, daß ein vom Taktsignal gesteuerter Schleifenzähler vorgesehen ist, der nur bei einer vorbe­ stimmten Zählerstellung das Weiterschalten des Befehls­ zählers freigibt und der vom Dekodierer auf eine im Befehl angegebene Stellung setzbar ist. Auf diese Weise kann ein Verarbeitungsbefehl mit geringem Aufwand eine Anzahl Male wiederholt werden, so daß dafür nicht jeweils ein neuer Befehl notwendig ist.
Die Herstellung einer komplexen digitalen Schaltung in integrierter Technik erfordert einen relativ hohen Anfangs­ aufwand, jedoch können in solchen Schaltungen enthaltene Speicher für verschiedene Anwendungsfälle leicht mit ver­ schiedenen Inhalten versehen werden, ohne daß damit ein besonderer Herstellungsaufwand verbunden ist. Dadurch können in der erfindungsgemäßen Anordnung der Programmspeicher und auch der zweite Speicher einen bei der Herstellung der Anordnung festgelegten Inhalt haben. Für manche Zwecke, ins­ besondere für die Anpassung der erfindungsgemäßen Anordnung an einen bestimmten Zweck, d. h. für die Bestimmung der dafür notwendigen Speicherinhalte des Programmspeichers und des zweiten Speichers, ist es jedoch zweckmäßig, daß nach einer weiteren Ausgestaltung der zweite Speicher und/oder der Programmspeicher von außen einschreibbar sind.
Bei der Verarbeitung von Signalen können durch bestimmte Signalkombinationen Fehlerzustände wie Überlauf des Addierers oder Multiplizierers auftreten. Um die Anzahl der Anschlüsse der erfindungsgemäßen Anordnung gering zu halten, ist es nach einer weiteren Ausgestaltung zweckmäßig, daß eine Fehlerschaltung vorgesehen ist, die bei vorgegebenen Zuständen des Addierers, des Multiplizierers und/oder des Akkumulators ein Fehlersignal nach außerhalb der Anordnung abgibt.
Bei der Addition zweier Dualzahlen mit gleicher Stellenzahl entsteht eine Ausgangsdualzahl mit einer um eine Stelle ver­ größerten Stellenzahl, während bei der Multiplikation zweier Dualzahlen am Ausgang des Multiplizierers eine Dualzahl mit einer Stellenzahl gleich der Summe der Stellenzahlen beider Eingangs-Dualzahlen auftritt. Wenn eine Anzahl derartiger Produkte aufsummiert wird, vergrößert sich die Stellenzahl der dabei entstehenden Dualzahl noch weiter. Dies ist bei der erfindungsgemäßen Anordnung bei dem Akkumulator der Fall, der also für die Verarbeitung von Dualzahlen mit einer Stellenzahl ausgelegt sein muß, die ein Mehrfaches der Stellen­ zahl der dem Eingang der Anordnung zugeführten Dualzahlen entspricht. Die Weiterverarbeitung der von der Anordnung berechneten Werte erfolgt jedoch mit einer kleineren Stellen­ zahl, die vorzugsweise gleich oder annähernd gleich der Stellenzahl der zugeführten Eingangs-Dualzahlen ist. Um derartige Ausgangswerte zu erhalten, können die Stellen niedrigster Wertigkeit des Akkumulatorausgangs einfach wegge­ lassen werden. Dies führt jedoch teilweise zu unzulässigen Fehlern. Eine Weiterbildung der erfindungsgemäßen Anordnung ist daher dadurch gekennzeichnet, daß dem Akkumulator eine Stellenbegrenzungsschaltung nachgeschaltet ist, die durch ein Steuersignal von außerhalb der Anordnung auf Rundung oder Unterdrückung einer vorgegebenen Anzahl niedrigster Stellen der vom Akkumulator abgegebenen Datenwörter umschaltbar ist. Auf diese Weise können die Ausgangssignale der Anordnung bei gegebener Stellenzahl leicht den jeweiligen Bedürfnissen angepaßt werden.
Ein Ausführungsbeispiel der Erfindung wird nachstehend anhand der Zeichnung näher erläutert. Darin bestehen Verbindungen von Elementen, die mit doppelten Linien gezeichnet sind, aus einer Anzahl paralleler Leitungen zur Übertragung von Datenwörtern in paralleler Form.
Der Eingang 1 für parallele Datenwörter führt auf einen als Umschalter wirkenden Demultiplexer 32, der von einem Befehls­ dekodierer 28 über die Verbindung 31 gesteuert den Eingang 1 mit dem Ausgang 33 a oder 33 b oder mit beiden Ausgängen verbindet. Zur Übertragung dieser mehr als zwei Wahl­ möglichkeiten besteht die Verbindung 31 aus mehr als einer Leitung.
Der Ausgang 33 a führt auf den Dateneingang eines Speichers 2 und der Ausgang 33 b führt auf den Dateneingang eines weiteren Speichers 14. Diese beiden Speicher 2 und 14 können auf zwei verschiedene Weisen adressiert werden, was durch das Signal auf der Leitung 17 bestimmt wird, die ebenfalls vom Befehlsdekodierer 28 ausgeht. Beim einen Signalwert auf der Leitung 17 werden beide Speicher vom dem Adressengenerator 20 für das Einschreiben, der hier als Zähler angenommen ist, über die Verbindung 21 adressiert, was der Fall ist beim Einschreiben von über den Eingang 1 zugeführten Daten. Über die vom Befehlsdekodierer 28 kommende Leitung 19 wird der Zähler 20 weitergeschaltet bzw. das Weiterschalten freigegeben oder gesperrt.
Beim Auslesen wird der Speicher 2 von dem Adressengenerator 22, der ebenfalls als Zähler ausgebildet ist, adressiert. Dieser Zähler wird durch ein Signal auf der ebenfalls vom Befehlsdekodierer 28 kommenden Leitung 23 auf die über die Verbindung 21 zugeführte Stellung des Zählers 20 gesetzt und zählt danach mit dem Taktsignal Cl rückwärts. Der Speicher 14 wird dagegen beim Auslesen von einem Adressengenerator 24 adressiert, der ebenfalls als setzbarer Zähler ausgebildet ist. Auch diesem Zähler wird über die Verbindung 21 die Stellung des Zählers 20 zugeführt, jedoch erfolgt das Setzen bei einem Signal auf der Leitung 27 vom Befehlsdekodierer 28 auf eine Stellung, die um einen Wert gegenüber der Stellung des Zählers 20 verschoben ist, der über die Verbindung 25 vom Befehlsdekodierer 28 geliefert wird. Ferner kann die Zählrichtung des Zählers 24 durch ein Signal vom Befehls­ dekodierer 28 eingestellt werden.
Der Datenausgang 3 des Speichers 2 führt über einen als Multiplexer 50 gebildeten Umschalter auf den einen Eingang eines Addierers 4. Entsprechend führt der Datenausgang 15 des Speichers 14 über einen weiteren, ebenfalls als Multiplexer 16 ausgeführten Umschalter auf den anderen Eingang des Addierers 4. Durch Ansteuerung der Multiplexer 16 bzw. 50 über Leitungen, die vom Befehlsdekodierer 28 ausgehen und die hier der Übersichtlichkeit halber nicht durchgezogen sind, kann jeder der Multiplexer den betreffenden Eingang des Addierers 4 mit dem Wert "0" verbunden werden, so daß dann der Addierer 4 nicht mehr als Addierer wirkt, sondern am Ausgang 5 das Ausgangssignal des Speichers abgibt, dessen Multiplexer nicht auf den festen Wert "0" geschaltet ist. Der Ausgang des Addierers 4 kann mit einem nicht dargestellten Register versehen sein, das die gebildete Summe mit jedem Taktsignal übernimmt und daß durch ein vom Befehls­ dekodierer 28 kommendes Signal gelöscht wird.
Der Ausgang 5 des Addierers 4 führt auf den einen Eingang eines Multiplizierers 6, dessen anderer Eingang über die Verbindung 11 mit dem Ausgang eines ebenfalls als Multiplexer 18 ausgeführten Umschalters verbunden ist, der ebenfalls von einem Ausgang des Befehlsdekodierers 28 gesteuert wird, wie durch den oberen Eingang angedeutet ist. Dieser Multiplexer 18 verbindet entweder den Ausgang 15 des Speichers 14 oder den Ausgang eines weiteren Speichers 10 über die Verbindung 11 mit dem zweiten Eingang des Multi­ plizierers 6. Der Speicher 10 wird von einem Zähler 12 adressiert, der über ein Signal auf der Leitung 45 auf eine Anfangsstellung zurückgesetzt wird und der mit dem Taktsignal Cl weiterschaltet. Der Inhalt des Speichers 10 kann über den Eingang 11 eingeschrieben werden, wenn der Speicher 10 nicht als Festwertspeicher ausgebildet ist, dessen Inhalt bei der Herstellung der dargestellten Anordnung festgelegt wird.
Dem Multiplizierer 6 ist ein Akkumulator 8 nachgeschaltet, der eine Anzahl von dem Multiplizierer 6 erzeugter Produkte aufsummiert. Da die Anzahl der Stellen der Datenwörter sich sowohl beim Multiplizieren wie auch beim Aufsummieren erhöht, treten am Ausgang 9 des Akkumulators 8 Datenwörter mit einer erheblich vergrößerten Stellenzahl auf, was durch die breiter dargestellte Verbindung 9 symbolisiert werden soll.
Die Verbindung 9 führt auf eine Schaltung 38, die die Stellen­ zahl der zugeführten Datenwörter verringert, entweder durch Unterdrücken der Stellen niedrigster Wertigkeit oder durch Rundung der Stellen niedrigster Wertigkeit bis zu einer vorgegebenen Stelle des zugeführten Datenwortes. Ein über den Eingang 40 von außen zugeführtes Signal bestimmt, welcher dieser beiden Funktionen in der Stellenbegrenzungs­ anordnung 38 ausgeführt wird. Dadurch treten an deren Ausgang 39 nur Datenwörter mit vorgegebener Stellenzahl auf, die einem Register 54 zugeführt werden. In dieses Register 54 wird ein von der Stellenbegrenzungsanordnung 38 geliefertes Datenwort jeweils nach vollständiger Berechnung dieses Datenwortes durch ein ebenfalls vom Befehlsdekodierer 28 am Ende eines Programmabschnittes bzw. Programms geliefertes Signal eingeschrieben und bleibt am Ausgang 55 bis zum Einschreiben des nächsten Datenwortes zur Verfügung. Dieses Signal wird über den Ausgang 56 nach außerhalb der Anordnung geleitet, um einer ggf. an den Ausgang 55 angeschlossenen anderen Anordnung zu signalisieren, daß ein neues Datenwort am Ausgang 55 zur Verfügung steht.
Falls der Addierer 4, der Multiplizierer 6 oder insbesondere der Akkumulator 8 in einen fehlerhaften Zustand geraten sollte, beispielsweise durch Stellenüberlauf, gibt das betreffende Element ein Signal an die Fehlerschaltung 52 ab, die daraus ein Fehlersignal am Ausgang 53 erzeugt.
Der Befehlsdekodierer 28 dekodiert die am Ausgang eines Programmspeichers 26 auftretenden Befehlswörter, wobei der Programmspeicher 26 von einem Befehlszähler 30 adressiert wird. Der Befehlszähler 30 wird durch ein Signal auf der Leitung 45 in seine Anfangsstellung gesetzt und zählt dann mit dem Taktsignal Cl auf der Leitung 47, wenn er über die Leitung 37 freigegeben ist. Die Leitung 37 kommt von dem Steuerausgang eines Schleifenzählers 36, der durch ein Signal vom Befehlsdekodierer 28 auf eine ebenfalls von diesem über die Verbindung 29 zugeführte Stellung gesetzt wird. Der Schleifenzähler 36 zählt dann mittels des Taktsignals Cl auf eine Anfangsstellung, vorzugsweise durch Rückwärtszählung, und in dieser Anfangsstellung wird die weitere Zählung unterbrochen und auf der Leitung 37 ein Sperrsignal beendet. Dieses Sperrsignal kann auch durch ein gesondertes Signal vom Befehlsdekodierer 28 aufgehoben werden.
Die Steuerschaltung 42 dient für verschiedene allgemeine Steuerfunktionen, insbesondere auch für das Starten jeweils eines Verarbeitungsablaufes. Über den Eingang 44 wird ein Startsignal zugeführt, wenn dem Eingang 1 ein neues Datenwort zugeführt wird, beispielsweise von einem Analog-Digital- Wandler außerhalb der Anordnung. Dieses Startsignal erzeugt ein Rücksetz-Signal auf der Leitung 45, das den Adressen­ zähler 12 für den Speicher 10 und den Befehlszähler 30 auf eine Anfangsstellung zurücksetzt, und danach wird ein über den Eingang 46 zugeführtes Taktsignal freigegeben und über die Ausgangsleitung 47 als internes Taktsignal Cl abge­ geben. Mit einem Vorbereitungssignal am Eingang 48 wird ebenfalls das interne Taktsignal Cl freigegeben, und über den Ausgang 49 werden über den Eingang 13 Daten in den Speicher 10 und über den Eingang 34 Befehle in den Programm­ speicher 26 eingeschrieben. Die Eingänge 13 und 34 können auch zu einem Eingang zusammengefaßt werden, so daß dann die beiden Speicher nacheinander gefüllt werden, wobei zweckmäßig zunächst der Speicher 10 gefüllt wird, damit danach das Einschreiben auch abgebrochen werden kann und damit die Anordnung bei unverändertem Programm beispielsweise für eine Filterung diese mit anderen Koeffizienten durchführen kann.
Vor der Beschreibung der Funktion der Anordnung anhand einiger Beispiele wird zunächst der Aufbau der im Programm­ speicher 26 enthaltenen bzw. vom Befehlsdekodierer 28 dekodierten Befehle beschrieben. Jeder Befehl enthält die gleiche Anzahl Bits, beispielsweise 16, die in mehrere Gruppen unterteilt sind, wobei jede Gruppe einen bestimmten Funktionskomplex steuert, wie nachstehend aufgeführt ist.
Allgemeine Befehle
Warten auf Startimpuls
Setzen Zähler 22
Ende Programmabschnitt, Register 54 laden
Ende des Programms, Register 54 laden
Nop
Unmittelbare Setzbefehle
Schleifenzähler 36 auf Wert entsprechend Befehl setzen
Adressenzähler 24 setzen mit Versatz gemäß Wert im Befehl, Aufwärtszählung
Adressenzähler 24 setzen mit Versatz gemäß Wert im Befehl, Abwärtszählung
Nop
Speicherschreibbefehle
Einschreiben in Speicher 2 und 14
Einschreiben nur in Speicher 2, Zähler 20 sperren,
Einschreiben nur in Speicher 14,
Nop
Addierersteuerung
Register im Addierer löschen
Addieren Ausgänge Speicher 2 und 14
Addieren Ausgang Speicher 14 und "0"
Addieren Ausgang Speicher 2 und "0"
Nop
Steuerung Multiplizierer/Akkumulator
Löschen Akkumulator 8 auf 0
Multiplizieren Ausgänge Addierer 4 und Speicher 10
Multiplizieren Ausgänge Addierer 4 und Speicher 14
Nop
Schleifensteuerbefehl
Programmzählersperre Ein/Aus
Jede der angegebenen Funktionen entspricht einer bestimmten Bitkombination in der betreffenden Gruppe. Der Befehl "Nop" bedeutet, daß hierbei keine Funktion ausgelöst wird. Bei den Zählersetzbefehlen kann der im Befehl enthaltene Wert beispielsweise die drei darauf folgenden Gruppen umfassen, so daß diese innerhalb des Befehls zwei verschiedene Funktionen haben, nämlich einmal die angegebenen Befehle, wenn kein Zählersetzbefehl ausgeführt wird, während bei einem Zähler­ setzbefehl die Bits dieser drei Gruppen als die einzustellende Schleifenzählerstellung interpretiert wird.
Die Entschlüsselung dieser Bitgruppen in jedem vom Programm­ speicher 26 abgegebenen Befehl erfolgt parallel durch den Befehlsdekodierer 28. Die Leitungen 19 und 31 werden beispielsweise durch Dekodierung der dritten Gruppe gesteuert. Die Verbindung 29 umfaßt ebenso wie die Verbindung 25 die dritte bis fünfte Gruppe der Bits eines Zählersetzbefehls bzw. jedes Befehls, da das Zuführen von Signalen an den Vorstell­ eingang eines Zählers keine Wirkung hat, wenn nicht gleichzeitig ein Setzsignal erfolgt. Die Verbindungen 29 und 25 können daher auch von dem selben Ausgang des Befehlsdekodierers 28 abgeleitet werden.
Als ein Beispiel für die Funktion der beschriebenen Anordnung soll eine digitale Filterung eines Eingangssignals, bestehend aus einer Folge von Datenwerten x(i), beschrieben werden. Die gefilterten Ausgangswerte y(i) werden auf folgende Weise bestimmt:
Darin stellt der Wert N die Länge des Filters und h(n) die Filterkoeffizienten dar. Wenn diese Filterkoeffizienten symmetrisch zur Filtermitte sind, kann die Gleichung auch wie folgt geschrieben werden:
Es werden also jeweils die symmetrisch zur Filtermitte liegenden Abtastwerte x(i) zunächst addiert und dann mit dem für beide gleichen Filterkoeffizienten multipliziert, so daß die Anzahl der Multiplikationen halbiert wird. Um die Addition möglichst schnell durchführen zu können, werden die Eingangsdaten in beiden Speichern 2 und 14 gleichzeitig gespeichert und entsprechend versetzt ausgelesen. Die Folge der Befehle ist in der Tabelle I angegeben.
Tabelle
Der Befehl Nr. 1 stellt den Ruhezustand bis zum Eintreffen eines neuen Abtastwertes x(i) am Eingang 1 dar. Sobald dieser Wert eingetroffen ist und dem Eingang 44 ein Start­ signal zugeführt wurde, adressiert der Befehlszähler 30 den Befehl Nr. 2, bei dem der Wert am Eingang 1 in beide Speicher 2 und 14 eingeschrieben wird und der Addierer 4 und der Akkumulator 8 gelöscht wird. Dabei wird angenommen, daß der Akkumulator 4 ein Pufferregister enthält, um die Verarbeitung nach dem Pipeline-Prinzip zu beschleunigen. Mit dem Befehl Nr. 3 wird der Zähler 22 auf die Stellung des Zählers 20 gesetzt, d. h. auf den zuletzt eingeschriebenen Abtastwert entsprechend n = 0, und der Zähler 24 wird auf einen Wert gesetzt, der um N gegenüber der Stellung des Zählers 20 ver­ schoben ist, so daß ein entsprechend früherer Abtastwert adressiert wird. Daraus ist erkennbar, daß die absolute Stellung des Zählers 20 zu Beginn einer Verarbeitung einer Folge von Abtastsignalen unwichtig ist, da beim Auslesen immer von der Stellung beim Einschreiben ausgegangen wird.
Beim Befehl Nr. 4 wird der Schleifenzähler 36 auf die Stellung N-3/2 gesetzt, da ein Filter mit einer ungeraden Anzahl von Filterkoeffizienten angenommen wird und durch das Pipeline- Verarbeitungsprinzip noch ein abschließender Verarbeitungs­ schritt erforderlich ist, wie aus dem weiteren Programm hervorgeht. Beim Befehl Nr. 5 addiert der Addierer 4 die Ausgangssignale der Speicher 2 und 14 und speichert diese in seinem Register zwischen. Beim Befehl Nr. 6 wird diese zwischengespeicherte Summe mit dem ersten Filterkoeffizienten aus dem Speicher 10 multipliziert, und gleichzeitig werden die beiden nächsten Werte aus den Speichern 2 und 14, d. h. der zweite und der vorletzte Abtastwert, addiert und zwischengespeichert. Dieser Vorgang wiederholt sich N-3/2 mal, da der Schleifenzähler eingeschaltet ist, und das Weiter­ schalten des Befehlszählers 30 sperrt, bis der Schleifen­ zähler 36 seine Anfangsstellung erreicht hat. Beim danach folgenden Befehl Nr. 7 wird nur ein Wert aus dem Speicher 14 ausgelesen und im Addierer 4 zwischengespeichert, während die zuletzt gebildete Summe im Multiplizierer 6 verarbeitet wird. Falls das Filter eine gerade Anzahl von Filterkoeffizienten aufweist, entfällt der Befehl Nr. 7, und der Schleifenzähler wird im Befehl Nr. 4 auf den Wert N-2/2 gesetzt.
Beim Befehl Nr. 8 wird die zuletzt im Addierer 4 gebildete Summe bzw. der zuletzt zwischengespeicherte Wert mit dem letzten Filterkoeffizienten aus dem Speicher 10 verarbeitet, und mit dem Befehl Nr. 9 ist die Berechnung abgeschlossen, und der Ausgangswert der Stellenbegrenzungsschaltung 38 wird in das Register 54 übernommen. Nun kann der nächste Wert dem Eingang 1 zugeführt werden, der auf gleiche Weise verarbeitet wird. Der Ausgang 55 erzeugt dann eine Folge von Werten entsprechend dem gefilterten Eingangssignal.
In entsprechender Weise können beispielsweise auch Korrelationen wie Autokorrelationen, bei denen die Speicher 2 und 14 die gleichen Eingangswerte erhalten und die Zähler 22 und 24 mit einem entsprechenden Versatz parallel in die gleiche Richtung zählen, oder Kreuzkorrelationen durchgeführt werden, wobei die zu korrelierenden Werte beispielsweise verschachtelt dem Eingang 1 zugeführt und paarweise abwechselnd in die Speicher 2 und 14 an jeweils der selben Adresse eingeschrieben werden.

Claims (9)

1. Anordnung zur Berechnung eines Ausgangswertes y(i) aus zwei gespeicherten Datensätzen x(i), w(n) gemäß y(i) = Σ x(i-n) · w(n) mit einem ersten Speicher für den ersten und einem zweiten Speicher für den zweiten Datensatz, wobei mindestens der eine Datensatz x(i) von außerhalb zuführbar und im ersten Speicher speicherbar ist, mit einem Addierer, dessen erster Eingang mit dem Ausgang des ersten Speichers verbunden ist und dessen Ausgang mit einem ersten Eingang eines Multiplizierers mit nachfolgendem Akkumulator verbunden ist, dessen zweiter Eingang jeweils einen anderen Wert des zweiten Datensatzes erhält, wobei die Produkte im Akkumulator auf­ summiert werden, dadurch gekennzeichnet, daß ein vom ersten und zweiten Speicher (2, 10) unabhängiger dritter Speicher (14) vorgesehen ist, dem ebenfalls ein Datensatz von außerhalb der Anordnung zuführbar ist, daß der Eingang (1) der Anordnung über einen ersten Umschalter (32) wahlweise mit dem Eingang des ersten Speichers (2), des dritten Speichers (14) oder beider Speicher (2, 14) verbindbar ist, daß der zweite Eingang des Addierers (4) mit dem Ausgang des dritten Speichers verbindbar ist, daß für den ersten und den dritten Speicher (2, 14) je getrennte Adressengeneratoren (20, 22, 24) für die Adressierung beim Einschreiben eines Datensatzes von außerhalb und beim Auslesen vorgesehen sind, wobei die Adressengeneratoren (22, 24) für das Auslesen nach jeder Übernahme eines Wertes von außerhalb auf eine vom Adressen­ generator (20) für das Einschreiben abhängige Stellung setzbar sind und mindestens ein Adressengenerator (22) für das Auslesen ständig und der andere Adressengenerator (24) wahl­ weise eine Adressenfolge erzeugt, die in umgekehrter Reihenfolge wie beim Einschreiben verläuft, und daß ferner ein von einem Befehlszähler (30) adressierter Programm­ speicher (26) für Folgen von Befehlen sowie ein Dekodierer (28) vorgesehen sind, der das Setzen und die Zählrichtung der Adressengeneratoren (20, 22, 24) und den ersten Umschalter (32) am Eingang (1) der Anordnung steuert, und daß ein Taktsignal (Cl) das Weiterschalten des Befehlszählers (30) und der Adressengeneratoren (22, 24) für das Auslesen des ersten und des dritten Speichers (2, 14) sowie den Akkumulator (8) steuert.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der zweite Eingang des Multiplizierers (6) von dem Ausgang des zweiten Speichers (10) über einen ebenfalls vom Dekodierer (28) gesteuerten zweiten Umschalter (18) auf den Ausgang des dritten Speichers (14) umschaltbar ist.
3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß der zweite Eingang des Addierers (4) über einen ebenfalls vom Dekodierer (28) gesteuerten dritten Umschalter (16) von dem Ausgang des dritten Speichers (14) trennbar bzw. auf den festen Wert "0" umschaltbar ist.
4. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der erste Eingang des Addierers (4) über einen ebenfalls vom Dekodierer (28) gesteuerten vierten Umschalter (50) von dem Ausgang des ersten Speichers (2) trennbar bzw. auf den festen Wert "0" umschaltbar ist.
5. Anordnung nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß jeder Befehl die gleiche Anzahl Abschnitte aufweist, von denen jeder einer bestimmten Funktion wie der Steuerung von Umschaltern (16, 18, 32, 50) und der Steuerung eines Adressengenerators (22, 24) fest zugeordnet ist, und daß der Dekodierer (28) alle Befehls­ abschnitte parallel dekodiert.
6. Anordnung nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß ein vom Taktsignal (Cl) gesteuerter Schleifenzähler (36) vorgesehen ist, der nur bei einer vorbestimmten Zählerstellung das Weiterschalten des Befehls­ zählers (30) freigibt und der vom Dekodierer (28) auf eine im Befehl angegebene Stellung setzbar ist.
7. Anordnung nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß der zweite Speicher (10) und/oder der Programmspeicher (26) von außen einschreibbar sind.
8. Anordnung nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß eine Fehlerschaltung (52) vorgesehen ist, die bei vorgegebenen Zuständen des Addierers (4), des Multiplizierers (6) und/oder des Akkumulators (8) ein Fehlersignal nach außerhalb der Anordnung abgibt.
9. Anordnung nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß dem Akkumulator (8) eine Stellen­ begrenzungsschaltung (38) nachgeschaltet ist, die durch ein Steuersignal von außerhalb der Anordnung auf Rundung oder Unterdrückung einer vorgegebenen Anzahl niedrigster Stellen der vom Akkumulator (8) abgegebenen Datenwörter umschaltbar ist.
DE19823216143 1982-04-30 1982-04-30 Anordnung zur berechnung von konvolutionswerten Granted DE3216143A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19823216143 DE3216143A1 (de) 1982-04-30 1982-04-30 Anordnung zur berechnung von konvolutionswerten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19823216143 DE3216143A1 (de) 1982-04-30 1982-04-30 Anordnung zur berechnung von konvolutionswerten

Publications (2)

Publication Number Publication Date
DE3216143A1 DE3216143A1 (de) 1983-11-03
DE3216143C2 true DE3216143C2 (de) 1990-04-05

Family

ID=6162359

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823216143 Granted DE3216143A1 (de) 1982-04-30 1982-04-30 Anordnung zur berechnung von konvolutionswerten

Country Status (1)

Country Link
DE (1) DE3216143A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4616333A (en) * 1984-06-05 1986-10-07 Elscint, Ltd. Data correlation system
CN112579647A (zh) * 2020-12-22 2021-03-30 科华恒盛股份有限公司 一种数据信息获取方法及相关装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2022954B (en) * 1978-03-30 1982-04-07 Secr Defence Transversal filters

Also Published As

Publication number Publication date
DE3216143A1 (de) 1983-11-03

Similar Documents

Publication Publication Date Title
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE3121972C2 (de)
DE3132225C2 (de) Einrichtung für die Adressierung gespeicherter Ergebniswerte bei einer schnellen Hadamard-Transformation
DE1082435B (de) Addierwerk
DE2150878C3 (de) Rekursives digitales Filter
DE2644284A1 (de) Verfahren zum betrieb eines transversalfilters
DE3632639A1 (de) Einrichtung zum verarbeiten von bilddaten durch faltung
EP0149785B1 (de) Verfahren und Schaltungsanordnung zur Digitalsignalverarbeitung nach Art eines vorzugsweise adaptiven Transversalfilters
DE2918692C2 (de) Digitalfilter
DE2729912A1 (de) Digitale signalverarbeitungsanordnung
DE2801272A1 (de) Schaltungsanordnung mit gewichtsfaktorabhaengiger ladungsaufteilung und -uebertragung
DE2947072C2 (de) (b + a)-Bit-D/A-Wandler mit b-Bit- Hilfs-D/A-Wandler
DE2523625A1 (de) Digitalfilter
DE3447729A1 (de) Verfahren und vorrichtung zur dezimal-multiplikation
DE2848096C3 (de) Digitale Addieranordnung
DE2451235A1 (de) Schaltungsanordnung fuer ein digitales filter
DE3216143C2 (de)
DE2554562A1 (de) Nichtrekursives digitalfilter mit herabgesetzter ausgangsabtastfrequenz
DE2605495B2 (de) Multiplikationsschaltung, insbesondere zum filtern von zeitmultiplexinformationen
DE2146108A1 (de) Synchrone Pufferanordnung
DE2840471A1 (de) Digitales filter
EP0346750B1 (de) Anordnung zur DPCM-Codierung mit hoher Datenrate
DE2211376A1 (de) Digitalfilter
DE2430349B2 (de)
EP0255554B1 (de) Nichtrekursives Digitalfilter

Legal Events

Date Code Title Description
8120 Willingness to grant licenses paragraph 23
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee