SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
1
                                         Señales y Análisis de Fourier
                             En esta práctica se pretende revisar parte de la materia del tema 2 de la asignatura desde la
                             perspectiva de un entorno de cálculo numérico y simulación por ordenador. El objetivo
                             fundamental es familiarizarse con la definición, manipulación y representación de señales en
                             MATLAB. Para ello, en primer lugar, repasaremos y consolidaremos las nociones de MATLAB
                             adquiridas en la práctica anterior; en particular la definición, operación y representación de
                             señales en el dominio del tiempo. Posteriormente, utilizaremos algunas de las funciones que
                             ofrece MATLAB para el Análisis de Fourier así como para la manipulación de señales en los
                             dominios del tiempo y la frecuencia,




1. Introducción
                      Como ya estudiamos en diversos ejemplos de la práctica anterior, MATLAB es
                      muy utilizado en la definición, manipulación y representación de señales
                      analógicas. Siendo rigurosos, el procedimiento seguido en esos ejemplos no es
                      adecuado para el análisis de señales analógicas; es más, en general, MATLAB
                      no permite analizar señales analógicasi. Esto se debe a que la forma natural de
                      representar una señal en MATLAB es definir una secuencia finita de valores
                      mediante un vector fila. Así, como veremos en el siguiente ejercicio, podemos
                      definir la secuencia de instantes de tiempo equidistantes (intervalo 1 ms) entre 0
                      y 0.25s. Y del mismo modo, definimos una señal sinusoide como una secuencia
                      de valores.

Ejercicio 1


                      Genere una secuencia de instantes de tiempo que parta de t=0s y llegue hasta
                      t=0.25s en intervalos de 1ms. Construya una función seno en esa base de
                      tiempo de amplitud 1 y frecuencia 5Hz. Use plot para dibujar la forma de onda.
                      Además, destaque cada punto de la gráfica con *.

                         >> Tinicial=0;                           % Definimos el tiempo inicial
                         >> Tfinal=0.25;                          % Definimos el tiempo final
                         >> step=0.001;                           % Definimos el paso entre instantes de tiempo
                         >> t=Tinicial:step:Tfinal-step;          % Se genera el vector de tiempos
                         >> y=1*sin(5*2*pi*t);                    % Se genera y
                         >> plot(t,y); hold on;                   % Dibujamos y
                         >> plot(t,y,’*’);                        % Dibujamos las muestras de y



  i. Salvo que se usen bloques funcionales o toolboxes
Señales y Análisis de Fourier                                                                       2



                      Por tanto, siendo estrictos, en MATLAB toda señal es discreta en tiempo, mien-
                      tras que en amplitud puede ser discreta (cuantizada) o continua (aunque limi-
                      tada por la precisión de los tipos numéricos). No obstante, si los intervalos
                      temporales entre valores son suficientemente pequeños y el rango temporal en
                      el que se define la señal es suficientemente amplio, la secuencia de valores
                      empleada para representar la señal y las operaciones realizadas para su análisis
                      proporcionan una buena aproximación a los resultados teóricos. En el caso más
                      simple y frecuente, los valores se toman en instantes equiespaciados, intervalo
                      que no debe confundirse con el periodo de muestreo. De momento, ignoraremos
                      el efecto de la discretización de señales (utilizaremos intervalos de tiempo sufi-
                      cientemente pequeños, de modo que los efectos sean despreciables). Asimismo,
                      la amplitud de las señales está sometida a una discretización que, dada la pre-
                      cisión de los tipos numéricos empleados en MATLAB, podemos ignorar.

1.1. Señales especiales.

                      Vamos a ver una posible forma de representar en MATLAB algunas señales
                      analógicas típicas.
                      SEÑAL ESCALÓN
                         % Ejemplo de señal escalon
                         >> t=-10:0.01:10;
                         >> f_escalon=[zeros(1,1000),ones(1,1001)];
                         >> plot(t,f_escalon);

                      SEÑAL PULSO
                         % Ejemplo de señal pulso
                         >> t=-10:0.01:10;
                         >> f_pulso=[zeros(1,950),ones(1,101),zeros(1,950)];
                         >> plot(t,f_pulso);

                      SEÑAL SAMPLING
                         % Ejemplo de señal sampling
                         >> t=-10:0.01:10;
                         % Señal sampling nula en t=n*pi, n=1,2,...
                         >> f_sampling=sin(t)./t;
                         >> plot(t,f_sampling);
                         % Señal sinc nula en t=n, n=1,2,...
                         >> f_sinc=sinc(t);
                         >> plot(t,f_sinc);

                      SEÑAL IMPULSO O DELTA DE DIRAC
                         % Ejemplo de señal impulso
                         >> t=-10:0.01:10;
                         >> f_impulso=[zeros(1,1000),1,zeros(1,1000)];
                         >> plot(t,f_impulso);

                      SEÑAL DIENTE DE SIERRA
                         % Ejemplo de señal diente de sierra de periodo 0.1Hz
                         % sawtooth(x,width) señal en diente de sierra con periodo 2*pi para los
                         % elementos del vector x. El parámetro “width” es un escalar entre
2. Análisis de Fourier                                                                                  3



                            % 0 y 1, y describe la fracción del periodo 2*pi en el que ocurre el
                            % máximo.
                            >> t=-10:0.01:10;
                            >> width=0.10;
                            >> f_sierra=sawtooth(2*pi*0.1*t,width);
                            >> plot(t,f_sierra);

                         SEÑAL TRIANGULAR
                            % Ejemplo de señal triangular de periodo 0.1Hz
                            % Es un caso particular de señal diente de sierra con width=0.5
                            >> t=-10:0.01:10;
                            >> f_triangular=sawtooth(2*pi*0.1*t,0.5);
                            >> plot(t,f_triangular);

                         SEÑAL EXPONENCIAL
                            % Ejemplo de señal exponencial decreciente
                            >> t=-10:0.01:10;
                            % tau: constante de tiempo (RC)
                            >> tau=200e-2;
                            >> f_expon=exp(-t/tau);
                            >> plot(t,f_expon);

                         SEÑAL CUADRADA
                            % Ejemplo de señal cuadrada de frecuencia 0.5Hz
                            % square(x,duty) genera una onda cuadrada de periodo 2*pi con un duty cycle dado
                            >> t=-10:0.01:10;
                            >> duty=50; % porcentaje del periodo en el que la señal es positiva
                            >> f_cuadrada=square(2*pi*0.5*t,duty);
                            >> plot(t,f_cuadrada);




2. Análisis de Fourier
                         Las series de Fourier permiten describir señales periódicas como una combi-
                         nación de señales armónicas (sinusoides). Con esta herramienta, podemos anal-
                         izar una señal periódica en términos de su contenido frecuencial o espectro.
                         Además, nos permite establecer la dualidad entre tiempo y frecuencia, de forma
                         que operaciones realizadas en el dominio del tiempo tienen su dual en el
                         dominio frecuencial. Utilizando operaciones sobre vectores, se pueden calcular
                         fácilmente los coeficientes de Fourier correspondientes a una señal. En el ejerci-
                         cio 2, se definen el vector n, que contiene los índices de los coeficientes, y el
                         vector cn, que contiene los coeficientes. Los coeficientes cn, son los coefi-
                         cientes espectrales de la señal. La gráfica de esos coeficientes en función del
                         índice armónico n o de las frecuencias nωo se denomina espectro. Hay dos tipos
                         de gráficos, uno con la magnitud de los coeficientes y otro de la fase. Ambas
                         funciones son discretas en frecuencia.
Señales y Análisis de Fourier                                                                           4



Ejercicio 2


                      Escriba un fichero MATLAB que proporcione los coeficientes de Fourier de una
                      señal cuadrada de periodo 0.2s (frecuencia 5Hz) y amplitud igual a 1V.

                         % Obtener los coeficientes de Fourier para una señal cuadrada de periodo
                         % 0.2s y amplitud 1.
                         clear;
                         % frecuencia de la señal cuadrada (=1/T)
                         f=5;
                         T=1/f;
                         % Indice de los coeficientes
                         n=1:10;
                         % Coeficientes de Fourier
                         cn=2*(cos(n*pi)-1)./(-2*j*n*pi);
                         co=1;
                         subplot(2,1,1);
                         stem(n,abs(cn));
                         ylabel('Magnitud de cn');
                         subplot(2,1,2);
                         stem(n,angle(cn));
                         ylabel('fase de cn');
                         xlabel('n');


                      A partir de la serie de Fourier, es posible reconstruir una señal periódica. Cuanto
                      mayor sea el número de armónicos utilizado en el desarrollo en serie, mejor será
                      la reconstrucción. Un parámetro importante en la reconstrucción de señales es la
                      velocidad de convergencia, o lo que es lo mismo, la velocidad con la que los
                      coeficientes de Fourier tienden a 0.

Ejercicio 3


                      Escriba un fichero en MATLAB para dibujar n armónicos de una señal cuad-
                      rada de periodo 0.2s y amplitud 1.

                         % Desarrollo en serie de Fourier de una señal cuadrada de periodo 0.2s y amplitud 1
                         clear;
                         % frecuencia de la señal cuadrada (=1/T)
                         f=5;
                         T=1/f;
                         % Indice de los coeficientes
                         n=1:10;
                         % Generamos la serie de Fourier
                         t=-1:0.01:1; % vector de tiempos
                         for i=1:50
                            for k=1:size(t,2)
                               s(i,k)=(2*(1-cos(pi*i))/(pi*i))*sin(2*pi*i*f*t(k));
                            end
                         end
                         for k=1:size(t,2)
                            st(k)=sum(s(:,k));
                         end
2. Análisis de Fourier                                                                                5



                           st(1)=st(1)+1;
                           plot(t,st,'r');
                           hold on;
                           % Señal cuadrada original
                           f_cuadrada=square(2*pi*f*t,50);
                           plot(t,f_cuadrada);
                           xlabel(‘tiempo’);
                           ylabel(‘Amplitud’);


                         MATLAB está equipado con funciones especiales que nos van a permitir real-
                         izar un análisis de Fourier de funciones definidas por un conjunto de valores
                         discretos. Por ejemplo, el comando fft() nos permite obtener la transformada
                         rápida de Fourier (fast Fourier Transform) de una secuencia de números
                         definida por el vector x. Por ejemplo:
                           >> X=fft(x);
                         donde X es un vector de números complejos ordenados desde k=0...N-1. Si
                         queremos que sea más eficiente en el cálculo de la ffT, la longitud del vector x
                         deberá ser una potencia de 2. Podemos rellenar de ceros el vector x para que
                         tenga la longitud apropiada. Esto se consigue automáticamente haciendo:
                           >> X=fft(x,N);
                         donde N es exponente de 2. Mientras más largo sea x, más fina será la escala
                         para la ffT. Debido a un fenómeno de plegamiento del espectro, sólo la primera
                         mitad de los puntos obtenidos son de utilidad. La función fftshift() reordena el
                         vector X en orden creciente de frecuencia. Si X es el vector resultante de hacer
                         una ffT, utilizando esta función reordenamos los puntos en función de la fre-
                         cuencia.
                           >> X=fftshift(X);

Ejercicio 4


                         Obtenga la transformada de Fourier de una señal exponencial modulada en
                         amplitud con una frecuencia de portadora de 200Hz, x(t)=exp(-
                         2·t)·sin(2·pi·200·t).

                           % Ejemplo de una ffT de una señal exponencial modulada en amplitud
                           % con una frecuencia portadora de 200Hz.

                           % Definicion de la señal
                           t=-0.25:0.001:0.25;
                           x=exp(-2*t).*sin(2*pi*200*t);
                           % Representacion en el tiempo
                           subplot(3,1,1);
                           plot(t,x);
                           title('x(t)=exp(-2t)·sin(2·pi·200·t)');
                           xlabel('Tiempo (t)');ylabel('x(t)');
                           % Transformada de Fourier
                           X=fftshift(fft(x));
                           % Magnitud y fase de la transformada
                           Xm=abs(X);
                           Xf=unwrap(angle(X))*180/pi;
                           % Base de frecuencias
Señales y Análisis de Fourier                                                                   6



                         delta_t = t(2)-t(1);
                         f = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t;
                         % Representacion en frecuencia
                         subplot(3,1,2);
                         plot(f,Xm,'r');
                         title('Módulo de transformada de Fourier de x(t)');
                         xlabel('frecuencia (Hz)');ylabel('|X(jw)|');
                         subplot(3,1,3);
                         plot(f,Xf,'r');zoom;
                         title('fase de la transformada de Fourier de x(t)');
                         xlabel('frecuencia (Hz)');ylabel('fase X(jw)');


                      A partir de la transformada de Fourier, es posible reconstruir la señal en el
                      dominio del tiempo. El comando ifft() sirve para obtener la transformada
                      inversa de Fourier de una serie de números complejos:
                         >> x=ifft(X);

Ejercicio 5


                      Obtenga la transformada de Fourier de una señal exponencial modulada en
                      amplitud , x(t)=exp(-2·t)·sin(2·pi·3·t). Realice la transformada inversa y
                      obtenga la señal en el tiempo a partir de su transformada.

                         % Ejemplo de una ffT de una señal exponencial modulada en amplitud
                         % Obtención de la señal en el tiempo a partir de su transformada

                         % Definicion de la señal
                         t=-0.25:0.001:0.25;
                         x=exp(-2*t).*sin(2*pi*3*t);
                         % Representacion en el tiempo
                         figure(1);
                         plot(t,x);
                         title('x(t)=exp(-2t)·sin(2·pi·200·t)');
                         xlabel('Tiempo (t)');ylabel('x(t)');
                         % Transformada y representacion en frecuencia
                         Xt=fft(x);
                         X=fftshift(Xt);
                         % Magnitud y fase de la transformada
                         Xm=abs(X);
                         Xf=unwrap(angle(X))*180/pi;
                         % Base de frecuencias
                         delta_t = t(2)-t(1);
                         f = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t;
                         figure(2);
                         subplot(2,1,1);
                         plot(f,Xm,'r');zoom;
                         title('Módulo de transformada de Fourier de x(t)');
                         xlabel('frecuencia (Hz)');ylabel('|X(jw)|');
                         subplot(2,1,2);
                         plot(f,Xf,'r');zoom;
                         title('fase de la transformada de Fourier de x(t)');
                         xlabel('frecuencia (Hz)');ylabel('fase X(jw)');
3. Producto de Convolución                                                                        7



                        % Obtener la señal en el dominio del tiempo a partir de su transformada
                        xrec=ifft(Xt);
                        figure(3);
                        plot(t,xrec);
                        title('Transformada inversa')
                        xlabel('Tiempo (t)');ylabel('xrec(t)');


3. Producto de Convolución
                     La convolución es una potente herramienta matemática utilizada en el proce-
                     sado de señales. Aunque en general se define como un operador que permite
                     determinar la respuesta de un sistema lineal, invariante en el tiempo ante una
                     determinada entrada, también se puede aplicar a dos señales arbitrarias. La con-
                     volución de f y g se denota por f*g y se define como la integral del producto de
                     ambas funciones después de que una sea invertida y desplazada. En MATLAB
                     contamos con la función conv() que realiza la la convolución de los vectores x y
                     h. El vector resultante tiene un tamaño igual a length(x)+length(h)-1.
                        >> y=conv(x,h);

Ejercicio 6


                     Genere un fichero MATLAB donde realice la convolución de una señal coseno
                     de frecuencia 100Hz y una señal escalón. Compruebe que se verifican las
                     propiedades de la transformada de Fourier respecto al producto de convolu-
                     ción.

                        % Ejemplo de una ffT de una señal exponencial modulada en amplitud
                        % Obtención de la señal en el tiempo a partir de su transformada

                        % Definicion de las señales
                        t = -pi:0.001:pi;
                        g_escalon=[zeros(1,1000*pi+1), ones(1,1000*pi+1)];
                        w = 2*pi;
                        g = cos(w*100*t);
                        g_conv = conv(g,g_escalon);
                        figure(1);
                        subplot(3,1,1);
                        plot(t,g_escalon);
                        title('SEÑAL ESCALON');
                        xlabel('Tiempo (t)');ylabel('e(t)');
                        subplot(3,1,2);
                        plot(t,g);
                        title('cos(2·pi·t)');
                        xlabel('Tiempo (t)');ylabel('cos(2*pi*100*t)');

                        % Convolucion
                        g_conv = conv(g,g_escalon);
                        subplot(3,1,3);
                        plot(t,g_conv(1:length(g)),'r')
                        title('Convolucion');
                        xlabel('Tiempo (t)');
Señales y Análisis de Fourier                                                                             8



                          % Transformada y representacion en frecuencia de la convolucion
                          G_conv=fftshift(fft(g_conv));
                          % Magnitud de la transformada
                          Gm_conv=abs(G_conv);
                          % Base de frecuencias
                          delta_t = t(2)-t(1);
                          f = ((1:length(g_conv)) - ceil(length(g_conv)/2)) / length(g_conv) / delta_t;
                          figure(2);
                          subplot(2,1,1);
                          plot(f,Gm_conv,'r');zoom;
                          title('Transformada de Fourier del producto de convolucion)');
                          xlabel('frecuencia (Hz)');ylabel('|X(jw)|');

                          % Obtener G_conv como el producto de los espectros
                          G_escalon=fftshift(fft(g_escalon));
                          G=fftshift(fft(g));
                          G_conv2=G.*G_escalon;
                          % Base de frecuencias
                          delta_t = t(2)-t(1);
                          f2 = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t;
                          subplot(2,1,2);
                          plot(f2,abs(G_conv2),'r');zoom;
                          title('Producto de las transformadas de Fourier)');
                          xlabel('frecuencia (Hz)');ylabel('|X(jw)|');




4. Espectros de densidad de potencia y energía
                      Las señales se pueden clasificarse según sean de energía o de potencia.
                                                             ∞
                                                                      2
                      •   Energía de una señal: E =          ∫   X ( f ) df
                                                            –∞
                                                             ∞

                      •   Potencia de una señal: P =          ∫ S g df
                                                             –∞
                      Una señal se dice que es de energía si su E es finita, lo que implica que su poten-
                      cia es cero. Por ejemplo, los pulsos limitados en el tiempo.Una señal se dice que
                      es de potencia si su potencia es finita, lo que implica que su energía es infinita.
                      Un ejemplo de este tipo de señales lo encontramos en las señales periódicas.
                      Para el cálculo de estos espectros disponemos, además de las funciones para el
                      análisis de Fourier anteriores, de la función psd(), que proporciona la densidad
                      espectral de potencia de una señal en dB.
                          >>Sg=psd(x,);

Ejercicio 7


                      Genere un fichero MATLAB donde realice la densidad espectral de potencia de
                      una señal coseno de frecuencia 100Hz.
5. Cálculo simbólico                                                                               9



                           % Densidad espectral de potencia
                           t=-pi:0.001:pi;
                           w=2*pi*100;
                           g=cos(w*t);
                           PSD=psd(g,2^10,lenght(g));
                           plot(PSD);


5. Cálculo simbólico
                       Durante la práctica hemos representado las señales mediante vectores y hemos
                       manipulado las señales esencialmente mediante operaciones con vectores. Esta
                       es la forma habitual de trabajar con MATLAB. No obstante, aunque en prin-
                       cipio MATLAB no se diseño para realizar operaciones simbólicas, sí es posible
                       definir y manipular señales (y funciones en general) de manera simbólica, si
                       disponemos del Toolbox para el cálculo simbólico. Así, como en el ejercicio 8,
                       podemos definir una función seno o delta de dirac y calcular su transformada de
                       Fourier de forma simbólica.

Ejercicio 8


                       Definir una función seno de forma simbólica y calcular su transformada de Fou-
                       rier.
                           % Análsis de Fourier con cálculo simbólico
                           syms t % crear variable simbólica
                           g=sin(2*pi*t);
                           G=Fourier(g); % Transformada de Fourier
                           ezplot(g);
                           ginv=iFourier(G); % Transformada inversa


6. Cuestionario de Evaluación

6.1. Serie de Fourier

                       •   Escriba un fichero en MATLAB (coeficientes_Fourier.m) que proporcione
                           los coeficientes de Fourier de la señal de la fig 1. Genere un fichero en
                           MATLAB (dibuja_armonicos.m) que permita dibujar n armónicos de dicha
                           señal.

6.2. Transformada de Fourier

                       •   Genere un fichero en MATLAB (transformada_Fourier.m) para obtener la
                           transformada de Fourier de la señal, x(t)=sen(2·pi·200·t+sin(2·pi·2·t)).
                           Realice la transformada inversa y obtenga la señal en el tiempo a partir de
                           su transformada.
Señales y Análisis de Fourier                                                                            10




                                                          1
                                                                        T

                                                                                           t
                                                       −τ/2       τ/2


                                                         Fig. 1

6.3. Producto de Convolución

                      •   Genere un fichero MATLAB (convolucion.m) donde se realice la convolu-
                          ción de una señal coseno de frecuencia 50Hz y una señal pulso. Represente
                          gráficamente las señales obtenidas.

                      NOTA: no será necesaria la entrega de una memoria. La evaluación de esta
                      práctica se basará en los archivos requeridos en cada ejercicio.




Física de las comunicaciones                                                © Electrónica y Electromagnetismo

Más contenido relacionado

La actualidad más candente

Teorema del muestro y PCM
Teorema del muestro y PCMTeorema del muestro y PCM
Teorema del muestro y PCMJoaquin Vicioso
 
Coeficientes y transformada de Fourier en Matlab
Coeficientes y transformada de Fourier en MatlabCoeficientes y transformada de Fourier en Matlab
Coeficientes y transformada de Fourier en MatlabVictor Hugo Analco
 
Series de Fourier en señales periódicas
Series de Fourier en señales periódicasSeries de Fourier en señales periódicas
Series de Fourier en señales periódicasOrlando Ramirez
 
10 transformada fourier
10 transformada fourier10 transformada fourier
10 transformada fourierAlex Jjavier
 
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3Francisco Apablaza
 
Modulador y demodulador ask
Modulador y demodulador askModulador y demodulador ask
Modulador y demodulador askIsrael Chala
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discretoguest1e528d
 
Ejercicios formas onda_fourier
Ejercicios formas onda_fourierEjercicios formas onda_fourier
Ejercicios formas onda_fouriercrisvilar
 
Procesamiento digital de señales con matlab
Procesamiento digital de señales con matlabProcesamiento digital de señales con matlab
Procesamiento digital de señales con matlabPercy Julio Chambi Pacco
 
Sistemas Lineales (Señales y sistemas)
Sistemas Lineales (Señales y sistemas)Sistemas Lineales (Señales y sistemas)
Sistemas Lineales (Señales y sistemas)Julio Ruano
 
Lineas de Transmisión Coaxial y Bifilar
Lineas de Transmisión Coaxial y BifilarLineas de Transmisión Coaxial y Bifilar
Lineas de Transmisión Coaxial y BifilarCesar Hernández Torres
 
Medios de transmision
Medios de transmisionMedios de transmision
Medios de transmisionajsuarez60
 
Analisis de fourier para señales
Analisis de fourier para señalesAnalisis de fourier para señales
Analisis de fourier para señalesdoc digitus
 
Transformada inversa Fourier
Transformada inversa FourierTransformada inversa Fourier
Transformada inversa Fouriernani1204
 
Gaussiano y ruido comunicacion analogicas
Gaussiano y ruido comunicacion analogicasGaussiano y ruido comunicacion analogicas
Gaussiano y ruido comunicacion analogicasVelmuz Buzz
 
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLABPROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLABINFOVIC
 

La actualidad más candente (20)

Teorema del muestro y PCM
Teorema del muestro y PCMTeorema del muestro y PCM
Teorema del muestro y PCM
 
Coeficientes y transformada de Fourier en Matlab
Coeficientes y transformada de Fourier en MatlabCoeficientes y transformada de Fourier en Matlab
Coeficientes y transformada de Fourier en Matlab
 
Series de Fourier en señales periódicas
Series de Fourier en señales periódicasSeries de Fourier en señales periódicas
Series de Fourier en señales periódicas
 
10 transformada fourier
10 transformada fourier10 transformada fourier
10 transformada fourier
 
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
 
Modulador y demodulador ask
Modulador y demodulador askModulador y demodulador ask
Modulador y demodulador ask
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discreto
 
73402371 el-oscilador-en-puente-de-wien
73402371 el-oscilador-en-puente-de-wien73402371 el-oscilador-en-puente-de-wien
73402371 el-oscilador-en-puente-de-wien
 
Ejercicios formas onda_fourier
Ejercicios formas onda_fourierEjercicios formas onda_fourier
Ejercicios formas onda_fourier
 
Procesamiento digital de señales con matlab
Procesamiento digital de señales con matlabProcesamiento digital de señales con matlab
Procesamiento digital de señales con matlab
 
Convolucion
ConvolucionConvolucion
Convolucion
 
Sistemas Lineales (Señales y sistemas)
Sistemas Lineales (Señales y sistemas)Sistemas Lineales (Señales y sistemas)
Sistemas Lineales (Señales y sistemas)
 
Lineas de Transmisión Coaxial y Bifilar
Lineas de Transmisión Coaxial y BifilarLineas de Transmisión Coaxial y Bifilar
Lineas de Transmisión Coaxial y Bifilar
 
Series de fourier
Series de fourierSeries de fourier
Series de fourier
 
Medios de transmision
Medios de transmisionMedios de transmision
Medios de transmision
 
Analisis de fourier para señales
Analisis de fourier para señalesAnalisis de fourier para señales
Analisis de fourier para señales
 
Transformada inversa Fourier
Transformada inversa FourierTransformada inversa Fourier
Transformada inversa Fourier
 
Serie de Fourier
Serie de FourierSerie de Fourier
Serie de Fourier
 
Gaussiano y ruido comunicacion analogicas
Gaussiano y ruido comunicacion analogicasGaussiano y ruido comunicacion analogicas
Gaussiano y ruido comunicacion analogicas
 
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLABPROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
PROCESAMIENTO DIGITAL DE SEÑALES CON MATLAB
 

Destacado

Analisis espectral en MATLAB
Analisis espectral en MATLABAnalisis espectral en MATLAB
Analisis espectral en MATLABABEL170
 
Analisis De La Transformada De Fourier En Matlab
Analisis De La Transformada De Fourier En MatlabAnalisis De La Transformada De Fourier En Matlab
Analisis De La Transformada De Fourier En Matlabmiguelbc
 
Grafica de una Serie De FOURIER en Matlab
Grafica de una Serie De FOURIER en MatlabGrafica de una Serie De FOURIER en Matlab
Grafica de una Serie De FOURIER en Matlabunisalesiana
 
Lab de tele 1 - Fourier using matlab - UNTECS
Lab de tele 1 - Fourier using matlab - UNTECSLab de tele 1 - Fourier using matlab - UNTECS
Lab de tele 1 - Fourier using matlab - UNTECSIng. Electrónica xD
 
Serie de Fourier
Serie de FourierSerie de Fourier
Serie de FourierNhynoska
 
Mat lab manipulación de señales de audio
Mat lab manipulación de señales de audioMat lab manipulación de señales de audio
Mat lab manipulación de señales de audioRick P
 
Analisis Espectral Usando Matlab
Analisis Espectral Usando MatlabAnalisis Espectral Usando Matlab
Analisis Espectral Usando Matlabkennymanrique
 
Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)morones.om
 
Trabajo dsp Filtro de Butterworth
Trabajo dsp Filtro de Butterworth Trabajo dsp Filtro de Butterworth
Trabajo dsp Filtro de Butterworth Cristian Zapata
 
Cognitive Technique for Software Defined Optical Network (SDON)
Cognitive Technique for Software Defined Optical Network (SDON)Cognitive Technique for Software Defined Optical Network (SDON)
Cognitive Technique for Software Defined Optical Network (SDON)CPqD
 
Muestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabMuestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabmarco calderon layme
 
Materiales el+®ctricos y diel+®ctricos
Materiales el+®ctricos y diel+®ctricosMateriales el+®ctricos y diel+®ctricos
Materiales el+®ctricos y diel+®ctricosricardocamposlandaeta
 
Serie de Fourier
Serie de FourierSerie de Fourier
Serie de Fouriercarlosv33
 
Lab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSLab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSIng. Electrónica xD
 
Lab 06 - Analisis de señales - UNTECS
Lab 06 - Analisis de señales - UNTECSLab 06 - Analisis de señales - UNTECS
Lab 06 - Analisis de señales - UNTECSIng. Electrónica xD
 
Lab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSLab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSIng. Electrónica xD
 

Destacado (20)

Analisis espectral en MATLAB
Analisis espectral en MATLABAnalisis espectral en MATLAB
Analisis espectral en MATLAB
 
Analisis De La Transformada De Fourier En Matlab
Analisis De La Transformada De Fourier En MatlabAnalisis De La Transformada De Fourier En Matlab
Analisis De La Transformada De Fourier En Matlab
 
Grafica de una Serie De FOURIER en Matlab
Grafica de una Serie De FOURIER en MatlabGrafica de una Serie De FOURIER en Matlab
Grafica de una Serie De FOURIER en Matlab
 
Lab de tele 1 - Fourier using matlab - UNTECS
Lab de tele 1 - Fourier using matlab - UNTECSLab de tele 1 - Fourier using matlab - UNTECS
Lab de tele 1 - Fourier using matlab - UNTECS
 
Series de fourier con MATLAB
Series de fourier con MATLABSeries de fourier con MATLAB
Series de fourier con MATLAB
 
Serie de Fourier
Serie de FourierSerie de Fourier
Serie de Fourier
 
Mat lab manipulación de señales de audio
Mat lab manipulación de señales de audioMat lab manipulación de señales de audio
Mat lab manipulación de señales de audio
 
Analisis Espectral Usando Matlab
Analisis Espectral Usando MatlabAnalisis Espectral Usando Matlab
Analisis Espectral Usando Matlab
 
Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)
 
Trabajo dsp Filtro de Butterworth
Trabajo dsp Filtro de Butterworth Trabajo dsp Filtro de Butterworth
Trabajo dsp Filtro de Butterworth
 
Cognitive Technique for Software Defined Optical Network (SDON)
Cognitive Technique for Software Defined Optical Network (SDON)Cognitive Technique for Software Defined Optical Network (SDON)
Cognitive Technique for Software Defined Optical Network (SDON)
 
Muestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabMuestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLab
 
Lab 3 de tele final
Lab 3 de tele finalLab 3 de tele final
Lab 3 de tele final
 
Materiales el+®ctricos y diel+®ctricos
Materiales el+®ctricos y diel+®ctricosMateriales el+®ctricos y diel+®ctricos
Materiales el+®ctricos y diel+®ctricos
 
Series de fodsfjwslurier
Series de fodsfjwslurierSeries de fodsfjwslurier
Series de fodsfjwslurier
 
Apuntes fourier
Apuntes fourierApuntes fourier
Apuntes fourier
 
Serie de Fourier
Serie de FourierSerie de Fourier
Serie de Fourier
 
Lab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSLab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECS
 
Lab 06 - Analisis de señales - UNTECS
Lab 06 - Analisis de señales - UNTECSLab 06 - Analisis de señales - UNTECS
Lab 06 - Analisis de señales - UNTECS
 
Lab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSLab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECS
 

Similar a Sa fourier con matlab

Sistemas de comunicaciones - Práctica 03
Sistemas de comunicaciones - Práctica 03Sistemas de comunicaciones - Práctica 03
Sistemas de comunicaciones - Práctica 03Cristian Ortiz Gómez
 
Fundamentos_de_Telecomunicaciones_Utiliz.pdf
Fundamentos_de_Telecomunicaciones_Utiliz.pdfFundamentos_de_Telecomunicaciones_Utiliz.pdf
Fundamentos_de_Telecomunicaciones_Utiliz.pdfPaolaAndrea813335
 
Series De Fourier
Series De FourierSeries De Fourier
Series De Fourierlichic
 
Series De Fourier
Series De FourierSeries De Fourier
Series De Fourierisrael.1x
 
Lab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSLab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSIng. Electrónica xD
 
Prácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesPrácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesDiego Morales
 
Prácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesPrácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesDiego Morales
 
Tratamiento de-senales-digitales
Tratamiento de-senales-digitalesTratamiento de-senales-digitales
Tratamiento de-senales-digitaleshernan hernandez
 
Series y Transformada de Fourier
Series y Transformada de FourierSeries y Transformada de Fourier
Series y Transformada de Fourierlchaconc
 

Similar a Sa fourier con matlab (20)

laboratorio1 de diniz
laboratorio1 de dinizlaboratorio1 de diniz
laboratorio1 de diniz
 
Sistemas de comunicaciones - Práctica 03
Sistemas de comunicaciones - Práctica 03Sistemas de comunicaciones - Práctica 03
Sistemas de comunicaciones - Práctica 03
 
Dsp5
Dsp5Dsp5
Dsp5
 
Muestreo
MuestreoMuestreo
Muestreo
 
Fundamentos_de_Telecomunicaciones_Utiliz.pdf
Fundamentos_de_Telecomunicaciones_Utiliz.pdfFundamentos_de_Telecomunicaciones_Utiliz.pdf
Fundamentos_de_Telecomunicaciones_Utiliz.pdf
 
SERIES DE FOURIER
SERIES DE FOURIERSERIES DE FOURIER
SERIES DE FOURIER
 
Series De Fourier
Series De FourierSeries De Fourier
Series De Fourier
 
Series De Fourier
Series De FourierSeries De Fourier
Series De Fourier
 
MUESTREO
MUESTREOMUESTREO
MUESTREO
 
Concepto Introductorio
Concepto IntroductorioConcepto Introductorio
Concepto Introductorio
 
Lab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSLab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECS
 
Prácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesPrácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señales
 
Prácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señalesPrácticas de laboratorio de procesamiento digital de señales
Prácticas de laboratorio de procesamiento digital de señales
 
Fourier mat lab
Fourier mat labFourier mat lab
Fourier mat lab
 
TRANSFORMADA DISCRETA DE FOURIER
TRANSFORMADA DISCRETA DE FOURIERTRANSFORMADA DISCRETA DE FOURIER
TRANSFORMADA DISCRETA DE FOURIER
 
Tutorial sf
Tutorial sfTutorial sf
Tutorial sf
 
Tratamiento de-senales-digitales
Tratamiento de-senales-digitalesTratamiento de-senales-digitales
Tratamiento de-senales-digitales
 
Analissis espectral
Analissis espectralAnalissis espectral
Analissis espectral
 
Series y Transformada de Fourier
Series y Transformada de FourierSeries y Transformada de Fourier
Series y Transformada de Fourier
 
Practica1m
Practica1mPractica1m
Practica1m
 

Sa fourier con matlab

  • 1. 1 Señales y Análisis de Fourier En esta práctica se pretende revisar parte de la materia del tema 2 de la asignatura desde la perspectiva de un entorno de cálculo numérico y simulación por ordenador. El objetivo fundamental es familiarizarse con la definición, manipulación y representación de señales en MATLAB. Para ello, en primer lugar, repasaremos y consolidaremos las nociones de MATLAB adquiridas en la práctica anterior; en particular la definición, operación y representación de señales en el dominio del tiempo. Posteriormente, utilizaremos algunas de las funciones que ofrece MATLAB para el Análisis de Fourier así como para la manipulación de señales en los dominios del tiempo y la frecuencia, 1. Introducción Como ya estudiamos en diversos ejemplos de la práctica anterior, MATLAB es muy utilizado en la definición, manipulación y representación de señales analógicas. Siendo rigurosos, el procedimiento seguido en esos ejemplos no es adecuado para el análisis de señales analógicas; es más, en general, MATLAB no permite analizar señales analógicasi. Esto se debe a que la forma natural de representar una señal en MATLAB es definir una secuencia finita de valores mediante un vector fila. Así, como veremos en el siguiente ejercicio, podemos definir la secuencia de instantes de tiempo equidistantes (intervalo 1 ms) entre 0 y 0.25s. Y del mismo modo, definimos una señal sinusoide como una secuencia de valores. Ejercicio 1 Genere una secuencia de instantes de tiempo que parta de t=0s y llegue hasta t=0.25s en intervalos de 1ms. Construya una función seno en esa base de tiempo de amplitud 1 y frecuencia 5Hz. Use plot para dibujar la forma de onda. Además, destaque cada punto de la gráfica con *. >> Tinicial=0; % Definimos el tiempo inicial >> Tfinal=0.25; % Definimos el tiempo final >> step=0.001; % Definimos el paso entre instantes de tiempo >> t=Tinicial:step:Tfinal-step; % Se genera el vector de tiempos >> y=1*sin(5*2*pi*t); % Se genera y >> plot(t,y); hold on; % Dibujamos y >> plot(t,y,’*’); % Dibujamos las muestras de y i. Salvo que se usen bloques funcionales o toolboxes
  • 2. Señales y Análisis de Fourier 2 Por tanto, siendo estrictos, en MATLAB toda señal es discreta en tiempo, mien- tras que en amplitud puede ser discreta (cuantizada) o continua (aunque limi- tada por la precisión de los tipos numéricos). No obstante, si los intervalos temporales entre valores son suficientemente pequeños y el rango temporal en el que se define la señal es suficientemente amplio, la secuencia de valores empleada para representar la señal y las operaciones realizadas para su análisis proporcionan una buena aproximación a los resultados teóricos. En el caso más simple y frecuente, los valores se toman en instantes equiespaciados, intervalo que no debe confundirse con el periodo de muestreo. De momento, ignoraremos el efecto de la discretización de señales (utilizaremos intervalos de tiempo sufi- cientemente pequeños, de modo que los efectos sean despreciables). Asimismo, la amplitud de las señales está sometida a una discretización que, dada la pre- cisión de los tipos numéricos empleados en MATLAB, podemos ignorar. 1.1. Señales especiales. Vamos a ver una posible forma de representar en MATLAB algunas señales analógicas típicas. SEÑAL ESCALÓN % Ejemplo de señal escalon >> t=-10:0.01:10; >> f_escalon=[zeros(1,1000),ones(1,1001)]; >> plot(t,f_escalon); SEÑAL PULSO % Ejemplo de señal pulso >> t=-10:0.01:10; >> f_pulso=[zeros(1,950),ones(1,101),zeros(1,950)]; >> plot(t,f_pulso); SEÑAL SAMPLING % Ejemplo de señal sampling >> t=-10:0.01:10; % Señal sampling nula en t=n*pi, n=1,2,... >> f_sampling=sin(t)./t; >> plot(t,f_sampling); % Señal sinc nula en t=n, n=1,2,... >> f_sinc=sinc(t); >> plot(t,f_sinc); SEÑAL IMPULSO O DELTA DE DIRAC % Ejemplo de señal impulso >> t=-10:0.01:10; >> f_impulso=[zeros(1,1000),1,zeros(1,1000)]; >> plot(t,f_impulso); SEÑAL DIENTE DE SIERRA % Ejemplo de señal diente de sierra de periodo 0.1Hz % sawtooth(x,width) señal en diente de sierra con periodo 2*pi para los % elementos del vector x. El parámetro “width” es un escalar entre
  • 3. 2. Análisis de Fourier 3 % 0 y 1, y describe la fracción del periodo 2*pi en el que ocurre el % máximo. >> t=-10:0.01:10; >> width=0.10; >> f_sierra=sawtooth(2*pi*0.1*t,width); >> plot(t,f_sierra); SEÑAL TRIANGULAR % Ejemplo de señal triangular de periodo 0.1Hz % Es un caso particular de señal diente de sierra con width=0.5 >> t=-10:0.01:10; >> f_triangular=sawtooth(2*pi*0.1*t,0.5); >> plot(t,f_triangular); SEÑAL EXPONENCIAL % Ejemplo de señal exponencial decreciente >> t=-10:0.01:10; % tau: constante de tiempo (RC) >> tau=200e-2; >> f_expon=exp(-t/tau); >> plot(t,f_expon); SEÑAL CUADRADA % Ejemplo de señal cuadrada de frecuencia 0.5Hz % square(x,duty) genera una onda cuadrada de periodo 2*pi con un duty cycle dado >> t=-10:0.01:10; >> duty=50; % porcentaje del periodo en el que la señal es positiva >> f_cuadrada=square(2*pi*0.5*t,duty); >> plot(t,f_cuadrada); 2. Análisis de Fourier Las series de Fourier permiten describir señales periódicas como una combi- nación de señales armónicas (sinusoides). Con esta herramienta, podemos anal- izar una señal periódica en términos de su contenido frecuencial o espectro. Además, nos permite establecer la dualidad entre tiempo y frecuencia, de forma que operaciones realizadas en el dominio del tiempo tienen su dual en el dominio frecuencial. Utilizando operaciones sobre vectores, se pueden calcular fácilmente los coeficientes de Fourier correspondientes a una señal. En el ejerci- cio 2, se definen el vector n, que contiene los índices de los coeficientes, y el vector cn, que contiene los coeficientes. Los coeficientes cn, son los coefi- cientes espectrales de la señal. La gráfica de esos coeficientes en función del índice armónico n o de las frecuencias nωo se denomina espectro. Hay dos tipos de gráficos, uno con la magnitud de los coeficientes y otro de la fase. Ambas funciones son discretas en frecuencia.
  • 4. Señales y Análisis de Fourier 4 Ejercicio 2 Escriba un fichero MATLAB que proporcione los coeficientes de Fourier de una señal cuadrada de periodo 0.2s (frecuencia 5Hz) y amplitud igual a 1V. % Obtener los coeficientes de Fourier para una señal cuadrada de periodo % 0.2s y amplitud 1. clear; % frecuencia de la señal cuadrada (=1/T) f=5; T=1/f; % Indice de los coeficientes n=1:10; % Coeficientes de Fourier cn=2*(cos(n*pi)-1)./(-2*j*n*pi); co=1; subplot(2,1,1); stem(n,abs(cn)); ylabel('Magnitud de cn'); subplot(2,1,2); stem(n,angle(cn)); ylabel('fase de cn'); xlabel('n'); A partir de la serie de Fourier, es posible reconstruir una señal periódica. Cuanto mayor sea el número de armónicos utilizado en el desarrollo en serie, mejor será la reconstrucción. Un parámetro importante en la reconstrucción de señales es la velocidad de convergencia, o lo que es lo mismo, la velocidad con la que los coeficientes de Fourier tienden a 0. Ejercicio 3 Escriba un fichero en MATLAB para dibujar n armónicos de una señal cuad- rada de periodo 0.2s y amplitud 1. % Desarrollo en serie de Fourier de una señal cuadrada de periodo 0.2s y amplitud 1 clear; % frecuencia de la señal cuadrada (=1/T) f=5; T=1/f; % Indice de los coeficientes n=1:10; % Generamos la serie de Fourier t=-1:0.01:1; % vector de tiempos for i=1:50 for k=1:size(t,2) s(i,k)=(2*(1-cos(pi*i))/(pi*i))*sin(2*pi*i*f*t(k)); end end for k=1:size(t,2) st(k)=sum(s(:,k)); end
  • 5. 2. Análisis de Fourier 5 st(1)=st(1)+1; plot(t,st,'r'); hold on; % Señal cuadrada original f_cuadrada=square(2*pi*f*t,50); plot(t,f_cuadrada); xlabel(‘tiempo’); ylabel(‘Amplitud’); MATLAB está equipado con funciones especiales que nos van a permitir real- izar un análisis de Fourier de funciones definidas por un conjunto de valores discretos. Por ejemplo, el comando fft() nos permite obtener la transformada rápida de Fourier (fast Fourier Transform) de una secuencia de números definida por el vector x. Por ejemplo: >> X=fft(x); donde X es un vector de números complejos ordenados desde k=0...N-1. Si queremos que sea más eficiente en el cálculo de la ffT, la longitud del vector x deberá ser una potencia de 2. Podemos rellenar de ceros el vector x para que tenga la longitud apropiada. Esto se consigue automáticamente haciendo: >> X=fft(x,N); donde N es exponente de 2. Mientras más largo sea x, más fina será la escala para la ffT. Debido a un fenómeno de plegamiento del espectro, sólo la primera mitad de los puntos obtenidos son de utilidad. La función fftshift() reordena el vector X en orden creciente de frecuencia. Si X es el vector resultante de hacer una ffT, utilizando esta función reordenamos los puntos en función de la fre- cuencia. >> X=fftshift(X); Ejercicio 4 Obtenga la transformada de Fourier de una señal exponencial modulada en amplitud con una frecuencia de portadora de 200Hz, x(t)=exp(- 2·t)·sin(2·pi·200·t). % Ejemplo de una ffT de una señal exponencial modulada en amplitud % con una frecuencia portadora de 200Hz. % Definicion de la señal t=-0.25:0.001:0.25; x=exp(-2*t).*sin(2*pi*200*t); % Representacion en el tiempo subplot(3,1,1); plot(t,x); title('x(t)=exp(-2t)·sin(2·pi·200·t)'); xlabel('Tiempo (t)');ylabel('x(t)'); % Transformada de Fourier X=fftshift(fft(x)); % Magnitud y fase de la transformada Xm=abs(X); Xf=unwrap(angle(X))*180/pi; % Base de frecuencias
  • 6. Señales y Análisis de Fourier 6 delta_t = t(2)-t(1); f = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t; % Representacion en frecuencia subplot(3,1,2); plot(f,Xm,'r'); title('Módulo de transformada de Fourier de x(t)'); xlabel('frecuencia (Hz)');ylabel('|X(jw)|'); subplot(3,1,3); plot(f,Xf,'r');zoom; title('fase de la transformada de Fourier de x(t)'); xlabel('frecuencia (Hz)');ylabel('fase X(jw)'); A partir de la transformada de Fourier, es posible reconstruir la señal en el dominio del tiempo. El comando ifft() sirve para obtener la transformada inversa de Fourier de una serie de números complejos: >> x=ifft(X); Ejercicio 5 Obtenga la transformada de Fourier de una señal exponencial modulada en amplitud , x(t)=exp(-2·t)·sin(2·pi·3·t). Realice la transformada inversa y obtenga la señal en el tiempo a partir de su transformada. % Ejemplo de una ffT de una señal exponencial modulada en amplitud % Obtención de la señal en el tiempo a partir de su transformada % Definicion de la señal t=-0.25:0.001:0.25; x=exp(-2*t).*sin(2*pi*3*t); % Representacion en el tiempo figure(1); plot(t,x); title('x(t)=exp(-2t)·sin(2·pi·200·t)'); xlabel('Tiempo (t)');ylabel('x(t)'); % Transformada y representacion en frecuencia Xt=fft(x); X=fftshift(Xt); % Magnitud y fase de la transformada Xm=abs(X); Xf=unwrap(angle(X))*180/pi; % Base de frecuencias delta_t = t(2)-t(1); f = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t; figure(2); subplot(2,1,1); plot(f,Xm,'r');zoom; title('Módulo de transformada de Fourier de x(t)'); xlabel('frecuencia (Hz)');ylabel('|X(jw)|'); subplot(2,1,2); plot(f,Xf,'r');zoom; title('fase de la transformada de Fourier de x(t)'); xlabel('frecuencia (Hz)');ylabel('fase X(jw)');
  • 7. 3. Producto de Convolución 7 % Obtener la señal en el dominio del tiempo a partir de su transformada xrec=ifft(Xt); figure(3); plot(t,xrec); title('Transformada inversa') xlabel('Tiempo (t)');ylabel('xrec(t)'); 3. Producto de Convolución La convolución es una potente herramienta matemática utilizada en el proce- sado de señales. Aunque en general se define como un operador que permite determinar la respuesta de un sistema lineal, invariante en el tiempo ante una determinada entrada, también se puede aplicar a dos señales arbitrarias. La con- volución de f y g se denota por f*g y se define como la integral del producto de ambas funciones después de que una sea invertida y desplazada. En MATLAB contamos con la función conv() que realiza la la convolución de los vectores x y h. El vector resultante tiene un tamaño igual a length(x)+length(h)-1. >> y=conv(x,h); Ejercicio 6 Genere un fichero MATLAB donde realice la convolución de una señal coseno de frecuencia 100Hz y una señal escalón. Compruebe que se verifican las propiedades de la transformada de Fourier respecto al producto de convolu- ción. % Ejemplo de una ffT de una señal exponencial modulada en amplitud % Obtención de la señal en el tiempo a partir de su transformada % Definicion de las señales t = -pi:0.001:pi; g_escalon=[zeros(1,1000*pi+1), ones(1,1000*pi+1)]; w = 2*pi; g = cos(w*100*t); g_conv = conv(g,g_escalon); figure(1); subplot(3,1,1); plot(t,g_escalon); title('SEÑAL ESCALON'); xlabel('Tiempo (t)');ylabel('e(t)'); subplot(3,1,2); plot(t,g); title('cos(2·pi·t)'); xlabel('Tiempo (t)');ylabel('cos(2*pi*100*t)'); % Convolucion g_conv = conv(g,g_escalon); subplot(3,1,3); plot(t,g_conv(1:length(g)),'r') title('Convolucion'); xlabel('Tiempo (t)');
  • 8. Señales y Análisis de Fourier 8 % Transformada y representacion en frecuencia de la convolucion G_conv=fftshift(fft(g_conv)); % Magnitud de la transformada Gm_conv=abs(G_conv); % Base de frecuencias delta_t = t(2)-t(1); f = ((1:length(g_conv)) - ceil(length(g_conv)/2)) / length(g_conv) / delta_t; figure(2); subplot(2,1,1); plot(f,Gm_conv,'r');zoom; title('Transformada de Fourier del producto de convolucion)'); xlabel('frecuencia (Hz)');ylabel('|X(jw)|'); % Obtener G_conv como el producto de los espectros G_escalon=fftshift(fft(g_escalon)); G=fftshift(fft(g)); G_conv2=G.*G_escalon; % Base de frecuencias delta_t = t(2)-t(1); f2 = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t; subplot(2,1,2); plot(f2,abs(G_conv2),'r');zoom; title('Producto de las transformadas de Fourier)'); xlabel('frecuencia (Hz)');ylabel('|X(jw)|'); 4. Espectros de densidad de potencia y energía Las señales se pueden clasificarse según sean de energía o de potencia. ∞ 2 • Energía de una señal: E = ∫ X ( f ) df –∞ ∞ • Potencia de una señal: P = ∫ S g df –∞ Una señal se dice que es de energía si su E es finita, lo que implica que su poten- cia es cero. Por ejemplo, los pulsos limitados en el tiempo.Una señal se dice que es de potencia si su potencia es finita, lo que implica que su energía es infinita. Un ejemplo de este tipo de señales lo encontramos en las señales periódicas. Para el cálculo de estos espectros disponemos, además de las funciones para el análisis de Fourier anteriores, de la función psd(), que proporciona la densidad espectral de potencia de una señal en dB. >>Sg=psd(x,); Ejercicio 7 Genere un fichero MATLAB donde realice la densidad espectral de potencia de una señal coseno de frecuencia 100Hz.
  • 9. 5. Cálculo simbólico 9 % Densidad espectral de potencia t=-pi:0.001:pi; w=2*pi*100; g=cos(w*t); PSD=psd(g,2^10,lenght(g)); plot(PSD); 5. Cálculo simbólico Durante la práctica hemos representado las señales mediante vectores y hemos manipulado las señales esencialmente mediante operaciones con vectores. Esta es la forma habitual de trabajar con MATLAB. No obstante, aunque en prin- cipio MATLAB no se diseño para realizar operaciones simbólicas, sí es posible definir y manipular señales (y funciones en general) de manera simbólica, si disponemos del Toolbox para el cálculo simbólico. Así, como en el ejercicio 8, podemos definir una función seno o delta de dirac y calcular su transformada de Fourier de forma simbólica. Ejercicio 8 Definir una función seno de forma simbólica y calcular su transformada de Fou- rier. % Análsis de Fourier con cálculo simbólico syms t % crear variable simbólica g=sin(2*pi*t); G=Fourier(g); % Transformada de Fourier ezplot(g); ginv=iFourier(G); % Transformada inversa 6. Cuestionario de Evaluación 6.1. Serie de Fourier • Escriba un fichero en MATLAB (coeficientes_Fourier.m) que proporcione los coeficientes de Fourier de la señal de la fig 1. Genere un fichero en MATLAB (dibuja_armonicos.m) que permita dibujar n armónicos de dicha señal. 6.2. Transformada de Fourier • Genere un fichero en MATLAB (transformada_Fourier.m) para obtener la transformada de Fourier de la señal, x(t)=sen(2·pi·200·t+sin(2·pi·2·t)). Realice la transformada inversa y obtenga la señal en el tiempo a partir de su transformada.
  • 10. Señales y Análisis de Fourier 10 1 T t −τ/2 τ/2 Fig. 1 6.3. Producto de Convolución • Genere un fichero MATLAB (convolucion.m) donde se realice la convolu- ción de una señal coseno de frecuencia 50Hz y una señal pulso. Represente gráficamente las señales obtenidas. NOTA: no será necesaria la entrega de una memoria. La evaluación de esta práctica se basará en los archivos requeridos en cada ejercicio. Física de las comunicaciones © Electrónica y Electromagnetismo