【问题标题】:variable stimuli duration but two kinds of fixed ISI in PsychoPyPsychoPy 中的可变刺激持续时间但有两种固定 ISI
【发布时间】:2014-06-05 15:27:18
【问题描述】:

我是 PsychoPy 的新手,我正在使用 Builder。我对 Python 编码一点也不熟悉。

我有持续时间可变的音频刺激。在每次试验中,我希望第二个刺激在第一个刺激结束后 500 毫秒或 1500 毫秒开始。有没有办法在 Builder 中做到这一点?如果我必须在 Coder 上做,我应该怎么做?

非常感谢!

【问题讨论】:

    标签: python psychopy


    【解决方案1】:

    当然。将 500 毫秒和 1500 毫秒视为您另外循环的两个不同条件。这两个条件以不同的持续时间交叉。

    在你的条件文件中,你有不同的持续时间(或者你当然可以使用随机函数来做到这一点),为每个持续时间添加两行和一列“soa”(或任何你想称之为的)有两个值 500ms 和 1500ms。在构建器界面中,您可以选择呈现顺序是顺序的、在块内随机还是在所有试验中完全随机(不仅仅是在块内)。此外,如果您不希望它平衡(例如 20% 1500 毫秒和 80% 500 毫秒),您可以添加适当数量的行来实现这种平衡(五分之一是 1500 毫秒)。

    几乎所有的演示都以这种方式处理试验,因此请查看 Builder --> Demos,单击循环,看看它是如何完成的。另外,请阅读relevant section of the online documentation 并查看a video tutorial also incorporating it

    【讨论】:

      【解决方案2】:

      具体来说,当您在 Builder 中添加声音组件时,您只需在“开始(时间)”字段中添加一个表达式,该表达式考虑了第一个声音刺激的持续时间和本次试验的 ISI。

      因此,如果您按照 Jonas 的建议在条件文件中有一个 ISI 列(假设它称为“ISI”)和第一个听觉刺激的声音组件(例如,称为“sound1”),那么您可以把它放在第二个声音刺激的 Start 字段中:

      $sound1.getDuration() + ISI

      $ 符号表示该行将被解释为 Python 代码表达式,而不是文字持续时间。

      这假设 sound1 在试验开始时开始。如果它开始了,比如进入试验 1 秒,那么只需在表达式中添加一个常量:

      $1.0 + sound1.getDuration() + ISI

      您的 ISI 列应包含以秒为单位的值。如果您更喜欢毫秒,请执行以下操作:

      $sound1.getDuration() + ISI/1000.0

      【讨论】:

      • 感谢您提供详细信息。我按照您的建议在我的条件文件中添加了 ISI,但我无法运行实验。我认为我在 ISI 专栏中的内容一定有问题。它应该只是一个数字,对吧?或者,我制作了一个与 ISI 具有相同持续时间的无声声音文件(称为“silence”),并具有 $sound_1.getDuration()+silence.getDuration(),这很有效。
      • “我无法运行实验”并没有提供任何信息来帮助您。
      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      相关资源
      最近更新 更多