Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCION
La nocin de seal es bastante amplia y aparece en
diferentes situaciones en las cuales ciertas cantidades
varan en el tiempo o el espacio de una magnitud fsica
o de otra naturaleza. Por tanto est ligada al concepto de
funcin.
2. CONCEPTOS BASICOS
2.1 . Definicin de seal
Por ejemplo:
>
>
>
>
f ( t +mT )= y ( t ) , m Z , t R
es una medida
La frecuencia
para indicar el nmero de repeticiones
de cualquier fenmeno o suceso
peridico en la unidad de tiempo, por
tanto
1
T
u (t)
y se define por
u ( t ) = 1 sit >0
0 sit <0
La funcin no est definida en t=0 y modela el
establecimiento instantneo de un rgimen constante,
por ejemplo la seal obtenida al cerrar un interruptor en
un instante dado y mantenerlo cerrado indefinidamente.
Tambin se le nota por
veces se le asigna
H ( 0 )=1/2
el valor
b) Seal rectangular
Es la seal, notada
r a ( t ) = 1 si|t |> a
0 si|t|< a
r a (t )
, definida por
Donde
a>0 dado.
Se representa mediante
x ( t )=asen (t +) donde
|a|=max|x ( t )| es la amplitud
es el pulso o velocidad angular
T=
1
T
t + es el ngulo de fase
es la fase inicial (cuando t=0)
(Ms til que conocer el ngulo de fase es el desfase o
diferencia de fase entre dos instantes)
Aunque los valores de una seal son, en principio,
nmeros reales y la frecuencia un nmero positivo, por
a = +
=arctan
x ( t )=acos ( t+ )
SERIES DE FOURIER
Fue el matemtico francs Joseph Fourier, a principios
del siglo XIX, quien encontr que una funcin peridica
T >0
t R f ( t +T )=f (t)
La funcin
funcin
p ( t )=
n=N
cn e
2 int /T
que
se
[ cn e
2 int /T
2 int /T
+ cn e
Este polinomio
p ( t ) =c 0+
n=1
( 2Tt )+b
2 t
[ sen (
]
T )
an cos
1
p (t )= a0 +
2
n=1
Donde si
n0
an=c n +c n
bn=i(c n cn)
E inversamente
c n=(anib n )/2
cn=(an +ib n)/2
, donde la relacin de
. Este
Evidentemente, si la funcin
en serie de
con perodo
se puede
mientras que
11
en un intervalo
son continuas
por tramos.
En MATLAB
Las frmulas con la que MATLAB calcula la
transformada rpida de Fourier Y=fft(x) y la
transformada
inversa
y=ifft(X)
son,
respectivamente:
N =exp
X ( k )= x ( j ) (Nj1 )( k1)
( 2Ni ) x ( j )= 1
j=1
N
x ( k ) N( j1) (k1 )
N
k=1
pasos
n log 2 (n) .
El
nico
n=length(x);
t=(0:n-1)*dt;
dw=2*pi/(n*dt);
w=(0:n-1)*dw;
g ()2
P=
Para ilustrar la aplicacin de la funcin fft de
MATLAB, vamos a analizar la seal formada
por la suma de cuatro armnicos de
frecuencias angulares =1, 3, 3.5, 4 y 6
rad/s
x(t)=cos(t)+0.5cos(3t)+0.4cos(3.5t)
+0.7cos(4t)+0.2cos(6t)
Recurdese que la transformada de
Fourier de f(t)=cos(0t) es F()=[(0)+(+0)]. Dos funciones delta de
Dirac situados en +0 y en -0.
Creamos el script fft_6 para realizar las
siguientes tareas:
Construir una serie temporal (x,t) formada
por n=214=16384 pares de datos, tomando
un intervalo de tiempo t=0.4 s, o bien una
frecuencia de muestreo de fs=2.5 Hz. El
tiempo final es tfinal=163830.4=6553.2 s
Calcular la transformada rpida de Fourier fft
y la guardamos en el vector g
%serie temporal
n=2^14;
dt=0.4;
t=(0:n-1)*dt; %vector de tiempos
x=cos(t)+0.5*cos(3*t)+0.4*cos(3.5*t)+0.7*cos(4*t)+0.
%amplitud-fase vs. frecuencias
g=fft(x);
power=abs(g).^2;
dw=2*pi/(n*dt);
w=(0:n-1)*dw; %vector de frecuencias angulares
plot(w,power)
xlabel('\omega')
ylabel('P(\omega)')
title('Espectro de potencia')
g=fftshift(y);
power=abs(g).^2;
dw=2*pi/(n*dt);
w=(-n/2:n/2-1)*dw;
plot(w,power)
As pues, solamente la primera mitad de la
ventana grfica muestra los picos de
frecuencias
correctas,
la
otra
mitad
corresponde a las frecuencias negativas.
Solamente
podemos
detectar
los
componentes de frecuencia que son
menores que c=/t=fs. Esta frecuencia
lmite se denomina frecuencia crtica o
frecuencia de Nyquist. En el ejemplo
anterior, c=7.85 rad/s. Luego, todas las
frecuencias de los armnicos componentes
de la seal, =1, 3, 3.5, 4 y 6 rad/s son
detectadas.
plot(w,power)
xlim([0 wc])
Si queremos distinguir entre dos frecuencias
1y 2en el espectro es necesario que
<<|1-2| sea pequeo por lo que el
tiempo total de muestreo de la seal nt
deber ser grande. Si queremos que
frecuencia crtica csea grande entonces t
tendr que ser pequeo o la frecuencia de
muestreo fs grande. En cualquier caso,
tendremos que procesar muchsimos datos
n.
Efecto de la frecuencia de muestreo fs
Supongamos la siguiente
transformada de Fourier
funcin
su
f ( t )=texp (t )
+
F ( )= texp(at)dt=
0
1
1
1
1
t + exp (at ) 0 = 2 =
2
a
a
a (1+i)
( )
subplot(2,1,1)
tt=0:0.05:8;
xx=tt.*exp(-tt);
plot(tt,xx,'b',t,x,'ro','markersize',4,'markeredgecolor','r','mark
xlabel('t')
ylabel('x')
title('f(t)')
subplot(2,1,2)
wc=pi*fs; %frecuencia lmite de Nyquist
ww=-4*pi:0.1:4*pi;
Fw=1./(1+i*ww).^2;
%transformada rpida de Fourier
y=fft(x,n);
g=fftshift(y);
dw=2*pi/(n*dt);
w=(-n/2:n/2-1)*dw;
plot(ww,abs(Fw),'b',w,abs(g)/fs,'ro','markersize',4,'markeredg
erfacecolor','r')
set(gca,'XTick',-4*pi:2*pi:4*pi)
set(gca,'XTickLabel',{'-4pi','-2pi','0','2pi','4pi'})
xlim([-4*pi,4*pi])
xlabel('\omega')
ylabel('|F(w)|')
title('Transformada')
Funcin de Gauss
f ( t )=exp
( tt 0 )2
2 2
cos ( 0 t )
( 0 )
2
La transformada de Fourier no se ve
afectada por la posicin del centro del pulso
t0.
+ 2 exp (
t0=8;
w0=10;
s2=5;
t=0:0.05:16;
f=@(t) exp(-(t-t0).^2/(2*s2)).*cos(w0*t);
subplot(2,1,1)
hold on
plot(t,f(t),'b')
fs=8;
n=128;
dt=1/fs;
t=(0:n-1)*dt;
ft=f(t);
plot(t,ft,'ro','markersize',2,'markeredgecolor','r','markerfaceco
hold off
grid on
xlabel('t')
ylabel('f(t)')
title('Funcin')
subplot(2,1,2)
hold on
wc=pi*fs; %frecuencia lmite de Nyquist
w=-wc:0.1:wc;
Fw=sqrt(2*pi*s2)*exp(-1i*w*t0).*(exp(1i*w0*t0)*exp(-(w-w0)
exp(-1i*w0*t0)*exp(-(w+w0).^2*s2/2))/2;
%transformada rpida de Fourier
y=fft(ft,n);
g=fftshift(y);
dw=2*pi/(n*dt);
ww=(-n/2:n/2-1)*dw;
En Audacity
EJERCICIO 1
>> Tinicial=0;
% Definimos el tiemp
>> Tfinal=0.25;
% Definimos el tiemp
>> step=0.001;
% Definimos el paso e
tiempo
>> t=Tinicial:step:Tfinalstep;
% Se genera el vector
>> y=1*sin(5*2*pi*t);
% Se genera y
% Dibujamos y
>> plot(t,y,*);
Por tanto, siendo estrictos, en MATLAB toda seal es discreta en tiempo, mientras que en amplitud puede ser discreta (cuantizada) o continua (aunque limitada por la precisin de los tipos numricos). No obstante, si los intervalos
temporales entre valores son suficientemente pequeos y el rango temporal en
el que se define la seal es suficientemente amplio, la secuencia de valores
empleada para representar la seal y las operaciones realizadas para su anlisis
proporcionan una buena aproximacin a los resultados tericos. En el caso ms
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 discretizacin de seales (utilizaremos intervalos de
tiempo sufi-cientemente pequeos, de modo que los efectos sean
despreciables). Asimismo, la amplitud de las seales est sometida a una
discretizacin que, dada la pre-cisin de los tipos numricos empleados en
MATLAB, podemos ignorar.
Seales especiales.
SEAL
ESCALN
t=-10:0.01:10;
>
f_escalon=[zeros(1,1000),ones(1,1001)];
>
plot(t,f_escalon);
SEAL
PULSO
t=-10:0.01:10;
>
f_pulso=[zeros(1,950),ones(1,101),zeros(1,950)];
>
plot(t,f_pulso);
SEAL
SAMPLING
>>
f_sampling=sin(t)./t;
>> plot(t,f_sampling);
f_sinc=sinc(t);
>
plot(t,f_sinc);
SEAL
t=-10:0.01:10;
>
f_impulso=[zeros(1,1000),1,zeros(1,1000)];
>
plot(t,f_impulso);
SEAL
DIENTE DE SIERRA
m ximo.
t=-10:0.01:10;
>
width=0.10;
>
f_sierra=sawtooth(2*pi*0.1*t,width);
>
plot(t,f_sierra);
SEAL
TRIANGULAR
SEAL
EXPONENCIAL
tau=200e-2;
>
f_expon=exp(-t/tau);
>
plot(t,f_expon);
SEAL
CUADRADA
Anlisis de Fourier
Las series de Fourier permiten describir seales peridicas como una combinacin de seales armnicas (sinusoides). Con esta herramienta, podemos analizar una seal peridica en trminos de su contenido frecuencial o espectro.
Adems, 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
fcilmente los coeficientes de Fourier correspondientes a una seal. 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 coeficientes espectrales de la seal. La grfica de esos coeficientes en funcin del
ndice armnico n o de las frecuencias no se denomina espectro. Hay dos
tipos de grficos, uno con la magnitud de los coeficientes y otro de la fase.
Ambas funciones son discretas en frecuencia.
Ejercicio 2
Ejercicio 3
for k=1:size(t,2)
st(k)=sum(s(:,
k));
end
2. Anlisis de Fourier
st(1)=st(1)+1;
plot(t,st,'r
'); hold
on;
% Seal 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 anlisis de Fourier de funciones definidas por un conjunto de
valores discretos. Por ejemplo, el comando fft() nos permite obtener la
transformada rpida de Fourier (fast Fourier Transform) de una secuencia
de nmeros definida por el vector x. Por ejemplo:
>> X=fft(x);
donde X es un vector de nmeros complejos ordenados desde k=0...N-1. Si
queremos que sea ms eficiente en el clculo 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 automticamente
haciendo:
>> X=fft(x,N);
donde N es exponente de 2. Mientras ms largo sea x, ms fina ser la
escala para la ffT. Debido a un fenmeno de plegamiento del espectro, slo
la primera mitad de los puntos obtenidos son de utilidad. La funcin
fftshift() reordena el vector X en orden creciente de frecuencia. Si X es el
vector resultante de hacer una ffT, utilizando esta funcin reordenamos los
puntos en funcin de la fre-cuencia.
>> X=fftshift(X);
Ejercicio 4
en
el
tiempo
plot(t,x); title('x(t)=exp(2t)sin(2pi200t)');
xlabel('Tiempo
(t)');ylabel('x(t)');
% Transformada
X=fftshift(fft(x));
de
Fourier
% Base de frecuencias
Fsica de las Comunicaciones
Electrnica y
Electromagnetismo
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('Mdulo 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)');
Ejercicio 5
% Definicion de la seal
t=-0.25:0.001:0.25;
x=exp(2*t).*sin(2*pi*3*t);
xlabel('Tiempo (t)');ylabel('xrec(t)');
Producto de Convolucin
La convolucin es una potente herramienta matemtica utilizada en el procesado de seales. 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, tambin se puede aplicar a dos seales arbitrarias. La convolucin de f y g se denota por f*g y se define como la integral del producto de
ambas funciones despus de que una sea invertida y desplazada. En MATLAB
contamos con la funcin conv() que realiza la la convolucin de los vectores x
y
y=conv(x,h);
Ejercicio 6
subplot(3,1,1);
plot(t,g_escalon);
title('SEAL ESCALON');
xlabel('Tiempo
(t)');ylabel('e(t)');
subplot(3,1,2);
plot(t,g);
title('cos(2pit)');
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)');
ANEXOS
100 veces ms rpido que lo que permita la FFT. Esta velocidad es posible
porque la informacin que ms nos importa es muy estructurada: la msica no
es un ruido aleatorio. Las seales con sentido suelen tener solo una fraccin de
los posibles valores que podra tener una seal. El trmino tcnico para esto es
que la informacin es dispersa. Puesto que el algoritmo SFT no est diseado
para funcionar con cualquier flujo de datos, puede tomar determinados atajos
que de otra forma no estaran disponibles. En teora, un algoritmo capaz de
manejar solo seales dispersas es mucho ms limitado que la FFT. Pero la
dispersin est en todas partes, seala el coinventor Katabi, profesor de
ingeniera elctrica e informtica. Est en la naturaleza, en las seales de
vdeo, en las seales de audio, afirma Katabi.