Beruflich Dokumente
Kultur Dokumente
1. Introduccin
Una seal analgica es una funcin continua (usualmente del tiempo, t) que representa
informacin, tal como una seal de voz, de presin arterial o ssmica. A fin de procesar esta
informacin con la computadora, la seal analgica puede muestrearse cada T segundos,
generando as una seal digital que es una sucesin de valores tomados de la seal analgica
original.
Representamos una seal digital que ha sido muestreada de una seal continua x(t)
usando la notacin
x[k] = x(kT)
Por lo general, se toma como tiempo cero el instante en que se comienza a obtener la
seal digital. As, la primera muestra de una seal digital usualmente se designa con x[0].
Por tanto, si una seal digital se muestrea a 10 Hz (10 veces por segundo), los primeros tres
valores de la seal digital corresponden a los siguientes valores de la seal analgica:
x[0] = x(0) = x(0.0)
x[1] = x(T) = x(0.1)
x[2] = x(2T) = x(0.2)
x(t)
x(kT)
t
0.1
0.2
0.3
0.4
kT
0.5
0.1
a) seal analgica
0.2
0.3
0.4
0.5
b) seal digital
TRANSFORMADA DE FOURIER
puntos conectados al eje horizontal mediante segmentos de lnea. El eje vertical se rotula
como x(kT) (o simplemente x[k]) para indicar que se trata de una seal digital.
En MATLAB, los ndices de un vector siempre comienzan con 1, como en x(1), x(2), etc.
Los ndices en una seal por lo regular comienzan con 0, como en g[0], g[1], etc. No obstante,
los ndices de una seal podran comenzar con cualquier valor, incluso uno negativo, como
en h[2], h[1], etc. Dado que muchas de las ecuaciones relacionadas con el procesamiento de
seales contienen estos diversos ndices posibles, nos gustara poder usar las ecuaciones sin
reescribirlas para ajustarlas a los ndices. En muchos casos esto puede lograrse asociando dos
vectores a una seal. Un vector contiene los valores de la seal, y el otro, los ndices asociados
a esos valores. As, si las seales g y h mencionadas al principio de este prrafo contienen 10
valores, los vectores g y h correspondientes tambin contienen 10 valores. Despus podemos
usar dos vectores adicionales, digamos kg y kh, para representar los ndices que corresponden
a los 10 valores de g y h. As, el vector kg contendra valores del 0 al 9; el vector kh contendra
valores de 2 a 7. La ventaja principal de usar estos vectores adicionales en MATLAB ser que
podremos usar las ecuaciones de procesamiento de seales sin tener que ajustar los ndices,
lo cual podra introducir errores.
TRANSFORMADA DE FOURIER
A = 3; phi = 0; f = 10;
T = 1/160; k = 0:63; t = k*T;
x = A*cos(2*pi*f*t + phi);
subplot(2,1,1), plot(t,x,-), title(Seal continua)
subplot(2,1,2), stem(t,x,.), title(Seal discreta)
TRANSFORMADA DE FOURIER
%
N
T
k
x
TRANSFORMADA DE FOURIER
Senoide de 20 Hz
1
x(kT)
0.5
0
0.5
1
0.05
0.1
0.15
0.2
0.25
0.3
kT (segundos)
0.35
0.4
0.45
0.5
Magnitud de X[k]
40
|X[k]|
30
20
10
0
10
15
20
25
30
35
k
Figura 3: Magnitud de X[k].
Observe el empleo de la funcin de graficacin llamada stem que genera una grfica de
puntos con lneas, o tallos, que conectan los puntos con el eje horizontal. En esta grfica,
puede verse que la componente de 20 Hz aparece en X[10] tal como se esperaba. En muchos
casos es deseable graficar la magnitud de X[k] usando una escala en Hz en lugar del ndice
k. En tal caso, la grfica de la magnitud de X[k], que se muestra en la Figura 4, se calcula con
las siguientes instrucciones:
TRANSFORMADA DE FOURIER
Magnitud de X[k]
40
|X[k]|
30
20
10
0
10
20
30
40
50
60
70
Hz
Figura 4: Magnitud de X[k] en Hz.
TRANSFORMADA DE FOURIER
Magnitud de X[k]
25
|X[k]|
20
15
10
5
0
10
20
30
40
50
60
70
Hz
Figura 5: Magnitud de X[k] en una seal con fugas.
Ambas figuras 4 y 5 contienen el espectro de frecuencia de una sola senoide, pero una
senoide cae exactamente en una posicin que corresponde a un punto de salida del algoritmo
FFT, y el otro no. Este es un ejemplo de fugas, que ocurren cuando una componente sinusoidal
no cae exactamente en uno de los puntos de salida de la FFT.
La funcin ifft calcula la transformada discreta de Fourier inversa para generar la seal x[k]
en el dominio del tiempo a partir de los valores complejos X[k] del dominio de la frecuencia:
ifft(X) calcula la seal de tiempo x a partir de sus valores de frecuencia X y
devuelve los valores en un vector del mismo tamao que X.
ifft(x,N) calcula la seal de tiempo x a partir de sus valores de frecuencia X
y devuelve los valores en un vector con N valores.
Se usa un algoritmo rpido (una adaptacin de la FFT) si el nmero de puntos de los
clculos es una potencia de 2. Si se usan dos argumentos de entrada y el nmero de valores
en X es menor que N, se anexarn ceros al final de la seal de frecuencia antes de calcularse
TRANSFORMADA DE FOURIER
los valores en el dominio del tiempo. Si el nmero de valores es mayor que N, se usarn los
primeros N valores de la seal de frecuencia para calcular los valores correspondientes del
dominio del tiempo.
En el siguiente ejemplo se calculan los valores de X[k] y luego se usa ifft para calcular
los valores de x[k] a partir de X[k]. El clculo final determina la suma de las diferencias entre
la seal original y la calculada por la funcin ifft:
f (t) = 2 sen(250t)
g(t) = cos(250t) sen(200t)
h(t) = 5 cos(1000t)
m(t) = 4 sen(250t /4)