DEVICE AND METHOD FOR CONTINUOUS-TIME ENERGY CALCULATION OF AN ANALOG SIGNAL
20240429934 · 2024-12-26
Inventors
- Antoine FRAPPÉ (La Madeleine, FR)
- Benoît LARRAS (Lille, FR)
- Andreia CATHELIN (Laval-en-Belledonne, FR)
- Soufiane MOURRANE (Grenoble, FR)
Cpc classification
H03M1/125
ELECTRICITY
H03M1/121
ELECTRICITY
International classification
Abstract
Device (1), for continuous-time energy calculation of an analog signal, comprising: a continuous-time analog-to-digital converter which is configured to convert the analog signal into a request signal (REQ), and a direction signal (DIR); at least one filtering unit (11), configured to output a filtered output signal (F.sub.out), and comprising a delaying module (12) and a calculating module (15), connected to the delaying module (12) and configured calculate the filtered output signal (F.sub.out).
According to the invention, the device (1) further comprises: at least one pulse combiner (16), connected to the delaying module (12) and configured to output a combined request signal (CREQ); and at least one energy estimator (17), connected to the filtering unit (11) and to the pulse combiner (16), configured to compute a stored energy value (A.sub.out) associated with each pulse of the combined request signal (CREQ).
Claims
1. A device, for continuous-time energy calculation of an analog signal, comprising: a continuous-time analog-to-digital converter, configured to convert the analog signal into a request signal, the request signal comprising at least one pulse, each pulse being representative of the analog signal crossing one of a plurality of predetermined levels, and a direction signal, associated to the request signal, the direction signal being representative of a direction of the level crossing; at least one filtering unit, configured to perform a continuous-time finite impulse response filtering operation, the at least one filtering unit being configured to receive the request signal, the direction signal, and to output a filtered output signal, the at least one filtering unit comprising: a delaying module, configured to receive the request signal and the direction signal, and to output at least one delayed request signal, delayed from the request signal by a delay time, and at least one delayed direction signal, delayed from the direction signal by the delay time, the at least one delayed request signal being associated with one of the at least one delayed direction signal; and a calculating module, connected to the delaying module the calculating module being configured to receive the request signal, the direction signal, the at least one delayed request signal and the at least one delayed direction signal and to calculate the filtered output signal; wherein the device further comprises: at least one pulse combiner, connected to the delaying module, the at least one pulse combiner being configured to receive the request signal and the at least one delayed request signal and to output a combined request signal; and at least one energy estimator, connected to the filtering unit and to the pulse combiner, the at least one energy estimator being configured to receive the filtered output signal and the combined request signal and configured to compute a stored energy value associated with each pulse of the combined request signal.
2. The device according to claim 1, wherein the combined request signal is a result of a concatenation of the request signal and the at least one delayed request signal.
3. The device according to claim 1, wherein the delaying module comprises a plurality of successive delay blocks, each delay block applying said delay time, a delayed request signal and a delayed direction signal being obtained as an output of each delay block.
4. The device according to claim 3, wherein the at least one calculating module comprises a plurality of multiply-accumulate blocks, each multiply-accumulate block receiving one of the plurality of delayed request signals and the delayed direction signal associated to the delayed request signal, or the request signal and direction signal.
5. The device according to claim 4, wherein each multiply-accumulate block is associated with a coefficient.
6. The device according to claim 4 wherein the at least one pulse combiner is configured to receive all or only some of the plurality of delayed request and associated direction signals.
7. The device according to claim 1, wherein the at least one energy estimator comprises: a combinatory squarer configured to output a squared filtered output signal at each rising edge of the combined request signal; an accumulator, configured to add the squared filtered output signal to a stored energy value to obtain an updated energy value and to set a value of the stored energy value to the updated energy value at each rising edge of the combined request signal, and wherein the accumulator is further configured to receive a frame signal, comprising alternating high states and low states, and when the frame signal goes from a high state to a low state, to output the stored energy value and then set the stored energy value to zero.
8. The device according to claim 7, comprising a plurality of energy estimators, each energy estimator being configured to receive a different frame signal.
9. The device according to claim 1, wherein the delaying module and/or the at least one calculating module and/or the at least one pulse combiner and/or the at least one energy estimator is implemented on an integrated circuit comprising at least one fully depleted silicon on insulator transistor.
10. A method for continuous-time energy calculation of an analog signal, the method being implemented by the device according to claim 1, the method comprising: converting the analog signal into the request signal, the request signal comprising at least one pulse, each pulse being representative of the analog signal crossing one of the plurality of predetermined levels, and into the direction signal, associated to the request signal, the direction signal being representative of the direction of the level crossing; filtering the request signal and the direction signal by a finite impulse response filtering operation the filtering comprising: delaying the request signal and the associated direction signal to output the at least one delayed request signal, delayed from the request signal by the delay time, and the delayed direction signal associated to the at least one delayed request signal, delayed from the direction signal by the delay time; calculating from the request signal, the direction signal, the at least one delayed request signal and the at least one delayed direction signal the filtered output signal; combining the request signal and the at least one delayed request signal into the combined request signal acting as a non-uniform time base; and computing the stored energy value associated with each pulse of the combined request signal from the filtered output signal.
Description
BRIEF INTRODUCTION OF THE DRAWINGS
[0035] The features and advantages of the invention will appear upon reading the following description, given only as an example and not limited to the following description, and making reference to the enclosed drawings, wherein:
[0036]
[0037]
[0038]
[0039]
[0040] is a graph showing states of the device during its operation as a function of time; and
[0041]
DETAILED DESCRIPTION
[0042]
[0043] When the device 1 is in operation, the continuous-time analog-to-digital converter 10 converts an analog signal S.sub.in into a request signal REQ and a direction signal DIR, visible on
[0044] The CT-ADC 10 is characterized by a given resolution, which determines a number of a plurality of predetermined levels of the CT-ADC 10. The CT-ADC 10 samples the analog signal S.sub.in only if the analog signal S.sub.in crosses one of the plurality of predetermined levels. The predetermined levels are predetermined quantization amplitude levels of the analog signal S.sub.in and depend on the resolution of the CT-ADC 10. The samples generated by the CT-ADC 10 form a request signal REQ and a direction signal DIR, associated to the request signal REQ. The request signal REQ comprises at least one pulse and the direction signal DIR comprises at least one state. In general, the request signal REQ comprises a plurality of pulses and the direction signal DIR comprises a plurality of states, each state being associated to a corresponding pulse. Each pulse of the request signal REQ corresponds to the analog signal S.sub.in crossing one of the predetermined level and comprises a rising edge. Each state on the direction signal DIR is either high state, corresponding to an increase in the amplitude level of the analog signal S.sub.in, or low, corresponding to a decrease in the amplitude level of the analog signal S.sub.in. In other terms, the CT-ADC 10 encodes asynchronously the analog signal S.sub.in, the predetermined levels being the corresponding quantization levels.
[0045] As the CT-ADC 10 samples the analog signal S.sub.in only based on the amplitude of the analog signal S.sub.in and not based on a sampling frequency, the time between two successive rising edges in the request signal REQ is unknown and may vary.
[0046] The integrated circuit 5 is connected to the CT-ADC 10 and comprises at least one digital processing module 14, visible on
[0047] In
[0048] The delaying module 12 is connected to the CT-ADC 10. When the device 1 is in operation, the delaying module 12 is configured to receive the request and direction signals REQ and DIR output by the CT-ADC 10. The delaying module 12 comprises at least one delay block 21, and advantageously comprises a plurality of successive delay blocks 21, as shown in
[0049]
[0050] The delay blocks 21 are arranged sequentially, so that when the device 1 is in operation, an output signal of a first delay block 21 is received by a second delay block 21. Therefore, a signal passing through the delay blocks 21 is delayed by an integer multiple of the delay time, the integer multiple being equal to the number of delay blocks 21 the signal went through.
[0051] In the examples of
[0052] In a variant, not represented, the delay blocks may not have the same behaviour and delay the signal by a different delay time. In this case, a signal passing through the delay blocks is delayed by the sum of all the delay times of the delay blocks it passes through.
[0053] The calculating module 15 is connected to the delaying module 12. The calculating module 15 comprises at least one multiply-accumulate block 23 and a summation unit 24. Advantageously, the calculating module 15 comprises one more multiply-accumulate blocks 23 than there are delay blocks 21 in the delaying module 12. In the example shown on
[0054] A first multiply-accumulate block 23 is connected to the delaying module 12 and receives the request and direction signals REQ and DIR, and the other multiply-accumulate blocks 23 are each connected to one of the delay blocks 21 of the delaying module 12 and receive the delayed direction and request signals from each delay block 21.
[0055] A detailed schematic of a structure of the first multiply-accumulate block 23 is shown on
[0056] In the example of the figures, each multiply-accumulate block 23 has an identical structure. Each multiply-accumulate block 23 comprises a logic multiplexer 25, a summation unit 26 and a D flip-flop 27. The summation unit 26 is connected on one input to an output of the logic multiplexer 25 and on another input to an output port of the D flip-flop 27. The summation unit 26 is connected on an output to a data input port of the D flip-flop 27.
[0057] Each multiply-accumulate block 23 is associated with a coefficient h.sub.i, with i an integer ranging from 0 to k1, k being the number of multiply-accumulate blocks 23. In other terms, k is also called a length of the filtering unit 11, and k1 the order of the filter 11.
[0058] In the example shown in
[0059] For example, in the case of voice signal processing, the coefficients hi are chosen so that one of the filtering units 11 is a band pass filter with a bandwidth comprised between 573.8 Hz and 1079.5 Hz with an out-of-band attenuation of 5 dB.
[0060] The following description refers to the first multiply-accumulate block 23, connected to the CT-ADC 10 and configured to receive the request and direction signals REQ and DIR. It is applicable to all the other multiply-accumulate blocks 23 by changing the request and direction signals REQ and DIR into the delayed request and direction signals.
[0061] When the device 1 is in operation, the logic multiplexer 25 of the first multiply-accumulate block 23 receives the value of the coefficient h.sub.0 it is associated with, and the direction signal DIR. The logic multiplexer 25 then outputs either the value of the coefficient h.sub.0, or its opposite h.sub.0, based on a value of the direction signal DIR. For example, if the direction signal DIR is in high state, the logic multiplexer 25 outputs the value h.sub.0. If the direction signal DIR is in low state, the logic multiplexer 25 outputs the value h.sub.0. As an alternative, the logic multiplexer 25 outputs the value h.sub.0 if the direction signal DIR is in low state and the logic multiplexer 25 outputs the value h.sub.0 if the direction signal DIR is in high state. This value is then added by the summation unit 26 with an output value of the D flip-flop 27 to obtain a summation value, which is received by the D flip-flop 27. The D flip-flop 27 also receives the request signal REQ, and when a rising edge in the request signal REQ occurs, the D flip-flop 27 is triggered and outputs an output value Y.sub.0 of the first multiply-accumulate block 23, which is equal to the summation value.
[0062] In other words, the output value Y.sub.0 of the first multiply-accumulate block 23 is determined by the following equation:
[0063] t.sub.n-1, t.sub.n are successive times corresponding to a rising edge in the request signal REQ. As the rising edges are not uniform, the successive times t.sub.n-1, and t.sub.n are not separated by a regular interval.
[0064] Initially, the output value Y.sub.0 is equal to zero. The output value Y.sub.0 is the quantization value associated to the request signal REQ, multiplied by coefficient h.sub.0.
[0065] A filtered output signal F.sub.out from the calculating module 15 is then obtained by summing the output values of all the multiply-accumulate blocks 23, which is performed by the summation unit 24. The filtered output signal F.sub.out is therefore a result of the finite impulse response filtering operation performed by the filter 11 on the request signal REQ and the direction signal DIR. The filtered output signal F.sub.out varies when the output value of each multiply-accumulate block 23 varies.
[0066] The pulse combiner 16 is connected to the CT-ADC 10 and to all the REQ outputs of all the delay blocks 21, as presented in
[0067] The energy estimator 17 is connected to the filtering unit 11 and to the pulse combiner 16. The energy estimator 17 advantageously comprises a D flip-flop 31, a combinatory squarer 32 and an accumulator 33, visible on
[0068] The D flip-flop 31 is connected to the combinatory squarer 32.
[0069] When the device 1 is in operation, the D flip-flop 31 receives the filtered output signal F.sub.out and the combined pulse signal CREQ. For each rising edge of the combined pulse signal CREQ, the D flip-flop 31 is triggered and outputs a corresponding filtered output signal value, which is then received by the combinatory squarer 32. The combinatory squarer 32 calculates and outputs a squared filtered output signal SF.sub.out, which is the square value of the filtered output signal F.sub.out.
[0070] In a variant, the squared filtered output signal SF.sub.out is an approximation of the square value of the filtered output signal F.sub.out.
[0071] The accumulator 33 is connected to the combinatory squarer 32. The accumulator 33 comprises a summation unit 35 and a resettable D flip-flop 36. The summation unit 35 is connected in input to the combinatory squarer 32 and to the Q output port of the resettable D flip-flop 36. The resettable D flip-flop 36 is further connected to an output port of the summation unit 35 and to the pulse combiner 16. A D flip-flop 37 is connected to the resettable D flip-flop 36.
[0072] When the device 1 is in operation, the squared filtered output signal SF.sub.out is received by the summation unit 35. The summation unit 35 adds the squared filtered output signal SF.sub.out to a stored energy value A.sub.out in the resettable D flip-flop 36 to obtain an updated energy value. The stored energy value A.sub.out is then modified to the updated energy value at each rising edge in the combined request signal CREQ. More precisely, the resettable flip-flop 36 outputs the updated energy value at each rising edge in the combined request signal CREQ, so that the stored energy value A.sub.out is modified to the updated energy value.
[0073] The combined request signal CREQ acts as a time-base for energy calculation, as it is used to determine when to modify the stored energy value A.sub.out.
[0074] When the device 1 is in operation, the resettable D flip-flop 36 further receives a frame signal FR. The frame signal FR comprises at least one alternating low and high state. In general, the frame signal FR comprises multiple low states alternating with multiple high states. The low and high states are advantageously regular, such that the frame signal FR is periodic. In variant, the frame signal FR is not periodic.
[0075] When the frame signal FR goes from a high state to a low state, also called a falling edge, the resettable D flip-flop 36 is reset and the D flip-flop 37 is activated. The D flip-flop 37 outputs an energy value E.sub.out equal to the stored energy value A.sub.out, and the stored energy value A.sub.out is set to zero. The stored energy value A.sub.out stays equal to zero until the frame signal FR goes from a low state to a high state, also called rising edge, at which time the stored energy value A.sub.out is modified again at each rising edge in the combined request signal CREQ, as previously described.
[0076] As an alternative, the resettable D flip-flop 36 is reset and the D flip-flop 37 is activated when a rising edge occurs in the frame signal FR, and the stored energy value A.sub.out stays equal to zero until a falling edge occurs in the frame signal FR.
[0077] The energy value E.sub.out corresponds to an approximation of an energy of the analog signal S.sub.in in a frequency range corresponding to the bandwidth of the filtering unit 11, calculated over a high state of the frame signal FR. As the rising edges comprised in the combined request signal CREQ are not distributed uniformly and the time between two successive rising edges in the combined request signal CREQ may vary, the energy value E.sub.out is calculated without ponderation of the time between successive rising edges in the combined request signal CREQ. In other words, even though the time between two rising edges in the combined request signal CREQ may vary, when calculating the energy value E.sub.out, it is considered that all the rising edges in the combined request signal CREQ are evenly distributed. Thus, the energy value E.sub.out is not exactly equal to the energy of the analog signal S.sub.in. A discrepancy between the energy value E.sub.out and an energy value output by a similar device through discrete time digital signal processing is low, advantageously of less than 1% on average in a voice signal processing application.
[0078] The energy value E.sub.out is advantageously used to display a spectrogram for a frequency interval corresponding to the bandwidth of the filtering unit 11, by collecting energy values E.sub.out over multiple time frames.
[0079] Alternatively, for voice signal processing applications such as keyword spotting, the estimated energy values E.sub.out are used as features extracted from the voice signal. The energy values are advantageously stored in a dedicated memory unit, where additional processing, such as leading one detection and truncation of the energy values E.sub.out can be performed. The truncated energy values are advantageously used as input to a neural network trained to detect predetermined keywords.
[0080]
[0081] During phase P10, before a rising edge occurs in the combined request signal CREQ, the squared filtered output signal SF.sub.out is constant, equal to value A, the stored energy value A.sub.out is equal to zero, and the energy value E.sub.out is equal to zero. A rising edge occurs in the frame signal FR, with no impact on the values previously mentioned.
[0082] At each phase P11, P12 and P13, which each correspond to a rising edge at the combined request signal CREQ, the squared filtered output signal SF.sub.out changes, as a rising edge in the combined request signal CREQ is synchronized with a change in the filtered output signal F.sub.out. The stored energy A.sub.out changes as well, and becomes the updated energy value, which is a sum of the stored energy value A.sub.out and the value of the squared filtered output signal SF.sub.out before each rising edge occurred. In the example of
[0083] At phase P14, a falling edge occurs on the frame signal FR. This causes the energy value E.sub.out to become equal to the stored energy value A.sub.out, and the stored energy value A.sub.out to be reset to zero. Thus, a high state in the frame signal FR corresponds to a time duration over which the energy value E.sub.out is calculated. The value of the squared filtered signal SF.sub.out is not modified.
[0084] The combined request signal CREQ is used as an unevenly distributed time base in order to synchronise the operation of the filtering unit 11 with the combinatory squarer 32 and the accumulator 33. More precisely, the combined request signal CREQ is used to follow every variation of the filtered output signal F.sub.out, so that the energy value E.sub.out is a function of all the variations of the filtered output signal F.sub.out.
[0085] The operation of the device 1 requires little power due to the device 1 performing continuous-time processing. Indeed, in this case the device 1 consumes power only if the analog signal S.sub.in reaches predetermined levels. In case of silence, or low background noise, the CT-ADC 10 does not sample the analog signal S.sub.in, resulting in reduced power consumption. A power consumption of the microchip 5 of the device 1 is for example in a voice signal processing application, lower than 1 W, preferentially lower than 500 nW. In particular, a power consumption of the energy estimator 17 is lower than 5 nW, preferentially lower than 2 nW when detecting keywords in audio signals. The values may vary, depending on the application and the type of signal.
[0086] In a variant not represented, the pulse combiner is not connected to all the delay blocks. In this case, the pulse combiner does not take into account the delayed request signals output by the delay blocks which are not connected to the pulse combiner. This results in the variations in the filtered output caused by a delay block not connected to the pulse combiner being ignored when calculating the energy values. As an alternative, some delay blocks are deactivated, and do not transmit delayed request signals to the pulse combiner. Both cases allow to obtain an effect similar to modifying the order of the filtering unit without changing an architecture of the filtering unit. Advantageously, the user determines if the pulse combiner is connected to all the delay blocks or not, and if not, to which delay blocks the pulse combiner is connected, or which delay blocks are deactivated.
[0087] In a variant not represented, each digital processing module comprises more than one energy estimator, for example three energy estimators. When the device is in operation, the energy estimators of the same digital processing module advantageously receive a different frame signal. The frame signals advantageously overlap. The energy value can thus be calculated over different overlapping time durations.
[0088] A method for calculating the energy value E.sub.out is now described in relation to
[0089] A step S101 consists in converting the analog signal S.sub.in. The analog signal S.sub.in is converted into the request signal REQ and the direction signal DIR associated to the request signal REQ. The request signal REQ comprises at least one pulse comprising a rising edge, each pulse being representative of the analog signal S.sub.in crossing one of the plurality of predetermined levels, as described previously. The direction signal DIR is representative of the direction of the level crossing. Step S101 is advantageously performed by the CT-ADC 10.
[0090] Filtering the request signal REQ and direction signal DIR is then performed. More precisely, the filtering is a finite impulse response filtering operation and results in outputting the filtered output signal F.sub.out. Filtering consists in two steps, a step S102 and a step S103.
[0091] Step S102 consists in delaying the request signal REQ and the associated direction signal DIR. Step S102 results in the output of at least one delayed request signal, and the at least one delayed direction signal associated to the at least one delayed request signal. The delayed request signal is delayed from the request signal REQ by the delay time, and the delayed direction signal is delayed from the direction signal DIR by the same delay time. Advantageously, and as shown in the figures, a plurality of delayed request signals, and a plurality of delayed direction signals associated to the delayed request signals are output, as well as the request signal DIR and direction signal REQ. Advantageously, step S102 is performed by the delaying module 12.
[0092] Step S103 consists in calculating the filtered output signal F.sub.out from the request signal REQ, the direction signal DIR, the delayed request signals and the delayed direction signals.
[0093] A step S104 of combining the request signal REQ and the at least one delayed request signal is then performed. The combination of the request signal REQ and the at least one delayed request signal results in the combined request signal CREQ. Step S104 is advantageously performed by the pulse combiner 16.
[0094] A step S105 of computing the stored energy value A.sub.out associated with each rising edge of the combined request signal CREQ using the filtered output signal F.sub.out is performed. The squared filtered output signal SF.sub.out is first output and the value of the stored energy value A.sub.out is computed from the squared filtered output signal SF.sub.out. Step S105 is advantageously performed by the accumulator 33.
[0095] A step of outputting the energy value E.sub.out is performed when a falling edge occurs on the frame signal FR.
[0096] The device 1 performs low power energy calculation of the analog signal S.sub.in, through continuous-time digital processing. The pulse combiner 16 of the device 1 allows to create a time base usable to output the energy value E.sub.out, therefore making continuous-time digital processing compatible with energy calculations.
[0097] Advantageously, as previously mentioned, even though the rising edges comprised in the combined request signal CREQ are not distributed uniformly, a difference between the energy value E.sub.out output by the device 1 and an energy value output by a similar device using discrete time digital processing is low, with for example the discrepancy being of less than 1% on average in voice signal processing applications. This allows the energy value E.sub.out to be exploited in a similar way as the energy value which is obtained through discrete time digital processing. In an application using voice signal processing for keyword recognition by a convolutional neural network, using the device 1 resulted in 90.08% accuracy, and using a similar device performing discrete-time signal processing resulted in 90.21% accuracy. The number of digital processing modules 14, the order of the filtering unit 11 and the number of energy estimators 17 are advantageously chosen depending on an application desired by the user. For example, choosing eight digital processing modules 14, with filtering units 11 with an order of sixteen allows the user to process an audio analog signal S.sub.in corresponding to a voice signal.