Matlab - densidad espectral

 
Vista:

densidad espectral

Publicado por Alberto (2 intervenciones) el 28/05/2007 13:12:29
Me estoy volviendo loco con una practica de clase en la que tengo que calcular las densidades espectrales de señales periodicas y no periodicas en matlab, y como indicacion me dicen que me puede ser util la funcion xcorr y que este atento al escalado (bien por el numero de muestras, bien por la frecuencia de muestreo)

¿alguen me puede ayudar? es que ando muy perdido....

graciasss
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:densidad espectral

Publicado por meds (7 intervenciones) el 29/05/2007 04:02:42
pues es que si puedes calcularla con esa funcion pero de todos modos tienes muestrear y despues sacar su transformada de fourier a esa señal

el detalle es que tienes que muestrear una señal continua, por ejemplo el caso tipico de un coseno donde y=cos( 2* pi * f * t )

entonces al muestrearlo, la variable del tiempo sera t=nTs que en terminos de matlab quedaria por ejemplo:

t= - 1: Ts: 1;
y=cos( 2* pi * f * t );

donde obtendras valores en este caso de la señal de -1 a 1 segundo en pasos de Ts segundos. La frecuencia de muestreo es fm= 1/Ts quedando en matlab:

fm=1000;
t= - 1: 1/fm : 1;
y=cos( 2* pi * f * t );

tu frecuencia de muestreo debe ser mayor por lo menos 2 veces la frecuencia maxima que su señal tenga fm > 2f , si tu coseno tiene una frecuencia de 100 hertz minimo tu frecuencia de muestreo debe ser de 200 hertz.

ya que hayas cumplido esa condicion tienes que sacar su tranformada de fourier con la funcion fft, luego la densidad espectral la calculas multiplicando tu resultado por su conjugado:

Y=fft(y);
PDS=Y.*conj(Y);

y de esa manera tienes la densidad de potencia espectral

finalmente para definir tu eje de frecuencias, por cada muestra que tengas el incremento en frecuencia debe de ser fm/muestras inicando desde 0 hasta fm-fm/muestras

F= 0: fm/muestras : fm-fm/muestras;


donde muestras es tu longitud de tu vector y o Y

y finalmente graficalo
stem(F,PDS)

como ejemplo:

clc;
clear;
fm=1000;
f=100;
t=-1:1/fm:1;
y=cos(2*pi*f*t);
muestras=length(y);

Y=fft(y);
PDS=Y.*conj(Y);
F=0:fm/muestras:fm-fm/muestras;
stem(F,PDS)


en fin es un buen rollo pero espero que te sirva ñ_ñ
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:densidad espectral

Publicado por Alberto (2 intervenciones) el 29/05/2007 18:19:54
Gracias gracias gracias, muchisimas gracias

Me vale de mucho, sobre todo para entenderlo bien. Gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:densidad espectral

Publicado por hernan silverio (1 intervención) el 12/03/2011 01:21:02
Gracias me diste un indicio, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar