首页 / 专利库 / 信号处理 / 线性滤波器 / 具有可调数字预加重的磁共振梯度波形产生系统及方法

具有可调数字预加重的磁共振梯度波形产生系统及方法

阅读:195发布:2024-02-13

专利汇可以提供具有可调数字预加重的磁共振梯度波形产生系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 具有可调数字预加重的磁共振梯度 波形 产生系统及方法,具有FPGA和三维 数模转换 器,其中,FPGA接收磁共振扫描序列编译器发送来的与梯度相关的消息队列,并对这些消息队列进行处理,形成能够满足线性变化的、斜坡步数可任意设置的、能够对梯度 涡流 效应进行有效补偿的三维梯度脉冲数字波形 信号 ;上述信号经过三维 数模转换器 生成三维梯度脉冲模拟波形信号;方法为:接收磁共振扫描序列编译器的消息队列;对上述消息队列进行梯度事件属性识别得到不同梯度事件属性执行相应的处理操作,得到具有可调数字预加重的梯度波形数据;根据上述梯度波形数据产生梯度波形。本发明以FPGA为 硬件 载体,使得梯度波形信号的控制更具实时性,可得到任意梯度斜坡特征和梯度预加重特征的梯度波形。,下面是具有可调数字预加重的磁共振梯度波形产生系统及方法专利的具体信息内容。

1.一种具有可调数字预加重的磁共振梯度波形产生系统,其特征在于:具有FPGA和三维数模转换器,其中,FPGA接收磁共振扫描序列编译器发送来的与梯度相关的消息队列,并对这些消息队列进行处理,形成能够满足线性变化的、斜坡步数可任意设置的、能够对梯度涡流效应进行有效补偿的三维梯度脉冲数字波形信号;上述三维梯度脉冲数字波形信号经过三维数模转换器生成三维梯度脉冲模拟波形信号,用于为被测体的每个体素提供空间定位的三维梯度场。
2.按权利要求1所述的具有可调数字预加重的磁共振梯度波形产生系统,其特征在于:所述FPGA包括消息接收器、消息传递通道、梯度事件识别器、梯度事件并行处理器、梯度波形数据源选择器、数据传输通道、梯度波形合成器、I/O状态控制与梯度波形数据提取器以及状态信息缓存器,其中:
消息接收器,由消息缓存器和消息传输通道组成,用于接收和缓存来自磁共振扫描序列编译器发送来的与梯度事件相关的消息队列,经过消息传输通道,将所接收到的含有上述消息的消息队列送入梯度事件识别器;
梯度事件识别器,根据消息接收器输出的消息队列中的梯度事件标签属性,从消息队列中识别出梯度事件的不同属性,并将相应的梯度事件标签(Tag)的属性内容送入梯度事件并行处理器;
梯度事件并行处理器,并行地执行由梯度事件识别器识别出的不同属性梯度事件;并根据事件的不同属性,进行状态标识设定操作和执行数学计算操作,并将计算得到特征数据缓存到对应的梯度波形特征数据存储器中;
梯度波形数据源选择器,根据扫描序列对梯度脉冲波形的需要,从梯度事件并行处理器对应的梯度波形特征数据存储器中输出的梯度斜坡波形特征数据、具有预加重的梯度斜坡波形特征数据以及具有预加重的梯度指数波形特征数据中,选出梯度波形所需要的特性波形数据,经数据传输通道,送入梯度波形合成器中;
梯度波形合成器,由数据传输通道和梯度波形数据池构成,按照来自消息接收器中的梯度波形控制指令,将梯度波形数据源选择器所选定出的梯度波形特征数据,填充到用于三维数模转换器输出的梯度波形数据列表中,形成梯度波形数据池;
I/O状态控制与梯度波形数据提取器,用于监视外部设备的工作状态,并从梯度波形数据池中取出欲输出的三维梯度波形数据,实时送入三维数模转换器,得到可为上述外部设备提供三维梯度场的梯度脉冲波形信号。
3.一种具有可调数字预加重的磁共振梯度波形产生方法,其特征在于包括以下步骤:
接收磁共振扫描序列编译器发送来的与梯度相关的消息队列;
对上述消息队列进行梯度事件属性识别,得到不同梯度事件属性;
根据上述不同的梯度事件属性执行相应的处理操作,得到具有可调数字预加重的梯度波形数据;
根据上述梯度波形数据产生梯度波形。
4.按权利要求3所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述消息队列包括消息源地址、消息目的地址、事件标签属性以及事件标签属性内容,其中事件标签属性包括:初始化事件、开始事件、间隔事件、斜坡事件、结束事件、中止事件以及辅助事件;事件标签属性内容对于开始事件、结束事件、中止事件和辅助事件的作用是设置斜坡和预加重相关的标识,开始事件、结束事件、中止事件和辅助事件的属性内容为空;对于初始化事件、间隔事件以及斜坡事件,其属性内容应包含各自将要执行的特定事件参数,其中初始化事件的事件标签属性内容包括各通道的初始值、梯度标识符、用于计算各通道的斜坡比例参数列表、预加重开启标识符以及用于无限冲击响应滤波器的幅度参数a和时间参数b的参数列表;间隔事件的事件标签属性内容包括持续时间长度、事件的重复次数以及额外时间;斜坡事件的事件标签属性内容包括事件的步数、每步的时间长度、事件执行完毕后各通道的幅值表、各通道的斜坡比例参数在列表中的位置索引指针以及事件类型。
5.按权利要求4所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述初始化事件的处理需要相续完成如下操作:
各通道先前幅值被初始化为通道初始幅值;建立用于斜坡计算的通道参数表;设置预加重开启标识;缓存用于计算无限冲击响应滤波器的幅度系数a和时间系数b的参数列表;
根据此参数列表计算用于预加重操作的幅度系数a和时间系数b,计算结果缓存于数据存储器中;将无限冲击响应滤波器输出的预加重值g初始化为0。
6.按权利要求5所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:初始化事件的处理,还要执行如下操作:
如果执行扫描进程操作,则在梯度波形数据列表的位置索引指针buf_inx加1,并将梯度波形数据队列的当前事件标识置为“OTHER”;
7.按权利要求4所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述开始事件的处理需要相续完成如下操作:
若扫描进程尚未开始,则将扫描进行中的标识符设置为“真”,将前一事件为斜坡事件的标识设置为“假”,并初始化梯度波形数据列表的位置索引指针为“-1”;
若扫描进程已经开始,则将梯度波形数据列表的位置索引指针加1,并将梯度波形数据队列当前事件标识置为“OTHER”。
8.按权利要求4所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述间隔事件的处理需要相续完成如下操作:
若扫描进程已经开始,则判断前一事件是否为斜坡事件;
如果是斜坡事件,则确定预加重是否开启;
若预加重开启,则判断间隔事件的持续时间是否小于最小持续时间,或者额外时间是否小于最小额外时间;
如果满足间隔事件的持续时间小于最小持续时间,或者额外时间小于最小额外时间两个条件之一,则执行预加重计算;
当预加重计算结束后,缓存总预加重步数、各步具有预加重特性的梯度输出幅度值及各步持续时间;
将前一斜坡事件的总预加重步数更新为原值加上间隔事件的总预加重步数;在梯度波形数据列表的表尾继续填充由间隔预加重计算后所得到的具有预加重特性的通道梯度幅值及各步持续时间;
置当前事件的前一事件为斜坡事件的标识为“假”;间隔事件次数减1;
判断间隔事件的次数是否为0,如果为0,则梯度波形数据列表当前事件标识置为“间隔”,并填充间隔事件的次数及每次的持续时间。
9.按权利要求8所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:如果间隔事件的持续时间小于最小持续时间和额外时间小于最小额外时间两个条件都不满足,或者预加重关闭,则将前一斜坡事件的最后一步波形数据的持续时间更新为原值加上间隔事件的持续时间,接续当前事件的前一事件为斜坡事件,置当前事件的前一斜坡事件的标识为“假”,间隔事件次数减1步骤。
10.按权利要求8所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:在扫描进程进行中,判断当前事件的前一事件是否为斜坡事件的结果为否,则转至判断间隔事件的次数是否为0步骤。
11.按权利要求8所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:若扫描进程尚未开始,则将出错标识置为“真”。
12.按权利要求4所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述结束事件、中止事件的处理需要相续完成如下操作:
在扫描进程执行中,将扫描中标志置为“假”,梯度波形数据列表当前事件标识置为“结束”。
13.按权利要求4所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述斜坡事件的处理需要相续完成如下操作:
在扫描进程执行中,根据斜坡算法进行斜坡计算,保存计算结果,并将计算得到的数据根据三维数模转换器的要求进行格式调整并缓存;
判断预加重操作是否开启,如开启,则根据预加重算法对斜坡计算得到的数据进行预加重计算,缓存总预加重步数以及各步所具有的预加重特性的梯度输出幅值及其持续时间;
在梯度波形数据列表中当前事件标识置为“斜坡”,填充由斜坡事件的预加重计算所得到的总预加重步数、斜坡类型以及由预加重计算后所得到的具有预加重特性的通道梯度幅值及各步持续时间;
判断当前事件是否为斜坡事件类型,如果是斜坡事件类型,则将前一斜坡事件的标识置为“真”。
14.按权利要求13所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:如果预加重操作没有开启,则梯度波形数据列表当前事件标识置为“斜坡”,并填充斜坡的步数、斜坡类型以及各步的通道幅值及其持续时间;
接续判断当前事件是否为斜坡事件类型步骤。
15.按权利要求13所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:如果扫描进程未开始,则置出错标识为“真”。
16.按权利要求4所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述辅助事件的处理如下:
在扫描进程执行中,将梯度波形数据列表当前事件标识置为“OTHER”。
17.按权利要求3所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述对消息队列进行梯度事件属性识别包括以下步骤:由梯度事件识别器根据梯度事件标签属性,从消息队列中识别出初始化事件、开始事件、间隔事件、斜坡事件、结束事件、中止事件以及辅助事件的梯度事件,并将相应的梯度事件标签的属性内容送入梯度事件并行处理器,其中,斜坡事件用于产生具有斜坡特性的梯度波形数据,间隔事件用于产生具有指数波形预加重特性的梯度波形数据。
18.按权利要求4所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述斜坡特性的梯度波形在响应任何一个梯度斜坡事件过程中,梯度事件并行处理器无条件执行梯度斜坡波形算法,具体步骤为:
首先获取如下参数:各通道初始幅值及先前幅值;用于斜坡计算的斜坡比例参数表;
事件步数;每步时间长度;事件执行完毕后通道幅值表;
计算出事件执行完毕后各通道幅值以及相对于先前幅值的每个通道幅度增加量;
判断事件步数是否为1,如果不为1,则通道幅值增加量乘以当前步增加的百分比数,再加上先前的幅值以及通道的初始幅值;事件步数减1;
判断剩余步数是否为0,如果不为0,则返回通道幅值增加量乘以当前步增加的百分比数,再加上先前的幅值以及通道的初始幅值,事件步数减1步骤;
如果剩余步数为0,则判断是否为斜坡事件类型;
如果是斜坡事件类型,则将先前各通道的幅值更新为事件执行完毕后各通道的幅值,否则将先前各通道的幅值更新为0。
19.按权利要求18所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:如果事件步数为1,则在通道增加的幅值量加上先前的幅值以及通道的初始幅值,事件步数减1;
接续判断是否为斜坡事件类型步骤。
20.按权利要求4所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:所述指数波形预加重特性在响应任何一个梯度斜坡事件过程中,梯度事件并行处理器根据预加重开关状态来决定是否还需执行梯度预加重波形算法;同时在响应任何一个间隔事件过程中,梯度事件并行处理器都需要根据预加重开关状态、以及该事件间隔时间和额外时间的大小,来决定是否执行梯度指数波形运算的预加重算法,具体步骤为:
首先获取如下参数:用于无限冲击响应滤波器各阶的幅度系数和时间系数、各阶预加重增量、事件的步数以及每步持续的时间长度;
判断事件步数是否为0,不为0时,计算该步的通道幅值增量;
缓存该步剩余时间初始值;
该阶预加重增量更新为幅度系数乘以幅度增量,再加上时间系数乘以当前阶预加重增量;阶数增加1;
判断无限冲击响应滤波器阶数是否等于最大阶;
如果等于最大阶,则各阶预加重增量相加得到该次预加重幅值,该幅值值再加上无预加重梯度输出幅值,得到带预加重的梯度输出幅值;该步剩余时间减去预加重间隔时间;
判断该步剩余时间初始值是否大于最小预加重时间间隔;
判断相邻两次预加重幅度差是否小于等于1;如果小于等于1,则无预加重增量的梯度幅值作为最后一次梯度幅度输出,剩余时间为该次梯度幅值输出持续时间;
事件步数减1,返回判断事件步数是否为0步骤。
21.按权利要求20所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:当两次预加重幅度差不小于等于1时,返回至该阶预加重增量更新为幅度系数乘以幅度增量,再加上时间系数乘以当前阶预加重增量;阶数增加1步骤。
22.按权利要求20所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:当该步剩余时间初始值不大于最小预加重时间间隔时,转至事件步数减1步骤。
23.按权利要求20所述的具有可调数字预加重的磁共振梯度波形产生方法,其特征在于:当阶数不等于最大阶时,返回至该阶预加重增量更新为幅度系数乘以幅度增量,再加上时间系数乘以当前阶预加重增量;阶数增加1步骤。

说明书全文

具有可调数字预加重的磁共振梯度波形产生系统及方法

技术领域

[0001] 本发明涉及核磁共振实现技术领域,具体地说是一种基于并行处理技术的具有可调数字预加重的磁共振梯度波形产生系统及方法。

背景技术

[0002] 梯度波形产生器是核磁共振成像系统的重要组成部分。为了能够应用磁共振物理现象成像,在需要发送射频激发脉冲的同时,还需要梯度波形发生器产生层面选择梯度脉冲信号和层面内横纵两个方向的空间编码梯度脉冲信号。这三个维度的线性梯度信号经过梯度放大器放大之后,驱动三维梯度线圈产生三维梯度场,以用于被测体的每个体素的空间定位
[0003] 但在梯度脉冲波形切换过程中,梯度线圈会有较大的梯度场强度变化,因而会在其他线圈和周围金属中产生变化的磁通量,从而感应出感生电动势,引起空间涡流电场。涡流电场会在梯度线圈中产生涡流,这相当于增大了梯度线圈有效电感,使得梯度线圈的时间常数增大,最终会导致梯度脉冲波形出现上升时间变慢且波形下降沿出现拖尾的现象。要抑制这种现象,就需要采用梯度预加重技术,消除涡流产生的相位伪影,改善无自屏蔽梯度线圈的磁共振系统的成像质量
[0004] 为了能够控制梯度脉冲波形上升沿的压摆率(Slew Rate),改变梯度上升电流的变化率,使得梯度强度的变化率不会超过患者生理承受极限,需要采用若干连续上升的平台改变梯度脉冲上升沿的陡度,故采用梯度斜坡技术。
[0005] 在现有技术中,采用三种不同的方法实现梯度预加重,解决梯度涡流效应带来的磁共振相位伪影问题。方法1是申请号为CN02107813.0的中国发明专利提出的一种梯度预加强电路。实现这一方法的技术主题是利用数控电位器实现数字控制和模拟调整部分的跨接,数控电位器可以根据数字控制量调节其电阻阵列中心抽头位置,从而改变梯度预加重波形的幅度和时间常数。
[0006] 方法2是专利号为US 7,239,143 B2美国发明专利提出的一种包括一个延迟电路和一个多元数字滤波器的数字梯度预加重实现方法。现该方法的技术主题是延迟电路对数字磁场梯度控制信号延迟一个特定的时间延迟,以产生一个延迟的数字磁场梯度控制信号;多元数字滤波器的每个滤波器均有一个特定的时间常数和幅度参数,通过接收延迟后的数字磁场梯度控制信号,产生预加重波形信号。
[0007] 方法3是美国俄亥俄州辛辛那提(Cincinnati Ohio)影像研究中心的Vincent J.Schmithorst 和 Bernard J.Dardzinski 在《Automatic GradientPreemphasis Adjustment:A 15-Minute Journey to Improved Diffusion-WeightedEcho-Planar Imaging》中提出的一种方法,该方法的技术主题是先进行梯度涡流测量,再通过拟合、迭代程序快速找到最佳预加重参数的方法,以有效补偿梯度涡流对核磁共振图像所造成的影响。
[0008] 针对方法1而言,虽说为数字控制和模拟控制相结合,但总体来讲属于模拟法控制范畴,其波形时间常数不变或选择有限,并且预加重参数较难与脉冲序列参数相关联;针对方法2而言,虽然属于数字控制范畴,但是需要预先将多元数字滤波器的预加重参数配置完成,并保存在一个参数存储器中,通过地址选择的方法得到梯度预加重波形的时间常数和幅值两个参数,在扫描进行时,再根据同一时钟节拍,形成梯度波形输出,因而预加重波形设定不灵活,波形选择的随意性较差,预加重控制的实时性不高;针对方法3而言,这种方法测得的数据可靠,可以实现梯度预加重的自动设置,但需要至少10分钟的时间才能达到较好的补偿效果,并且这种调整操作独立于序列扫描控制。

发明内容

[0009] 针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种基于并行处理技术的具有可调数字预加重的磁共振梯度波形产生系统及方法,该方法预加重参数可调,可以实现任意梯度波形的任意斜坡。
[0010] 为解决上述技术问题,本发明采用的技术方案是:
[0011] 本发明具有可调数字预加重的磁共振梯度波形产生系统具有FPGA和三维数模转换器,其中,FPGA接收磁共振扫描序列编译器发送来的与梯度相关的消息队列,并对这些消息队列进行处理,形成能够满足线性变化的、斜坡步数可任意设置的、能够对梯度涡流效应进行有效补偿的三维梯度脉冲数字波形信号;上述三维梯度脉冲数字波形信号经过三维数模转换器生成三维梯度脉冲模拟波形信号,用于为被测体的每个体素提供空间定位的三维梯度场。
[0012] 所述FPGA包括消息接收器、消息传递通道、梯度事件识别器、梯度事件并行处理器、梯度波形数据源选择器、数据传输通道、梯度波形合成器、I/O状态控制与梯度波形数据提取器以及状态信息缓存器,其中:
[0013] 消息接收器,由消息缓存器和消息传输通道组成,用于接收和缓存来自磁共振扫描序列编译器的与梯度事件相关的消息队列,经过消息传输通道,将所接收到的含有上述消息的消息队列送入梯度事件识别器;
[0014] 梯度事件识别器,根据消息接收器输出的消息队列中的梯度事件标签属性,从消息队列中识别出梯度事件的不同属性,并将相应的梯度事件标签(Tag)的属性内容送入梯度事件并行处理器;
[0015] 梯度事件并行处理器,并行地执行由梯度事件识别器识别出的不同属性梯度事件;并根据事件的不同属性,进行状态标识设定操作和执行数学计算操作,并将计算得到特征数据缓存到对应的梯度波形特征数据存储器中;
[0016] 梯度波形数据源选择器,根据扫描序列对梯度脉冲波形的需要,从梯度事件并行处理器对应的梯度波形特征数据存储器中输出的梯度斜坡波形特征数据、具有预加重的梯度斜坡波形特征数据以及具有预加重的梯度指数波形特征数据中,选出梯度波形所需要的特性波形数据,经数据传输通道,送入梯度波形合成器中;
[0017] 梯度波形合成器,由数据传输通道和梯度波形数据池构成,按照来自消息接收器中的梯度波形控制指令,将梯度波形数据源选择器所选定出的梯度波形特征数据,填充到用于三维数模转换器输出的梯度波形数据列表中,形成梯度波形数据池;
[0018] I/O状态控制与梯度波形数据提取器,用于监视外部设备的工作状态,并从梯度波形数据池中取出欲输出的三维梯度波形数据,实时送入三维数模转换器,得到可为上述外部设备提供三维梯度场的梯度脉冲波形信号。
[0019] 本发明具有可调数字预加重的磁共振梯度波形产生方法包括以下步骤:
[0020] 接收磁共振扫描序列编译器发送来的与梯度相关的消息队列;
[0021] 对上述消息队列进行梯度事件属性识别,得到不同梯度事件属性;
[0022] 根据上述不同的梯度事件属性执行相应的处理操作,得到具有可调数字预加重的梯度波形数据;
[0023] 根据上述梯度波形数据产生梯度波形。
[0024] 所述消息队列包括消息源地址、消息目的地址、事件标签属性以及事件标签属性内容,其中事件标签属性包括:初始化事件、开始事件、间隔事件、斜坡事件、结束事件、中止事件以及辅助事件;事件标签属性内容对于开始事件、结束事件、中止事件和辅助事件的作用是设置斜坡和预加重相关的标识,开始事件、结束事件、中止事件和辅助事件的属性内容为空;对于初始化事件、间隔事件以及斜坡事件,其属性内容应包含各自将要执行的特定事件参数,其中初始化事件的事件标签属性内容包括各通道的初始值、梯度标识符、用于计算各通道的斜坡比例参数列表、预加重开启标识符以及用于无限冲击响应滤波器的幅度参数a和时间参数b的参数列表;间隔事件的事件标签属性内容包括持续时间长度、事件的重复次数以及额外时间;斜坡事件的事件标签属性内容包括事件的步数、每步的时间长度、事件执行完毕后各通道的幅值表、各通道的斜坡比例参数在列表中的位置索引指针以及事件类型。
[0025] 所述初始化事件的处理需要相续完成如下操作:
[0026] 各通道先前幅值被初始化为通道初始幅值;建立用于斜坡计算的通道参数表;设置预加重开启标识;缓存用于计算无限冲击响应滤波器的幅度系数a和时间系数b的参数列表;根据此参数列表计算用于预加重操作的幅度系数a和时间系数b,计算结果缓存于数据存储器中;将无限冲击响应滤波器输出的预加重值g初始化为0。
[0027] 本发明初始化事件的处理还要执行如下操作:
[0028] 如果执行扫描进程操作,则在梯度波形数据列表的位置索引指针buf inx加1,并将梯度波形数据队列的当前事件标识置为“OTHER”;
[0029] 所述开始事件的处理需要相续完成如下操作:
[0030] 若扫描进程尚未开始,则将扫描进行中的标识符设置为“真”,将前一事件为斜坡事件的标识设置为“假”,并初始化梯度波形数据列表的位置索引指针为“-1”;
[0031] 若扫描进程已经开始,则将梯度波形数据列表的位置索引指针加1,并将梯度波形数据队列当前事件标识置为“OTHER”。
[0032] 所述间隔事件的处理需要相续完成如下操作:
[0033] 若扫描进程已经开始,则判断前一事件是否为斜坡事件;
[0034] 如果是斜坡事件,则确定预加重是否开启;
[0035] 若预加重开启,则判断间隔事件的持续时间是否小于最小持续时间,或者额外时间是否小于最小额外时间;
[0036] 如果满足间隔事件的持续时间小于最小持续时间,或者额外时间小于最小额外时间两个条件之一,则执行预加重计算;
[0037] 当预加重计算结束后,缓存总预加重步数、各步具有预加重特性的梯度输出幅度值及各步持续时间;
[0038] 将前一斜坡事件的总预加重步数更新为原值加上间隔事件的总预加重步数;在梯度波形数据列表的表尾继续填充由间隔预加重计算后所得到的具有预加重特性的通道梯度幅值及各步持续时间;
[0039] 置当前事件的前一事件为斜坡事件的标识为“假”;间隔事件次数减1;
[0040] 判断间隔事件的次数是否为0,如果为0,则梯度波形数据列表当前事件标识置为“间隔”,并填充间隔事件的次数及每次的持续时间。
[0041] 如果间隔事件的持续时间小于最小持续时间和额外时间小于最小额外时间两个条件都不满足,或者预加重关闭,则将前一斜坡事件的最后一步波形数据的持续时间更新为原值加上间隔事件的持续时间,接续置当前事件的前一事件为斜坡事件的标识为“假”,间隔事件次数减1步骤。
[0042] 在扫描进程进行中,如果判断前一事件是否为斜坡事件的结果为否,则转至判断间隔事件的次数是否为0步骤。
[0043] 若扫描进程尚未开始,则将出错标识置为“真”。
[0044] 所述结束事件、中止事件的处理需要相续完成如下操作:
[0045] 在扫描进程执行中,将扫描中标志置为“假”,梯度波形数据列表当前事件标识置为“结束”。
[0046] 所述斜坡事件的处理需要相续完成如下操作:
[0047] 在扫描进程执行中,根据斜坡算法进行斜坡计算,保存计算结果,并将计算得到的数据根据三维数模转换器的要求进行格式调整并缓存;
[0048] 判断预加重操作是否开启,如开启,则根据预加重算法对斜坡计算得到的数据进行预加重计算,缓存总预加重步数以及各步所具有的预加重特性的梯度输出幅值及其持续时间;
[0049] 在梯度波形数据列表中当前事件标识置为“斜坡”,填充由斜坡事件的预加重计算所得到的总预加重步数、斜坡类型以及由预加重计算后所得到的具有预加重特性的通道梯度幅值及各步持续时间;
[0050] 判断当前事件是否为斜坡事件类型,如果是斜坡事件类型,则置当前事件的前一事件为斜坡事件的标识为“真”。
[0051] 如果预加重操作没有开启,则将梯度波形数据列表当前事件标识置为“斜坡”,并填充斜坡的步数、斜坡类型以及各步的通道幅值及其持续时间;
[0052] 接续判断当前事件是否为斜坡事件类型步骤。
[0053] 如果扫描进程未开始,则置出错标识为“真”。
[0054] 所述辅助事件的处理如下:
[0055] 在扫描进程执行中,将梯度波形数据列表当前事件标识置为“OTHER”。
[0056] 所述对消息队列进行梯度事件属性识别包括以下步骤:由梯度事件识别器根据梯度事件标签属性,从消息队列中识别出初始化事件、开始事件、间隔事件、斜坡事件、结束事件、中止事件以及辅助事件的梯度事件,并将相应的梯度事件标签的属性内容送入梯度事件并行处理器,其中,斜坡事件用于产生具有斜坡特性的梯度波形数据,间隔事件用于产生具有指数波形预加重特性的梯度波形数据。
[0057] 所述斜坡特性的梯度波形在响应任何一个梯度斜坡事件过程中,梯度事件并行处理器无条件执行梯度斜坡波形算法,具体步骤为:
[0058] 首先获取如下参数:各通道初始幅值及先前幅值;用于斜坡计算的斜坡比例参数表;事件步数;每步时间长度;事件执行完毕后通道幅值表;
[0059] 计算出事件执行完毕后各通道幅值以及相对于先前幅值的每个通道幅度增加量;
[0060] 判断事件步数是否为1,如果不为1,则通道幅值增加量乘以当前步增加的百分比数,再加上先前的幅值以及通道的初始幅值;事件步数减1;
[0061] 判断剩余步数是否为0,如果不为0,则返回通道幅值增加量乘以当前步增加的百分比数,再加上先前的幅值以及通道的初始幅值,事件步数减1步骤;
[0062] 如果剩余步数为0,则判断是否为斜坡事件类型;
[0063] 如果是斜坡事件类型,则将先前各通道的幅值更新为事件执行完毕后各通道的幅值,否则将先前各通道的幅值更新为0。
[0064] 如果事件步数为1,则在通道增加的幅值量加上先前的幅值以及通道的初始幅值,事件步数减1;
[0065] 接续判断是否为斜坡事件类型步骤。
[0066] 所述指数波形预加重特性在响应任何一个梯度斜坡事件过程中,梯度事件并行处理器根据预加重开关状态来决定是否还需执行梯度预加重波形算法;同时在响应任何一个间隔事件过程中,梯度事件并行处理器都需要根据预加重开关状态、以及该事件间隔时间和额外时间的大小,来决定是否执行梯度指数波形运算的预加重算法,具体步骤为:
[0067] 首先获取如下参数:用于无限冲击响应滤波器各阶的幅度系数和时间系数、各阶预加重增量、事件的步数以及每步持续的时间长度;
[0068] 判断事件步数是否为0,不为0时,计算该步的通道幅值增量;
[0069] 缓存该步剩余时间初始值;
[0070] 该阶预加重增量更新为幅度系数乘以幅度增量,再加上时间系数乘以当前阶预加重增量;阶数增加1;
[0071] 判断无限冲击响应滤波器阶数是否等于最大阶;
[0072] 如果等于最大阶,则各阶预加重增量相加得到该次预加重幅值,该幅值再加上无预加重梯度输出幅值,得到带预加重的梯度输出幅值;该步剩余时间减去预加重间隔时间;
[0073] 判断该步剩余时间初始值是否大于最小预加重时间间隔;
[0074] 判断相邻两次预加重幅度差是否小于等于1;如果小于等于1,则无预加重增量的梯度幅值作为最后一次梯度幅度输出,剩余时间为该次梯度幅值输出持续时间;
[0075] 事件步数减1,返回判断事件步数是否为0步骤。
[0076] 当两次预加重幅度差不小于等于1时,返回至该阶预加重增量更新为幅度系数乘以幅度增量,再加上时间系数乘以当前阶预加重增量,阶数增加1步骤。
[0077] 当该步剩余时间初始值不大于最小预加重时间间隔时,转至事件步数减1步骤。
[0078] 当阶数不等于最大阶时,返回至该阶预加重增量更新为幅度系数乘以幅度增量,再加上时间系数乘以当前阶预加重增量,阶数增加1步骤。
[0079] 本发明具有以下有益效果及优点:
[0080] 1.实时性强。本发明采用完全数字的、由脉冲扫描序列控制的梯度预加重方法,同一序列梯度波形的斜坡参数与数字梯度预加重滤波器系数,同时由梯度事件并行处理器实时计算,各自的计算结果被一同送入高速DAC中,形成可以对梯度涡流进行补偿的三维梯度波形信号,梯度波形的斜坡参数和预加重滤波器系数的数值在序列扫描过程中采用并行处理技术实时计算;本发明系统均以现场可编程阵列(FPGA)为硬件载体,使得梯度波形信号的控制更具实时性。
[0081] 2.预加重参数可调。本发明根据在扫描之前用户任意预定的扫描序列梯度预加重相关参数,由梯度事件并行处理器在序列扫描过程中实时地计算出与之相对应的数字梯度预加重无限冲击响应滤波器系数值,可得到任意梯度斜坡特征和梯度预加重特征的梯度波形。附图说明
[0082] 图1为本发明系统结构框图
[0083] 图2为本发明方法中梯度斜坡RAMP算法流程图
[0084] 图3为本发明方法中梯度预加重Pre_emphasis算法流程图;
[0085] 图4为本发明方法中梯度事件处理流程图。

具体实施方式

[0086] 本发明具有可调数字预加重的磁共振梯度波形产生系统具有FPGA和三维数模转换器,其中,FPGA接收磁共振扫描序列编译器发送来的与梯度相关的消息队列,并对这些消息队列进行处理,形成能够满足线性变化的、斜坡步数可任意设置的、能够对梯度涡流效应进行有效补偿的三维梯度脉冲数字波形信号;上述三维梯度脉冲数字波形信号经过三维数模转换器生成三维梯度脉冲模拟波形信号,用于为被测体的每个体素提供空间定位的三维梯度场。
[0087] 所述FPGA包括消息接收器、消息传递通道、梯度事件识别器、梯度事件并行处理器、梯度波形数据源选择器、数据传输通道、梯度波形合成器、I/O状态控制与梯度波形数据提取器、状态信息缓存器以及三维数模转换器,本发明系统的结构如图1所示,其中:
[0088] 消息接收器,由消息缓存器和消息传输通道组成,用于接收和缓存来自磁共振扫描序列编译器发送来的与梯度事件相关的消息队列,消息(Message)队列包含消息源地址、消息目的地址、梯度事件标签(Tag)属性和梯度事件标签(Tag)属性内容等事件相关信息,经过消息传输通道,将所接收到的、含有上述消息的消息队列送入梯度事件识别器;
[0089] 梯度事件识别器,根据梯度事件标签(Tag)属性,从消息(Message)队列中识别出梯度事件,这些梯度事件包括初始化事件(INIT)、开始事件(START)、间隔事件(INTERVAL)、斜坡事件(RAMP)、结束事件(END)、中止事件(ABORT)和辅助事件(aux)7种不同属性的梯度事件,并将相应的梯度事件标签(Tag)的属性内容送入梯度事件并行处理器,其中,斜坡事件(RAMP)用于产生具有斜坡特性的梯度波形数据,间隔事件(INTERVAL)用于产生具有指数波形特性的梯度波形数据;
[0090] 梯度事件并行处理器,并行地执行由梯度事件识别器识别出的上述7种不同属性梯度事件。对于初始化事件(INIT)、斜坡事件(RAMP)、间隔事件(INTERVAL),由于各自所对应的标签(Tag)的属性内容不为空,因此除了执行类似开始事件(START)、结束事件(END)、中止事件(ABORT)和其他事件(OTHER)的状态标识设定操作之外,还要执行数学计算操作,其中,在响应初始化事件(INIT)过程中,还需要完成IIR滤波器中的时间系数和幅度系数的计算,并将计算结果保存到初始化数据存储器(INIT_RAM)中,而在响应梯度斜坡(RAMP)事件以及间隔事件(INTERVAL)过程中,还需要执行梯度斜坡(RAMP)数据计算和梯度预加重(Pre-emphasis)数据计算,以获得梯度波形的梯度斜坡(RAMP)特征数据和预加重(Pre-emphasis)特征数据,并根据事件的不同属性,分别将计算得到的特征数据缓存到对应的梯度波形特征数据存储器(FIFO)中;
[0091] 梯度波形数据源选择器,根据扫描序列对梯度脉冲波形的需要,从梯度斜坡波形特征数据存储器(RAMP_FIFO)、具有预加重的梯度斜坡波形特征数据存储器(Pre.RAMP_FIFO)、或具有预加重的梯度指数波形特征数据存储器(Pre.Exp_FIFO)中,选出梯度波形所需要的特性波形数据,经数据传输通道,送入梯度波形合成器中;
[0092] 梯度波形合成器,由数据传输通道和梯度波形数据池构成,按照来自消息接收器中的梯度波形控制指令,将梯度波形数据选择器从梯度事件并行处理器的相应波形特征数据存储器中所选定出的梯度波形特征数据,填充到用于数模转换(DAC)输出的梯度波形数据列表(calced_ramps[buf_inx][j],其中,buf_inx=0..9;j=0...2000)中,形成梯度波形数据池;
[0093] I/O状态控制与梯度波形数据提取器,用于监视梯度放大器和梯度线圈等外部设备的工作状态,并从梯度波形数据池中取出欲输出的三维梯度波形数据,实时送入三维数模转换器,得到可提供三维梯度场的梯度脉冲波形信号。
[0094] 本发明具有可调数字预加重的磁共振梯度波形产生方法包括以下步骤:
[0095] 接收磁共振扫描序列编译器发送来的与梯度相关的消息队列;
[0096] 对上述消息队列进行梯度事件属性识别,得到不同梯度事件属性;
[0097] 根据上述不同的梯度事件属性执行相应的处理操作,得到具有可调数字预加重的梯度波形数据;
[0098] 根据上述梯度波形数据产生梯度波形。
[0099] 所述消息队列包括消息源地址、消息目的地址、事件标签属性以及事件标签属性内容,其中事件标签属性包括:初始化事件、开始事件、间隔事件、斜坡事件、结束事件、中止事件以及辅助事件;事件标签属性内容对于开始事件、结束事件、中止事件和辅助事件的作用是设置斜坡和预加重相关的标识,开始事件、结束事件、中止事件和辅助事件的属性内容为空;对于初始化事件、间隔事件以及斜坡事件,其属性内容应包含各自将要执行的特定事件参数,其中初始化事件的事件标签属性内容包括各通道的初始值、梯度标识符、用于计算各通道的斜坡比例参数列表、预加重开启标识符以及用于无限冲击响应滤波器的幅度参数a和时间参数b的参数列表;间隔事件的事件标签属性内容包括持续时间长度、事件的重复次数以及额外时间;斜坡事件的事件标签属性内容包括事件的步数、每步的时间长度、事件执行完毕后各通道的幅值表、各通道的斜坡比例参数在列表中的位置索引指针以及事件类型。
[0100] 磁共振梯度波形发生系统首先接收来自磁共振扫描序列编译器发送来的与梯度相关的消息队列,消息队列包含梯度波形产生系统所需要的所有梯度控制命令和梯度控制参数。该消息(Message)格式定义如表1所示。
[0101] 表1:消息(Message)格式定义
[0102]消息(Message) 消息(Message) 事件标签(Tag) 事件标签(Tag)
源地址 目的地址 属性 属性内容
[0103] 消息(Message)中的事件标签(Tag)的属性共有7种类型,分别为:初始化事件(INIT)、开始事件(START)、间隔事件(INTERVAL)、斜坡事件(RAMP)、结束事件(END)、中止事件(ABORT)和辅助事件(AUX)。
[0104] 对于开始事件(START)、结束事件(END)、中止事件(ABORT)和辅助事件(AUX),其作用是用于设置斜坡(RAMP)和预加重(Pre-emphasis)相关的标识,且其属性内容为空。
[0105] 对于(INIT)、间隔事件(INTERVAL)和斜坡事件(RAMP),其属性内容应包含各自将要执行的特定事件参数,这三种事件标签属性内容的格式定义如表2所示。
[0106] 表2:初始化事件(INIT)、间隔事件(INTERVAL)和斜坡事件(RAMP)属性内容定义:
[0107]
[0108] 用于DAC输出的梯度波形数据池结构定义如下:
[0109] 在梯度事件并行处理器响应梯度事件过程中,根据不同属性的梯度事件,会将计算得到的具有特定波形特性的波形数据分别实时地缓存到梯度斜坡波形特征数据存储器(RAMP_FIFO)、具有预加重的梯度斜坡波形特征数据存储器(Pre.RAMP_FIFO)、或具有预加重的梯度指数波形特征数据存储器(Pre.Exp_FIFO)中,并根据扫描序列梯度波形参数要求,从其中的一种数据存储器或两种数据存储器取出波形数据,并结合从消息接收器中接收到的持续时间参数,生成用于数模转换(DAC)输出的梯度波形数据,并保存在用于DAC输出的梯度波形数据池(calced_ramps[buf_inx][j],其中,buf_inx=0..9;j=0...2000)中。
[0110] 在用于DAC输出的梯度波形数据池中,不同属性的梯度事件,具有不同的属性内容,对梯度波形数据池(calced_ramps[buf_inx][j])数据结构定义如表3所示。
[0111] 表3梯度波形数据池(calced_ramps[buf_inx][j]数据结构定义:
[0112]
[0113] 任意一组梯度波形的产生应包括一个INIT事件、一个START事件、若干个INTERVAL、若干个RAMP事件以及一个END事件,若要中止波形产生,则还应包括一个ABORT事件。
[0114] 在响应任何一个梯度斜坡(RAMP)事件过程中,梯度事件并行处理器都要无条件地执行梯度斜坡(RAMP)波形RAMP算法,并根据预加重开关状态来决定是否还需执行梯度预加重(Pre_emphasis)波形Pre_emphasis算法;
[0115] 在响应任何一个间隔(INTERVAL)事件过程中,梯度事件并行处理器都需要根据预加重开关状态、以及该事件间隔时间和额外时间的大小,来决定是否执行梯度指数波形运算的预加重(Pre_emphasis)算法;
[0116] 1)梯度斜坡(RAMP)波形RAMP算法
[0117] 如图2所示,所述斜坡特性的梯度波形在响应任何一个梯度斜坡事件过程中,梯度事件并行处理器无条件执行梯度斜坡波形算法,具体步骤为:
[0118] 首先获取如下参数:各通道初始幅值及先前幅值;用于斜坡计算的斜坡比例参数表;事件步数;每步时间长度;事件执行完毕后通道幅值表;
[0119] 计算出事件执行完毕后各通道幅值以及相对于先前幅值的每个通道幅度增加量;
[0120] 判断事件步数是否为1,如果不为1,则通道幅值增加量乘以当前步增加的百分比数,再加上先前的幅值以及通道的初始幅值;事件步数减1;
[0121] 判断剩余步数是否为0,如果不为0,则返回通道幅值增加量乘以当前步增加的百分比数,再加上先前的幅值以及通道的初始幅值,事件步数减1步骤;
[0122] 如果剩余步数为0,则判断是否为斜坡事件类型;
[0123] 如果是斜坡事件类型,则将先前各通道的幅值更新为事件执行完毕后各通道的幅值,否则将先前各通道的幅值更新为0;
[0124] 如果事件步数为1,则在通道增加的幅值量加上先前的幅值以及通道的初始幅值,事件步数减1;
[0125] 接续判断是否为斜坡事件类型步骤。
[0126] 在响应梯度斜坡(RAMP)事件之前的INIT事件过程中,各通道(本实施例以0、1、2三个通道为例)先前的幅值last[i]被初始化为通道初始幅值comp[i](i=0、1、2),然后根据梯度斜坡(RAMP)事件的步数和事件持续时间,按照如图5所示的梯度斜坡(RAMP)波形RAMP算法得到各个通道(0、1、2)幅值列表g.contr[i][j](i为通道标识,j为RAMP标识);
[0127] 在进行上述RAMP计算过程中,将得到的通道幅值g.contr[i][j]存储起来,以备在进行预加重(Pre-emphasis)计算时使用。同时,将计算得到的通道幅值g.contr[i][j]进行溢出处理,而后将该通道幅值转换为符合DAC器件输入格式的数据并存入其对应的具有RAMP特性的梯度波形数据存储器(FIFO)中,以便满足MRI梯度系统对只具有RAMP特性而无预加重特性的梯度脉冲波形的需求。
[0128] 2)梯度预加重(Pre_emphasis)波形Pre_emphasis算法
[0129] 如图3所示,所述指数波形预加重特性在响应任何一个梯度斜坡事件过程中,梯度事件并行处理器根据预加重开关状态来决定是否还需执行梯度预加重波形算法;同时在响应任何一个间隔事件过程中,梯度事件并行处理器都需要根据预加重开关状态、以及该事件间隔时间和额外时间的大小,来决定是否执行梯度指数波形运算的梯度预加重算法,梯度预加重算法具体步骤为:
[0130] 首先获取如下参数:用于无限冲击响应滤波器各阶的幅度系数和时间系数、各阶预加重增量、事件的步数以及每步持续的时间长度;
[0131] 判断事件步数是否为0,不为0时,计算该步的通道幅值增量;
[0132] 缓存该步剩余时间初始值;
[0133] 该阶预加重增量更新为幅度系数乘以幅度增量,再加上时间系数乘以当前阶预加重增量;阶数增加1;
[0134] 判断无限冲击响应滤波器阶数是否等于最大阶;
[0135] 如果等于最大阶,则各阶预加重增量相加得到该次预加重幅值,该幅值值再加上无预加重梯度输出幅值,得到带预加重的梯度输出幅值;该步剩余时间减去预加重间隔时间;
[0136] 判断该步剩余时间初始值是否大于最小预加重时间间隔;
[0137] 判断相邻两次预加重幅度差是否小于等于1;如果小于等于1,则无预加重增量的梯度幅值作为最后一次梯度幅度输出,剩余时间为该次梯度幅值输出持续时间;
[0138] 事件步数减1,返回判断事件步数是否为0步骤;
[0139] 当两次预加重幅度差不小于等于1时,返回至该阶预加重增量更新为幅度系数乘以幅度增量,再加上时间系数乘以当前阶预加重增量,阶数增加1步骤;
[0140] 当该步剩余时间初始值不大于最小预加重时间间隔时,转至事件步数减1步骤;
[0141] 当阶数不等于最大阶时,返回至该阶预加重增量更新为幅度系数乘以幅度增量,再加上时间系数乘以当前阶预加重增量,阶数增加1步骤。
[0142] 在执行梯度斜坡事件或间隔事件的预加重波形Pre_emphasis算法之前的INIT事件过程中,5阶IIR滤波器的各阶预加重增量(g[i][j];i=0..预加重步数(presteps);j=0..4)被初始化为0;通道初始幅值comp[i](i=0、1、2)左移18位,将左移操作完成后的数据作为先前通道幅值l_plainValuePrev[i]的初始化数据;同时完成IIR滤波器中的时间系数a[i][j]和幅度系数b[i][j](i:通道序号;j:IIR滤波器阶数)的计算。
[0143] 将经RAMP计算得到的通道幅值g.contr[coil][i]左移18位,左移操作完成后的数据作为当前通道值l_plainValue[i];任意一步RAMP的所有Pre-emphasis操作都执行完毕后,先前的通道幅值l_plainValuePrev[i]被更新为l_plainValue[i]。进行数据左移的目的是为了得到更高的计算精度,用64位数据存储32位数据计算结果。
[0144] 各个梯度通道的预加重算法完全相同,每次预加重Pre-emphasis的间隔为20us。梯度预加重(Pre_emphasis)波形Pre_emphasis算法如图6所示。
[0145] 在事件属性为斜坡事件(RAMP)的条件下,每步首次进行Pre-emphasis计算时幅值增量ldelta[i]=l_plainValue[i]-plainValuePrev[i],其他后续的幅值增量l_delta[i]=0。
[0146] 在事件属性为间隔事件(INTERVAL)条件下,事件的步数为1,幅度增量l_delta[i]=0。
[0147] 对于斜坡事件(RAMP)和间隔事件(INTERVAL)操作,确定是否为每步最后一次预加重所采用的时间判断基准是不同的。当执行斜坡事件(RAMP)的预加重Pre-emphasis计算时,若剩余时间小于20us,则可以断定预加重操作为当前步的最后一次预加重操作。当执行间隔事件(INTERVAL)的Pre-emphasis计算时,若剩余时间小于76us,则可以断定预加重操作为最后一次预加重操作。
[0148] 在执行斜坡事件(RAMP)的预加重(Pre-emphasis)操作的前提下,整个斜坡事件(RAMP)的预加重步数(presteps)为斜坡事件(RAMP)的步数(nstep)乘以每一步所需要进行Pre-emphasis计算的次数,而每一步所需的预加重次数由每步的时间长度ramp_interval决定。假设某一个斜坡事件(RAMP)的步数nsteps为7,每步的时间长度ramp_interval为56us,则每步在第0微秒、第20微秒、第40微秒时分别进行预加重Pre-emphasis计算,每步总共计算3次,则整个RAMP进行Pre-emphasis计算的次数为21次;每一步在第一次进行Pre-emphasis计算时,梯度幅值增量ldelta[i]为当前通道幅值l_plainValue[i]与先前通道幅值l_plainValuePrev[i]之差,而后两次的梯度幅值增量l_delta[i]为0。
[0149] 在执行间隔事件(INTERVAL)的预加重(Pre-emphasis)操作的前提下,整个间隔事件(INTERVAL)的预加重次数(presteps)由执行预加重计算过程中两次梯度幅值之差决定或由持续时间长interval_time决定。假设某一个间隔事件(INTERVAL)的持续时间长度interval_time为5600us,在进行了100次Pre-emphasis计算即2000us后,如果三个通道的最后两次梯度幅值之差都满足小于等于1的条件,即达到了DAC的输出分辨率误差范围,则终止该INTERVAL的Pre-emphasis计算,并将剩余时间作为第101次的DAC输出持续时间长度,在这种情况下预加重次数(presteps)的值就为101次;假设另一个间隔事件(INTERVAL)的持续时间长度(interval_time)为600us,且在计算过程中未遇到三个通道的最后两次梯度幅值之差都满足小于等于1的情况,为满足事件调度功能的需要,INTERVAL进行Pre-emphasis时最后一步的步长应大于等于56us,因而最后一次Pre-emphasis计算得到的梯度Pre-emphasis持续时间长为60us,Pre-emphasis计算在进行28次后终止,预加重次数(presteps)的值就为28次,而非30次。
[0150] 如图4所示,任意一组序列扫描的用于产生梯度波形的消息队列中,应包括一个INIT事件、一个START事件、若干个INTERVAL、若干个斜坡事件(RAMP)、一个辅助事件(AUX)以及一个END事件,若要中止波形产生,则还应包括一个ABORT事件。
[0151] 初始化事件的处理
[0152] 初始化事件的处理需要相续完成如下操作:
[0153] 首先,各通道先前幅值被初始化为通道初始幅值;建立用于斜坡计算的通道参数表;设置预加重开启标识;缓存用于计算无限冲击响应滤波器的幅度系数a和时间系数b的参数列表;根据此参数列表计算用于预加重操作的幅度系数a和时间系数b,计算的结果缓存于数据存储器中;将无限冲击响应滤波器输出的预加重值g初始化为0;
[0154] 如果执行扫描进程操作,则在梯度波形数据列表的位置索引指针buf_inx加1,并将梯度波形数据队列的当前事件标识置为“OTHER”;
[0155] 如果未执行扫描进程操作,则不进行操作;
[0156] 首先需要相续完成如下所述的操作:①各通道(0、1、2)先前幅值last[i]被初始化为通道初始幅值comp[i](i=0、1、2);②建立用于RAMP计算的通道参数表ramptable[i][j](i:通道序号;j:步数标识);③设置预加重开启标识(preflag);④缓存用于计算IIR滤波器的幅度系数a[i][j](i=0、1、2;j=0..4)和时间系数b[i][j](i=0、1、2;j=0..4)的参数列表,⑤根据此参数列表计算用于预加重操作的幅度系数a[i][j](i=0、1、2;j=0..4)和时间系数b[i][j](i=0、1、2;j=0..4),缓存于数据存储器INIT_RAM中;⑥将IIR滤波器输出的预加重值g[i][j](i=0、1、2;j=0..4)初始化为0。
[0157] 若扫描已经开始,则在执行上述全部操作的基础上,还需将梯度波形数据列表的位置索引指针buf_inx加1,并将梯度波形数据队列的当前事件标识置为“OTHER”。
[0158] 若扫描未开始,则不进行操作。
[0159] 开始事件的处理
[0160] 开始事件的处理需要相续完成如下操作:
[0161] 若扫描进程尚未开始,则将扫描进行中的标识符设置为“真”,置当前事件的前一事件为斜坡事件的标识为“假”,并初始化梯度波形数据列表的位置索引指针为“-1”;
[0162] 若扫描进程已经开始,则将梯度波形数据列表的位置索引指针加1,并将梯度波形数据队列当前事件标识置为“OTHER”。
[0163] 若扫描尚未开始,则将扫描进行中的标识(scaning)设置为“TRUE”,将当前事件的前一事件为斜坡事件(RAMP)的标识(last_inter_missing)设置为假“FALSE”,并初始化梯度波形数据列表的位置索引指针(buf_inx)置为“-1”。
[0164] 若扫描已经开始,则将梯度波形数据列表的位置索引指针(buf_inx)加1,并将梯度波形数据队列当前事件标识置为“OTHER”。
[0165] 间隔事件的处理
[0166] 间隔事件的处理需要相续完成如下操作:
[0167] 若扫描进程已经开始,则判断前一事件是否为斜坡事件;
[0168] 如果是斜坡事件,则确定预加重是否开启;
[0169] 若预加重开启,则判断间隔事件的持续时间是否小于最小持续时间,或者额外时间是否小于最小额外时间;
[0170] 如果满足间隔事件的持续时间小于最小持续时间,或者额外时间小于最小额外时间两个条件之一,则执行预加重计算;
[0171] 当预加重计算结束后,缓存总预加重步数、各步具有预加重特性的梯度输出幅度值及各步持续时间;
[0172] 将前一斜坡事件的总预加重步数更新为原值加上间隔事件的总预加重步数;在梯度波形数据列表的表尾继续填充由间隔预加重计算后所得到的具有预加重特性的通道梯度幅值及各步持续时间;
[0173] 置当前事件的前一事件为斜坡事件的标识为“假”;间隔事件次数减1;
[0174] 判断间隔事件的次数是否为0,如果为0,则梯度波形数据列表当前事件标识置为“间隔”,并填充间隔事件的次数及每次的持续时间;
[0175] 如果间隔事件的持续时间小于最小持续时间和额外时间小于最小额外时间两个条件都不满足,或者预加重关闭,则将前一斜坡事件的最后一步波形数据的持续时间更新为原值加上间隔事件的持续时间,接续当前事件的前一事件为斜坡事件,将前一斜坡事件的标识置为“假”;间隔事件次数减1步骤;
[0176] 在扫描进程进行中,判断前一事件是否为斜坡事件的结果为否,则转至判断间隔事件的次数是否为0步骤;
[0177] 若扫描进程尚未开始,则将出错标识置为“真”。
[0178] 首先依据间隔事件(INTERVAL)的具体内容,更新持续时间长度(interval_time)、重复次数(ntimes)以及额外时间(extra_time)的数值。
[0179] i)在预加重开启标识(preflag)为“假”的情况下:
[0180] 若当前事件的前一事件为斜坡事件(RAMP)的标识(last_inter_missing)为“假”,则表明前一次发生的事件为间隔事件(INTERVAL),在此情况下,需要将梯度波形数据列表(calced_ramps[buf_inx][j](buf_inx为当前位置索引指针值,j=0、1、2))的位置索引指针(buf_inx)加1,而后按所定义的用于DAC输出的梯度波形数据列表数据结构要求填充该梯度波形数据列表的内容。
[0181] 若当前事件的前一事件为斜坡事件(RAMP)的标识(last_inter_missing)为“真”,则表明前一次发生的事件为斜坡事件(RAMP),在此情况下,需要在斜坡事件(RAMP)的最后一步的持续时间修改为原最后一步的持续时间加上间隔事件(INTERVAL)持续时间(interval_time),同时将重复次数(ptimes)减1;若更新后的重复次数(ntimes)仍大于0,则将梯度波形数据列表(calced_ramps[buf_inx][j](buf_inx为当前位置索引指针值,j=0、1、2))的位置索引指针(buf_inx)加1,而后按照所定义的用于DAC输出的梯度波形数据列表的数据结构要求填充该梯度波形数据列表的内容;在上述操作结束后,将当前事件的前一事件为斜坡事件(RAMP)的标识(last_inter_missing)设置为“假”。
[0182] ii)在预加重开启标识(preflag)为“真”的情况下:
[0183] 若当前事件的前一事件为斜坡事件(RAMP)的标识(last_inter_missing)为“假”,则表明前一次事件为间隔事件(INTERVAL),在此情况下,将梯度波形数据列表(calced_ramps[buf_inx][j](buf_inx为当前位置索引指针值,j=0、1、2))的位置索引指针(buf_inx)加1,而后按照所定义的该梯度波形数据列表数据结构要求填充梯度波形数据列表内容
[0184] 若当前事件的前一事件为斜坡事件(RAMP)的标识(last_inter_missing)为“真”,表明前一次发生的事件为斜坡事件(RAMP),则根据不同情况按如下两种方式进行处理。
[0185] (1)若间隔事件(INTERVAL)持续时间(interval_time)小于12.5s或额外时间(extra_time)小于20us,则执行预加重计算。在这种情况下,需要在预加重计算过程中将各通道的梯度输出幅值及其持续时间存入间隔事件(INTERVAL)数值表(preint_calced[i][j];i=0、1、2;j=0..4*预加重步数(presteps))中;当预加重计算结束后,需要通过间隔事件(INTERVAL)的预加重通道(pre.interval.chs)将间隔事件(INTERVAL)数值表(preint_calced[i][j];i=0、1、2;j=0..4*预加重步数(presteps))经数据传送通道存储到梯度波形数据池中,同时还需要将保存在用于DAC输出的梯度波形数据列表(calced_ramps[buf_inx][1];buf_inx为当前位置索引指针值)中的前一次斜坡事件(RAMP)的步数修改为原来的步数加上当前INTERVAL的预加重步数(presteps),并按通道0、通道1、通道2的梯度输出幅值及其持续时间的顺序,将当前间隔事件(INTERVAL)的计算结果,填充到用于DAC输出的梯度波形数据列表(calced_ramps[buf_inx][j];buf_inx为当前位置索引指针值;j=RAMP的预加重步数(presteps)*4+3))中,同时将重复次数(ntimes)减1;若执行减1操作之后的重复次数(ntimes)仍大于0,则将梯度波形数据列表(calced_ramps[buf_inx][j](buf_inx为当前位置索引指针值,j=0、1、2))的位置索引指针(buf_inx)加1,而后按所定义的梯度波形数据列表数据结构要求填充梯度波形数据列表内容。
[0186] (2)若间隔事件(INTERVAL)持续时间(interval_time)大于12.5s或额外时间(extra_time)大于20us,则不需执行预加重计算。在这种情况下,需要对斜坡事件(RAMP)的最后一步的持续时间进行更新,更新后的数值为原斜坡事件(RAMP)的最后一步的持续时间加上间隔事件(INTERVAL)持续时间(interval_time),同时将重复次数(ntimes)减1;若执行减1操作之后的重复次数(ntimes)仍大于0,则将梯度波形数据列表(calced_ramps[buf_inx][j](buf_inx为当前位置索引指针值;j=0、1、2))的位置索引指针(buf_inx)加1,而后按所定义的梯度波形数据列表的数据结构要求填充该梯度波形数据列表的内容;
[0187] 在结束上述操作后,将当前事件的前一事件为斜坡事件(RAMP)的标识(last_inter_missing)设置为“假”。
[0188] 斜坡事件的处理
[0189] 斜坡事件的处理需要相续完成如下操作:
[0190] 在扫描进程执行中,根据斜坡算法进行斜坡计算,保存计算结果,并将计算得到的数据根据三维数模转换器的要求进行格式调整并缓存;
[0191] 判断预加重操作是否开启,如开启,则根据预加重算法对斜坡计算得到的数据进行预加重计算,缓存总预加重步数以及各步所具有的预加重特性的梯度输出幅值及其持续时间;
[0192] 在梯度波形数据列表中当前事件标识置为“斜坡”,填充由斜坡事件的预加重计算所得到的总预加重步数、斜坡类型以及由预加重计算后所得到的具有预加重特性的通道梯度幅值及各步持续时间;
[0193] 判断当前事件是否为斜坡事件类型,如果是斜坡事件类型,则将当前事件的前一斜坡事件的标识置为“真”;
[0194] 如果预加重操作没有开启,则梯度波形数据列表当前事件标识置为“斜坡”,并填充斜坡的步数、斜坡类型以及各步的通道幅值及其持续时间;
[0195] 接续判断当前事件是否为斜坡事件类型步骤;
[0196] 如果扫描进程未开始,则置出错标识为“真”。
[0197] 依据该事件的属性内容更新RAMP步数(nsteps)、每步的持续时间(ramp_interval)以及斜坡事件(RAMP)执行完毕后各通道(0、1、2)的梯度幅值列表(g.tab[i][j],i=0、1、2;j=0、1、2),设定各通道(0、1、2)的斜坡(RAMP)比例参数在列表(ramptable)中的位置索引指针;在完成上述更新和设定操作之后,根据梯度通道的梯度幅值列表(g.tab[i][j],i=0、1、2;j=0、1、2)的内容,计算出事件执行完毕后各通道幅值(end[i];i=0、1、2)及相对于先前幅值的每通道幅度增加量(diff[i];i=0、1、2)。
[0198] i)在预加重开启标识(preflag)为“假”的情况下:
[0199] 按照RAMP算法执行斜坡事件(RAMP)计算,在计算过程中将通道幅值缓存到通道幅值列表(g.contr[i][j])中,并将计算得到的通道幅值g.contr[i][j]进行溢出处理,而后将该通道幅值转换为符合DAC器件输入格式的数据,并将其缓存在具有RAMP特性的梯度波形数据存储器(FIFO)中。在RAMP计算结束之后,通过数据传输通道将结果数据传到梯度波形数据池中,将梯度波形数据列表(calced_ramps[buf_inx][j](buf_inx为当前位置索引指针值;j=0、1、2))的位置索引指针(buf_inx)加1,而后按所定义的梯度波形数据列表的数据结构要求填充该梯度波形数据列表的内容,即将calced_ramps[buf_inx][1]设置为RAMP的步数(nsteps),三个通道各RAMP步的梯度幅值按通道0、1、2及持续时间(ramp_interval)的顺序填充到梯度波形数据列表(calced_ramps[buf_inx][j](j=3、...、nsteps*4+3))中。若RAMP类型为普通型而非“raw”型,则上述操作结束后还需将当前事件的前一次事件为斜坡事件(RAMP)的标识(last_inter_missing)置为“真”。
[0200] ii)在预加重开启标识(preflag)为“真”的情况下:
[0201] 按照RAMP算法执行斜坡事件(RAMP)计算,在计算过程中将通道幅值缓存到通道幅值列表(g.contr[i][j])中,并将计算得到的通道幅值g.contr[i][j]进行溢出处理,而后将该通道幅值转换为符合DAC器件输入格式的数据,并将其保存在具有RAMP特性的梯度波形数据存储器(FIFO)中。而后启动预加重计算,在计算过程中需要将带梯度预加重特性的梯度输出幅值缓存在具有RAMP特性和预加重特性的梯度波形数据存储器(FIFO)中。在上述运算结束后,通过数据传输通道将该梯度波形存储器(FIFO)中的数据传到梯度波形数据池中,将梯度波形数据列表(calced_ramps[buf_inx][j](buf_inx为当前位置索引指针值;j=0、1、2))的位置索引指针(buf_inx)加1,而后按所定义的梯度波形数据列表的数据结构要求填充该梯度波形数据列表的内容,即将calced_ramps[buf_nx][1]设置为RAMP的预加重步数(presteps),三个通道各RAMP预加重步的梯度幅值按通道0、1、2及持续时间(ramp_interval)的顺序填充到梯度波形数据列表(calced_ramps[buf_inx][j](j=3、...、presteps*4+3))中。若RAMP类型为普通型而非“raw”型,则上述操作结束后还需将当前事件的前一次事件为斜坡事件(RAMP)的标识(last_inter_missing)置为“真”。
[0202] 结束或中止事件的处理
[0203] 所述结束事件、中止事件的处理需要相续完成如下操作:
[0204] 在扫描进程执行中,将扫描中标志置为“假”,梯度波形数据列表当前事件标识置为“结束”。
[0205] 若扫描已经开始,则将扫描进行中标识(scaning)置为“假”;梯度波形数据列表(calced_ramps[buf_inx][j](buf_inx为当前位置索引指针值;j=0、1、2))的位置索引指针(buf_inx)加1,并将梯度波形数据列表(calced_ramps[buf_inx][0](buf_inx为当前位置索引指针值)填充为“END”。
[0206] 若扫描尚未开始,则不执行操作。
[0207] 辅助事件的处理
[0208] 辅助事件的处理如下:
[0209] 在扫描进程执行中,将梯度波形数据列表当前事件标识置为“OTHER”。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈