The present invention relates to a device for computing an analog Fourier transform. The invention is especially applicable to the fields of radar, of countermeasures and of active decoys, and more particularly to signal processing with a view to improving the dynamic range of received signals, and especially with a view to responding to jamming in very short times while remaining compatible with the dynamic ranges of the signals to be processed.
When signal analysis time becomes critical with regard to reaction time, analog processing preserves an advantage with respect to digital processing. The performance of analog signal processing is however dependent on processing dynamic range, which is limited, in contrast to digital processing. In particular, the achievable dynamic range, including the gain associated with the filters of the Fourier transform, is a problem when analog Fourier transforms are used. Specifically, it is necessary to be able to process signals the level of which is below the noise threshold and to extract these signals in order to process them.
In the context of the invention, the prior art relates to DRFM (“Digital Radio Frequency Memories”) which allow responses to the threat to be created. The methods of dilution, seduction, confusion and deception require rapid analyses, which are carried out with restricted dynamic ranges. It is not uncommon to have memories of 1 bit depth, this being insufficient, especially in the presence of multiple sources of interference, whether intentional or not.
To deal with multiple threats, or to be able to respond in the presence of communication signals, higher dynamic range is required.
Current analog methods for processing Fourier transforms ensure that dynamic-range overflow does not occur.
Therefore, whenever the processing of the signal is able to generate processing gain, a normalization is performed. These methods have the advantage of controlling the dynamic range of the output signals insofar as there is no possibility of saturation if the input does not saturate. One drawback, however, is SCV (“Sub Clutter Visibility”). Specifically, by dividing the signals by the maximum possible gain, the noise factor is degraded and it is no longer possible to extract signals buried in the noise. Very many architectures implementing the known Doppler-butterfly method use this technique. The following documents illustrate this:
One aim of the invention is to overcome the drawbacks of the prior art, especially by making it possible to increase the performance of detection of signals buried in noise, while keeping the guarantee that saturation will not affect the processing of the signal. To this end, one subject of the invention is a device for computing an analog Fourier transform, converting an analog input signal with N components x(0), x(1) . . . x(N−1) into an output signal with N components X(0), X(1) . . . X(N−1) that are functions dependent on said components x(0), x(1) . . . x(N−1), said device comprising elementary analog addition and/or subtraction cells that are connected in a butterfly architecture to achieve said functions, each elementary cell being able to perform a conditional division by two of the result of the addition or subtraction operation performed, the condition being the saturation of an addition and/or subtraction operation.
In one possible embodiment, the butterfly architecture being of the parallel type, each elementary cell, which receives two signals (A, B) as input, comprises at least:
Said elementary cells being grouped in rows and in stages, said modules of a given stage are for example controlled by the same signal, said signal commanding the division by two as soon as at least one cell delivers a saturation datum.
In another possible embodiment, the butterfly architecture being of the series type, each elementary cell, which receives two signals A, B as input, comprises at least:
Said memory for example comprises a state machine that delivers said command data.
Other features and advantages of the invention will become apparent with reference to the appended drawings, which show:
The present invention advantageously makes it possible to improve the dynamic range of an electronic system for performing a discrete fast-Fourier transform (FFT). For the clarity of the description, examples of charge-transfer architectures based on known Cooley-Tukey algorithms based on Radix-2, and in particular on Radix-2 and Radix-4 algorithms, will be presented. The principle of the invention can be extended to other types of implementation of the FFT.
Before describing the invention, the definition of radiofrequency dynamic range and the specificities of the FFT will be recalled.
In radiofrequency analysis, the dynamic range D of a system may commonly be defined as the difference between the maximum input power Pin,max and the minimum input power Pin,min that the system can handle, i.e.
D=P
in,max
−P
in,min (1)
The minimum input power Pin,min is the input power from which the system delivers what may be called an exploitable output signal S, i.e. an output signal-to-noise ratio SNRout,min sufficient to exceed the background noise F:
S=F+SNRout,min (2)
The background noise is defined as the sum of the thermal noise Pth and of the noise factor NF of the system, namely:
S=P
th+NF+SNRout,min (3)
The maximum input power may be defined as the power from which distortions appear in the output of the system. In practice, intermodulation products of order three may be considered.
The discrete fast-Fourier transform (FFT) is a projection of the studied signal into a basis made up of sinusoidal functions. The transform may also be seen as a bank of filters in which each filter is matched to one of the vectors of the projection basis, i.e. to one of the sinusoids. It is therefore a set of matched filters for which a coherent gain may be computed. The presence of such a gain means that the FFT is able to discriminate between periodic signals and non-periodic signals (here, the noise). It performs a coherent integration of the useful signal.
It may be shown that a noisy signal processed by an FFT may potentially be extracted from the noise in which it is buried. An FFT, just like a bank of matched filters, is able to process periodic signals over a dynamic range which is not limited by the noise floor, this also being referred to as SCV (“Sub Clutter Visibility”), which was mentioned in the introduction.
An FFT is therefore able to contribute to this SCV. Specifically, the signal remains “visible” even below a certain noise threshold since the coherent FFT gain is added to coherent signals (frequencies correlated by the FFT) without amplifying the noise.
However, in an analog electronic architecture, the dynamic range of a signal is limited by the power source in particular. If the latter delivers a voltage VDD of 1 volt for example, no signal will be able to exceed 1 volt. This means, in the case of propagated additions, that saturation is possible, decreasing the veracity of the transmitted datum. A conventional solution consists in systematically dividing by 2 operands during addition. The property of SCV is then lost in the noise accumulated during the divisions.
In order to take maximum advantage of the property of SCV, the invention integrates a conditional division into the architecture of the FFT, as will be described below. The division is applied to all of the N samples if and only if saturation occurs. The saturation of an operator performing an addition or subtraction operation corresponds to the overflow of the dynamic range of this operator.
In this “butterfly” algorithm, the additions and subtractions generate increases in dynamic range. In the example of
Conventionally in analog FFTs, to avoid any risk of saturation, in each operation there is a division by two. This method is a very effective way of avoiding saturations, but it is detrimental to the noise factor, which is degraded by this division.
Reference is made to
For the implementation of the FFT, the elementary cells that carry out the addition and/or subtraction operations are connected to form a butterfly structure. In the parallel configuration of
According to the invention, a division by two is carried out if an overflow occurs; thus the ability to extract a signal buried in noise is preserved. In other words, to avoid the compromise between noise factor and saturation, the invention proposes to carry out a conditional division by two.
Each elementary operator (adder or subtractor) must then be able to deliver two possible outputs:
Written differently, if A and B are the analog input signals, each operator performs:
Depending on the saturation, A±B or (A±B)/2 is selected.
Saturation may result from addition as well as from subtraction. Each operator is provided internally with a comparator able to detect this saturation.
An operator thus comprises a third output Sat1, Sat2, Sat′1, Sat′2 indicating the saturation state, in the form of a binary datum.
Each stage is equipped with a gate 21, 22. For each stage, this gate applies the OR logic function to all of its inputs, the latter being the saturation states supplied by all of the elementary operators 11, 12 of the stage. The OR gate selects, via a multiplexer 23, 24, the appropriate output for all the elementary operators:
In the case of a series architecture, the saturations are processed in a different way. Specifically, the samples of the FFT being pipelined, it is possible, for example, to be confronted with the case of a saturation in a stage N (Nth stage) on the kth operation (k>1). Although it is possible to start the operations divided by two from this kth operation, this also means that the previous k−1 operations will have passed through stage N without being divided by two. It is then necessary to envisage a propagation of the division to the following stages N+n in order to keep the same scale ratio for all the processed samples. To this end, the invention makes provision for four outputs from the elementary operators.
The results of these four operations are delivered via the four outputs of the operator. A multiplexer 34 selects one or other of these outputs depending on a command Dec. The adder is also provided with an internal comparator for detecting saturations.
The first output delivers the present addition A+B; it is selected by the multiplexer if no saturation is detected.
The second output delivers the present addition divided by two, (A+B)/2. It is selected if the present addition saturates.
The third output delivers A/2k+B. It is selected when a saturation has occurred in the previous stage after unsaturated additions have been transmitted to this stage. It is therefore necessary to compensate for these unsaturated additions to keep the same scale with the future additions that will be divided by two.
The fourth output delivers (A/2k+B)/2. It is selected if the previous case occurs at the same time as a saturation also occurs in this stage, hence the division by 2.
In addition to these outputs, there is an output 33 that delivers a datum “Sat” that provides information on the saturation state of the operator. This output 33 is delivered to a memory 32 which, based on the saturation state of each operator for each stage, generates an output decision. This output decision is the command Dec described above that selects, via the multiplexer 34, one of the outputs described above. The memory 32 therefore comprises a program (state machine) that allows the appropriate command datum to be delivered depending on the saturation datum of the current operator and on the saturation datum of the operators of the previous stages. The command datum Dec may be coded on 2 bits with a view to selecting one of the four inputs of the multiplexer. The memory 32 forms a control module taking the form of a state machine.
This memory 32 will now be described in the context of an example of a 16-point FFT having the series architecture illustrated in
It will be noted that an FFT4 block may be broken down simply into two FFT2 blocks, as illustrated in
Radix-4 stages may therefore be broken down into Radix-2 stages. For 16 points, this means that there are 4 Radix-2 stages, and hence eight operators that may saturate.
The second operator 62 is a subtraction operator that operates on the same principle as the addition operator 61 described above.
A first multiplexer 61′ selects the output of the adder 61 or the output of a second multiplexer 62′ via a delay line 63 specific to the technology used and depending on the stage. The second multiplexer 62′ selects the output of the subtractor 62 or the input e of the elementary block. The adder 61 adds this input e and the output of the delay line. The subtractor 62 subtracts the input e from the output of the delay line.
The multiplexers select either of their inputs depending on a logic state delivered by a counter the timing diagram of which is shown in
Reference is now made again to
The description of the state machine described below may be read in the light of
“S” represents the storage state during which the delay line 63 of an elementary block FFT2 fills. In the case of N=16, its depth is, from stage to stage, 8, 4, 2 and 1.
Below, Satk represents a saturation that has appeared in stage k.
The selected states are (for the adder or subtractor outputs described previously):
Regarding the memory 32:
State Machine of Stage 1:
State A: If not Sat1.
State B: If Sat1, until t=16.
Note that in stage 1 the adder and subtractor do not need outputs 3 and 4.
State Machine of Stage 2:
State A: If not (Sat1+Sat2).
State B: If Sat2, until t=24.
State C: If (Sat1·(t>=12)), until t=24.
State D: If (Sat1·(t(8)<t(12−i)<t(12))). The table below shows the timing diagram of the outputs of stage 2 in state D:
State E: If ((Sat2·Sat1)·(t>=12)), until t=24.
State F: If ((Sat2·Sat1)·(t8)<t(12−i)<t(12))): see the same timing diagram as previously with output 4 and output 2 instead of output 3 and output 1.
State Machine of Stage 3:
State A: If not (Sat1+Sat2+Sat3).
State B: If Sat3, until t=28.
State C: If ((Sat1+Sat2)·(t>=14)), until t=28.
State D: If ((Sat1+Sat2)·(t(12)<t(14−i)<t(14))):
State E: If ((Sat3·(Sat1+Sat2))·(t>=12)), until t=28.
State F: If ((Sat3·(Sat1+Sat2))·(t(12)<t(14−i)<t(14))): see the same timing diagram as before with output 4 and output 2 instead output 3 and output 1.
State Machine of Stage 4:
State A: If not (Sat1+Sat2+Sat3+Sat4).
State B: If Sat4, until t=30.
State C: If ((Sat1+Sat2+Sat3)·(t>=15)), up to t=30.
State D: This stage being multiplexed by 1, this state does not exist.
State E: If ((Sat4·(Sat1+Sat2+Sat3))·(t>=15)), until t=30.
State F: This stage being multiplexed by 1, this state does not exist.
Note that the output is divided by two if Sat4 for (t>15)).
The state machine of the memory 32 may be programmed in other ways. The latter memory is for example a programmable memory P-ROM.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2019/080745 | 11/8/2019 | WO | 00 |