ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
UNIDAD CULHUACAN
ALUMNOS: HERNNDEZ HERNNDEZ JOS GERMN. MALDONADO CRUZ RUBN DARO.
PROFESOR: MEZA HORTA FRANCISCO ELIAS.
5CV3
*** LA TRANSFORMADA DE FOURIER *** OBJETIVOS: En la primera seccin se presentan algunas rutinas de MatLab de inters en relacin con la utilizacin de transformadas de Fourier. En la primera de ellas se indica como representar el espectro de amplitudes y el de fases de una funcin peridica expresada como serie de Fourier en su versin trigonomtrica. Los coeficientes de los elementos han de ser obtenidos aparte y las funciones que los describen son datos en la rutina de MatLab correspondiente. Podra considerarse en caso anlogo en el que sea parte de la serie de Fourier en su versin exponencial. Sin embargo tal situacin es ignorada en este contexto, y ello por dos motivos. Por una parte, a raz de lo expuesto el lector interesado puede deducir fcilmente como efectuar la representacin correspondiente. Por otro lado, consideramos que la versin trigonomtrica, en la que nicamente existen frecuencias positivas en el desarrollo de la serie, es ms ajustada a la realidad fsica que la serie en trminos exponenciales, que incluye frecuencias negativas. El primer apartado se complementa con la indicacin a cerca de como reconstruir una seal peridica a partir de una serie de Fourier en trminos trigonomtricos. El segundo apartado se refiere a la presentacin del mdulo de una funcin descrita mediante su transformada de Fourier y a como calcular la energa de la seal correspondiente de acuerdo con la teora de Parceval. ESPECTROS Y RECONSTRUCCIN DE UNA SEAL. Se han de facilitarlos siguientes datos ya que con estos datos la rutina calcula y representa los mdulos y las fases de los distintos trminos: Las expresiones matemticas que deben de definir el valor medio (av) o trmino inicial de la serie y los coeficientes de desarrollo en serie de Fourier original (ak, bk). El nmero de trminos de la serie han de ser tenidos en cuenta (n) adems del inicial. El periodo de la funcin (TO). El nmero de periodos de la funcin que han de ser representados en la grfica cuando se efectu la reconstruccin de la seal. El instante (tinicial) en que comienza el periodo ms prximo a t = 0. RUTINA: %%%%% COEFICIENTES DE FOURIER %%%%%%
clear all;
% Numero de terminos en la serie (entero, > 0) excluido av n = 8; k = 1: n;
% Coeficientes de la serie (Expresiones algebraicas de la funcion de K) av = 7*pi; % (Constante real) ak = (6./k).*sin((4/3)*pi*k); bk = (6./k).*(1-cos((4/3)*pi*k));
% Periodo de la funcion (> 0) TO = 0.12566;
% Numero de periodos a presentar (entero, > 0) np = 4;
% Base de tiempos tinicial = 0; % Instante inicial del primer periodo inicial = tinicial - (np/2)*TO; final = - inicial; puntos = 1000; t = i inspace (inicial, final, puntos);
% Calculo de modulos y faces A = sqrt (ak.^2 + bk.^2); fase = atan2 (bk, ak);
% Representacion de modulos subplot (3, 1, 1); stem (0, av); grid on; xlabel ('Componente', 'Fontname', 'Times', 'Fontsize', 14); ylabel ('Dodulo', 'Fontname', 'Times', 'Fontsize', 14); axis ([-0.5, n+0.5, -0.2*max(A), (3/2)*max(max(A)), av]); hold on stem (k, a(k)); title ('componentes de Fourier', 'Fontname', 'Times', 'Fontsize', 24);
% Seal Reconstruida subplot (3, 1, 3); senyal = av; k = 1; while k <= n senyal = senyal + A(k)*cos((2*pi*k/TO)*t + Fase(k)); k = k+1; end plot (t, senyal, 'b', 'Linewidth', 2); grid on; xlabel ('Tiempo (s)', 'Fontname', 'Times', 'Fontsize', 14); ylabel ('Seal', 'Fontname', 'Times', 'Fontsize', 14); axis ([inicial, final, -(3/2)*abs(min(senyal)), (3/2)*abs((max(senyal))]);
clear all; % Elimina las variables utilizadas en esta rutina
OBSERVACIONES:
Atan (y/x), reduce todos los ngulos al intervalo comprendido entre /2 y /2. Todas las instrucciones trigonomtricas, tanto directas como inversas, operan con ngulos expresadas en radianes.
A partir de los clculos realizados la rutina presenta por separado los espectros de amplitudes y de fases.
Finalmente la rutina reconstruye la seal original mediante un bucle en que cada ciclo se va aadiendo un nuevo trmino a la serie hasta completar todos los especificados. La serie de Fourier es el equivalente de un tren peridico de pulsos rectangulares.
La calidad de la reconstruccin de una seal peridica a partir de su serie de Fourier depende del nmero de trminos que contenga la serie.
INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD CULHUACAN
ALUMNOS: HERNNDEZ HERNNDEZ JOS GERMN. MALDONADO CRUZ RUBN DARO.
PROFESOR: MEZA HORTA FRANCISCO ELIAS.
5CV3
*** MODULO DE LA TRANSFORMADA DE FOURIER *** La rutina que se presenta en este aparato permite representar el mdulo de transformada de Fourier de una funcin no peridica. La transformacin de Fourier ha de ser definida por el usuario en una funcin (funefourier). Como puede observarse, esta funcin tiene dos entradas: El rango de frecuencias, definido en la rutina principal. Un nmero cualquiera. Si este nmero es 1, la funcin devuelve el mdulo de la transformada de Fourier, en cualquier otro caso, devuelve el cuadro de dicho modulo. El usuario puede definir el tipo de variacin (lineal o logartmica) de la frecuencia angular, tomada como eje de abscisas de la representacin. La instrumentacin para efectuar la representacin (plot o semilogx) ha de ser coherente con tal definicin. La rutina principal tambin calcula la energa de la seal cuando est conectada a una resistencia de 1 (ohm), para lo que utiliza el teorema de Parseval. La frmula que determina la energa se implementa mediante la instruccin. quad('funtion', vinicial, vfinal, [], {}) %Instruccin de integracin . % function; %nombre de la funcin a integrar. % vinicial, vfinal; %lmite inferior y superior de la integral. % []; %parmetro relacionado con la precisin del clculo.
Como puede observarse, en la rutina que sigue se aade un parmetro (2) a la instrumentacin para calcular la integral. Es el parmetro que, de acuerdo con lo indicado anteriormente, selecciona la salida de la subrutina de funcin que interesa (el cuadro del mdulo en este caso). Obviamente, el usuario ha de especificar los lmites de la integracin. Se sugiere al lector que preste atencin a la forma en la que en la subrutina de funcin se establece el resultado que aquella ha de entregar a la rutina principal.
FUNCION PRINCIPAL:
function x = funcfourier (w, tipo) A = 120; c = 24; trans = A./(c + i*w); if (tipo == 1) x = abs(trans); else x = abs(trans)).^2; end return;
RUTINA:
%%%% TRANSFORMADA DE FOURIER %%%%%
clear all: % Elimina variables utilizadas en otras rutinas
% Rango de frecuencias inicial = -3; final = 3; puntos = 1000; w = linspace (inicial, final, puntos); % Lineal % w= logspace(inicial, final, puntos); % logartmico
% Energa de la funcin vinicial = 24; % Extremo inferior de la integracin (>0) vfinal = 48; % Extremo superior de la integracin ener = quad('funcfourier', vinicial, vfinal, [], [], 2)/pi
clear all: % Elimina las variables utilizadas en esta rutina
LA RUTINA Y LA SUBRUTINA INDICADAS PROPORCIONAN EL SIGUIENTE RESULTADO:
% Rango de frecuencias inicial = -3; final = 3; puntos = 1000; w = linspace (inicial, final, puntos); % Lineal % w= logspace(inicial, final, puntos); % logartmico
% Rango de frecuencias inicial = -500; final = 500; puntos = 1000; w = linspace (inicial, final, puntos); % Lineal % w= logspace(inicial, final, puntos); % logartmico
% Rango de frecuencias inicial = -500; final = 500; puntos = 1000; w = linspace (inicial, final, puntos); % Lineal % w= logspace(inicial, final, puntos); % logartmico
% Rango de frecuencias inicial = -100; final = 100; puntos = 1000; w = linspace (inicial, final, puntos); % Lineal % w= logspace(inicial, final, puntos); % logartmico
% Rango de frecuencias inicial = -30; final = 30; puntos = 1000; w = linspace (inicial, final, puntos); % Lineal % w= logspace(inicial, final, puntos); % logartmico