Você está na página 1de 21

Algunos aspectos pr acticos de la Transformada Discreta de Fourier

Juan Carlos Garc a Orden 21 de Abril de 2003

1.

Transformada Discreta de Fourier de una se nal

La Transformada Discreta de Fourier (TDF) permite describir una se nal discreta (denida a partir de un n umero nito de valores en el tiempo, se nalados con c rculos en la Figura 1) en el dominio de la frecuencia [Newland, 1989], [Newland, 1984]. Dada una se nal discreta g (k t), su TDF G(n) se calcula como:
N 1

G(n) =
k=0

g (k t)e2ikn/N t

(1)

donde: T0 : Intervalo de tiempo total muestreado. N : N umero total de muestras. t: Intervalo de tiempo entre muestras. = 2/T0 : Intervalo de frecuencia entre muestras de la transformada. g

t 0 1 2 k t k N 1 T0 = N t

Figura 1: Se nal temporal g (t) muestreada Y la Transformada Inversa Discreta de Fourier de G(n) se dene como: 1 g (k t) = 2
N 1

G(n)e2ikn/N
n=0

(2)

Cabe hacer los siguientes comentarios: A diferencia de la Transformada de Fourier continua, que proporciona una representaci on exacta de la se nal, la transformada discreta representa siempre una versi on peri odica de aquella, de periodo T0 = N t. Esto se muestra en la Figura 1, donde las se nales de contorno discontinuo se a naden para representar la referida versi on peri odica. Esto implica que la transformada de esta versi on peri odica es similar a la continua dentro del periodo T0 , pero fuera pueden ser muy diferentes. La Transformada Discreta de Fourier (TDF de aqu en adelante) de una se nal temporal discreta g (no peri odica en general) es una funci on discreta G compleja de periodo N , siendo = 2/T0 la diferencia en frecuencia entre dos de sus valores consecutivos. La parte real de G es sim etrica seg un n = N/2, mientras que la parte imaginaria es antisim etrica. Si representamos G mediante su m odulo y su argumento, lo anterior implica que el m odulo es sim etrico y su argumento antisim etrico. A la frecuencia correspondiente a n = N/2 se le denomina frecuencia de Nyquist, de valor N /2, y es la m axima frecuencia representada en la transformaci on. Esta debe ser sucientemente alta para que sea posible capturar la m axima frecuencia signicativa de la se nal original g (t). Como N /2 = /t, este criterio permite obtener un intervalo m nimo de muestreo para una determinada se nal. Debido a lo anterior, en muchos casos la TDF se representa en un intervalo centrado en el origen, cubriendo un rango de frecuencias negativas y positivas, como muestran las Figuras 2 y 3. Esto deja patente la m axima frecuencia representada (la de Nyquist) respetando la perioricidad de la funci on, aunque sea a costa de incluir el rango negativo que no tiene signicado f sico. En OCTAVE [Eaton, 1997], este centrado se consigue especicando rango adecuado de frecuencias y mediante el comando fftshift, como muestra el chero de entrada con el que se han calculado las Figuras 2 y 3 y que se incluye en el Anejo A. Es interesante observar en el chero de entrada de OCTAVE que los valores m aximos de t y de son (N 1)t y (N 1) respectivamente, de forma que el c alculo es coherente con la expresi on te orica (1).
100 Transformada estandar 90 80 70 60 50 40 30 20 10 0 0 200 400 600 800 1000 1200 1400
90 80 70 60 50 40 30 20 10 0 -800 100 Transformada centrada

-600

-400

-200

200

400

600

800

Figura 2: TDF, representaci on est andar.

Figura 3: TDF, representaci on centrada.

Ejemplo 1.1 Para ilustrar los puntos anteriores se realiza la TDF de una se nal senoidal de f = 10 Hz de T0 = 1 s de duraci on muestreada con N = 200 mediante el programa OCTAVE. La Figura 6 muestra la funci on original, las partes real e imaginaria de la TDF, y la se nal que se recupera mediante la Transformada Inversa Discreta de Fourier (TIDF) de la anterior. Las funciones b asicas de OCTAVE para realizar este c alculo son fft e ifft, que emplean el algoritmo de la Transformada R apida de Fourier (FFT) y que admiten como argumento un vector con los valores discretos de las correspondientes funciones. El listado completo del chero de entrada se incluye en el Anejo B. Se aprecia en la Figura 6 que la funci on transformada tiene un periodo de N = 400 = 1256,6 rad/s, siendo el intervalo de frecuencia entre muestras de = 2/T0 = 2 . Se observa adem as que el m odulo tiene un pico en n = 10, lo que corresponde a una frecuencia = 10 = 62,8 rad/s, o f = /(2 ) = 10 Hz, que se corresponde con la u nica frecuencia presente en la se nal original. Es importante recordar que la m axima frecuencia representable con este muestreo es la de Nyquist, de valor N /2 = 200 rad/s (f = 100 Hz), por lo que el otro pico que aparece en la gr aca no debe ser tenido en cuenta. Adem as se observa que en este caso el muestreo est a claramente sobredimensionado, siendo el m nimo intervalo de tiempo entre muestras t = /(N /2)) = /(10 2 ) = 0,05 s, es decir N = T0 /t = 20 muestras. Ejemplo 1.2 Una aplicaci on similar a la anterior es el c alculo de la TDF de la respuesta al impulso unidad de un sistema lineal, gobernado por la funci on: h(t) = 1 t e sen d t md

siendo m la masa del sistema, su frecuencia natural (no amortiguada), la tasa de amortiguamiento cr tico y d = 1 2 su frecuencia propia. Los valores empleados se han extra do del ejemplo presentado en la p. 483 de [Humar, 2002], m = 0,25 kg y = 2 . Este caso es interesante puesto que la Tranformada de Fourier continua de esta funci on se puede obtener f acilmente de forma anal tica, dada por: H () = m2 1 + ic + k (3)

Se ha realizado un estudio de esta funci on para el caso sin amortiguamiento ( = 0) y amortiguado ( = 0,1), que se muestra en las Figuras 7 y 8. La Figura 7 muestra el caso no amortiguado, en el que se observa que la TDF de h(t) coincide de forma bastante aproximada con la transformada continua H () muestreada en la representaci on centrada (conviene recordar que la TDF es una funci on peri odica, la transformada continua no lo es). La u ltima gr aca de la Figura 7 muestra que la Transformada Inversa Discreta de Fourier (TIDF) realizada a partir de la H () continua no recupera de forma exacta la funci on original. Este efecto es recogido y explicado en [Humar, 2002]. No obstante es interesante observar como la inversa de la transformada discreta s que consigue recuperar la se nal original de forma exacta. Esta diferencia entre el resultado de calcular la transformada inversa de la H () continua muestreada y la calculada a trav es de la TDF de h(t) se reduce a medida que aumenta el amortiguamiento, de forma que la se nal original se recupera con bastante exactitud mediante ambos procedimientos, como puede observarse en la Figura 8. 3

Finalmente, es interesante observar que para que la TDF que realiza OCTAVE coincida con la calculada con la expresi on general (1) es necesario dividir a aquella por el factor N/(2 ). Rec procamente, la transformada inversa debe estar multiplicada por N/(2 ). Esto se ve reejado en los cheros de entrada de OCTAVE que se incluyen en el Anejo C. Desde el punto de vista pr actico con OCTAVE, es MUY IMPORTANTE prestar atenci on al hecho de que la representaci on centrada es u til desde el punto de vista gr aco, pero resulta recomendable realizar los c alculos con la representaci on est andar o con una nueva que llamaremos trasladada. Dado lo delicado de esta terminolog a, conviene diferenciar claramente ambos conceptos: Entenderemos por representaci on centrada aquella en que la se nal se representa de manera que la frecuencia nula queda en el centro, como se mostraba en la Figura 3 o en la Figura 4. Entenderemos por representaci on trasladada aquella en que la se nal representada de forma est andar (como en la Figura 2) s mplemente se traslada hacia la izquierda hasta hacer que la frecuencia nula se encuentre en el centro, como se muestra en la Figura 5. Esto siginica que la se nal dibujada de esta manera no es formalmente correcta, en el sentido de que una determinada frecuencia en el eje de abcisas no se corresponde con el valor que se puede leer en el eje de ordenadas. No obstante, al realizar la transformada inversa de Fourier esto no tiene ning un efecto, ya que el algoritmo no lee los valores del eje de abcisas, sino que directamente asume que la se nal que se le proporciona comienza la frecuencia nula. Esto explica la aparente contradicci on de que al realizar la Transformada inversa de la representaci on centrada se obtenga un resultado err oneo.
100 Transformada centrada 90 80 70 60 50 40 30 20 10 0 -800
0 -800 20 40 60 80 100 Transformada estandar

-600

-400

-200

200

400

600

800

-600

-400

-200

200

400

600

800

Figura 4: TDF, representaci on centrada.

Figura 5: TDF, representaci on trasladada.

El paso de la representaci on centrada a la trasladada (y viceversa) se realiza en OCTAVE a trav es de la funci on fftshift. Ejemplo 1.3 En este caso se realiza la TDF de un pulso triangular de 1 s de duraci on y con valor m aximo 200 durante un tiempo total T0 = 2 s. La se nal se dene con 20 muestras, por lo que la m axima frecuencia representable es N /2 = N /T0 = 10 . En la Figura 9 se muestra la se nal original, la transformada, y la inversa de la transformada, observ andose de nuevo que esta u ltima reproduce de forma exacta la funci on original. El correspondiente chero de entrada de OCTAVE se recoge en el Anejo D. 4

Es interesante observar que en este caso la Figura 9 muestra la transformada con su m odulo y fase, en vez de con las partes real e imaginaria de los ejemplos precedentes.

2.

C alculo en el dominio de la frecuencia de la respuesta de un sistema mec anico lineal a una carga arbitraria

La respuesta u(t) de un sistema mec anico lineal ante una carga excitadora arbitraria g (t) puede obtenerse mediante la integral de convoluci on (integral de Duhamel):
t

u(t) =
0

g (t)h(t ) d

(4)

siendo h(t) la funci on respuesta al impulso unidad. La integral (4) puede calcularse en el dominio del tiempo (de forma anal tica o num erica seg un proceda) o en el dominio de la frecuencia mediante la Transformada de Fourier. En este u ltimo caso u(t) se calcula como la transformada inversa del producto de las trasformadas de las funciones que intervienen en la integral [Humar, 2002], [Clough y Penzien, 1993]. El proceso pr actico de c alculo en el dominio de la frecuencia consta por tanto de los siguientes pasos: 1. C alculo de la transformada H () de la respuesta al impulso unidad h(t). 2. C alculo de la transformada G() de la carga excitadora g (t). 3. C alculo de la respuesta en el dominio de la frecuencia U () como el producto de las dos transformadas U () = H () G(). 4. C alculo de la transformada inversa de Fourier de U (), que proporciona la respuesta en el tiempo u(t). Cabe hacer las siguientes observaciones: La forma natural de calcular las transformadas cuando g (t) o h(t) son discretas es mediante la Transformada Discreta de Fourier (TDF) descrita en el apartado anterior. Puesto que la TDF solo es exacta dentro del intervalo total de muestreo (T0 ), es muy importante muestrear la se nal excitadora g (t) a lo largo de todo el intervalo de tiempo en el que queremos obtener la respuesta de salida u(t). Si la excitaci on dura menos que este u ltimo intervalo, es necesario a nadir los correspondientes valores nulos de muestreo al nal de la se nal excitadora. Si el sistema mec anico tiene rigidez y amortiguamiento lineales, es posible emplear directamente la H () te orica muestreada expresada en (3) con las siguientes precauciones: Si se emplea OCTAVE hay que tener en cuenta que existe un factor de escala N/(2 ) entre las expresiones te oricas y las que usa OCTAVE para las transformadas.

Es tambi en muy importante recordar que es conveniente trabajar con la representaci on trasladada de H (). La raz on est a en el hecho de que esta funci on H () anal tica no es una TDF (la TDF es peri odica de periodo T0 ), sino una transformada continua muestreada que no es peri odica. Por tanto, el realizar el producto de G y H representadas de forma est andar y calcular posteriormente la transformada inversa va a proporcionar un resultado err oneo, puesto que no estamos en rigor multiplicando una pareja de TDF. Una de las formas de solventar este problema es muestrear la H con un rango de frecuencias centrado (la mitad del rango negativo y la mitad positivo), con lo que obtenemos una representaci on centrada, y posteriormente transformarla a una representaci on trasladada (con ifft). Como OCTAVE realiza la Transformada inversa asumiendo que la transformada comienza en la frecuencia nula, la incorrecci on formal de la representaci on trasladada no afecta al resultado del c alculo. Y adem as, y aqu est a el punto importante, al emplear la trasladada estamos suministrando una H muestreada que es id entica a su versi on verdaderamente discreta durante el periodo T0 . Fuera de este periodo, el algoritmo asume que la H que estamos suministrando es peri odica (cosa que en realidad no es cierta, la H muestreada no se repite peri odicamente fuera de T0 , pero esto queda reducido a un detalle formal) y el m etodo de c alculo funciona. Resumiendo, el procedimiento concreto en el caso de emplear la expresi on H () te orica (3) muestreada es: Considerar un rango de frecuencias centrado en 0, desde (N/2) hasta [(N/2)) 1]. Obtener la transformada G() de la carga con fft. Dividir la transformada de la carga G() por N/(2 ). Escribir la expresi on anal tica de H () dada en (2). Aplicar la funci on fftshift a H para obtener la representaci on trasladada. Multiplicar la H resultante por la G obtenida previamente, con lo que se obtiene la respuesta U () en el dominio de la frecuencia. Realizar la Transformada Inversa Discreta de Fourier a la respuesta U () mediante el comando ifft, multiplicada por el factor N/(2 ). Como se ha comprobado en el ejemplo 1.2, el empleo de la H () te orica introduce inexactitudes a la hora de reproducir la funci on original mediante la transformada inversa cuando aquella no se amortigua. En consecuencia, se recomienda emplear la expresi on te orica H () cuando el sistema mec anico tenga amortiguamiento ( = 0), y emplear su c alculo num erico aproximado cuando aqu el sea nulo. Ejemplo 2.1 Para ilustrar estas ideas, se considera la respuesta del sistema mec anico cuya respuesta se ha estudiado en el Ejemplo 1.2 con amortiguamiento = 0,1 al ser excitado con el pulso triangular estudiado en el Ejemplo 1.3. Se trata de obtener la respuesta durante un tiempo total T0 = 8 s. Los resultados se muestran en la Figura 10, y el correspondiente chero de OCTAVE en el Anejo E. 6

Para comprobar la validez del resultado se ha resuelto el problema con la regla trapezoidal, obteni endose un excelente acuerdo, tal y como muestra la Figura 11. Esta gura muestra adem as la excelente precisi on del an alisis en el dominio de la frecuencia frente a la regla trapezoidal para el mismo paso de tiempo (muestreo).

1 funcion original 0.5 0 -0.5 -1 0 1e-13 5e-14 0 -5e-14 -1e-13 -1.5e-13 -2e-13 0 100 TDF parte imaginaria 50 0 -50 -100 0 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.1 0.2 0.3 0.4 0.5 200 400 600 800 1000 1200 1400 200 400 600 800 1000 1200 1400 TDF parte real 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

funcion recuperada

0.6

0.7

0.8

0.9

Figura 6: TDF y TIDF de una se nal de f = 10 Hz, T0 = 1 s con N = 200. 8

0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 0 1.5 1 0.5 0 -0.5 -1 -40 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 -0.5 -40 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 0 1 2 -30 -20 -10 0 1 2 3

funcion de entrada h(t)

H(omega) numerica Real H(omega) teorica Real

10

20

30

40

H(omega) numerica Imaginaria H(omega) teorica Imaginaria

-30

-20

-10

10

20

30

40

funcion recuperada con la numerica funcion recuperada con la teorica

Figura 7: TDF y TIDF de la se nal respuesta al impulso unidad h(t), = 0 . 9

0.6 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 0 0.25 0.2 0.15 0.1 0.05 0 -0.05 -0.1 -0.15 -0.2 -0.25 -40 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 -40 0.6 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 0 1 2 1 2 3

funcion de entrada h(t)

H(omega) numerica Real H(omega) teorica Real

-30

-20

-10

10

20

30

40

H(omega) numerica Imaginaria H(omega) teorica Imaginaria

-30

-20

-10

10

20

30

40

funcion recuperada con la numerica funcion recuperada con la teorica

Figura 8: TDF y TIDF de la se nal respuesta al impulso unidad h(t), = 0,1 . 10

200 funcion de entrada 150 100 50 0 0 1000 TDF modulo 800 600 400 200 0 0 4 3 2 1 0 -1 -2 -3 -4 0 200 funcion de entrada recuperada 150 100 50 0 -50 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 10 20 30 40 10 20 30 40 50 TDF fase 60 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

50

60

Figura 9: TDF y TIDF de un pulso triangular . 11

200 carga 150 100 50 0 0 18 16 14 12 10 8 6 4 2 0 -30 4 3 2 1 0 -1 -2 -3 -30 30 25 20 15 10 5 0 -5 -10 -15 -20 0 1 2 3 1 2 3 4 5 6 7 8

U(omega) numerica modulo

-25

-20

-15

-10

-5

10

15

20

25

U(omega) numerica fase

-25

-20

-15

-10

-5

10

15

20

25

respuesta (con H teorica) u(t)

Figura 10: Respuesta a un pulso triangular . 12

30 25 20 15 10 5 0 -5 -10 -15 -20 0 1 2 3 4 5 6 7 8 Empleando Transformada Discreta de Fourier, h=0.125 s Regla trapezoidal, h=0.125 s Regla trapezoidal, h=0.05 s

Figura 11: Comparaci on de la respuesta calculada en el dominio de la frecuencia (transformada de Fourier) y en el dominio del tiempo (regla trapezoidal).

13

A.

Fichero de OCTAVE para la representaci on est andar y centrada.

# TDF de una funcion senoidal de f=10 Hz durante 1 s con 200 muestras # Representaci on est andar y centrada. clear; hold off; # T=1; # Periodo de tiempo total muestreado N=200; # Numero de muestras freq=10; # Frecuencia de la entrada en Hz # # W=2*pi*freq; # frecuencia de la se~ nal (en rad/s) t=T*[0:N-1]/N; # Escala de tiempo f=(2*pi/T)*[0:N-1]; # Escala en frecuencia x1=sin(W*t); y1=fft(x1); # T. de Fourier f=(2*pi/T)*[-N/2:N/2-1]; # Escala en frecuencia y1s=fft(x1); # T. de Fourier y1s=fftshift(y1s); #gset term post landscape #gset output "salida1b.ps" plot(f,abs(y1),;Transformada estandar;); pause; plot(f,abs(y1s),;Transformada centrada;); pause;

B.

Fichero de OCTAVE para la TDF de una se nal senoidal de f = 10 Hz.

# TDF de una funcion senoidal de f=10 Hz durante 1 s con 200 muestras clear; hold off; # T=1; # Periodo de tiempo total muestreado N=200; # Numero de muestras freq=10; # Frecuencia de la entrada en Hz # # W=2*pi*freq; # frecuencia de la se~ nal (en rad/s) t=T*[0:N-1]/N; # Escala de tiempo f=(2*pi/T)*[0:N-1]; # Escala en frecuencia x1=sin(W*t); y1=fft(x1); # T. de Fourier y2=ifft(y1); # T. Inversa de Fourier #gset term post portrait #gset output "salida1.ps" subplot(4,1,1); clearplot; plot(t,x1,;funcion original;); subplot(4,1,2); clearplot; plot(f,real(y1),;TDF parte real;); subplot(4,1,3); clearplot; plot(f,imag(y1),;TDF parte imaginaria;); subplot(4,1,4); clearplot; plot(t,y2,;funcion recuperada;); pause;

C.

Fichero de OCTAVE para la TDF de h(t)

# TDF H(Omega) de la respuesta en frecuencia h(t) (respuesta al impulso unitario) # durante un tiempo total de 6.4 s con 64 puntos de muestreo # para comparar con Humar, p.481 # Fichero fft14.m # clear; hold on; # T=6.4; # Periodo de tiempo total muestreado N=64; # Numero de muestras xi=0.1; # Tasa de amortiguamiento masa=0.25; # Masa omega0=2*pi; # Frecuencia natural # rigidez=omega0^2*masa; # Rigidez omega=omega0*sqrt(1-xi^2); # Frecuencia propia c=xi*2*masa*omega0; # Amortiguamiento # t=T*[0:N-1]/N; #f=(2*pi/T)*[0:N-1]; # Escala en frecuencia f=(2*pi/T)*[-N/2:(N/2)-1]; # Escala en frecuencia h=exp(-omega0*xi*t).*(sin(omega*t))./(masa*omega); H1=fft(h)./(N/2/pi); # Trasladada H1s=fftshift(H1); # Centrada hh1=(N/2/pi).*ifft(H1); # # H te orica # H2=1./(-masa*f.*f+i*c*f+rigidez); # Centrada H2s=fftshift(H2); # Trasladada hh2=(N/2/pi).*ifft(H2s); # #gset term post portrait #gset output "salida14a.ps" subplot(4,1,1); clearplot; plot(t,h,;funcion de entrada h(t);); subplot(4,1,2); clearplot; plot(f,real(H1s),;H(omega) numerica Real;); plot(f,real(H2),;H(omega) teorica Real;); subplot(4,1,3); clearplot; plot(f,imag(H1s),;H(omega) numerica Imaginaria ;); plot(f,imag(H2),;H(omega) teorica Imaginaria ;); subplot(4,1,4); clearplot; 1

plot(t,hh1,;funcion recuperada con la numerica;); plot(t,hh2,;funcion recuperada con la teorica;); pause;

D.

Fichero de OCTAVE para la TDF de un pulso triangular

# TF de pulso triangular de 1s, tiempo total 2 s con 20 muestras # Funci on definida a trozos. # Desde t=0 hasta 0.5 crece # Desde t=0.5 hasta 1 decrece. # Desde t=1 hasta 2 es nula. # Fichero fft8.m clear; hold off; # T=2; # Periodo de tiempo total muestreado N=20; # Numero de muestras # # A=200; # Valor m aximo de la carga t1=(T/4)*[0:N/4]/(N/4); t2=(T/4)+((T/4)*[1:N/4]/(N/4)); t3=(T/2)+((T/2)*[1:(N/2)-1]/(N/2)); t=[t1 t2 t3]; f=(2*pi/T)*[0:N-1]; # Escala en frecuencia x1=(A/0.5).*t1; x2=A-(A/0.5)*(t2-0.5); x3=0*t3; x=[x1 x2 x3]; y1=fft(x); y2=ifft(y1); #gset term post portrait #gset output "salida8.ps" subplot(4,1,1); clearplot; plot(t,x,;funcion de entrada;); subplot(4,1,2); clearplot; plot(f,abs(y1),;TDF modulo;); subplot(4,1,3); clearplot; plot(f,arg(y1),;TDF fase;); subplot(4,1,4); clearplot; plot(t,y2,;funcion de entrada recuperada;); pause;

E.

Fichero de OCTAVE para la respuesta a un impulso triangular

# Respuesta a un pulso triangular de 1s, tiempo total 2 s con 20 muestras # Funci on definida a trozos. # Desde t=0 hasta 0.5 crece # Desde t=0.5 hasta 1 decrece. # Desde t=1 hasta 8 es nula. # Fichero fft15.m clear; hold on; # T=8; # Periodo de tiempo total muestreado N=64; # Numero de muestras xi=0.1; # Tasa de amortiguamiento masa=0.25; # Masa omega0=2*pi; # Frecuencia natural # rigidez=omega0^2*masa; # Rigidez omega=omega0*sqrt(1-xi^2); # Frecuencia propia c=xi*2*masa*omega0; # Amortiguamiento # # Definicion de la carga # A=200; # Valor m aximo de la carga t1=(T/16)*[0:N/16]/(N/16); t2=(T/16)+((T/16)*[1:N/16]/(N/16)); t3=(T/8)+((7*T/8)*[1:7*N/8-1]/(7*N/8)); t=[t1 t2 t3]; f=(2*pi/T)*[-(N/2):(N/2)-1]; # Escala en frecuencia g1=(A/0.5).*t1; g2=A-(A/0.5)*(t2-0.5); g3=0*t3; g=[g1 g2 g3]; G=fft(g)/(N/2/pi); # # H2 te orica # H=(1)./(-masa*f.*f+i*c*f+rigidez); H=fftshift(H); # # Respuesta en el dominio de la frecuencia U(omega) # U=H.*G; # # Transformada inversa de U(omega) para calcular u(t) # u=(N/2/pi).*ifft(U);

#gset term post portrait #gset output "salida15.ps" subplot(4,1,1); clearplot; plot(t,g,;carga;); subplot(4,1,2); clearplot; plot(f,abs(U),;U(omega) numerica m odulo;); subplot(4,1,3); clearplot; plot(f,arg(U),;U(omega) numerica fase;); subplot(4,1,4); clearplot; plot(t,real(u),;respuesta (con H teorica) u(t);); vt=vec(t); vu=vec(real(u)); respuesta=[vt,vu]; save ufft.dat respuesta pause;

Referencias
[Clough y Penzien, 1993] Clough, R.W. y Penzien, J. Dynamics of structures . McGraw-Hill, 1993. [Eaton, 1997] Eaton, J.W. GNU Octave. A high-level interactive language for numerical computations , 1997. Octave version 2.1.x. [Humar, 2002] Humar, J.L. Dynamics of Structures . Balkema, 2002. [Newland, 1984] Newland, D.E. An introduction to random vibrations and spectral analysis . Longman, 1984. [Newland, 1989] Newland, D.E. Mechanical vibration analysis and computation . Longman, 1989.

Você também pode gostar