在理想磁场环境下(没有不存在场不均匀性),对于一个没有梯度场的方块。





此时,RF pulse的两路正交信号(相位差为90°)对此方块进行激发,然后收取信号,我们可以得到由此方块产生的FID信号。





设此信号为\(S(t)\),则此信号由\(S_c(t)\)与\(S_s(t)\)组成,分别组成\(S(t)\)的实部与虚部。

\[\left\{
\begin{aligned}
S_c(t)=M_{xy}e^{-t/T_2}\cos({\omega}t)\\
S_s(t)=M_{xy}e^{-t/T_2}\sin({\omega}t)
\end{aligned}
\right.
\]

这是我们的接受线圈接收到的两组正交信号。

再利用欧拉公式

\[\left\{
\begin{aligned}
\cos({\omega}t)=\frac{e^{i{\omega}t}+e^{-{i{\omega}t}}}{2}\\
\sin({\omega}t)=\frac{e^{i{\omega}t}-e^{-{i{\omega}t}}}{2i}
\end{aligned}
\right.
\]

使

\[ S(t)=S_c(t)+iS_s(t)
\]

\[ S(t)=M_{xy}*e^{-t/T_2}*e^{-i{\omega}t}
\]

此时,我们忽略衰减项\(e^{-t/T_2}\),则

\[ S(t)=M_{xy}*e^{-i{\omega}t}
\]

这是我们对单个方块进行激发的结果,那么此时,引入梯度磁场进行空间定位。





根据拉莫尔进动(Larmor precession)

\[ \omega={\gamma}B
\]

Phase encoding gradient和frequency encoding gradient的出现会使得这个方块内部的每个位置的进动频率\(\omega\)发生变化。但需要注意Phase encoding gradient和frequency encoding gradient是不能够同时开启的(SE序列中)。然后,我们看自旋回波序列(SE)。



在接收信号前,分别开启了一段Phase encoding gradient和frequency encoding gradient。在接收信号的时候,frequency encoding gradient全程保持开启。

先进行公式推导,\(S(t)\)即为上文理想方块条件下推导得出的,我们将\(M_{xy}\)设定为\(\rho(x,y)\)表示方块中每个位置在加权设定后的信号强度,则

\[ S(t)=\iint{\rho(x,y)e^{-i\phi(x,y,t)}}dxdy
\]

其中

\[ \phi(x,y,t)={\gamma}\int_{0}^{t}{[G_x(t^{\prime})x+G_y(t)y]}dt^{\prime}
\]

设定\(G_x\)为frequency encoding gradient,\(G_y\)为Phase encoding gradient,和序列图中保持一致,\(0\)至\(t\)为开始采样至实时采样的时间,SE序列图中的\(t_1\)和\(t_2\)为其中的两个\(t\)(这是一个变上限积分)。

\[\left\{
\begin{aligned}
k_x=2\pi\int_{0}^{t}{G_x(t^{\prime})}dt^{\prime}\\
k_y=2\pi\int_{0}^{t}{G_y(t)}dt^{\prime}
\end{aligned}
\right.
\]

\[ S(t)=\iint{\rho(x,y)e^{-i2\pi[k_xx+k_yy]}}dxdy
\]

\[ S(k_x,k_y)=\iint{\rho(x,y)e^{-i2\pi[k_xx+k_yy]}}dxdy
\]

至此,在数学上说明了\(S(t)\)与\(\rho(x,y)\)互为傅里叶变换对。这时,我们将方块分割为一个3*3的方块进行进一步的说明。



其中的数值为该位置对应的\(\rho(x,y)\)数值。

以\(S_c(t)\)信号为例,其组成的是\(S(t)\)中的实部,在没有进行空间编码前



根据SE序列的波形,先是进行了Phase encoding gradient



Phase encoding gradient改变的也是\(\omega\),但作用了一段时间就停止了,相当于把纵向的各个单位以不同的\(\omega\)推了相同的时间,那么他们的相位\(\theta\)就发生了变化。并且,通过改变Phase encoding gradient的斜率,可以使得\(\theta\)的数值发生变化,对于一个3*3的方块,想要进行空间定位就要改变三次Phase encoding gradient斜率。

然后在收取数据的同时,进行frequency encoding gradient



frequency encoding gradient同样改变了\(\omega\),并且与收取信号同时进行,就此完成了区块的空间定位。通俗的来说,假设这些区块在一个环形的跑道进行赛跑,Phase encoding gradient就相当于在跑步开始之前,将同一个跑道上的每个跑者推到不同的起点上,frequency encoding gradient相当于使得不同跑道上的跑者有不同的跑步速度。

让我们回到公式

\[\left\{
\begin{aligned}
k_x=2\pi\int_{0}^{t}{G_x(t^{\prime})}dt^{\prime}\\
k_y=2\pi\int_{0}^{t}{G_y(t)}dt^{\prime}
\end{aligned}
\right.
\]

这里面的\(k_x\)与\(k_y\)就是位于K空间的\(xy\)坐标(注意\(t\)与\(t^{\prime}\)的区别)。\(G_y(t)\)就是Phase encoding gradient,在SE序列中每次都需要重新变化斜率,需要在y方向将区域分割成多少块,就需要变化多少次斜率,每次变化都需要经过一个\(TR\)。而\(G_x\)则保持不变,并且只需要增加采样点数就可以增加此方向的区块分割,不需要增加采样的时间。故我们使用SE序列进行图像重建的时候,最好将分块更多的方向对应frequency encoding gradient,因为每次Phase encoding gradient都需要消耗一个\(TR\)。这里我截取MRI,The Basics书中的一幅图说明这一点。



对于一个\(3*3\)的方块,哪边放在frequency encoding gradient都无所谓。但如果是一个\(128*256\)的方块,那么就需要将256的那条边放在frequency encoding gradient上,以减少重建时间。

参考:

[1]MRI From Picture to Proton

[2]MRI, The Basics

[3]MRI磁振影像學 盧家鋒

[4]MRI原理-信号 - lemon lelieven的文章 - 知乎 https://zhuanlan.zhihu.com/p/137255997

[5]【磁共振的K空间】 https://www.bilibili.com/video/BV1ch411e7Yc/?share_source=copy_web&vd_source=0e8c3fe50c67df43ceeb30f63e36eb0d

核磁共振成像学习笔记——从FID信号到K空间的更多相关文章

  1. APUE学习笔记——10.9 信号发送函数kill、 raise、alarm、pause

    转载注明出处:Windeal学习笔记 kil和raise kill()用来向进程或进程组发送信号 raise()用来向自身进程发送信号. #include <signal.h> int k ...

  2. APUE学习笔记——10.可靠信号与不可靠信号

    首先说明:现在大部分Unix系系统如Linux都已经实现可靠信号. 1~31信号与SIGRTMIN-SIGRTMAX之间并不是可靠信号与不可靠信号的区别,在大多数系统下他们都是可靠信号. 只不过: 1 ...

  3. C++学习笔记(1)——数据类型占空间大小

    boolean bool 1 byte   character char 1 byte May be signed or unsigned   wchar_t 1 byte     char16_t ...

  4. oracle 学习笔记(2)创建表空间及用户授权

    原文:http://www.cnblogs.com/smartvessel/archive/2009/07/06/1517690.html Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的 ...

  5. Oracle学习笔记—数据库,实例,表空间,用户、表之间的关系

    之前一直使用的关系型数据库是Mysql,而新公司使用Oracle,所以最近从网上搜集了一些资料,整理到这里,如果有不对的地方,欢迎大家讨论. 基本概念: 数据库:Oracle 数据库是数据的物理存储. ...

  6. 主席树学习笔记(静态区间第k大)

    题目背景 这是个非常经典的主席树入门题——静态区间第K小 数据已经过加强,请使用主席树.同时请注意常数优化 题目描述 如题,给定N个整数构成的序列,将对于指定的闭区间查询其区间内的第K小值. 输入输出 ...

  7. AXI_LITE源码学习笔记

    AXI_LITE源码学习笔记 1. axi_awready信号的产生 准备接收写地址信号 // Implement axi_awready generation // axi_awready is a ...

  8. Linux学习笔记19——信号2

    上一节中讲到了sigprocmask函数,它的作用是检查或修改它的进程信号掩码,这一节我们主要学习捕捉与忽略信号的函数sigaction和等待信号函数. 一  sigaction函数的作用 定义在接收 ...

  9. DBus学习笔记

    摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的 ...

  10. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

随机推荐

  1. 从云AK泄露利用看企业特权管理

    从云AK泄露利用看企业特权管理 目录 - 缘起 - 当前主流AK泄露检测方式 - 防止AK滥用的关键要素? - 哪些算特权账号管理? - 如何做特权账号管理? - 特权管理与堡垒机.IAM.零信任的关 ...

  2. 海康摄像机使用GB28181接入SRS服务器的搭建步骤---源码安装的方式

    下载代码 地址:https://github.com/ossrs/srs-gb28181 https://github.com/ossrs/srs-gb28181.git 注意:使用的是含有gb281 ...

  3. Kubernetes 多租户:资源配额

    资源配额用于管理命名空间中对象使用的资源量,我们可以按 CPU 和内存用量或对象数量来设置配额.通过资源配额,可以确保租户不会使用超过其分配份额的集群资源. 资源配额是通过 ResourceQuota ...

  4. Linux 宝塔部署 ASP.NET Core 应用

    第一步,发步应用 我这是一个API 应用和 MVC 应用 设置,服务器上要运行的端口 API 端口5000 MVC 端口5001 打包文件夹,发步 1.桌面新建俩个文件夹 2.右键项目发步,选中iis ...

  5. Deepin系统navicat15安装

    Deepin系统安装navicat15(已验证) 下载Navicat15 通过下面地址下载Navicat15,默认下载到桌面即可 $ https://download.navicat.com.cn/d ...

  6. day43-反射02

    2.Class类 2.1基本介绍 Class类也是类,因此也继承Object类 Class类对象不是new出来的,而是系统创建的 对于某个类的Class类对象,在内存中只有一份,因为类只加载一次 每个 ...

  7. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(25)-Fiddler如何优雅地在正式和测试环境之间来回切换-下篇

    1.简介 在开发或者测试的过程中,由于项目环境比较多,往往需要来来回回地反复切换,那么如何优雅地切换呢?宏哥今天介绍几种方法供小伙伴或者童鞋们进行参考. 2.实际工作场景 2.1问题场景 (1)已发布 ...

  8. PAT (Advanced Level) Practice 1002 A+B for Polynomials 分数 25

    This time, you are supposed to find A+B where A and B are two polynomials. Input Specification: Each ...

  9. [CG从零开始] 3. 安装 pyassimp 库加载模型文件

    assimp 是一个开源的模型加载库,支持非常多的格式,还有许多语言的 binding,这里我们选用 assimp 的 python 的 binding 来加载模型文件.不过社区主要是在维护 assi ...

  10. C# 内存泄漏之 Internal 关键词代表什么?

    一:背景 1. 背景 前段时间有位朋友咨询说他的程序出现了非托管内存泄漏,说里面有很多的 HEAP_BLOCK 都被标记成了 Internal 状态,而且 size 都很大, 让我帮忙看下怎么回事? ...