Title:
SYSTEM FOR GENERATING THE FOURIER TRANSFORM OF A FUNCTION
United States Patent 3745317


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 Θ, i.e., in the form Z (p Θ) in which p is an integer such that T/Θ≤ p ≤T/Θ. The product z (pΘ)x cos π/T KpΘ or the product z (pΘ) × sin π/T KpΘ generated in the system is computed for values of the integer K increasing from 1 inclusive to T/Θ 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)
Application Number:
05/145689
Publication Date:
07/10/1973
Filing Date:
05/21/1971
Assignee:
COMMISSARIAT A L ENERGIE ATOMIQUE,FR
Primary Class:
Other Classes:
324/76.21, 708/821
International Classes:
G06F17/14; H05K1/02; H05K3/46; (IPC1-7): G06F7/38; G06G7/19
Field of Search:
235/156,152,181,183,151
View Patent Images:



Primary Examiner:
Gruber, Felix D.
Parent Case Data:


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 Θ from t = -T to t = T in the form z(pΘ) where p is an integer such that - T/Θ < p < T/Θ comprising a store unit (1) for storing N samples equally spaced by the interval Θ, of the function cos πt/T from t = -T to t = T in the form cos π pΘ/T; a reader (2) connected to said store for reading out every Kth samples of the functions cos π t/T, K being an integer increasing from 1 inclusive to T/Θ inclusive, said reader and said store unit forming a further generator (3) of samples cos (π KpΘ/T); a multiplier (4) one of the inputs (4a) of which is connected to said generator of samples z(pΘ) while the other of the inputs (4b) is connected to said generator (3) of samples cos (π KpΘ/T); said multiplier selectively forming the product of z(pΘ) and cos ( π KpΘ/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Θ) 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 V0, V1 . . . Vn-1 corresponding to (n -1) cosine values evenly distributed between 0° and 180° 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 Θ from t = -T to t = T in the form Z(pΘ) where p is an integer such that -T/Θ < p < +/Θ comprising a digital store unit (120) for storing N digital samples equally spaced by the interval Θ, of the function cos πt/T from t = -T to t = T in the form cos πtΘ/T; a reader connected to said digital store (120) for reading every Kth sample of the function cos πt/T, K increasing from 1 inclusive to TΘ inclusive, said reader and said digital store unit (120) forming a further generator (112) of samples cos (πKtΘ/T); a digital multiplier (114) one of the inputs (A) of which is connected to said generator (110) of samples Z(pΘ), while the other of the inputs (B) is connected to said generator (112) of samples cos (πKpΘ/T) said digital multiplier (112) selectively forming the product of Z(tΘ) and cos (πKpΘ/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Θ), 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Θ) in which p is an integer such that T/Θ≤p≤T/Θ, comprising multiplier for selectively forming the Θ in of z(pΘ) and cos π/T KpΘ for values of the integer K increasing from 1 inclusive to T/Θ inclusive and the product of z(pΘ) and sin π/T KpΘ for values of the integer K increasing from 1 inclusive to T/Θ 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 π/TKpΘ, the function cos2/Tπt is sampled for N points of the interval 2T which are spaced by the interval Θ 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 T1, the operation must be repeated for each point of the spectrum, so that to obtain N1 points of the spectrum the measuring time must be greater than the product N1 T1 ; 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" T1 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 T1 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

Az (f) =√[Rz (f) ]2 + [Iz (f) ]2 (6)

and a phase spectrum

φz (f) = Arc tg (Iz (f)/Rz (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 Fo is the frequency so that for │f│ > Fo, Z(f) is zero (or less than a predetermined value ε , 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 -Fo, +Fo. 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(fo), Z(2fo), . . . Z(Kfo), . . . Z(pfo) with integer p < Fo /fo.

We may therefore write the following ##SPC6##

where Z*(f) denotes the sampled function Z(f), fo being the interval between two successive points of the spectrum Z*(f) and δ (f - Kfo) 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 δ (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 π Kfo 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 Fo /fo.

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 Θ, -(m-1) Θ, . . . - K (Θ), . . . - 2 Θ, - Θ, o, Θ, 2 Θ, . . . KΘ . . . (m-1)Θ, . . . mΘ

m being an integer between 0 and T/Θ (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Θ), . . . z(-KΘ), . . . z(-Θ), z(O), z(Θ), . . . z(KΘ), . . . z(mΘ).

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 Θ to be such that Θ < 1/2 Fo.

We may now therefore assume that instead of z(t) we have ##SPC13##

The meaning of p = - T/Θ or p = T/Θ is obviously that p is an integer between - λ and + λ, λ being the integer immediately below T/Θ.

It is proved (as explained below) that if the function z(t) is known by z*(t), we shall have an exact value of Rz (Kfo) 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 π 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 π K/2T t, i.e., by multiplying each value of z(pΘ) by the value of the cosine function at the time pΘ, 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 2Fe will be greater than 2Fo, and we shall have

Θ = 1/2Fe < 1/2Fo ;

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

Cxx (τ)⇋S xx (f) ##SPC18##

where ##SPC19##

An interspectrum Sxy (f) is also defined, which is the Fourier transform of the inter-correlation function Cxy (τ) between two signals x and y where ##SPC20##

This interspectrum Sxy (f) is very important in many problems, particularly in the case where the function Cxy (τ) is the pulse response of a system; in that case Sxy (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 -τM and +τM, two cases must be considered. First case: C(τ) is zero when │τ│> τ M ; in this case, it is only necessary to apply the basic definition and the Fourier transform of C(τ) gives S(f). Second case: C(τ) differs from zero when │τ│> τ M ; this means that the correlation function C(τ) is obtained from a correlation function C1 (τ) by truncation, C1 (τ) being zero in the case of │τ│> τ M with 1M > τ M.

C(τ) is therefore C1 (τ) multiplied by a "window" function W(τ)M, i.e.,

C(τ) = C1 (τ) . W (τM) (21)

where ##SPC22##

If we calculate the Fourier transform of C(τ), there corresponds to the product C(τ). W(τm) in the time range, the convolution product

S (f) = (S1 (f) * 2τM (sin 2 π f τ M /2 π f τ M) (22)

c1 (τ) . w (τm)⇋s1 (f) * 2 τM (sin 2 π f τM /2 π f τM) (23)

in the frequency range; S(f) is therefore the result of convolution of the true spectrum S1 (f) by the function

2 τM (sin 2 π f τM /2 π fτ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(τ) by 1/2 (1 + cos (πτ/τM));

b. R.W. Hamming's method (the "hamming" method), which comprises multiplying C(τ) by 0.54 + 0.46 cos (πτ/τM);

c. the Fauque-Berthier method, which comprises multiplying C(τ) by: ##SPC23## .

The first two methods are conventional but the third is a recent method and will therefore be briefly detailed below.

Let W(τM) be the time window (FIG. 1) which multiplies the function (τ) and let Qo (f) be the corresponding spectral window (FIG. 2) which convolutes the spectrum when no weighting is applied. This spectral window Qo (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 Qo (f).

The attempt must therefore be made in the spectral range to reduce the side lobes of Qo (f) without excessively reducing the height of the central lobe. For this purpose, Qo (f) is convoluted by a rectangular window QA(f), the width of which is equal to the period of the side lobes of Qo (f), i.e., 1/τM (FIG. 3); corresponding to this window QA (f) we have in the time range (FIG. 4) a window ##SPC24## ; since it is required to convolute

Qo (f) by QA (f) in the frequency range, it is only necessary to obtain the product of W(τM) and qA (τ) in the time range, because Qo (f) * QA (f)⇋W (τM) . qA (τ) (24)

for this Fauque-Berthier weighting, therefore, we shall multiply C(τ) by ##SPC25##

FIG. 5 shows the representative curves PH of the case of a weighting of the conventional type (hanning or hamming) PFB of the case of weighting of the recent type (Fauque-Berthier) and Po of the case without weighting as a function of f. 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 Θ = 1/Fe.

The function z(t) then becomes the sampled function z*(t) represented by a series of values

. . Z (-n/F e) , . . . z (-1/Fe), z (O), z (1/Fe), . . . z (n/Fe) , . . . 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 - Kfe), . . . Z(f - Fe), Z(f), Z(f + Fe), . . . Z(f + Kfe). . .

We have a sum of functions derived from one another by Fe translations along the frequency axis.

If z(t) has a limited frequency spectrum, i.e., if Z(f) is substantially zero for │f│ > Fo, these translations will not affect the form of the elements Z(f-Kfe) provided that Fe is greater than or equal to 2Fo ; 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 Z1 (f) of z*(t) enables the spectrum Z(f) of z(t) to be found; for this purpose it is only necessary to multiply Z1 (f) by a window function Q(Fe /2) so that

Q (Fe/2) = O for f < - Fe /2 and f > Fe /2

Q (Fe/2) = 1 for - Fe /2 < f < Fe /2.

Then Z(f) = Z1 (f) . Q(f).

This window Q(f) will be produced in practice by considering Z1 (f) only between Fe /2 and Fe /2. We therefore have Z(f) = Z1 (f) . Q(f).

Taking the Fourier transforms of the two numbers, we have

z(t) = z* (t) * Fe (sin π Fe t/πFe 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 -Fo, Fo, z(t) can be found from samples taken at the frequency Fe > 2Fo.

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 Z1 (f) between only -Fe /2 and Fe /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 │t │ > T, n will vary from -TFe = -p to +TFe = +p ##SPC45##

If we consider only the values of f contained between -Fe /2 and +Fe /2 (i.e., between O and Fe /2 in fact), we have ##SPC46##

whence ##SPC47##

If f varies by discrete values Kfo, then ##SPC48## ##SPC49##

or, since Θ = 1/Fe, ##SPC50##

which can be divided up into ##SPC51##

and ##SPC52##

If fo = 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, Θ being the sampling interval.

The function z(t) is therefore represented by a series of values

. . z (-KΘ), . . . z (-2Θ), z (-Θ), z (O), z (Θ), z (2Θ), . . . z (KΘ), equally spaced over the t axis, the interval being Θ.

These values z(KΘ) 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 Θ, it will be defined by N points, N being an integer immediately below 2T/Θ + 1. Since the interval 2T is generally large with respect to the interval Θ, we may write N = 2T/Θ + 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 fo = 1/2T; as a result, the lowest frequency of the cosine function will be 1/2T = fo. Thus at the end of N points of cos 2 π 1/2T pΘ, we shall have

cos (2 π 1/2T , b 2 T) = cos 2π

We shall therefore produce a period of the function cos 2π/2Tt sampled at N points having the interval Θ (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Θ) and cos 2 π (1/2T)pΘ and the sum of these products, we have ##SPC54## we now make K = 2 for the cosine function, then for z(pΘ) we shall have cos 2 π 1/2T 2pΘ, and if we take the sum to p of the products z(pΘ) cos 2 π 1/2T 2pΘ, 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Θ) the associated value of the cosine function cos 2 π (1/2T) 3pΘ .

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/Θ, and hence n - 1/2T = 1/2Θ = Fe /2 (Fe being the sampling frequency), and from this we have the value ##SPC58##

There is no point in calculating Rz (K/2T) for K > n - 1 since higher values of K would correspond to spectrum frequencies above Fe /2 ; the latter is already greater than or equal to Fo.

This will also give a control, since Rz (n - 1/2 T) will have to be zero.

We shall now examine the specific case in which z(τ) is a correlation function known between - τM and +τM. We shall distinguish between the following two possible hypotheses:

a. z(τ) is an auto-correlation function; it is known that the function z(τ) is even: z(τ) = z(-τ); a knowledge of z(τ) in the case of τ > 0 is thus sufficient and if we know n points of z(t) for τ > 0, that is equivalent to knowing N = 2n - 1 points of z(τ) for τ ⇋ 0; on this hypothesis, a half-period of the cosine function is programmed over n points.

b. z(τ) is an cross-correlation function; z(τ) and z(-τ) are calculated separately:

(for τ > 0, we have n points;

)for τ > 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 τ > 0 or at τ < 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 - τM and + τM, it is first calculated at n points from 0 to τM, and then at n points from 0 to - τ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 τ = 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 τ > 0 or for τ < 0.

In the case where the function z(t) is not even, it is also necessary to calculate

Iz [(K/2T)] = Θ Σ z (pΘ) sin (2π /2 T) KpΘ i.e., the sine function (2π/2 T) KpΘ 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Θ) 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 π/T KpΘ and/or sin π/T KpΘ, 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)Θ to 1/2Θ by increments of fo = 1/(n - 1)Θ/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 π Kfo pΘ or π/T KpΘ 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 × multiplier), the transistor 15 thus delivering -z(pΘ) to the integrator 5 under the control of Q, while transistor 16 delivers z(pΘ) 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 . N products must be evaluated (in the case of a correlation function defined at n points, then n2 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/Θ - N/2 to + T/Θ - 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 π; 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 Vo, V1, . . . Vn-1 (which are in fact voltages corresponding to n - 1 values of the cosine distributed equally between 0° and 180°) and are read out in sequence by field-effect transistors (e.g. T0, T1, . . . Tn-1 ) (FIG. 14). The system then behaves as an electronic switch having n inputs and a common output S.

If the transistor T2 conducts, S gives the voltage V2, while similarly if Ti is conductive, the voltage Vi 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 τ 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 UK, tens DK and hundreds CK, 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 Ua, Da, Ca of the accumulator 22 lead to a decoding matrix 27 which allows 0, 1, 2 . . . 199 to be obtained from Ua, Da, Ca and the field-effect transistors To, T1 . . . etc. in FIG. 14 to be controlled.

The logic states "UK," "DK," "CK " 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 (Ua, Da, Ca) of the accumulator is increased by K.

Let us assume an initial state:

K = 1 ➝ UK = 1 DK = 0 CK = 0 and Ua = 0 Da = 0 Ca = 0 V0 will be obtained at S;

after one pulse:

K = 1 UK = 1 DK = 0 CK = 0 Ua = 1 Da = 0 Ca = 0

V1 will be obtained at S;

after two pulses:

K = 1 UK = 1 DK = 0 CK = 0 Ua = 2 Da = 0 Ca = 0

V2 will be obtained at S;

and so on until the (n - 1)th pulse; at the nth pulse we shall have:

K = 2 UK = 2 DK = 0 CK = 0 Ua = 0 Da 32 0 Ca = 0

V0 will again be obtained at S;

at the (n + 1) th pulse we shall have:

K = 2 UK = 2 DK = 0 CK = 0 Ua = 2 Da = 0 Ca = 0

V2 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:

V0, v1, v2, v3 . . . vn-2, Vn-1 ;

for the pulses from n to 2n - 1, K = 2 and the following will be obtained successively at S;

V0, v2, v4 . . . vn-3, Vn-1, Vn-3 . . . V2, V0 ;

for the pulses from 2n to 3n-1, K = 3 and the following will be obtained at S:

V0, v3, v6, v9 . . . vn-4, Vn-1, Vn-4 . . . V0. . . ; 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:

V0, vn-1, V0, Vn-1, . . . Vn-1, V0.

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 Θp/Θp. This result is obtained by using a variable-gain amplifier. The gain of this amplifier is controlled by the z(Θ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 Θp/Θp, with integer p ranging between 0 and T/Θ.

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 × 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 π 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 V0, V1, V2, 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 │G│ = 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 Vo, V1, V2 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 π.

Any other law could be selected to produce a generator of any function, with a voltage Vi 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 V1 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 Rz (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Θ but the next-lowest value 1/(2T + Θ).

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 + Θ) 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 π 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Θ), a generator 112 whose output B delivers the cosine function in the form of samples cos 2 π(1/2T) KpΘ, 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 = 28 - 1 = 255

cos π/2 = 0

cos π = - 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 22, 25 and 26) 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Θ) 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. 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 107. 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.