2012-05-09 36 views
5

Tôi mới sử dụng BCI. Tôi có thiết bị Mindset EEG từ Neurosky và tôi ghi lại các giá trị dữ liệu thô đến từ thiết bị trong tệp csv. Tôi có thể đọc và trích xuất dữ liệu từ csv vào Matlab và tôi áp dụng FFT. Bây giờ tôi cần trích xuất các tần số nhất định (Alpha, Beta, Theta, Gamma) từ FFT.Sử dụng Matlab FFT để trích xuất tần số từ tín hiệu EEG

đâu Delta = 1-3 Hz

Theta = 4-7 Hz

Alpha = 8-12 Hz

Beta = 13-30 Hz

Gamma = 31-40 Hz

Đây là những gì tôi đã làm cho đến nay:

f = (0:N-1)*(Fs/N); 
plot(rawDouble); 
title ('Raw Signal'); 
p = abs(fft(rawDouble)); 
figure,plot (f,p); 
title('Magnitude of FFT of Raw Signal'); 

Bất cứ ai có thể cho tôi biết làm thế nào để trích xuất các dải tần số cụ thể từ tín hiệu ?? Cảm ơn nhiều!

+2

Xem tài liệu MATLAB cho bộ lọc băng thông. Điều đó sẽ dễ dàng hơn là đi qua một fft đầu tiên. –

+0

XIN VUI LÒNG BẤT KB ĐẢM BẢO ĐẾN CÂU HỎI CỦA TÔI TẠI ĐÂY http://stackoverflow.com/questions/23167374/performing-fft-on-eeg-signal-using-matlab – user3206535

Trả lời

1

Bạn có thể thấy dễ dàng hơn khi bắt đầu với chức năng periodogram của MATLAB, thay vì cố gắng sử dụng trực tiếp FFT. Điều này giúp bạn quản lý cửa sổ dữ liệu cho bạn và các chi tiết triển khai khác.

0

Tôi nghĩ rằng cách dễ nhất là để lọc tín hiệu của bạn trong những dãy sau khi bạn tải dữ liệu của bạn. Ví dụ:

band = [30 100] eeglocal.lowpass (band (2)) .passpass (band (1));

thì bạn có thể sử dụng chọn thời gian bạn muốn xử lý.

Đó phải là tất cả những gì bạn cần.

Các vấn đề liên quan