DE1549584A1 - Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten - Google Patents

Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten

Info

Publication number
DE1549584A1
DE1549584A1 DE19671549584 DE1549584A DE1549584A1 DE 1549584 A1 DE1549584 A1 DE 1549584A1 DE 19671549584 DE19671549584 DE 19671549584 DE 1549584 A DE1549584 A DE 1549584A DE 1549584 A1 DE1549584 A1 DE 1549584A1
Authority
DE
Germany
Prior art keywords
sequence
memory
complex
generated
digits
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.)
Granted
Application number
DE19671549584
Other languages
English (en)
Other versions
DE1549584C3 (de
DE1549584B2 (de
Inventor
Gilmartin Jun Michael Joseph
Shively Richard Robert
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.)
AT&T Corp
Original Assignee
Western Electric Co 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 Western Electric Co Inc filed Critical Western Electric Co Inc
Publication of DE1549584A1 publication Critical patent/DE1549584A1/de
Publication of DE1549584B2 publication Critical patent/DE1549584B2/de
Application granted granted Critical
Publication of DE1549584C3 publication Critical patent/DE1549584C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/548Trigonometric functions; Co-ordinate transformations
    • 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/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Landscapes

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

Description

WESTERN ELECTRIC COMPANY Incorporated Gilmartin-Shively 1-1
York, N.J., 10007, USA
Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten
Die Erfindung bezieht sich auf einen digitalen Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten entsprechend einer Eingangsfolge von Abtastwerten (sample values).
Es gibt zahlreiche Anwendungsfälle, in denen es notwendig ist, den Frequenzinhalt von Signalen zu bestimmen. In einigen Fällen ist es möglich, eine dauerhafte Aufzeichnung des Signals zu erhalten und sodann eine Spektralanalyse dieser Aufzeichnung unter Verwendung eines Vielzweckdigitalrechners in einer Weise durchzuführen, wie dies beispielsweise in der Monographie "The Measurement of Power Spectra" von R.B. Blackman und J.W.Tukey, John Wiley and Sons, New York, 1962, beschrieben wurde. Nach dieser Methode ist ein hoher Genauigkeitsgrad möglich und die Resultate können zur Elimihierung jeglicher Anomalien geglättet werden. Wegen der iterativen Natur dieses Prozesses können die Resultate jedoch häufig erst nach einer beträchtlichen Verarbeitungsperiode erhalten werden.
BAD
109884/0237
Andererseits ist es häufig notwendig, die Information über das Frequenzspektrum als sogenannte "real-time-Information" zu erhalten. Das heißt, es wird eine laufende Anzeige über das Spektrum gefordert, während das zu untersuchende Signal ansteht. Eine bisher benutzte Methode zum Erhalt einer real-time-Aussage über die Frequenzverteilung in einem Signal erfordert eine Reihe schmaler Bandpaßfilter, von denen ein jeder auf einen anderen Teil des Signalfrequenzbereichs abgestimmt ist. Durch Abtasten der Ausgänge jedes dieser Filter (oder einer etwas geglätteten Version dieser Ausgänge) kann eine Anzeige über die in jedem schmalen Band geführte Signalenergie erhalten werden. Ersichtlich ist hierzu aber eine sehr große Anzahl komplizierter Präzisionsfilter erforderlich, wenn in einem System dieser Art ein hoher Auflösungsgrad erhalten werden muß. Daher können nur die größten und teuersten Systeme von dieser Methode vollen Gebrauch machen.
Es gab bisher zahlreiche Versuche, die mathematischen Methoden, die der klassischen Fouriertransformation zugeordnet ^ind, zu vereinfachen, und dadurch vereinfachte Spektralanalysen zu ermöglichen. So ist in der Arbeit "An Algorithm for the Machine Calculation of Complex Fourier Series" von J.W. Cooley und J.W. Tiikey in Mathematics of Computation 19, 297-301, 1965, ein vereinfachter Algorithmus zum Berechnen von Fourierko effizienten auf einem Digitalrechner beschrieben. Durch eine sorgfältige Wahl gruppierter
109884/0237
Summationen waren die Verfasser in der Lage, eine beträchtliche Ökonomie hinsichtlich der Anzahl von Additionen und Multiplikation zu bewirken, die zur Bestimmung der gewünschten Koeffizienten erforderlich sind. Da jedoch die meisten Allzweckrechner nicht dafür ausgelegt sind, eine beliebig große Anzahl paralleler arithmetischer Operationen durchzuführen, und auch die reduzierte Anzahl von Operationen, die durch den grundsätzlichen Algorithmus nach Cooley und Tukey erforderlich sind, hat sich zu groß erwiesen, um in vielen Fällen noch eine real-time-Spektralanalyse zu erhalten. Außerdem sind die sehr hohen Kosten für die Rechenzeit eines Allzweckrechners im allgemeinen zu hoch, um real-time-Spektralanalysen ausführen zu können»
Die vorstehenden Nachteile und Einschränicungen sind bei einer Ausführungsform der Erfindung vermieden, bei der eine parallelverarbeitende arithmetische Einheit unter der Steuerung eines Schritts el mining komplexe Fourier-Koeffizienten iterativ bildet, die auf einer Folge in einem Speicher gespeicherter Werte sowie auf Werten beruht, die von einem Trigonometriefunktionsgenerator erzeugt werden; jedes Iteration resultiert in einer Folge, die die vorher im Speicher gespeicherte Folge ersetzt; die anfänglich gespeicherte Folge ist dabei eine Folge von Abtastwerten des zu analysierenden Signals, und die nach einer vorbestimmten Anzahl Iterationen gespeicherte Endfolge stellt die gewünschten Fourier-Koeffizienten dar.
1 09SfJi/0 237 BADOWGWAL
15495^4
Ein Vorteil dieser Anordnung ist der, daß mi1;hoher Geschwindigkeit arbeitende digitale Schaltungselektronik beim Ausführen der parallelen Datenverarbeitung verwendet werden kann, wodurch eine real-tiine-Spektralanalyse von einer oder mehreren Eingangsabi a,s1 werifolgen ermöglicht werden.
Ein weiterer Vorteil der Anordnung ist der, daß die Genauigkeit und Wirksamkeil der digitalen elektronischen Schaltungen realisiert werden kann, ohne daß hierzu zu kostspieligen Vielzweckrechnern Zuflucht gesucht werden müßte.
Ein anderer Vorteil dieser Anordnung ist auch der, daß der erforderliche Speicherraum minimalisiert ist, weil die Ergebnisse der anfänglichen und der Zwischen-Iterationen selektiv durch die !Resultate nachfolgender Iterationen ersetzt werden.
Im folgenden ist die Erfindung anhand der Zeiclinung beschrieben; es zeigen:
Fig. la-d den sich ändernden Inhalt der Speichereinheit
nach aufeinanderfolgenden Iterationen, wie diese in einer Ausführungsform der Erfindung durchgeführt werden,
Fig. 2 ein schematisches Blockschaltbild der Ausführungsform nach der Erfindung,
Fig. 3a und 3b in größeren Details je ein Blockschaltbild einer Komplexarithmetikeinheit bzw. des zugeordneten Trigonometriefimktionsgenerators ent-. sprechendder Ausführungslbrm nach der Erfindung
109884/0237. bad
Fig. 4 einen typischen Bereich der komplexen Zahlenebene, in den der Wert des Resultates einer Iteration fallen muß, wenn keine Maßstabsänderung durchzuführen ist,
Fig. 5 ein Ztistandsdiagramm zur Erleichterung des Verständnisses eines Multiplizier-Rekoders (multiplier recoder), der in einigen Ausführungsformen der Erfindung vorgesehen ist,
Fig. 6 zwei typische Ziffernpositionen einer speziellen Ausführung einer Komplexarithmetikeinheit,
Fig. 7a und 7b zwei Addierkreise, die in der Schaltung nach Fig. 6 verwendet sind,
Fig. 8 ein Blockschaltbild der Schrittschaltung entsprechend einer Ausführungsform der Erfindung und
Fig. 9 ein Blockschaltbild einer Ausführungsform der Erfindung, die dafür ausgelegt ist, in einer Betriebsart zur Basis-4 zu arbeiten.
Allgemeiner Hintergrund
Eine periodische Funktion f(t) kann als Fourierreihe dargestellt werden durch
•τ»
D(n) exp ( j ~#nt), (1)
η =-t
hierin bedeuten
T = die Periode von f(t)
BAD ORIGINAL
109884/0237
und die komplexen Koeffizieirrt-n D((n) sind gegeben din ti
D(n) = -ψ I Φ) exp (-Äfio) dt. (2)
Jto
ist der Wert von f(t) nur bei N äquidistauten Abtastpiinkten in jedem Intervall der Länge T gegeben, dann kann eine Annäherung für I)(n) erhalten werden urch Ersetzen des Integrals in Gleichung (2) durch eine Summation sowie de?; Differentials dt durch das Inkrement T/N. Benutzt man zur Identifizierung von Annäherungen an f(t) ein * und setzt der Einfachheit lifilb-.'i- t: = 0, so hat die Annäherung D*(n) die Form
N- 1
D*(n) = ~ ^) f(~) exp (-^nrn), (3)
Aus Gleichling (3) ist ersichtlich, daß
O-Hn) = D*(n+N) (4)
ist, d.h. die Abtastpotenzen (sampling forces) der annähernden Verteilung der Harmonischen ist periodisch, unabhängig von dem tatsächlichen Spektrum von f(t). Wenn daher D- eine vernünftige Annäherung an D sein soll, muß die Größe D(n) für η außerhalb
BAD 109884/0237
des Interval los ~r~ Κ^Κ,-ιτ als vornachläßigbar angenommen werden. Mit dieser Annahme kann f(t) in Gleichung (1) angenähert werden durch f);c(1-)j mit
N-I
f*(t) = > D-Kn) exp ( j4^- nt). (5)
n=0
Die Periotii.iiät von D- erlaubt es, daß die in Gleichung (5) gegebenen Hmnmationsgrenzen anstelle der -üblichen symmetrischen Grenzen -N/2 und N/2 verwendet werden können. Als Ergebnis weicht die Gleichung ^5) in der Form von Gleichung (3) durch eine miiliiplikalive Konstante und durch das Vorzeichen des Exponenten abc Es gilt also
N-I
9 -rf"
nm). (6)
N-I1
= y D*(n)
"o
1st f(t) eine komplexe Funktion der reellen Variablen t, so kann sie mit Hilfe zweier reeller Funktion fl und f2 ausgedrückt werden durch
) = fl(t) + jf2(t) . (7)
Die Fourierkoeffizienten D*(n) entsprechend dieser komplexen Funktion i'(i) sind ausdrückbar durch
109884/0237 β*ο original
15495^4 I
D*(n) = D*(n) + jD*(n) (8)
9JC Λ
hier sind D und D''5 die (Näherungs-)Koeffizienten für fl bzw.
J. u
f2. Kennzeichnet man die konjungier komplexe Größe durch ein "** so ergibt sich aus Gleichung (3) ohne weiteres
D1 (n) = D1(N-Ii) und
D2(n) = D2(N-n). (9)
Daher kann die Gleichung (8) modifiziert werden zu
D (N-n) = D1(Ii)+ jD (η), (10)
D*(N-n) = D*(n) - jD*(n). (11)
Die Gleichungen (8) und (11) können kombiniert werden zu
D*(n) = -|(D*(n) + tf(N-n) ) (12)
(D*(n) -*D*(N-n) ). (13)
Eine Form des Cooley-Tukey-Algorithmus soll nun heuristisch abgeleitet werden. Für diese Ableitung wird f(t) als periodische Funktion mit der Periode T genommen. Der Einfachheit halber
BAD
109884/0237
soll angenommen sein, daß eine gegebene Periode zum Zeitpunkt t = 0 beginnt und sich bis t = T erstreckt. Die Periode wird in K Intervalle unterteilt, von denen jedes die Länge T/k besitzt.
Die Fourier-Koeffizienten F(n) (die Sternchen sollen nachfolgend weggelassen werden) werden für f(t) aufgrund von K/2 Abtastungen, genommen bei t = 0, 2T/k, 4T/K, ..., (Κ-2)Τ/Κ. errechnet. Es erweist sich als zweckmäßig, eine neue Funktion g(t) zu definieren durch
g(t) = f(t+Tk).
Die Fourierkoeffizienten G(n), die der Funktion g(t) entsprechen, können dann berechnet werden, und zwar beruhend auf den Abtast« werten von f(t), genommen bei t = Τ/Κ, 3Τ/Κ, ..., (Κ-1)Τ/Κ, Das heißt F(n) und G(n) werden je Fourierkoeffizienten sein, die f(t) entsprechen, und zwar beruhend auf getrennten, aber ineinander geschachtelten Gruppen von K/2 Abtastwerten. Der einfacheren Bezeichnung haber werden folgende Definitionen angewandt: f'(k) = ^
g'(k) η
= exp(-j^)
109884/0237
Unter Verwendung der Gleichung (3) können, wenn die Aufzeichnungslänge N ersetzt wird durch K/2, die Größen F(n) und G(n) ausgedrückt werden als
F(n) = ^ V f(2m)W2nm (14)
m=0
CKn) -—-/ g'(2m)W2nm (15a)
m=0
L "
GKn) *—■ / f(2m+l)W2nm (15b)
m=0
Wenn Ό[ώ)3 n=0, 1, 2, ...K-I zur Bezeichnung der Fourier-Koeffizienten für die kombinierte Gruppe von K Abtastwerten benutzt wird, also
K-I
D(n) = ~ Γ f'(m)Wnm, (16)
m=0
1098 84/02
gilt, dann können die Koeffizienten von F und G zur Bewertung von D wie folgt verwendet werden
D(n) = \ JF(n) + W11CKnJ (17a)
D(n+ ~) = | (Nn) -WnG(n)] , (17b)
Gleichung (17b) folgt aus den Beobachtungen, daß
κ_
w2 = - ι
= F(n),
und
= G(n) .
Die Gleichungen (17a) und (17b) demonstrieren die Grundoperation bei der binären Formulierung des ^ooley-Tukey-Algorithmus, nämlich die Kombination der Fourierko effizienten zweier ineinandergeschachtelter Abtasrungsaufzeichnungen, um eine Gruppe von Koeffizienten zu erhalten, die dem Doppelten der Abtastfrequenh entspricht. Die Operation wird zur Berechnung der Fourierko effiziente für eine endliche (sagen wir N) Abtastungsaufzeichnung angewandt durch Betrachten jeder Abtastung als eine
109884/0237
unabhängige eintermige Aufzeichnung. Wegen der angenommenen Periodizität ist das Abtastintervall für jede diese Eins-Abtastungsaufzeiclmungendie Periode T der abgetasteten Funktion. Der Fourierkoeffizient für jede solche Eins-Abtastungsaufzeichnung ist der Abtastwert selbst (d.h. Gleichung (3) mit N = 1). Mit K = 2 können die Gleichungen (17a) und (17b) dazu verwendet werden, Abtastungen, d.h. Reihen, zu paaren, die um T/2 versetzt sind, der Hälfte der Abtastperiode der Eins-Abtastungsaufzeichnungen. IV; Ί K = 4 können die Gleichungen (17a) und (17b) dazu verwendet werden, die zweitermigen Reihen zu paaren, was zu N/4-Reihen iüliri, von denen jede vier Koeffizienten aufweist und auf Abtasttmgen beruht, die äquidistant unrer Intervallen von T/4 auseinande rliegen, usw. Wenn N (die Größe der Gesamtaufzeichnung) eine- Hochzahl von 2 ist (power of 2), kann die beschriebene Γι-ο,ίΐ dur rekursiv angewandt worden, um eine kombinierte N-termigo Fourrierreihe für die N Ablastungen zu erhalten. Da die Reihe η länge sich mit jeder Iteration verdoppelt, ist die Anzahl erforderlicher Iterationen gleich log9N. Da die Gesamtzahl der während jeder Iteration erzeugten Koeffizienten gleich N ist (N/2 Reihen, jede 2 lang), und <>jn<> komplexe Multiplikation (W »Gin) in Gl. (17a), (17b)) für j< dos während jeder Itej'aiion gehihi? W T-oeffizientenpaar erforderlich ist, ist die Gesamtzahl der komplexen Multiplikationen ^Ifieli (N/2)· Ιομ,,Ν. Für große TM nähert sich hierbei der Hruchii· i iei'ji'Higon Multiplika-
Ii Hj V. ti /0237
tionen, welche durch entweder einen verschwindenden Realteil oder einen verschwindenden Imaginärteil von W vereinfacht werden, dem Wert 3/log N. Dies ergibt sich daraus, daß der der Größe W zugeordnete Winkel ein Vielfaches von /2 für alle der ersten zwei Iterationen, die Hälfte der Dritten, ein Viertel der Vierten, usw, ist.
Die ursprüngliche Arbeit von Cooley-Tukey legt dar, daß das Verarbeiten einer N-Abtastwert-Aufzeichnung eine Rechenspeicherkapazität für N komplexe Zahlen anstelle einer besonderen Speicherung der N Operanden plus der N Resultate einer Iterarion erfordert. Dies deshalb, weil jedes gegebene Operandenpaar F(n) und G(n) in den Gleichungen (17) dazu verwendet wird, nur ein Paar von Resultaten zu bilden. Die Operanden können daher vom resultierenden Paar überschrieben werden.
Fig. 1 zeigt eine mögliche Speicheranordnung zum Ausreishnen der Fourierkoeffizienten nach der Cooley-Tukey~Methode mit N = 8. Fig. la zeigt N = 8 Abtastwerte einer Eingangsaufzeichnung, die in einer von links nach rechts laufenden Reihe A nacheinander gespeichert sind. Die Bezeichnung D(I/J, K...) bezeichnet den I-ten Koeffizienten, der der aus den Abtastwerten J, K,... bestehenden Abtastungsaufzeichnung entspricht;
BAD ORIGINAL 109884/0237
Bei der ersten Iteration werden die um die halbe Gesamtaufzeichnungslänge (und deshalb um N/2 =4 Speicherstellen) versetzten Abtastwerte unter Verwendung der Gleichungen 17 kombiniert, um zweitermige Fourierreihen zu erzeugen. So werden D(0/0,4) und D(l/0, 4) aus den Elementen in den Speicherstelicai 0 und gebildet und die Resultate können dann in jenen SpeichersteMen erneut gespeichert werden, weil die Abtastwerte 0 und 4 nicht wieder erforderlich sein werden. In ähnlicher Weise werden dieanderen Elemente der ersten Iteration in der Reihe Al (Fig. Ib) erzeugt und gespeichert. Nachfolgende Iterationen werden dann durchgeführt und liefern die Reihen A2 und A3 (Fig. Ic, bzw. Id). Die in die Reihe A2 eintretenden Resultate beruhen auf drei ursprünglichen Eingangsabtastwerten, während jedes der Elemente von A3 auf allen der ursprünglichen Abtastwerte beruhen. Die Reihe A3 ist das Endresultat. Ausgenommen der Reihenfolge enthält diese Reihe die Resultate, die nach üblichen Methoden erst nach einer beträchtlich größeren Rechenarbeit erhalten würde.
Im allgemeinen sind nach der k-ten Iteration alle ähnlich numerierten Koeffizienten der Harmonischen gruppiert, aber die 2k Gruppen harmonischer Koeffizienten erscheinen in einer Reihenfolge, die durch Umkehren der zur Indizierung derselben notwendigen k binären Ziffern beschrieben ist. Für das Beispiel der Fig* I erscheinen nach der dritten Iteration die im Speicher gespeicherten Koeffi-
BAD ORIGINAL
103804/023?
dienten in ein'-r Reihenfolge, die durch Umkehren eines dreistelligen Binj'.vziffemindox beschrieben sind. Da die Speichersteile 0 dem Wert 0 = 000 zugeordnet ist, braucht das erste Rlemeni nicht umgeordnet zu werden. Der Koeffizient in ddr Speicherstelle 1 = 001 .muß jedoch in die Speicherstelle 100 = 4 übertragen λ\» rden. In ähnlicherweise verbleibt der Koeffizient in der Speicherstelle 2 = 010 beim Übertragen in die Speicher~ steile 010 = 2. während der Koeffizient in der Speicherstelle 3 = 011 HJch j tcli HO = 6 bewegt, und so weiter. Die Folge der während jedi.-·.· Iteration benutzten Exponentwerte stimmt mit diesem Muster über«?in, da die Hochzahl von W in Gl. (17) iden-"^ seh isi niii -Λ-τ λ>Μ der Harmonischen»
l"m Vors-', re-. i'ür den wirksamen Gebrauch des Speichers bei dem \If:;oritlfi;i- α ■- flen, ist es zweckmäßig, die (komplexen) Resultat Φ-? -.-ten Iteration als lineare Reihe A.(K), K = 0, 1..,TNi .in bezt ilv·.; Ä. ist die N-Ablastwertaufzeichnung, die zu vei-
arbeit*·!» U-,τ. -ν.öl·-' N = ? isi. Die Größe k soll die 2 -beil
werieie Z'PV■■■ ■-.'■. Ui3 Avenn der Index K in binärer Form ausgedrückt vni'dj ut h.
ni-1
K =
BAD ORIGINAL
Es sei bemerkt, daß der Index K sich nicht auf die Zahl des harmonischen Koeffizienten bezieht. Die durch die Gleichungen (17) gegebenen Beziehungen können dann als rekursive Beziehung ausgedrückt werden durch
AJ+l(km-l' km-2' — V = Ai(km-I' "" km-l'
0 = 2"1"1 2!k . + 21"1k .,,+..,+2^ ,. iXL-1 m-i+1 ra-1
Um erneut zu IterJoren, ist A (k ,k , ,.,, k ) das K-te Element in der Ecilie, die von der (i+l)-ten Iteration resultiert, wobei K = (k , k , .,., k ) eine binäre Zahl ist. Die Ver-
3XL ·" 1 m — Δ U
Wendung binärer Ziffern für K erleichtert das Paaren der zu kom binierenden Reihen elemente, die durch
Speicherstellen getrennt sind. Die Zahl des harmonischen Koeffizienten, der durch ein bestimmtes A. dargestellt ist, wird gefunden durch Umkehren des Binärziffernfeldes k Λ. k o. ..., k . .
m-14 m-2* * m-i
Dieses umgekehrte Feld erscheint in den Ausdrücken für 0. Im
10988 kl 0 23 7 BAD ORIGINAL
MT
einzelnen werden nach der letzten Iteration (i=m) die ganzen m Binärziffern des Indexes K umgekehrt um die Zahl des Fourierkoeffizienten in der K-ten Stellung zu identifizieren.
Die vorstehend beschriebene Methode ist die sogenannte Binärversion, d.h. N ist eine ganzzahlige Hochzahl von 2 und zwei Abtastwertaufzeichnitngen werden ineinandergeschachtelt. Eine brauchbare Variante dieser Methode liegt im Ineinanderschachteln von vier Abtastwertaufzeichnungen anstelle von zwi, Diese letztere Methode hat den Vorteil, daß die erforderliche Anaahl von Multi» plikationen um 25% gegenüber der binären Methode reduziert wird. Ist ferner überschüssiger Speicherraum verfügbar, so müssen nur halb so viele Bezugnahmen auf den Speicher gemacht werden.
Die nachstehende Beschreibung erfolgt anhand der binären Form des Algorithmus, es versteht sich jedoch, daß ein äquivalentes Systems zur Basis 4 auf Binärimplementationsgrundlage leicht entworfen werden könnte.
Allgemeine Betriebsmethode
Fig. 2 zeigt das Blockdiagramm eines schnellen Fouriertransformationsverarbeiters (FFTP) entsprechend einer Ausführungsform der Erfindung, die den vorstehend beschriebene Cooley-Tukey-Algorithmus wirksam verkörpert. Diese vereinfachte Darstellung
BAD ORlGINAt 109884/0237
des Ausführungsbeispiels soll nun allgemein beschrieben werden. Nachfolgende Abschnitte werden jeden der einzelnen Gesichtspunkte lieser Aus führungs form noch im einzelnen beschreiben.
Es sei angenommen, daß jedes Eingangssignal effektiv bereits in T sekundenlange Aufzeichnungen unterteilt worden ist und daß die erste dieser Aufzeichnungen zur Zeit t = 0 beginnen soll. Zur Vereinfachung der vorläufigen Diskussion soll ein einziges Eingangssignal angenommen werden. Während jedes T sekundenlangen Intervalles werden N = 2 Abtastwerte des Eingangs signals erhalten und dem Eingangspuffer 10 nacheinander präsentiert. Nach einer gegebenenfalls erforderlichen ümordnung oier Umsetzung von der Serienform in die Parallelforra im Eingang-;-puffer 10 werden die Eingangsabtastwerte in den Systemspeicher übertragen. Der Eingangspuffer 10 führt auch alle Funktionen bezüglich Geschwindigkeitsdifferentiale oder Zeitsteuerung durch, die zur Bewirkung der Übergabe erforderlich sind. Die im Speiche r 20 dann gespeicherte Information entspricht der in Fig. la dargestellten, d.h. sie stellt die Reihe A oder die Ergebnisse der Null-Kenniteration dar. Selbstverständlich braucht die Größe der Reihe keine Beziehung zu der in Fig. la dargestellten haben.
Die Arithmetikeinheit 50 verarbeitet dann die gespeicherten Abtastwerte und die vom Trigonometriefunktion-Genera tor 60 gelie-
BAD ORlGlNAt 1G9884/0237
ferten Trigonometrieiunktionswerte entsprechend Gleichung (18) um eine Reihe von Ergebnissen zu berechnen, die der Reihe Al in Fig. Ib entspricht, Die Schrittschaltung (indexing circuit) 70 dirigiert die Reihenfolge der vom Trigoiirömetriefunktion-Generator 60 und vom Speicher 20 gelieferten Operanden, und dirigiert auch die Rückgabe der Resultate zum Speicher 20.
Die Elemente der im Speicher 20 gespeicherten Reihe Al werden dann Operanden und erzeugen zusammenmit den Werten des TrigonometriefunkiIons-Generator 60 die Reihe A2.. Dieser iterative1 Prozeß setzt sich fort, bis die m-te Reihe A im Speicher gespeicheri ist. Diese Reihe enthält die Endresultate der Fourieranalyse, und diese Resultate werden dann mit Hilfe des Ausgangspuffers 40 ausgelesen, der die im Einzelfall gewünschte Umordnungj beiüpielüVveise eine Parallel-Seric n-Umsetzung, eine Geschwindigkeitsänderung und dergl,, ausführt.
Da die Elemente jeder Reihe für nur eine nachfolgende Iteration benutzt werden, ist es möglich, die gesamte Speicherkapazität für Rechenzwecke auf diejenige zu begrenzen, welche für nur eine einzelne Reihe erforderlich ist. Das heißt, die Resultate einer betrachteten Berechnung ersetzen im Speicher diejenigen Operanden, von denen sie teilweise abgeleitet wurden. Dieses Ersetzen erfolgt unter der Steuerung der Schrittschaltung 70.
BAD ORlGJNAL 109884/0237
Ko niple xar i thin e tike inhe it - Aufbau
Die Grundarithmertikoperation, die zum Erzeugen aufeinanderfolgender Reihenelomente durchgeführt wird, ist entsprechend Gleichung (18) eine komplexe Multiplikation, gefolgt von einer komplexen Addition, d. h.
A.+1(J) s A.(J) + A.(K) exp(jO). (19)
Aus den Symmetile eigenschaften der Gleichung (18) ergibt sich unmittelbar
= A.(J) + A.(K) exp [j(0+
= 2A.(J) - A.+ 1(J). (20).
Wenn Operanden aufeinanderfolgend abgerufen werden (are accessed), wobei der Term A.(K) dem Term A.(J) vorangeht, gibt die Gleichung (20) an, wie der zweite Operand mit dem ersten Resultat kombiniert wird, um die Zahl der komplexen Multiplikationen um den Faktor 1/2 zu reduzieren. Bezeichnet man die Real- und Imaginärteile der Elemente A. mit AR. bzw. AI. so kann Gleichung (19) dahingehend umgeschrieben werden, daß sie explizit die vier reellen Multiplikationen angibt, die zur Bildung des einzigen komplexen Produkts A.(K)· exp(jO) erfordei-lich sind. Man erhält also:
BAD 109884/0237
AR (J) = AR.(J) + AR.(K) cos 0 = AI.(K) sin 0 (21a)
XI X X X X
AL+1(J) = AL(J) + AL(K) cos 0 + AR.(K) sin Q . (21b)
Eine Ausführungsform der Erfindung weist eine Arithmetikeinheit zum Ausführen der arithmetischen Operation entsprechend den Gleichungen (21a, b) auf. Eine Ausführung dieser Arithmetikeinheit ist in Blockform in Fig. 3a dargestellt. In Wahrheit sind diese Elemente vorteilhafterweise doubliziert, um eine gleichzeitige Berechnung der Reak- und Imaginärteile von A. . (J) entsprechend Gleichungen (21a und 21b) ausführen zu können. Diese Betriebsart mit zwei getrennten Arithnaetikeinheiten ist vorzuziehen, weil hierdurch die Notwendigkeit einer Speicherung AR.(K) und AL(K) entfällt, die erforderlich sein würde, wenn AR. (J) und AI. 1 (J) getrennt zu berechnen wären.
Die Schaltung nach Fig. 3 a enthält zwei parallele Übertrags bewahrungs- (carry-save) Addierer 301 und 302. Diese Addierer liefern eine schnelle Akkumulation von Teilsummen durch getrenntes Speichers der Übertragsziffern, wie dies in Multiplikationsschaltungen erforderlich ist. Diese Übertrags ziffern werden später in die akkuraulierten Teilsummen zum Erzeugen des gewünschten Resultats eingegeben.
BAD 10988Λ/02 37
Fig. 3 zeigt des weiteren einen Akkumulator 303 üblicher Ausführung sowie einen zugeordneten Übertragsgenerator 304. Die Selektoren 305, 306 und 307 sind Logikblöcke, die je in der Lage sind, als ihren Ausgang einen ihrer verschiedenen Eingänge oder bestimmte einfache Funktionen (einscliließüch von Vielfachen) ihrer Eingänge auszuwählen.
Zu Erläute rungs zwecken sei angenommen, daß die Arithmetikschleife der Fig. 3a dafür ausgelegt ist, die durch Gl, (21a) geforderten Operationen durchzuführen. Eine äquivalente Schaltung kann zum gleichzeitigen Ausführen der durch GL. (21b) geforderten Operationen vorgesehen sein. Die Eingangsleitung 308 führt den Realeingang AR.(K) vom Speicher zum Addierereingangselektor 306, von wo aus die Übergabe als Multiplikand zum Addierer 301 erfolgt. Der Eiä gangsleiter 309 führt in ähnlicher Weise den Imaginäreingang AI.(K) dem Selektor 307 zu, wo es zum geeigneten Zeitpunkt als Multiplikanteingang für den Addierer .'502 ausgewählt wird. Die Leitungen 310 und 311 bilden die Wege zu ihren entsprechenden Selektoren 306 und 307 für rekodierte Cosinus- und Sinus multiplikator wer te, die vom Trigonometrirunktionsgenerator 60 in Fig. 2 erhalten wurden. Selbstverständlich gibt es einige Anwendungsfälle, in denen ein Recodieren der Multiplikatoren nicht notwendig oder nicht erwünscht ist. Die Vorteile eines Recodierens der Trigohometriefunktionswerte werden später noch
109884/0237
154958
erläutert. Eine ähnliche Holle wird von Leitern 308-311 ausgeführt, wenn die Arithmetikeinheit" zur Berechnung entsprechend Gl, (21b) benutzt wird, ausgenommen, daß dann die Leitung 808 mit dem Selektor 307 statt dem Selektor 306 verbunden ist, und die Leitern 309 mit dem Selektor 306 statt dem Selektor 307,
Die'Verwendung zweier in Kaskade geschalteter Übertragsbewahrung^adilierer ermöglicht es, Multiplikandenvielfache gleicher Stell«nbcwertung in einer einzigen Operation zu akkumulieren. So wird beispielsweiäd ein durch Multiplizieren von AR.(K) mil einer Ziffer bon cos 0 gebildetes Teilprodukt in einer einzigen Operation mit einem durch Multiplizieren von AI.(K).mi1 einer Ziffer von sinus O gebildeten Teilprodukt kombiniert. Weitere Vorteile solcher Art hintereinandex'geschalteter Addierer zur Bildung der Summe von Produkten gegenüber der Verwendung einer einzigen Addierschaltung sind:
Zunächst ist eine verringerte Zeitverzögerung vorhanden. Da die Ausbrerhmgsverzögerung, gemessen in den Knoten der Logikschaltung, des Äquivalentes eines zweigleisigen (double rank) Flipflops in einer arithmetischen Schleife annähernd das doppelte der Zeitverzögerung einer binären Addierstufe ist, erhöht das Hintereinanderschalten zweier Addierer den Prozentsatz der die Arithmetik tatsächlich durchführenden Logikelementen zuzu-
BAD 10988 4/0237
se 2/L
α»
schreibenden Zeit um 50% gegenüber einer Arithmetikschleife mit nur einem einzigen Addierer, Wenn des weiteren die Zeit zum Durchsteuern des zu verteilenden Signals während jedes Schrittes berücksichtigt wird, ist die Verbesserung sogar noch größer.
Zweitens wird keine Zeit und auch keine Schaltung zur Zwischenspeicherung des ersten erzeugten Produkts benötigt, während das zweite gebildet wird.
Drittens entsprich! die numerische Genauigkeit der abgerundeten Summe von Produkten und nicht einer Summe \on bereits jeweils voi' der Addition abgerundeten Produkten. Dies ist ein Ergebnis des Addierens von Multiplikandeiivielfachen gleicher Stellenbewertung von den beiden zu summierenden Produkten, bevor die Teilproduktsumme nach rechts verschoben wird. Auf diese Weise werden Beiträge des gekürzten Teils der beiden Produkte im erhaltenen Ergebnis richtig wiedergegeben. Ein Abrunden dieses Resultats begrenzt den maximalen Abkürzungsfehler auf 1/2 gegenüber der niedrigstbewerteten Ziffernstelle; ein aufeinanderfolgendes Bilden abgerundeter Produkte (für die gleiche Zii'fernstellenzahl) würde einen maximalen, asymptotisch gegen 1 gehenden Abkürzungsfehler ermöglichen.
BAD 109884/0237
3*
Ein Nebenprodukt der Verwendung zweier hintereinandergeschalteter Addierer ist die Vereinfachung der Umwandlung einer Zahl in die kanonische Form aus der gespeicherten Übertrags form (vgl. auch weiter unten).
Fig. 3b zeigt eine mögliche Ausführungsform des Trigonometriefunktionsgenerators 60 der Fig. 2« Die Sinus- und Co sinus funktions~ generatoren 323 und 325 können zweckmäßigerweise aus Rezirkulierenden Schieberegistern oder anderen gesonderten Speichereinrichtungen aufgebaut sein. Alternativ können sie durch tatsächlich in einem Teil des Hauptspeichers gespeicherte numerische Werte gebildet sein. Eine Methode für einen wirksamen Zugriff zu diesen Werten wird nachstehend unter dem Abschnitt "Folge der trigonometrischen Koeffizienten" erläutert. Die Recodierer 322 und 324 können zahlteiche Formen annehmen, einschließlich eines bloßen Leitungswegs für den Fall, daß kein Recodieren zu bewerkstelligen ist. Eine besonders zweckmäßige Re codier schaltung wird nachstehend b eschrieben.
Die durch Gl. (19) gegebene Grundarithmetikoperation verlangt eine Verdopplung im möglichen Bereich der Komplexzahlengrößen bei jeder Iteration. Würde die Arithmetikeinheit eine Fixnullpunkt-Arithmetik verwenden und wäre sie zum Maßstabsetzen ausgelegt,
BAD
109884/0237
α*
dann würde m Iterationen, beginnend mit in η Bit quanlisierten -\btastwerten eine Genauigkeit auf n+m Bit zur Darstellung sowohl in der Arithmetikeinheit als auch im Speicher erfordern, Für Anwendungsfälle, in denen m im gleichen Bereich wie η liegt, oder größer als η ist, würde eine ohne Maßstab arbeitende (unsealed) Fixnullpunktarithmetik zu einem unwirksamen fiebrauch der Anordnung führen.
Alternativ würde ein Aufrechterhalten einer konstanten Grenze durch Halbieren der Resultate bei jeder Iteration (wobei das Halbieren per Definitionem den Verlust des niedrig bewerteten Bit einschließt) ohne Rücksicht für die Daten, zu einem unnötigen Genauigkeitsverlust führen, und in einigen Fällen könnte dies zu bedeutungslosen Ergebnissen führen. Zur Erläuterung sei die Verarbeitung einer Aufzeichnung mit nur einem von 0 verschiedenen Abtastwert betrachtet. Das Indizierrniis ter ist so, daß einer der Operanden inGl. (19) in diesem Falle immer 0 sein würde, so daß, wenn die Zahl der Iterationen die Zahl der Binärziffern im ursprünglichen Abtastwert übersteigt, alle Resultate 0 sein würden. Annäherungen an dieses Beispiel würden in der Praxis wegen der abrupten Änderungen der Signalhöhe in Rechnung gestellt werden.
109884/0237
Die Prozedur des Maßslabsetzens bei einer Ausführungsfprm dor Erfindung ist (ine solche, bei der ein gemeinsamer Maßstabiaktor für die ganze Reihe benutz! wird, und ein Ändern des Maßstabes rlor Reihe nur wenn nötig gemacht wird. Auf diese Weise wird eine maximale Genauigkeit beibehalten, ohne daß dabei die Ko ρ te? η und der Zeitverbi*auch" einer Arithmetik mil schwimmendem I\'upppunkt erforderlich sein wurden. Wenn für jede Iteration ein ArithmeiikiV!; iiltat dazu neigt, überzufließen, dann werden all·- während dieser Iteration gebildeten Resultate nach rechts verschoben., abgerundet und abgeschnitten. Eine Zählung der Anzahl Iterationen, l.-i-i denen ein Maßstabsetzen erforderlich war, bo stimmt dabei1 den Maßstabsfaktor. Wird die Zählung mit EK
bezeichnet, nV dann hatt die schließliche Reihe A die Inter- M m
pretation
-A * 2EX~mA · (22)
Nm m
hierin ist N die Reihengröße.
Die ^rwendung eines gemeinsamen Maßstabs für die ganze Reihe anstelle die Zahlen individuell zu normieren, macht es bedeutungsvoll, mehr Ziifernstellen bei der Berechnung beizubehalten, als ValidesteJien in den ursprünglichen Abtastwerten oder in den trigonometrischen Koeffizienten. Die Zahl solcher Ziffern aus-
BAD ORIGINAL
109884/0237
gedehnter Genauigkeit bestimmt das Ausmaß, bis zu dem große isolierte Elemente in eier Reihe (die eine Maßstäbsändemng forcieren) akkumulieren können, ohne den Gesamtverlusl der Genauigkeit in den verbleibenden ElememVn zu forcieren.
Mit der Verwendung eines gemeinsamen Maßstabfaktors wird die Entscheidung, o1·· r*'e Reihe im Maßstab zu ändern ist oder nicht, am besten bei Beginn jeder Iteration gemacht, und zwar beruhend auf der Beobachiung der Resultate der vorausgegangenen Iteration. Eine Maßstabsänderung zu allen übrigen Zeiten würde die Wirksamkeit im Speichergebrauch durch das Erfordernis von "Flaggen1'-Bit in den ReihenelenxMiten - im Effekt begrenzte Exponenten mit schwimmendem Nullpunkt - reduzieren. Würde nur eine teilweise Maßstabsänderung verwendet, so würde sich das indizieren, das zur Kennzeichnung derjenigen Reihenteile, deren Maßstab geändert worden ist, erforderlich ist, sich bald als recht aufwendig und viel Speicherraum beanspruchend erweisen.
Das gewählte Entscheidungskriterium, ob alle Resultate einer Iteration im Maßstab um 1/2 zu ändern sind, oder ob der Maßstab -umgeändert bleiben soll, erfordert eine Bestimmung, ob irgend ein Resultat der vorangegangenen Iteration außerhalb einer bestimmten Zone in der komplexen Zahlenebene war. Wird diese Zone mit S bezeichne! und werden die Zahlen im Speicher als
109884/0237
vorzeichenbewertete richtige Bruchteile interpretiert, so ist die notwendige und hinreichende Bedingung für einen Piuikt A., daß dieser in S enthalten ist
(24)
Ein Merkmal der Erfindung bezieht sich deshalb auf dan Prüfen der Resultate einer Iteration, ob die Beziehung (24) erfüllt ist; Bei einem Ausführungsbeinpiel der Erfindung erweist es sich als zweckmäßig, jedes Rechenergebnis nicht mit einem Kreis des Radius 1/2 in Beziehung zu setzen, wie dies durch Gl(24) gefordert wird, sondern mit einer Annäherung zu vergleichen, die in Form einer unregelmäßig abgestuften Zone ähnlich der teilweise in Fig. 4 dargestellten vorliegt, wo die Koordinatenachsen den ersten Quadranten in dor komplexen Zahlenebene definieren, Da die Begrenzung in jedem Quadranten symmetrisch ist, kann die Annäherung anhand der in den ersten Quadranten der komplex -ti Zahlenebene fallenden Ausdrücke beschrieben werden, nämlich
A , .15. .1 r .13, . 5 , .3. ,3\ .5 . .13 , .1/ . ,15 , .1, % + ^' {4 + *32>· (T6 + & % + *ϊβ)> %2 + ^ lulJ (32 + *§>
Wenn A = a a a ...a die binäre 2er Komplementdarstellung eines Realteils oder eines Imaginärteils einer Zahl bezeichnet und ν für die logische Disjunktion (logical union) steht, sind
BAD ORIGINAL 109 884/0237
die 'Lxxv Bestimmung, ob A innerhalb der vorgeschriebenen Grenzen liegt oder nicht, zu prüfenden Bool1 sehen Ausdrücke die folgenden:
( j A| ζ-f > = S^ (I2 ν S3 ■/ ä4 ν ä5] ν U0U1 ^2 v a3 a4 ν a
(2 5a) (|A| C~) = S0S1Ja2 ν S3 ν S4Sj ν Vl JJi2 ν a3 ν a^
ν a3 ν a(Ja1 (ag ν a3) ) (25c)
Vi % v Via2 (25e)
A |) = aoa1&2a3 ν a^a^, . (25f)
Die sechs Signale der obigen Form von jedem Real- aid Imaginärteil werden paarweise zur Bestimmung kombiniert, ob ein komplexes Resultat innerhalb der durch Fig* 4 defdniei-ten Begrenzung liegt.
109884/0237 BAD
15 4 95 8
Vl
Übliche Logiknetzwerke werden zur PJrfüllung der Gleichungen (25a)-(251) verwende"·-, ebenso für das Netzwerk zum Kombinieren der Prüfergebnisse für die Real- und Imaginärteile, Weitere Einzelheiten folgen nachstehend bei der Betrachtung der Art und Weise, auf die die Maßstabssetzoperationen in das Gesamtrechenprogramm hineinpassen.
Komplexariihrnetikeinheit - Reihenfolge der Operationen
Die beim Ausführen der Ärithmetikoperaiionen entsprechend den Gleichungen (2O)1 (21a) und (21b) von der in Fig. 3a dargestellten Arithmetik·M-nheil durchgeführten Schritte sind die folgenden:
1. \R.(K) und AI.(K) werden auf den Leitungen 308 und 309 in Fig. 3a präsentiert. Werden gesonderte Arithmetilcschleifen für AR (J) und AI (J) benutzt, so werden die ,se Multiplikanden jeder Schleifer präsentiert, obgleich, wie erwähnt, die Addierer, denen sie zugeführt werden, für die beiden Schleifen entgegengesetzt sind. Bei einigen Anwendungen ist es zweckmäßig, eine Pufferung zwischen Speicher und Addierern vorzunehmen, aber ist für die Erfindung nicht wesentlich.
2. Ein Speicherzyklus wird zum Erhalt des Zugriffs zu A.(J) ausgeführt. In einigen Fällen könnte dies selbstverstänfllich
BAD ORIGINAL 109884/0237
auch zur gleichen Zeit bewerkstelligt werden, in der der Zugriff zu A.(K) erfolgt, da aber dieses in jenem Zeitpimkl nicht benötigt wird, würde eine Zwischenspeicherung für A.(J) vorzusehen sein.
3. Die Recodierten Sinus Q-und Cosinus Q-Mnliiplikatorfunktioncn \\-erden über die Leitungen 310 und 311 präsentiert. Die allgemein bekannten iterativen Addier- und Schiebeschriite zur Bildung von A.(K) exp(jQ) werden dann ausgeführt,. Zu diesem Zweck bilden die S elektoren 306 und 307 entsprechende Vielfache ihrer jeweiligen Komponenten von A.(K). W(1IHi beispielsweise die Übertragbewahrungsaddierer zui' Ausführung einer Multiplikation zur Basis 4 verwendet werden, bilden die Selektoren (entsprechend einer nachstehend unter dem Abschnitt "Multiplikator Recodierung" beschriebenen vorteilhaften Methode) das 0, +1, -1 oder H 2 - fache der komplexen Komponente AR.(K) oder AI.(K) in Abhängigkeit des recodierten trigonometrischen Multiplikatorwerts.
4. AR.(J) und AI.(J) werden zu den entsprechenden Real- und Imaginäreingangsselelctoren 3OG gerade dann durchgesteuert, wenn die schließliche Teilsumme der Multiplikationen zii den Akkumulatoren dureh^esteuert wird.
BAD ORIGINAL 109884/0237
15495|4
5. Die Selektoren 306 bilden die +1 Vielfachen von AR.(J) und AI.(J) und die Ergebnisse werden zum Akkumulator übertragen. Dieses Resultat in Übertrag gespeicherter Form wird dann "assimiliert" durch Auswählen des Mittels des Ausgangs des Selektors 306 des Ünertragsgeiierators 304 als Eingang zu dem oberen Paar der Addierer 301. Der Übertragsgenerator 304 bildet ein Ziffernwort,, dessen Ziffern Null sind, wenn die entsprechende Ziffer in der übertragsgespeicherten Form der Zahl durch fortschreitende Überträge ungeändert bleibt. Eine Übertragsgenerator· Ziffer ist Eins, wenn die entsprechende übertragsgespeicgerte Form zu vermehren ist. Ein ziffemweise Addieren dieses Worts., bei Löschen (discarding) der bei der Addition gebildeten Überträge zur Basis 4 liefert das Resultat in kanonischer Form, Eine ähnliche Prozedur wird selbstverständlich folgen, wenn eine andere Arithmetik als die Arithmetik zur Basis 4 ν erwendet wird.
6. Das assimilierte Resultat des Schritts 5,- nämlich A.. t(J), wird zum Ausgang durchgesteuert. Gleichzeitig
wird es durch den Selektor 305 am Akkumulaforeingang negiert und in dieses Register ebenfalls eingesteuert.
BAD
109884/0237
1543584
7. A . (K) wird dann entsprechend GU(IiO) realisiei t durch Auswählen der +2-Vielfachen von AR.(J) und ΛI.(DJ) als die Eingänge für die oberen Addierer 301. Dieses Resultat wird wie bei Schritt 5 assimiliert und zum Ausgang durchgesteuert, sobald die Speicherung des ersten Resultats, nämlich A (J) bewerkstelligt, wurden ist.
Es sei bemerkt, daß einige weitere Verheyf-er-u.gen hinsichtlich des Wirkungsgrades erhallen λ erden können durch Substituieren einer Addition anstelle einer A1IuIimplikation zu gewissen Zeiten. Dies ist möglich, wenn di>_- trigonometrischen Argumente ganz zahlige Viel-ieiie \oti7f/2 sind, was zu Funktionswerten von 0, -fl, oder -1 führt.
Komplexarithmetikeinheit - Multiplikator-Recodierung
Eine als Multiplikator-Recodierung bekannte Methode wird bei einer Ausführungsform der Erfindung verwendet.
Die hier benutzte Multiplikator-Recodierung ist zur Basis 4, ist nach links gerichtet und liegt in nichtredundanter Form vor. Der Zweck der Recodierung ist der, eine Verringerung der Anzahl Addiererbenutzungen bei einer Multiplikation auf die Hälfte der Zahl der im Multiplikator stehenden Ziffern zu ei'möglichen,
109884/0237
»5
5ff
also ein· Paarung als Ziffern zur Basis 4. Die Wirkung der Recodierung ist, Zahlen zur Basis 4 neu auszudrücken-(deren Ziffern zweckmäßig die Werte 0, I1 2 oder 3 annehmen), und zwar unter Ausschluß des Werts 3. Anstelle einer 3 werden die Werte -1 oder -2 benutzt. Der Grund des Ausßchließens von 3 ist der, daß Sehaltungraufwand und Ausführungszeit, die zur Bildung von -I oder -2 - lachen eines Multiplikanden in einer Binärmaschine erforderlieh .-und, wesentlich geringer sind als die entsprechenden Werte nir Bildung des +3-Vielfachen. Das Recodieren ist nicht redundant., d« Iji. die Zahl möglicher Ziiiernwerte in der recodierten Zahl ist gleich dem Radix, weil die Multiplikator ziffer nacheinander im Verarbeiter behandelt werden. Deshalb ergibt sich]k/]/i kein Zeitvorteil dadurch, daß man mehr als 4 mögliche Ziffernwerte zu läßt c
Es sei angenommen, daß der Multiplikator, X, in binärer Radix-Komplemeniiorm gegeben ist, d.h.:
X = 2x +
Σ ■·■■■
so daß al ho die Bit zur Bildung von Ziffern zur Basis 4, y., wie folgt gepaart werden können;
BAD ORIGINAL· 109884/0237
X ~ X-lVXJX2X3X4 "· X2k-lX2k
y0 'Y1 J2 ... yk
■ Σ ^-
i=0
Für iX) kann y. die Werte O, 1, 2 oder 3 annehmen; da der Multiplikator ein Sinus- oder Kosinuswert sein wird, kann y die Werte -+I, 0 oder -1 annehmen (d.h. der vierte Wert, -2, den χ χ darstellen kann, braucht nicht vorgesehen zu werden). Es bezeichne m. eine jedem y. zugeordnete Bool'sche Variable, die definiert ist durch
mi = X2i-lX2i
worin ν für die logische Disjunlction (logical union) steht. Wenn dann yt die i-te Ziffer des recodierten Multiplikators bezeichnet, ist die Recodierung gegeben durch:
-4m.. (27)
109884/0237
Die sequentielle Natur des Recodierens ist atis de r recursiven Form der Gleichung 26 ohne weiteres ersichtlich und ist im Zustandsdiagramm der Pig·, 5 dargestellt. Hier bezeichnen die angeschriebenen Übergänge U/K daß die recodierte Ziffer K auf das Binärziffernpaar IJ hin für den angegebenen Zustand von M erzeugt wird. Die Kreise 501 und 502 stellen die Zustände M =5 1 bzw« M = O dar« Die Ausführungsform von m. entsprechend einem Ausführungsbeispiel der Erfindung ist ein Flipflop M, das die Interpretation der Multiplikatorziffern zur Basis 4 modifiziert« Bei Verwendung von +2, +1, Q und -1 als die erlaubten Ziffernwerte sind die Bool'sehen Ausdrücke, die den Recodierer definieren, die folgenden;
+ 1 * ν ν TVT ν ν ν TVF
^T -κ · Λ ~ . „, -Λ. Λ , JLVJ. V Λ-*. -Λ—. XVJL
0iX2i-lX2iMvX2i-lX2iM
"liX2i-lX2iMvX2i-lX2iM
Der Recodierer erzeugt auch den nächsten Wert für M unter Verwendung der Gleichung (26).
109884/0237
Wenn die Binärziffern χ χ eine Ziffer zur Basis 4 zu bilden, betrachtet werden und haben beide den Wert 1, so hat das Recodieren die Wirkung, dem Wert χ negativ zu bewerten, so dann dieses durch Addieren von 1 zur nächsten Ziffer auf der linken Seite zukorrigieren. Deshalb sind keine speziellen Maßnahmen erforderlich für das negativ bewertete Vorzeichenbit, d.h., durch "Vernachlässigen" des soeben beschriebenen Korrektionsschrittes kann die gleiche Recodierlogik auf y als die anderen Ziffern zur Basis 4 angewandt werden.
Es sei bemerkt, daß die Multiplikanden Vielfachen für den unteren Addierer auf dem Realakkummulator in Fig. 3a die Werte -2,-1, 0 und +1 haben. Daher können die als Sinus 0 erzeugten Ziffernwerte, wenn recodiert, entsprechend Gl. (28) negativ interpretiert werden, um Negation des zweiten Produkts in Gl. (21a) wiederzugeben.
Ein Nebenprodukt der Recodierung ist eine Vereinfachung bei der Negation des Multiplikators. So können zur Bildung eines Cosinuswertes aus einer Sinustabelle unter Verwendung der Identität
cos (G 3£-} = - sin §,
die Zweierkomplementnegation erzeugt werden durch eine bitweise Negation von sin Θ, zusammen mit einem Stellen des Flipflops M auf 1 als den Anfangszustand für Multiplikationen»
BAD ORIGINAL·
1Q9884/0237
Zwei Binärzii'fernsteilen des Eealteilr; der Arithmetikschleife der Fig. 3 entsprechend einer Ausführungsform der Erfindung sind in Fig. 6 dargestellt. Diese- Ziffernstellen sind identisch mit den Ziffernstellen im Imaginärteil, Die Ziffernstellen sind "typisch"., im Gegensatz zu den nie-drig b ewerteten Stellen, {im denen wegen des Komplementübertrags, des Abrundons usw. spezielle Maßnahmen erforderlich sind) und auch im Gegensatz zu den hochbewerteten Stellen (in denen der Vorzeichenweitergabe und dem Zwischenüberfließen Rechnung getragen werden muß). Die hoeh- und niedrig bewerteten Stellen werden ihrerseits unten noch beschrieben,., Grad- und ungradzahlige Bitstellen unterscheiden sich voneinander nur wegen des Umstandes, daß der Übertraggenerator auf Basis 4 arbeitet« Einer dieser Unterschiede (Fig. 6) ist die Notwendigkeit für eine vierte Option am Eingang des oberen Addierers 603 bei gradzahlig mimerierten Stellen, beispielsweise der rechten Ziffernstolle in Fig. G. Ein weiterer Unterschied is1 das Erfordernis, ein Übertragssignal von gradzahlig numerierten Stellen während der "Assimilation" zu unterdrücken. Die in Fig. 6 benutzie Bezeichnung enthält mit IB beginnende Bezugs zeichen. Dieses bezeichnet ein Eingangspuffer oder, wenn keines verwendet wird, einfach den Eingang vom Speicher. Die Indizess bezeichnen die Stellenwerügkoit jedes Bit, wobei der Index k die Bewertung
BAD ORIGINAL 109884/023 7"
von 2~ angibt. Das Übersteigen eines Ausdruck bezeichnet die logische Negation desselben. Der Buchstabe R am Ende des Signals steht für den Realteil; die entsprechende Imaginärarithmetikschleife würde »Signale enthalten, die beispielsweise identi-
fiziert sind durcliJBI für Eingang-(Puffer)Imaginärbewertung / «i
-2i
2 . CG-Signale rühren von den durch die Indizes identifizierten Übertraggeneratorbit her. Die UCR-Signale werden in den Addierschaltungen (Fig. 7a, b) erzeugt. Mögliche Ausgangspufferstufen 610 sind mit den zugeordneten Gattern dargestellt. Die Leitungen 8 50 und 857 für Maßstabsänderung bzw. Maßstabsänderung werden zweckmäßig zwischen den Ausgang der Arithmetikeinheit und dem angenommenen Ausgangspuffer eingeführt, um eine Maßstabsänderung, wenn nötig, zu bewirken. Die Leitung 915 ist die "Assimilierleitung".
Die Flipflop 601 nnd 602 dienen zur Realisierung der Akkumulatorbit ASR und ACR (bezieht sich jeweils auf Akkumulator-Summenbitreal bzw. Akkumulator-gespeicherter Übertrag(carry)-real); die Flipflop sind je von J-K-Typus, um die Wirkung einer doppelgleisigen Speicherung vorzusehen. Sie sind die einzigen Speicherelemente innerhalb der Arithmetikschleife. Die oberen und unteren Addierer 603 und 604, als Typ 1 und Typ 2 bezeichnet, sind voneinander verschieden, weil die UND- und die EXKLUSIV-ODER-Operation für jedes Paar von Summen- und Übertragsbit für
BAD 109884/0237
den Übertrags generator brauchbar sind, folglich werden diese Signale als Zwischenergebnisse als Bestandteil des Addierers Typ 1 erzeugt. Diese Verbindungen zu dem Übertraggenerator von den oberen Addierern sind in Fig. 6 nicht dargestellt. Weniger Knoten der Fortpflanzungsverzögerung sind erforderlich, wenn die Summe und der Übertrag direkt ggebildet werden, wie dies anhand eines Vergleichs der beiden Addierertypen in Fig. 7a und 7b zu sehen ist. Fig. 7a zeigt eineiTyp-1-Addierer 603 und Fig. 7b zeigt einen Typ-2-Addierer 604, In beiden Schaltungen sind die logischen Gatterelemente NAND-Schaltungen. Die dreieckigen Elemente sind Inverter. Obgleich nicht immer erforderlich, ist Vorsorge zur Unterdrückung von Übertragen in allen Typ-!-Addierern getroffen. Die Leitung 914 dient zu diesem Zweck in Fig. 7a,
Es ist im Zusammenhang mit Fig. 6 zu beachten, daß die Vielfachen des als Eingänge zum unteren Addierer verfügbaren Imaginärteils des Operanden -2, -1, +1 sind, wobei durch eine fehlerhafte 0 das Minuszeichen in Gleichung (21a) wiedergegeben wird. Die gleiche zur Bewirkung dieser Auswählungen benutzten Signale werden im Imaginärteil der Arithmetikschleife zur jeweiligen Auswahl des +2, +1 und -2 -Vielfachen des Realteils des Operanden während der Multiplikation benutzt.
10988 A/0237
15495J4 Vi
Komplejiarithmetikeinheit - flächstwertige Ziffernstellen
Die sich nicht wiederholende Ausrüstung, die am linken Ende der Arithmetikschleifen notwendig ist, hängt vom Bereich der darzustellenden Zahlen ab. Die Maßstabsetz-Beschränkungen, das Multiplikatorrecodieren, die übertragsgespeicherte Form der Arithmetik sowie die Beschränkungen, die vom dem Umstand herrühren, daß die beiden Multiplikatoren der Sinus bzw, Cosinus des Winkels sind, gehen sämtlich bei der Bestimmung dieses Bereichs der Zahlen ein.
Zunächst sei der Zahlenbereich in den Akkumulatoren betrachtet.
Da alle Resultate einer jeden Iteration die Bedingung ι Aj <-τι I "
erfüllen müssen, um eine Maßstabsänderung um 1/2 während der nächsten Iteration zu verhindern, folgt, daß keine Resultate der in Gl. (19) beschriebenen Operation den Wert 1 in der Größe überschreiten werden (vorausgesetzt die Anfangsdaten erfüllen diese Bedingung); oder äquivalent hierzu, keine Operanden überschreiten 1 in der Größe bei der Rekursion, Bezeichnet man den Realteil und den Imaginärteil als AR bzw. AI, dann fordert die obige Grenze für die Größe von A
J + AR + AI I < -/Γ
MAX I +AR + AI [< V2 (29)
BAD 109884/0237
Für alle Vorzeichenkombination. Die Schritte bei der Multiplikation für den Realteil können beispielsweise beschrieben werden durch
i, ι = ν (ρ, + yc ι · AR - ys
k+l 4 k ° n-k nr
Hierin bedeuten
ρ = dio k-te Teilproduktsumme, k = 0, 1., ... η ic
die Endproduktsumme ist 4 ρ , und
yc , (vs . ) ist die recodierte Ziffer zur Basis 4 der Stellenbe·· J n-k v" n-k
wertung 4 beim Cosinus. Ys ist die recodierte Ziffer zur
n-lc
Basis 4 der Stellenbewertung 4 beim Sinus, η ist die Zahl der Ziffern zur Basis 4 rechts vom Radixpunkt.
Deshalb zeigen, weil der maximale Absolutwert einer Ziffer in den recodierten Multiplikatoren gleich 2 ist, die Gleichungen (29) und (30) an, daß das Maximum, um die eine Teilproduktsumme während irgendeines Zwischenschrittes bei der Multiplikation vermehrt werden kann, gleich —(2 -/2) ist. Da Ziffern für beide Multiplikatoren während Zwischenschritten der Wert 2 wiederholt, annehmen können, kann die begrenzende Teilproduktsumme, die im Akkumulator darzustellen ist, errechnet werden als die Summe einer geometrischen Reihe, die gegeben ist durch:
109884/0237
15405S4
945 I. (31)
Die Grenze für den Absolutwert jedes Teiles des schließlichen komplexen Produktes ist gleichfalls 1, ungeachtet des Umstands, daß der Koeffizient 1/4 in Gl. (30) nicht auf den letzten Schritt wirkt. Dies deshalb, weil der komplexe Multiplikator, exp(jO) in seiner Größe auf 1 begrenzt ist. Da die Komponenten von A.(J) in Gl. (20) in ähnlicherweise auf 1 begrenzt sind, sind die Teile von
A.(J) + A.(k) exp(jQ)
im Absolutwert auf 2 begrenzt. Diese Grenze ist in der Tat eine Notwendigkeit, weil eine Maßstabsänderung um 1/2 die Resultate auf einen im Speicher darstellbaren Bereich reduzieren muß. Der Grenzwert selbst muß vom möglichen Zahlenbereich ausgeschlossen werden, da sowohl +1 als auch -1 im Speicher nicht dargestellt werden kann. Der Ausschluß wird bewerkstelligt durch Definieren des Bereichs in Fig. 4 derart, daß nur solche Zahlen erfaßt werden, deren Größe kleiner als 1/2 ist. Der in den Akkumulatoren gehaltene absolute Größenbereich ist daher kleiner als 2, und deshalb ist eine Viererkomplementdarstellung ausreichend. Wenn AS. und AC. die i-te Akkumulatorsumme bzw. gespeicherte
BAD ORlGlNAt T 0988 U/0237
Übertragsbit bezeichnen, ist die numerische Interpretation
11
(32)
-2AS χ + / (AS1 + AC1)2"x
i=0
Als nächstes sei der Fall betrachtet, daß die Begrenzung für den Ausgang des ersten, d.h. oberen Übertragbewahrungsaddierers dem Betrage nach 2 überschreitet, nicht aber 4. Um zu zeigen, daß diese Zwischensumme größer als 2 sein kann, sei angenommen, daß jede Komponente eines Operanden 1-0 ist und daß eine MultiplikaÜrziffer 2 erscheint. Dann, wenn die vorausgegangene Teilproduktsumme 20 überschritten hat, überschreitet der Ausgang des ersten Addierers 2. Falls die obere Summe während der Multiplikation 4 überschritten hatj;e, konnte die Teilproduktsumme 4 überschreiten, was zu einem Wert von ρ ^l führt, um zwar im Gegensatz zu den früheren Maßnahmen. (Während der anderen Arithmetikoperationen braucht dieser Wert 2 nicht zu überschreiten.) Deshalb wird eine achter Komplementdarstellung zur Darstellung der oberen Summe verwendet. Wenn US. und UC. Summe- bzw. Übertragsbit bezeichnen, ist die numerische Interpretation
BAD ORIGfNAl 109884/0237
-4US o + / (US. + UC.)2 (33)
Schließlich muß der Ausgang des unteren Addierers ebenfalls kleiner als 4 während der Multiplikation sein, weil dein Retrage nach )p-l<.l ist. Jedoch sind hier weniger Abweichungen von der typischen Ziffernstellenlogik vorhanden, wenn eine sechszehner Komplementdarstellung benutzt wird. Sind S. und C. Summen- bzw. Übertragsausgänge, so ist die Interpretation
+ 11
-8S_g + ^ (S. + C.) ·2~\ (34)
-2~
Das Ausgangspuffer erfordert nur eine Zweierkomplementdarstellung.
Komplexarithmetikeinheit - Niedrigstwertige Ziffernstellen und
Abrundungsregeln
Die Multiplikation für zwei Komplikationen in die niedrig bewerteten Ziffernstellen ein , Das Abrunden erfordert gleichfalls eine nicht übliche Schaltung. Zunächst sei die Multiplikation betrachtet.
109884/0237 BAD
154958J.
Ziffern des Übertragbewahrungs-Teilprodukts, die hinter die niedi-igbowt-rtete Ziffernstelle nach rechts verschoben sind, können nicht vernachlässigt werden (was möglich sein würde, wenn Übertragweitergabeaddierer benutzt würden, oder wenn die Schiebedistanz mar eine Ziffer wäre), da ein Assimilieren dieser Ziffern die niedrigbewertete Ziffer hinsichtlich der beibehaltenen Genauigkeit beinträchtigen könnte. Im einzelnen muß bei Verschieben nach rechts des Ausgangs des zweiten Addierers
"" C9C1() °
'·· S9S10Sll
um zwei Ziffern stell en wir Wirkung von C1n = S1n = 1 berücksichtigt werden, obgleich diese Ziffern einzeln zu vernachlässigen sind.
Das Recodieren des Multiplikators erforderte die Verwendung negativer Ziffernwerte, was die Notwendigkeit eine KJpmplernent-Übertrags in der niedrig bewerteten Stelle des Multiplikanden Vielfachen bedingt. Jedoch ist der Übertrageingang zum niedrig bewerteten Ziffernaddierer, der für diese Anwendung zweckmäßig verfügbar ist, auch durch den verschobenen gespeicherten Übertrag erforderlich.
BAD ORIGINAL T09884/0237
Das Problem kann durch numerieren der in jeder Stelle während eines Zwischenschritts bei der Multiplikation zu addierenden Ziffern illustriert werden^
Λ ρ ΔΡ Akkumulator
AC AQ
. . . -cihJ .. ~ -no - ..
Inhalt
... D10 Dn Multiplikandvielfaches
D*ll zum oberen Addierer
... E10 En Multiplikandvielf ache s
Εΐι zum unteren Addierer
Kll wegen S10 - C1 = 1
Schritt
Hierin sind die mit einem *# versehenen Bit Komplementüberträge. In allen außer der letzten Stelle sind vier Bit zu addieren. Drei können als Eingang zum oberen Addierer verwendet werden, und das vierte,· zusammen mit dem Summen- und Übertragausgang des oberen Addierers, sind die Eingänge für den unteren. In der letzten »Stelle ist cäne Kapazität bis zu 5 Bit zu addieren, da der obere Addiere r keinen Übertrag-Ausgang zur niedrigbewerteten Stellung des unteren Addierers besitzt. Jedoch, besteht, wie oben angezeigt, die Notwendigkeit, sieben Bit in der niedrigbewerteten Stelle zu berüeksichti gen.
• ; BAD ORlQiNAL
10 9884/0237
Die vorgesehene Lösung ist, ein extra Bit am rechten Ende jedes Akkumulators zu definieren, um die Existenz eines Mangels im akkumulierten Teilprodukt bei jedem Schritt aufzuzeichnen. Um ein Verlangsamen der ganzen Arithmetiksehleife zu vermeiden, sind vier hinzugefügte Flipflop zur Informationsaufzeichnung vorgesehen, um den nächsten Zustand dieses Bit zu bestimmen, das mit DFR (DFI) für die Real- (Imaginär-) Arithmetiksehleife bezeichnet ist. Während jedes Schrittes, bei dem eine Verschiebung um zwei Bit nach rechts stattfindet, werden die Ausgänge S1n, S11 und C1n des unteren Addierers, zusammen mit einem der anderen Summandenziffern der niedrigstwertigen Stelle, für die kein Eingang verfügbar war (beispielsweise D*.)j in Flipflops aufgezeichnet. Dann wird parallel zum.Schritt i+1 die unten angegebene Addition ausgeführt:
b10 bll
) während des Schrittes i
cioDIi }
) gebildete Ziffern (3 5)
DF. *
DF111
l+l
BAD
109884/0237
{549584 So
Das bedeutsame Resultat dieser Addition ist der durch DF
H-I
dargestellte Übertrag hoher Gi "uvnordnun.i;j der dieselbe F'ewertung wie die niedrigstbewerte>e Ziffer im .Akkumulator besitzt. Die beiden äußeren Bit der obigen Summe .stellen Ziffern des Produkts dar, die nicht beibehalten werden (o!>gleich <ine derselben das Abrunden beeinflußt, wie nachstehend beschrieben wird).
Beim letzten Schritt in der Multiplikation, bei dem keine Verschiebung stattfindet, gibt dies die Möglichkeit vor Di'. - 1 wegen der Ziffern des vorausgegangenen Schritts; D* -~ 1 kann während dieses Schritts ebenfalls auftreten, ^-n· L'msland, .rilr den kein Addiere reingang verfügbar ist. D: .her :ann das Produkt, wie es im Akkumulator bis zur Ziffernsteile 11 dargestellt ist, um bis zu 2 abweichen. Die Behandlung dieses Mangels wird im Rahmen der Diskussion des vorzunehmenden Abrundens beschrieben.
Die für das Abrunden der Resultate vorgesehene Prozedur ist die folgende
(a) Wenn die Arithmetikresultate der laufenden Iteration im Maßstab nicht geändert werden, wird nur das Produkt abgerundet (da dieses die einzige Gelegenheit für ein Abschneiden ist). Es gilt die Regel, in der niedrigst bewerteten
BAD ORIGlNAt 109884/0237
Ziffernstelle des Produktes 1 hinzuzufügen, wenn der abgesclinitiene Teil in Bezug auf diese Ziffer gleich oder größer als 1/2 ist. Die erforderliche Information wird erhalten durch Beibehalten des gegenüber DF. 1 nächst höherwertigen Suimnenbit bei der Operation nach Gl. (35) während des letzten Schritts bei der Multiplikation. Der einseitig gerichtete Fehler in Folge eines dauernden Aufrundens, wenn das "abgeschnittene genau gleich 1/2 ist, wird als vernachlässigbar betrachtet.
(b) Wenn die Arithmetikresultate im Maßstab geändert werden, dann wird das obige Abrunden unterdrückt. Die einzige abzurundente Zahl ist A (J)5 wie diese nach Gl. (19)
1+1
definiert; ist. Das Abrunden besteht aus einem Addieren von 1 zur niedrigstbewerteten Ziffer, die nach der Maßstabsänderung beibehalten wird, und zwar abhängig davon, ob der abgeschnittene Teil zumindest gleich 1/2 ist oder nicht. Ein gesondertes Abrunden von A. 1 (K) ist nicht erforderlich, weil die Größe 2A.(J) in Gl. (20) die Ziffernstelle niedriger Größenordnung nicht beeinflußt.
Während eine Maßstabsänderung nicht angewandt wird, kann eine bis zu 3 große Zahl (bei Betrachtung der Ziffer niedriger Größenordnung als Einheit) erforderlich Kein, um das Produkt nach dem
BAD ORIGINAL
10 9884/0237
letzten iterativen Schritt bei der Multiplikation zu vergrößern; der vorstehend beschriebene Mangel kann bis zu 2 groß sein,, und ein Abrunden kann erforderlich werden. Diese Korrektur ist während der der Multiplikation folgenden Addition wegen des der Multipl plikation folgenden Akkumulatorbit AC1 = 0 möglich; folglich ist dieser Addierereingang verfügbar, und zwei der drei Eingänge zur niedrigstbewerteten Stufe des unteren Addierers sind vorhanden, weil der unterer Addierer während dieser Addition nicht anderweitig in Funktion tritt.
Das Abrunden bei vorgenommener Maßstabsänderung kann erreicht werden durch Erzwingen, daß AC als eine 1 am Übertraggenerator erscheint, und zwar auf die Addition folgend, wie A1 (J) vervollständigt (Wiederum, dieses Bit würde sonst 0 sein.) Dies bewirkt die Addition von 1 zur Ziffer niedriger Größenordnung des Akkumulators derart, daß eine Übertragweitergabe zur nächsten Stufe (Stelle Nt. 10) die bedingte Abrundung beim Bit niedriger Größenordnung ausführt. Jeglicher Fehler im Produkt wird während der Addition in der gleichen Weise durchgeführt, wie diese vorstehend für den Fall ohne Maßstabsänderung angegeben ist.
BAD ORIGINAL 109884/0237
sr
Komplexarithmejikeinheit - Übertraggenerator
Wie erwähnt, dient der Übertraggenerator dazu, eine in Übertrag gespeicherter Form vorliegende Zahl in die kanonische Form umzuwandeln. Diese Umwandlung wird durch Verwenden der lokalen Ühertragsweitergabeeigenschaft des Übertragsbewahrungsaddirernetzwerks selbst bewerkstelligt. Betrachtet man Paare binärer Ziffern im Akkumulator als Einzelziffern zur Basis 4, so bildet der Übertraggenerator ein Wort aus Bit, eines für jede quaternäre Akkumulatorziffer, das in jeder Stelle im Wege einer Modulus-4-Addition hinzuzufügen ist.
Die UND- sowie die EXCLUSIV-ODER-Verknüpfung zwischen AC. AS. seien mit G. bzw, P. bezeichnet, um die Übertragserzeugurb gsbedingung (carry-generate) und die Übertragsweitergabebedingung (carry-propagate) nmemonisch zu kennzeichnen. Der Übertraggeneratorausgang für die Bitstelle k, k ungradzahlig, ist dann
C'G-k = Gk+1 vPk+lGk+2 V Pk+lPk+2Gk+3 V ·'· V Pk+lPkf2
...P10Gn. (36)
Der Übertrags au s gang des oberen Addierers in den gradzahlig numerierten Bitstellen, d.h. jeweils in der höherbewerteten Bitstelle der zu Ziffern zur Basis 4 gepaarten Bit, wird während der
BAD ORIGINAL 109884/0237
Assimilation (s.Fig. 6) unterdrückt, da die ziffernweise Addition eine Modulus-4-Addition ist. Würde dies nicht getan, so würde der Τα-m G, ., in Gl. (36) zweifache Wirkung auf die Ziffern steile k haben, einmal über das Addiernetzwerk und einmal über den
C.G, ,-Term, Würder alternativ hierzu G1, n von der Gl. (:iß) κ κ+1
weggelassen, so würde ein Fehler in der Ziffer k-1 existieren, weil das Übertragsbewahrungsaddiernetzwerk der Fig. ti keinen Weg für G.,.. zur Beeinflussung der Ziffer k-1 vorsieht (oder für G„. 2 zur Beeinflussung der Ziffer 21 entsprechend den in der Zeichnung benutzten Indizees.
Schrittschaltelogik (Indexing Logic) - Allgemeines
Zusätzlich zur Komplexarithmetikeinheit enthält das Ausführungsbeispiel der Erfindung nach Fig. 2:
(a) eine Schrittschaltung zum Bereitstellen einer selbstkonsistenten Folge von Operanden und Trigonometriefunktionswerten für die Komplexarithmetikeinheit, $£>) ein Eingangspuffer zum Eingeben neuer Daten in den Speicher
zu Verarbeitungs zwecken, und
(c) ein Ausgangspuffer zur Übergabe der vervollständigten Resultate an einenprogrammierten Rechner, einen anderen Speicher oder eine Verarbeitungsanlage nach Aufforderung, wobei die im Cooly-Tukey-Algorithmus vorliegenden Resultate in übliche Folgen als Bestandteil der Übergabe umgesetzt werden.
109884/0237
Flexibilääi hinsicliilich folgender Punkte ist verfügbar:
(a) Format der Daten während der Übergabe an denFFTP-Speieher,
(b) Größe der Reihe,
(c) Auswahl der vom FFTP-Speicher zum Rechner zu übertra genden Resultate ■,
(d) Vorzeichen des Exponenten des Überhangs (kernal) (dsh. um die Fouriertransformation oder die Inversion anzunähern), und
(e) die numerische Genauigkeit der trigonometrischen Koeffizienten.
i^
Zunächst seien die folgenden Größen definiert:
(a) N = 2 ist die Größe der verarbeiteten Reihe, m ganzzahlig,
(b) M * log2N und
(c) i ist der Iterationsindex im Algorithmus, i = O, 1, «.., m-1.
Die Eingangspaare, die als Operanden während der i-ten Iteration erforderlich sind* sind durch die Indizes in Gl. (18)· gegeben. Wenn die mit 0, 1 ... N-I numerierten komplexen Reiheneingänge im Speicher bei den gleichnumerierten Adressen gespeichert werden, kann das erforderliche Adressenmuster beschrieben werden als
109884/0237 BADORIGlNAt
15495|4
Unterteilung der geordneten Reihe in 2 gleiche Segmente, wonach als Operandenpaare die entsprechenden Elemente in benachbarten Segmenten ausgewählt werden. Bei dem in Gl. (18) benutzten Index identifiziert das Binärfeld k „ „,,k . .
m-1 m-i-1
diese Segmente, während das Feld k . , ,,.,k die Stelle des innerhalb des Segments gelegenen, zu verarbeitenden Elements bezeichnet.
Die Erzeugung dieses Adressenmusters in der FFTP-Anlage wird bei einem Ausführungsbeispiel der Erfindung durch das Iterationsschieberegister 201 zusammen mit binären Adressenzähler 202 (Fig. 8) bewerkstelligt. Es seien die Inhalte dieser beiden Register wie folgt bezeichnet:
.,.ISR _, ISR^, . ·.*
■ t «AL.. „, AL,.. .. j ...j η
Die Bit von AC entsprechen den Ziffern von K in Gl. (18). Der laufende Wert von I, der Iterationszahlindex wird kodiert in
ISR . Λ = 1
m-i-1
ISR. = 0, für j f m-i-1.
Zur Bildung der Adressen in der für die vorstehend unter
10 9884/023 7 Sad original
ar
sv
n Komplexarithmetikeinheit - Folge von Operationen" beschriebenen Operationen erforderlichen Reihenfolge;, werden die nachstehenden Schritte aufeinanderfolgend ausgeführt:
(a) ISR. ν AC.-^ÄC; aUe j .
JJJ
(b) Auslesen aus Speicher« Gibt Zugriff zu A.(K).
(c) ISR.«AC.^AC, alle j.
3 3 3
(d) Auslesen aus Speicher. Gibt Zugriff zu A.(J).
(e) Speichere erstes Ergebnis, A1 (J).
(f) ISR. ν AC->AC, alle j.
J JJ
(g) Speichere zweites Ergebnis, A. 1 (K).
fh) Addiere zu AC 1 und wiederhole die obige Operation.
Bei jedem Speicher zugriff ist die verwendete Adresse die durch AC angezeigte. Wenn der obige Schritt (h) zu einem überschießenden Übertrag (carry-out) hoher Größenordnung des Adressenzählers 202 führt, was das Ende einer Iteration anzeigt, werden die Inhalte ISR des Iterationsschieberegisters 202 um eine Bitstelle nach rechts verschoben. Keine Abweichung von der obigen Folge, oder Steuerschleife, ist am Ende von Zwischeniteration erforderlich, weil der überschießende Übertrag ebenfalls anzeigt, daß die übrigen Bit in der Adressen 0 sind. Die Steuer schleife wird nach der letzten Iteration beendigt, wenn die Verschiebung nach rechts im Infcera-
BAD
109884/0237
ar
Sg
tionsschieberegister 201 mit ISRn = 1 versucht wird.
Folge_der trigonometrischen Koeffizienten
Da die Indexziffern, die die 0-Werte in Gl. (18) definieren, nur die links von k . gelegenen sind, sind das ISR Register 201 und das AC Register 202 gleichfalls zum Ordnen der trigonometrischen Koeffizienten in der gewünschten Reihenfolge brauchbar. Während der Adressenzähler 202 selbst das gewünschte Indexfeld hält, wird die praktische Verwendung dieses Register kompliziert durch die variable Lage und Größe des Felds, die anderweitig erwünscht sind. Das Indexfeld k ., ..,, k . wird deshalb in
m-1 m-i
einem gesonderten Zähler doubliziert. Dieser Zähler ist als Ö-Zähler 204 in Fig. 8 bezeichnet. Ebenso wie im AdressenzäMerregister ist die Bedingung für ein Weitersüifen (incrementing) dieses Feld ein Übertrag durch k . Λ (d.h., AC . A, Deshalb
ö m-i-1 m-i-1
kann der Inkrement-Theta-Logikblock 203 in Fig. 8 durch die folgende Bool'sche Funktion beschrieben werden
1V ISR. - c. ,
3-0 3 3
hierin ist "V" die logischer ODER-Verknüpfung und c. der Übertrag in das Bit j des Adressenzähler oder, äquivalent, der 1-nach-O
Überijang· von AC. ., Die Bit des Thetazählers sin.i bezeichnet 3-1
1 09884/0237
T12'Tll' "·'
und der korrekte Wert von 0 wird dargestellt, wenn das Bit T.,
das zweckmäßig als die 23 bewertete Ziffer des Zählers interpretiert wird, der Bewertung "7^*2" zugeordnet wird. Die resultierende Folge der Q-Wete ist in der nachstehenden Tabelle dargestellt:
Zähler-Bit Tn-I Tn-2 T2 T1 Tq Interpretation
(im Bogenmaß)
zugeordnete "tf~ syf •fr" fif jj
Bewertung 2" "2 "*" 8 4 2
0 0 0 0 0
Werte- 0 0 0 0 1
Folge 0 0 0 1 0
0 0 0 1 1
0 0 1 0 0
0 0 1 0 1
Tf/A
ff/8
Eine Methode zum Erhalt der trigonometrischen Funktions werte aus den Argumenten ist Geradeaus-Vorwärts-Logiknetzwerk. Eine andere Methode ist, den Inhalt des Theta-Zählers 204 zur Adressieeung einer Tabelle im Speicher zu verwenden. Diese Methode wird durch ein Bit eines nachstehend erläuterten Steuerworts gewählt.
BAD 109884/0237
do
Die tatsächlichen, als Multiplikatoren zu verwendente trigonometrischen Funktionswerte können leicht in der richtigen Reihenfolge erzeugt werden, wenn einmal die Folge der Argumente verfügbar ist. Ein typischer Sinusumsetzer 210 ist in Fig. 8 dargestellt, der seine Eingangswerte vom Thetazähler 204 erhält und Sinusfunktionswerte an die Arithmetikeinheit 50 in Fig. 2, oder, wenn Recodieren gewünscht ist, an den Recodierer 322 in Fig. 3b. Selbstverständlich kann eine ähnliche Umsetzung für ßosinusfunktionswerte vorgesehen sein, oder die Cosinuswerte selbst können aus den Sinuswerten hergeleitet werden.
Eine alternative Methode zum Bereitstellen der notwendigen trigonometrischen Werte erfordert das Speichern derselben zusammen mit den Resultaten der Iteration. Diese trigonometrischen Werte können dann, ansprechend auf ihre jeweiligen vom Thetazähler erzeugten Argumente wiederholt werden. Fig. 8 zeigt einen Speicheradressenselektor, der in der Lage ist, die Wiedergewinnung der Iterationsresultate oder der trigonometrischen Werte, auf Signale des Adressenzählers 202 bzw. des Thetazählers 204 hin zu steuern.
Vieles der dem vorliegenden Gegenstand eigenen Flexibilität wird in der Schrittschaltung der Fig. 8 ermöglicht. Ein Steuerregister
109884/0237
220 in Fig. 8 wird mit die Natur der Auszuführenden Transformation betreffenden Informatin beliefert, d.h. mit einer Information betreffend eine Frequenztransformairm oder eine Zeittransformation, die Aufzeichnungslänge usw. Für diese Zwecke ist das Steuerregister 220 in verschiedene Felder eingeteilt. Das Aufzeichnungslänge-Feld RLF des Steuerregister bezeichnet die Größe der zur verarbeitenden Aufzeichnung. Die Größe der Reihe kann beispielsweise so gewählt werden, daß sie jeglichen Wert von 2 ~ Werten annimmt, mit η = 0, I4 ..., 5 oder 6. Im Hinblick auf einfachen apparativen Aufwand wird das Aufzeichnungslänge-Feld RLF unter Verwendung von 6 Bit* redundant ausgedrückt, so daß eine Aufkeichnungslänge von 2 angezeigt wird, wenn die am weitesten links stehenden η Bit dieses Felds gleich 1 sind» Die folgende Tabelle illustriert die Kodierung.
Aufzeichmmgslänge-Feld Auf ze ic hnungslänge
000000 213
100000 212
110000
111111 27
Das Aufzeichnungslänge-Feld RLF dient dazu
(a) das richtige Bit des Iterationsschieberegisters 201 in Fig. 8 auf 1 zu steuern, wenn die Verarbeitung einer Aufzeichnung begonnen wird, BAD
109 884/0237
(b) den Adressenzähler zu einer Modulus 2 " -Zählung während des FFT-Zyklus zu veranlassen,
(c) AC beim Einführen neuer Daten zu modifizieren und
(d) die Operation des Thetazählers zu modifizieren, wenn er für eine Speicherbezugnahme entweder während eines Tabellennachschauens (table look-up) oder der Übergabe der Resultate vom FFTP. benutzt wird.
Es seien die RLF-Bir als RL. , RL1, .,., RL7 bezeichnet.
1 ü XX i
Als anfänglicher Schritt beim FFT-Prozeß wird das ISR-Register wie folgt eingestellt:
ISR. = RL -RL , i = 7, 8, ..., 11 (40)
ISR. = 0, i<7.
Daher wird ISR. für eine Reihe auf 1 eingestellt, bei der der binäre CT-Algorithmus j+1 Iterationen erfordert.
Das Aufzeichnungslänge-Feld RLF modifiziert die vorstehend be. schriebene Operation des Adressenzählers durch Halten jeglicher
hnichtgebrauchter Bit am linken Ende des Adressenzählers auf 1,
13 wenn die Größe der Reihe kleiner ist als 2 für die gegenwärtige Darstellung. Dies resultiert in einem Überschießen (carry-out) der Ziffer AC o am Ende jeder FFT-Iteration unabhängig von der
109884/0237 BAD
' m
Reihengröße» Im einzelnen wird der Schritt (a) des vorstehend beschriebenen grundsätzlichen Indizierens erweitert, um
RL. ν AC.-*AC, j= 7, 8, ..., 12. (41)
,! J J
zu erfassen.
Diese Operation ändert tatsächlich den ACrInhalt nur zu Beginn jeder Iteration, ist aber in der Steuerschleife für die Erzeugung jedes Resultatpaars der einfachheithalber eingeschlossen. Eine zufällife Folge der ODER-Vergnüpfung in Gleichung (41) ist die, daß, wenn die Reihengröße 2 ist, mit k^<l3, die von der Reihe besetztenFFTP-Speicherstellen von 2 (1-2 v) bis 2 -1 sind, und nicht von 0 bis 2-1 laufen.
Weiter enthält das Steuerregister 220 das Tabelle/Dekode-(TD)-Bit, das eine Anzeige erlaubt, daß eine Tabelle geometrischer Koeffizienten zu verwenden ist, vorausgesetzt, daß eine kleine nere als maximale Reihe verarbeitet wird. Diese Maßnahme bildet ein Mittel zum Studieren der Effekte reduzierter Genauigkeit, und auch ein Mittel zur Auswahl optimaler Koeffizientenwerte. Ist TD = 1, so wird der Thetazähler 204 als Adresse für eine Speicherbezugsnahme für die Sinus und Cosinus benutzt, anstelle beispielsweise vom Umsetzer 210 umgesetzt zu werden. Die Bit des Thetazählers werden an die Speicheradresse angeschlossen, aber
BAD 10 9 8 84/0237
in umgekehrter Reihenfolge, d. h.:
T zum Adressenbit 12, T1 zum Adressenbit 11,
T zum Adressenbit 0,
X Ct
Die Tabelle ist nach monoton zunehmenden Argumentwerten zu ordnen, anstelle dafl gefordert würde, mit dem umgekehrten Indexmuster konform zu gehen.
Wird der Thetazähler zur Speicherbezugnahme benutzt, so wird das Aufzeichnungslänge-Feld zur modifizierung der Werte, die es annimmt, benutzt. Der Operationsgrundzyklus ist im einzelnen:
(a) Stufe den Thetazähler weiter,
(b) L·ese aus dem Speicher das zwecks Zugriff angesteuerte Wort* in die Komplexarithmetikeinheit und
(c) Steure RLF im Wege einer ODER-Verknüpfung in den Thetazähler, d.h.
j = 0, 1, ...,
Diese Schleife wird mit anderen Operationen dahingehend angehalten.
10988A/0237
daß Schritt (a) auftritt, wenn das Steuersignal zur Weite rs tufung von Theta erzeugt wird (Fig. 8) das anzeigt, daß ein neues Koeffizientenpaar erforderlich ist.
Die durch die obigen Operationen gebildeten Adressenwerte sind so, daiS die Tabelle in den Speicherstellen 0 bis 2 " für eine Reihengröße von 2 zu speichern ist. Das für die j~te Speichersteile anwendbare Argument ist j · 7Γ · 2. .
Ist TD = I3 dann hat das NI-Bit keine Wirkung. Eine Unterscheidung zwischen der Fouriertransformation und der Umkehrung wird durch das Vorzeichen der in der gespeicherten Tabelle stehenden Sinuswertej& wiedergegeben.
Schließlich enthält das Steuerwort zwei Bit, die mit Fl und F2 in Fig. 8 bezeichnet sind und die eine Spezifizierung des Formats zur Dateninterpretation während der Übergabe erlauben.
Einige Ausführungsformen der Erfindung können selbstverständlich reak-time-Spektralanalysen verschiedener bestimmter Signale durchführen. Alles was erforderlich ist, ist das, daß die vom FFTP erforderliche Zeit zur Ausführung einer Analyse einer bestimmten Aufzeichnung ausreichend kurzer ist als die Länge der Signalzeit, die durch diese Aufzeichnung dargestellt wird. Wenn
BAD ORIGlNAt 109884/0237
beispielsweise jedes von zwei Signalen in T Sekunden lange Aufzeichnungen unterteilt wird,, wird eine T/2 nicht überschreitende Bearbeitungszeit benötigt, wenn beide in real-time verarbeitet werden sollen.
Die Grundoperation bei der Basis-4-Implementation des FFT-Algorithmus kann in Matrixform wie folgt ausgedrückt werden:
= Ί W w2 w3" A i
= 1 jw -w2 -jw3 A j(L)
= 1 -W w2 -w3 A •r-l
1 -jw -w2 jw3 A 4(Ρ)
A1+1(M)
_Ai+1(P)j
Hierin ist W komplex und j =γΏ. Es kann passieren, daß, nachdem die drei komplexen Produkte, die beim Bilden von A. γ(K) verlangt werden, ausgeführt worden sind, die restlichen Resultate ohne weitere explizite Multiplikationen gebildet werden können. Dies deshalb, weil ein jedes der restlichen Produkte sich höchstens um eine Negation und/oder eine Multiplikation mit j von einem der drei Produkte unterscheiden, die zur Bildung v»n A (K) benötigt werden. Eine Multiplikation mit j erfordert lediglich den Austausch der Real- und Imaginärteile einer komplexen Zahl plus die Negation des Realteils.
109884/0 23 7
BAD
Eine Systemorganisation, die in der Lage ist, alternativ entsprechend der Basis-2- oder der Basis-4-Form des Cooley-Tukey-Algorithmus zu arbeiten, ist in Fig. 9 dargestellt. Der mit der strichpunktierten Linie umrahmte Systemteil 800 enthält im wesentlichen die gleiche Einrichtung, wie diese bei den vorstehend beschriebenen Basis-2rAusführungen verwendet wurden. Der Block 930 ist ein Addiernetzwerk. Die drei zusätzlichen Register 901-903 sorgen für die Speicherung der beim Bildedn von mehr als einer Summe erforderlichen Zwischenergebnisse. Sämtliche Register 901-903, 910 und 920 sind inßeal- und Imaginärteile R bzw. I unterteilt. Die Leitung 140 ist der Eingang vom Speicher und die Leitungen 905 und 904 sind die Realteil- bzw. Imaginärteil-Eingänge zum Addierer 930. Die Prozedur für eine Operation zur Basis 4 ist bei der angegebenen Systemorganisation die folgende:
1. Überführe A.(R) vom Speicher in das Register 910.
2. Bilde A.(P)«W bei im Register 903 plazierten Endpro-
2 3
dukt (W, W und W werden als verfügbar angenommen.) Die Komplexmultiplikationsprozedur ist die gleiche wie bei der Operation zur Basis 2.
3. Überführe A.(L) in das Register 910.
4. Bilde A.(L)«W im Akkumulator.
5. Bilde die Summen
A.(L)-W + A.(P)W3—> Register 901 A1(L) W - A.(P)W3—^Register 902
BAD OBlGlNAt 10988 4/0237
6. Entnehme A.(M) und bilde A.(M) W2
7. Bringe A.(K) in Register 910 und bilde die Summen A.(K) - A.(M)W2-^Register 903
A.(K) + A1(M)W -^ Register 910 und Akkumulator.
8. Die Endresultate können dann wie folgt gebildet werden:
(a) Bilde A χ(Κ) = (Inhalt des Registers 901) +
(Inhalt des Registers 903),
und gehe mit dem Resultat in den Speicher und den Akkumulator.
(b) Bilde A JM) = (Akkumulatorinhalt) +
2 (Inhalt des Registers 910).
Das heißt, A .(M) kann ausgedrückt werden als -A.+1(K) + 2(A1(K) + A.(M)W2).
(c) Bringe den Inhalt des Registers 903 in den Akkumulator. Bilde A. (L) = (Inhalt des Akkumulators) +
j(Inhalt des Registers 902),
und gebe das Ergebnis in den Speicher und den Akkumulator. Beachte daß das j-fache des Inhalts des Registers 902 ermöglicht wird durch Umkehren der Verbindungen der Real- und Imaginärteile (Fig. 9).
(d) Bilde A (P) = -(Inhalt des Akkumulators) +
2 (Inhalt des Registers 903).
109884/0237
Wegen der bei den Koeffizienten vorhandenen Symmetriebeziehungen wird der angegebene Grundschritt bei einer Organisation zur Basis 4 mit drei komplexen Multiplikationen und acht Additionen vervollständigt, und nicht mit den offensichtlichen zwölf Multiplikationen und zwölf Additionen.
Obgleich an einigen Punkten der vorstehenden Beschreibung Reihen
13
mit 2 Elementen erwähnt worden sind, ist eine derartige Reihenlänge für die vorliegende Erfindung nicht grundsätzlich, auch ist es nicht erforderlich, daß die Zahl der Elemente auf ganzzahlige Hochzahlen von 2 beschränkt sind. Die beschriebenen Ausführungsformen dienen nur zur Erläuterung der Erfindung. Obgleich im einzelnen eine digitale Vorrichtung beschrieben worden ist, könnte in vielen Fällen entsprechende Analogschaltungen verwendet werden.
109884/0237

Claims (8)

PATENTANSPRÜCHE
1. Datenverarbeiter zum Erhalt komplexer Fourierreihe-
Koeffizienten entsprechend einer Eingangsfolge von Abtastwerten, dadurch gekennzeichnet, daß eine Arithmetikeinheit (Fig. 2, 50) unter der Steuerung einer Schrittschaltung (Fig. 2, 70) komplexe Fourierkoeffizienten iterativ erzeugt, und zwar beruhend auf einer in einem Speicher (Fig. 2, 20) gespeicherten Folge von Werten sowie auf durch einen Trigonometriefunktionsgenerator (Fig. 2, 60) erzeugten Werten, wobei jede Iteration zu einer Folge führt, die die vorher im Speicher gespeicherte Folge ersetzt, die anfänglich gespeicherte Folge die Folge der Eingangsabtastwerte ist und die nach einer vorbestimmten Anzahl von Iterationen gespeicherte Endfolge die gewünschten Fourierko effizienten darstellt.
2. Datenverarbeiter nach Anspruch 1, dadurch gekennzeichnet,
daß die vom Speicher (Fig. 2, 20) ausgewählten Werte bestimmt sind durch den Zustand eines ersten Zählers (Fig. 8, 201) in der Schrittschaltung (Fig. 2, 70), der die Nummer der Iteration bezeichnet, sowie durch den Zustand eines zweiten Zählers (Fig. 8, 202) in der Schrittschaltung, der anzeigt, welcher Koeffizient in der gegenwärtigen Folge erzeugt wird.
109884/0237
3. Datenverarbeiter nach Anspruch 2t dadurch gekennzeichnet, daß das Argument für den Trigonometriefunktionsgenerator (Fig. 2, 60) bestimmt ist durch die Zustände des ersten Zählers (Fig. 8, 201) und des zweiten Zählers (Fig. 8, 202).
4. Datenverarbeiter nach Anspruch I1 dadurch gekennzeichnet, daß die Resultate der Zwischeniterationen durch die Arithmetikeonheit (Fig. 2, 50) immer dann halbiert werden, wenn ihre Größen einen vorgewählten Wert überschreiten, und daß der Maßstabsfaktor für die Endresultate bestimmt wird durch Zählen der Häufigkeit, mit der die Zwischenresultate halbiert worden sind.
5. Datenverarbeiter nach Anspruch 1, dadurch gekennzeichnet, daß ein Fourierkoeffizient in der laufenden Folge gebildet wird durch in einem Akkumulator (Fig. 3a, 303) der Arithmetikeinheit (Fig. 2, 50) erfolgendes Akkumulieren von Teilsummen entsprechend
einem Fourierkoeffizienten der unmittelbar vorausgegangenen, in einem Speicher (Fig. 2, 20) gespeicherten Folge und dem ©rodukt eines weiteren Fourierkoeffizienten in der unmittelbar vorausgegangenen Folge mit' ausgewählten Ziffern von durch einen Trigonometriefünktiongenerator (Fig. 2, 60) gelieferten trigonometrischen Funktionwert.
6. Datenverarbeiter nach Anspruch 1, dadurch gekennzeichnet,
daß eine komplexe Komponente einer vorher erzeugten, in einem Akkumulator (Fig. 3a, 303) der Arithmetikeinheit (Fig. 3a, 350) gespeicherten Teilsumme in einem ersten Addierer (Fig. 3a, 301) der arithmetischen Einheit (Fig. 2, 50) addiert wird zu dem Produkt von
ausgewählten Ziffern einer komplexen Komponente eines vom Trigonometriefunktiongenerator (Fig. 2, 60) gelieferten trigonometrischen Funktionswerts und einer komplexen Komponente eines vorher erzeugten, im Speicher (Fig. 2, 20) erzeugten Fourierkoeffizienten, wodurch eine komplexe Komponente einer neuen unvollständigen Teilsumme gebildet wird,
daß die Teilsumme vervollständigt wird durch in einem zweiten Addierer (Fig. 3a, 302) der Arithmetikeinheit (Fig. 2, 50) stattfindenten Hinzuaddieren des Produkts
von ausgewählten Ziffern der anderen komplexen Komponente des trigonometrischen FunktionsWerts und der anderen komplexen Komponente des voeher erzeugten Fourierko effizienten,
und daß die komplexe Komponente der neuen Teilsumme die entsprechende komplexe Komponente der vorher erzeugten Teilsumme im Akkumulator ersetzt.
109884/0237
7. Datenverarbeiter nach Anspruch 6, dadurch gekennzeichnet, daß die Realteile der Partialsummen durch den ersten Addierer (Fig. 3a, 301) und den zweiten Addierer (Fig. 3a, 302) erzeugt und im Akkumulator (Fig, 3a, 303) akkumuliert werden, und zwar gesondert von praktisch identischen Elementen, die zu Erzeugen und Akkumulieren der entsprechenden Imaginärteile der Teilsummen benutzt werden.
8. Datenverarbeiter nach Anspruch 6, dadurch gekennzeichnet, daß neue Teilsummen vom ersten und zweiten Addierer (Fig. 3a, 301, 302) iterativ so lange erzeugt werden, bis alle Ziffern des trigonometrischen Funktionswerts erschöpft sind, zu welchem Zeitpunkt der Akkumulator (Fig. 3a, 303) eine komplexe Komponente eines neuen Fourierko effizienten enthält.
10 9884/0 237
Le e rs e i te
DE1549584A 1966-12-29 1967-09-27 Datenverarbeitungsanlage Expired DE1549584C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US60576866A 1966-12-29 1966-12-29

Publications (3)

Publication Number Publication Date
DE1549584A1 true DE1549584A1 (de) 1972-01-20
DE1549584B2 DE1549584B2 (de) 1974-06-20
DE1549584C3 DE1549584C3 (de) 1975-02-06

Family

ID=24425131

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1549584A Expired DE1549584C3 (de) 1966-12-29 1967-09-27 Datenverarbeitungsanlage

Country Status (5)

Country Link
US (1) US3517173A (de)
JP (1) JPS4631371B1 (de)
DE (1) DE1549584C3 (de)
FR (1) FR1537416A (de)
GB (1) GB1211859A (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3638004A (en) * 1968-10-28 1972-01-25 Time Data Corp Fourier transform computer
US3816729A (en) * 1969-10-06 1974-06-11 Raytheon Co Real time fourier transformation apparatus
US3662161A (en) * 1969-11-03 1972-05-09 Bell Telephone Labor Inc Global highly parallel fast fourier transform processor
US3601592A (en) * 1970-04-15 1971-08-24 Ibm Fast fourier transform addressing system
US3673399A (en) * 1970-05-28 1972-06-27 Ibm Fft processor with unique addressing
US3634668A (en) * 1970-06-01 1972-01-11 Sylvania Electric Prod Log spectrum decoding utilizing symmetry
US3686490A (en) * 1970-06-02 1972-08-22 Ratheon Co Real time serial fourier transformation circuit
US3679882A (en) * 1970-06-11 1972-07-25 Ibm Fourier digital filter or equalizer and method of operation therefor
US3634760A (en) * 1970-06-22 1972-01-11 Electronique Informatique Soc Frequency spectrum analyzer with fft computer
US3748451A (en) * 1970-08-21 1973-07-24 Control Data Corp General purpose matrix processor with convolution capabilities
US3680105A (en) * 1970-10-05 1972-07-25 Raytheon Co Pulse compression radar system
US3676565A (en) * 1970-12-01 1972-07-11 Singer Co Time domain waveform synthesizing method
US3725686A (en) * 1971-01-29 1973-04-03 Hughes Aircraft Co Polyphasor generation by vector addition and scalar multiplication
US3742201A (en) * 1971-02-22 1973-06-26 Raytheon Co Transformer system for orthogonal digital waveforms
DE2113883C2 (de) * 1971-03-23 1982-09-30 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Peilverfahren
US3767905A (en) * 1971-05-12 1973-10-23 Solartron Electronic Group Addressable memory fft processor with exponential term generation
US3881100A (en) * 1971-11-24 1975-04-29 Raytheon Co Real-time fourier transformation apparatus
US3731284A (en) * 1971-12-27 1973-05-01 Bell Telephone Labor Inc Method and apparatus for reordering data
GB2136170A (en) * 1983-03-03 1984-09-12 Electronic Automation Ltd Method and apparatus for accessing a memory system
US4785196A (en) * 1983-03-07 1988-11-15 Conoco Inc. Method and apparatus for converting seismic traces to synthetic well logs
US20040003017A1 (en) * 2002-06-26 2004-01-01 Amit Dagan Method for performing complex number multiplication and fast fourier
WO2010035634A1 (ja) * 2008-09-26 2010-04-01 本田技研工業株式会社 周波数成分分析装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL182171C (nl) * 1952-09-12 Delta Nederland B V Collectorzonweringsstelsel.
US3009106A (en) * 1959-09-18 1961-11-14 Kurt H Haase Wave form analyzing method and apparatus
US3180445A (en) * 1960-12-21 1965-04-27 Jersey Prod Res Co Frequency spectrum control for seismic signals
US3274542A (en) * 1963-03-25 1966-09-20 Socony Mobil Oil Co Inc Methods of band-equalizing seismograms

Also Published As

Publication number Publication date
JPS4631371B1 (de) 1971-09-11
DE1549584C3 (de) 1975-02-06
US3517173A (en) 1970-06-23
DE1549584B2 (de) 1974-06-20
FR1537416A (fr) 1968-08-23
GB1211859A (en) 1970-11-11

Similar Documents

Publication Publication Date Title
DE1549584A1 (de) Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten
DE3789116T2 (de) Prozessor zur zweidimensionalen diskreten cosinustransformation.
DE3650335T2 (de) Rechenverfahren und -gerät für endlichfeldmultiplikation.
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
DE69330848T2 (de) Einrichtung und Verfahren zur digitalen Unterschrift
DE3879373T2 (de) Residuen-arithmetische Rechenschaltung.
DE68923262T2 (de) Zweierkomplementmultiplikation mit einem Vorzeichen-/Grössen-Multiplizierer.
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE1222717B (de) Digitaler Interpolationsrechner
DE2135590A1 (de) Vorrichtung und Verfahren zur Er zeugung trigonometrischer und anderer Funktionen
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE2338469A1 (de) Programmierbares digitales datenverarbeitungsgeraet
EP0453641B1 (de) CORDIC-Prozessor für Vektordrehungen in Carry-Save-Architektur
DE3144563C2 (de)
CH627010A5 (de)
DE2357654A1 (de) Assoziativspeicher
DE2310553A1 (de) Vorrichtung zur durchfuehrung arithmetischer und logischer operationen
DE2732008B2 (de) Einrichtung zur Reduzierung von Fibonacci-p-Codes auf die Minimalform
DE2163621A1 (de) Schaltungsanordnung zur Durchführung der Fourier-Analyse
DE2612665A1 (de) Konvolutionsfunktionsgenerator und dessen anwendung in digitalfiltern
DE2039228A1 (de) Verfahren und Vorrichtung zum Konvertieren und Stellenwert-Verschieben von Zahlsignalen unterschiedlicher Codes in einer Datenverarbeitungsanlage
EP0249279B1 (de) Digitales Filter
DE2523755C3 (de) Divisionsvorrichtung unter Verwendung einer Näherungsgleichung
DE2712582C2 (de) DDA-Rechner (Digital-Differential-Analysator)
DE69804248T2 (de) Verfahren zur berechnung der schnellen fourier-transformation und der schnellen invers-fourier-transformation

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee