Измерение времени реакции - обеспечение точности данных

478
Alex Chernavsky

Я намерен написать программу, которая будет измерять время реакции. Я еще не уверен насчет языка программирования, который буду использовать. Программа будет использоваться в рамках психологического эксперимента. В идеале я бы хотел, чтобы он работал под Windows.

Но прежде чем приступить к написанию программы, я хотел бы иметь некоторую уверенность в том, что полученные данные о времени реакции будут точными с точностью до нескольких миллисекунд. Один знакомый сказал мне, что в Windows невозможно точно определить время событий, независимо от фоновых процессов (антивирусное сканирование и т. Д.). Прежде всего, это правда? Во-вторых, если это правда, как мне обойти эту проблему? Я использую Linux или ...?

0
Я видел такие программы раньше. Психолог, которого я знал, купил его с полки. Но, имея опыт программирования несколько недель, вы сможете написать его сами, если потратите время. surfasb 12 лет назад 0
Программа, которую я имею в виду, будет иметь некоторые особые характеристики, которые уникальны для исследуемой проблемы. Маловероятно, что готовая программа подойдет моим потребностям. Alex Chernavsky 12 лет назад 0

3 ответа на вопрос

2
Krumelur

Чтобы гарантировать точные данные, вам нужна ОС реального времени . Linux по умолчанию не лучше, чем Windows, но Linux может быть сконфигурирован с ядром с поддержкой реального времени (IIRC).

Подробности о том, как написать такую ​​программу, я предлагаю вам спросить на stackoverflow.com.

Теперь на практике вы получите достаточно точные результаты и под Windows. Планирование процесса очень мало повлияет на результаты. Большинство антивирусных программ работает в пользовательском пространстве, что означает, что они находятся в равных условиях с вашим приложением. Лучше всего попробовать и посмотреть.

Спасибо за советы. Вы написали: «Лучше всего попробовать и посмотреть». Проблема в том, что у меня нет независимого способа проверки точности результатов, за исключением сравнения их с некоторыми теоретическими значениями из литературы. Я думаю, что нужно сделать, установить версию Linux в режиме реального времени на запасную машину, которая мне удобна, а затем попытаться написать программу на каком-нибудь языке, доступном в Linux. Возможно, я также напишу ту же программу в Windows (моя любимая среда) и посмотрю, сопоставимы ли результаты. Alex Chernavsky 12 лет назад 0
В какой-то момент вам просто нужно принять решение, в противном случае вы попадете в точку, в которой вы будете спрашивать, где в регистрах нажатия клавиш в качестве нажатия я бы просто сказал, использовать любую ОС и взять в среднем несколько прогонов Hugoagogo 11 лет назад 0
1
rblake

Специальное оборудование для сбора данных может сделать измерения точными в соответствии с вашими бюджетами, независимо от операционной системы и языка. Я наиболее знаком с аппаратным и программным обеспечением National Instruments, но есть и другие поставщики.

-1
Josh

I think its not very problematic I used GFA-basic see: https://dl.dropbox.com/u/25791210/gb32.zip

my (most simple) program runs as follows:

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 
Если вы хотите обновить свой ответ, воспользуйтесь ссылкой [edit] (http://superuser.com/posts/701528/edit) под сообщением, не публикуйте другой ответ. Der Hochstapler 10 лет назад 0
Это не учитывает издержки ОС и не может гарантировать точность результатов в течение нескольких мс. ChrisInEdmonton 10 лет назад 0