[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