CN100595771C - 一种图形化的核磁共振脉冲序列编译器 - Google Patents
一种图形化的核磁共振脉冲序列编译器 Download PDFInfo
- Publication number
- CN100595771C CN100595771C CN200310122984A CN200310122984A CN100595771C CN 100595771 C CN100595771 C CN 100595771C CN 200310122984 A CN200310122984 A CN 200310122984A CN 200310122984 A CN200310122984 A CN 200310122984A CN 100595771 C CN100595771 C CN 100595771C
- Authority
- CN
- China
- Prior art keywords
- magnetic resonance
- pulse sequence
- nuclear magnetic
- event type
- gradient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Magnetic Resonance Imaging Apparatus (AREA)
Abstract
本发明涉及核磁共振技术,具体而言是涉及一种图形化的核磁共振脉冲序列编译器,可供用户方便地编辑核磁共振脉冲序列,本编译器明主要包括图形编辑模块和编译模块两大部分,编译模块包括语法检查和代码生成模块,其中图形编辑模块采用了图形化的界面编辑脉冲序列,编译模块采用了分步编译模式,其优点是编写脉冲序列非常直观、易于使用,大大降低了对用户编程能力的要求,可以编辑复杂的脉冲序列,具有相当的灵活性,且与硬件的耦合度降低,便于升级和维护。
Description
技术领域
本发明涉及核磁共振技术,具体而言是涉及一种图形化的核磁共振脉冲序列编译器,可供用户方便地编辑核磁共振脉冲序列。
背景技术
核磁共振技术借助于丰富多彩的实验手段而在许多领域中得以广泛应用,而各种不同实验方法的主要区别在于所采用的脉冲序列上。可以说,功能强大和使用方便的脉冲序列编译器是现代核磁共振谱仪所必备的。目前核磁共振谱仪的脉冲序列编译器的输入大都以文本方式实现的,比较典型的有Bruker公司和英国Resonance Instruments公司的脉冲序列编译器。Bruker公司的脉冲序列编译器采用了自定义的语法格式,编辑器直接利用了Windows自带的记事本。用户需按照它的语法格式在记事本中编写脉冲程序,等到脉冲序列执行时才编译脉冲序列程序。英国Resonance Instruments公司的脉冲序列编译器利用了Pascal编译器进行编译,用户编写脉冲序列时需要调用事先定义的全局变量和函数,编写完脉冲序列以后通过Pascal编译器编译生成exe文件。运行脉冲序列时需要在采样程序中调入这个exe文件。虽然以文本方式实现的脉冲序列编译器具有控制灵活、支持表达式编译等优点,但也存在如下不足之处:1、采用文本方式编写脉冲序列不太直观,对用户要求比较高,需要用户具备一定的编程能力;2、用户查看脉冲序列时需要阅读源码,比较复杂。
发明内容
本发明的目的是根据上述产品的不足之处,提供了一种图形化的核磁共振脉冲序列编译器,用户无需具备一定的编程能力就可以方便、直观地编辑脉冲序列。
为了实现上述目的,本发明采用了如下技术方案:
本发明主要包括图形编辑模块和编译模块两大部分,编译模块包括语法检查和代码生成模块,其中图形编辑模块采用了图形化的界面编辑脉冲序列,所述的脉冲序列指的是常规的核磁共振序列或者是磁共振成像序列。编译模块采用了分步编译模式,第一步编译是在本发明程序中完成的,即对图形编辑器上的事件逐列进行编译,生成一个有许多事件值标识符组成的中间代码文件。第二步编译过程在主采样程序中完成的,即编译脉冲序列时首先要调入第一步编译过程中生成的中间代码文件,调入的中间代码文件需要与第二步中参数管理器中用户输入的参数结合起来进一步编译,生成匹配硬件结构的数据列表,直接输入到硬件中执行脉冲序列。
本发明对于其上的某一列事件的延时时间支持表达式输入;对于具有列表的事件类型支持列表指针的任意移动。
本发明与现有技术相比具有下列优点:
1、采用本发明,与常规文本式的编译器相比,编写脉冲序列非常直观、易于使用,大大降低了对用户编程能力的要求。
2、本发明兼有常规文本编译器的优点,比如支持表达式编译功能,支持列表指针的任意移动等等,因此可以编辑复杂的脉冲序列,具有相当的灵活性。
3、采用了两步编译模式,使得本发明与硬件的耦合度降低,便于升级和维护。
附图概述
附图1为本发明的主界面;
附图2为利用本发明编辑的CPMG脉冲序列;
附图3为利用发明编辑的快速自旋回波成像序列;
具体实施方式
以下结合附图通过实例对本发明特征及其它相关特征作进一步详细说明,以便于同行业技术人员的理解:
如图1-3所示,编辑模块采用了图形化的界面编辑脉冲序列,用户只需在需要设置的事件类型上单击鼠标右键选择相应的事件值标识符即可。为了使本发明能具有文本编译器灵活性的特点,对图形化的脉冲序列编译器的某些部分作了加强,比如对于本发明上的某一列事件的延时时间支持表达式输入;对于具有列表的事件类型支持列表指针的任意移动。
编译模块主要把用户在编辑器上编辑的脉冲序列事件编译成匹配硬件结构的数据列表。为了降低与硬件的耦合度,编译器部分采用了分步编译模式,第一步编译是在本发明程序中完成的,生成一个有许多事件值标识符组成的中间代码文件。第二步编译过程在主采样程序中完成,编译脉冲序列时首先要调入第一步编译过程中生成的中间代码文件,调入的中间代码文件需要与参数管理器中用户输入的参数结合起来进一步编译,生成匹配硬件结构的数据列表,直接输入到硬件中执行脉冲序列。
实施例:
本实施例主要包括两大模块:具有图形编辑功能的编辑模块和编译模块(包括语法检查和代码生成模块)。
图形编辑模块主要供用户编辑脉冲序列,主界面如图1所示。图形编辑模块界面部分采用行列表示,图中的列代表事件,通常一个脉冲序列由若干个事件组成,而每个事件又由不同的事件类型组成,图形编辑模块上画有横线的行代表不同的事件类型。本实施例的设计目标是不仅可以编辑常规的核磁共振序列,而且也支持编辑磁共振成像序列,因此编辑模块上的事件类型必须要支持这两种类型的脉冲序列。
在图形编辑模块上可供选用的事件类型主要包括两个射频通道(可扩展至两个以上射频通道,一般不超过八个)的事件类型、三路梯度(包括选片梯度、读梯度和相位编码梯度)的事件类型、采样事件类型以及若干个自定义事件类型等。每一路射频通道的事件类型主要包括改变射频的幅度、改变射频的频率、改变射频的相位、产生射频波形和开关射频门控等5种事件类型;每一路梯度的事件类型主要包括改变梯度幅度、产生梯度相位编码列表和产生梯度波形等3种事件类型;自定义事件类型可根据实际需要选用。
用户编辑脉冲序列时只需在相应的事件类型上单击鼠标右键选择相应的事件值标识符即可,选中该事件值标识符表示要执行该事件类型,执行参数由事件值标识符确定。事件值标识符主要有三种形式,第一种是代表某一个变量的事件值标识符,如“RF1A0”代表RF1的幅度参数;第二种是代表某一个列表(一个列表由许多事件值组成)的事件值标示符,如“GP0(1)”表示使用GP0列表,同时使GP0列表的指针下移一个;第三种是代表某一波形的事件值标识符,如“GSH1”表示某一梯度波形。
在本实施例程序中支持三种列表,主要是频率列表,相位列表和梯度相位编码列表,在列表中支持指针任意移动,因此能编辑一些复杂的脉冲序列,具有一定的灵活性。编辑模块的行部分除了表示事件类型的行外,在图形编辑模块的顶部还包含“Name”行和“Delay”行。“Name”行用于标识每一列事件的事件名,起注释作用。“Delay”行用于描述每一列事件对应的延时,主要采用标识符表示延时。可供选用的标识符主要有P0-P31、D0-D31、VD、VP、ACQ等。用户也可直接输入实际延时时间,如1u(代表1us)。“Delay”行支持表达式(规定的标识符与数字通过运算符的组合)输入,如P1*0.3等。
给出的利用本实施例编辑的核磁共振谱序列和成像序列见图2、3,图2为利用实施例编辑的CPMG脉冲序列,图3为快速自旋回波成像序列。
编译模块是本实施例程序的核心模块。本实施例采取两步编译模式,第一步编译过程直接在本实施例程序中完成,主要生成一些由事件值标识符组成的中间代码文件。第二步编译是在采样程序中进行,主要是把第一步编译过程中生成的事件值标识符与具体的输入参数联系起来进一步编译,生成匹配硬件结构的数据列表。采用两步编译模式的好处主要是为了降低本实施例与硬件的耦合性,便于升级和维护。
第一步编译过程最终生成一个事件信息表,两个射频信息表、三个梯度信息表以及其他一些附加信息,每个信息表中包含了事件值标识符。脉冲序列一般都可表示成事件和相应的延时,因此事件信息表中主要包括触发事件值和相应的延时时间标识符等;每个射频信息表中包含射频的幅度、频率、相位和波形等信息;梯度信息表中包含梯度的幅度、梯度相位编码列表和梯度波形等信息。事件信息表中触发事件值的每一位代表一个硬件触发事件,一个硬件触发事件一般对应图形编辑模块上一个或几个事件类型,比如图形编辑模块上改变射频的幅度、频率和相位这三个事件类型对应于一个硬件触发事件。图形编辑模块上的事件类型翻译成硬件触发事件时一般可分成三种类型处理:高电平事件类型、上升沿触发事件类型和波形触发事件。对于高电平事件类型在该事件的Delay期间始终置高电平;而对于上升沿触发的事件类型在该事件的前半个Delay期间置高电平,后半个Delay期间置低电平(为下次上升沿触发作准备);对于波形触发事件,在事件信息表中只填入波形标识符,等到第二步编译时再结合具体的波形点数进行编译。
编译以前首先要进行语法检查,语法检查主要检查表达式中或标识符中是否包含非法标识符,循环标识符是否匹配等项目。语法检查以后,在没有语法错误的情况下才开始进行编译。具体编译时把图形编辑模块上用户设置的所有事件逐列进行编译,即把每一列上的所有事件类型按照一定的规则编译成事件信息表中对应的触发事件值,同时把这列事件对应的延时时间填入事件信息表中的延时时间变量中。如果该列上有用户设置的射频事件,则把相应的射频信息填入射频信息表;如果有梯度事件,则把梯度信息填入梯度信息表。本实施例支持循环事件,因此在每个信息表中还包含相应的循环信息标识符。编译完成之后就把上述的几个信息表存入文件,生成一个中间代码文件供第二次编译时使用。
第二步编译过程是在采样程序中完成的,编译时与具体硬件相关。在采样程序中专门有一个参数管理器模块对所有的输入参数进行统一管理。编译脉冲序列时首先需要导入第一次编译过程中生成的中间代码文件,然后把中间代码文件中的事件值标识符与参数管理器中对应的参数结合起来进一步编译。对于事件信息表,由于延时中包含文本表达式,因此首先要进行表达式编译,结合用户输入的参数转换成具体的延时值。事件信息表中有一部分事件触发值(高电平事件和上升沿触发事件)已经第一步编译过程中编译好了,对于波形事件还需根据用户实际的波形点数转换成具体的触发波形事件值(依赖具体的硬件实现方式)。经过编译以后,事件信息表中的信息被翻译成包含触发事件值及其相应的事件延时值的一个数据列表。射频信息表中的事件值标识符结合相应的参数被翻译成包含射频的幅度、频率和相位的一个数据列表。同样梯度信息表被翻译成包含梯度幅度的一个数据列表。由于每个信息表在第一步编译时包含了循环标识符,还没有被展开,因此第二步编译时需要根据实际输入的循环次数对上述数据列表进行展开,最终生成执行该脉冲序列所必需的全部数据。
Claims (6)
1、一种图形化的核磁共振脉冲序列编译器,其特征在于主要包括图形编辑模块和编译模块两大部分,编译模块包括语法检查和代码生成模块,所述的图形编辑模块采用了图形化的界面编辑脉冲序列,所述的脉冲序列指的是常规的核磁共振序列或者是磁共振成像序列,所述的编译模块采用了分步编译模式,第一步编译是在图形化的核磁共振脉冲序列编译器程序中完成的,即对图形编辑器上的事件逐列进行编译,生成一个有许多事件值标识符组成的中间代码文件;第二步编译过程在主采样程序中完成的,即编译脉冲序列时首先要调入第一步编译过程中生成的中间代码文件,调入的中间代码文件需要与第二步中参数管理器中用户输入的参数结合起来进一步编译,生成匹配硬件结构的数据列表,直接输入到硬件中执行脉冲序列。
2、根据权利要求1所述的一种图形化的核磁共振脉冲序列编译器,其特征在于该脉冲序列编译器对于某一列事件的延时时间支持表达式输入;对于具有列表的事件类型支持列表指针的任意移动。
3、根据权利要求1所述的一种图形化的核磁共振脉冲序列编译器,其特征在于在图形编辑模块上可供选用的事件类型主要包括2-8路射频通道的事件类型、三路梯度即包括选片梯度、读梯度和相位编码梯度的事件类型、采样事件类型以及若干个自定义事件类型。
4、根据权利要求3所述的一种图形化的核磁共振脉冲序列编译器,其特征在于在图形编辑模块上可供选用的事件类型主要包括2路射频通道的事件类型。
5、根据权利要求3所述的一种图形化的核磁共振脉冲序列编译器,其特征在于每一路射频通道的事件类型主要包括改变射频的幅度、改变射频的频率、改变射频的相位、产生射频波形和开关射频门控5种事件类型。
6、根据权利要求3所述的一种图形化的核磁共振脉冲序列编译器,其特征在于每一路梯度的事件类型主要包括改变梯度幅度、产生梯度相位编码列表和产生梯度波形等3种事件类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200310122984A CN100595771C (zh) | 2003-12-30 | 2003-12-30 | 一种图形化的核磁共振脉冲序列编译器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200310122984A CN100595771C (zh) | 2003-12-30 | 2003-12-30 | 一种图形化的核磁共振脉冲序列编译器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1556492A CN1556492A (zh) | 2004-12-22 |
CN100595771C true CN100595771C (zh) | 2010-03-24 |
Family
ID=34338855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200310122984A Expired - Fee Related CN100595771C (zh) | 2003-12-30 | 2003-12-30 | 一种图形化的核磁共振脉冲序列编译器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100595771C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109462385B (zh) * | 2018-10-26 | 2021-01-19 | 西安交通大学 | 一种高压脉冲参数编译的装置和方法 |
CN111429552B (zh) * | 2020-03-20 | 2023-08-08 | 上海御渡半导体科技有限公司 | 一种基于鼠标的快速波形编辑方法 |
CN114814686B (zh) * | 2021-06-17 | 2022-11-22 | 中国科学院精密测量科学与技术创新研究院 | 一种核磁共振脉冲序列表示方法 |
-
2003
- 2003-12-30 CN CN200310122984A patent/CN100595771C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1556492A (zh) | 2004-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101098200B (zh) | 一种实现可定制测试流程的方法 | |
US6675339B1 (en) | Single platform electronic tester | |
CN102597964A (zh) | 用于启用并行测试的计算装置 | |
CN103530223A (zh) | 一种自动生成单元测试用例的方法及装置 | |
CN105653245A (zh) | 代码自动生成系统、装置及方法 | |
CN101499063A (zh) | 基于跟踪的数据库模式演进方法及系统 | |
CN101794299A (zh) | 一种历史数据管理的增量定义、处理方法 | |
CN100595771C (zh) | 一种图形化的核磁共振脉冲序列编译器 | |
CN104503767A (zh) | 基于lin协议的代码自动生成系统及方法 | |
TWI402705B (zh) | 積體電路元件之模擬實例產生方法與裝置 | |
Yang et al. | MetaCore: An application-specific programmable DSP development system | |
KR102179508B1 (ko) | 자동화 시험장비의 운용 시스템 | |
CN111460759A (zh) | 一种基于Python语言的EDA验证平台及其使用方法 | |
US9753835B2 (en) | Debugging parallel graphical program code | |
CN115391174A (zh) | 一种自动化软件测试平台 | |
CN108446087A (zh) | 数据流显示方法、装置、电子设备以及存储介质 | |
CN101017513A (zh) | 集成电路元件的模拟实例产生方法与装置 | |
RU2364930C2 (ru) | Способ генерации баз знаний для систем верификации программного обеспечения распределенных вычислительных комплексов и устройство для его реализации | |
CN220913900U (zh) | 一种音频信号识别分离系统 | |
Leupers et al. | An executable intermediate representation for retargetable compilation and high-level code optimization | |
CN109359046B (zh) | 一种多通道射频信号测量系统控制代码生成装置及方法 | |
US8117099B1 (en) | Billing systems conversions | |
Brandolese et al. | Parsing SystemC: an open-source, easy-to-extend parser | |
Vitale et al. | A Matlab based framework for the real-time environment at FTU | |
SU985793A1 (ru) | Устройство дл преобразовани кодов с одного зыка на другой |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100324 Termination date: 20121230 |