在 MATLAB 中对 hrf 时间序列建模 [已关闭]

问题描述 投票:0回答:1

我正在尝试对功能磁共振成像数据进行建模,以便检查实验设计的有效性。我一直在关注几个教程并有一个问题。 我首先需要通过将刺激输入时间序列与规范血液动力学响应函数 (HRF) 进行卷积来对 BOLD 响应进行建模。我检查的第一个教程说,只要 HRF 的“形状”正确,就可以制作任意幅度的 HRF,因此他们在 matlab 中创建了以下 HRF:

hrf = [ 0 0 1 5 8 9.2 9 7 4 2 0 -1 -1 -0.8 -0.7 -0.5 -0.3 -0.1 0 ]

然后仅使用“conv”将 HRF 与刺激进行卷积:

hrf_convolved_with_stim_time_series = conv(input,hrf);

这非常简单,但我希望我的模型最终尽可能准确,因此我检查了更高级的教程,他们执行了以下操作。首先,他们创建了 20 个时间点的向量,然后使用“gampdf”函数创建 HRF。

t = 1:1:20; % MEASUREMENTS
h = gampdf(t,6) + -.5*gampdf(t,10); % HRF MODEL
h = h/max(h); % SCALE HRF TO HAVE MAX AMPLITUDE OF 1

这样做比更简单的方法有好处吗?我想我有 3 个具体问题。

  1. “gampdf”帮助页面非常短,只说每个函数调用中的“6”和“10”代表“A”,这是一个“shape”参数。这是什么意思?它没有提供其他信息。为什么第一次调用是 6,第二次调用是 10?
  2. 这个问题与上面的问题直接相关。此代码是针对 TR = 1 并且刺激非常短(如 1 秒)的情况编写的。在我的情况下,我的 TR = 2 并且我的刺激相当长(12 秒)。我尝试通过执行以下操作来调整上述代码,以针对我的情况制作一个有效的 HRF:

    t = 1:2:40; % 2s timestep with the 40 to try to equate total time to above
    h = gampdf(t,6) + -.5*gampdf(t,10); % HRF MODEL
    h = h/max(h); % SCALE HRF TO HAVE MAX AMPLITUDE OF 1
    

因为我不知道“gampdf”参数的含义(或者实际上该行的作用),我不确定这是否给了我我正在寻找的东西。我基本上得到了 20 个值,其中 1-14 有一些数值,但 15-20 都是 0。我假设在整个 12 秒刺激期内会有响应(前 6 个 TR,因此值为 1-6)适当的纠正可能是其余的值,但我不确定。

最后一个问题。另一个代码不会“缩放”HRF 使其幅度为 1。最终这会重要吗?

matlab convolution
1个回答
0
投票

您选择的标准 HRF 取决于 BOLD 信号来自大脑的哪个位置。仅仅选择任何 HRF 是不合适的。模型的最佳来源将来自于简短的评论。我链接了一篇讨论多个 HRF 模型的优点的论文。方法部分提出了一些要点。

© www.soinside.com 2019 - 2024. All rights reserved.