You are on page 1of 1

PROGRAMA PARA HALLAR PECION DE SANGRE EN MATLAB

% Calculo de las fases, periodo y la % TRAZADO DE LA RESPUESTA EN MAGNITUD


amplitud de la se;al% % subplot(312)
load ('precion1.txt'); % Cargar archivo en plot(w,20*log10(abs(H)));
block de notas grid on;
t = precion1(:,1); % Vector tiempo title ('Filtro pasa-altos, Respuesta en
y = precion1(:,2); % Vector amplitud magnitud');
L=length(y); % Longitud de la señal xlabel('frecuencia');
Fs = 10; %fecuencia de muestreo ylabel('H(f) db')
T = 1/Fs; % Intervalo de muestreo % RESPUESTA EN FASE
[A,I]=max(abs(y)); % I = posicion del subplot(313)
%maximo plot(w,angle(H));
NFFT = 2^nextpow2(L); % Siguiente potencia grid on;
de 2 de la long de y title ('Filtro pasa-altos, Respuesta en
Y = fft(y,NFFT)/L; % FFT de la señal fase');
f = Fs/2*linspace(0,1,NFFT/2+1); % Rango de xlabel('frecuencia')
frecuencia ylabel('ángulo de H rad')
% dise;p del FILTRo pasaalto xlim([0 5]);
fs=100; % frecuencia de muestreo %Senal envolvente con filtro pasabanda
filterOrder=5; % orden del filtro % dise;o de filtro pasa banda para la se;al
cutOffFreq=0.85; fintrada
[b, a]=butter(filterOrder, fm=10; %frecuencia de muestreo
cutOffFreq/(fs/2), 'high'); fe=fm/2; %frecuencia de Shannon//frec de
[H, w]=freqz(b, a); nyquist
%se;al precion y su espectro. Wp=[0.01 0.1]/fe; %Transformar las bandas de
figure frecuencia
subplot(211) Ws=[0.001 0.2]/fe;
plot (t,y), grid on Rp=3; % Atenuación en la banda de paso
title ('Grafica de la señal precion') Rs=20; % Atenuación en la banda de rechazo
fprintf('%s%8.6f\n', ' Amplitud = ',A); [n,Wn]=buttord(Wp,Ws,Rp,Rs); %Calcular el
% espectro. orden del filtro%coeficientes del filtro
subplot(212) [b,a]=butter(n,Wn); %n=orden del filtro,
plot(f,2*abs(Y(1:NFFT/2+1))) Wn=frecuencia de corte
axis([0 1 0 50]), grid on [H,w]=freqz(b,a,[],fm);
title('Espectro unilateral de y(t)') W= filtfilt(b, a, Z);
xlabel('Frecuencia (Hz)') [A,I]=max(abs(Z));
ylabel('|Y(f)|') %relacion de la se;al versus la se;al
%salida del filtro filtrada
figure figure
subplot(211) plotyy(t, Z, t, y,'plot');
Z= filtfilt(b, a, y); grid on;
plot(Z); %ifft title('relacion de señal filtrada para
grid on; hallar las preciones')
title('señal filtrada y en func. del tiempo %relacion de la se;al versus la se;al
continuo') envolvente
%tranformada de fourier de la señal sirve figure
para nalizar los componentes plotyy(t, W, t, y,'plot');
%frecuenciales que estan presentes y aplicar grid on;
un filtro si se cree necesario title('relacion de señal envolvente para
NFFT = 2^nextpow2(L); % Siguiente potencia hallar las preciones')
de 2 de la long de y
Y = fft(y,NFFT)/L; % FFT de la señal
f = Fs/2*linspace(0,1,NFFT/2+1); % Rango de
frecuencia
% Plot single-sided amplitude spectrum.
% subplot(313)
subplot(212)
plot(f,2*abs(Y(1:NFFT/2+1)))
axis([0 0.5 0 200]), grid on
title('Espectro de frecuencias de la señal
filtrada')
xlabel('Frecuencia (Hz)')
% filtro pasaalto y en frecuencia
figure
subplot(311)
plot(abs(H))
xlabel('Hz')
ylabel('Modulo de H(z)')
title('Filtro pasa-altos')
xlim([0 250]);

You might also like