Я пытаюсь смоделировать данные фМРТ, чтобы проверить эффективность экспериментального плана. Я следил за парой уроков и у меня есть вопрос. Сначала мне нужно смоделировать ответ BOLD путем свертки временных рядов входного стимула с канонической функцией гемодинамического ответа (HRF). В первом учебнике, который я проверил, говорилось, что можно создать HRF с любой амплитудой, если «форма» HRF правильная, поэтому они создали следующий HRF в Matlab:
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 ]
А затем свернул HRF со стимулом, просто используя «conv», так что:
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 конкретных вопроса.
- Страница справки «gampdf» очень короткая и говорит только о том, что «6» и «10» в каждом вызове функции представляют «A», который является параметром «формы». Что это значит? Никакой другой информации он не дает. Почему в первом вызове 6, а во втором 10?
Этот вопрос напрямую связан с предыдущим. Этот код написан для ситуации, когда 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 ТУ, поэтому значения 1-6) с соответствующее исправление, которое может быть остальными значениями, но я не уверен.
Заключительный вопрос. Другой код не «масштабирует» HRF до амплитуды, равной 1. Будет ли это иметь значение в конечном счете?