Hi,
On Sun, Feb 23, 2014 at 7:30 AM, H. Nebl
<[log in to unmask]> wrote:
> Dear everyone,
>
>
> recently I looked at the "time domain" output for different durations. Based on the scaling of the y axis it seems that a duration of 0 s is closer to a duration of something between 0.5 and 1 s (see attachment) than to 0.1 s. Does this make sense?
I think that's right - that a duration of 0 is special-cased so that
it generates a regressor that is almost the same as an event with
duration 1 second.
The machinery of the thing is that the events start of as 'neural
causes' - that is - usually - delta functions or step functions
expressing neurons switching on and then off. Then these are
convolved with the hemodynamic basis functions to give you the
regressors.
t's been a long time since I had matlab on my computer and I went
through this code, but I have some vague memory that this is the
relevant code :
https://bitbucket.org/matthewbrett/spm-versions/src/805b10beae8a2f66225e51ca2491983740a1a021/spm8/spm_get_ons.m#cl-230
The following might not be right - but maybe it will give you an idea.
The neural causes time course is at high time resolution - usually
1/16 of a TR - call this 'dt'. An single event lasting 1 dt will have
a single '1' in the neural causes time course corresponding to its
onset, with the surrounding values being zero. An event with
duration 2 * dt will have two 1s and the rest 0, and an event with
duration 1 second will have 1 / dt 1s and the rest 0.
I think the code above is special-casing the case when all events in a
particular condition have duration 0. For this case the 1s in the
time course corresponding to the onsets get multiplied up to 1 / dt
(typically 16 / TR). When convolved with the basis functions, this
looks almost the same as the result of convolving a block of 1 /dt 1
values (the result of a 1 second specified duration as above).
I hope someone who knows the code will correct me and / or explain better.
Cheers,
Matthew
|