tc galatasaray ¨un˙ivers˙ites˙im¨uhend˙isl˙ik ve teknoloj

Transcription

tc galatasaray ¨un˙ivers˙ites˙im¨uhend˙isl˙ik ve teknoloj
T.C. GALATASARAY ÜNİVERSİTESİ
MÜHENDİSLİK VE TEKNOLOJİ FAKÜLTESİ
EEG SİNYALLERİ İLE SANAL KLAVYE GERÇEKLENMESİ
(REALISATION D’UN CLAVIER VIRTUEL AVEC LES SIGNAUX
EEG)
BİTİRME ÖDEVİ
Ozan ÇAĞLAYAN
Bölüm : BİLGİSAYAR MÜHENDİSLİĞİ
Danışman : Yrd. Doç. Dr. R. Burak ARSLAN
Mayıs 2008
Préface
Cette thèse est le dernier travail de mes études de licence au Département de Génie
Informatique, Faculté d’Ingénierie et de Technologie, Université Galatasaray. Elle
consiste en une réalisation d’une interface cerveau-ordinateur grâce à laquelle il sera
possible de construire des mots et des phrases en se concentrant sur un clavier virtuel
dessiné par le logiciel écrit.
La rédaction de cette thèse a été difficile mais cette période d’écriture m’a permis de
construire une bonne connaissance sur les notions essentielles de la génie biomédicale
et de comprendre comment les outils informatiques et mathématiques peuvent être
utilisés pour augmenter la qualité de la vie humaine du point de vue de la santé.
Je tiens à remercier M. Burak ARSLAN pour son support, son aide, sa patience
et ses réponses satisfaisantes non seulement pendant ce projet mais pendant mes
études de licence.
Enfin, je remercie bien sûr mes parents et mes amis qui m’ont toujours encouragé
pendant ma vie universitaire.
À Istanbul, le 16 Mai 2008
Ozan Çağlayan
ii
Table des matières
Préface
ii
Résumé
vii
Özet
viii
Introduction
1
1 Interfaces cerveau-ordinateur
3
1.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Système nerveux . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2.1
Le cerveau . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2.2
Les neurones . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3
Imagerie cérébrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.4
Electro-encéphalographie (EEG) . . . . . . . . . . . . . . . . . . . . .
8
1.4.1
Activité rythmique cérébrale . . . . . . . . . . . . . . . . . . .
8
1.4.2
Potentiels reliés à événements . . . . . . . . . . . . . . . . . . 10
1.4.3
Le paradigme d’oddball . . . . . . . . . . . . . . . . . . . . . 11
1.5
Acquisition de l’EEG . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
iii
2 Clavier virtuel
15
2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2
Outils informatiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3
2.4
2.2.1
Matériels informatiques . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2
Logiciels informatiques . . . . . . . . . . . . . . . . . . . . . . 16
Spécifications de l’expérience . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1
Le clavier virtuel . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2
Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3
Observation de l’ERP . . . . . . . . . . . . . . . . . . . . . . 19
Traitement des données . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.1
Paramètres du jeu de données . . . . . . . . . . . . . . . . . . 20
2.4.2
Analyse des époques . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.3
Algorithmes de classification . . . . . . . . . . . . . . . . . . . 22
Conclusion
24
Bibliographie
25
Appendices
26
iv
Table des figures
1.1
Schéma du système nerveux humain . . . . . . . . . . . . . . . . . . .
4
1.2
L’organisation du cerveau . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3
Les phases d’un potentiel d’action . . . . . . . . . . . . . . . . . . . .
6
1.4
Le premier électroencéphalogramme humain . . . . . . . . . . . . . .
8
1.5
Les tracés des rythmes EEG . . . . . . . . . . . . . . . . . . . . . . . 10
1.6
Potentiel relié à événement . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7
L’EEG enregistré avec une seule électrode . . . . . . . . . . . . . . . 12
1.8
Les ERP produits par les stimuli apres le moyennage . . . . . . . . . 12
1.9
Le système 10-20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1
Le kit de recherche de BIOPAC . . . . . . . . . . . . . . . . . . . . . 16
2.2
Deux claviers virtuels différents . . . . . . . . . . . . . . . . . . . . . 17
2.3
L’énumeration des stimuli . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4
Example d’intensification déterminant un symbole . . . . . . . . . . . 18
2.5
Extraction d’une époque . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6
Comparaison des amplitudes P300 . . . . . . . . . . . . . . . . . . . . 22
v
Liste des tableaux
1.1
Les fonctions des aires corticales . . . . . . . . . . . . . . . . . . . . .
5
1.2
La classification des rythmes EEG . . . . . . . . . . . . . . . . . . . .
8
2.1
Les mots du jeu de données . . . . . . . . . . . . . . . . . . . . . . . 19
2.2
Les résultats de l’algorithme oneshot . . . . . . . . . . . . . . . . . . 22
2.3
Les résultats de l’algorithme d’aire . . . . . . . . . . . . . . . . . . . 23
vi
Résumé
Même si les secrets du cerveau humain ne sont pas complètement révélés par les
scientifiques, ce qui est compris jusqu’à maintenant forme une connaissance solide
qui peut être utilisée pour assister à la vie humain du point de vue de la santé et de
l’amusement.
Une des connaissances intéressantes sur le fonctionnement du cerveau humain est
la caractéristique des réponses qu’il produit après la présentation de certains stimuli. Des symboles infréquents présentés dans une séquence de symboles fréquents
évoquent une réponse de caractéristique différente qui peut être utilisée comme un
moyen de communication alternatif pour les personnes handicapées.
Ce paradigme qui profite des stimuli infréquents présents dans une séquence de
stimuli fréquents, peut être facilement exploité par une interface cerveau-ordinateur
qui permet à l’utilisateur de construire des mots et des phrases en se concentrant
sur un clavier virtuel dessiné par un logiciel.
Ce projet vise à réaliser l’interface cerveau-ordinateur citée ci-dessus en écrivant un
logiciel qui va visualiser un clavier virtuel et analyser l’activité cérébrale de l’utilisateur pour comprendre quel symbole a été choisi. L’acquisition de l’activité cérébrale se fait via un appareil appelé l’électroencéphalographe qui peut être facilement
connecté à un ordinateur.
vii
Özet
İnsan beyninin işleyişine dair bilim adamlarının halen açıklığa kavuşturamadığı noktalar olsa da, bugüne kadar keşfedilmiş ve anlaşılmış kısımlar bile mühendislerin
engelli insanların yaşam kalitelerini arttırmak için gerekli araçları üretebilmesine
yetmektedir. Bu araçlara örnek olarak hiçbir uzvunu kullanamayan bir hastanın
düşünce gücüyle sürebileceği tekerlekli bir sandalyeyi ya da konuşma yetisini kaybetmiş bir hastanın görsel bazı uyaranlar vasıtasıyla seçtiği harflerle cümle kurabilmesini sağlayan bir beyin-bilgisayar arayüzünü verebiliriz.
Beyin-bilgisayar arayüzlerinin gelişimi, işlem gücü yüksek bilgisayarların yaygınlaşmasıyla ivme kazansa da bu tasarımların çoğunluğu bilimsel araştırma niteliğinde
olup günlük hayatta kullanılabilecek performansa henüz erişememiştir. Bu çalışmada, dış dünya ile iletişim olanakları kısıtlanmış engellilerin yazı yazmak için kullanabilecekleri bir beyin-bilgisayar arayüzünün geliştirilmesi için gerekli altyapı sağlanacak ve ilgili sanal klavye uygulaması geliştirilecektir.
Bilindiği gibi insan beyninde çok sayıda sinir hücresi bulunmaktadır. İnsan beyninde
1010 ila 1013 adet sinir hücresi bulunduğu tahmin edilmektedir. Sinir hücreleri beynin
bilginin iletiminden sorumlu olduğu için beynin işleyişinde kilit rol oynamaktadır.
Sinir hücreleri arasındaki iletim, aksiyon potansiyeli adı verilen elektrik potansiyeller sayesinde gerçekleşir. Aksiyon potansiyeli, sinir hücresinin içi ve dışı arasındaki
potansiyel farkından kaynaklanan, hücrenin dinlenme potansiyelindeki sert ve ani
değişimle ifade edilir.
Sinir hücreleri birbirleriyle aralarında bulunan ve sinaps adı verilen hücresel boşluklar vasıtasıyla haberleşirler. Yukarıda bahsi geçen aksiyon potansiyellerinin oluşması
sonucu sinir hücresi bu boşluğa özel bir madde bırakır ve bu madde sinapsı geçerek
diğer hücrenin alıcılarına yapışır.
viii
Sinir hücrelerinin yoğun olarak bulunduğu küçük alanlarda üstüste binen bu elektriksel aktiviteler kafa derisine bağlanan elektrodlar aracılığıyla izlenebilmekte ve
kaydedilebilmektedir.
İnsan beyninin elektriksel aktivitesinin izlenmesini sağlayan cihaza elektroensefalograf(EEG) adı verilir. EEG cihazı klinik uygulamalarda nörologlar tarafından sıkça
kullanılmaktadır. Son zamanlarda bu cihazların sayısal olanları da üretilmiş olup
izlenen sinyaller kolaylıkla bilgisayara aktarılabilmekte ve saklanabilmektedir.
Uluslararası bir standart olan 10-20 sistemiyle belirlenen mesafelere göre kafa derisine yapıştırılan elektrodlarla yapılan kayıtlar, beynin anlık aktivitesini yansıtmaktadır. Bu anlık aktivitenin deneyimli bir EEG uzmanı tarafından yorumlanmasıyla
kişinin uyanıklılık durumu, uyaranlara verdiği tepki gibi bazı önemli parametrelere
ulaşılabilir.
Bu çalışmada beynin anlık aktivitesinden ziyade uyarılmış potansiyel adı verilen
farklı bir elektriksel aktiviteden faydalanılacaktır. Uyarılmış potansiyeller, beynin
dış uyaranlara verdiği tepki sonucunda oluşan gerilim değişiklikleridir. Bu potansiyellerin iki karakteristik özelliği vardır : Gecikme ve değişimin yönü. Gecikme, dış
uyaranın oluştuğu andan itibaren, uyarılmış potansiyelin üretilmesine kadar geçen
süreyi temsil etmektedir. Bir uyarılmış potansiyel bileşeni, genliği 0’dan küçükse negatif, 0’dan büyükse pozitif olarak adlandırılır. Bu iki özellik, uyarılmış potansiyel
bileşeninin adlandırılmasında kullanılır. Örneğin N400, negatif ve uyaranın oluşmasından 400 ms sonra üretilen bir bileşendir. Bu çalışmadan kullanılacak olan P300
cevabı ise pozitif ve 300 ms gecikmeye sahip bir uyarılmış potansiyel bileşenidir.
P300 cevabı beyin-bilgisayar arayüzü tasarımlarında sıkça kullanılan bir uyarılmış
potansiyel bileşenidir. P300 bileşeninin oluşmasına yol açan ve bu çalışmada kullanılacak olan deneysel düzeneğe oddball paradigması adı verilir. Bu paradigmaya
göre, bir dizi uyaran arasında diğerlerine göre daha az sayıda olan uyaranlar P300
bileşeninin üretilmesine yol açmaktadır. Örneğin deneğe belirli aralıklarla, rastgele
sırada X ve O sembolleri gösterilsin ve uyaran dizisinin 80%’ini X, 20%’sini ise O
sembolü oluştursun. Bu durumda sıkça gözüken X sembolleri arasında nadiren gözükecek olan O sembolleri, X sembollerinin ürettiği P300 cevabına göre daha kaliteli
ve güçlü bir P300 cevabı üretecektir.
Beynin anlık aktivitesinin oldukça rassal ve karmaşık olduğu düşünüldüğünde, üretilen uyarılmış potansiyellerin bu gürültülü sinyallerin arasından ayrıştırılması oldukça
zordur.
ix
Bu sebepten dolayı her deney, belirli bir sayıda tekrarlanarak sinyallerin ortalaması
alınır. Gürültü diye nitelediğimiz rassal genlikler bu ortalama alma işlemi sonucunda birbirini söndürecek ve geriye sadece belirli uyaranlar karşısında oluşmuş olan
uyarılmış potansiyeller kalacaktır.
Bu çalışmada gerçeklenecek sanal klavye uygulamasının çalışma mantığı ise tamamen oddball paradigmasının bir sonucudur. Ekranda 6x6 matris şeklinde düzenlenmiş ve alfanümerik karakterlerden oluşan bir klavye bulunmaktadır. Klavyedeki
harfler gri renkle boyanmıştır. Önce satırlar sonra sütunlar olmak üzere bu 12
satır/sütun rastgele yanıp sönmektedir(renkleri griden beyaza değişmektedir). Yazılmak istenen harfe odaklanan denek, her alt deneyde, seçtiği harfin 2 defa yandığını
görecektir yani seçtiği harf genellikle gri kalacak ama 2 defa beyaza dönecektir. Bunun sonucunda eğer denek seçtiği harfe düzgün bir şekilde odaklanırsa, bu ”nadir”
uyaranlar P300 cevabının oluşmasına neden olacaktır. Elde edilen sinyalin ortalaması alınacağı için, tek bir harfin seçilmesi için bile 12 yanıp sönmeyi içeren bir
alt deney, belirli sayıda tekrarlanacaktır. Genellikle deneğin seçeceği harfe düzgün
odaklanabilmesini sağlamak için, seçtiği harfin kaç defa yanıp söneceğini sayması
söylenir.
Geliştirilecek olan sanal klavye uygulaması MATLAB ’da yazılacaktır. MATLAB,
teknik hesaplamalar ve matematiksel problemlerin çözüm ve analizi için tasarlanmış
bir yazılım geliştirme aracıdır. MATrix LABoratory kelimesinin kısaltması olan MATLAB ’da, temel veri yapısı matrislerdir. Özellikle mühendislik alanındaki sistemlerin
analizinde kullanılan MATLAB, görüntü işleme, yapay sinir ağlarının modellenmesi,
sayısal işaret işleme, optimizasyon, veri toplama, filtre tasarımı gibi önemli alanlarda
çok yetenekli araçlara ve kolaylıklara sahiptir.
EEG sinyallerinin alınması için BIOPAC tarafından üretilmiş olan BSL Basic System eğitim seti kullanılacaktır. USB arabirimi üzerinden çalışan bu veri toplama
ünitesi ve EEG aletiyle MATLAB üzerinden iletişime geçilmesini sağlayan BHAPI
adında bir uygulama programlama arayüzü(API, Application Programming Interface) mevcut olup, elde edilmekte olan EEG sinyalleri gerçek zamanlı olarak MATLAB ’a aktarılabilmektedir.
Sanal klayvenin temsili ve satır/sütun’ların yakıp söndürülmesinde ise oldukça başarılı
bir MATLAB alet kutusu olan Psychophysics Toolbox kullanılacaktır. Bu alet kutusunun özelliği uyaranları oldukça hassas(mikrosaniye mertebesinde) bir zamanlamayla görüntüleyebilmesi ve görüntülenme zamanlarını programcıya sunmasıdır.
x
Bu sayede her rassal yakıp söndürme işleminin tam olarak ne zaman başladığı tutularak, aynı zamanda toplanmakta olan EEG verisiyle senkronize bir biçimde çalışılabilmektedir.
Güncel çalışmalarda hangi harfin seçilmiş olduğunu tek deneyde belirlemeye çalışan
algoritmalar denenmeye başlanmıştır. Ancak kişiden kişiye hatta kişinin kendi içinde
elektrofizyolojik özellikler sıkça değişiklik gösterebildiği için bu yöntemler algoritmanın önceden yapılan deneylerle eğitilmesini gerektirmektedir. Her ne kadar birden fazla alt deney gerçekleştirilmesi, dakikada yazılabilecek harf sayısını düşürse
de, pratik bir uygulamanın kolayca gerçekleştirilebilmesi için bu çalışmada tercih
edilmiş ve makul sonuçlar elde edilmiştir.
xi
Introduction
Les gens qui souffrent des paralysies sévères causées par des maladies comme la
sclérose latérale amyotrophique(SLA), le locked-in syndrome(LIS), les dystrophies
musculaires et les blessures de la moelle épinière, ont souvent des gros problèmes de
communication avec le monde extérieur. Grâce aux recherches multidisciplinaires,
les patients dont les capacités de communication ont été sérieusement affaiblies,
possèdent la possibilité de restaurer leurs facultés perdues en utilisant les interfaces
neuronales appelées plus souvent interfaces cerveau-ordinateur(ICO). Une ICO est
un système composé d’un module d’acquisition ayant pour but d’enregistrer les signaux éléctrophysiologiques du cerveau et d’un ordinateur dédié à l’interprétation de
ces signaux pour interagir avec l’utilisateur. Matthew Nagle, patient tetraplégique1 ,
a été un des premiers volontaires à essayer une neuroprothèse2 appelée BrainGate.
Attaché à des ordinateurs, Nagle a pu déplacer un curseur pour accomplir des tâches
différentes comme ouvrir ses courriers éléctroniques et éteindre la télévision [1].
A part leur importance dans les domaines médicaux, les ICO sont très populaires
dans la domaine de la réalité virtuelle. Récemment, la compagnie américaine Emotiv
a présenté son dernier produit Epoc qui est une casque dédiée à la détection des
pensées et des sentiments de son utilisateur pendant un jeu vidéo.
1. Quelqu’un qui souffre de la tetraplégie. La tetraplégie est la paralysie des quatre membres
causée généralement par une lésion de la moelle épinière.
2. Une neuroprothèse est une interface cerveau-ordinateur implantée dans le cerveau.
2
L’objectif de cette thèse est de développer une ICO qui va permettre à l’utilisateur
de construire des phrases en se concentrant sur un écran qui visualise un clavier
composé des caractères alphanumériques. L’acquisition et la discrétisation en temps
réel des signaux éléctrophysiologiques du cerveau se fera grâce à une carte d’acquisition de données connectée à un groupe d’électrodes attachées au cuir chevelu
de l’utilisateur. Ces signaux traités et interprétés par le fameux logiciel scientifique
MATLAB dévéloppé par MathWorks, seront utilisés pour déterminer le caractère
choisi par l’utilisateur. La partie visuelle sera programmé avec une boı̂te d’outils
spéciale de MATLAB appelée Psychophysics Toolbox qui est fréquemment utilisée
dans les applications psychophysiques pour représenter des stimuli visuels avec un
timing bien précis.
Pour atteindre cet objectif, le travail se divise en deux chapitres organisés de la façon
ci-dessous :
– Le premier chapitre introduit les notions essentiels du cerveau en bien précisant
les différents signaux éléctrophysiologiques utilisés dans la conception d’une ICO
et les technologies pour les enregistrer,
– Le deuxième chapitre introduit et détaille le paradigme de ce travail et explique
les composants principaux du logiciel et du matériel. L’acquisition, le traitement
et l’interprétation des signaux sera traitée en parallèle avec la conception de l’interface graphique qui constitue le clavier virtuel.
Chapitre 1
Interfaces cerveau-ordinateur
1.1
Introduction
La conception d’une ICO nécessite une connaissance de base du cerveau humain et
des signaux éléctrophysiologiques qu’il produit pendant son activité. Ce chapitre a
donc pour but de fournir cette connaissance de base en décrivant le fonctionnement
du cerveau humain, la classification des signaux éléctrophysiologiques générés par
le cerveau humain, l’intérêt de ces signaux dans les ICO et les méthodes et les
conventions utilisées pendant l’acquisition de ces signaux.
1.2
Système nerveux
Le système nerveux (Figure 1.1) est le centre de décision et de communication du
corps humain. Le système nerveux est divisé en deux sous systèmes : Le système
nerveux central(SNC) et le système nerveux périphérique(SNP). Le SNC est composé
du cerveau et de son prolongement naturel, la moelle épinière, qui traverse la colonne
vertébrale. La colonne vertébrale, avec le crâne, constitue une véritable armure pour
le système nerveux central. Le SNP est formé des nerfs capables de transmettre des
informations du corps vers le cerveau (nerfs sensitifs) et du cerveau vers les effecteurs
(nerfs moteurs). La moelle épinière, constitué d’un faisceau de nerfs, est semblable
à une autoroute qui circule ces informations de et vers le cerveau.
4
Figure 1.1 – Schéma du système nerveux humain : Le SNC est représenté par le
rouge tandis que le SNP par le bleu.
1.2.1
Le cerveau
Le cerveau est l’organe central qui contrôle le système nerveux. Le cerveau peut être
divisé en trois parties principales : Le cortex cérébral, le cervelet et le tronc cérébral.
Le cortex cérébral est la couche externe du cerveau résponsable du traitement de
l’information. Le cortex cérébral est divisé en deux hémisphères connectés par une
structure appelée corpus callosum. Chaque hémisphère est constitué de quatre lobes :
Le lobe frontal, le lobe occipital, le lobe pariétal et le lobe temporal(Figure 1.2(a)).
Chaque lobe se partage encore en plusieurs aires(Figure 1.2(b)) résponsables du
traitement des données différentes.
5
(a) L’organisation des lobes
(b) L’organisation des aires
Figure 1.2 – L’organisation du cerveau
Aire
Aire prémotrice
Aire motrice
Fonction
Coordonne les mouvements complexes
Transmets des instructions aux muscles pour initialiser les mouvements volontaires
Aire somatosensorielle Reçoit des informations provenant des récepteurs
de la peau
Aire de Wernicke
Interprète les informations tactiles
Aire visuelle
Détecte les différentes parties d’une scène visuelle
Aire auditive
Distingue les qualités sonores comme le volume et
la tonalité
Aire de Broca
Représente le centre moteur de langage
Table 1.1 – Les fonctions des aires corticales [2]
1.2.2
Les neurones
Les neurones sont des cellules principales du système nerveux qui traitent et transmettent l’information. Le nombre de neurones qui se trouvent dans le cerveau varie
d’une espèce à une autre mais les estimations pour le cerveau humain sont entre 1010
et 1013 [3].
6
La communication entre les neurones se fait grâce à des potentiels électriques appelés
plus précisement le potentiel d’action. Le potentiel d’action(Figure 1.3) est la variation brutale et rapide du potentiel de repos d’une cellule causée par la différence de
potentiel entre l’extérieur et l’intérieur de cette cellule. Le potentiel de repos d’une
neurone varie entre -60 mV et -70 mV.
Figure 1.3 – Les phases d’un potentiel d’action
Les potentiels d’action donnent naissance à la libération d’une substance spéciale
neurotransmetteur. Cette substance traverse la synapse, l’espace qui se trouve entre
les neurones, et se colle aux récepteurs d’un autre neurone. Ces chaı̂nes d’événements
produisent l’activité électrique du cerveau observable par les différentes techniques
d’enregistrement.
7
1.3
Imagerie cérébrale
L’imagerie cérébrale définit l’ensemble des techniques issues de l’imagerie médicale
permettant l’observation du cerveau, en particulier pendant une tâche cognitive. Les
techniques plutôt intéressantes dans le contexte des ICO sont la magnétoencéphalographie(MEG), l’électro-encéphalographie(EEG), l’électrocorticographie(EcoG) et
l’enregistrement unitaire d’un neurone avec des électrodes implantées.
EEG
C’est la mesure de l’activité électrique du cerveau par des électrodes placées sur le
cuir chevelu. C’est la technique souvent utilisée dans la conception des ICO parce
qu’elle a une résolution temporelle acceptable et elle est non-invasive.
EcoG
C’est une technique similaire à EEG qui mesure l’activité électrique à partir des électrodes implantées sous la surface du crâne, directement au niveau du cortex cérébral.
C’est une technique partiellement invasive qui fournit une meilleure résolution spatiale et un meilleur rapport signal sur bruit(SNR, du terme anglais signal-to-noise
ratio) que l’EEG.
MEG
Cette technique est utilisée pour mesurer des champs magnétiques induits par l’activité électrique du cerveau par l’intermédiaire des appareils extrêmement sensibles
comme le Superconducting Quantum Interference Device(SQUID). MEG fournit une
bonne résolution spatio-temporelle mais nécessite l’utilisation d’une chambre à blindage magnétique.
La section suivante discute en détail les principes de l’EEG qui va être utilisée dans
ce travail.
8
1.4
Electro-encéphalographie (EEG)
L’EEG est la mesure de l’activité électrique du cerveau par des électrodes placées
sur le cuir chevelu. Le signal électrique à la base de l’EEG résulte de la sommation
des potentiels d’actions post-synaptiques issus d’un grand nombre de neurones.
Le psychiatre allemand Hans Berger a été le premier à prouver l’existence des potentiels électriques dans le cerveau humain en utilisant un amplificateur appelé un électroencéphalographe(EEG). Il a enregistré le premier électroencéphalogramme(EEG)
humain (Figure 1.4) en 1924.
Figure 1.4 – Le premier électroencéphalogramme(EEG) humain enregistré en 1924
1.4.1
Activité rythmique cérébrale
L’activité électrique quotidienne de l’homme est composée des oscillations multiples
ayant des caractéristiques différentes dépendant de l’état du sujet(éveillé ou en sommeil). Il est possible de voir ces activités électriques cérébrales rythmiques sur un
tracé EEG typique.
Les rythmes EEG sont classés selon leur fréquence(Table 1.2). L’amplitude de ces
signaux est environ 100µV quand mesurée sur le cuir chevelu et 1-2mV quand mesurée sur la surface du cerveau [4].
Rythme
Delta (δ)
Theta (θ)
Alpha (α)
Beta (β)
Gamma (γ)
Fréquence(Hz)
< 3.5
4 - 7.5
8 - 13
14 - 30
> 30
Table 1.2 – La classification des rythmes EEG [5]
9
Rythme delta
Les ondes EEG jusqu’à 3.5 Hz constituent le rythme delta. Le rythme delta chez
les adultes est seulement observable pendant le sommeil profond et donc n’est pas
intéressant dans la réalisation des ICO [6].
Rythme theta
Le rythme theta à fréquence entre 4 et 7.5 Hz, joue un rôle important dans l’enfance
et aussi dans les états de somnolence1 , et de sommeil [5].
Rythme alpha
Rythme à fréquence 8-13 Hz qui se produit pendant l’éveil sur les régions postérieures
de la tête, généralement à plus forte tension sur les zones occipitales. L’amplitude
étant variable, est souvent inférieure à 50µV chez les adultes. Le rythme alpha est
mieux observé quand la personne éveillée ferme les yeux et se détend. Il est bloqué
ou attenué par l’attention, en particulier visuelle, et par l’effort mental [5].
Rythme beta
L’activité rythmique beta est souvent rencontrée sur les zones frontales et centrales
et généralement ne dépasse pas 35 Hz. Le rythme beta central est relié au rythme
mu et peut être bloqué par une activité motrice ou une stimulation tactile [5].
Rythme mu
Ayant une fréquence et une amplitude similaire au rythme alpha, le rythme mu est
physiologiquement différent du rythme alpha. Mu désigne ”Moteur” et le rythme mu
est fortement relié au fonctionnement de l’aire motrice et aussi de l’aire somatosensorielle. Le fait que les pensées sur la réalisation des mouvements et la préparation
des mouvements peut bloquer le rythme mu, a augmenté son importance dans les
recherches des ICO [6].
1. La somnolence est l’état de quasi-sommeil représenté par un fort désir de dormir.
10
Figure 1.5 – Les tracés des rythmes EEG
Les différents rythmes décrits ci-dessus sont issus des potentiels spontanés du cerveau. Ils ne sont pas produits par des stimuli externes mais par l’état interne du
sujet(la détente, l’effort mentale, le sommeil, etc.). Les potentiels qui seront utiles
dans ce travail sont ceux qui sont produits par des stimuli externes, en particulier
visuels.
1.4.2
Potentiels reliés à événements
Le potentiel relié à événement(ERP, du terme anglais Event-related potential ) est une
réponse électrophysiologique du cerveau à un événement particulier ou un stimulus.
Cette réponse est temps verrouillée à l’événement qui la provoque et caractérisée
par la latence et la polarité de la déviation(Figure 1.6).
11
Par exemple, la composante N135 est décrite par une déviation négative(désignée
par N) de la tension qui se produit 135 ms après la présentation du stimulus pendant
que la composante P100 est décrite par une déviation positive de la tension qui se
produit 100 ms après la présentation du stimulus.
Figure 1.6 – Potentiel relié à événement
L’amplitude des ERP est faible(de l’ordre des microvolts) quand comparée à l’activité spontanée enregistrée par l’EEG. Pour pouvoir distinguer ces potentiels de
l’activité courante du cerveau et des autres signaux qui s’interfèrent, la moyenne des
signaux enregistrés est calculée après un certain nombre de répétitions de l’expérience. Grâce à ce moyennage, les autres potentiels de caractéristique aléatoire sont
attenués, ce qui augmente le SNR et rend les ERP plus visibles.
1.4.3
Le paradigme d’oddball
Lorsque les sujets sont assignés une tâche qui demande ces derniers à déterminer auquel des 2 catégories possibles chaque élément d’une séquence présentée appartient,
et une de ces catégories apparait rarement, ces rares éléments produisent un ERP
avec une composante positive de latence d’environ 300 ms appelé P300. Cette disposition expérimentale est appelée le paradigme d’oddball. Ce paradigme est exploité
par Farwell et Donchin dans une ICO qui permet d’écrire des mots en choisissant des
symboles organisés sous forme d’une matrice [7]. Les détails de cette expérience sur
laquelle ce projet de fin d’études est basé, seront discutés dans le chapitre suivant.
12
Une expérience simple
Cette expérience [8], est une variaton du paradigme d’oddball dans laquelle les sujets
doivent classifier une séquence de symboles constituée par X et O en appuyant
un bouton pour les X et un autre pour les O. Les X constituent 80% de toute
la séquence pendant que les O constituent 20%. Chaque symbole est présenté sur
un écran pour 100 ms suivi d’un intervalle d’interstimulus(ISI, du terme anglais
interstimulus interval ) de 1400 ms.
Figure 1.7 – L’EEG enregistré avec une seule électrode [8]
La figure 1.7 montre un morceau de 9 secondes de l’EEG d’un sujet participé à
cette expérience. Une seule électrode placée sur la ligne médiane des lobes pariétaux est utilisée pendant l’acquisition de l’EEG. La difficulté de distinguer l’activité
spontanée et les ERP produits est évidente mais il existe quand même une sorte de
cohérence dans la réponse à chaque stimulus. Notez bien que le sens de l’axe des y
est inversé dans les figures concernant cette expérience suivant la convention de [8].
Figure 1.8 – Les ERP produits par les stimuli apres le moyennage [8]
13
À la fin de chaque séance, une procédure simple de moyennage est appliquée aux
données acquises pour pouvoir extraire les ERP produits par les stimuli. Supposons
qu’une séance est constituée de 80 X et 20 O. L’EEG de cette séance est segmenté en
100 morceaux de 800ms chacun, représentant les périodes juste après chaque présentation de stimulus. La moyenne des segments concernant les X et les O est calculée
séparement. Ces derniers signaux obtenus(Figure 1.8) montrent que l’amplitude de
la composante P300 de l’ERP produit par les symboles rares est significativement
élevée par rapport à celle de l’ERP produit par les autres.
1.5
Acquisition de l’EEG
L’EEG est enregistré avec des électrodes placées sur le cuir chevelu. Les électrodes
sont des petites plaques capables de conduire l’électricité. Une substance spéciale est
appliquée entre les électrodes et la peau pour augmenter la conductivité électrique.
La position des électrodes sur le cuir chevelu est déterminée suivant une convention
standardisée appelée le système 10-20(Figure 1.9). Ce système est basé sur la relation
qui se trouve entre la position d’une électrode et la région du cortex cérébral en
dessous de cette électrode. La distance entre les repères spécifiques(L’inion et le
nasion) est divisée de façon à ce que la distance entre les électrodes adjacentes soit
10% ou 20% de cette distance quand placées.
Figure 1.9 – Le système 10-20 : Vue supérieure et latérale [9]
14
Chaque position d’électrode a une lettre correspondante qui désigne le lobe sousjacent et un nombre ou une autre lettre qui identifie son emplacement sur les hémisphères. Les lettres F, T, C, P et O représentent respectivement Frontal, Temporal,
Central, Pariétal et Occipital. Même si il n’existe pas un lobe central dans le cerveau,
la lettre C est utilisée pour des raisons d’identifications. La lettre Z représente les
électrodes placées sur la ligne médiane. Les nombres paires(2,4,6,8) sont attribués
aux positions sur l’hémisphère droite tandis que les nombres impaires(1,3,5,7) sont
attribués aux positions sur l’hémisphère gauche.
Il existe aussi une extension de ce système appelée la nomenclature combinatoriale
modifiée(MCN) qui donne la possibilité d’ajouter des électrodes additionnelles pour
une acquisition plus détaillée.
Chapitre 2
Clavier virtuel
2.1
Introduction
Ce chapitre se concentre sur l’implementation du clavier virtuel de façon à ce qu’il
permet aux sujets de construire des mots et des phrases. Les matériels et les logiciels
utilisés vont être expliqués en détail avec la spécification complète de l’expérience
psychophysique qui exploite le paradigme d’oddball. À la fin de ce chapitre, une
comparaison de performance sera faite pour bien distinguer les algorithmes de classification utilisés.
2.2
Outils informatiques
2.2.1
Matériels informatiques
Pour l’acquisition des signaux EEG, un kit de recherche(Figure 2.1) produite par
la compagnie BIOPAC sera utilisée. Ce kit est constitué d’une carte d’acquisition
équipée d’un amplificateur, des cables nécessaires et des électrodes. La carte possède
une interface USB qui permet de transférer les données acquises. Il existe aussi une
bibliothèque écrite par BIOPAC qui sert à accèder aux données pendant l’acquisition. Grâce à cette bibliothèque de programmation, il sera possible d’analyser l’EEG
pendant que l’expérience se déroule.
16
Figure 2.1 – Le kit de recherche de BIOPAC
2.2.2
Logiciels informatiques
MATLAB
MATLAB (MATrix LABoratory) est un logiciel interactif basé sur le calcul matriciel.
Il est fréquemment utilisé dans les calculs scientifiques et les problèmes d’ingénierie
car il permet de résoudre des problèmes complexes en moins de temps comparé
aux langages de programmation grâce à une multitude de fonctions intégrées et aux
boı̂tes d’outils.
Le kit de recherche de BIOPAC offre une bibliothèque spécifique à MATLAB appelée
BHAPI qui permet d’accèder aux données acquises par la carte en temps réel.
Psychophysics Toolbox
La partie visuelle du clavier virtuel sera programmé avec une boı̂te d’outils spéciale
de MATLAB appelée Psychophysics Toolbox qui est fréquemment utilisée dans les
applications psychophysiques pour représenter des stimuli avec un timing bien précis, de l’ordre des microsecondes. Cette boı̂te d’outils permet d’enregistrer le temps
précis de la présentation d’un stimulus. Cette propriété est importante pour pouvoir
synchroniser les expériences avec l’acquisition de l’EEG.
17
2.3
2.3.1
Spécifications de l’expérience
Le clavier virtuel
Le clavier virtuel proposé par ce travail(Figure 2.2(a)) est organisé sous forme d’une
matrice à 6x6. Il contient 26 caractères alphabétiques et 10 chiffres. Le clavier qui
était proposé par Farwell et Donchin(Figure 2.2(b)) contenait des commandes au
lieu des chiffres pour accomplir des tâches différentes comme supprimer la dernière
lettre écrite ou quitter le logiciel.
(a) Le clavier virtuel de ce travail
(b) Le clavier virtuel proposé par
Farwell et Donchin [7]
Figure 2.2 – Deux claviers virtuels différents
Chaque état du clavier est représentée par une image jpeg. Quand le logiciel est lancé,
ces images sont chargées à la mémoire vidéo pour une visualisation plus rapide.
Psychophysics Toolbox contient une méthode flip qui dessine ces images à l’écran
avec une latence de l’ordre des microsecondes, ce qui rend possible la représentation
des stimuli avec une précision suffisante.
2.3.2
Principe
L’expérience exploite les conséquences du paradigme d’oddball en observant la composante P300 de l’ERP évoqué par les stimuli du clavier virtuel. Dans le contexte
de cette expérience, un stimulus est l’intensification d’une ligne ou d’une colonne du
clavier virtuel.
18
Le clavier virtuel est constitué de 36 symboles(caractères et chiffres) colorés en gris.
Une ligne ou une colonne est dite intensifiée quand tous les symboles qui la constituent sont colorés en blanc. Chaque intensification constitue un stimulus visuel pour
le sujet qui pratique l’expérience.
La période pendant laquelle toute les lignes et les colonnes du clavier sont intensifiées
aléatoirement est appelé un essai. Puisqu’il existe 6 lignes et 6 colonnes, un essai
contient exactement 12 stimuli visuels. Pour bien distinguer ces différents stimuli,
les lignes et les colonnes du clavier virtuel sont numérotées(Figure 2.3).
Figure 2.3 – L’énumeration des stimuli
Pendant un essai, le sujet doit se concentrer sur un des symboles du clavier virtuel.
Puisqu’un essai est constitué de 12 intensifications, le symbole concentré sera coloré
en blanc 2 fois pendant chaque essai. Ces 2 intensifications vont produire un ERP
contenant un composant P300 plus distinctif comparé à celui produit par les 10
autres intensifications, selon le paradigme d’oddball(cf. 1.4.3).
Supposons que le sujet se concentre sur le symbole P, 2 intensifications déterminant
le symbole P sont montrées sur la figure 2.4 :
Figure 2.4 – Example d’intensification déterminant un symbole
19
2.3.3
Observation de l’ERP
Puisque l’activité courante et l’activité événementielle(provenant de l’ERP) du cerveau sont superposées tout ensemble avec des autres interférences comme les mouvements des yeux, il n’est pas facile d’observer la réponse P300 de l’ERP en analysant
un seul essai. Pour remédier à ce problème, la méthode de moyennage citée dans le
chapitre précédent va être utilisé.
Même si il existe des approches de détection avec un seul essai(Single-Trial Detection) [10][11], elles ne seront pas traitées dans le contexte de cette thèse à cause de
leur complexité et du besoin d’entraı̂ner les algorithmes.
2.4
Traitement des données
Pour concrétiser ce qui est expliqué jusqu’ici, un jeu de données MATLAB enregistré
avec BCI20001 pour une compétition réalisée en 2002 sera utilisé [12].
Le jeu de données est constitué de l’EEG d’un sujet qui pratique l’expérience du
clavier virtuel. Il existe 11 différents fichiers MATLAB représentant 11 pratiques
de l’expérience. Dans chacun de ces expériences, le sujet construit un mot en se
concentrant sur des symboles du clavier virtuel(Table 2.1). L’enregistrement est fait
en deux séances différentes.
Fichier
AAS010R01
AAS010R02
AAS010R03
AAS010R04
AAS010R05
AAS011R01
AAS011R02
AAS011R03
AAS011R04
AAS011R05
AAS011R06
Séance
1
1
1
1
1
2
2
2
2
2
2
Mot
Cat
Dog
Fish
Water
Bowl
Hat
Hat
Glove
Shoes
Fish
Rat
Table 2.1 – Les mots du jeu de données
1. BCI2000 est une plate-forme flexible de recherche et de développement utilisée dans la réalisation des interfaces cerveau-ordinateur. Pour plus d’information, voir http ://www.bci2000.org.
20
2.4.1
Paramètres du jeu de données
Chaque expérience du jeu de données est réalisé avec les mêmes paramètres. L’enregistrement est fait avec un taux d’échantillonage égal à 240 Hz ce qui veut dire que
l’EEG du sujet est représenté avec 240 échantillons par seconde.
Dans chaque expérience, le sujet se concentre sur une séquence de caractères construisant le mot qu’il veut écrire. Pour chaque caractère, le clavier vide(sans aucune intensifications) est affiché pendant 2.5 secondes. Après cette période vide, les essais
commencent. Un essai contient 12 intensifications aléatoires de 100 ms. Entre chaque
intensification, le clavier vide est affiché pendant 75 ms. Puisqu’un essai n’est pas
suffisant pour distinguer les ERP, l’écriture de chaque caractère consiste en 15 essais
successives, ce qui fait 180 intensifications pour chaque caractère.
L’EEG est stocké dans la matrice signal. L’enregistrement est fait avec 64 électrodes
donc la taille de cette matrice est Nx64 avec N égal au nombre d’échantillons dans
une expérience.
Le vecteur colonne trialnr associe les indices des échantillons aux nombres d’intensifications ce qui permet de trouver l’intervalle correspondant à une intensification
spécifique.
La variable StimulusCode qui est aussi un vecteur colonne, associe les indices des
échantillons aux stimuli ce qui permet de déterminer la ligne ou la colonne qui est
intensifié à un instant spécifique.
La séance de MATLAB suivante clarifie la fonction des variables StimulusCode et
trialnr :
>> sample = 24*240
% echantillon correspondant à la 24ème seconde
sample =
5760
>> StimulusCode(sample)
ans =
10
>> trialnr(sample)
% à la 24ème seconde, le stimulus 10 est produit
% stimulus 10 = intensification de la 4ème ligne
ans =
123
% l’intensification numéro 123 est en exécution
% pendant la 24ème seconde.
21
2.4.2
Analyse des époques
Après chaque intensification, un morceau d’EEG de 600 ms est extrait de la matrice
signal pour analyser le composant P300 de cette intensification. Ce morceau est
appelé une époque. Seul les données acquises par l’électrode Cz sont utilisées.
Figure 2.5 – Extraction d’une époque
Puisqu’il existe 180 intensifications par caractère, il y aura 180 époques. Ces époques
sont stockées dans la matrice stimulusdata selon leurs stimuli correspondants. Avec
un taux d’échantillonage de 240 Hz, une époque de 600 ms est représentée par
144 échantillons. Sachant qu’il existe 12 différents stimuli, la taille de la matrice
stimulusdata est 12x144. À chaque extraction d’une nouvelle époque, celle-ci est
ajoutée à la ligne correspondante de la matrice. À la fin de 180 intensifications,
chaque ligne est remplacée par sa moyenne. Les 2 lignes ayant le composant P300
le plus élevé sont celles qui déterminent le symbole choisi dans les conditions idéales
d’expérience.
Une comparaison entre une époque finale d’un stimulus rare(oddball) et d’un stimulus fréquent(standard) est faite ci-dessous(Figure 2.6).
22
Figure 2.6 – Comparaison des amplitudes P300
2.4.3
Algorithmes de classification
Une fois calculée la moyenne de toutes les époques correspondant aux différents
stimuli, il faut les classifier et choisir les deux qui possèdent une réponse P300 plus
élevée que les autres. Deux algorithmes simples seront introduits pour accomplir
cette tâche de classification.
Algorithme oneshot
C’est l’algorithme le plus simple et inefficace qui trie les 12 époques finales selon
l’amplitude d’un seul point. Le choix de ce point est important puisqu’il affecte
la performance de l’algorithme. Une comparaison de trois choix différents est faite
ci-dessous :
Temps(ms)
300
310
320
Séance 1
21.05%
52.63%
36.84%
Séance 2
17.39%
34.78%
21.74%
Total
19.05%
42.86%
28.57%
Table 2.2 – Les résultats de l’algorithme oneshot
23
Calcul d’aire au voisinage de P300
Cet deuxième algorithme calcule la somme des amplitudes du signal entre une intervalle donnée, ce qui revient à calculer l’aire qui reste entre ce morceau de la courbe
et l’axe des x. Cet algorithme fait une classification plus correcte quand comparée à
l’algorithme précédent.
Intervalle(ms)
300-310
300-318
300-320
300-330
310-320
290-340
Séance 1
57.89%
68.42%
63.16%
63.16%
57.89%
63.16%
Séance 2
34.78%
43.48%
39.13%
34.78%
26.09%
43.48%
Total
45.24%
54.76%
50.00%
47.62%
40.48%
52.38%
Table 2.3 – Les résultats de l’algorithme d’aire
Conclusion
Ce projet réalise une interface cerveau-ordinateur grâce à laquelle c’est possible
d’écrire des mots et des phrases en se concentrant sur les symboles visualisés à
l’écran de l’ordinateur. Même si les deux algorithmes utilisés pour déterminer le
symbole sont inefficace, ils sont utiles pour aboutir à une démonstration pratique
du clavier virtuel. Les résultats sont acceptables : Un taux de réussite de 68.42% est
atteint dans une séance d’expérience.
Il existe des algorithmes différents qui pouvaient être utilisés pour augmenter la performance de cette interface cerveau-ordinateur. Les méthodes basées sur la classification statistique et les machines à vecteurs supports(SVM) pouvaient être introduites
pour diminuer le nombre d’essais nécessaires afin d’obtenir une bonne résultat. Mais
pour conserver la simplicité, ils ne sont pas traités dans le contexte de cette thèse.
Bibliographie
[1] Alison Abbott, ”In search of sixth sense”
Nature Vol. 442, 13 July 2006.
[2] American Medical Association, ”The Brain-Effects of Stroke”
http ://www.medem.com/medlb/articleslb.cfm ?sub cat=189
[3] R. Williams et K. Herrup, ”The Control of Neuron Number”
http ://www.nervenet.org/papers/NUMBER REV 1988.html, 2001.
[4] Jaakko Malmivuo, Robert Plansey, ”Bioelectromagnetism”
http ://butler.cc.tut.fi/ malmivuo/bem/bembook
[5] Ernst Niedermayer, Fernando Lopes Da Silva, ”Electroencephalography”, 2005.
[6] Janne Lehtonen, ”EEG-based Brain Computer Interfaces”, 2002.
[7] L. A. Farwell, E. Donchin, ”Talking off the top of your head : Toward a mental
prosthesis utilizing event-related brain potentials”
Electroencephalography and Clinical Neurophysiology, 1988.
[8] Steven J. Luck, ”An Introduction to the Event-Related Potential Technique”,
2005.
[9] Eric H. Chudler, ”The 10-20 system of electrode placement”
http ://faculty.washington.edu/chudler/1020.html, 2000.
[10] Teodoro Solis-Escalante, Gerardo Gabriel Gentiletti, Oscar Yañez-Suarez,
”Single Trial P300 detection based on the Empirical Mode Decomposition”
Proceedings of the 28th IEEE EMBS Annual International Conference, 2006.
[11] Loukianos Spyrou, Saeid Sanei, Clive Cheong Took, ”Estimation and location
tracking of the P300 subcomponents from single-trial EEG”
Centre of Digital Signal Processing, School of Engineering, Cardiff University.
[12] Gerwin Schalk, ”2nd Wadsworth BCI Dataset”
http ://ida.first.fraunhofer.de/projects/bci/competition ii, 2002.
Appendice - Les codes sources
%
%
%
%
%
%
%
%
%
%
%
A simple set of prediction algorithms which does classification on BCI
competition datasets:
http://ida.first.fraunhofer.de/projects/bci/competition_ii/albany_desc/al
bany_desc_ii.html
Initial version of this program was written by Gerwin Schalk to
demonstrate a very simple detection algorithm. (Dec 2002)
The final version contains additional detection algorithms
written by Ozan Caglayan for his undergraduate thesis work. (May 2008)
function [stimulusdata, stimuluscount, word] = predict(subject, method, mparam1, mparam2)
% load data file
fprintf(1, ’Loading dataset %s..\n’, subject);
loadcmd = sprintf(’load data/%s.mat’, subject);
eval(loadcmd);
% Sampling frequency of competition datasets
samplefreq = 240;
% One epoch is considered to be 600 ms
triallength = round(600*samplefreq/1000);
% Alphabet
alphabet = ’ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789-’;
word = ’’;
% Channel used in classification (11:Cz)
electrode = 11;
% Number of chars to be predicted
nb_chars = round(max(trialnr)/180);
fprintf(1, ’Number of chars to be detected in %s: %d\n’, subject, nb_chars);
% this determines the first and last intensification to be used here
% There exists 180(15x12) intensifications for one character.
% intensification to start is the first intensification
starttrial = min(trialnr)+1;
% The last intensification is the last one for the first character
endtrial = 180;
for cur_char = 1:nb_chars
% Preallocate space
stimulusdata = zeros(12, triallength);
stimuluscount = zeros(12);
27
for cur_trial = starttrial:endtrial
% get the indeces of the samples of the current intensification
trialidx = find(trialnr == cur_trial);
% get the data for these samples, starting at time of stimulation and triallength sample
trialdata = signal(min(trialidx):min(trialidx)+triallength-1, :);
% stimuluscode: 1-6 defining the highlighted column, 7-12 the row
cur_stimuluscode = max(StimulusCode(trialidx));
stimulusdata(cur_stimuluscode, :) = stimulusdata(cur_stimuluscode, :)+trialdata(:, electrode)’;
stimuluscount(cur_stimuluscode) = stimuluscount(cur_stimuluscode)+1;
end
% Calculate average responses for each of the stimuli
for stim = 1:12
stimulusdata(stim, :) = stimulusdata(stim, :)/stimuluscount(stim);
end
%
%
%
%
%
We have stimulus data assigned to each one of the 12 intensification
2 of them represents oddball responses.
Methods
’p300area’: Calculates the area near the p300 peak.
’oneshot’ : Takes the sample number (mparam1*samplefreq/1000).
switch lower(method)
case ’p300area’
s = round(mparam1*samplefreq/1000);
e = round(mparam2*samplefreq/1000);
avg = sum(stimulusdata(:, s:e), 2);
case ’oneshot’
class_sample = round(mparam1*samplefreq/1000);
avg = stimulusdata(:, class_sample);
otherwise
avg = sum(stimulusdata(:, 72:76), 2);
end
[savg, iavg] = sort(avg, ’descend’);
iavg = sort(iavg(1:2));
if (iavg(1) > 6 || iavg(2) < 7)
% Stimulus codes are out of range, wrong classification
char = ’?’;
else
% Stimulus codes are ok but the predicted char may be false.
char = alphabet((iavg(2)-7)*6+iavg(1));
end
word = strcat(word, char);
fprintf(1, ’(%d,%d)\tCharacter %d is %c\n’, iavg(2), iavg(1), cur_char, char);
starttrial = starttrial + 180;
endtrial = endtrial + 180;
end
fprintf(1, ’The word for %s is: %s\n’, subject, word);
end
28
% BIOPAC MP35 Acquisition code
function retval = mpacq(sample_rate)
% Directory where mpdev.dll and mpdev.h lives
path = pwd();
fprintf(1, ’Current path is: %s\n’, path);
lib_name = ’mpdev’;
% Generate full paths
lib_path = strcat(path, ’\’, lib_name, ’.dll’);
header_path = strcat(path, ’\’, lib_name, ’.h’);
% Check the files
if exist(lib_path, ’file’) ~= 3
error(’Check that mpdev.dll exists.’);
end
if exist(header_path, ’file’) ~= 2
error(’Check that mpdev.h exists.’);
end
% Check if the library is already loaded
if libisloaded(lib_name)
calllib(lib_name, ’disconnectMPDev’);
unloadlibrary(lib_name);
end
% Load the library
[notfound, warnings] = loadlibrary(lib_path, header_path);
% Get function list and properties
func_list = libfunctions(lib_name, ’-full’);
% Connect to MP Device
[retcode, sn] = calllib(lib_name, ’connectMPDev’, ’MP35’, ’MPUSB’, ’GSU’);
% Check status
if ~strcmp(retcode, ’MPSUCCESS’)
calllib(lib_name, ’disconnectMPDev’);
unloadlibrary(lib_name);
error(’connectMPDev: Failed to connect!’);
end
fprintf(1, ’Return code is MPSUCCESS\n’);
% Set sample rate
retcode = calllib(lib_name, ’setSampleRate’, 1000.0/sample_rate);
if ~strcmp(retcode,’MPSUCCESS’)
calllib(libname, ’disconnectMPDev’);
unloadlibrary(lib_name);
error(’setSampleRate: Failed to set sample rate!’);
end
end
29
% PTB, Matlab
% Ozan Caglayan, 2008
clear all;
% Configure winsound acquisition
ai = analoginput(’winsound’);
addchannel(ai, 1);
% Sampling frequency is 5000 Hz
Fs = 5000;
% Set sampling rate
set(ai, ’SampleRate’, Fs);
try
% Fail if PTB isn’t using on OpenGL
AssertOpenGL;
% Open the screen
window = Screen(0, ’OpenWindow’, 0, []);
Screen(’Preference’, ’TextAntiAliasing’, 0);
HideCursor;
% Get flipinterval
t_flip = Screen(’GetFlipInterval’, window)/2;
fprintf(1, ’flip interval: %f\n’, t_flip);
% Set priority
Priority(MaxPriority(window));
% Get resolution, be verbose.
resolution = Screen(’Resolution’, 0);
% Init experimental parameters
alphabet = char([65:90 48:57]);
ITI = 2;
t_flashing = 0.500;
t_blank = 0.500;
n_trial = 3;
% Set recording duration
set(ai, ’SamplesPerTrigger’, t_flashing*Fs);
start(ai);getdata(ai);
% Loading..
Screen(’DrawText’, window, ’Loading...’, 100, 100, 255);
Screen(’Flip’, window);
% Preallocate the texture ids vector
w = zeros(13,1);
% Make textures from jpg files, (w(13) is plain keyboard)
for i=1:13
w(i) = Screen(’MakeTexture’, window, imread(strcat(’textures/keyboard_’, num2str(i), ’.jpg’)));
end
% Preload textures if possible
resident = Screen(’PreloadTextures’, window, w);
30
% Draw the keyboard and flip
Screen(’DrawTexture’, window, w(13));
Screen(’Flip’, window);
n = 0;k = 0;
stimuli = zeros(n_trial*12, 1);
flashes = zeros(n_trial*12, 1);
target = zeros(n_trial*12, 1);
cvbl = GetSecs();
% Second try with flip timestamps
while n < n_trial
n = n + 1;
% Subtrial begins with columns before rows
for i=[randperm(6) randperm(6)+6]
k = k + 1;
Screen(’DrawTexture’, window, w(i));
% Start acquisition
if rem(k-1, 12) ~= 0
stimuli(k) = Screen(’Flip’, window, (cvbl + t_blank - t_flip));
else
stimuli(k) = Screen(’Flip’, window, (cvbl + ITI - t_flip));
end
start(ai);
target(k) = max(getdata(ai)) > 0.01;
flashes(k) = i;
% Clear the keyboard
Screen(’DrawTexture’, window, w(13));
cvbl = Screen(’Flip’, window, (stimuli(k) + t_flashing - t_flip));
end
end
% Resolve the word
word = ’You typed: ’;
t = flashes(target == 1);
for i=1:n_trial
word = strcat(word, alphabet(6*t(2*i)-42+t(2*i-1)));
end
Screen(’DrawText’, window, word);
Screen(’Flip’, window);
% Wait for a keyboard event to quit PTB
KbWait;
Priority(0);
delete(ai);
clear ai;
Screen(’CloseAll’);
catch me
Screen(’CloseAll’);
Priority(0);
delete(ai);
clear ai;
psychrethrow(psychlasterror);
end