function [Pyy,PyyNorm,PyyPorc,Potencia,maximoPotencia,minimoPotencia,... localmaxPot,localminPot,... num_puntos] = analisisFourier(xF,yF,tasa_muestreo,num_canales) %funcion que calcula la DFT a una serie de puntos. Esta me devuelve la %transformada de Fourier en unidades naturales, normalizada y en porcentaje %con respecto a la potencia total. %Ademas del calculo de potencias, vamos a caracterizar la funcion de la %potencia, es decir, vamos a calcular sus maximo y minimos tanto locales %como globales. %Si num_puntos=-1, no se realiza nada, debido a que se ha salido %incorrectamente de la ventana donde se solicita dicha información %el algoritmo de la fft permite obtener la DFT reduciendo el numero de %operaciones para realizar este calculo. La idea basica consiste en dividir %la DFT en DFT's mas pequeñas. Y = []; %almacen de la transformada de Fourier Pyy = []; %densidad espectral de potencia f = []; %vector de frecuencia para representación num_puntos = []; %num de ptos de la transf. de Fourier PyyNorm = []; %Dens espectral de potencia Normalizada PyyPorc = []; %Dens espectral de Potencia en porcentaje maximoPotencia = []; %Maximo de la dens espectral de potencia minimoPotencia = []; %Minimo de la dens espectral de potencia localmaxPot = []; %maximos locales de dens espectral potencia localminPot = []; %minimos locales de dens espectral potencia Potencia = []; %Función mediante la cual le solicitamos al usuario que introduzca el %número de puntos que desea usar para realizar la tranformada de Fourier. %Si devuelve -1 es debido a que se ha pulsado cancelar o bien la x. [num_puntos]=introduc_num_puntos; if num_puntos ~= -1 %transformada discreta de Fourier con num_puntos. Si la longitud de la %señal es menor que el numero de puntos se realiza el zero padding. Y = fft(yF,num_puntos); %densidad espectral de potencia, es dividido por el numero de puntos porque %la potencia es la energia partido por el periodo de la señal Pyy = Y.*conj(Y)/num_puntos; %Máximo de la potencia. Se usa para representar la potencia normalizada maximoPotencia=max(Pyy); %Minimo de potencia minimoPotencia=min(Pyy); %Maximos y Minimos locales for i=1:(num_canales+2) h=imregionalmax(Pyy(:,i)); localmaxPot=[localmaxPot,h.*Pyy(:,i)]; n=imregionalmin(Pyy(:,i)); localminPot=[localminPot,n.*Pyy(:,i)]; end %Calculamos la densidad espectral de potencia para cada canal con respecto %al maximo de potencia (densidad espectral normalizada) for i=1:(num_canales+2) PyyNorm=[PyyNorm,Pyy(:,i)/maximoPotencia(i)]; end %Potencia total de la señal. Se usa para representar la potencia %de la señal en porcentaje Potencia=sum(Pyy); %Calculamos la densidad espectral de potencia con respecto al total de %Potencia de cada canal for i=1:(num_canales+2) PyyPorc=[PyyPorc,100*Pyy(:,i)/Potencia(i)]; end end e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


DESARROLLO Y PUESTA EN FUNCIONAMIENTO DE UN SISTEMA DE MONITORIZACIÓN MÚLTIPLE DE MAGNITUDES BIOFÃSICAS

: Lozano Sánchez, Mª Carmen
: Ingeniería Telecomunicación
Contenido del proyecto: