Métricas de la sesión
Potencia Beta dominante
23.4 µV²/Hz
Canal Cz · banda 13–30 Hz
Score motor (MRC)
4.2 / 5
+0.8 vs. línea base
SNR señal
18.7 dB
Canal Fz · limpio
R² Regresión β-Motor
0.87
Alta correlación lineal
Espectro de Potencia EEG · FFT (canal Cz)
Densidad espectral de potencia — bandas cerebrales principales
Regresión Beta-Motor · R² = 0.87
Potencia banda β (µV²/Hz) vs. Score motor MRC (n=24 sesiones)
Modelo ODE · Oscilador Neuronal de Wilson-Cowan
Simulación ode45 — activación E (excitatorio) e I (inhibitorio)
Estadísticas por canal EEG
Media, desviación estándar, SNR y calidad de señal (n = 2560 muestras)
| Canal |
Media (µV) |
DE (µV) |
SNR (dB) |
Calidad |
Potencia β |
| Fz |
2.14 |
8.32 |
18.7 |
Excelente |
21.8
|
| Cz |
1.87 |
9.71 |
17.4 |
Excelente |
23.4
|
| Pz |
-0.43 |
7.85 |
16.1 |
Buena |
18.9
|
| C3 |
3.21 |
11.20 |
14.8 |
Buena |
17.2
|
| C4 |
1.05 |
6.94 |
12.3 |
Aceptable |
13.8
|
Script ejecutable generado · MATLAB / GNU Octave
clear all; close all; clc;
fs = 256;
dur = 10;
N = fs * dur;
t = (0:N-1) / fs;
canales = {'Fz', 'Cz', 'Pz', 'C3', 'C4'};
eeg = zeros(5, N);
for ch = 1:5
delta = 3.0 * sin(2*pi*2*t);
alpha = 5.0 * sin(2*pi*10*t + ch*0.3);
beta = (3.0+ch*0.5) * sin(2*pi*20*t);
noise = 0.8 * randn(1, N);
eeg(ch, :) = delta + alpha + beta + noise;
end
ch_sel = 2;
Y = fft(eeg(ch_sel, :));
P2 = abs(Y).^2 / (N*fs);
P1 = P2(1:N/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = fs*(0:(N/2)) / N;
bands = {'Delta', 0.5, 4; 'Theta', 4, 8; 'Alpha', 8, 13;
'Beta', 13, 30; 'Gamma', 30, 60};
for b = 1:size(bands, 1)
idx = f >= bands{b,2} & f < bands{b,3};
fprintf('%s power: %.2f µV²/Hz\n', bands{b,1}, mean(P1(idx)));
end
beta_pow = [6.1 7.4 8.9 8.2 9.8 10.5 11.8 12.4 13.1 13.9 15.2 16.0
16.7 17.3 18.1 18.9 19.7 20.8 21.5 22.0 23.0 23.8 24.5 25.1];
motor = [1.8 1.9 2.0 2.1 2.4 2.6 2.9 3.0 3.2 3.4 3.7 3.8
3.9 4.0 4.1 4.1 4.2 4.3 4.3 4.4 4.5 4.6 4.7 4.8];
p = polyfit(beta_pow, motor, 1);
yhat = polyval(p, beta_pow);
SS_res = sum((motor - yhat).^2);
SS_tot = sum((motor - mean(motor)).^2);
fprintf('Regresión: y = %.2fx + %.2f | R² = %.3f\n', p(1), p(2), 1-SS_res/SS_tot);
S = @(x) 1 ./ (1 + exp(-x));
wc = @(t,y) [-y(1) + S(4*y(1) - 2*y(2) + 1.5);
-y(2) + S(3*y(1) - 1*y(2))];
[tspan, sol] = ode45(wc, [0 0.1], [0.1; 0.05]);
fprintf('Estado estable E=%.3f, I=%.3f\n', sol(end,1), sol(end,2));
fprintf('\n%-6s %8s %8s %8s\n', 'Canal', 'Media', 'DE', 'SNR(dB)');
for ch = 1:5
m = mean(eeg(ch,:));
s = std(eeg(ch,:));
snr = 20*log10(rms(eeg(ch,:)) / 0.8);
fprintf('%-6s %8.2f %8.2f %8.1f\n', canales{ch}, m, s, snr);
end
T = table(canales', mean(eeg,2), std(eeg,[],2), ...
'VariableNames', {'Canal', 'Media_uV', 'DE_uV'});
writetable(T, 'neuropeak_stats_P007.csv');
save('neuropeak_session_P007.mat', 'eeg', 't', 'fs', 'canales');
disp('✓ Análisis completo. Resultados exportados.');