This invention relates to the field of signal processing, more particularly the correction of signals.
More specifically, the object of the invention is a digital device that makes it possible to calculate, in real time, a set-point signal that is corrected and intended in particular to be used in units for the generation of magnetic field gradients.
The latter are commonly employed in spectrometry by nuclear magnetic resonance (NMR) and magnetic resonance imaging (MRI) systems.
In a known manner, the gradients are produced by coils placed inside the magnet that generates the constant primary magnetic field. These coils are controlled by current amplifiers, where their set point usually is given in voltage and generally consists of a train of pulses.
This set point is generated by a digital device whose input is a sequence switch, constituting a programmable pulse generator, and the output is a digital-to-analog conversion stage that provides set-point voltage.
The pulse generator is programmed based on the type of analysis that is to be performed by the spectrometer or the imager.
A common configuration of such a system makes it possible to generate field gradients along the three axes (X, Y and Z, the latter being collinear with the primary field), as shown in
Other configurations of systems are also known and employed.
It is also known that, during the variation of the magnetic field in a gradient coil, Foucault currents appear on conductive elements that are outside of the coil and are subject to this field. These currents produce a magnetic field that opposes the field of the gradients.
By taking into consideration, for example, a gradient coil through which a current pulse passes, the build-up time of the magnetic field created by this coil will be influenced by the field that is produced by the Foucault currents. This phenomenon is illustrated in
The degradation of the gradient field by the one produced by the Foucault currents has a detrimental influence on the performances of the spectrometer or the imager. It is consequently necessary to reduce to the maximum the effect of the Foucault currents on the gradient field.
For this purpose, a correction (of the pre-accentuation type, for example) can be applied to the voltage set point so as to compensate for the effect of the opposite field (
The digital solutions that are proposed as of this time for making such a correction are primarily of two types: namely the entirely hardware solutions (based on stateful machines, for example), and software solutions (employed on a DSP [digital signal processing] signal-processing microprocessor, for example).
The first type of solution results in a rigid and fixed implementation, and the second type of solution experiences limited performance.
The document U.S. Pat. No. 5,349,296 discloses an NMR imager that integrates in particular a system for supplying gradient coils, able to provide set-point signals specific to each channel and formed from series of codes describing the wave profiles to be applied.
According to this document, the supply system can also integrate, without their nature being specified in advance, means for pre-emphasis correction acting on the analog signals that are delivered to different channels and using predefined parameters.
Thus, these correction means do not act on digital data, and they do not make it possible to make a correction by recursive operation.
The result is a limited, totally fixed correction method whose performance cannot be easily estimated in advance and is in any case limited.
This invention has the object in particular of proposing an improved solution that makes it possible to overcome at least some, and preferably all, of the limitations of the solutions mentioned above.
In addition, the solution that is proposed by the invention should exhibit a flexibility of use on two levels: namely, on the one hand, for the same type of corrective processing to allow the use of parameters for easily modifiable correction, manually or automatically, and, on the other hand, the implementation of corrective processing of different natures, without requiring modification of the hardware structure of the device.
In addition, the solution that is proposed by the invention should also make possible, on the one hand, a good predictability of the performance, and, on the other hand, good management of the use of hardware resources that are implemented because of a simple structure and a simple composition.
For this purpose, the invention has as its object a device for real-time correction of variable set-point or control signals of gradient coils of a spectrometry or imagery device by nuclear magnetic resonance based on factors or coefficients for correction or compensation that are provided, whereby said device is designed to receive at the input original digital set-point signals and to deliver at its output set-point signals that have been modified to compensate for defects, limitations, disruptions, interference, negative effects or the like subsequently encountered during the processing, the transmission, the transformation and/or the application of said set-point signals,
device characterized
in that it consists of at least one circuit that is based on a microprogrammed structure and composed of several subassemblies that work with digital components essentially comprising a micro-sequencer forming a counter, a memory for storing micro-instructions, and a processing unit combined with at least one working memory and integrating arithmetic calculation modules, and
in that said processing unit is capable of and designed to modify the data of original digital set-point signals by taking into account the factors or coefficients for correction or compensation that are provided and in accordance with the micro-instructions that are addressed by the micro-sequencer in the storage memory and that form a correction algorithm that controls the operation of different operational subassemblies that constitute the correction device and are programmed based on the correction to be implemented. Although numerous applications of this correction device can be envisioned, it is more particularly experienced at present in its implementation in the NMR/MRI context.
Thus, the invention also relates to a system for the generation of magnetic field gradients essentially comprising means for the generation of a digital set-point signal, for example in the form of a train of pulses, means for conversion and amplification of the set-point signal, if necessary, suitable for one method, and one or more coil(s) for the generation of gradients supplied by the amplified signal(s) provided by the combined conversion and amplification means, if necessary respectively corresponding, whereby said system also comprises a device for correction of the set-point signal before its analog conversion and its amplification, and if necessary, its demultiplication, a system that is characterized in that the correction device is a device as described above.
The correction process that results from the implementation of these different hardware and software arrangements consists in generating, within the context of the production of magnetic field gradients, a real-time correction by a digital device that is inserted between the pulse generator and the digital-to-analog conversion stage in a generation system of the above-mentioned type.
The correction device can, for example, but in a nonlimiting manner, implement a high-pass digital filter so as to apply a pre-accentuation or a pre-distorsion to the set-point signal (see
Since the correction that is provided advantageously can be parameterized (in connection with the characteristics of the gradient coil or the amplifier, for example), the calculations that are performed by the corrector take into consideration coefficients that come from an external device. These coefficients can be calculated based on parameters that are entered manually by the operator or by an automated device.
The above-mentioned parameters, whose use makes it possible to determine the correction coefficients implemented by the correction device, can, for example, be determined or result from measurements that are made in advance and that make it possible to deal with the effects of Foucault currents (see, for example, WO 89/08852).
Once set, these coefficients no longer vary as long as the components of the system do not change; their calculation therefore does not deal with the real-time aspect contrary to operations performed by the corrector.
However, their values can be easily modified either by the user (programming) or automatically, based on hardware and/or environmental modifications.
In addition, taking into account its embodiment (microprogrammed structure), the performance expressed in terms of rapidity of processing of the corrector depends essentially on the clock frequency that is applied, and processing cycles of several hundred nanoseconds can be easily achieved. In addition, the performance level of the corrector can be determined in advance.
The invention will be better understood, owing to the description below, which relates to a preferred embodiment, provided by way of nonlimiting example and explained with reference to the accompanying schematic drawings, in which:
Such a device 1 is intended to receive at the input original digital set-point signals and to deliver at its output set-point signals that have been modified or corrected to compensate for defects, limitations, disruptions, interference, negative effects or the like encountered subsequently during the processing, the transmission, the transformation and/or the application of said set-point signals.
According to the invention, said correction device 1 consists of at least one circuit 1′ that is based on a micro-programmed structure and consists of several subassemblies 3, 4, 5, 6, 6′ that work with digital components that comprise essentially one micro-sequencer 3 that forms a counter, a micro-instructions storage memory 4, and a processing unit 5 combined with at least one working memory (6, 6′) and integrating arithmetic calculation modules 7, 7′, and said processing unit 5 is capable of and intended to modify the data of the original digital set-point signals by taking into account the factors or coefficients for correction or compensation that are provided and in accordance with the micro-instructions that are addressed by the micro-sequencer 3 in the storage memory 4 and that form a correction algorithm that controls the operation of different operational subassemblies 3, 5, 6, 6′ that constitute the correction device 1 and are programmed based on the correction to be implemented.
According to a first characteristic of the invention, the sequencing of the data at the input register 8 and the output register 8′ of said device 1 as well as the resetting to zero of the micro-sequencer 3 are controlled by a synchronization signal SYNC whose period is a multiple of the clock signal CLK that concatenates the operation of the different constituent subassemblies.
In addition, the arithmetic calculation modules preferably consist of pipelines (transmission lines arranged in stages).
According to another characteristic of the invention, the working memory(ies) 6, 6′ comprise(s) at least a first memory zone 6 that is intended to store the correction coefficients that are to be applied and at least a second memory zone 6′ that is intended to store the input datum to be corrected, the intermediate result(s) of the arithmetic operations implemented by the arithmetic calculation modules, and the final result corresponding to the corrected output datum, as well as, if necessary, one or more preceding input datum/data.
There can be provided either a single working memory comprising at least two separate storage zones 6 and 6′ or two separate working memories 6 and 6′.
According to an additional characteristic of the invention, said at least one second memory zone 6′ is also capable of and intended to store the output datum/data of at least one corrected set-point signal that is produced during at least one prior correction cycle, for example the corrected set-point signal of the preceding cycle, and in that the current corrected set-point signal results from a convolution operation that is implemented by means of the calculation modules 7, 7′.
The arrangement and the interconnection of the different subassemblies, in particular memories 6, 6′ and calculation modules 7, 7′, thus allow a recursive operating mode of the device 1.
The prediction of storage memories 4 and working memories 6, 6′ as explained above imparts great flexibility to the device 1. Actually, they make it possible to perform:
Consistent with an advantageous practical implementation of the invention, and as
When the format of the digital data manipulated by the processing unit 5 and stored in the working memories 6, 6′ is different from that or those of the format(s) of digital data at the input (DATA-IN) or at the output (DATA-OUT), it can be provided that the device 1 also comprises mutually inverse conversion modules 15, 15′, at the input and at the output, whereby input data and output data are, for example, coded integers in two's complement (
Consistent with a very preferred embodiment of the invention, the two conversion modules 15 and 15′ respectively consist of a module for conversion of integers into double-precision floating-comma 64-bit numbers, preferably according to the standard IEEE 754, and a similar inverse conversion module. The correction device or corrector 1 can consequently be easily inserted or fit into a gradient generation system, without modifying the nature of the delivered signals (the modified set-point signal as well as the original set-point signal remain in digital form) and without disrupting the flow of said signals (real-time correction, the correction system introducing a minimal delay that is compatible with the application), this while transposing the data from the digital set-point signals into a format that facilitates the precision of their corrective processing.
Although the invention is described and shown more particularly within the framework of a linear structure, one skilled in the art easily understands that in the case of multiple paths or large quantities of data to be processed, the correction device 1 can have a vectorial structure and can comprise several circuits 1′ that are arranged in parallel, each circuit integrating a functional group [micro-sequencer 3/storage memory 4/processing unit 5, and working memory(ies) 6, 6′].
According to a possible application of the invention, brought out by
The correction device 1 has a great flexibility of use and can be used to perform various types of operations on the signal that is to be corrected, for example an amplifier set-point signal. Consequently, it is possible, for example, also to be used to correct the linearity defects of the amplifier of gradients 19′ in an application in connection with a system 17 for the generation of magnetic field gradients.
The invention also relates to a system 17 of the above-mentioned type, which essentially comprises, as
This system 17 is characterized in that the correction device is a device 1 as described above.
This system 17 can advantageously consist of a system for the generation of gradients along several axes, whereby a correction device 1 is associated with each axis.
Finally, the invention also relates to a process for real-time correction of variable set-point or control signals of gradient coils of a spectrometry or imagery device by nuclear magnetic resonance based on factors or coefficients for correction or compensation that are provided, whereby this process uses at least one correction device as described above.
This process is characterized in that it essentially consists, at the level of each correction device 1, in converting the successive digital data that together form an original set-point signal for gradient coil(s) into data that are suitable for processing by the unit 5, in processing said converted data into successive operating loops, by means of the arithmetic calculation modules 7, 7′ based on micro-instructions that are present in the storage memory 4 and that form a correction algorithm, by taking into account correction coefficients that are present in the working memory(ies) 6, 6′ and by storing the intermediate results, as well as the data that result from the corrective processing also in the working memory(ies), and in converting the data that result from the corrective processing into data with a format that is identical to that of the data of the original set-point signal and forming a part of a corrected set-point signal.
Preferably, the processing of data by the unit 5 comprises at least one convolution operation, whereby at least the data of the corrected set-point signal that are calculated during the prior cycle are taken into account. The invention will be described below, by way of example, in a more detailed manner and in connection with the accompanying drawings.
The data at the input of the corrector 1 are advantageously coded integers in two's complement, and the output data are also coded integers in two's complement, whereby the data that are effectively processed, in the corrector 1 are in a different format, for example in a floating-comma number, more suitable for the envisioned processing.
All of the components of the correction device 1 operate synchronously using a single clock (signal CLK in
The data registers 8 and 8′, as shown in
The micro-sequencer 3 consists of a counter that is controlled by signals of the device (see
The control signals of said micro-sequencer 3 are as follows:
The output of the micro-sequencer 3 addresses the memory 4 that contains the micro-code. The current value of the counter consequently corresponds to the ordinal counter. The clock input (CLK) of the micro-sequencer 3 is connected to the overall clock of the correction device 1. The validation input (IN) is controlled by the micro-code, via the signal SEQ_IN, while the restart input is connected to the synchronization signal of the device (SYNC in
The processing unit 5 was designed so as to use minimal hardware resources while ensuring optimal performances. The performance criteria relate not only to the time of calculation but also to the precision of the latter. The idea of precision of calculations is essential if the corrector 1 is to implement digital filters with infinite pulse response (RII) of an order that is greater than or equal to 2 (the rounding errors can then bring about instability of the filter).
So as to ensure good precision, the processing unit 5 advantageously performs calculations with floating-comma numbers that comply with the standard IEEE 754 (or CEI 60559). Lower precision can suffice depending on the use case; fixed-comma numbers can then be used to save resources. The principle of operation would nevertheless remain identical.
The data at the input and at the output (DATA_IN and DATA_OUT) are coded integers in two's complement. At the input, these data are converted into floating-comma numbers (converter 15=“Int2Float” block), and at the output, the data are converted into integers (converter 15′=“Float2Int” block).
The data memory 6′, which is volatile (of the RAM type), preferably allows three simultaneous accesses to the stored data: two read accesses and one write access, this with three different addresses.
The memory of the coefficients 6, which is also volatile, is characterized by separate read and write ports 11, whereby the write port is connected to a bus coming from a device that is outside of the corrector 10 (see
The width of a memory line (data or coefficients) corresponds, in practice, to the size of the floating-comma numbers (for example, 64 bits if it is a “double-precision” coding format, according to the standard IEEE 754, or 32 bits in the case of “simple-precision” coding.) The depths of data memory 6′ and coefficient memory 6 depend on the type of correction algorithm used.
One of the read ports 11 of the data memory 6′ and the read port 11 of the coefficient memory 6 are connected to an operand bus 9 (A-BUS). The source of the operand, located on the A-BUS, is selected via a multiplexer 10. In other words, the operand that is located on A-BUS can be a stored result (source: data memory 6′) or a coefficient (source: coefficient memory 6) according to the state of the multiplexer 10. The second operand bus 9′ (B-BUS) is directly connected to the other read port 11 of the data memory 6′.
The operand buses 9 (A-BUS) and 9′ (B-BUS) supply arithmetic units or modules 7, 7′ for floating-comma numbers: an adder 7 and a multiplier 7′. B-BUS also makes it possible to send the data to the converter 15′ [floating-comma number/integer].
A bus 12, referred to as D-BUS, is connected to the write port 13 of the data memory. A multiplexer 14 that makes it possible to select the source of the datum to be stored is placed on this bus. This source can be:
The operand that is located on the bus 9 (A-BUS) makes it possible to move the data into the data memory 6′.
Before being placed in the data memory, the sign of a value can optionally be changed (at the inversion module 13′) so as to store its opposite.
It will be noted that the width of all of the buses 9, 9′, 12 that are mentioned corresponds to the size of the floating-comma numbers.
Without modifying the principle of operation of device 1, buffer registers can be placed on the access ports of memories 6, 6′ so as to increase the frequency of operation of the processing unit 5. This is equivalent to adding pipeline stages. The operation of the units or modules 7 and 7′ that perform the arithmetic operations (adder and multiplier) can also rest on transmission lines. The number of necessary stages is dependent upon the frequency of operation and the technology used.
In addition, so as to accelerate the calculations, the processing can be easily vectored. For this purpose, several subassemblies [processing units 5/data and coefficient memories 6, 6′] can be placed in parallel while being controlled by the same micro-code.
The cooperative and coordinated operation of the components of the processing unit 5 and data and coefficient memories 6, 6′ is conditioned by control signals that correspond to fields that are contained in the micro-instructions.
The control signals are as follows for the example shown in
The micro-code memory 4 (storage memory of the micro-instructions) is not volatile and has a single access door. Each line of this memory 4 contains a micro-instruction. Its address bus is connected to the ordinal counter, which corresponds to the output of the micro-sequencer 4, while its data bus conveys the micro-instructions. The size of the memory 4 depends on the type of correction algorithm implemented: the number of lines is based on the quantity of micro-instructions to be executed, and the size of a line is related to the quantity of locations of data and coefficient memories to be addressed.
This micro-code memory can be volatile if it proves necessary to improve the flexibility of the correction device 1 by changing the type of algorithm. This has no influence on the principle of operation of said corrector 1.
In the example shown in
Below, a nonlimiting example of implementation of a function by the correction device or corrector 1 will be described in more detail.
The example that is described below exhibits the use of the corrector 1 in a system 17 for the generation of gradients equipped with a single axis, and therefore a single gradient coil 2 and a single current amplifier 19′ (as shown in
More specifically, the corrector 1 implements three filtering cells 16 in parallel in the example that is described (see
Each cell 16 corresponds to a high-pass digital filter of the first order. This configuration makes it possible to act on six parameters (the gain and the time constant of each cell 16) of the corrector 1 so as to obtain the best gradient field possible.
The transfer function of a filtering cell 16 can be determined as follows:
1) Transfer function in the Laplace plane of a high-pass filter of the first order:
With:
k the gain
τ the time constant
2) Transfer function in the z plane, bilinear transformation:
With:
f the sampling frequency, which within the framework of the corrector 1 corresponds to the frequency of the synchronization signal SYNC (see
3) Transfer function in the z plane:
With:
4) Transposition of the equation (1) into the temporal domain:
y(n)=A(x(n)−x(n−1))−By(n−1) (4)
5) Transfer function in the temporal domain of the corrector 1 that is shown in
y(n)=x(n)+y1(n)+y2(n)+y3(n) (5)
By using the equation (4) with (5), we obtain:
y(n)=x(n)+A1(x(n)−x(n−1))−B1y1(n−1)+A2(x(n)−x(n−1))−B2y2(n−1)+A3(x(n)−x(n−1))−B3y3(n−1)
Each pair of coefficients (Am; Bm) is calculated using the equations (2) and (3) by taking into consideration the gain κm and the time constant τm of each cell 16 that, in the example described, are the input parameters of the system 17.
The terms A1, A2, A3, B1, B2, B3 can be identified with coefficients of the corrector 1. The calculation of these terms based on gains and constants does not exhibit the real-time aspect. This calculation can consequently be performed by an external device that is not part of the corrector 1 (calculation unit in
In the case where the input parameters of the system are the gains and time constants of three cells 16 in the analog field, the external device—during the calculation of coefficients—should compensate for the deformation of frequency provided by the bilinear transformation.
Within the framework of the practical example that is described, it is then necessary to carry out the implementation of the correction algorithm.
To implement this algorithm, it is necessary to consider that the components of the corrector 1 have the following characteristics:
The following table comprises the successive operations that correspond to the algorithm of the example that is described (each line of the table corresponds to a micro-construction and therefore to a line of the micro-code memory).
As a variant of practical implementation of the correction device according to the invention (relative to the high-pass digital filter of the first order described in detail above), it is also possible to implement a recursive filter of the second order with infinite pulse response whose transfer function in the z plane is established as follows:
which, in the temporal domain, leads to the following function:
y(n)=b0x(n)+b1x(n−1)+b2x(n−2)−a1y(n−1)−a2y(n−2)
In the same manner as for the filter of the first order, the coefficients a and b are stored in the memory 6 of the coefficients, whereby the samples x (input of the filter) and y (output of the filter) are stored in the data memory 6′.
Of course, the invention is not limited to the embodiment that is described and shown in the accompanying drawings. Modifications are possible, in particular from the standpoint of the composition of the various elements or by substitution of equivalent techniques, without thereby exceeding the field of protection of the invention.
Number | Date | Country | Kind |
---|---|---|---|
0957487 | Oct 2009 | FR | national |