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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency 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.
Warten auf Startimpuls
Setzen Zähler 22
Ende Programmabschnitt, Register 54 laden
Ende des Programms, Register 54 laden
Nop
Setzen Zähler 22
Ende Programmabschnitt, Register 54 laden
Ende des Programms, Register 54 laden
Nop
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
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
Einschreiben in Speicher 2 und 14
Einschreiben nur in Speicher 2, Zähler 20 sperren,
Einschreiben nur in Speicher 14,
Nop
Einschreiben nur in Speicher 2, Zähler 20 sperren,
Einschreiben nur in Speicher 14,
Nop
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
Addieren Ausgänge Speicher 2 und 14
Addieren Ausgang Speicher 14 und "0"
Addieren Ausgang Speicher 2 und "0"
Nop
Löschen Akkumulator 8 auf 0
Multiplizieren Ausgänge Addierer 4 und Speicher 10
Multiplizieren Ausgänge Addierer 4 und Speicher 14
Nop
Multiplizieren Ausgänge Addierer 4 und Speicher 10
Multiplizieren Ausgänge Addierer 4 und Speicher 14
Nop
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.
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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2022954B (en) * | 1978-03-30 | 1982-04-07 | Secr Defence | Transversal filters |
-
1982
- 1982-04-30 DE DE19823216143 patent/DE3216143A1/de active Granted
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 |