переменная длительность стимулов, но два вида фиксированных ISI в PsychoPy

Я новичок в PsychoPy и работаю с Builder. Я вообще не знаком с программированием на Python.

У меня есть звуковые стимулы переменной продолжительности. В каждом испытании я хочу, чтобы второй стимул начинался через 500 или 1500 мс после окончания первого стимула. Есть ли способ сделать это в Builder? Если мне нужно сделать это на Coder, что мне делать?

Большое спасибо!


person charlotte    schedule 05.06.2014    source источник


Ответы (2)


Абсолютно. Подумайте о 500 мс и 1500 мс как о двух разных условиях, которые вы перебираете дополнительно. Эти два условия пересекаются с разной продолжительностью.

В вашем файле условий, где у вас есть разные длительности (или вы могли бы просто сделать это, используя случайную функцию, конечно), для каждой продолжительности добавьте две строки со столбцом «soa» (или как вы хотите его назвать) с двумя значения 500 мс и 1500 мс. В интерфейсе конструктора вы можете выбрать, должен ли порядок представления быть последовательным, рандомизированным внутри блока или полностью рандомизированным для всех испытаний (а не только внутри блока). Кроме того, если вы не хотите, чтобы он был сбалансированным (например, 20% 1500 мс и 80% 500 мс), вы можете просто добавить соответствующее количество строк для достижения этого баланса (1 из 5 - 1500 мс).

Практически все демонстрации обрабатывают испытания таким образом, поэтому загляните в Builder -> Demos, щелкните цикл и посмотрите, как это делается там. Также прочтите соответствующий раздел онлайн-документации и см. видеоурок, также включающий это.

person Jonas Lindeløv    schedule 05.06.2014

Конкретно, когда вы добавляете звуковой компонент в Builder, вам просто нужно добавить выражение в поле «Начало (время)», которое учитывает продолжительность первого звукового стимула и ISI для этого испытания.

Итак, если у вас есть столбец для ISI в файле условий, как предлагает Джонас (скажем, он называется «ISI»), и звуковой компонент для первого слухового стимула (называемый, скажем, «звук1»), то вы можете поместить это в поле Старт второго звукового стимула:

$ sound1.getDuration () + ISI

Символ $ указывает, что эта строка должна интерпретироваться как выражение кода Python, а не как буквальная продолжительность.

Предполагается, что sound1 запускается в самом начале испытания. Если это начнется, скажем, через 1 секунду после начала испытания, просто добавьте константу к выражению:

1.0 $ + sound1.getDuration () + ISI

Ваш столбец ISI должен содержать значения в секундах. Если вы предпочитаете миллисекунды, сделайте следующее:

$ sound1.getDuration () + ISI / 1000.0

person Michael MacAskill    schedule 06.06.2014
comment
Спасибо за подробную информацию. Я последовал тому, что вы предложили, и добавил ISI в свой файл условий, но мне не удалось провести эксперимент. Я думаю, что что-то не так с тем, что я поместил в столбец ISI. Это должно быть просто число, верно? В качестве альтернативы я сделал тихий звуковой файл (называемый «тишиной») с той же продолжительностью, что и ISI, и использовал $ sound_1.getDuration () + silent.getDuration (), и это сработало. - person charlotte; 06.06.2014
comment
Мне не удалось провести эксперимент, не дает нам никакой информации, чтобы помочь вам. - person Michael MacAskill; 07.06.2014