(57)【要約】      （修正有）【課題】デバイスは、設定点信号を、入力で受信し、その後前記設定点信号の処理および／または適用中に遭遇する欠陥、悪い影響などを補償するように修正される設定点信号を、出力で送出する。【解決手段】デバイス（１）は、少なくとも１つの回路（１'）からなり、少なくとも1つの回路（１'）は、マイクロプログラム式構造に基づき、かつ、カウンタを形成するマイクロシーケンサ（３）と、マイクロ命令を格納するメモリ（４）と、少なくとも１つの作業メモリ（６，６'）と組合わされた処理ユニット（５）と、統合化算術計算モジュール（７，７'）とを備えるデジタルコンポーネントと共に働くいくつかのサブアセンブリ（３，４，５，６，６'）かならなり、マイクロシーケンサ（３）によってアドレス指定されるマイクロ命令に従って、また、提供される補正係数を考慮することによって、前記処理ユニット（５）は、設定点信号のデータを修正する。【選択図】図６
2011123052.tif 000002
【特許請求の範囲】
【請求項１】
提供される補正または補償のための因子または係数に基づいて、核磁気共鳴によるスペクトロメトリまたはイメージリーデバイスのグラジエントコイルの可変設定点または制御信号をリアルタイムに補正するデバイスであって、それにより、デバイスは、オリジナルのデジタル設定点信号を、入力において受信し、その後前記設定点信号の処理、送信、変換、および／または適用中に遭遇する欠陥、制限、乱れ、干渉、悪い影響などを補償するように修正された設定点信号を、出力において送出するようにされ、
デバイス（１）は、
デバイス（１）が、少なくとも１つの回路（１'）からなり、前記少なくとも1つの回路（１'）が、マイクロプログラム式構造に基づき、かつ、カウンタを形成するマイクロシーケンサ（３）と、マイクロ命令を格納するメモリ（４）と、少なくとも１つの作業メモリ（６，６'）と組合わされた処理ユニット（５）と、統合化算術計算モジュール（７，７'）とを本質的に備えるデジタルコンポーネントと共に働くいくつかのサブアセンブリ（３，４，５，６，６'）かならなること、および、
提供される補正または補償のための前記因子または係数を考慮することによって、また、前記格納メモリ（４）において前記マイクロシーケンサ（３）によってアドレス指定され、かつ、補正デバイス（１）を構成し、実装される補正に基づいてプログラムされる異なる演算サブアセンブリ（３，５，６，６'）の動作を制御する補正アルゴリズムを形成する前記マイクロ命令に従って、前記処理ユニット（５）が、オリジナルのデジタル設定点信号のデータを修正することが可能でかつ修正することを特徴とするデバイス。
【請求項２】
デバイス（１）の入力レジスタ（８）および出力レジスタ（８"）におけるデータのシーケンシングならびに前記マイクロシーケンサ（３）のゼロへのリセット化は、同期信号（ＳＹＮＣ）によって制御され、前記同期信号（ＳＹＮＣ）の周期は、異なる構成サブアセンブリ（３，４，５，６，６'）の動作を連結するクロック信号（ＣＬＫ）の倍数であり、前記算術計算モジュール（７，７'）はパイプラインからなる請求項１に記載のデバイス。
【請求項３】
前記作業メモリ（６，６'）は、適用される前記補正係数を格納するように設計されている少なくとも第１のメモリゾーン（６）、ならびに、補正される入力データ、前記算術計算モジュールによって実装される算術演算の中間結果、および補正された出力データに相当する最終結果、ならびに、必要である場合、１つまたは複数の先行する入力データを格納するように設計されている少なくとも第２のメモリゾーン（６'）を備える請求項１および２のいずれか１項に記載のデバイス。
【請求項４】
前記少なくとも１つの第２のメモリゾーン（６'）はまた、少なくとも１つの直前の補正サイクル中に生成される少なくとも１つの補正される設定点信号、たとえば、先行するサイクルの補正された設定点信号の１つまたは複数の出力データを格納することが可能であり、かつ、格納するようにされ、目下の補正された設定点信号は、前記計算モジュール（７，７'）によって実装される畳込み演算から得られる請求項３に記載のデバイス。
【請求項５】
前記処理ユニット（５）はまた、一方で、読出しポート（１１）によって前記作業メモリ（６，６'）から取出されるデータおよび係数を、実行される前記マイクロ命令の基本制御信号に基づいて前記算術計算モジュール（７，７'）に供給する少なくとも１つのマルチプレクサ（１０）と任意選択で組合わされた、オペランドの送信のためのバス（９，９'）、他方で、少なくとも１つのデータ供給バス（１２）を備え、前記少なくとも１つのデータ供給バス（１２）は、前記第２のメモリまたはメモリゾーン（６'）の書込みポート（１３）および任意選択で１つの符合反転モジュール（１３'）に接続され、かつ、前記算術計算モジュール（７，７'）の出力、補正されるデータの前記入力レジスタ（８）、必要である場合、オペランドの送信のためのバス（９，９'）の少なくとも一方、任意選択で、ゼロ化レジスタに接続されるマルチプレクサ（１４）と上流で結合され、前記マルチプレクサ（１４）の状態はまた、実行される前記マイクロ命令の前記基本制御信号に基づいて決定される請求項１から４のいずれか１項に記載のデバイス。
【請求項６】
また、入力および出力において、互いに逆変換するモジュール（１５，１５'）を備え、それにより、入力データおよび出力データは、たとえば、２の補数の符合化整数である請求項１から５のいずれか１項に記載のデバイス。
【請求項７】
前記２つの変換モジュール（１５および１５'）は、それぞれ、好ましくは、標準的なＩＥＥＥ７５４に従って、整数を倍精度浮動小数点６４ビット数に変換するモジュールおよび同様な逆変換モジュールからなる請求項６に記載のデバイス。
【請求項８】
ベクトル構造を有し、並列に配列されるいくつかの回路（１'）を備え、各回路は、機能群［マイクロシーケンサ（３）／格納メモリ（４）／処理ユニット（５）および作業メモリ（６，６'）］を統合化する請求項１から７のいずれか１項に記載のデバイス。
【請求項９】
並列に配列される３つのフィルタリングセル（１６）を実装するようにプログラムされ、各セルは、好ましくは、１次のハイパスデジタルフィルタに相当する請求項１から８のいずれか１項に記載のデバイス。
【請求項１０】
たとえばパルス列の形態のデジタル設定点信号の生成のための手段と、前記設定点信号の変換手段および増幅手段と、変換と増幅を組合せた手段、必要である場合、それぞれ対応する手段によって提供される増幅信号によって供給されるグラジエントの発生のための１つまたは複数のコイルとを本質的に備える磁場グラジエントの生成のためのシステムであって、それにより、システムはまた、前記設定点信号のアナログ変換および増幅、また、必要である場合、前記設定点信号のデマルチプリケーションの前に、前記設定点信号を補正するデバイスを備え、システムは、前記補正デバイスが、請求項１から９のいずれか１項に記載のデバイス（１）であることを特徴とするシステム。
【請求項１１】
いくつかの軸に沿うグラジエントの発生のためのシステムからなり、補正デバイス（１）は、各軸に関連する請求項１０に記載のシステム。
【請求項１２】
提供される補正または補償のための因子または係数に基づいて、核磁気共鳴によるスペクトロメトリまたはイメージリーデバイスのグラジエントコイルの可変設定点または制御信号をリアルタイムに補正するプロセスであって、それにより、プロセスは、請求項１から９のいずれか１項に記載の少なくとも１つの補正デバイスを使用し、
プロセスは、本質的に、各補正デバイス（１）のレベルで、グラジエントコイル用のオリジナルの設定点信号を共に形成する連続するデジタルデータを、前記ユニット（５）による処理に適するデータに変換し、前記作業メモリ（６，６'）内に存在する補正係数を考慮することによって、また、前記中間結果ならびに前記補正処理から得られるデータを同様に前記作業メモリに格納することによって、前記格納メモリ（４）に存在しかつ補正アルゴリズムを形成するマイクロ命令に基づいて、前記算術計算モジュール（７，７'）によって、前記変換されたデータを連続する演算ループに入るように処理し、前記補正処理から得られるデータを、前記オリジナルの設定点信号のデータのフォーマットと同一であるフォーマットを有するデータに変換し、補正された設定点信号の一部を形成することにあるプロセス。
【請求項１３】
前記ユニット（５）によるデータの前記処理は、少なくとも１つの畳込み演算を含み、それにより、直前のサイクル中に計算される少なくとも前記補正された設定点信号のデータが考慮される請求項１２に記載のプロセス。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
本発明は、信号処理の分野に関し、より詳細には、信号の補正に関する。
より具体的には、本発明の目的は、補正され、磁場グラジエントの発生のためのユニット内で使用されることを特に意図される設定点信号をリアルタイムに計算することを可能にするデジタルデバイスである。
【０００２】
磁場グラジエントは、一般に、核磁気共鳴(nuclear magnetic resonance)（ＮＭＲ）によるスペクトロメトリおよび磁気共鳴イメージング(magnetic resonance imaging)（ＭＲＩ）システムで使用される。
【０００３】
知られている方法では、グラジエントは、一定の主要な磁場を発生する磁石の内部に設置されるコイルによって生成される。これらのコイルは、電流増幅器によって制御され、電流増幅器の設定点は、通常、電圧で与えられ、一般に、パルス列からなる。
【０００４】
この設定点は、デジタルデバイスによって生成され、デジタルデバイスの入力は、プログラマブルパルス発生器を構成するシーケンススイッチであり、出力は、設定点電圧を提供するデジタル−アナログ変換段である。
【０００５】
パルス発生器は、スペクトロメータまたはイメージャによって実施される分析のタイプに基づいてプログラムされる。
添付された図１は、グラジエントの発生のためのシステムの異なる本質的な構成コンポーネントを示す。
【０００６】
こうしたシステムの一般的な構成は、添付された図２に示すように、３つの軸（Ｘ、Ｙ、およびＺ，Ｚは、主要な磁場と同一直線上である）に沿って磁場グラジエントを発生することを可能にする。
【０００７】
システムの他の構成もまた知られており、使用される。
グラジエントコイルの磁場の変動中に、コイルの外側にあり、この磁場を受ける導電性要素上に、渦電流が現れることも知られている。これらの電流は、グラジエントの磁場と対向する磁場を生成する。
【０００８】
たとえば、電流パルスが通過するグラジエントコイルを考慮することによって、このコイルによって生成される磁場のビルドアップ時間は、渦電流によって生成される磁場によって影響を受けることになる。この現象は、添付された図３に示される（グラジエントコイルによって発生する磁場に対する渦電流の影響の図）。
【０００９】
渦電流によって生成される磁場によるグラジエント磁場の劣化は、スペクトロメータまたはイメージャの性能に有害な影響を及ぼす。その結果、グラジエント磁場に対する渦電流の影響を最大限に低減することが必要である。
【００１０】
このため、反対磁場の影響を補償するために、電圧設定点に（たとえば、プレアクセンチュエーションタイプの)補正が適用されうる（添付された図４は、渦電流の影響のこうした補正を示す）。
【００１１】
こうした補正を行うために、現在までに提案されているデジタル的な解決策は、主に２つのタイプ、すなわち、完全にハードウェアの解決策（たとえば、状態機械に基づく）およびソフトウェアの解決策（たとえば、ＤＳＰ［デジタル信号プロセッサ］、信号処理マイクロプロセッサ上で使用される）である。
【００１２】
第１のタイプの解決策は、確実でかつ固定された実施態様をもたらし、第２のタイプの解決策は、制限された性能を受ける。
文献である米国特許第５，３４９，２９６号は、グラジエントコイルを供給し、各チャネルに固有の設定点信号を提供でき、適用される波プロファイルを記述する一連のコードから形成されるシステムを特に統合するＮＭＲイメージャを開示する。
【００１３】
この文献によれば、供給システムはまた、前もって指定されるという性質無しで、異なるチャネルに送出されるアナログ信号に作用し、かつ、予め規定されたパラメータを使用する、プリエンファシス補正のための手段を統合しうる。
【００１４】
そのため、これらの補正手段は、デジタルデータに作用せず、再帰演算による補正を行うことを可能にしない。
結果として、その性能が、前もって容易に評価されることができず、また、いずれにしても制限される、制限され完全に固定された補正方法になる。
【００１５】
本発明は、上述した解決策の制限の少なくとも一部および好ましくは全てを克服することを可能にする改善された解決策を提案するという目的を有する。
さらに、本発明によって提案される解決策は、２つのレベルで、すなわち、一方で、容易に修正可能な補正用のパラメータの使用を、手動でまたは自動的に可能にする同じタイプの補正処理用のレベル、また、他方で、デバイスのハードウェア構造の修正を必要とすることのなく、異なる性質の補正処理を実装するレベルで、使用の柔軟性を示すべきである。
【００１６】
さらに、本発明によって提案される解決策はまた、一方では、性能の良好な予測性を、他方では、簡単な構造および簡単な構成であるために実装されるハードウェア資源の使用の良好な管理を可能にすべきである。
【００１７】
このため、本発明は、提供される補正または補償のための因子または係数に基づいて、核磁気共鳴によるスペクトロメトリまたはイメージリーデバイスのグラジエントコイルの可変設定点または制御信号をリアルタイムに補正するデバイスを、その目的として有し、それにより、前記デバイスは、オリジナルのデジタル設定点信号を、入力で受信し、その後前記設定点信号の処理、送信、変換、および／または適用中に遭遇する欠陥、制限、乱れ、干渉、悪い影響などを補償するように修正された設定点信号を、出力で送出するように設計され、
デバイスは、
デバイスが、少なくとも１つの回路からなり、少なくとも1つの回路が、マイクロプログラム式構造に基づき、かつ、カウンタを形成するマイクロシーケンサと、マイクロ命令を格納するメモリと、少なくとも１つの作業メモリと組合わされた処理ユニットと、統合化算術計算モジュールとを本質的に備えるデジタルコンポーネントと共に働くいくつかのサブアセンブリかならなること、および、
提供される補正または補償のための因子または係数を考慮することによって、また、格納メモリにおいてマイクロシーケンサによってアドレス指定され、かつ、補正デバイスを構成し、実装される補正に基づいてプログラムされる異なる演算サブアセンブリの動作を制御する補正アルゴリズムを形成するマイクロ命令に従って、前記処理ユニットが、オリジナルのデジタル設定点信号のデータを修正することが可能でかつ修正するように設計されることを特徴とする。この補正デバイスのいくつかの用途が想定されうるが、より詳細には、その用途は、現在のところ、ＮＭＲ／ＭＲＩの状況における実装において経験されている。
【００１８】
そのため、本発明はまた、たとえばパルス列の形態のデジタル設定点信号の生成のための手段と、必要である場合、１つの方法に適する設定点信号の変換手段および増幅手段と、変換と増幅を組合せた手段、必要である場合、それぞれ対応する手段によって提供される増幅信号によって供給されるグラジエントの発生のための１つまたは複数のコイルとを本質的に備える磁場グラジエントの発生のためのシステムに関し、それにより、前記システムはまた、設定点信号のアナログ変換および増幅、また、必要である場合、設定点信号のデマルチプリケーションの前に、設定点信号を補正するデバイスを備え、システムは、補正デバイスが、上述したデバイスであることを特徴とする。
【００１９】
これらの異なるハードウェアおよびソフトウェア配置構成の実装から得られる補正プロセスは、上述したタイプの発生システムにおいてパルス発生器とデジタル−アナログ変換ステージとの間に挿入されるデジタルデバイスによって、磁場グラジエントの生成の状況で、リアルタイム補正を生成するためにある。
【００２０】
補正デバイスは、たとえば、非制限的な方法ではないが、設定点信号にプレアクセンチュエーションまたはプレディストーションを適用するために、ハイパスデジタルフィルタを実装しうる（添付図４を参照）。本発明によるデジタル補正デバイスは、以下で「補正器(corrector)」とも呼ばれるであろう。
【００２１】
提供されるのが有利である補正が、（たとえば、グラジエントコイルまたは増幅器の特性と関連して）パラメータ化されうるため、補正器によって実施される計算は、外部デバイスからもたらされる係数を考慮する。これらの係数は、オペレータによって手作業で、または、自動化デバイスによって入力されるパラメータに基づいて計算されうる。
【００２２】
それを使用することで、補正デバイスによって実装される補正係数を確定することが可能になる上述したパラメータは、たとえば、前もって行われ、かつ、渦電流の影響を扱うことを可能にする測定から確定されうる、または、測定の結果でありうる（たとえば、ＷＯ８９／０８８５２を参照）。
【００２３】
一旦セットされると、これらの係数は、システムのコンポーネントが変更されない限り、もはや変わらない。したがって、係数の計算は、補正器によって実施される演算と対照的に、リアルタイムの態様を扱わない。
【００２４】
しかし、パラメータの値は、ハードウェアおよび／または環境の変更に基づいて、ユーザ（プログラミング）によって、または、自動的に、容易に修正されうる。
さらに、その実施形態（マイクロプログラム式構造）を考慮して、補正器の処理の迅速性によって表現される性能は、印加されるクロック周波数に本質的に依存し、数百ナノ秒の処理サイクルが、容易に達成されうる。さらに、補正器の性能レベルは、前もって決定されうる。
【図面の簡単な説明】
【００２５】
【図１】グラジエントの発生のためのシステムの異なる本質的な構成コンポーネントを示す図である。
【図２】３つの軸（Ｘ、Ｙ、およびＺ，Ｚは、主要な磁場と同一直線上である）に沿って磁場グラジエントを発生することを可能にするシステムの一般的な構成を示す図である。
【図３】グラジエントコイルによって発生する磁場に対する渦電流の影響を示す図である。
【図４】設定点信号にプレアクセンチュエーションまたはプレディストーションを適用するために、ハイパスデジタルフィルタを実装しうる補正デバイスを示す図である。
【図５】本発明による、補正デバイスまたは補正器を統合する、磁場グラジエントの発生のためのシステムの概略ブロック図である。
【図６】本発明の一実施形態による、補正デバイスの構成を示すが概略図である。
【図７】図６のデバイスの一部であるマイクロシーケンサの異なる入力および出力信号を示す図である。
【図８】図６のデバイスの一部であるオペレーティングシステム[処理／作業メモリユニット]の概略ブロック図である。
【図９】図６のデバイスの一部であるマイクロ命令格納メモリの構成ならびにマイクロ命令の１ラインの構成および配置を示す図である。
【図１０】並列の３つのフィルタリングセルの形態の、図６のデバイスの用途を示す概略図である。
【図１１】データを格納し、図６に示す処理ユニットと組合わされるメモリまたはメモリゾーンの内容を示す概略図である。
【図１２】補正係数を格納し、図６に示す処理ユニットと組合わされるメモリまたはメモリゾーンの内容を示す概略図である。
【発明を実施するための形態】
【００２６】
本発明は、非制限的な実施例として提供され、また、添付略図を参照して説明される好ましい実施形態に関連する以下の説明によって、よりよく理解されるであろう。
添付図面の図６は、図７〜９に関連して、提供される補正または補償のための因子または係数に基づいて設定点または制御信号をリアルタイムに補正するための、特に、核磁気共鳴によるスペクトロメトリまたはイメージリーデバイスのグラジエントコイル２の制御を目的とした設定点信号を補正するためのデバイス１を示す。
【００２７】
こうしたデバイス１は、オリジナルのデジタル設定点信号を、入力で受信し、その後前記設定点信号の処理、送信、変換、および／または適用中に遭遇する欠陥、制限、乱れ、干渉、悪い影響などを補償するように修正されたまたは補正された設定点信号を、出力で送出するようにされる。
【００２８】
本発明によれば、前記補正デバイス１は、少なくとも１つの回路１'からなり、少なくとも1つの回路１'は、マイクロプログラム式構造に基づき、かつ、カウンタを形成するマイクロシーケンサ３と、マイクロ命令を格納するメモリ４と、少なくとも１つの作業メモリ６、６'と組合わされた処理ユニット５と、統合化算術計算モジュール７、７'とを本質的に備えるデジタルコンポーネントと共に働くいくつかのサブアセンブリ３、４、５、６、６'かならなり、提供される補正または補償のための因子または係数を考慮することによって、また、格納メモリ４においてマイクロシーケンサ３によってアドレス指定され、かつ、補正デバイス１を構成し、実装される補正に基づいてプログラムされる異なる演算サブアセンブリ３、５、６、６'の動作を制御する補正アルゴリズムを形成するマイクロ命令に従って、前記処理ユニット５は、オリジナルのデジタル設定点信号のデータを修正することが可能でかつ修正するようにされる。
【００２９】
本発明の第１の特徴によれば、前記デバイス１の入力レジスタ８および出力レジスタ８"におけるデータのシーケンシングならびにマイクロシーケンサのゼロへのリセット化は、同期信号ＳＹＮＣによって制御され、同期信号ＳＹＮＣの周期は、異なる構成サブアセンブリの動作を連結するクロック信号ＣＬＫの倍数である。
【００３０】
さらに、算術計算モジュールは、好ましくは、パイプライン（複数段で配列された送信ライン）からなる。
本発明の別の特徴によれば、作業メモリ６、６'は、適用される補正係数を格納するための少なくとも第１のメモリゾーン６、ならびに、補正される入力データ、算術計算モジュールによって実装される算術演算の中間結果、および補正された出力データに相当する最終結果、ならびに、必要である場合、１つまたは複数の先行する入力データを格納するための少なくとも第２のメモリゾーン６'を備える。
【００３１】
少なくとも２つの別個の格納ゾーン６および６'を備える単一作業メモリまたは２つの別個の作業メモリ６および６'が設けられうる。
本発明のさらなる特徴によれば、前記少なくとも１つの第２のメモリゾーン６'はまた、少なくとも１つの直前の補正サイクル中に生成される少なくとも１つの補正される設定点信号、たとえば、先行するサイクルの補正された設定点信号の１つまたは複数の出力データを格納することが可能であり、かつ、格納することを意図され、目下の補正された設定点信号は、計算モジュール７、７'によって実装される畳込み演算から得られる。
【００３２】
異なるサブアセンブリ、特に、メモリ６および６'ならびに計算モジュール７および７'の配置構成および相互接続は、したがって、デバイス１の再帰演算モードを可能にする。
先に説明した格納メモリ４および作業メモリ６、６'の予測は、デバイス１に大きな柔軟性を与える。実際には、これらのメモリは、
−リアルタイムでの補正係数または因子（メモリ６内の内容）の更新
−補正器１（算術ユニットなど）の基本構造を変更することなく、マイクロプログラム（メモリ4の内容）を更新することによる、補正器１によって実装される演算のタイプの修正を実施することを可能にする。
【００３３】
本発明の有利で実用的な実施態様と矛盾せず、また、添付図面の図８が示すように、処理ユニット５はまた、一方で、読出しポート１１によって作業メモリ６、６'から取出されるデータおよび係数を、実行されるマイクロ命令の基本制御信号に基づいて算術計算モジュール７、７'に供給する少なくとも１つのマルチプレクサ１０と任意選択で組合わされた、オペランドの送信のためのバス９、９'、他方で、少なくとも１つのデータ供給バス１２を備え、少なくとも１つのデータ供給バス１２は、第２のメモリまたはメモリゾーン６'の書込みポート１３および任意選択で１つの符合反転モジュール１３'に接続され、かつ、算術計算モジュール７、７'の出力、補正されるデータの入力レジスタ８、必要である場合、オペランドの送信のためのバス９，９'の少なくとも一方、任意選択で、ゼロ化レジスタに接続されるマルチプレクサ１４と上流で結合され、前記マルチプレクサ１４の状態はまた、実行されるマイクロ命令の基本制御信号に基づいて決定される。
【００３４】
処理ユニット５によって操作され、作業メモリ６、６'に格納されるデジタルデータの形式が、入力（ＤＡＴＡ−ＩＮ）または出力（ＤＡＴＡ−ＯＵＴ）におけるデジタルデータの形式の１つまたは複数と異なるとき、デバイス１はまた、入力および出力において、互いに逆変換するモジュール１５、１５'を備え、それにより、入力データおよび出力データが、たとえば、２の補数の符合化整数であることが実現されうる（図６）。
【００３５】
本発明の非常に好ましい実施形態と矛盾せず、２つの変換モジュール１５および１５'は、それぞれ、好ましくは、標準的なＩＥＥＥ７５４に従って、整数を倍精度浮動小数点６４ビット数に変換するモジュールおよび同様な逆変換モジュールからなる。その結果、デジタル設定点信号を、その補正処理の精度を促進する形式に変換しながら、送出される信号の性質を修正することなく（修正された設定点信号ならびにオリジナルの設定点信号は、デジタル形態のままになる）、また、前記信号の流れを乱すことなく（リアルタイム補正、補正システムは用途に適合する最小遅延を導入する）、補正デバイスまたは補正器１は、グラジエント発生システム内に容易に挿入されうる、または、嵌合されうる。
【００３６】
本発明は、より詳細には、線形構造の枠組内で述べ示されるが、複数の経路または大量のデータがある場合、補正デバイス１は、ベクトル構造を有することができ、また、並列に配列されるいくつかの回路１'を備えることができ、各回路は、機能群［マイクロシーケンサ３／格納メモリ４／処理ユニット５および作業メモリ６、６'］を統合化することを、当業者は容易に理解する。
【００３７】
図１０によってもたらされる本発明の考えられる用途によれば、デバイス１は、並列に配列される３つのフィルタリングセル１６を実装するようにプログラムされることができ、各セルは、好ましくは、１次のハイパスデジタルフィルタに相当する。
【００３８】
補正デバイス１は、使用の柔軟性が大きく、補正される信号、たとえば、増幅器設定点信号に種々のタイプの演算を実施するために使用されうる。その結果、たとえば、磁場グラジエントの発生用のシステム１７に関連する用途において、グラジエントの増幅器１９'の直線性欠陥を補正するために使用されることも可能である。
【００３９】
本発明はまた、上述したタイプのシステム１７に関し、上述したタイプのシステム１７は、添付図面の図５が示すように、たとえばパルス列の形態のデジタル設定点信号の生成のための手段１８、１８'と、設定点信号の変換手段１９および増幅手段１９'と、変換と増幅を連結した手段、必要である場合、それぞれ対応する手段によって提供される増幅信号によって供給されるグラジエントの発生のための１つまたは複数のコイル２とを本質的に備え、それにより、前記システムはまた、設定点信号のアナログ変換および増幅、また、必要である場合、設定点信号のデマルチプリケーションの前に、設定点信号を補正するデバイスを備える。
【００４０】
システム１７は、補正デバイスが上述したデバイス１であることを特徴とする。
システム１７は、有利には、いくつかの軸に沿うグラジエントの発生のためのシステムからなることができ、補正デバイス１は、各軸に関連する。
【００４１】
最後に、本発明はまた、提供される補正または補償のための因子または係数に基づいて、核磁気共鳴によるスペクトロメトリまたはイメージリーデバイスのグラジエントコイルの可変設定点または制御信号をリアルタイムに補正するプロセスに関し、それにより、このプロセスは、上述した少なくとも１つの補正デバイスを使用する。
【００４２】
このプロセスは、プロセスが、本質的に、各補正デバイス１のレベルで、グラジエントコイル用のオリジナルの設定点信号を共に形成する連続するデジタルデータを、ユニット５による処理に適するデータに変換し、作業メモリ６，６'内に存在する補正係数を考慮することによって、また、中間結果ならびに補正処理から得られるデータを同様に作業メモリに格納することによって、格納メモリ４に存在しかつ補正アルゴリズムを形成するマイクロ命令に基づいて、算術計算モジュール７，７'によって、前記変換されたデータを連続する演算ループに入るように処理し、補正処理から得られるデータを、オリジナルの設定点信号のデータのフォーマットと同一であるフォーマットを有するデータに変換し、補正された設定点信号の一部を形成することにあることを特徴とする。
【００４３】
好ましくは、ユニット５によるデータの処理は、少なくとも１つの畳込み演算を含み、それにより、直前のサイクル中に計算される少なくとも補正された設定点信号のデータが考慮される。本発明は、より詳細にかつ添付図面に関連して、実施例により以下で述べられるであろう。
【００４４】
図６は、補正デバイス１の異なる本質的な構成部分、すなわち、
−実行されるマクロコードのポインタまたは順序カウンタの増分を可能にするカウンタであるマイクロシーケンサ３、
−基本計算ユニットまたはモジュール７、７'ならびにデータ転送を可能にするマルチプレクサ１０、１４からなる処理ユニット５、
−目下の用途について確定される補正係数のメモリ６、
−処理ユニット５によって行われる計算の中間結果または最終結果を含むデータのメモリ６'、
−マイクロプログラムを構成するマイクロコードを含むマイクロコードメモリ４
を示す。マイクロ命令である各マイクロコードラインは、任意選択で、マイクロシーケンサ３、データメモリ６'および係数メモリ６（または、任意選択で、データおよび係数をそれぞれ含むゾーンに分割された単一メモリ）、ならびに、処理ユニット５を制御しうる。
【００４５】
補正器１の入力のデータは、有利には、２の補数の符合化整数であり、出力データもまた、２の補数の符合化整数であり、それにより、補正器１において効果的に処理されるデータは、異なる形式、たとえば、想定される処理により適する浮動小数点数である。
【００４６】
補正デバイス１のコンポーネントは全て、単一クロック（図６の信号ＣＬＫ）を使用して同期して動作する。デバイス１の入力および出力におけるデータの流れ（ＣＯＲＲＥＣＴＯＲ＿ＩＮおよびＣＯＲＲＥＣＴＯＲ＿ＯＵＴ）もまた、このクロックと同期する。
【００４７】
図６に示すデータレジスタ８および８'は、その周期が、クロック周期ＣＬＫで一定である整数に相当する同期信号（ＳＹＮＣ）に基づいてリフレッシュされる。同期信号の起動時間は、クロック周期に等しい。入力のデータと出力の補正データとの間の遅延は、同期信号の周期に相当する。マイクロシーケンサ３の始動もまた、この同期信号を条件とする。
【００４８】
マイクロシーケンサ３は、デバイスの信号によって制御されるカウンタからなる（図６および７を参照）。マイクロシーケンサ３の出力（ＯＵＴ）は、カウンタの目下の値に相当する。
【００４９】
前記マイクロシーケンサ３の制御信号は、次の通りである。
−ＲＳＴ：非同期初期化入力。この入力は、他の入力よりも優先される。起動されると、マイクロシーケンサ３は、再初期化される。すなわち、その出力は、初期状態（たとえば、ゼロ）に配置される。この入力は、たとえば、補正器の全体の初期化、チャージング中に使用される。
【００５０】
−ＣＬＫ：クロック入力。
−ＩＮ：（同期）検証入力。カウンタの出力は、この入力が検証される間、クロック周期ごとに１ステップだけ増分される。
【００５１】
−ＲＥＳＴＡＲＴ：（同期）リスタート入力。マイクロシーケンサ３は、この入力が起動されると、再初期化される。この入力は、入力ＩＮよりも優先される。換言すれば、入力ＩＮが非アクティブであるため、マイクロシーケンサ３が停止する場合、ＲＥＳＴＡＲＴの起動は、それでも、マイクロシーケンサ３を再初期化する。
【００５２】
マイクロシーケンサ３の出力は、マイクロコードを含むメモリ４をアドレス指定する。その結果、カウンタの目下の値は、順序カウンタに相当する。マイクロシーケンサ３のクロック入力（ＣＬＫ）は、補正デバイス１の全体のクロックに接続される。検証入力（ＩＮ）は、信号ＳＥＱ＿ＩＮを介してマイクロコードによって制御され、一方、リスタート入力は、デバイスの同期信号（図６のＳＹＮＣ）に接続される。したがって、順序回路は、計算が実施されると、マイクロコードによって停止されることができ、その後、引き続き起こるデータに関する計算を実施するために、同期信号によってリスタートされる（ＲＥＳＴＡＲＴ入力がＩＮよりも優先されることを思い起こされたい）。
【００５３】
処理ユニット５は、最適性能を保証しながら、最小のハードウェア資源を使用するように設計された。性能基準は、計算時間だけでなく、計算精度にも関連する。計算精度の考えは、２以上である次数の無限インパルス応答（ＩＩＲ）を有するデジタルフィルタを、補正器１が実装する場合に必須である（そして、丸め誤差がフィルタの不安定性をもたらしうる）。
【００５４】
良好な精度を保証するために、処理ユニット５は、有利には、標準的なＩＥＥＥ７５４（または、ＣＥＩ６０５５９）に対応する浮動小数点数を用いて計算を実施する。低い精度は、使用事例に応じて十分でありうる。そして、固定小数点数は、資源を節約するために使用されうる。
【００５５】
入力および出力のデータ（ＤＡＴＡ＿ＩＮおよびＤＡＴＡ＿ＯＵＴ）は、２の補数の符号化整数である。入力において、これらのデータは、浮動小数点数に変換され（変換器１５＝「Ｉｎｔ２Ｆｌｏａｔ」ブロック）、出力において、データは、整数に変換される（変換器１５'＝「Ｆｌｏａｔ２Ｉｎｔ」ブロック）。
【００５６】
揮発性（ＲＡＭタイプ）であるデータメモリ６'は、好ましくは、格納されたデータに対する３つの同時アクセス、３つの異なるアドレスを有する２つの読出しアクセスと１つの書込みアクセスを可能にする。
【００５７】
同様に揮発性である係数のメモリ６は、別個の読出しポートおよび書込みポート１１を特徴とし、それにより、書込みポートは、補正器１０の外側にあるデバイスから延びるバスに接続される（図５を参照）。
【００５８】
メモリライン（データまたは係数）の幅は、実際には、浮動小数点数のサイズ（たとえば、標準的なＩＥＥＥ７５４による、「倍精度(double-precision)」符合化形式である場合、６４ビット、または、「単精度(simple-precision)」符合化の場合、３２ビット)に相当する。データメモリ６'および係数メモリ６の深さは、使用される補正アルゴリズムのタイプに依存する。
【００５９】
データメモリ６'の読出しポート１１の１つおよび係数メモリ６の書込みポート１１は、オペランドバス９（Ａ−ＢＵＳ）に接続される。Ａ−ＢＵＳ上に位置するオペランドのソースは、マルチプレクサ１０を介して選択される。換言すれば、Ａ−ＢＵＳ上に位置するオペランドは、マルチプレクサ１０の状態に応じて、格納結果（ソース：データメモリ６'）または係数（ソース：係数メモリ６）でありうる。第２のオペランドバス９'（Ｂ−ＢＵＳ）は、データメモリ６'の他の読出しポート１１に直接接続される。
【００６０】
オペランドバス９（Ａ−ＢＵＳ）および９'（Ｂ−ＢＵＳ）は、浮動小数点数用の算術ユニットまたはモジュール７、７'、すなわち、加算器７および乗算器７'に供給される。Ｂ−ＢＵＳはまた、データを変換器１５'に送ることを可能にする[浮動小数点数／整数]。
【００６１】
Ｄ−ＢＵＳと呼ばれるバス１２は、データメモリの書込みポート１３に接続される。格納されるデータのソースを選択することを可能にするマルチプレクサ１４は、このバス上に設置される。このソースは、
−値０（この値はメモリラインを初期化することを可能にする）を含むレジスタ、
−浮動小数点数への整数の変換結果（変換器１５の出力）（このデータは、そのため、データメモリ６'に格納されうる）、
−バスＡ−ＢＵＳとＢ−ＢＵＳ（バス９および９'）のオペランドの乗算結果、
−バスＡ−ＢＵＳとＢ−ＢＵＳ（バス９および９'）のオペランドの加算結果
でありうる。
【００６２】
バス９（Ａ−ＢＵＳ）上に位置するオペランドは、データをデータメモリ６'内に移動させることを可能にする。
データメモリに設置される前に、値の符合が、任意選択で、変更されて、その反対符合が格納されうる。
【００６３】
述べるバス９、９'、１２の全ての幅は、浮動小数点数のサイズに相当することが留意されるであろう。
デバイス１の動作原理を変更することなく、バッファレジスタが、処理ユニット５の動作周波数を上げるために、メモリ６、６'のアクセスポート上に設置されうる。これは、パイプライン段を付加することと同等である。算術演算を実施するユニットまたはモジュール７および７'(加算器および乗算器）の動作はまた、送信ラインに基づく。必要な段数は、動作周波数および使用される技術に依存する。
【００６４】
さらに、計算を加速するために、処理は、容易にベクトル化されうる。このため、いくつかのサブアセンブリ[処理ユニット５／データおよび係数メモリ６、６']が、同じマイクロコードによって制御されながら、並列に設置されうる。
【００６５】
処理ユニット５ならびにデータおよび係数メモリ６、６'のコンポーネントの協調的かつ協働的動作は、マイクロ命令に含まれるフィールドに相当する制御信号によって調節される。
【００６６】
制御信号は、図８に示す例の場合、次の通りである。
−Ｄ＿ＳＥＬ：Ｄ−ＢＵＳ（バス１２）上に設置されるデータのソースの選択。
−ＮＥＧ＿ＳＥＬ：Ｄ−ＢＵＳ上に存在するデータの信号を反転することを可能にする、ユニット５の起動用の信号。
【００６７】
−Ｄ＿ＡＤＤＲ：データメモリ６'内のデータの書込みアドレス。
−Ｄ＿ＩＮ：データメモリ６'の書込みポート１３の検証信号。この信号がアクティブであるとき、Ｄ−ＢＵＳ（バス１２）上に存在するデータは、Ｄ＿ＡＤＤＲ（バス９）によって示されるアドレスにおいてデータメモリ６'に格納される。
【００６８】
−Ａ＿ＡＤＤＲ：第１の読出しポート１１についてのデータメモリ６'内のデータの読出しアドレス。
−Ｂ＿ＡＤＤＲ：データメモリ６'の第２の読出しポート１１についてのＡ＿ＡＤＤＲと同じアドレス。
【００６９】
−ＣＯＥＦＦ＿ＡＤＤＲ：係数メモリ６内のデータの読出しアドレス。
−Ａ＿ＳＥＬ：Ａ−ＢＵＳ（バス９）上に設置されるデータのソースの選択。
−ＯＵＴ＿ＩＮ：変換ユニット８'[浮動小数点数から整数]の結果を含むレジスタの検証信号。このデータは、処理ユニット５によって計算される最終結果に相当する。
【００７０】
マイクロコードメモリ４（マイクロ命令の格納メモリ）は、揮発性でなく、１回アクセスドアを有する。このメモリ４の各ラインは、マイクロ命令を含む。メモリ４のアドレスバスは、マイクロシーケンサ４の出力に相当する順序カウンタに接続され、一方、メモリ４のデータバスは、マイクロ命令を伝達する。メモリ４のサイズは、実装される補正アルゴリズムのタイプに依存する。ラインの数は、実行されるマイクロ命令の量に基づき、ラインのサイズは、アドレス指定されるデータおよび係数メモリのロケーションの量に関連する。
【００７１】
このマイクロコードメモリは、アルゴリズムのタイプを変更することによって、補正デバイス１の柔軟性を改善することが必要であることがわかる場合、揮発性でありうる。これは、前記補正器１の動作原理に影響を及ぼさない。
【００７２】
図９に示す実施例では、各マイクロ命令は、各フィールドが制御信号を含む固定フィールドの形態で符合化される。制御信号は、マイクロシーケンサ２の検証信号が付加される、先の章で挙げられた制御信号（ＳＥＱ＿ＩＮ）である。信号Ａ＿ＳＥＬ、Ａ＿ＡＤＤＲ、およびＣＯＥＦＦ＿ＡＤＤＲは、単一フィールド内に結合される。このフィールドのサイズは、Ａ＿ＡＤＤＲとＣＯＥＦＦ＿ＡＤＤＲとの間の最大のアドレスバスにＡ＿ＳＥＬ用の１ビットを足したバスのサイズに相当する。実際には、オペランドバスを通して、Ａ−ＢＵＳ（バス９）は、１度に１つのデータだけを送り、そのデータは、 データメモリ６'または係数メモリ６からやって来る。
【００７３】
以下では、補正デバイスまたは補正器１による機能の実施態様の非制限的な実施例が詳細に述べられるであろう。
以下で述べる実施例は、単一軸、したがって、(図５に示す）単一グラジエントコイル２および単一電流増幅器１９'を装備する、グラジエントの発生のためのシステム１７における補正器１の使用を示す。
【００７４】
より具体的には、補正器１は、述べる実施例において並列の３つのフィルタリングセル１６（図１０を参照）を実装する。
各セル１６は、１次のハイパスデジタルフィルタに相当する。この構成は、考えられる最良のグラジエント磁場を得るために、補正器１の６つのパラメータ（各セル１６の利得および時定数）に作用することを可能にする。
【００７５】
フィルタリングセル１６の伝達関数は、次の通りに決定されうる。
１）１次のハイパスデジタルフィルタのラプラス平面内の伝達関数：
【００７６】
【数１】
2011123052.tif 000003
【００７７】
ここで、
ｋは利得
τは時定数
２）ｚ平面内の伝達関数、双線形変換：
【００７８】
【数２】
2011123052.tif 000004
【００７９】
ここで、
ｆはサンプリング周波数であり、補正器１の枠組内で、同期信号ＳＹＮＣの周波数に相当する（図６を参照）。
【００８０】
３）ｚ平面内の伝達関数：
【００８１】
【数３】
2011123052.tif 000005
【００８２】
ここで、
【００８３】
【数４】
2011123052.tif 000006
【００８４】
【数５】
2011123052.tif 000007
【００８５】
４）時間領域への式（１）の変換：
【００８６】
【数６】
2011123052.tif 000008
【００８７】
５）図１０に示す補正器１の時間領域での伝達関数：
【００８８】
【数７】
2011123052.tif 000009
【００８９】
式（４）および（５）を使用することによって、
【００９０】
【数８】
2011123052.tif 000010
【００９１】
が得られる。
各係数対（Ａm；Ｂm）は、述べる実施例では、システム１７の入力パラメータである各セル１６の利得κmおよび時定数τmを考慮することによって、式（２）および（３）を使用して計算される。
【００９２】
項Ａ1、Ａ2、Ａ3、Ｂ1、Ｂ2、Ｂ3は、補正器１の係数によって特定されうる。利得および時定数に基づくこれらの項の計算は、リアルタイム態様を示さない。その結果、この計算は、補正器１の一部でない外部デバイス（図５の計算ユニット）によって実施されることができ、当業者の知識を考慮して、さらなる記述を必要としない。
【００９３】
システムの入力パラメータが、アナログフィールドにおける３つのセル１６の利得および時定数である場合、外部デバイスは、係数の計算中、双線形変換によってもたらされる周波数の歪を補償すべきである。
【００９４】
述べる実用的な実施例の枠組内で、その後、補正アルゴリズムの実施態様を実行することが必要である。
このアルゴリズムを実装するために、補正器１のコンポーネントが、以下の特性を有すると考えることが必要である。以下の特性とは、
−順序カウンタの初期値：０
−標準的なＩＥＥＥ７５４による拡張精度浮動小数点数（６４ビットは、符合部１ビット、指数部１１ビット、および仮数部５２ビットを含む)に関する計算
−ベクトル化処理無し：補正器１は、単一サブアセンブリ[処理ユニット５／データおよび係数メモリ６、６']からなる。
【００９５】
−浮動小数点数についての計算ユニットを構成するパイプラインの段数
−乗算器：５段の通信チャネル（パイプライン）
−加算器：７段の通信チャネル（パイプライン）
−バッファレジスタを装備するメモリ４、６、６'を読出すアクセスポート：アクセス中に１クロック周期の遅れ
−パイプラインステージ（通信チャネル）無しの、数字の形式変換器１５、１５'および
符合反転ユニット１３'
−Ｄ−ＢＵＳ（バス１２）に供給するマルチプレクサ１４の選択コード：
０００：０を含むレジスタ
００１：浮動小数点数への整数変換器１５の出力
０１０：マルチプレクサ７'の出力における結果
０１１：加算器７の出力における結果
１００：Ａ−ＢＵＳ（バス９）上に存在するデータ
−Ａ−ＢＵＳ（バス９）に供給するマルチプレクサ１０の選択コード：
０：データメモリ６'の第１の読出しポート１１
１：係数メモリ６の読出しポート１１
−マイクロ命令の構造：マイクロ命令は２０ビットで符合化され、フィールドは次の通りである：
ＳＥＱ＿ＩＮ：１ビット
ＯＵＴ＿ＩＮ：１ビット
ＮＥＧ＿ＩＮ：１ビット
Ｄ＿ＩＮ：１ビット
Ｄ＿ＡＤＤＥＲ：４ビット
Ａ＿ＳＥＬ：１ビット
Ａ＿ＡＤＤＲ／ＣＯＥＦＦ＿ＡＤＤＲ：４ビット
Ｂ＿ＡＤＤＲ：４ビット
Ｄ＿ＳＥＬ：３ビット
−マイクロコードメモリ４のサイズ：６１×２０ビット
−データメモリ６'のサイズ：１２×６４ビット
−係数メモリ６のサイズ：６×６４ビット
である。
【００９６】
図１１および図１２は、データメモリ６'および係数メモリ６の内容を示す。アドレスの表記は１６進数である。必要であるデータメモリの量を減らすために、同じラインは、アルゴリズムの実行の展開に基づいて異なるデータを含みうる。たとえば、アドレス８は、最初に、Ｂ3×ｙ3（ｎ−１）の乗算の結果を含み、その後、最終結果ｙ（ｎ）を含む。
【００９７】
以下の表は、述べる実施例のアルゴリズムに相当する連続する演算を含む（表の各ラインは、マイクロ命令、したがって、マイクロコードメモリの１ラインに相当する）。
【００９８】
【表１】
2011123052.tif 000011
【００９９】
【表２】
2011123052.tif 000012
【０１００】
本発明による補正デバイスの実用的な実施態様の（先に詳細に述べた１次のハイパスデジタルフィルタに対する）変形として、無限インパルス応答を有する２次の再帰型フィルタを実装することも可能であり、２次の再帰型フィルタのラプラス平面内の伝達関数は、次の通りに確立される。
【０１０１】
【数９】
2011123052.tif 000013
【０１０２】
上記は、時間領域において、以下の関数をもたらす。
【０１０３】
【数１０】
2011123052.tif 000014
【０１０４】
１次のフィルタの場合と同様に、係数ａおよびｂは、係数のメモリ６に格納され、それにより、サンプルｘ（フィルタの入力）およびｙ（フィルタの出力）は、データメモリ６'に格納される。
【０１０５】
もちろん、本発明は、添付図面において述べ示される実施形態に限定されない。特に、種々の要素の構成の観点から、または、均等物との置換技法によって、本発明の保護の範囲を超えることなく、変更が可能である。
【図１】
2011123052.tif 000015
【図２】
2011123052.tif 000016
【図３】
2011123052.tif 000017
【図４】
2011123052.tif 000018
【図５】
2011123052.tif 000019
【図６】
2011123052.tif 000020
【図７】
2011123052.tif 000021
【図８】
2011123052.tif 000022
【図９】
2011123052.tif 000023
【図１０】
2011123052.tif 000024
【図１１】
2011123052.tif 000025
【図１２】
2011123052.tif 000026
【外国語明細書】
1  Title of Invention
Device for Correcting Set-Point Signals and System for the Generation of Gradients Comprising Such a Device
2  Detailed Description of Invention
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.
Figure 1, attached, shows the different essential constituent components of a system for the generation of gradients.
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 Figure 2, attached.
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 Figure 3, attached (illustration of the effect of Foucault currents on the magnetic field that is generated by a gradient coil).
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 (Figure 4, attached, illustrates such a correction of the effects of
the Foucault currents).
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 US 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 Figure 4, attached).  The digital correction device
according to the invention will also be called "corrector" below.
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.
3  Brief description of Drawings
Figure 1 shows the different essential constituent components of a system for the generation of gradients.
Figure 2 shows 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).
Figure 3 illustrates the effect of Foucault currents on the magnetic field that
is generated by a gradient coil.
Figure 4 shows that the correction device can implement a high-pass digital filter so as to apply a pre-accentuation or a pre-distorsion to the set-point signal.
Figure 5 is a schematic block diagram of a system for the generation of magnetic
field gradients integrating a correction device or corrector according to the invention;
Figure 6 is a schematic diagram that illustrates the composition of a correction
device according to one embodiment of the invention;
Figure 7 diagrammatically illustrates the different input and output signals of a micro-sequencer that is part of the device of Figure 6;
Figure 8 is a schematic block diagram of an operating system [processing/working
memory unit] that is part of the device of Figure 6;
Figure 9 diagrammatically illustrates the composition of the micro-instructions storage memory that is part of the device of Figure 6, as well as the composition and arrangement of one line of micro-instructions,
Figure 10 is a schematic representation that illustrates an application of the device of Figure 6 in the form of three filtering cells in parallel, and
Figures 11 and 12 are schematic representations that illustrate the contents of memories or memory zones that respectively store data (Fig. 11) and the correction coefficients (Fig. 12) and are combined with the processing unit as shown in Figure 6.
4  Description of Embodiments
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.
Figure 6 of the accompanying drawings shows, in relation to Figures 7 to 9, a device 1 for real-time correction of set-point or control signals based on factors
or coefficients of correction or compensation that are provided, in particular,
for the correction of the set-point signals that are intended for the control of gradient coils 2 of a spectrometry or imagery device by nuclear magnetic resonance.
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 programm
ed 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:
-The updating of the correction coefficients or factors in real time
(contents of the memory 6),
-The modification of the type of operations implemented by the corrector 1 by updating the micro-program (contents of the memory 4) without modification of the basic structure of the corrector 1 (arithmetic units, etc.).
Consistent with an advantageous practical implementation of the invention, and as Figure 8 of the accompanying drawings illustrates it, the processing unit 5 also comprises, on the one hand, buses 9, 9' for transmission of operands, optionally combined with at least one multiplexer 10 that supplies the arithmetic calculation modules 7, 7', based on elementary control signals of the micro-instructions to be executed, with data and coefficients extracted from the working memory(ies) 6, 6' by means of read ports 11, and, on the other hand, at least one data
supply bus 12 connected to a write port 13 of the second memory or memory zone 6' and optionally to one sign inversion module 13', and combined upstream with a
multiplexer 14 that is connected to the outputs of the arithmetic calculation modules 7, 7', to the input register 8 of the datum to be corrected, if necessary
to at least one of the buses 9, 9' for transmission of operands, and optionally
to a zeroing register, the state of said multiplexer 14 also being determined by the elementary control signals of the micro-instructions to be executed.
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 (Fig. 6).
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 Figure 10, the device 1 can be programmed for implementing three filtering cells 16 that are arranged in parallel, each cell preferably corresponding to a high-pass digital filter of the first order.
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 Figure 5 of the accompanying drawings shows it, means 18,
18' for generation of a digital set-point signal, for example in the form of a train of pulses, means for conversion 19 and amplification 19' of the set-point signal and one or more coil(s) 2 for generation of gradients that are supplied by the amplified signal(s) provided by the associated 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.
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 imager
y 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.
Figure 6 illustrates the different essential constituent parts of the correction
device 1, namely:
-The micro-sequencer 3 that is a counter that makes possible the incrementation of the pointer, or ordinal counter, of the micro-code that is executed,
-The processing unit 5 that consists of basic calculating units or modules 7, 7' as well as multiplexers 10, 14 that make data transfer possible,
-The memory 6 of correction coefficients determined for the current application,
-The memory 6' of data that contains the intermediate or final results of calculations made by the processing unit 5,
-The micro-code memory 4 that contains the microcode that constitutes the micro-program.  Each micro-code line, which is a micro-instruction, can optionally control the micro-sequencer 3, the data memory 6' and the coefficient memory 6 (or optionally the single memory divided into zones respectively containing data and coefficients), and the processing unit 5.
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 Figure 6).  The stream of data at the input and output of device 1 (CORRECTOR_IN and CORRECTOR_OUT) is also synchronized with this clock.
The data registers 8 and 8', as shown in Figure 6, are refreshed based on a synchronization signal (SYNC) whose period corresponds to an integer that is constant in clock periods CLK.  The activation time of the synchronization signal is eq
ual to a clock period.  The delay between the data at the input and the corrected data at the output corresponds to the period of the synchronization signal.  The start-up of the micro-sequencer 3 is also conditional on this synchronization
signal.
The micro-sequencer 3 consists of a counter that is controlled by signals of the
device (see Figures 6 and 7).  The output (OUT) of the micro-sequencer 3 corresponds to the current value of the counter.
The control signals of said micro-sequencer 3 are as follows:
-RST:  Asynchronous initialization input.  This takes priority over the other inputs.  When activated, the micro-sequencer         3 is re-initialized, i.e., its output is positioned in the initial state (zero, for example).  This input is used during the overall initialization of the corrector, charging, for example.
-CLK:  Clock input.
-IN:  (Synchronous) validation input.  The output of the counter is incremented, by one step, at each clock period, while this input is validated.
-RESTART:  (Synchronous) restart input.  The micro-sequencer 3 is reinitialized when this input is activated.  This input has priority over the input IN.  In other words, if the micro-sequencer 3 is deactivated because the input IN is inactive, the activation of RESTART nevertheless reinitializes the micro-sequencer 3.
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 Figure 6).  The ordinal counter can therefore be stopped by the micro-code when the calculations have been performed, and then it is restarted (let us recall that the RESTART input has priority over IN) by the synchronization signal so as to perform the calculations on the following data.
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 Figure 5).
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:
-A register that contains the value 0; this makes it possible to initialize a memory line,
-The result of an integer conversion to a floating-comma number (output of the converter 15).  The input datum can thus be stored in the data memory 6',
-The result of the multiplication of the operands of buses A-BUS and
B-BUS (buses 9 and 9'),
-The result of the addition of the operands of buses A-BUS and B-BUS
(buses 9 and 9'),
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 t
hat correspond to fields that are contained in the micro-instructions.
The control signals are as follows for the example shown in Figure 8:
-D_SEL:  Selection of the source of data to be placed on D-BUS (bus 12).
-NEG_SEL:  Signal for activation of the unit 5, making it possible to reverse the signal of the datum that is present on D-BUS.
-D_ADDR:  Writing address of the data in the data memory 6'.
-D_IN:  Validation signal of the write port 13 of the data memory 6'.  When this signal is active, the datum that is present on D-BUS (bus 12) is stored in the data memory 6' at the address that is indicated by D_ADDR (bus 9).
-A_ADDR:  Reading address of the data in the data memory 6' for the first read port 11.
-B_ADDR:  The same as A_ADDR, for the second read port 11 of the data memory 6'.
-COEFF_ADDR:  Reading address of the data in the coefficient memory 6.
-A_SEL:  Selection of the source of data to be placed on A-BUS (bus 9).
-OUT_IN:  Validation signal of the register that contains the result
of the conversion unit 8' [floating-comma numbers to integers].  This datum corresponds to the final result that is calculated by the processing unit 5.
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 Figure 9, each micro-instruction is coded in the form of
fixed fields, each field containing a control signal.  The control signals are those enumerated in the preceding section to which is added the validation signal of the micro-sequencer 4 (SEQ_IN).  The signals A_SEL, A_ADDR, and COEFF_ADDR are combined in a single field.  The size of this field corresponds to the size of the largest address bus between A_ADDR and COEFF_ADDR, plus one bit for A_SEL.  Actually, through the operand bus, A-BUS (bus 9) passes only one datum at a time, which comes either from the data memory 6' or the coefficient memory 6.
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 Figure 5).
More specifically, the corrector 1 implements three filtering cells 16 in parallel in the example that is described (see Figure 10).
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:
2011123052.tif 000027
With:
2011123052.tif 000028
the gain
2011123052.tif 000029
the time constant
2)  Transfer function in the z plane, bilinear transformation:
2011123052.tif 000030
With:
2011123052.tif 000031
the sampling frequency, which within the framework of the corrector 1 corresponds to the frequency of the synchronization signal SYNC (see Figure 6).
3)  Transfer function in the z plane:
2011123052.tif 000032
4)  Transposition of the equation (1) into the temporal domain:
2011123052.tif 000033
5)  Transfer function in the temporal domain of the corrector 1 that is shown in
Figure 10 is:
2011123052.tif 000034
By using the equation (4) with (5), we obtain:
2011123052.tif 000035
Each pair of coefficients
2011123052.tif 000036
is calculated using the equations (2) and (3) by taking into consideration the gain
2011123052.tif 000037
and the time constant
2011123052.tif 000038
of each cell 16 that, in the example described, are the input parameters of the system 17.
The terms
2011123052.tif 000039
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 Figure 5) and does not require an additional description, taking account of the knowledge of one skilled in the art.
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:
-Initial value of the ordinal counter: 0
-Calculations on the extended-precision floating-comma numbers according to the standard IEEE 754 (64 bits including 1 sign bit, 11 exponent
bits, and 52 mantissa bits).
-No vectored processing:  the corrector 1 consists of a single subassembly [processing unit 5/data and coefficient memories 6, 6'].
-Number of pipeline stages constituting the calculation units  per floating-comma numbers:
-Multiplier:  Five stages of communication channels (pipeline)
-Adder:  Seven stages of communication channels (pipeline)
-Access ports for reading memories 4, 6, 6' equipped with buffer registers: latency of one clock period during an access.
-Format converters of numbers 15, 15' and sign inversion unit 13' without a pipeline stage (communication channels).
-Selection codes of the multiplexer 14 supplying D-BUS (bus 12):
000:  Register containing 0
001:  Output of the integer converter 15 to floating-comma numbers
010:  Result at the output of the multiplier 7'
011:  Result at the output of the adder 7
100:  Datum present on A-BUS (bus 9)
-Selection codes of the multiplexer 10 supplying A-BUS (bus 9):
0:  First read port 11 of the data memory 6'
1:  Read port 11 of the coefficient memory 6
-Structure of micro-instructions:  A micro-instruction is coded on 20 bits; the
fields are as follows:
SEQ_IN : 1 bit
OUT_IN : 1 bit
NEG_IN : 1 bit
D_IN :  1 bit
D_ADDR : 4 bits
A_SEL : 1 bit
A_ADDR/COEFF_ADDR : 4 bits
B_ADDR : 4 bits
D_SEL : 3 bits
-Size of the micro-code memory 4 : 61 x 20 bits
-Size of the data memory 6 : 12 x 64 bits
-Size of the coefficient memory 6 : 6 x 64 bits
Figures 11 and 12 show the contents of the data memory 6' and the coefficient memory 6.  The notation of the addresses is hexadecimal.  So as to reduce the quantity of data memory that is necessary, the same line can contain different data based on the evolution of the execution of the algorithm:  the address 8, for example, first contains the result of the multiplication of
2011123052.tif 000040
by
2011123052.tif 000041
, and then the final result
2011123052.tif 000042
.
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).
2011123052.tif 000043
2011123052.tif 000044
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:
2011123052.tif 000045
which, in the temporal domain, leads to the following function:
2011123052.tif 000046
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.
1.  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 intended 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 (1) characterized
in that it consists of at least one circuit (1') that is based on a microprogrammed structure and composed of several subassemblies (3, 4, 5, 6, 6') that work with digital components essentially comprising a micro-sequencer (3) forming a counter, a memory (4) for storing micro-instructions, and a processing unit (5) combined with at least one working memory (6, 6') and integrating arithmetic calculation modules (7, 7'), and
in that said processing unit (5) is capable of and intended 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 (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.
2.  Device according to Claim 1, wherein 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 (3, 4, 5, 6, 6') and
wherein the arithmetic calculation modules (7, 7') consist of pipelines.
3.  Device according to any of Claims 1 and 2, wherein the working memory(ies) (6, 6') comprise(s) at least a first memory zone (6) that is designed to store the correction coefficients that are to be applied and at least a second memory zone (6') that is designed to store the input data 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 data, as
well as, if necessary, one or more preceding input datum/data.
4.  Device according to Claim 3, wherein 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
wherein the current corrected set-point signal results from a convolution operation that is implemented by means of the calculation modules (7, 7').
5.  Device according to any of Claims 1 to 4, wherein the processing unit (5) also comprises, on the one hand, buses (9, 9') for transmission of operands, optionally combined with at least one multiplexer (10) that supplies the arithmetic calculation modules (7, 7'), based on elementary control signals of the micro-instructions to be executed, with data and coefficients extracted from the working memory(ies) (6, 6') by means of read ports (11), and, on the other hand, at least one data supply bus (12) connected to a write port (13) of the second memory or memory zone (6') and optionally to one sign inversion module (13'), and combin
ed upstream with a multiplexer (14) that is connected to the outputs of the arithmetic calculation modules (7, 7'), to the input register (8) of the datum to be
corrected, if necessary to at least one of the buses (9, 9') for transmission of operands, and optionally to a zeroing register, the state of said multiplexer (14) also being determined by the elementary control signals of the micro-instructions to be executed.
6.  Device according to any of Claims 1 to 5, wherein it 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.
7.  Device according to Claim 6, wherein 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.
8.  Device according to any of Claims 1 to 7, wherein it has a vectorial structure and comprises 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')].
9.  Device according to any of Claims 1 to 8, wherein it is programmed to implement three filtering cells (16) that are arranged in parallel, each cell preferably corresponding to a high-pass digital filter of the first order.
10.  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, 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 (1) according to any one of Claims 1 to 9.
11.  System according to Claim 10, wherein it consists of a system for the generation of gradients along several axes, whereby a correction device (1) is associated with each axis.
12.  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 according to any one of Claims 1 to 9,
process wherein 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.
13.  Process according to Claim 12, wherein 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. 
1  Abstract
This invention relates to a device for real-time correction of set-point signals
that is intended to receive at the input set-point signals and to deliver at its output set-point signals that are modified to compensate for defects, negative
effects or the like subsequently encountered during the processing and/or the application of said set-point signals. 
This device (1) is characterized in that it consists of at least one circuit (1') that is based on a microprogrammed structure and composed of several subassemblies (3, 4, 5, 6, 6') that work with digital components essentially comprising a
micro-sequencer (3) forming a counter, a memory (4) for storing micro-instructions, and a processing unit (5) combined with at least one working memory (6, 6')
and integrating arithmetic calculation modules (7, 7'), whereby said processing
unit (5) modifies the data of set-point signals in accordance with the micro-instructions that are addressed by the micro-sequencer (3) and by taking into account the correction coefficients that are provided.
2  Representative Drawing
Fig. 6
【図１】
2011123052.tif 000047
【図２】
2011123052.tif 000048
【図３】
2011123052.tif 000049
【図４】
2011123052.tif 000050
【図５】
2011123052.tif 000051
【図６】
2011123052.tif 000052
【図７】
2011123052.tif 000053
【図８】
2011123052.tif 000054
【図９】
2011123052.tif 000055
【図１０】
2011123052.tif 000056
【図１１】
2011123052.tif 000057
【図１２】
2011123052.tif 000058