目前我在我的Uni中为我的论文建立了心理学上的刺激,4个刺激需要使用显示器刷新率在8.57 Hz,10 Hz,12 Hz和15 Hz闪烁,我的问题是,心理上可以这样做吗?还有什么功能可用于在心理上闪烁?到目前为止我所做的是创造需要闪烁的形状。闪烁效应必须取决于频率和相位
from psychopy import visual, event, core,gui ,data, logging #import c
from numpy import sin, pi
cyclepersecond=8.57142
#Penentuan pergeseran fasa efek grating
phase=0
phase1=0
phase2=0
phase3=0
phase4=0
#Penentuan Frekuensi temporal dari penampilan efek grating
#phaseincrement = (cyclepersecond*360)
#gratingtex=visual.GratingStim(win, res(1), res(2), [0 0 0 0])
win = visual.Window([1366,768], color='black', units='pix',fullscr=False,) #membuat Window
#pembuatan stimulus
kotak1=visual.Rect(win, width= 150,height =150,pos=(10,250),)
segitiga1=visual.Polygon(win, edges=3, radius=40,pos=(10,250))
#segitiga1.setColor([-1,1,-1], colorSpace='rgb')
kotak2=visual.Rect(win, width= 150, height=150,pos=(400,-200))
segitiga2=visual.Polygon(win, edges=3, ori=90,radius=40, pos=(400,-200))
kotak3=visual.Rect(win,width=150, height= 150, pos=(-400,-200))
segitiga3=visual.Polygon(win,edges=3,radius=40,ori=-90,pos=(-400,-200))
kotak4=visual.Rect(win,width= 150, height=150,pos=(0,-200))
lingkaran1=visual.Circle(win,radius=40, edges=32,pos=(0,-200))
trialClock=core.Clock()
t=0
while True:
t=trialClock.getTime()
kotak1.contrast=sin(t*pi*2)
kotak1.draw()
segitiga1.draw()
kotak2.draw()
segitiga2.draw()
kotak3.draw()
segitiga3.draw()
kotak4.draw()
lingkaran1.draw()
win.flip()
#core.wait(5.0)
for key in event.getKeys():
if key in ['escape','q']:
core.quit()
我从matlab的psychtoolbox中知道你可以使用翻转来实现闪烁效果,但我真的不知道如何在心理上做到这一点
答案 0 :(得分:2)
@ A_S00发布了一个很好的概念性答案。只是非常具体,假设您使用60 Hz监视器:
...这里假设频率是SHIFTS的频率(每秒8.57次移位)而不是CYCLES(每秒8.57次开关),因为后者在60 Hz监视器上是不可能的,因为你应该改变它第3帧和第4帧之间的图像。
因此,例如你会做12赫兹:
flicker_frequency = 12
current_frame = 0
while True:
# When to draw stimuli
if current_frame % (2*flicker_frequency) < flicker_frequency:
kotak1.contrast = sin(t*pi*2)
kotak1.draw()
segitiga1.draw()
kotak2.draw()
segitiga2.draw()
kotak3.draw()
segitiga3.draw()
kotak4.draw()
lingkaran1.draw()
# Show whatever has been drawn. Sometimes the stimuli, other times a blank screen. flip() waits for the next monitor update so the loop is time-locked to the screen here.
win.flip()
current_frame += 1 # increment by 1.
答案 1 :(得分:1)
PsychoPy似乎没有内置的闪烁功能。它的创建者Jon Pierce recommends通过以下方式实现闪烁:
$newhash ={
'user1@192.168.14.47' => {
type => 'ssh-rsa',
key => 'Key1',
user => ["user3","user4"]
},
'user2@192.168.18.10' => {
type => 'ssh-rsa',
key => 'Key2',
user => ["user3"]
}
}
create_resources('ssh_authorized_key',$newhash)
)frameN
)从帧编号中导出一个布尔值,对应于您想要的频率(以便它从一个帧的帧开始,然后在下一个帧块上为0,然后返回到1,等等。)因此,如果你的显示器是60Hz,%
将是6帧(或1/10秒),那么接下来的6帧为0,然后再为1,然后再为0,所以上。那会让你的10Hz闪烁;对于你想要实现的每个闪烁频率,你必须在模数函数中使用不同的除数。