首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PTB中的闪烁频率

PTB中的闪烁频率
EN

Stack Overflow用户
提问于 2015-07-03 03:23:42
回答 1查看 1.3K关注 0票数 1

我尝试在PsychToolbox中呈现一个4 4Hz的闪烁刺激,持续5秒,然后是一个500 4Hz的音调。有没有人知道该怎么做?我一直使用vbl或屏幕刷新率来计算闪烁频率,但我不确定我是否在正确的轨道上。我也不知道如何在PTB中呈现听觉刺激(我已经尝试过声音功能了)。任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2015-08-07 18:12:51

我不确定PTB中的声音表示(我从来没有做过),但您似乎在闪烁频率的正确轨道上。我这样做的方法是确定屏幕刷新率,除以您希望该刷新率提供的刺激的总时间长度(这将得到在此时间内绘制的帧数),然后使帧计数器在每次翻转后加1。然后,您可以使用此帧计数器打开或关闭命令。

最小的例子(以4 4Hz随机改变背景颜色,持续5秒):

代码语言:javascript
复制
[w, wRect]=Screen('OpenWindow', 0);
MaxTime = 5; %Set maximum time for all stimuli to be presented in seconds
Hz = 4; %Set Hz for stimulus flicker
Screen('Flip',w);
Frametime=Screen('GetFlipInterval',w); %Find refresh rate in seconds

FramesPerFull = round(5/Frametime); % Number of frames for all stimuli
FramesPerStim = round((1/Hz)/Frametime); %Number of frames for each stimulus

StartT = GetSecs; %Measure start time of session
Framecounter = 0; %Frame counter begins at 0
while 1

    if Framecounter==FramesPerFull
        break; %End session
    end

    if ~mod(Framecounter,FramesPerStim)
        randomcolour = rand(1, 3)*255; %Change background stimulus colour
    end

    Screen('FillRect', w, randomcolour, wRect);
    Screen('Flip',w);

    Framecounter = Framecounter + 1; %Increase frame counter
end

EndT = GetSecs; %Measure end time of session
Screen('CloseAll');

EndT - StartT %Shows full length of time all stimuli were presented

定时精度将取决于您的特定刷新率。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31192952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档