• Viernes 17 de Mayo de 2024, 00:13

Autor Tema:  Calculo De Ifft En Matlab!!  (Leído 5583 veces)

Laurita_2505

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Calculo De Ifft En Matlab!!
« en: Sábado 23 de Junio de 2007, 10:58 »
0
Hola a todos, mi problema es el siguiente: tengo una curva de la magnitud de la potencia de una antena en funcion de la frecuencia, p.ej: P=2watt para f=85MHz, P= 3 para f=87Mhz, y asi sucesivamente. El problema es que necesito dibujar en matlab esta función pero en el dominio del tiempo, estoy usando la ifft pero me da errores que no comprendo, acabo de aprender a utilizar matlab y no lo entiendo demasiado. Necesito este trabajo hecho para el lunes y bastante urgente.
Espero que alguien tenga alguna de idea y pueda echarme una mano.

Mil gracias a todos
Laura

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Calculo De Ifft En Matlab!!
« Respuesta #1 en: Sábado 23 de Junio de 2007, 16:52 »
0
saludos...
 :D
seria bueno si pusieras tu codigo y el error que te da para tener una idea de lo que esta mal .... <_<

fa61an

  • Miembro MUY activo
  • ***
  • Mensajes: 100
    • Ver Perfil
Re: Calculo De Ifft En Matlab!!
« Respuesta #2 en: Domingo 24 de Junio de 2007, 06:41 »
0
Creo que con solo la magnitud no podrías hacerlo necesitaras también ingresar el vector de fase pues recuerda que la FFT retorna valores complejos y si le sacas la magnitud también se le debe sacar el diagrama de fase pues o sino se perdería información, entonces para hacer la inversa deberías calcular con los vectores de magnitud y fase, un solo vector de números complejos y ese se los ingresas a la ifft y te dara la información en el tiempo sobre esa señal

Laurita_2505

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Calculo De Ifft En Matlab!!
« Respuesta #3 en: Domingo 24 de Junio de 2007, 19:09 »
0
Cita de: "fa61an"
Creo que con solo la magnitud no podrías hacerlo necesitaras también ingresar el vector de fase pues recuerda que la FFT retorna valores complejos y si le sacas la magnitud también se le debe sacar el diagrama de fase pues o sino se perdería información, entonces para hacer la inversa deberías calcular con los vectores de magnitud y fase, un solo vector de números complejos y ese se los ingresas a la ifft y te dara la información en el tiempo sobre esa señal
hola muchas gracias, lo que me has dicho es lo que he intentado hacer, el problema es que hay varias formas de usar el comando ifft y no se cual es el correcto, te enseño el que he utilizado yo, pero esque no se porque motivo no me lo dibuja porque hay un error con las dimensiones de la matriz, conla longitud de los vectores...porque la ifft solo me crea 10 cuando deberian ser 11..nose... si pudieras ayudarme ...seria genial, mil mil gracias

f=[85*10e6:1:95*10e6]; %frecuencia en Mhz
t=[10.5:0.14:12]; % tiempo  en nseg.
Pmwatt=[-2,192+27,57i      % solución compleja de la potencia
-75,70+94,48i      
30,58+24,36i      
46,91+7,09i      
53,70-22,90i      
39,07-61,75i      
-10,79-91,61i      
-90,51-68,52i      
-98,13+34,71i      
27,30+133,63i      
50,65+36,96i];      

Ifft=ifft(Pmwatt, t);
Abs=abs(Ifft);
%figure 1
plot(t,Abs)  % el resultado deberia ser una sola curva en funcion del tiempo.

fa61an

  • Miembro MUY activo
  • ***
  • Mensajes: 100
    • Ver Perfil
Re: Calculo De Ifft En Matlab!!
« Respuesta #4 en: Jueves 28 de Junio de 2007, 23:52 »
0
que pena por no responder, pero creo que tengo problemas con la notificaciones, por ejemplo cuando revise el correo nunca recibí notificación de una nueva respuesta para este post y por eso no sabia si habías contestado o no, y pues hoy que estaba como un poco desocupado entre  a la pagina del foro a revisar que nuevos temas había y de repente note que habías posteado una nueva respuesta y jamas pero jamas recibí una notificación de tu respuesta, y lo mismo me ha pasado con otros temas.

si alguien sabe que debo hacer que me ayude .

fa61an

  • Miembro MUY activo
  • ***
  • Mensajes: 100
    • Ver Perfil
Re: Calculo De Ifft En Matlab!!
« Respuesta #5 en: Viernes 29 de Junio de 2007, 00:56 »
0
Te envié un ejemplo adjunto en donde se genera una señal, se le saca la transformada de fourier a la señal generada, y luego se le hace la transformada inversa de fourier  y para obtener el tiempo de la señal basta con saber  la frecuencia de muestreo.



En cuanto a tu código repasamos varias cosas !!
1) no fui capaz de crear el siguiente vector
Código: Text
  1. f=[85*10e6:1:95*10e6]; %frecuencia en Mhz
  2.  
pues me sale el siguiente error
Out of memory

Lo intente solucionar con la función Pack pero igual no tuve éxito

2) Creo que no es necesario sacar ese vector "f" como escribí antes  debes averiguar a que frecuencia de muestreo se sacaron esos datos de Magnitud y Fase.

3) El vector  t de donde lo sacaste.

4) Después de sacar la ifft no necesitas sacarle el valor absoluto has lo siguiente
y=ifft(Pmwatt);
y para la gráfica debes crear un vector según sea tu frecuencia de muestreo.
t=0:1/FS:0.6;
y luego haces plot(t,y)

5) Revisa los datos de tu vector  Pmwatt pues al hacer lo que te digo la señal reconstruida no es coherente.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.