DE1549584A1 - Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten - Google Patents
Datenverarbeiter zum Erhalt komplexer Fourierreihe-KoeffizientenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/548—Trigonometric functions; Co-ordinate transformations
-
- 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/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast 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)
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)
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)
= 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)
L· (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
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".
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.
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
'·· 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.
(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
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
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)
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
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)
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)
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 |
-
1966
- 1966-12-29 US US605768A patent/US3517173A/en not_active Expired - Lifetime
-
1967
- 1967-09-19 FR FR121539A patent/FR1537416A/fr not_active Expired
- 1967-09-27 DE DE1549584A patent/DE1549584C3/de not_active Expired
- 1967-09-28 GB GB44105/67A patent/GB1211859A/en not_active Expired
- 1967-09-29 JP JP6239867A patent/JPS4631371B1/ja active Pending
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 |