The present invention concerns a device for continuous-time energy calculation of an analog signal.
The invention also concerns an associated method for continuous-time energy calculation of an analog signal.
To calculate the energy from an analog signal, it is well known to perform discrete-time digital signal processing. In this case, a clock is used to sample the analog signal, and to synchronize subsequent processing operations. In this case, the power consumed for the discrete-time digital signal processing is constant in time, and depends on the frequency of the clock: the higher the frequency, the greater the power consumed.
This leads to high power consumption, which is wasteful in particular in settings where the analog signal is sparse. This is the case for example in voice signal processing, where a voice signal can alternate with long periods of silence or of non-significant noise. Voice signal processing is particularly relevant in keyword spotting applications, where the recognition of one keyword will result in an action being performed by a system, with applications in connected objects and real-time sensing.
To decrease power consumption, it is known to perform continuous-time digital signal processing, and in particular, continuous-time non-uniform amplitude sampling of the analog signal. However, this leads to the absence of a time reference, making it impossible to calculate an energy value from the analog signal.
The present invention aims to solve this problem, by calculating the energy of the analog signal while reducing the power consumption.
To this end, the invention consists in a device, for continuous-time energy calculation of an analog signal, comprising:
According to the invention, the device further comprises:
Advantageously, the combined request signal acts as a non-uniformly distributed time base, which is then used to track the variations in the filtered output. More specifically, it can be used as a time base to calculate the energy value associated with the filtered output. Thus, the energy present in the analog signal is calculated using continuous-time processing, which enables the decrease of the power consumption.
According to certain embodiments of the invention, the device comprises one or several of the following characteristics, separately, or according to any technically possible combinations:
The invention also relates to a method for continuous-time energy calculation of an analog signal, the method being implemented by a device according of any of the preceding claims, the method comprising:
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:
is a graph showing states of the device during its operation as a function of time; and
When the device 1 is in operation, the continuous-time analog-to-digital converter 10 converts an analog signal Sin into a request signal REQ and a direction signal DIR, visible on
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 Sin only if the analog signal Sin crosses one of the plurality of predetermined levels. The predetermined levels are predetermined quantization amplitude levels of the analog signal Sin 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 Sin 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 Sin, or low, corresponding to a decrease in the amplitude level of the analog signal Sin. In other terms, the CT-ADC 10 encodes asynchronously the analog signal Sin, the predetermined levels being the corresponding quantization levels.
As the CT-ADC 10 samples the analog signal Sin only based on the amplitude of the analog signal Sin and not based on a sampling frequency, the time between two successive rising edges in the request signal REQ is unknown and may vary.
The integrated circuit 5 is connected to the CT-ADC 10 and comprises at least one digital processing module 14, visible on
In
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
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.
In the examples of
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.
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
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.
A detailed schematic of a structure of the first multiply-accumulate block 23 is shown on
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.
Each multiply-accumulate block 23 is associated with a coefficient hi, with i an integer ranging from 0 to k−1, k being the number of multiply-accumulate blocks 23. In other terms, k is also called a length of the filtering unit 11, and k−1 the order of the filter 11.
In the example shown in
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.
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.
When the device 1 is in operation, the logic multiplexer 25 of the first multiply-accumulate block 23 receives the value of the coefficient h0 it is associated with, and the direction signal DIR. The logic multiplexer 25 then outputs either the value of the coefficient h0, or its opposite −h0, 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 h0. If the direction signal DIR is in low state, the logic multiplexer 25 outputs the value −h0. As an alternative, the logic multiplexer 25 outputs the value h0 if the direction signal DIR is in low state and the logic multiplexer 25 outputs the value −h0 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 Y0 of the first multiply-accumulate block 23, which is equal to the summation value.
In other words, the output value Y0 of the first multiply-accumulate block 23 is determined by the following equation:
tn-1, tn are successive times corresponding to a rising edge in the request signal REQ. As the rising edges are not uniform, the successive times tn-1, and tn are not separated by a regular interval.
Initially, the output value Y0 is equal to zero. The output value Y0 is the quantization value associated to the request signal REQ, multiplied by coefficient h0.
A filtered output signal Fout 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 Fout 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 Fout varies when the output value of each multiply-accumulate block 23 varies.
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
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
The D flip-flop 31 is connected to the combinatory squarer 32.
When the device 1 is in operation, the D flip-flop 31 receives the filtered output signal Fout 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 SFout, which is the square value of the filtered output signal Fout.
In a variant, the squared filtered output signal SFout is an approximation of the square value of the filtered output signal Fout.
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.
When the device 1 is in operation, the squared filtered output signal SFout is received by the summation unit 35. The summation unit 35 adds the squared filtered output signal SFout to a stored energy value Aout in the resettable D flip-flop 36 to obtain an updated energy value. The stored energy value Aout 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 Aout is modified to the updated energy value.
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 Aout.
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.
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 Eout equal to the stored energy value Aout, and the stored energy value Aout is set to zero. The stored energy value Aout 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 Aout is modified again at each rising edge in the combined request signal CREQ, as previously described.
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 Aout stays equal to zero until a falling edge occurs in the frame signal FR.
The energy value Eout corresponds to an approximation of an energy of the analog signal Sin 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 Eout 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 Eout, it is considered that all the rising edges in the combined request signal CREQ are evenly distributed. Thus, the energy value Eout is not exactly equal to the energy of the analog signal Sin. A discrepancy between the energy value Eout 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.
The energy value Eout is advantageously used to display a spectrogram for a frequency interval corresponding to the bandwidth of the filtering unit 11, by collecting energy values Eout over multiple time frames.
Alternatively, for voice signal processing applications such as keyword spotting, the estimated energy values Eout 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 Eout can be performed. The truncated energy values are advantageously used as input to a neural network trained to detect predetermined keywords.
During phase P10, before a rising edge occurs in the combined request signal CREQ, the squared filtered output signal SFout is constant, equal to value A, the stored energy value Aout is equal to zero, and the energy value Eout is equal to zero. A rising edge occurs in the frame signal FR, with no impact on the values previously mentioned.
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 SFout changes, as a rising edge in the combined request signal CREQ is synchronized with a change in the filtered output signal Fout. The stored energy Aout changes as well, and becomes the updated energy value, which is a sum of the stored energy value Aout and the value of the squared filtered output signal SFout before each rising edge occurred. In the example of
At phase P14, a falling edge occurs on the frame signal FR. This causes the energy value Eout to become equal to the stored energy value Aout, and the stored energy value Aout to be reset to zero. Thus, a high state in the frame signal FR corresponds to a time duration over which the energy value Eout is calculated. The value of the squared filtered signal SFout is not modified.
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 Fout, so that the energy value Eout is a function of all the variations of the filtered output signal Fout.
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 Sin reaches predetermined levels. In case of silence, or low background noise, the CT-ADC 10 does not sample the analog signal Sin, 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.
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.
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.
A method for calculating the energy value Eout is now described in relation to
A step S101 consists in converting the analog signal Sin. The analog signal Sin 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 Sin 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.
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 Fout. Filtering consists in two steps, a step S102 and a step S103.
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.
Step S103 consists in calculating the filtered output signal Fout from the request signal REQ, the direction signal DIR, the delayed request signals and the delayed direction signals.
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.
A step S105 of computing the stored energy value Aout associated with each rising edge of the combined request signal CREQ using the filtered output signal Fout is performed. The squared filtered output signal SFout is first output and the value of the stored energy value Aout is computed from the squared filtered output signal SFout. Step S105 is advantageously performed by the accumulator 33.
A step of outputting the energy value Eout is performed when a falling edge occurs on the frame signal FR.
The device 1 performs low power energy calculation of the analog signal Sin, 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 Eout, therefore making continuous-time digital processing compatible with energy calculations.
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 Eout 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 Eout 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 Sin corresponding to a voice signal.
Number | Date | Country | Kind |
---|---|---|---|
23305983.1 | Jun 2023 | EP | regional |