% ej2_snr.m % Ejercicio 2 (dia 2) - Cuantos ensayos necesito. SOLUCION. % % La formula predice 23 ensayos para un ruido de 15 uV, 63 para 25 y 161 para % 40. La simulacion da valores cercanos pero no identicos: con semillas % distintas caen alrededor de 16-28, 47-89 y 123-200 (con 40 uV a veces no % llega dentro de los 200 ensayos, y para eso esta el isempty). % % Con rng(42), esta version imprime 18, 64 y 152. clear; clc; rng(42); srate = 500; t = (-100:399) / srate; % enteros / srate: t(101) es 0 exacto senal = 8 * exp(-((t - 0.400).^2) / (2*0.080^2)); vent = t >= 0.300 & t <= 0.500; base = t < 0; nmax = 200; figure; hold on for sd = [15 25 40] epocas = senal + sd * randn(nmax, numel(t)); % expansion implicita curva = zeros(1, nmax); for n = 1:nmax p = mean(epocas(1:n,:), 1); curva(n) = mean(p(vent)) / std(p(base)); end plot(1:nmax, curva, 'LineWidth', 1.2) k = find(curva > 2, 1); if isempty(k) fprintf('sd = %2d uV -> no llega a SNR 2 en %d ensayos\n', sd, nmax); else fprintf('sd = %2d uV -> primer n con SNR > 2: %d\n', sd, k); end end plot([1 nmax], [2 2], '--') % la meta legend('15 \muV', '25 \muV', '40 \muV', 'SNR = 2') xlabel('Ensayos promediados'), ylabel('SNR') % Dos cosas que se ven en la figura y no en los numeros: % % 1. Las curvas no suben suave, tiemblan, porque cada punto usa una % realizacion distinta del ruido. El "primer n que cruza 2" es en parte % suerte, y por eso queda un poco por debajo de lo que predice la formula. % % 2. Las tres curvas tienen la misma forma estirada. Duplicar el ruido no % duplica los ensayos necesarios: los cuadruplica.