Reaktionszeit messen - Datengenauigkeit sicherstellen

584
Alex Chernavsky

Ich beabsichtige, ein Programm zu schreiben, das die Reaktionszeit misst. Ich bin mir noch nicht sicher, welche Programmiersprache ich verwenden werde. Das Programm wird als Teil eines psychologischen Experiments verwendet. Im Idealfall möchte ich, dass es unter Windows läuft.

Bevor ich mich jedoch mit dem Schreiben des Programms beschäftige, möchte ich etwas sicher sein, dass die Reaktionszeitdaten innerhalb weniger Millisekunden genau sind. Ein Bekannter hat mir gesagt, dass es unter Windows nicht wirklich möglich ist, Ereignisse unabhängig von Hintergrundprozessen (Antivirus-Scans usw.) genau zu erfassen. Ist das erstens wahr? Zweitens, wie kann ich dieses Problem umgehen? Benutze ich Linux oder ...?

0
Ich habe schon solche Programme gesehen. Ein Psychologe, den ich kannte, kaufte einen aus dem Regal. Aber mit ein paar Wochen Programmiererfahrung sollten Sie in der Lage sein, es selbst zu schreiben, wenn Sie Zeit investieren. surfasb vor 12 Jahren 0
Das Programm, das ich mir vorstelle, wird einige Besonderheiten haben, die für das untersuchte Problem einzigartig sind. Es ist unwahrscheinlich, dass ein Standardprogramm meinen Bedürfnissen entspricht. Alex Chernavsky vor 12 Jahren 0

3 Antworten auf die Frage

2
Krumelur

Um genaue Daten zu gewährleisten, benötigen Sie ein Echtzeitbetriebssystem . Linux ist standardmäßig nicht besser als Windows, aber Linux kann mit einem echtzeitfähigen Kernel (IIRC) konfiguriert werden.

Für Details, wie man ein solches Programm schreibt, schlage ich vor, auf stackoverflow.com nachzufragen.

In der Praxis erhalten Sie jetzt auch unter Windows relativ genaue Ergebnisse. Die Prozessplanung beeinflusst die Ergebnisse nur sehr wenig. Die meisten Antivirensoftware wird im Benutzerraum ausgeführt, was bedeutet, dass sie mit Ihrer Anwendung identisch sind. Ihre beste Wette ist zu versuchen und zu sehen.

Danke für die Tipps. Sie haben geschrieben: "Ihre beste Wette ist zu versuchen und zu sehen". Das Problem ist, dass ich keine unabhängige Möglichkeit habe, die Genauigkeit der Ergebnisse zu überprüfen, es sei denn, ich vergleiche sie mit einigen theoretischen Werten aus der Literatur. Ich denke, was ich tun werde, ist, eine Echtzeitversion von Linux auf einer Ersatzmaschine zu installieren, die ich zur Verfügung habe, und dann zu versuchen, das Programm in einer Sprache zu schreiben, die in Linux verfügbar ist. Vielleicht schreibe ich auch das gleiche Programm in Windows (meine bevorzugte Umgebung) und sehe, ob die Ergebnisse vergleichbar sind. Alex Chernavsky vor 12 Jahren 0
Irgendwann müssen Sie nur eine Entscheidung treffen. Andernfalls werden Sie zu einem Punkt gelangen, an dem Sie gefragt werden, wo sich der Tastenanschlag als Presse registriert. Ich würde nur sagen, verwenden Sie ein beliebiges Betriebssystem und nehmen Sie einen Durchschnitt von ein paar Durchläufen Hugoagogo vor 11 Jahren 0
1
rblake

Dedizierte Datenerfassungshardware kann Messungen unabhängig von Ihrem Betriebssystem und der Sprache so vornehmen, wie es Ihr Budget zulässt. Ich bin am besten mit Hardware und Software von National Instruments vertraut, es gibt jedoch auch andere Anbieter.

-1
Josh

Ich denke, es ist nicht sehr problematisch, dass ich GFA-basic verwendet habe: https://dl.dropbox.com/u/25791210/gb32.zip

Mein (einfachstes) Programm läuft wie folgt ab:

Dim x, y, z As Integer Dim ttt, tijd As Double  nogeens: Print AT(5, 5); "wait" Print " (press 'p' when screen goes black)" Pause 50 Print AT(5, 5) ; "READY ?? "  Pause 40 + Rnd * 20  ttt = Timer For y = 1 To 550 Line 0, y, 1000, y Next While InKey$ <> "p" Wend tijd = Timer - ttt Cls  If tijd < .1 Print "FALSE START", Print "Press 'p' just AFTER you have seen the screen blackened !!" Print "press 'q'to try once again" Else Print AT(5, 5); tijd Print "press 'q'to try once again" EndIf  While InKey$ <> "q" Wend Cls GoTo nogeens 
Wenn Sie Ihre Antwort aktualisieren möchten, verwenden Sie den Link [edit] (http://superuser.com/posts/701528/edit) unter dem Beitrag. Schreiben Sie keine weitere Antwort. Der Hochstapler vor 10 Jahren 0
Dies betrifft nicht den Betriebssystem-Overhead und kann nicht garantieren, dass die Ergebnisse innerhalb weniger ms genau sind. ChrisInEdmonton vor 10 Jahren 0