lunes, 30 de abril de 2012

SEŃALES CONTINUAS Y SEÑALES DISCRETAS

Como ya sabemos existen dos tipos de señales dependiendo de la naturaleza de la variable independiente (tiempo): señales de tiempo continuo y señales de tiempo discreto.

En una señal de tiempo continuo x(t), La variable tiempo es una variable continua y por ello este tipo de señales están definidas para cualquier par de instantes de tiempo y para cualquier instante comprendido entre este par. Por otro lado, una señal de tiempo discreto x(k), solamente esta definida en ciertos instantes discretos de tiempo, de tal manera que entre cada instante de tiempo y el siguiente no esta definida la señal. Una señal de tiempo discreto también se puede representar como una lista o secuencia de números, denotado comúnmente como x(n).

Estos dos tipos de señales se relacionan de tal manera que podemos obtener una señal discreta al muestrear una señal continua. Esto se hace necesario ya que para que una señal pueda ser procesada digitalmente debe ser una señal digital y si la señal es continua se debe convertir a una señal digital mediante un proceso de muestreo (conversión a señal de tiempo discreto) y cuantización (conversión de su conjunto de valores a un conjunto finito).

lunes, 9 de abril de 2012

SUMATORIA DE FOURIER


Mediante el siguiente ejercicio plantearemos una función x(t) como una Sumatoria de Fourier y de esta manera afianzaremos mas los conceptos acerca de este tema.

Función:

x(t) = t  Desde -1 a 1

T=2 (Periodo)



Procedemos a realizar un código en matlab que resuelva la integral de la función x(k) y haga la sumatoria para un determinado número de k y que finalmente gráfique x(t) de tal manera que sea muy similar a la función x(t) original.

Código en Matlab:

clear all
clc
syms k
syms t

fxt=t; %Funcion x(t)=t
Ti=2; %Periodo de la función
w=(2*pi)/Ti;

fxki=fxt*exp(-1i*w*k*t);
fxk=(1/Ti)*int(fxki,-1,1);
disp(fxk); %Resultado de la funcion fxk

N=30; %Numero de sumatorias establecidas para la serie de Fourier
xt=0;

for kN=-N:1:N %Valor de K para cada evaluacion en N
  
    if kN==0
        xik=0; %Este valor se obtiene por L'Hopital ya que cuando k=0 se da una indeterminacion
    else
      xi=fxk*exp(1i*w*k*t);
      xik=subs(xi,k,kN);
    end
   
   disp(kN)
   disp(xik)
   xt=xt+xik; %Sumatoria de Fourier
end

disp(xt)%Resultado de x(t)

for ti=-2:0.005:2 %Intervalo de tiempo de la funcion
      xti=subs(xt,t,ti);
      plot(ti,xti)
      grid on
      hold on
      xlabel('Tiempo t')
      ylabel('Aproximación de x(t)')
      title('Sumatoria de Fourier para x(t)')     
end

Como resultado obtenemos la siguiente Sumatoria de Fourier que representa gráficamente la aproximación de la función x(t):


Este proceso toma un poco de tiempo por cuenta del programa, en mi caso alrededor de 5 minutos ya que se tiene que calcular la integral y luego evaluarla en cada uno de los valores que tomara la sumatoria de fourier asi que no nos queda mas remedio que esperar un poco.

GRÁFICA DE LA FUNCIÓN: X(W) = A*T*SIN((W*T)/2)


Una vez más seguiremos afianzando los conceptos aprendidos en el curso de sistemas y señales. En esta ocasión vamos a hacer un programa en Matlab para realizar 3 graficas de la siguiente función: 


x(w) = A*T*sin((w*T)/2)

Evaluada bajo las siguientes condiciones:
  1. A=1 y T=1
  2. A=1 y T=4
  3. A=1 y T=10
Procedemos a realizar el código de matlab  necesario para resolver este ejercicio:

Código en Matlab:

%Funcion: x(w)=A*T*sin((w*T)/2)

clc
clear all
format long

A=1;
w=-15:0.0001:15;

%Para A=1 y T=1

T=1;
xw=A*T*sin((w*T)/2);
subplot(3,1,1)
plot(w,xw,'g')
title('A=1 y T=1')
grid on
hold on
xlabel('w')
ylabel('x(w)')

%Para A=1 y T=4

T=4;
xw=A*T*sin((w*T)/2);
subplot(3,1,2)
plot(w,xw,'r')
title('A=1 y T=4')
grid on
hold on
xlabel('w')
ylabel('x(w)')

%Para A=1 y T=10

T=10;
xw=A*T*sin((w*T)/2);
subplot(3,1,3)
plot(w,xw,'b')
title('A=1 y T=10')
grid on
hold on
xlabel('w')
ylabel('x(w)')

Como resultado Obtenemos las siguientes gráficas: