Categories
DSP

Three-Class Classification of EEG Signals Using Support Vector Machine Methods

Catur Atmaji, Agfianto Eko Putra, and Irvan Albab Tontowi

Many research on how the human brain works have been done in the last century. The use of electroencephalogram signal generated from quantifying the brainwave has been developed in many areas including the development of brain-computer interface (BCI) concept. One type of BCI that interesting for the future use is motor imagery (MI) based-BCI which only requiring imagination of a person to control an object. This study proposed a feature extraction in eight different channels using discrete wavelet (DWT) coefficients. The wavelet coefficient is transformed to a frequency domain using discrete Fourier transform (DFT) and then average power spectrum is calculated. Level 5 of detail component of the DWT is chosen because, from 512Hz sampling frequency (8 – 16Hz), it resembles mu rhythm of brain wave (8 – 12Hz) which affected from motor imagery activity. The classification of three classes, which are the imagination of right body movement, left the movement, and random word using multiclass support vector machine (SVM) shows a promising result with a sensitivity of 96.88%, 86.12% and 52.78% from three different subjects.

[click here]

Categories
DSP

Pengaruh Panjang Data, Jendela & Frekuensi Cuplik pada FFT

Artikel yang saya tulis ini merupakan jawaban detil dari soal yang ada di bukunya Li Tan, 2008, “Digital Signal Processing: Fundamentals and Application“, nomor 4.17 dan 4.18. Intinya diketahui sebuah isyarat yang terdiri dari 3 macam sinusoidal dengan persamaan di bawah ini. Akan dilakukan eksperimen pengaruh penggunaan jendela, panjang data dan frekuensi pencuplikan Fs pada algoritma FFT untuk menemukan spektrum dari sinyal ini.

Matlab-nya sebagai berikut:function p4_17(Fs);

switch nargin
case 0
Fs = 8000;
end

t=[0:1/Fs:0.1];
x1 = 5 * cos(2*pi*500*t);
x2 = 5 * cos((2*pi*1200*t)+(0.25*pi));
x3 = 5 * cos((2*pi*1800*t)+(0.5*pi));

subplot(3,1,1); plot(t,x1);
title(‘x1(t)’);
subplot(3,1,2); plot(t,x2);
title(‘x2(t)’);
subplot(3,1,3); plot(t,x3);
title(‘x3(t)’);

x = x1+x2+x3;
figure;
plot(t,x);
title(‘x(t) = x1(t) + x2(t) + x3(t)’);

L = length(x);

NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(x,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2);

figure;
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2)))
title(‘Spektrum Sisi-tunggal dari x(t) tanpa jendela’)
xlabel(‘Frekuensi (Hz)’)
ylabel(‘|Y(f)|’);

% ———————-TRIANGULAR——————————
x_tri = x .* triang(L)’;

Y = fft(x_tri,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2);

figure;
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2)))
title(‘Spektrum Sisi-tunggal dari x(t) menggunakan jendela Segitiga’)
xlabel(‘Frekuensi (Hz)’)
ylabel(‘|Y(f)|’);

% ———————-HAMMING——————————
x_ham = x .* hamming(L)’;

Y = fft(x_ham,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2);

figure;
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2)))
title(‘Spektrum Sisi-tunggal dari x(t) menggunakan jendela Hamming’)
xlabel(‘Frekuensi (Hz)’)
ylabel(‘|Y(f)|’);

% ———————-HANNING——————————
x_han = x .* hann(L)’;

Y = fft(x_han,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2);

figure;
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2)))
title(‘Spektrum Sisi-tunggal dari x(t) menggunakan jendela Hanning’)
xlabel(‘Frekuensi (Hz)’)
ylabel(‘|Y(f)|’);

wvtool(triang(L),hamming(L),hann(L));
% h=legend(‘Triangular’,’Hamming’,’Hanning’);
% set(h,’Interpreter’,’None’);

Berikut ini adalah plot dari masing-masing sinusoidal:

Dan ini adalah penggabungan dari ketiga sinusoidal tersebut:

Berikut ini adalah hasil FFT tanpa menggunakan jendela apapun dan panjang datanya 801, yang masing-masing terdiri dari spektrum tanpa jendela, spektrum dengan jendela Segitiga, Hamming, Hanning dan tampilan wvtool yang membandingkan ketiga jendela serta responnya: