張 婕 呂 勇
(天津師范大學(xué)心理與行為研究院,天津 30074)
計(jì)算機(jī)化心理學(xué)實(shí)驗(yàn)中的時(shí)間精度問題——以E-Prime為例
張婕呂勇
(天津師范大學(xué)心理與行為研究院,天津 30074)
在計(jì)算機(jī)化心理學(xué)實(shí)驗(yàn)中,獲得精確計(jì)時(shí)是關(guān)鍵問題。電腦硬件、操作系統(tǒng)及實(shí)驗(yàn)程序等均可能導(dǎo)致計(jì)時(shí)誤差。本文以心理學(xué)研究中應(yīng)用較廣的E-Prime軟件為例,探討在心理學(xué)實(shí)驗(yàn)中實(shí)現(xiàn)精確計(jì)時(shí)的原理和具體操作方法。實(shí)驗(yàn)者可通過選擇合適的電腦硬件,設(shè)置恰當(dāng)?shù)挠布?shù),根據(jù)具體的實(shí)驗(yàn)要求設(shè)置程序的計(jì)時(shí)參數(shù),優(yōu)化實(shí)驗(yàn)程序,在高優(yōu)先級(jí)下運(yùn)行程序,并測(cè)試和檢查計(jì)時(shí)數(shù)據(jù)等一系列措施,有效地提高實(shí)驗(yàn)的時(shí)間精度,得到符合要求的精確數(shù)據(jù)。
計(jì)算機(jī)化心理學(xué)實(shí)驗(yàn);時(shí)間精度;E-Prime
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展和完善,計(jì)算機(jī)化的心理學(xué)實(shí)驗(yàn)已經(jīng)被廣泛應(yīng)用于心理學(xué)研究的各個(gè)領(lǐng)域中。尤其是采用事件相關(guān)電位 (event-related potentials,ERP)、功能性磁共振(functional magnetic resonance image,fMRI)、腦磁圖(magnetoencephalograph,MEG)等技術(shù)的心理學(xué)實(shí)驗(yàn),更離不開計(jì)算機(jī)化的實(shí)驗(yàn)設(shè)計(jì)。常用的基于Windows操作系統(tǒng)的心理學(xué)實(shí)驗(yàn)軟件有:E-Prime、DMDX、DirectRT、Inquisit、Presentation、SuperLab、Stim等[1]。這些軟件可被用來控制刺激材料的呈現(xiàn)順序和持續(xù)時(shí)間,從而在被試身上引發(fā)所欲研究的心理活動(dòng)。另外,此類軟件還被用來記錄被試的按鍵動(dòng)作等,從而得到反應(yīng)時(shí)、正確率等行為指標(biāo)。此類軟件通常宣稱,對(duì)呈現(xiàn)刺激材料的控制和被試反應(yīng)的記錄可以達(dá)到毫秒級(jí)的時(shí)間精度。
但是,在實(shí)際的實(shí)驗(yàn)過程中,經(jīng)常會(huì)出現(xiàn)一些與預(yù)期不符的時(shí)間誤差,從而導(dǎo)致實(shí)驗(yàn)結(jié)果失真。有時(shí)研究者所要求的時(shí)間精度是他所使用的硬件設(shè)備所無法達(dá)到的,尤其是在刺激的呈現(xiàn)時(shí)間極短的情況下。
例如,有的研究者使用刷新率為120Hz的顯示器呈現(xiàn)20ms(2.4個(gè)刷新周期)的啟動(dòng)刺激[2],或呈現(xiàn)10ms(1.2個(gè)刷新周期)的閾下目標(biāo)刺激[3]。這些研究中,由于刺激的呈現(xiàn)時(shí)間不是刷新周期的整數(shù)倍,所以不能實(shí)現(xiàn)研究者的要求。
此外,有些論文沒有報(bào)告屏幕刷新率這一重要參數(shù),只報(bào)告了刺激的呈現(xiàn)時(shí)間。例如,呈現(xiàn)刺激12ms[4,5]或15ms[6]等。這些刺激的呈現(xiàn)時(shí)間只有在使用合適的刷新周期時(shí)才能實(shí)現(xiàn)。如,實(shí)現(xiàn)刺激呈現(xiàn)12ms時(shí),刷新周期必須是12ms、6ms或4ms等。如果其他研究者希望再次驗(yàn)證這些實(shí)驗(yàn)的結(jié)果或使用相同的實(shí)驗(yàn)范式進(jìn)行深入研究,可能會(huì)因?yàn)轱@示器的屏幕刷新率與原研究者使用的不同而無法實(shí)現(xiàn)。
另外,由于多任務(wù)計(jì)算機(jī)操作系統(tǒng)固有的特點(diǎn),導(dǎo)致實(shí)驗(yàn)程序運(yùn)行時(shí)可能被“掛起”,隨機(jī)中斷數(shù)百毫秒,如果無法及時(shí)記錄下該延遲時(shí)間值,實(shí)驗(yàn)數(shù)據(jù)中就會(huì)混入大得離譜的隨機(jī)時(shí)間誤差。
在實(shí)驗(yàn)沒有按照設(shè)計(jì)要求進(jìn)行的情況下,研究者收集到的數(shù)據(jù)就會(huì)缺乏可靠性,由此可能得出錯(cuò)誤的研究結(jié)論。因此,研究者在具有高計(jì)時(shí)精度要求的實(shí)驗(yàn)中要充分考慮實(shí)驗(yàn)的軟硬件環(huán)境,并采取必要的措施,才能獲得可靠的數(shù)據(jù)。
E-Prime是美國卡耐基—梅隆大學(xué)和匹茲堡大學(xué)聯(lián)合開發(fā)的一款計(jì)算機(jī)化心理學(xué)研究操作平臺(tái)。它是一種圖形界面應(yīng)用軟件,可在短時(shí)間內(nèi)生成復(fù)雜的心理學(xué)計(jì)算機(jī)化實(shí)驗(yàn)程序[7],從而使得對(duì)計(jì)算機(jī)編程不是很精通的心理學(xué)工作者也可以很快地將自己的研究設(shè)計(jì)付諸實(shí)施。目前,E-Prime在高校教學(xué)和心理學(xué)研究部門得到了廣泛采用,用它生成的計(jì)算機(jī)化實(shí)驗(yàn)涉及了知覺、注意、記憶、高級(jí)認(rèn)知、認(rèn)知神經(jīng)科學(xué)、社會(huì)心理學(xué)和工程心理學(xué)等領(lǐng)域[8]。本文將簡(jiǎn)要介紹計(jì)算機(jī)化實(shí)驗(yàn)中可能出現(xiàn)的計(jì)時(shí)誤差的種類及其原因,并以E-Prime軟件為例,探討防止和消除這些誤差的方法。
2.1刺激呈現(xiàn)時(shí)間是離散量且有最小值
電腦顯示器的刷新過程為:從屏幕左上角開始,水平地陸續(xù)點(diǎn)亮第一行內(nèi)的所有像素,然后下移到第二行,繼續(xù)水平地陸續(xù)點(diǎn)亮每個(gè)像素,這一過程逐行反復(fù)進(jìn)行,直到屏幕底端。點(diǎn)亮整個(gè)屏幕所有像素需要的時(shí)間叫做 “刷新周期”,1秒鐘內(nèi)刷新周期的個(gè)數(shù)叫做屏幕“刷新率”。刷新周期的起始點(diǎn)叫做“垂直消隱事件”。電腦可以檢測(cè)到垂直消隱事件,用來同步電腦事件與屏幕顯示。目前,市場(chǎng)上的筆記本電腦常用的屏幕刷新率為60Hz,臺(tái)式機(jī)常用的刷新率為60Hz或72Hz。
顯示器固定的刷新周期會(huì)導(dǎo)致兩個(gè)結(jié)果:(1)用戶不能在任意時(shí)間呈現(xiàn)或去除圖像,只能在下一個(gè)刷新周期到來時(shí)才可以,即刺激的呈現(xiàn)時(shí)間不可能小于一個(gè)刷新周期,且一定是刷新周期的整數(shù)倍;(2)如果程序設(shè)置的刺激呈現(xiàn)時(shí)間小于一個(gè)刷新周期,不是所有刺激都能顯示出來,有的刺激還來不及顯示即被之后的圖像覆蓋,而呈現(xiàn)刺激的最短時(shí)間仍為一個(gè)刷新周期。如果研究者沒有考慮到上述兩點(diǎn),而是按自己的意愿隨意設(shè)置刺激呈現(xiàn)時(shí)間,就可能導(dǎo)致時(shí)間誤差。
2.2操作系統(tǒng)中的顯示參數(shù)可能會(huì)被實(shí)驗(yàn)程序改變
一些心理學(xué)實(shí)驗(yàn)生成平臺(tái)允許用戶設(shè)定實(shí)驗(yàn)所需的屏幕分辨率和色深等參數(shù),并在實(shí)驗(yàn)程序運(yùn)行開始時(shí)強(qiáng)制改變操作系統(tǒng)顯示模式中的這些參數(shù),如E-Prime和DMDX等軟件均具有此功能,這樣,實(shí)驗(yàn)過程中的顯示參數(shù)就可能與操作系統(tǒng)中顯示的設(shè)定值不同,當(dāng)出現(xiàn)這種模式切換時(shí),顯示器會(huì)被強(qiáng)制改變刷新率來適應(yīng)新的顯示參數(shù)。
個(gè)別情況下,研究者需要在實(shí)驗(yàn)進(jìn)行過程中強(qiáng)制改變顯卡、顯示器的參數(shù)設(shè)置(如分辨率和色深),當(dāng)顯卡的設(shè)置改變時(shí),顯示器一般需要數(shù)百毫秒來適應(yīng)新的設(shè)置,引入較大的計(jì)時(shí)誤差,而且此時(shí)刷新率也隨之變化。
2.3某次刺激呈現(xiàn)時(shí)出現(xiàn)極端的延遲誤差
常見的計(jì)算機(jī)操作系統(tǒng),如Windows、Linux等,都是復(fù)雜的多任務(wù)操作系統(tǒng),其核心功能之一便是對(duì)并發(fā)執(zhí)行的任務(wù)進(jìn)程按一定的策略進(jìn)行調(diào)度[10]。操作系統(tǒng)需要一定的時(shí)間來執(zhí)行管理員權(quán)限的清理操作或虛擬內(nèi)存管理等,當(dāng)該情況發(fā)生時(shí),會(huì)不經(jīng)提示地掛起實(shí)驗(yàn)程序,從而造成極大的計(jì)時(shí)誤差。例如,大家也許都經(jīng)歷過,在使用微軟公司的Microsoft Office Word軟件進(jìn)行文本處理時(shí),會(huì)偶爾暫停一段時(shí)間,即大家常說的“卡住了”,過一小段時(shí)間又恢復(fù)正常。相同的情況在實(shí)驗(yàn)中也會(huì)發(fā)生,這就造成了較大的計(jì)時(shí)誤差,而且,即使每次實(shí)驗(yàn)程序運(yùn)行在完全相同的環(huán)境下(軟硬件設(shè)置完全相同),此類誤差出現(xiàn)的時(shí)刻也是隨機(jī)分布的,事前無法預(yù)測(cè)。
2.4每次刺激呈現(xiàn)中普遍存在的延遲誤差
電腦從硬盤中讀取圖片數(shù)據(jù),為顯示做準(zhǔn)備(如在顯卡中進(jìn)行運(yùn)算),將圖片顯示在屏幕上,這一過程中的每一步都需要一段時(shí)間,加起來即為圖片的“啟動(dòng)時(shí)間”。因此,第N幅圖片呈現(xiàn)的總時(shí)間=第N幅圖片設(shè)定的呈現(xiàn)時(shí)間+第N+1幅圖片的啟動(dòng)時(shí)間(N≥1,且為整數(shù),公式中未考慮其它誤差因素)。根據(jù)呈現(xiàn)內(nèi)容的數(shù)據(jù)量大小不同,以及計(jì)算機(jī)性能的不同,“啟動(dòng)時(shí)間”從幾毫秒到數(shù)百毫秒不等。在同一臺(tái)電腦上運(yùn)行一個(gè)完整的實(shí)驗(yàn)程序,當(dāng)實(shí)驗(yàn)程序中呈現(xiàn)的圖片材料數(shù)據(jù)量大小相近時(shí),每幅圖片的實(shí)際呈現(xiàn)時(shí)間與預(yù)期呈現(xiàn)時(shí)間的偏離量相近,不會(huì)出現(xiàn)上一個(gè)問題中的極端異常值,但是正因如此,這類誤差不易被研究者察覺。
3.1對(duì)實(shí)驗(yàn)所用的計(jì)算機(jī)進(jìn)行測(cè)試并調(diào)整配置
硬件和軟件都會(huì)影響計(jì)算機(jī)化心理學(xué)實(shí)驗(yàn)中對(duì)刺激呈現(xiàn)和記錄被試反應(yīng)的時(shí)間精度。就硬件而言,CPU、主板、內(nèi)存、顯示器等是影響計(jì)時(shí)精度的關(guān)鍵部件。當(dāng)然,軟件也非常重要。目前市場(chǎng)上常見的電腦大多可以達(dá)到毫秒級(jí)的計(jì)時(shí)精度,但研究者仍然需要周期性地測(cè)試自己的電腦,在每次改變軟硬件配置后也要進(jìn)行測(cè)試,以保證實(shí)驗(yàn)數(shù)據(jù)的可靠性和說服力。
E-Prime軟件的開發(fā)者在其網(wǎng)站(http://www. pstnet.com)上提供了針對(duì)電腦環(huán)境的測(cè)試程序,用戶下載RefreshClockTest.ZIP文件后,按照步驟說明,在E-Studio環(huán)境下運(yùn)行RefeshClockTest.ES進(jìn)行測(cè)試。測(cè)試結(jié)束后,即可得到關(guān)于電腦晶體時(shí)鐘和屏幕刷新周期的數(shù)據(jù),以及對(duì)電腦性能的評(píng)價(jià)。具體操作,可參考E-Prime軟件的隨機(jī)幫助文件Users-Guide.pdf中的Appendix A:Timing Test Results。研究者可據(jù)此判斷電腦是否滿足實(shí)驗(yàn)要求,并相應(yīng)地調(diào)整機(jī)器配置。
3.2結(jié)合實(shí)驗(yàn)要求與刷新周期設(shè)置刺激的呈現(xiàn)時(shí)間
如前文所述,屏幕的刷新周期是限制刺激呈現(xiàn)時(shí)間的重要參數(shù),因此在設(shè)置刺激的呈現(xiàn)時(shí)間時(shí),必須將其考慮在內(nèi),實(shí)驗(yàn)完成后,也應(yīng)將其記錄在實(shí)驗(yàn)報(bào)告中。
刺激的呈現(xiàn)過程可以想象為以下的一系列過程(其中不包括“啟動(dòng)時(shí)間”等誤差因素):(1)呈現(xiàn)第N個(gè)刺激(N≥1,且為整數(shù));(2)等待設(shè)定的呈現(xiàn)時(shí)間結(jié)束;(3)等待新的刷新周期出現(xiàn)的標(biāo)志(垂直消隱信號(hào));(4)新的刷新周期到來時(shí),呈現(xiàn)第N+1個(gè)刺激。
由于過程(3)的存在,即刷新周期的限制,實(shí)際的刺激呈現(xiàn)時(shí)間一定是刷新周期的整數(shù)倍,并始終大于或等于設(shè)定的呈現(xiàn)時(shí)間,“等于”是因?yàn)檫^程(2)恰好為刷新周期的整數(shù)倍,過程(3)的時(shí)間恰好為0。換言之,在過程(2)中,如果刺激已經(jīng)呈現(xiàn)了研究者想要的足夠長(zhǎng)的時(shí)間,但這段時(shí)間不是刷新周期的整數(shù)倍,那么就要在過程(3)中再等待額外的一段時(shí)間,直到新的刷新周期的開始。因此,在設(shè)定呈現(xiàn)時(shí)間時(shí),應(yīng)該將呈現(xiàn)時(shí)間設(shè)定得比想要的呈現(xiàn)時(shí)間最接近的整數(shù)倍的刷新周期少幾毫秒,對(duì)于大多數(shù)顯示器,減少10ms即可滿足需求且方便記憶。
例如,實(shí)驗(yàn)設(shè)計(jì)要求的呈現(xiàn)時(shí)間為20ms,如果使用刷新周期為16.67ms(刷新率為60Hz)的屏幕,無法實(shí)現(xiàn)實(shí)驗(yàn)要求,研究者只有兩種選擇:(1)呈現(xiàn)一個(gè)刷新周期,實(shí)際呈現(xiàn)時(shí)間為16.67ms,相對(duì)于20ms的誤差為16.65%。將呈現(xiàn)時(shí)間設(shè)定為7ms(16.67ms-10ms≈7ms,E-Prime軟件中只接受整數(shù)值設(shè)置),刺激呈現(xiàn)7ms后開始等待新的刷新周期出現(xiàn)的標(biāo)志,等到16.67ms時(shí)新的刷新周期到來,開始呈現(xiàn)下一個(gè)刺激。(2)呈現(xiàn)兩個(gè)刷新周期,實(shí)際呈現(xiàn)時(shí)間為33.34ms,相對(duì)于20ms的誤差為66.67%。將呈現(xiàn)時(shí)間設(shè)定為23ms(16.67ms×2-10ms≈23ms),刺激呈現(xiàn)23ms后開始等待新的刷新周期出現(xiàn)的標(biāo)志,等到33.34ms時(shí)新的刷新周期到來,開始呈現(xiàn)下一個(gè)刺激。
如果使用刷新周期為13.89ms(刷新率為72Hz)的屏幕,還是難以實(shí)現(xiàn)實(shí)驗(yàn)要求,情況和60Hz的屏幕類似。
如果使用刷新周期為10ms(刷新率為100Hz)的屏幕,可以實(shí)現(xiàn)實(shí)驗(yàn)要求,即呈現(xiàn)兩個(gè)刷新周期。此時(shí)設(shè)定的呈現(xiàn)時(shí)間應(yīng)大于一個(gè)刷新周期,小于兩個(gè)刷新周期,如15ms,即刺激呈現(xiàn)15ms后開始等待新的刷新周期出現(xiàn)的標(biāo)志,等到20ms時(shí)新的刷新周期到來,開始呈現(xiàn)下一個(gè)刺激。
3.3考慮到連續(xù)呈現(xiàn)系列刺激中需要的“啟動(dòng)時(shí)間”
連續(xù)呈現(xiàn)刺激時(shí),除了需要等待下一個(gè)垂直消隱事件的發(fā)生,還需要一段“啟動(dòng)時(shí)間”。明確這段時(shí)間并將其考慮在內(nèi)很重要。對(duì)下一個(gè)刺激的準(zhǔn)備時(shí)間必須發(fā)生在當(dāng)前刺激呈現(xiàn)的過程中,來避免兩個(gè)刺激之間的時(shí)間延遲。
E-Prime為每一個(gè)呈現(xiàn)刺激的控件提供了Pre-Release的屬性,該屬性允許在當(dāng)前刺激終止前就開始為下一個(gè)刺激的呈現(xiàn)做準(zhǔn)備,即允許將下一個(gè)刺激的準(zhǔn)備時(shí)間與當(dāng)前刺激的呈現(xiàn)同時(shí)進(jìn)行。需要注意的是,E-Prime中任何在下一個(gè)刺激實(shí)際呈現(xiàn)之前輸入的被試反應(yīng)都根據(jù)當(dāng)前刺激的設(shè)置被記錄下來,即反應(yīng)總是屬于由誘發(fā)反應(yīng)的刺激來記錄。
使用PreRelease功能時(shí),E-Prime可以盡可能多、盡可能早地完成任務(wù)。在某些情況下,一旦一個(gè)控件完成它的關(guān)鍵動(dòng)作,時(shí)間就可以分配給下一個(gè)控件。值為100~200ms的PreRelease時(shí)間對(duì)于大多數(shù)呈現(xiàn)序列來說足夠了,可根據(jù)實(shí)驗(yàn)程序結(jié)束后獲得的數(shù)據(jù)文件,查看PreRelease時(shí)間是否合理。盡管PreRelease機(jī)制是一項(xiàng)高效實(shí)用的工具,但是研究者在使用它時(shí),仍有幾點(diǎn)需要注意:
第一,如果為一個(gè)緊跟FeedbackDisplay的對(duì)象設(shè)置了PreRelease功能 (被試有一個(gè)做出反應(yīng)的窗口期),可能會(huì)呈現(xiàn)錯(cuò)誤反饋。錯(cuò)誤的出現(xiàn)是由于FeedbackDisplay會(huì)在前一個(gè)對(duì)象的PreRelease時(shí)間開始時(shí)讀取被試反應(yīng)數(shù)據(jù)。例如,假設(shè)呈現(xiàn)一個(gè)探測(cè)刺激,接受反應(yīng)的窗口時(shí)間為1000ms,設(shè)置PreRelease時(shí)間為100ms。FeedbackDisplay對(duì)象會(huì)在探測(cè)界面開始呈現(xiàn)的900ms后執(zhí)行操作,并準(zhǔn)備顯示。此時(shí),F(xiàn)eedbackDisplay對(duì)象會(huì)檢查這個(gè)時(shí)刻之前最后一次輸入的正確率和反應(yīng)時(shí),并選擇顯示信息(如,“正確”“不正確”“無反應(yīng)”等)。假如被試恰巧在探測(cè)界面的起始點(diǎn)之后的901ms到1000ms之間做出反應(yīng),F(xiàn)eedbackDisplay可能已經(jīng)在反應(yīng)被接收之前做好反饋的準(zhǔn)備了。因此,可能反應(yīng)已經(jīng)被接收了,但是顯示給被試的反饋是“沒反應(yīng)”。這時(shí)需要注意,反應(yīng)數(shù)據(jù)確實(shí)被標(biāo)記了時(shí)間、被計(jì)分,并在trial的結(jié)尾被正確記錄。由于FeedbackDisplay需要準(zhǔn)備時(shí)間,呈現(xiàn)給被試的反饋可能是錯(cuò)的。為了避免這種情況,建議將任何之后緊跟著FeedbackDisplay對(duì)象的控件的PreRelease設(shè)置為0ms。但是,一般而言,準(zhǔn)備反饋所需的時(shí)間小于300ms,并且反饋一般不會(huì)作為關(guān)鍵計(jì)時(shí)事件出現(xiàn)?;蛘哂脩艨梢哉{(diào)整反應(yīng)輸入的TimeLimit,使PreRelease的時(shí)間不會(huì)與反應(yīng)時(shí)間重疊。盡管上面例子中,數(shù)據(jù)的記錄不會(huì)受影響,但是在有的情況下,會(huì)出現(xiàn)PreRelease和數(shù)據(jù)記錄相互作用造成的錯(cuò)誤。尤其是當(dāng)反應(yīng)出現(xiàn)在一個(gè)Procedure的結(jié)尾時(shí),使用PreRelease會(huì)改變數(shù)據(jù)記錄。如果當(dāng)前顯示界面接收反應(yīng)的時(shí)間長(zhǎng)于一個(gè)trial的持續(xù)時(shí)間(即反應(yīng)界面的TimeLimit長(zhǎng)于trial剩余時(shí)間的總和),或者,反應(yīng)數(shù)據(jù)必需用于PreRelease過程中執(zhí)行的腳本,這時(shí)的PreRelease應(yīng)設(shè)置為0。
第二,PreRelease功能只有在當(dāng)前對(duì)象的呈現(xiàn)是由下一個(gè)對(duì)象的呈現(xiàn)來清除的情況下才有效。這是因?yàn)?,如果一個(gè)對(duì)象負(fù)責(zé)自身的清除,就總要等待時(shí)間記滿規(guī)定的持續(xù)時(shí)間,否則清除會(huì)出現(xiàn)得過早,即在PreRelease開始的時(shí)候就進(jìn)行清除。在實(shí)踐中,這條注意事項(xiàng)很少成為問題,因?yàn)橐话闱闆r下,清除當(dāng)前刺激是由序列中的下一個(gè)對(duì)象的出現(xiàn)完成的,并且大多數(shù)實(shí)驗(yàn)可以通過簡(jiǎn)單的重新設(shè)計(jì)來滿足這種模型。
第三,PreRelease也不能在當(dāng)前對(duì)象是由反應(yīng)輸入終止的情況下使用,因?yàn)橄到y(tǒng)不可能預(yù)測(cè)被試何時(shí)會(huì)做出反應(yīng),它要等到反應(yīng)出現(xiàn)時(shí)才能做出響應(yīng)。對(duì)于大多數(shù)實(shí)驗(yàn)范式,這一般也不是問題。因?yàn)橥ǔG闆r下,當(dāng)由反應(yīng)輸入來終止刺激呈現(xiàn)時(shí),當(dāng)前對(duì)象的呈現(xiàn)持續(xù)時(shí)間是關(guān)鍵計(jì)時(shí),而下一個(gè)對(duì)象和當(dāng)前對(duì)象的時(shí)間間隔不是關(guān)鍵計(jì)時(shí),即使下一個(gè)對(duì)象的呈現(xiàn)出現(xiàn)延遲也沒有太大問題,無需使用Pre-Release功能。當(dāng)對(duì)某些范式構(gòu)成問題時(shí),建議設(shè)置反應(yīng)輸入的規(guī)則,使呈現(xiàn)的終止不取決于反應(yīng)輸入,這會(huì)使反應(yīng)被標(biāo)記時(shí)間、計(jì)分并正確記錄,同時(shí)保持刺激序列準(zhǔn)時(shí)呈現(xiàn)[9]。
3.4在高優(yōu)先級(jí)模式下運(yùn)行實(shí)驗(yàn)程序
在高優(yōu)先級(jí)模式下運(yùn)行實(shí)驗(yàn)程序時(shí),可以充分減少由操作系統(tǒng)和電腦上運(yùn)行著的其它應(yīng)用程序和服務(wù)造成的時(shí)間延遲發(fā)生的概率和持續(xù)時(shí)間,建議在實(shí)驗(yàn)程序運(yùn)行之前先將電腦上的無關(guān)程序 (如常駐內(nèi)存的殺毒程序)都關(guān)閉。但是,作為應(yīng)用軟件的心理實(shí)驗(yàn)程序在運(yùn)行時(shí)即使被賦予最高的任務(wù)優(yōu)先級(jí),仍然不能獨(dú)占CPU的運(yùn)行時(shí)間和其他資源,而是可被隨時(shí)中斷的,且中斷的次數(shù)、時(shí)刻、時(shí)間都是不可預(yù)知的[10]。因此,延遲誤差是無法徹底避免的,只能最大程度地進(jìn)行減少。當(dāng)研究者需要實(shí)驗(yàn)程序與同一臺(tái)電腦上運(yùn)行的其它應(yīng)用程序有交互作用時(shí),不建議將實(shí)驗(yàn)程序運(yùn)行在高優(yōu)先級(jí)模式下,否則實(shí)驗(yàn)程序會(huì)試著停止其它程序,或剝奪它們占用處理器的時(shí)間,以避免實(shí)驗(yàn)被影響。
用E-Prime創(chuàng)建的實(shí)驗(yàn)程序會(huì)默認(rèn)運(yùn)行在高優(yōu)先級(jí)模式下[9]。
3.5為誤差的出現(xiàn)選擇合適的計(jì)時(shí)模式
盡管在實(shí)驗(yàn)設(shè)計(jì)和參數(shù)設(shè)置方面有一些使誤差最小化的方法,但是誤差永遠(yuǎn)無法徹底消除,實(shí)驗(yàn)者要有應(yīng)對(duì)誤差出現(xiàn)的方法。當(dāng)誤差出現(xiàn)時(shí),一般有三種處理方法:(1)繼續(xù)將刺激呈現(xiàn)預(yù)設(shè)的持續(xù)時(shí)間,并延遲序列中所有的刺激;(2)縮短當(dāng)前刺激的呈現(xiàn)時(shí)間,以補(bǔ)償該延遲,并保持序列中后面的刺激都按時(shí)呈現(xiàn);(3)明確設(shè)置時(shí)間的起始點(diǎn)和終止點(diǎn)來解決錯(cuò)誤。
圖1描述了當(dāng)預(yù)期外的時(shí)間延遲出現(xiàn)時(shí),EPrime提供的前兩種處理方法:Event計(jì)時(shí)模式和Cumulative計(jì)時(shí)模式。
圖1 E-Prime中的Event和Cumulative計(jì)時(shí)模式
在Event模式中,某一事件起始時(shí)發(fā)生的延遲不會(huì)影響該事件預(yù)定的持續(xù)時(shí)間。由于誤差的出現(xiàn),序列后面所有事件的起始點(diǎn)都會(huì)延遲,一個(gè)累積的時(shí)間延遲會(huì)貫穿整個(gè)過程。在Cumulative模式中某一事件起始時(shí)發(fā)生的延遲會(huì)導(dǎo)致該事件預(yù)定的持續(xù)時(shí)間縮短相應(yīng)的時(shí)長(zhǎng),使累積時(shí)間誤差達(dá)到最小化。
在一些實(shí)驗(yàn)中,Cumulative時(shí)間模式的作用會(huì)受到限制。第一,如果計(jì)時(shí)誤差或延遲足夠長(zhǎng)(或者預(yù)定的刺激呈現(xiàn)時(shí)間足夠短),可能當(dāng)前刺激的呈現(xiàn)過程不足以完全“吸收”該時(shí)間誤差。如果出現(xiàn)這種情況,序列中后面的刺激都可能按順序縮短它們的持續(xù)時(shí)間,直到所有的累積誤差被抵消。
當(dāng)一個(gè)刺激是由被試的響應(yīng)來終止時(shí),也可能打斷時(shí)間序列。例如,將一個(gè)可輸入的掩蔽界面的EndAction屬性設(shè)置為Terminate。這種情況下,EPrime假設(shè)用戶需要當(dāng)前事件結(jié)束后,下一個(gè)刺激盡快出現(xiàn),否則EndAction屬性會(huì)被設(shè)置為none。E-Prime處理這種情況的方式是將下一個(gè)刺激對(duì)象的起始時(shí)間設(shè)置為響應(yīng)時(shí)間,而不是它最初預(yù)定的起始時(shí)間。需要注意的是:對(duì)于當(dāng)前對(duì)象暫時(shí)轉(zhuǎn)換為Event計(jì)時(shí)模式,然后又變回Cumulative計(jì)時(shí)模式的序列,這種效應(yīng)同樣存在。因此,建議不要將刺激的終止方式設(shè)置為響應(yīng)事件,而是將可輸入掩蔽界面的EndAction屬性設(shè)置為none,這樣響應(yīng)會(huì)被如期接受、計(jì)分并記錄,但是刺激序列不會(huì)被響應(yīng)事件所打斷。
以上兩種方法的具體例子如下:
假設(shè)屏幕刷新周期為 13.89ms(刷新率為72Hz),每個(gè)刺激的呈現(xiàn)會(huì)有0~13.89ms的潛在延遲,這會(huì)導(dǎo)致一個(gè)平均時(shí)間為6.94ms的延遲。
使用Event計(jì)時(shí)模式,如果第一個(gè)刺激有7ms的延遲,那么第二個(gè)刺激直到107ms(設(shè)置的每個(gè)刺激的呈現(xiàn)時(shí)間為100ms)才開始等待垂直消隱事件的出現(xiàn)。100個(gè)100ms的呈現(xiàn)之后,預(yù)計(jì)得到累積延遲694ms(100×6.94ms),因此序列的結(jié)束發(fā)生在10.694s,而非預(yù)計(jì)的10s。從每個(gè)刺激的起始點(diǎn),到程序開始等待下一個(gè)刺激總是至少為100ms,平均的呈現(xiàn)時(shí)間為106.94ms。
使用Cumulative計(jì)時(shí)模式,刺激的呈現(xiàn)時(shí)間會(huì)縮短,來保證呈現(xiàn)的結(jié)束時(shí)間總是發(fā)生在硬件允許的最接近100ms的界限。在Cumulative模式中,第二個(gè)刺激呈現(xiàn)會(huì)在100ms時(shí)開始等待垂直消隱事件的出現(xiàn)(而非106.94ms),平均呈現(xiàn)時(shí)間是100ms,經(jīng)過100次呈現(xiàn)后,再下一次呈現(xiàn)的開始發(fā)生在10s(加上下一個(gè)刷新的延遲)。
Event模式和Cumulative模式適用于兩類不同的范式。如果研究者要求呈現(xiàn)一個(gè)詞或者呈現(xiàn)短序列刺激(如,注視點(diǎn)、探測(cè)界面、掩蔽界面),序列中每個(gè)trial之中的間隔的變化是可以接受的,那么應(yīng)該使用Event模式。如果研究者希望保持穩(wěn)定的呈現(xiàn)頻率,那么應(yīng)該使用Cumulative模式。如某記憶任務(wù)中,每2s呈現(xiàn)一個(gè)刺激,不能有累積誤差和時(shí)間漂移。再如,快速序列視覺呈現(xiàn)實(shí)驗(yàn)范式(RSVP)中以固定的時(shí)間間隔連續(xù)呈現(xiàn)視覺圖形刺激[11]。E-Prime中所有控件的默認(rèn)計(jì)時(shí)模式為Event。
E-prime還提供了優(yōu)先級(jí)更高、使用方法更復(fù)雜的Custom計(jì)時(shí)模式。該模式允許研究者編寫EBasic腳本來評(píng)估計(jì)時(shí)錯(cuò)誤,并引入算法,通過明確設(shè)置控件的起始點(diǎn)和終止點(diǎn)來減少計(jì)時(shí)錯(cuò)誤。需要注意的是,當(dāng)控件使用這種計(jì)時(shí)模式時(shí),系統(tǒng)只會(huì)依靠控件的CustomOnsetTime和CustomOffsetTime這兩個(gè)屬性來決定控件應(yīng)該被執(zhí)行多久,而其Duration屬性和PreRelease屬性都會(huì)被忽略。具體介紹可參見E-Basic在線幫助的Clock.Readmethod[9]。
3.6從磁盤中預(yù)加載刺激文件,使讀取數(shù)據(jù)的時(shí)間最小化
實(shí)驗(yàn)程序從硬盤讀取刺激材料的數(shù)據(jù)時(shí)會(huì)有幾毫秒到幾十毫秒的等待和尋道時(shí)間,數(shù)據(jù)從硬盤讀出到寫入顯示緩存所耗費(fèi)的時(shí)間又與硬盤的性能、文件的大小及存儲(chǔ)位置密切相關(guān)[10]。如果實(shí)驗(yàn)需要以較高的速度呈現(xiàn)刺激,還需要事先將刺激材料讀取到內(nèi)存中,保證實(shí)驗(yàn)時(shí)更快地獲取數(shù)據(jù),而不是在呈現(xiàn)刺激序列的過程中再從硬盤提取刺激材料。當(dāng)呈現(xiàn)時(shí)間小于100ms,或呈現(xiàn)數(shù)據(jù)量較大的復(fù)雜圖片時(shí),這通常是必要的操作。將刺激載入內(nèi)存,也可以叫做緩存刺激。緩存刺激還可以大量減少發(fā)生在刺激生成時(shí)的內(nèi)存分配操作,由于內(nèi)存分配是操作系統(tǒng)管理虛擬內(nèi)存時(shí)占用時(shí)鐘周期的主要原因,因此緩存還有助于減少與操作系統(tǒng)有關(guān)的時(shí)間延遲。
使用緩存刺激的缺點(diǎn)是占用大量的內(nèi)存空間,當(dāng)實(shí)驗(yàn)程序占用了更多的內(nèi)存時(shí),操作系統(tǒng)更有可能在磁盤上劃分虛擬內(nèi)存,所以用戶不能保證所有圖片在需要時(shí)都能及時(shí)獲得。然而,如果沒有其它程序同時(shí)運(yùn)行,并且內(nèi)存足夠用,從內(nèi)存中讀取圖片的速度在大部分情況下比直接從磁盤讀取快得多。
研究者可以從www.pstnet.com網(wǎng)站上下載用E-Prime創(chuàng)建的緩存刺激圖片的范例程序模仿學(xué)習(xí)。
3.7測(cè)試并檢查計(jì)時(shí)數(shù)據(jù)
如前所述,計(jì)時(shí)問題很復(fù)雜,在實(shí)驗(yàn)設(shè)計(jì)中很容易出錯(cuò),在程序運(yùn)行過程中也時(shí)常發(fā)生延遲誤差,這些錯(cuò)誤不經(jīng)意間就會(huì)被忽略和漏報(bào)。而對(duì)時(shí)間數(shù)據(jù)的精確記錄是對(duì)抗誤差數(shù)據(jù)的最基本方法。
E-Prime中每個(gè)刺激呈現(xiàn)控件都有DataLogging屬性,在DurationInput標(biāo)簽下,該屬性可被設(shè)置為Standard、TimeAuditOnly、ResponseOnly和 Custom。為關(guān)鍵變量計(jì)時(shí)的操作不會(huì)拖延實(shí)驗(yàn)運(yùn)行的時(shí)間,但它為事后分析記錄數(shù)據(jù)的可靠性提供了相應(yīng)的基礎(chǔ)。把實(shí)驗(yàn)中關(guān)鍵計(jì)時(shí)控件的所有相關(guān)計(jì)時(shí)數(shù)據(jù)都記錄下來的唯一缺點(diǎn),就是會(huì)增加數(shù)據(jù)文件中的列數(shù),有時(shí)會(huì)給檢查結(jié)果造成困擾。不過,研究者可以通過E-Prime軟件包中的E-DataAid應(yīng)用程序方便地對(duì)數(shù)據(jù)進(jìn)行隱藏和過濾,為了長(zhǎng)遠(yuǎn)考慮,應(yīng)該保留多余的數(shù)據(jù),以備實(shí)驗(yàn)受到挑戰(zhàn)或需要重新檢查時(shí)使用[9]。
綜上所述,保證實(shí)驗(yàn)的時(shí)間精度需要以下七個(gè)步驟:
(1)測(cè)試計(jì)算機(jī)的硬件性能和軟件環(huán)境,判斷電腦是否滿足實(shí)驗(yàn)需求,并相應(yīng)地調(diào)整機(jī)器配置。
(2)考慮實(shí)驗(yàn)要求與刷新周期的限制,設(shè)定合理的刺激呈現(xiàn)時(shí)間。
(3)注意“啟動(dòng)時(shí)間”對(duì)連續(xù)呈現(xiàn)的序列刺激的影響,將刺激的啟動(dòng)過程包含在上一個(gè)刺激的呈現(xiàn)過程之中。
(4)將實(shí)驗(yàn)程序運(yùn)行在高優(yōu)先級(jí)模式下,減少操作系統(tǒng)和其它程序造成的延遲誤差。
(5)根據(jù)不同實(shí)驗(yàn)范式的具體要求(刺激需要呈現(xiàn)足夠的時(shí)間,累積延遲誤差可接受的情況;刺激需要保持穩(wěn)定的呈現(xiàn)頻率,累積延遲誤差不可接受的情況),選擇合適的計(jì)時(shí)模式以應(yīng)對(duì)無法根除的誤差延遲。
(6)在呈現(xiàn)刺激序列之前,將所有刺激材料的數(shù)據(jù)預(yù)加載到內(nèi)存中,減少從硬盤直接讀取數(shù)據(jù)的時(shí)間。
(7)實(shí)驗(yàn)結(jié)束后檢查計(jì)時(shí)數(shù)據(jù),有理有據(jù)地剔除誤差數(shù)據(jù)。
對(duì)于所有使用計(jì)算機(jī)化實(shí)驗(yàn)設(shè)計(jì)的研究者,明確、控制、檢查實(shí)驗(yàn)中的關(guān)鍵計(jì)時(shí)數(shù)據(jù)是他們的基本義務(wù)。研究者嚴(yán)謹(jǐn)?shù)匕凑找陨喜襟E來操作,可以實(shí)現(xiàn)毫秒級(jí)的時(shí)間精度。只有在確實(shí)滿足實(shí)驗(yàn)要求的情況下呈現(xiàn)刺激材料,并獲得符合精度要求的實(shí)驗(yàn)數(shù)據(jù),研究者才能得到有意義的實(shí)驗(yàn)結(jié)論,這些研究結(jié)果才可以在不同實(shí)驗(yàn)室之間進(jìn)行重復(fù)和替代。
1宮大志,李壽欣.多種心理學(xué)實(shí)驗(yàn)生成工具的比較分析.實(shí)驗(yàn)室研究與探新,2008,27(10):70-75.
2王沛,魯春曉.閾下啟動(dòng)的心理機(jī)制初探.心理科學(xué),2005,28(6):1344-1346.
3崔麗霞,楊潔瑩,史光遠(yuǎn),等.非自主闖入焦慮發(fā)生的機(jī)制:閾下啟動(dòng)效應(yīng)的實(shí)驗(yàn)研究.心理科學(xué),2013,36(6):1301-1306.
4呂勇,李甜甜.時(shí)間間隔對(duì)面部表情喚醒度閾下情緒啟動(dòng)的影響.心理科學(xué),2014,37(1):48-52.
5楊麗珠,蔣重清,劉穎.閾下情緒啟動(dòng)效應(yīng)和Stroop效應(yīng)之對(duì)比實(shí)驗(yàn)研究.心理科學(xué),2005,28(4):784-787.
6趙麗娜.閾上閾下不同情緒線索對(duì)特質(zhì)焦慮大學(xué)生返回抑制的影響.江西師范大學(xué)學(xué)位論文,2011.
7盧伊穎.心理學(xué)計(jì)算機(jī)化實(shí)驗(yàn)的形式與生成系統(tǒng).社會(huì)心理科學(xué),2011,26(3):53-62.
8陳文鋒,崔耀,張建新.心理實(shí)驗(yàn)系統(tǒng)E-Prime介紹及其應(yīng)用.心理科學(xué),2005,28(6):1456-1458.
9Schneider W,Eschman A,Zuccolotto A.E-Prime Users-Guide.Psychology Software Tools,2007.
10陳永鵬,路敦強(qiáng),吳曉榮.計(jì)算機(jī)控制的心理學(xué)實(shí)驗(yàn)計(jì)時(shí)問題與新方案設(shè)計(jì).心理與行為研究,2013,11(3):402-406.
11魯學(xué)明,張學(xué)民.心理學(xué)實(shí)驗(yàn)研究中的計(jì)算機(jī)控制計(jì)時(shí)問題.心理科學(xué),2010,33(2):400-402.
The Timing Technology in Computerized Psychological Experiments——Taking E-Prime for Example
Zhang Jie,Lv Yong
(Academy of Psychology and Behavior,Tianjin Normal University,Tianjin 300074)
In computerized psychological experiments,acquiring accurate timing data is critical.Timing errors may result from the performance of hardware,operating system and experiment programs.This paper took E-Prime as an example to discuss the principles and processes for accurate timing.Researchers can increase the timing precision by choosing appropriate hardware,installing proper index,setting specific timing parameters,optimizing experiment programs,assigning the programs at high priority and inspecting the timing data.
computerized psychological experiments;timing precision;E-Prime
呂勇,男,教授,博士生導(dǎo)師。Email:ly6312@163.com