function [hrf,p,t] = spm_hrf(dt,P);% returns a hemodynamic response function% FORMAT [hrf,p,t] = spm_hrf(RT,[p]);% dt   - s% p    - parameters of the response function (two gamma functions)%%							defaults%							(seconds)%	p(1) - delay of response (relative to onset)	   6%	p(2) - delay of undershoot (relative to onset)    16%	p(3) - dispersion of response			   1%	p(4) - dispersion of undershoot			   1%	p(5) - ratio of response to undershoot		   6%	p(6) - onset (seconds)				   0%	p(7) - length of kernel (seconds)		  32%% hrf  - hemodynamic response function% p    - parameters of the response function% t     - time of response function%_______________________________________________________________________% @(#)spm_hrf.m	2.7 Karl Friston 99/05/17% global parameter%-----------------------------------------------------------------------if nargin < 1    dt = 0.001;endglobal fMRI_T; if isempty(fMRI_T), fMRI_T = 16; end;% default parameters%-----------------------------------------------------------------------p     = [6 16 1 1 6 0 32];if nargin > 1      p(1:length(P)) = P;end% modelled hemodynamic response function - {mixture of Gammas}%-----------------------------------------------------------------------u     = [0:(p(7)/dt)] - p(6)/dt;hrf   = spm_Gpdf(u,p(1)/p(3),dt/p(3)) - spm_Gpdf(u,p(2)/p(4),dt/p(4))/p(5);hrf   = hrf'/sum(hrf);t = p(6):dt:p(6)+p(7);