Como saber la frecuencia que tiene una señal en Matlab
Publicado por Belen (2 intervenciones) el 25/08/2018 17:55:19
Hola buenas tardes, mi duda es para un trabajo de fin de grado que estoy haciendo sobre el diagnostico de la enfermedad de la apnea del sueño.
Con Matlab,necesito conocer en una señal EEG si la frecuencia predominante es 0,1,2,3,4,5...o 30 Hz, para ello lo que estoy haciendo es calcular la Transformada de fourier con fft y despues calcular la potencia, la cosa esque a la hora de visualizarlo si se hacerlo porque defino un vector de frecuencias y represento la potencia en funcion de este vector..Mi duda es que necesito escoger esos valores y nose como hacerlo yo lo estoy haciendo asi;:
Vale mi problema comienza aqui cuando quiero conocer la suma de las treinta primeras potencias, se que haciendo P(1:30) no estoy escogiendo las frecuencias si no el numero de puntos de la fft. ¿Alguien sabria como hacerlo?
Con Matlab,necesito conocer en una señal EEG si la frecuencia predominante es 0,1,2,3,4,5...o 30 Hz, para ello lo que estoy haciendo es calcular la Transformada de fourier con fft y despues calcular la potencia, la cosa esque a la hora de visualizarlo si se hacerlo porque defino un vector de frecuencias y represento la potencia en funcion de este vector..Mi duda es que necesito escoger esos valores y nose como hacerlo yo lo estoy haciendo asi;:
1
2
3
4
5
6
7
8
9
10
11
Fs=125;
n=2;%Escogemos el numero de ventana
w=3750;%El numero de muestras que equivalen a 30 segundos
v=((n-1)*w)+1:1:(n*w);%El intervalo de muestras seleccionado
nfft=256;%el numero de puntos de la fft
Y=fft(x8(v),nfft);%Aqui Y tiene 256 valores
Y = Y(1:nfft/2);%la FFT es simétrica, así que nos quedamos con la mitad de valores
P = (abs(Y)).^2;%calculo de la potencia espectral, módulo alcuadrado de la FFT
f=(0:62.5/127:62.5)
plot(f,P,'r')
xlim([0 30])
Vale mi problema comienza aqui cuando quiero conocer la suma de las treinta primeras potencias, se que haciendo P(1:30) no estoy escogiendo las frecuencias si no el numero de puntos de la fft. ¿Alguien sabria como hacerlo?
1
2
3
4
5
%A continuación se calcula la sumatoria de las frecuencias contenidas en
%las 30 primeras frecuencias
%P tiene una longitud de 128 valores
PT=P(1:30);
PS=sum(PT);
Valora esta pregunta


0