[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Solutions for sending triggers in an AEP (EEG) experiment?
Dear Daniel and list,
parallel port for this. But I'm afraid it is impossible to synchronize
the parallel port to audio under Windows XP...
No, it's not impossible, we have a setup working reliably and fairly
accurate:
Triggering is done with this solution via parallel port:
http://psychtoolbox.org/wikka.php?wakka=FaqTTLTrigger
With a careful system setup (no network, no virus scanner, only
absolutely required services etc.) we achieve sub-millisecond accuracy
in the range of tens to low hundreds of microseconds (latency and
jitter) with triggering. AFAIR Eric Flister has done a lot of testing
reported back to the Psychtoolbox list.
Sound is much more difficult with XP and MATLAB: The MATLAB builtin
sound architecture is a nightmare with respect to timing. In our lab we
use the DirectSound implementation provided by Cogent
(http://www.vislab.ucl.ac.uk/cogent.php). We have best experience with
with some older onboard AC'97 codecs providing (for sure not the best
dynamic range and SNR but) excellent timing, with sub-millisecond jitter
and latency in very low millisecond range. I have very bad experience
with any tested newer HD audio codec based on the Microsoft HDA sound
architecture (usually latency > 30 ms and jitter > 5 ms) and some
external USB and firewire sound cards (providing excellent SNR and good
latencies and jitter but not working well under high CPU loads). ASIO
sound cards driven by Psychtoolbox's Psychportaudio are supposed to work
well, too.
Altogether we get clearly sub-millisecond jitter with no observable
major outliers and very low millisecond (1-2) latency between sound
onset and trigger (as measured by our oscilloscope). This should be ok
for EEG sampling rates up to 1 kHz.
If you do not like this solution, you might want to consider the
solution used in CBRU in former days: They fed the trigger from the
soundcard (or parallel port) via some small circuitry in one of the EEG
channels (and not the parallel port interface). This way the could
encode and decode at least 255 different levels converted back to
triggers with their respective onsets during the analysis.
Good luck!
Andreas
Daniel Oberfeld schrieb:
Dear list,
I would like to know whether anyone here knows a 'better' method for
synchronizing acoustic stimulation and EEG recordings, more
specifically, for sending triggers accurately time-locked to the audio
signal to a multi-channel EEG system.
We use a NeuroScan SynAmps system (32 channels) for recording auditory
evoked potentials (AEPs).
As we have a MATLAB-based stimulus generation system, we currently use a
very simple triggering scheme. On one channel of our soundcard we create
a short 10 kHz tone burst coinciding with the onset of the auditory
event, and use a small circuit to convert this tone burst to a TTL
pulse, which is then sent to one pin of the parallel-port-like trigger
input of our EEG system.
This way we achieve submillisecond synchronicity between trigger and
sound, but we have only *one single* trigger code appearing in the EEG data.
Thus, some rather complex post-processing is needed to tell the EEG
analysis software which trigger event corresponded to which experimental
condition...
In principle, the NeuroScan system could receive an 8-bit trigger
allowing to code 256 different events. So it is tempting to use the
parallel port for this. But I'm afraid it is impossible to synchronize
the parallel port to audio under Windows XP...
Thus, my question is whether someone knows (and/or uses) a solution to
this problem?
One way to do this would be via a "latched" type of "trigger box":
1) From Matlab, the parallel port is set to a specific code prior to
sound generation (i.e., before the trial starts)
2) The trigger box sits between the parport and the EEG system
3) The trigger code is routed to the EEG system only when an audio
trigger (like the one we use currently) is received by the "trigger box".
This would allow sending time-locked 8-bit trigger events. And it should
be possible to construct such a box using some standard components like
74HC75.
So did anyone ever come across such a device, either commercially
available or custom-made?
Or maybe there are also different solutions which I have not thought
about yet...?
All the best,
Daniel