U.S. patent number 3,745,317 [Application Number 05/145,689] was granted by the patent office on 1973-07-10 for system for generating the fourier transform of a function.
This patent grant is currently assigned to Commissariat A L'Energie Atomique. Invention is credited to Daniel Berthier, Jean-Marc Fauque, Jacques Max.
United States Patent |
3,745,317 |
Berthier , et al. |
July 10, 1973 |
SYSTEM FOR GENERATING THE FOURIER TRANSFORM OF A FUNCTION
Abstract
A system generates the Fourier transform of a real function z
(t) which is known in a time interval 2T and which is given in this
interval in the form of N samples at equal time intervals .THETA.,
i.e., in the form Z (p .THETA.) in which p is an integer such that
T/.THETA..ltoreq. p .ltoreq.T/.THETA.. The product z (p.THETA.)x
cos .pi./T Kp.THETA. or the product z (p.THETA.) .times. sin .pi./T
Kp.THETA. generated in the system is computed for values of the
integer K increasing from 1 inclusive to T/.THETA. inclusive. The
sum of these successive products, is computed; each of the sums
represents a sampling point of the harmonic at frequency K/2T of
the Fourier transform.
Inventors: |
Berthier; Daniel (Grenoble,
FR), Fauque; Jean-Marc (Gap, FR), Max;
Jacques (Saint-Egreve, FR) |
Assignee: |
Commissariat A L'Energie
Atomique (Paris, FR)
|
Family
ID: |
26215719 |
Appl.
No.: |
05/145,689 |
Filed: |
May 21, 1971 |
Related U.S. Patent Documents
|
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
Issue Date |
|
|
841702 |
Jul 5, 1969 |
|
|
|
|
Foreign Application Priority Data
|
|
|
|
|
Jul 30, 1970 [FR] |
|
|
70161135 |
May 26, 1970 [FR] |
|
|
7019221 |
|
Current U.S.
Class: |
708/403; 708/821;
324/76.21 |
Current CPC
Class: |
G06F
17/14 (20130101); H05K 3/4638 (20130101); H05K
2203/161 (20130101); H05K 1/0269 (20130101); H05K
2203/056 (20130101); H05K 3/4644 (20130101); H05K
3/4679 (20130101) |
Current International
Class: |
G06F
17/14 (20060101); H05K 1/02 (20060101); H05K
3/46 (20060101); G06f 007/38 (); G06g 007/19 () |
Field of
Search: |
;235/156,152,181,183,151.51,151.52,151.53 ;324/77A,77B |
References Cited
[Referenced By]
U.S. Patent Documents
Foreign Patent Documents
Primary Examiner: Gruber; Felix D.
Parent Case Text
CROSS REFERENCE
This application is a continuation in part of U.S. Pat. application
Ser. No. 841,702 filed July 15, 1969, now abandoned.
Claims
We claim:
1. A system for generating the Fourier coefficients of a real
function z(t) which is generated in the form of N samples equally
spaced by the interval .THETA. from t = -T to t = T in the form
z(p.THETA.) where p is an integer such that - T/.THETA. < p <
T/.THETA. comprising a store unit (1) for storing N samples equally
spaced by the interval .THETA., of the function cos .pi.t/T from t
= -T to t = T in the form cos .pi. p.THETA./T; a reader (2)
connected to said store for reading out every K.sup.th samples of
the functions cos .pi. t/T, K being an integer increasing from 1
inclusive to T/.THETA. inclusive, said reader and said store unit
forming a further generator (3) of samples cos (.pi. Kp.THETA./T);
a multiplier (4) one of the inputs (4a) of which is connected to
said generator of samples z(p.THETA.) while the other of the inputs
(4b) is connected to said generator (3) of samples cos (.pi.
Kp.THETA./T); said multiplier selectively forming the product of
z(p.THETA.) and cos ( .pi. Kp.THETA./T); an integrator (5)
connected to said multiplier for summation of successive products
each of the sums over p for which K is constant representing the
Fourier coefficient associated with the frequency K/2T; a switch
(8) for rezeroizing said integrator (5) and a clock (9) for
actuating said reader, said further generator, said multiplier and
said switch.
2. A system according to claim 1, wherein the multiplier provides
double amplitude and width modulation.
3. A system according to claim 1, wherein the integrater is an
operational amplifier with a parallel connection of a capacitor and
an electronic switch for rezeroising.
4. A system according to claim 1, wherein the function generator of
sample Z(p.THETA.) comprises a series of n field effect
transistors, in parallel, said transistors being switched by units,
tens, and hundreds signals, and delivering to a common output n
voltages V.sub.0, V.sub.1 . . . V.sub.n.sub.-1 corresponding to (n
-1) cosine values evenly distributed between 0.degree. and
180.degree. and a divider which divides by (n-1) and which is fed
by the synchronisation clock, a decimal counter connected to the
output of said divider and delivering units, tens and hundreds
pulses, three "AND" gates in parallel, their first input receiving
the units, tens and hundreds pulses respectively from the counter,
while their second input is connected to the synchronisation clock,
and a parallel triple accumulator receiving the outputs of the
three "AND" gates and delivering the accumulated units, tens and
hundreds signals, the output of said dividers actuating said
rezeroing switch.
5. A system according to claim 1, wherein the function generator
comprises in series a circuit comprising in parallel a plurality of
field-effect transistors, and resistors of predetermined values,
said circuit receiving a reference voltage, and an amplifier
shunted by a resistor having a predetermined value, said values of
the resistor being selected so that the gain of the series system
consisting of the parallel circuit and shunted amplifier increases
by (n-1) successive increments in accordance with a cosine law and
further includes a divider which divides by (n-1) and which is fed
by the synchronisation clock, a decimal counter connected to the
output of said divider and delivering units, tens and hundreds
pulses, three "AND" gates in parallel, their first input receiving
the units, tens and hundreds pulses respectively from the counter,
while their second input is connected to the synchronisation clock,
and a parallel triple accumulator receiving the outputs of the
three "AND" gates and delivering the accumulated units, tens and
hundreds signals.
6. A system for generating the Fourier coefficients of the real
function Z(t) which is generated by a digital generator (110) in
the form of N digital samples equally spaced by the interval
.THETA. from t = -T to t = T in the form Z(p.THETA.) where p is an
integer such that -T/.THETA. < p < +/.THETA. comprising a
digital store unit (120) for storing N digital samples equally
spaced by the interval .THETA., of the function cos .pi.t/T from t
= -T to t = T in the form cos .pi.t.THETA./T; a reader connected to
said digital store (120) for reading every K.sup.th sample of the
function cos .pi.t/T, K increasing from 1 inclusive to T.THETA.
inclusive, said reader and said digital store unit (120) forming a
further generator (112) of samples cos (.pi.Kt.THETA./T); a digital
multiplier (114) one of the inputs (A) of which is connected to
said generator (110) of samples Z(p.THETA.), while the other of the
inputs (B) is connected to said generator (112) of samples cos
(.pi.Kp.THETA./T) said digital multiplier (112) selectively forming
the product of Z(t.THETA.) and cos (.pi.Kp.THETA./T); an integrator
(116) connected to said multiplier (114) for summation of
successive products, each of the sums over p for which K is
constant being the Fourier coefficient associated with the
frequency K/2T and a clock (118) for actuating said reader, said
generators, said multiplier and said integrator.
7. A system as described in claim 6 for generating the Fourier
coefficients of a real function Z(t), said digital generator (110)
giving the function Z(t) including a digital store unit (152) for
storing the digital values of the sampled function Z(p.THETA.), a
reader connected to the store unit (152) for reading out the
contents of the store unit (152) in digital form, said clock (118)
being connected to said reader connected to said digital store unit
(152) and to said reader connected to said store unit (120) for
synchronising the read out of the contents of the store units.
8. A system according to claim 7, wherein the first address
generator includes a counter with provision for displaying K, an
accumulator whose output defines the store address, and an adder
coupled with the counter and accumulator, the adder adding the
value K to the accumulator contents whenever a synchronising clock
transmits a pulse to the counter and accumulator.
Description
BACKGROUND AND SUMMARY OF THE INVENTION
This invention relates to equipment for generating the Fourier
transform of a function, suitable for use in conjunction with
correlators in order to analyze an energy spectral density.
It is an object of the invention to provide improved equipment for
generating the Fourier transform of a real function known by its
physical representation; it is another object to provide equipment
which is adapted to process signals over a wide spectrum band and
which is simple in construction.
According to an aspect of the invention, there is provided a system
for generating the Fourier transform of a real function z (t) which
is known in an interval in the form of data sampled at N points
equally spaced by the interval in the form Z(p.THETA.) in which p
is an integer such that T/.THETA..ltoreq.p.ltoreq.T/.THETA.,
comprising multiplier for selectively forming the .THETA. in of
z(p.THETA.) and cos .pi./T Kp.THETA. for values of the integer K
increasing from 1 inclusive to T/.THETA. inclusive and the product
of z(p.THETA.) and sin .pi./T Kp.THETA. for values of the integer K
increasing from 1 inclusive to T/.THETA. inclusive and an
integrator for summation of the successive products, each of the
sums representing a sampling point associated with the frequency
K/2T of the Fourier transform wherein to obtain the function cos
.pi./TKp.THETA., the function cos2/T.pi.t is sampled for N points
of the interval 2T which are spaced by the interval .THETA. and 1/K
of these sampled values is sampled. A device of the above type may
cooperate with a real-time correlator, for instance of the type
described in U.S. Pat. No. 3,555,258, for automatically providing
the automatic analysis of an energy spectral density.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be more readily understood from the following
description and accompanying drawings, which are of course given
solely by way of example.
FIGS. 1 to 4 of the drawings show the corresponding time and
spectral windows respectively without weighting (FIGS. 1 and 2) and
with weighting of the recent Fauque-Berthier type (FIGS. 3 and 4)
for determining the Fourier transform of a correlation
function.
FIG. 5 represents the comparison of two types of weighting and
without weighting.
FIG. 6 shows the Fourier transform of a sampled function.
FIG. 7 shows three cosine functions respectively for values of K
equal to 1, 2 and 3.
FIGS. 8 and 9; and 10 and 11 respectively illustrate the
application of the method according to the invention to the
specific case of an auto-correlation function and a
cross-correlation function (for a definition of the
auto-correlation and cross-correlation functions reference may be
had to French Pat. No. 1,473,006).
FIG. 12 diagrammatically illustrates a device according to an
embodiment of the invention for generating the Fourier transform of
a function known by its physical representation.
FIGS. 13, 14 and 15 are representations of various components
illustrated in block form in FIG. 12, namely, the multiplier, the
cosine or sine function generator and the control unit for this
generator.
FIGS. 16, 17 and 18 show modified embodiment of the read-out of the
cosine function.
FIG. 19 is a simplified block diagram of a digitally working
embodiment of the device for forming the Fourier transform of a
function.
FIG. 20 is a simplified block diagram of the cosine function sample
generator of the embodiment of FIG. 1.
FIG. 21 is a block diagram of a sample generator suitable for use
in the device of FIG. 19 when the function is available in analog
form.
FIG. 22 is a block diagram of the integrating multiplier of the
device of FIG. 19, and
FIG. 23 is a simplified block diagram of a spectral analyser
comprising a correlator and a device for producing the Fourier
transform.
The invention will now be described with particular reference to
the generation of the Fourier transform of a function known by its
physical representation, more particularly for automatic analysis
of the spectral density.
It should first be pointed out that the analysis of an energy
spectral density is a problem which has numerous applications, of
which the main ones are accurate analysis of vibration phenomena
and noise analysis.
To solve problems of this type there are at present two types of
instrument available :
An ordinary heterodyne spectral density analyser, which has the
serious disadvantage that it is not a real-time instrument. To
integrate the measurement over a time T.sub.1, the operation must
be repeated for each point of the spectrum, so that to obtain
N.sub.1 points of the spectrum the measuring time must be greater
than the product N.sub.1 T.sub.1 ; also, in this case, the entire
signal to be precessed must be stored beforehand.
A "pulse-compression" spectral density analyser, which although it
may be considered as a real time instrument is limited by the
capacity of the memory used for the time compression, since it
generally does not allow a sufficient "slice" T.sub.1 of the signal
to be studied. This instrument has to be combined with a relatively
complex digital integrator which makes it much more expensive.
Also, as a result of its construction, this instrument is limited
as regards frequency and cannot process signals having a spectrum
extending beyond some thousands Hz.
In contradistinction thereto, the invention provides real-time
analysis of the spectral density over a time T.sub.1 of any
magnitude; signals can be processed in a much wider band (e.g. from
0 to 4 MHz), and this band can be extended because it is limited
solely by present-day performances of switching transistors (in the
embodiment concerned, these performances have voluntarily been
taken as the limit so that these switching transistors can be used
in very simple circuits). The simplicity of design results in an
analyser which is much cheaper than the analysers of the
above-mentioned two types which are at present available.
Before explaining the invention in detail, the main properties of
Fourier transforms will be given, since they will be useful for an
understanding of the invention.
It will be assumed that a real function z(t) is known not by its
mathematical formulation but by its physical representation for
values of the variable t ranging between -T and +T.
This function will initially be assumed to have a value of zero for
any value of the variable outside the interval -T, +T.
A function of this type admits of a Fourier transform denoted by
Z(f) and defined by the formula: ##SPC1##
Since z(t) is zero outside the interval (-T, +T), equation (1) can
be written as follows: ##SPC2##
i.e., ##SPC3##
Generally, therefore, Z(f) is a complex function of the variable f
comprising a real part (in phase): ##SPC4##
and an imaginary part (in quadrature): ##SPC5##
An amplitude spectrum
A.sub.z (f) =.sqroot.[R.sub.z (f) ].sup.2 + [I.sub.z (f) ].sup.2
(6)
and a phase spectrum
.phi..sub.z (f) = Arc tg (I.sub.z (f)/R.sub.z (f) (7)
can also be defined.
It is known that Z(f), which is the frequency spectrum of a
physical function z(t), has by its nature a limited spectrum,
because the pass-band of any real process is limited. It will
therefore be assumed that F.sub.o is the frequency so that for
.vertline.f.vertline. > F.sub.o, Z(f) is zero (or less than a
predetermined value .epsilon. , which may be as small as
desired).
Generally, and according to the definition given above, Z(f) is a
function of f which is zero outside the interval -F.sub.o,
+F.sub.o. In practically every case, it is unnecessary to know the
spectrum Z(f) continuously; on the contrary, it is sufficient to
know just the values of Z(f) for discrete values of the variable
f.
We therefore have instead of Z(f) a series of values
Z(o), z(f.sub.o), Z(2f.sub.o), . . . Z(Kf.sub.o), . . . Z(pf.sub.o)
with integer p < F.sub.o /f.sub.o.
We may therefore write the following ##SPC6##
where Z*(f) denotes the sampled function Z(f), f.sub.o being the
interval between two successive points of the spectrum Z*(f) and
.delta. (f - Kf.sub.o) denotes the Dirac delta distribution or
function, i.e., the extension to the range of functions or
distributions of Kronecker's coefficient; by definition, the Dirac
function .delta. (x) is such that for an arbitrary function c(x) of
a single continuous variable, ##SPC7##
for any value of y; the Dirac function or distribution may be
"represented" by a vertical line of zero width and infinite height,
of finite and non-zero area.
If the function z(t) is known in the interval -T, +T, it is
unnecessary to try to obtain the spectrum with a "definition"
better than 1/2T as regards the frequency.
We may therefore take fo =1/2T, and hence ##SPC8##
The following remarks will be concerned with the determination of
##SPC9##
The remarks which will be made concerning the real part of Z(f)
will be readily transferable to the imaginary part of Z(f).
Having dealt with these general features of Fourier transforms, we
shall now pass to the calculation of the Fourier transform. Since,
by definition, ##SPC10##
we also have: ##SPC11##
We must therefore caculate ##SPC12##
For this purpose, z(t) must be multiplied by the function cos 2
.pi. Kf.sub.o t, and then this product must be integrated from -T
to +T, which is the interval within which z(t) is known.
This operation will be repeated for the various values of K from 0
to F.sub.o /f.sub.o.
To this end, the function z(t) must be stored and the most
convenient method is to store the function z(t) after sampling,
i.e., have z(t) defined by a series of point values
- m .THETA., -(m-1) .THETA., . . . - K (.THETA.), . . . - 2
.THETA., - .THETA., o, .THETA., 2 .THETA., . . . K.THETA. . . .
(m-1).THETA., . . . m.THETA.
m being an integer between 0 and T/.THETA. (as will be seen
hereinafter, to perform the invention the values of z(t) at each of
these times are stored either digitally, e.g. in core or bistable
stores, or in analog form, e.g. as capacitor charges). The function
z(t) is therefore represented by a series of values z(-m.THETA.), .
. . z(-K.THETA.), . . . z(-.THETA.), z(O), z(.THETA.), . . .
z(K.THETA.), . . . z(m.THETA.).
Shannon's theorem (some explanations of which will be given below)
shows that to enable these samples to reconstitute the function
z(t) it is only necessary for the sampling interval .THETA. to be
such that .THETA. < 1/2 F.sub.o.
We may now therefore assume that instead of z(t) we have
##SPC13##
The meaning of p = - T/.THETA. or p = T/.THETA. is obviously that p
is an integer between - .lambda. and + .lambda., .lambda. being the
integer immediately below T/.THETA..
It is proved (as explained below) that if the function z(t) is
known by z*(t), we shall have an exact value of R.sub.z (Kf.sub.o)
by making ##SPC14##
We have seen that the lowest value that was possible for fo was fo
= 1/2T; and hence ##SPC15##
In other words, to have the exact value of ##SPC16## z(t) cos 2
.pi. K/2Tt dt, it is only necessary to operate from the function
z(t) sampled in accordance with Shannon's sampling theorem, by
multiplying each sample of z*(t) by the corresponding sample of cos
2 .pi. K/2T t, i.e., by multiplying each value of z(p.THETA.) by
the value of the cosine function at the time p.THETA., and by
forming the sum of these products, and it is precisely this that is
the main feature of the invention.
It is quite pointless to make any interpolation between the
successive samples.
Generally, the sampling frequency 2F.sub.e will be greater than
2F.sub.o, and we shall have
.THETA. = 1/2F.sub.e < 1/2F.sub.o ;
whence ##SPC17##
Such a method provides the real-time determination of energy
spectral density (power spectra).
As indicated above, existing instruments for the real-time
determination of these power spectra are based on time compression
followed by narrow-band smoothing. Such instruments are complex,
expensive, and are limited to some tens of kHz on the
high-frequency side.
On the other hand, it is an easy matter to obtain a power spectrum
from the auto-correlation function of the signal by the
Wiener-Kinchine theorem.
The Wiener-Kinchine theorem states that the energy spectral density
of a signal and the auto-correlation function of this signal are
Fourier transforms of one another and this may be written as
follows
C.sub.xx (.tau.).revreaction.S.sub. xx (f) ##SPC18##
where ##SPC19##
An interspectrum S.sub.xy (f) is also defined, which is the Fourier
transform of the inter-correlation function C.sub.xy (.tau.)
between two signals x and y where ##SPC20##
This interspectrum S.sub.xy (f) is very important in many problems,
particularly in the case where the function C.sub.xy (.tau.) is the
pulse response of a system; in that case S.sub.xy (f) is the
frequency response or transfer function of said system.
There are instruments available which automatically carry out the
auto-correlation and inter-correlation functions and provide these
functions in a sampled form, i.e., in the form of a series of
equally spaced pulses. ##SPC21##
Such correlators therefore only have to be connected to a Fourier
transform generator operating in accordance with the
above-described principle to provide a system for the automatic
real-time analysis of a spectral density. Such an instrument is
much less complex than current spectral density analysers which
operate on other principles and the instrument according to the
invention also has better performances.
We shall now examine the precautions required for calculating the
Fourier transform of a correlation function.
When it is required to obtain the Fourier transform of a
correlation function defined between -.tau..sub.M and +.tau..sub.M,
two cases must be considered. First case: C(.tau.) is zero when
.vertline..tau..vertline.> .tau. M ; in this case, it is only
necessary to apply the basic definition and the Fourier transform
of C(.tau.) gives S(f). Second case: C(.tau.) differs from zero
when .vertline..tau..vertline.> .tau. M ; this means that the
correlation function C(.tau.) is obtained from a correlation
function C.sub.1 (.tau.) by truncation, C.sub.1 (.tau.) being zero
in the case of .vertline..tau..vertline.> .tau. .sub.M with 1M
> .tau. M.
C(.tau.) is therefore C.sub.1 (.tau.) multiplied by a "window"
function W(.tau.).sub.M, i.e.,
C(.tau.) = C.sub.1 (.tau.) .sup.. W (.tau..sub.M) (21)
where ##SPC22##
If we calculate the Fourier transform of C(.tau.), there
corresponds to the product C(.tau.).sup.. W(.tau..sub.m) in the
time range, the convolution product
S (f) = (S.sub.1 (f) * 2.tau..sub.M (sin 2 .pi. f .tau. .sub.M /2
.pi. f .tau. .sub.M) (22)
c.sub.1 (.tau.) .sup.. w (.tau..sub.m).revreaction.s.sub.1 (f) * 2
.tau..sub.M (sin 2 .pi. f .tau..sub.M /2 .pi. f .tau..sub.M)
(23)
in the frequency range; S(f) is therefore the result of convolution
of the true spectrum S.sub.1 (f) by the function
2 .tau..sub.M (sin 2 .pi. f .tau..sub.M /2 .pi. f.tau..sub.M).
This convolution will introduce spurious oscillations (or lobes) on
S(f). This disadvantage is reduced by multiplying the correlation
function by a weighting function. There are three main weighting
methods:
a. Von Hann's method (the "hanning" method), which comprises
multiplying C(.tau.) by 1/2 (1 + cos (.pi..tau./.tau..sub.M));
b. R.W. Hamming's method (the "hamming" method), which comprises
multiplying C(.tau.) by 0.54 + 0.46 cos
(.pi..tau./.tau..sub.M);
c. the Fauque-Berthier method, which comprises multiplying C(.tau.)
by: ##SPC23## .
The first two methods are conventional but the third is a recent
method and will therefore be briefly detailed below.
Let W(.tau..sub.M) be the time window (FIG. 1) which multiplies the
function (.tau.) and let Q.sub.o (f) be the corresponding spectral
window (FIG. 2) which convolutes the spectrum when no weighting is
applied. This spectral window Q.sub.o (f) is inconvenient, because
in introduces side lobes, but on the other hand it has the
advantage of being narrow in the frequency range and hence giving a
fairly good resolution.
The conventional weighting methods (hanning or hamming) eliminate
the side lobes almost completely but substantially double the width
of the spectral window and hence halve its height; this greatly
reduces the resolution.
The resulting spectral windows (hanning or hamming) are very
compressed in relation to Q.sub.o (f).
The attempt must therefore be made in the spectral range to reduce
the side lobes of Q.sub.o (f) without excessively reducing the
height of the central lobe. For this purpose, Q.sub.o (f) is
convoluted by a rectangular window Q.sub.A(f), the width of which
is equal to the period of the side lobes of Q.sub.o (f), i.e.,
1/.tau..sub.M (FIG. 3); corresponding to this window Q.sub.A (f) we
have in the time range (FIG. 4) a window ##SPC24## ; since it is
required to convolute
Q.sub.o (f) by Q.sub.A (f) in the frequency range, it is only
necessary to obtain the product of W(.tau..sub.M) and q.sub.A
(.tau.) in the time range, because Q.sub.o (f) * Q.sub.A
(f).revreaction.W (.tau..sub.M) .sup.. q.sub.A (.tau.) (24)
for this Fauque-Berthier weighting, therefore, we shall multiply
C(.tau.) by ##SPC25##
FIG. 5 shows the representative curves P.sub.H of the case of a
weighting of the conventional type (hanning or hamming) P.sub.FB of
the case of weighting of the recent type (Fauque-Berthier) and
P.sub.o of the case without weighting as a function of f.
.sub.M.
To conclude these general remarks, we shall return to Shannon's
sampling theorem.
Let z(t) be a function and a system which samples said function at
the frequency Fe, i.e., which samples the value of the function
z(t) at times regularly spaced by .THETA. = 1/F.sub.e.
The function z(t) then becomes the sampled function z*(t)
represented by a series of values
. . Z (-n/F.sub. e) , . . . z (-1/F.sub.e), z (O), z (1/F.sub.e), .
. . z (n/F.sub.e) , . . . which may be written as follows:
##SPC26##
or ##SPC27##
or alternatively ##SPC28##
It is known that for a Fourier transform ##SPC29##
admits ##SPC30##
i.e., that ##SPC31##
Assuming that z(t) admits of a Fourier transform Z(f), the Fourier
transform of z*(t) which is expressed as F[z*(t)], may be written
as equal to the convolution product of the Fourier transform of
z(t) and the Fourier transform of ##SPC32## ##SPC33## ##SPC34##
and hence ##SPC35##
F[z*(t)] is therefore a sum of the functions . . . Z(f - Kf.sub.e),
. . . Z(f - F.sub.e), Z(f), Z(f + F.sub.e), . . . Z(f + Kf.sub.e).
. .
We have a sum of functions derived from one another by F.sub.e
translations along the frequency axis.
If z(t) has a limited frequency spectrum, i.e., if Z(f) is
substantially zero for .vertline.f.vertline. > F.sub.o, these
translations will not affect the form of the elements Z(f-Kf.sub.e)
provided that Fe is greater than or equal to 2F.sub.o ; there will
then be no overlap of the spectra, as shown in FIG. 6, in which f
is plotted on the abscissae and F[z*(t)] on the ordinate.
In these conditions, the spectrum Z.sub.1 (f) of z*(t) enables the
spectrum Z(f) of z(t) to be found; for this purpose it is only
necessary to multiply Z.sub.1 (f) by a window function Q(F.sub.e
/2) so that
Q (Fe/2) = O for f < - F.sub.e /2 and f > F.sub.e /2
Q (Fe/2) = 1 for - F.sub.e /2 < f < F.sub.e /2.
Then Z(f) = Z.sub.1 (f) .sup.. Q(f).
This window Q(f) will be produced in practice by considering
Z.sub.1 (f) only between F.sub.e /2 and F.sub.e /2. We therefore
have Z(f) = Z.sub.1 (f) .sup.. Q(f).
Taking the Fourier transforms of the two numbers, we have
z(t) = z* (t) * Fe (sin .pi. F.sub.e t/.pi.F.sub.e t) (31)
##SPC36##
and hence ##SPC37##
Shannon's sampling theorem shows that if a function z(t) has a
frequency spectrum limited by the values -F.sub.o, F.sub.o, z(t)
can be found from samples taken at the frequency F.sub.e >
2F.sub.o.
Returning to the Fourier transform of z(t) which is Z(f), then by
definition ##SPC38##
The Fourier transform of z*(t) is ##SPC39##
We have just seen that Z(f) can be found by considering Z.sub.1 (f)
between only -F.sub.e /2 and F.sub.e /2.
The above two expressions are therefore equivalent; in these
conditions ##SPC40##
may be written as follows: ##SPC41##
or alternatively ##SPC42##
but ##SPC43##
and hence ##SPC44##
If the function z(t) is known between -T and +T, and is assumed to
be zero for .vertline.t .vertline. > T, n will vary from
-TF.sub.e = -p to +TF.sub.e = +p ##SPC45##
If we consider only the values of f contained between -F.sub.e /2
and +F.sub.e /2 (i.e., between O and F.sub.e /2 in fact), we have
##SPC46##
whence ##SPC47##
If f varies by discrete values Kfo, then ##SPC48## ##SPC49##
or, since .THETA. = 1/F.sub.e, ##SPC50##
which can be divided up into ##SPC51##
and ##SPC52##
If f.sub.o = 1/2T, then we have formula (15) again : ##SPC53##
After these preliminary remarks, we shall now explain the details
of the method according to the invention.
The function z(t) is assumed to be given in a sampled form, .THETA.
being the sampling interval.
The function z(t) is therefore represented by a series of
values
. . z (-K.THETA.), . . . z (-2.THETA.), z (-.THETA.), z (O), z
(.THETA.), z (2.THETA.), . . . z (K.THETA.), equally spaced over
the t axis, the interval being .THETA..
These values z(K.THETA.) are stored either digitally (e.g. in core
or bistable memories) or in analog form (e.g. as capacitor
charges).
For calculation of the Fourier transform of z(t), the sampled
values of z(t) are finally read out in analog form either by
digital-analog decoding of the contents of the memories or stores
if they are of the digital type, or by direct read-out thereof if
they are of the analog type.
The function z(t) therefore being sampled with the interval
.THETA., it will be defined by N points, N being an integer
immediately below 2T/.THETA. + 1. Since the interval 2T is
generally large with respect to the interval .THETA., we may write
N = 2T/.THETA. + 1 in order to simplify.
The function z(t) being known over an interval of 2T, the
definition over the spectrum cannot be greater than 1/2T; we may
therefore take f.sub.o = 1/2T; as a result, the lowest frequency of
the cosine function will be 1/2T = f.sub.o. Thus at the end of N
points of cos 2 .pi. 1/2T p.THETA., we shall have
cos (2 .pi. 1/2T .sup., b 2 T) = cos 2.pi.
We shall therefore produce a period of the function cos 2.pi./2Tt
sampled at N points having the interval .THETA. (FIG. 7a gives an
example for N = 41 and n = N + 1/2 = 21), i.e., a programmed cosine
function.
Taking the products of z(p.THETA.) and cos 2 .pi. (1/2T)p.THETA.
and the sum of these products, we have ##SPC54## we now make K = 2
for the cosine function, then for z(p.THETA.) we shall have cos 2
.pi. 1/2T 2p.THETA., and if we take the sum to p of the products
z(p.THETA.) cos 2 .pi. 1/2T 2p.THETA., then we have ##SPC55##
In practice this is equivalent to reading out the values of the
programmed cosine in increments of two, at the addresses 0, 2, 4, 6
. . . (FIG. 7b).
If we now read out the points of the programmed cosine taking the
addresses by increments of three (FIG. 7c), we shall have for each
value of Z(p.THETA.) the associated value of the cosine function
cos 2 .pi. (1/2T) 3p.THETA. .
Taking the products and the sum of the products we shall have
##SPC56##
Similarly, by reading out the values of the programmed cosine for
adresses in increments of K, we shall have generally ##SPC57##
and this applies to values of K increasing up to K = n - 1, with n
= N + 1/2 or n - 1 = N - 1/2 = T/.THETA., and hence n - 1/2T =
1/2.THETA. = F.sub.e /2 (Fe being the sampling frequency), and from
this we have the value ##SPC58##
There is no point in calculating R.sub.z (K/2T) for K > n - 1
since higher values of K would correspond to spectrum frequencies
above F.sub.e /2 ; the latter is already greater than or equal to
F.sub.o.
This will also give a control, since R.sub.z (n - 1/2 T) will have
to be zero.
We shall now examine the specific case in which z(.tau.) is a
correlation function known between - .tau..sub.M and +.tau..sub.M.
We shall distinguish between the following two possible
hypotheses:
a. z(.tau.) is an auto-correlation function; it is known that the
function z(.tau.) is even: z(.tau.) = z(-.tau.); a knowledge of
z(.tau.) in the case of .tau. > 0 is thus sufficient and if we
know n points of z(t) for .tau. > 0, that is equivalent to
knowing N = 2n - 1 points of z(.tau.) for .tau. .revreaction. 0; on
this hypothesis, a half-period of the cosine function is programmed
over n points.
b. z(.tau.) is an cross-correlation function; z(.tau.) and
z(-.tau.) are calculated separately:
(for .tau. > 0, we have n points;
)for .tau. > 0, we have n - 1 points, and we thus
(return to the preceding hypothesis.
Thus where this method is applied to correlation functions, it will
only be necessary to program a half-period of the cosine at a
number of points n equal to the number of known points of the part
of the corresponding correlation function, either at .tau. > 0
or at .tau. < 0.
Referring to FIGS. 8 and 9, it will be apparent that a knowledge of
n points of the auto-correlation function is equivalent to a
knowledge of (2n - 1) points of this function, these figures
illustrating the pairs of z(t) and cosine curves linked by
auto-correlation.
The cosine function is therefore programmed at n points and the
auto-correlation function is processed at n points, the resultant
then having to be multiplied by two.
With regard to the cross-correlation function, in the general case
in which it is non-zero between - .tau..sub.M and + .tau..sub.M, it
is first calculated at n points from 0 to .tau..sub.M, and then at
n points from 0 to - .tau..sub.M.
For calculation of Z(f), the two parts of the cross-correlation
function will be processed successively, and the sum of the two
Fourier transforms will be formed counting the products associated
with .tau. = 0 just once; FIGS. 10 and 11 show the pairs of z(t)
and cos curves linked by inter-correlation, distinction being made
between the two cases E < 0 and E > 0.
In these cases, therefore, the number of points programmed over a
half-period of the cosine (at the lowest frequency) will be equal
to the number of points of the correlation function taken for .tau.
> 0 or for .tau. < 0.
In the case where the function z(t) is not even, it is also
necessary to calculate
I.sub.z [(K/2T)] = .THETA. .SIGMA. z (p.THETA.) sin (2.pi. /2 T)
Kp.THETA. i.e., the sine function (2.pi./2 T) Kp.THETA. must be
generated.
For this purpose it is only necessary to read out the programmed
values of the cosine function with a quarter-period offset, i.e,
start reading out at the sample which has zero as its value (sample
No. 10 in FIG. 7a) instead of commencing with the sample having 1
as its value (sample No. 0 in FIG. 7a).
The method and the analog read-out means for the programmed values
of the cosine and/or sine function having been explained in detail,
reference will now be made to FIG. 12 which illustrates a complete
device according to the invention for generating a Fourier
transform.
This device comprises in combination store unit 1 whereby the
values of the sampled function z(p.THETA.) can be stored (in
digital or analog form), reading out circuit 2 for reading out the
contents of the storage means 1 in analog form, at least one analog
generator 3 for the function cos .pi./T Kp.THETA. and/or sin .pi./T
Kp.THETA., at least one analog multiplier 4, one of the inputs 4a
of which receives the output of the reading out circuit 2, while
the other input 4b receives the output of the function generator or
generators 3, an integrator 5 connected to the output of the
multiplier or multipliers 4, said integrator, which advantageously
consists of an operational amplifier 6 with a capacitor 7 in
parallel, being provided with a normally open switch 8, for
rezeroising, and a clock 9 which will be further considered
hereinafter with reference to FIG. 13, for synchronising the read
out of the contents of the store unit 1 by the circuit 2 and the
operation of the generator or generators 3; the required output
Z(f) is available at 10.
In the circuit diagram shown in FIG. 12, p varies from -(n - 1) to
+(n - 1) and f varies from 1/2(n - 1).THETA. to 1/2.THETA. by
increments of f.sub.o = 1/(n - 1).THETA./2 with n = N + 1/2. The
Fourier transform of z(t) will then be obtained point by point as
an output at 10.
The multiplier 4 is advantageously of the type described in French
Pat. No. 1,493,450 filed on Apr. 25, 1966 by the Commissariat a
l'Energie Atomique (Inventors: Daniel Berthier and Jacques
Max).
It is a multiplier in which a pulse is modulated by the
multiplicand as to width and by the multiplier as to amplitude (or
vice versa), the resulting pulse area being proportional to the
product.
In the embodiment shown in FIG. 13, which also shows some other
parts of the complete device: generator 3, clock 9, integrator 5
(with operational amplifier 6, capacitor 7 and rezeroising switch
in the form of a field-effect transistor 8a, the gate 11 which
receives the rezeroising voltage r through a diode 12). The voltage
r for return to zero is produced each time that N products are
carried out in multiplier 4. This voltage r can be then obtained by
utilizing a divider by N, as for example, element 128 in FIG. 20.
The multiplier 4 comprises the following:
A sawtooth generator 13 (e.g. of the bootstrap circuit type)
triggered by the clock 9, the clock pulses being fed to the input
4c of the multiplier 4 (i.e., the generator 13).
A comparator 14 (comprising a differential amplifier and an
inverter) which compares the amplitude of the sawtooth pulses of
the generator 13 with the cosine and/or sine function of 2 .pi.
Kf.sub.o p.THETA. or .pi./T Kp.THETA. from the generator 3, and
delivering two opposite signals Q and Q, Q being the resultant of
the comparison in the amplifier stage and Q being the output of the
inverter stage (the input of which is connected to the output of
the amplifier), these signals Q and Q, for example, having the
curve shown in FIG. 3 (signals X(t) and X(t) of the aforesaid
patent.
A pair of field-effect transistors 15, 16 which alternately conduct
under the control of Q and Q, the transistor 16 being fed directly
by the output of the read-out means 2, while the transistor 15 is
fed by said means 2 via an inverter 17 (-1 .times. multiplier), the
transistor 15 thus delivering -z(p.THETA.) to the integrator 5
under the control of Q, while transistor 16 delivers z(p.THETA.) to
the integrator 5 under the control of Q.
The sum of the N products corresponding to a value of K is finally
obtained by the integrator 5 which is rezeroised by a voltage r
after each calculation of a point of Z(f).
Thus N products have to be evaluated and summated for one value of
Z(f). To obtain n points of Z(f), n .sup.. N products must be
evaluated (in the case of a correlation function defined at n
points, then n.sup.2 products must be evaluated).
We shall now discuss the cosine or sine generator which has to
generate the signal ##SPC59## ##SPC60##
for integer K varying from 1 to n - 1 and integer p varying
from
- T/.THETA. - N/2 to + T/.THETA. - N/2
The principle of this sampled function generator has been described
above with reference to FIG. 7. An embodiment of such a generator 3
is illustrated in FIGS. 14 and 15. The operation may be divided up
into two parts: firstly, storage of the voltages corresponding to n
= N + 1/2 values of the cosine for values of the variable regularly
spaced between 0 and .pi.; secondly, the read-out programme of
these various cosine values.
a. Storage of the values of the cosine (or sine) function.
The successive values of the cosine function are represented by
voltages V.sub.o, V.sub.1, . . . V.sub.n.sup.-1 (which are in fact
voltages corresponding to n - 1 values of the cosine distributed
equally between 0.degree. and 180.degree.) and are read out in
sequence by field-effect transistors (e.g. T.sub.0, T.sub.1, . . .
T.sub.n.sub.-1 ) (FIG. 14). The system then behaves as an
electronic switch having n inputs and a common output S.
If the transistor T.sub.2 conducts, S gives the voltage V.sub.2,
while similarly if T.sub.i is conductive, the voltage V.sub.i is
obtained at S, and so on. These field-effect transistors are
controlled by diode matrices which decode the "units," "tens,"
"hundreds" states of the read-out address.
b. Read-out programme in the case where it is desired to obtain the
Fourier transform of a correlation function delivered by a
correlator.
We have seen that in such cases there were n programmed points of
the cosine function for n points of the correlation function where
.tau. is greater than 0 or is less than 0.
The program is obtained (FIG. 15) by means of a binary divider 18
which divides by n, a decimal binary counter 19, "AND" circuits 20
(which receives the out-puts: units U.sub.K, tens D.sub.K and
hundreds C.sub.K, from the counter 19 and the parallel transfer
order from the clock 9 via the line 21) and a parallel binary
accumulator 22.
The three outputs U.sub.a, D.sub.a, C.sub.a of the accumulator 22
lead to a decoding matrix 27 which allows 0, 1, 2 . . . 199 to be
obtained from U.sub.a, D.sub.a, C.sub.a and the field-effect
transistors T.sub.o, T.sub.1 . . . etc. in FIG. 14 to be
controlled.
The logic states "U.sub.K," "D.sub.K," "C.sub.K " represent the
value of K for the units, tens and hundreds.
K thus increases all the n synchronisation pulses by one unit, so
that K remains constant during n pulses. The "AND" circuits 20
enable K to be added to the contents of the binary accumulator on
each synchronisation pulse. Thus after each pulse the address
(U.sub.a, D.sub.a, C.sub.a) of the accumulator is increased by
K.
Let us assume an initial state:
K = 1 .fwdarw. U.sub.K = 1 D.sub.K = 0 C.sub.K = 0 and U.sub.a = 0
D.sub.a = 0 C.sub.a = 0 V.sub.0 will be obtained at S;
after one pulse:
K = 1 U.sub.K = 1 D.sub.K = 0 C.sub.K = 0 U.sub.a = 1 D.sub.a = 0
C.sub.a = 0
V.sub.1 will be obtained at S;
after two pulses:
K = 1 U.sub.K = 1 D.sub.K = 0 C.sub.K = 0 U.sub.a = 2 D.sub.a = 0
C.sub.a = 0
V.sub.2 will be obtained at S;
and so on until the (n - 1).sup.th pulse; at the n.sup.th pulse we
shall have:
K = 2 U.sub.K = 2 D.sub.K = 0 C.sub.K = 0 U.sub.a = 0 D.sub.a 32 0
C.sub.a = 0
V.sub.0 will again be obtained at S;
at the (n + 1).sup. th pulse we shall have:
K = 2 U.sub.K = 2 D.sub.K = 0 C.sub.K = 0 U.sub.a = 2 D.sub.a = 0
C.sub.a = 0
V.sub.2 is obtained at S.
In other words:
for the pulses from 1 to n - 1, k = 1 and the following will be
obtained successively at S:
V.sub.0, v.sub.1, v.sub.2, v.sub.3 . . . v.sub.n.sub.-2,
V.sub.n.sub.-1 ;
for the pulses from n to 2n - 1, K = 2 and the following will be
obtained successively at S;
V.sub.0, v.sub.2, v.sub.4 . . . v.sub.n.sub.-3, V.sub.n.sub.-1,
V.sub.n.sub.-3 . . . V.sub.2, V.sub.0 ;
for the pulses from 2n to 3n-1, K = 3 and the following will be
obtained at S:
V.sub.0, v.sub.3, v.sub.6, v.sub.9 . . . v.sub.n.sub.-4,
V.sub.n.sub.-1, V.sub.n.sub.-4 . . . V.sub.0. . . ; and so on,
and finally, for the pulses between (n - 2)n and (n - 1) n - 1, we
have K = N-1 and the following will be obtained successively at
S:
V.sub.0, v.sub.n.sub.-1, V.sub.0, V.sub.n.sub.-1, . . .
V.sub.n.sub.-1, V.sub.0.
Of course the device may have ancillary devices.
More particularly, when the signal z(t) is not zero in the case of
the limits -T and T, the Fourier transform of z(t) has oscillations
as indicated hereinbefore.
To reduce these spurious oscillations, the samples of z(t) may be
weighted by a time function of the form sin .THETA.p/.THETA.p. This
result is obtained by using a variable-gain amplifier. The gain of
this amplifier is controlled by the z(.THETA.p) read-out
synchronisation pulses. The variable gain is obtained by looping an
operational amplifier by various resistors whose value in the case
of the sample of the order p is proportional to sin
.THETA.p/.THETA.p, with integer p ranging between 0 and
T/.THETA..
The performances of the apparatus are as follows:
-- time for one multiplication: 1 microsecond;
-- time for calculating one point of the Fourier transform, the
function z(t) being known by 200 points; 200 microseconds.
-- time for calculating the Fourier transform for 200 points for
the spectrum: 200 .times. 200 microseconds = 40 ms.
-- thus to calculate the real part and the imaginary part of the
Fourier transform the time required is 80 ms.
If the function z(t) is known by N points between -T and +T, the
half-period of the cosine being programmed between 0 and T at n
points (n = N - 1/2), it is easy to generate a full period of the
cosine to cover the interval -T, +T by a modification of the
address programme.
It will be apparent that the circuit shown in FIG. 14 has two
disadvantages:
a. n voltages corresponding to n samples of the cosine uniformly
spaced between 0 and .pi. must be displayed; this means that n
potentiometers are required and n = 100 or 200.
b. n field-effect transistors T are required to read out these n
samples in sequence.
In a variant, instead of storing n samples V.sub.0, V.sub.1,
V.sub.2, and so on, and reading out these n samples in sequence, it
is possible to use an amplifier whose gain varies in accordance
with the addresses 0, 1, . . .
The variable gain may be obtained with the circuit diagram shown in
FIG. 16, in which reference 23 denotes an amplifier, 24 a resistor
equal to R/x and 25 a resistor equal to R/100; the gain is
therefore .vertline.G.vertline. = x/100.
The input resistance R/x must therefore be varied to vary the gain
of the looped amplifier in accordance with the addresses 0, 1, 2
and so on. R/x is obtained by the parallel connection of a network
of resistors 24 having the values R, R/2, R/4, R/2, R/10, R/20,
R/40, R/20, R/100. With a resistance network of this type, and by
means of combinations, it is possible to obtain integer values of x
between 0 and 199.
The dynamic over x is limited only by the accuracy of the
resistors. The resistor R/100 connected as a negative feedback
resistor to the amplifier acts as a gain limiter.
FIG. 17 shows an example for x = 76.
FIG. 18 shows the system illustrated in FIGS. 16 and 17, i.e., a
system adapted to be substituted for that shown in FIG. 14 in the
complete apparatus. In this Figure, the resistors 24 are switched
by field-effect transistors 26 which are either cut off (state 0)
or conductive (state 1).
Thus "76" corresponds to the logic word 01110110 illustrated in
FIGS. 17 and 18. The same applies to the other values as shown in
the following Table:
R/20 R/40 R/20 R/10 R/2 R/4 R/2 R x 0 1 1 1 0 1 1 0 76 0 1 1 1 0 1
1 1 77 0 1 1 1 1 0 0 0 78
For each address i = 0, 1, 2 . . . etc. there is a correspondy
logic word, the analog equivalent of which would be V.sub.o,
V.sub.1, V.sub.2 etc. is made to correspond to each address i = 0,
1, 2, etc. In this application, these voltages correspond to the
samples of a cosine between 0 and .pi..
Any other law could be selected to produce a generator of any
function, with a voltage V.sub.i corresponding to each address
i.
In the case of the Fourier transform generator, this solution is
very advantageous, because using eight resistors it is possible to
generate as many samples V.sub.1 as desired with an accuracy of 1
percent. The accuracy would be 0.1 percent using 12 resistors.
In the case of a 200-point Fourier transform generator, the
solution of FIG. 14 would require 200 potentiometers and 200
field-effect transistors, while the solution shown in FIG. 14 would
require only 12 resistors and 12 field-effect transistors.
The use of any of the above embodiment will thus provide a system
for generating the Fourier transform of a function, and the
operation of such a system is sufficiently clear from the foregoing
for any further remarks to be superfluous, and such a system has
numerous advantages over existing systems of the type in question,
inter alia, as follows:
Firstly, it is simpler, more flexible and provides better
performance than the prior-art systems, particularly when coupled
to a real-time automatic correlator, to form a spectral density
analyser.
It has an extensive band width.
It can operate in real time.
It is highly reliable.
The speed of calculation is very high.
The modified embodiments, illustrated in FIGS. 19-23 operate
digitally, but the principle of operation remains similar to that
described above. However, some general considerations may be useful
to produce a digital sample R.sub.z (K/2T) the following criteria
must be met:
a. N samples of the function z(t) must be made available in digital
form (N being a predetermined integer);
b. the corresponding N samples of the cosine function must be made
available;
c. the N elementary products of sample pairs must be formed,
and
d. the N partial products must be added (integration
operation).
Since the device of the invention will often be used to determine
the Fourier transform of a function supplied as a round number of
samples (50, 100, 150, 200 . . . ) by a correlator, the fundamental
frequency chosen is likely to be not 1/2T = 1/N.THETA. but the
next-lowest value 1/(2T + .THETA.).
Theoretically, the implication of criterion (b) is that N cosine
function samples different from the samples used for any other
sample of the transform are available for calculating each sample
of the transform. Actually, formula (1) shows that if 1/(2T +
.THETA.) is taken as the fundamental value, there is a return after
N points to the same cosine function value. In other words, all
that is necessary is for N samples of the cosine function to be
available in an addressable store (the stored elements are
identified by an address through which they can be read) for
recovery at complete 2 .pi. intervals; immediately consecutive
addresses are called to calculate the fundamental and energy Kth
addresses are called to calculate the Kth harmonic for any value
K.
The device whose block diagram is shown in FIG. 19, comprises a
generator 110 whose output A delivers the function z(t) in the form
of samples z(p.THETA.), a generator 112 whose output B delivers the
cosine function in the form of samples cos 2 .pi.(1/2T) Kp.THETA.,
a multiplier 114 receiving the pairs of samples on its two imputs,
an integrator 116, and a clock 18 which supplies the generators
110, 112 with synchronizing pips. The generator 110 corresponds to
the function or criterion (a), generator 112 to function (b),
multiplier 114 to function (c) and integrator 116 to function (d).
These various components will now be described consecutively.
The sample generator 110 shown by way of example in FIG. 21 is a
simple analog-to-digital converter 150 which receives the function
z (t) at its input and which provides digitally encoded samples on
its output at times determined by the clock 118. The samples are
stored in a store 152, which provides long-term storage for
low-frequency functions. It will be assumed as an example that
generator 110 outputs 200 samples throughout the computation time
period, each sample being represented by a 9-bit number consisting
of 8 significant bits and 1 extra bit for the sign.
The cosine function sample generator 112, shown in FIG. 20, can be
considered as comprising store 120 for storing the samples and an
address generator FIG. 20. The N evenly distributed samples (to the
number of 200 in the case under consideration) are preferably
encoded with the same number of bits as is used for the significant
bits for the samples of z(t). For instance, if the last-mentioned
samples are in a nine-bit code (eight significant bits and one sign
bit), the end values can be as follows:
cos 0 = 2.sup.8 - 1 = 255
cos .pi./2 = 0
cos .pi. = - 255
These samples are stored in a permanent digital store 120 such as a
construction-programmed diode matrix, a L.S.I. dead store or read
only store etc. When the read-out address of the store advances
from 1 to 1 (consecutively) the store consecutively outputs all the
cosine samples corresponding to one-quarter of a period with the
plus sign and one-quarter of a period with the minus sign, as Table
I indicates.
TABLE I
ADDRESS OUTPUT DECIMAL BINARY BINARY DECIMAL SIGN 0 0 0 0 0 0 0 0 0
I I I I I I I I 255 I 0 0 0 0 0 0 0 I I I I I I I I I 255 2 0 0 0 0
0 0 I0 I I I I I I I I 255 3 0 0 0 0 0 0 I I I I I I I I I 0 254 4
0 0 0 0 0 I 0 0 I I I I I I I 0 254 5 0 0 0 0 0 I I I I I I I I I 0
0 253 . . . . . . . . . . . . . . . . + . . . . . . . . 98 0 I I 0
0 0 I 0 0 0 0 0 0 I 0 0 4 99 0 I I 0 0 0 I I 0 0 0 0 0 0 I 0 2 100
0 0 0 0 0 I 0 0 0 0 0 0 0 0 0 0 0 101 0 I I 0 0 I 0 I 0 0 0 0 0 0 I
0 2 102 0 I I 0 0 I I 0 0 0 0 0 0 I 0 0 4 . . . . . . . . . . . . .
. . . - . . . . . . . . 198 I I 0 0 0 I I 0 I I I I I I I I 255 199
I I 0 0 0 I I I I I I I I I I I 255
the adress generator associated with store 120 comprises a counter
122 displaying the harmonic K, an adder 124 and an accumulator 126.
The adress generator of FIG. 20 also has a divider-by -N 128 for
obtaining the various values of K corresponding to the various
harmonics. The address generator then operates as follows: whenever
a sync pulse from clock 118 (such pulse being an accumulation
instruction) is applied to accumulator 126, adder 124 totals the
previous contents of accumulator 126 and the contents K of counter
122 and re-enters the total in accumulator 126. The contents of
accumulator 126 therefore increase by an amount K at each clock
pulse. Upon application of this address to the input of store 120
the output thereof delivers the value of the sample called at its
exit during each interval between consecutive clock pulses. To
reduce the number of binary positions required of the store 120,
the sign for the output is determined by AND gate 130 so connected
to the appropriate outputs (weights 2.sup.2, 2.sup.5 and 2.sup.6)
of accumulator 126 as to detect the changeover to 100.
The divider 128 of the generator of FIG. 20 outputs a pulse to the
counter 122 each time it has received N sync pips since the
preceding pulse. This pulse provides as one-unit increase of the
number K displayed by the counter 122 and changes over from
calculating one harmonic to calculatting the next harmonic without
manual action by the operator.
The binary multiplier of FIG. 22 comprises a binary multiplier 114
receiving a binary digit A from the generator 110 and a binary
digit B from the generator 112. If the generators 110, 112 supply
words consisting of eight significant bits and one sign bit, the
digital multiplier must have 16 binary places plus a
sign-determining circuit 32. For the sake of rapidity a
series-parallel multiplier is normally used. The multiplier outputs
a partial product to the accumulator 116 for each input data pair.
The integrator of FIG. 22 is an accumulator which can have 20
binary positions in the case previously considered and which totals
consecutive partial products to deliver a sample, the significant
digits of each term being supplied by multiplier 114 and the sign
of the term being supplied by a circuit 32.
Since the result is usually required to be available in analog
form, the accumulator 116 of FIG. 22 is associated with a
digital-to-analog converter 134 whose number of input binary places
can be very much less than in the case of the accumulator 116. In
cases in which the generators 110, 112 output words having the same
number of bits, this common number can be used for the converter
134 provided of course that the same has a control input 136 for
selecting those outputs of the accumulator 116 which are decoded
and more particularly, for decoding the significant binary digits
of highest weight appearing at the accumulator output.
FIG. 23 shows a spectral analyser comprising in association a
correlator and a system outputting the Fourier transform. Such
elements of this analyser as correspond to the elements already
shown in FIGS. 19 - 22 have for the sake of simplicity the same
reference number plus an apostrophe and will not be described
again. The function z (p.THETA.) sample generator 110' of the
spectral analyser is an analog cross-correlator 139 whose two
inputs 138, 140 receive analog signals representing functions x(t)
and y(t), the output 142 of the correlator 139 indicating the
cross-correlation function of the latter functions. The correlator
139 is for instance a multichannel correlator of the kind described
and claimed in French Pat. specification n.sup.. 1 493 450 of the
Assignee of the present invention. An analog-to-digital converter
144 converts into binary form the consecutive specimens appearing
at output 142. For example, 100 samples may be delivered in the
form of eight-bit words, and stored in a digital store 146. The
pips from the clock 118' therefore control not only the operation
of the Fourier transformer but also the operation of the assembly
formed by the correlator 139 and store 146.
The store 146 can perform various functions. More particularly, it
makes it possible to use the system supplying the Fourier transform
not only in real time but in delayed time relatively to the
correlator 139. It can also be used as an integrator and accumulate
the cross-correlation function over prolonged periods, for
instance, of several hours. The words of the store 146 therefore
usually occupy binary places than the multiplier 114'.
This feature is a very useful way of circumventing one of the
limitations of analog integrating correlators, namely the limited
duration of the integration time constant (a few hundreds of
seconds).
Of course, the correlator 136, instead of providing the
cross-correlation function of two functions x(t) and y(t) can of
course also be used to provide the auto-correlation function of a
physical value, in which event the Fourier transform generator
provides the spectrum of such value.
Accuracy is better than in analog operation, for the only
limitation on the accuracy of encoding the cosine function samples
is the capacity of the dead store or read only store, and
multiplication can be performed to any required accuracy by the
data introduced into the multiplier. Accuracy e.g., 1 percent o
with eight-bit words. Numerical integration of consecutive products
provides considerable dynamic range on the value of each point of
the Fourier transform; for instance 20 binary places correspond to
an amplitude dynamic of something like 10.sup.7. Also, a dead store
or read only store comprising 200 specimens can be passed through
from generation of the fundamental of a Fourier transform by
reading only one address out of a number ; consequently for
instance, a dead store having 200 binary places can be associated
with a correlator providing only 50 or 100 samples.
* * * * *