核磁共振成像学习笔记——从FID信号到K空间
在理想磁场环境下(没有不存在场不均匀性),对于一个没有梯度场的方块。


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


设此信号为\(S(t)\),则此信号由\(S_c(t)\)与\(S_s(t)\)组成,分别组成\(S(t)\)的实部与虚部。
\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.
\]
这是我们的接受线圈接收到的两组正交信号。
再利用欧拉公式
\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.
\]
使
\]
则
\]
此时,我们忽略衰减项\(e^{-t/T_2}\),则
\]
这是我们对单个方块进行激发的结果,那么此时,引入梯度磁场进行空间定位。


根据拉莫尔进动(Larmor precession)
\]
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)\)表示方块中每个位置在加权设定后的信号强度,则
\]
其中
\]
设定\(G_x\)为frequency encoding gradient,\(G_y\)为Phase encoding gradient,和序列图中保持一致,\(0\)至\(t\)为开始采样至实时采样的时间,SE序列图中的\(t_1\)和\(t_2\)为其中的两个\(t\)(这是一个变上限积分)。
令
\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)\)与\(\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相当于使得不同跑道上的跑者有不同的跑步速度。
让我们回到公式
\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空间的更多相关文章
- APUE学习笔记——10.9 信号发送函数kill、 raise、alarm、pause
转载注明出处:Windeal学习笔记 kil和raise kill()用来向进程或进程组发送信号 raise()用来向自身进程发送信号. #include <signal.h> int k ...
- APUE学习笔记——10.可靠信号与不可靠信号
首先说明:现在大部分Unix系系统如Linux都已经实现可靠信号. 1~31信号与SIGRTMIN-SIGRTMAX之间并不是可靠信号与不可靠信号的区别,在大多数系统下他们都是可靠信号. 只不过: 1 ...
- C++学习笔记(1)——数据类型占空间大小
boolean bool 1 byte character char 1 byte May be signed or unsigned wchar_t 1 byte char16_t ...
- oracle 学习笔记(2)创建表空间及用户授权
原文:http://www.cnblogs.com/smartvessel/archive/2009/07/06/1517690.html Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的 ...
- Oracle学习笔记—数据库,实例,表空间,用户、表之间的关系
之前一直使用的关系型数据库是Mysql,而新公司使用Oracle,所以最近从网上搜集了一些资料,整理到这里,如果有不对的地方,欢迎大家讨论. 基本概念: 数据库:Oracle 数据库是数据的物理存储. ...
- 主席树学习笔记(静态区间第k大)
题目背景 这是个非常经典的主席树入门题——静态区间第K小 数据已经过加强,请使用主席树.同时请注意常数优化 题目描述 如题,给定N个整数构成的序列,将对于指定的闭区间查询其区间内的第K小值. 输入输出 ...
- AXI_LITE源码学习笔记
AXI_LITE源码学习笔记 1. axi_awready信号的产生 准备接收写地址信号 // Implement axi_awready generation // axi_awready is a ...
- Linux学习笔记19——信号2
上一节中讲到了sigprocmask函数,它的作用是检查或修改它的进程信号掩码,这一节我们主要学习捕捉与忽略信号的函数sigaction和等待信号函数. 一 sigaction函数的作用 定义在接收 ...
- DBus学习笔记
摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
随机推荐
- KingbaseES通过sys_waldump解析wal日志
前言 oracle中的redo日志我们无法直接读取,然而对于KingbaseES数据库,我们可以利用sys_waldump工具解析wal日志,查看wal日志记录的信息. 我们可以利用 sys_wald ...
- Springboot mybatis总结
mybatis 总结 属性配置 1. mybatis.configuration.mapUnderscoreToCamelCase=true mapUnderscoreToCamelCase用于映射表 ...
- 【设计模式】Java设计模式 - 原型模式
[设计模式]Java设计模式 - 原型模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 原创作品,更多关注我CSDN: 一个有梦有戏的人 准备将博客园.CSDN一起 ...
- 使用Kali的wifite和aircrack-ng联合破解wifi密码
准备材料 有kali的虚拟机,这里推荐VM 一个超级便宜的USB无线网卡,很便宜三十几块钱 一个靠谱的WPA密码字典(关于字典文件,我这里整理了好多,可联系我.QQ:1213456261) 1.运行k ...
- flink-cdc实时同步mysql数据到elasticsearch
本文首发于我的个人博客网站 等待下一个秋-Flink 什么是CDC? CDC是(Change Data Capture 变更数据获取)的简称.核心思想是,监测并捕获数据库的变动(包括数据 或 数据表的 ...
- CentOS7添加永久路由
CentOS7永久静态路由需要写到 /etc/sysconfig/network-scripts/route-****** 文件中,故在/etc/sysconfig/network-scripts/下 ...
- Netty 学习(五):服务端启动核心流程源码说明
Netty 学习(五):服务端启动核心流程源码说明 作者: Grey 原文地址: 博客园:Netty 学习(五):服务端启动核心流程源码说明 CSDN:Netty 学习(五):服务端启动核心流程源码说 ...
- 工作7年收集到的git命令
概念 git 中的术语解释: 仓库也叫版本库(repository) stage:暂存区,add 后会存到暂存区,commit 后提交到版本库 git 安装 linux 下安装 git 第一种方法:y ...
- sql中更换函数REPLACE
update <表名> ser <更换的列名> replace(<更换的列名>,'<更换前的对象>','<更换后的对象>') 例 updat ...
- 关于docker创建容器报错-docker: Error response from daemon: runtime "io.containerd.runc.v2" binary not installed
今天在对一台服务器(docker相关的业务服务器)进行OS补丁时,默认使用的 yum update -y 对所有的安装包进行了升级 升级完成后,让应用方检查确认应用及功能是否一切正常,如果不正常,严重 ...