Я использую Psychtoolbox в MATLAB для запуска парадигмы поведенческой психологии. В рамках парадигмы пользователи должны просматривать визуальный стимул и реагировать на него с использованием некоторого механизма ввода. Для клавиатуры, это работает следующим образом:Как я могу распараллелить ввод и отображение в MATLAB?
- показать стимул
- опрос клавиатуры для ответа
- если не обнаружено никакого ответа, петля обратно на 1
- если ответ обнаружен, перерыв и двигаться дальше с помощью сценария
Это прекрасно работает для клавиатуры, а шаг 2 занимает от 1-2 мс. Проблема возникает, когда я использую альтернативный механизм ввода; в этом случае шаг 2 занимает ~ 20 мс. (Мне нужен этот альтернативный вход для запуска исследования, и это следует считать непреложным фактом.) Поскольку стимул изменяется с очень небольшим промежутком времени, эта добавленная задержка нарушает задачу.
Моя текущая мысль - попытаться использовать параллельную обработку, чтобы один поток показывал стимул, а другой поток опроса клавиатуры. В настоящее время я использую Parallel Computing Toolbox. Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как направить ввод с клавиатуры на «параллельный» поток. Кто-нибудь знает (1), можно ли направить ввод с клавиатуры на поток или передать поток визуальный сигнал на монитор, и если да, (2) как это сделать?
Кроме того, если у кого-то есть лучшие идеи относительно того, как подойти к этой проблеме, я все уши.
Я немного смущен. Вы хотите показать один стимул, подождать заданное количество времени для любого ответа от пользователя, а затем показать еще один стимул, в котором они не ответили (или разбить петлю, если они есть)? Кроме того, как именно задержка «ломает» задачу? – gnovice 2010-12-10 17:15:39
@gnovice - Нет, я хочу показать (и постоянно обновлять) один стимул и только прекратить показывать (обновлять) его при ответе. Как разрывается задержка, это довольно подробно, но достаточно сказать, что экран должен обновляться порядка 5-8 мс, а дополнительная задержка в 20 мс слишком велика. – eykanal 2010-12-10 18:20:20
Итак, я думаю, у вас есть анимированный стимул, если вам нужно постоянно обновлять его, но каждые 5-8 мсек будут иметь частоту кадров 125-200 Гц. Неужели это так быстро? Типичная частота кадров 60 Гц обычно достаточно хороша, чтобы избежать мерцания. – gnovice 2010-12-10 18:34:55