ALFF的计算步骤
- 对BOLD信号进行0.01-0.1Hz滤波,得到低频波动
- 进行傅里叶变换,变换到频域,得到幅度谱(或功率谱)
- 计算0.01-0.1Hz的幅度的平均值(功率开方的平均值),得到ALFF值
- 除以全脑平均的ALFF值进行归一化
原始BOLD信号
经过滤波后的BOLD信号
经过滤波后的BOLD信号的频谱
Matlab代码
data = load('data.txt'); %读取存为txt格式的数据
[n,t] = size(data); %提取数据维度,n为体素数,t为时间点数
ALFF = zeros(n,1); %初始化存储ALFF的数组
for voxel = 1:1:n %计算所有体素的ALFF
data_fft = abs(fft(data(voxel)./length(data(voxel)))); %对data进行fft变换,并取幅度
ALFF(voxel) = mean(data_fft(ceil(0.01*t+1):ceil(0.1*t+1))); %找到0.01Hz-0.1Hz对应的索引值,根据信号的频率分辨率公式f=1/t,计算0.01hz处所对应的点:0.01/(1/t)+1=0.01*t+1
end
ALFF_mean = mean(ALFF);
mALFF = ALFF./ALFF_mean; %除以全脑平均的ALFF进行归一化