Documentos de Académico
Documentos de Profesional
Documentos de Cultura
5.1 OBJETIVO
X e j x n e jn
(5.1)
n
1
x n x (e
j
)e jn d (5.2)
2
Por otro lado, la respuesta en frecuencia, X(ejΩ), que es la DTFT de x[n], toma valores
complejos y es una función periódica en Ω. El periodo es siempre 2 radianes y el intervalo
considerado normalmente se elige para que esté entre [-, ]. En el contexto de Octave, donde el
fin es evaluar la DTFT, presenta dos problemas.
L 1
X (e jk ) X (e j 2 k / K ) x n e j (2 k / N ) n para k =0,1,..., N-1 (5.3)
n 0
Cuando N=L, (5.3) calcula la DFT de N-puntos, pero por el momento ignoraremos la DFT
y nos concentraremos en el cálculo de las muestras de la DTFT.
una DFT de N-puntos. Cuando N < L el caso es mucho más molesto. La correcta aplicación de la
FFT en este caso requiere solapamiento temporal previo de n para el cálculo de la DFT de N
puntos. Por ahora, siempre debemos asegurarnos que el número de frecuencias de la DTFT que
estamos evaluando sea mayor o al menos igual que la longitud en el tiempo de la secuencia
original, es decir, N L.
Antes de comenzar es necesario comentar brevemente la diferencia que existe entre los
términos DFT y FFT. La FFT (Transformada Rápida de Fourier) es simplemente un algoritmo
que realiza de forma muy rápida el cálculo de la DFT y por lo tanto no se trata de una nueva
transformada. En Octave siempre se emplea la función fft para calcular la DFT. De forma análoga,
la función ifft siempre se emplea para calcular la DFT inversa.
5.5 ACTIVIDADES
En esta práctica se obtendrá la DTFT de las señales más habituales (pulsos, sinusoides,
exponenciales). Con Octave resulta sencillo representar gráficamente las señales y sus
transformadas; por lo tanto, nuestro objetivo se centra en visualizar un buen número de pares de
transformadas, prestando especial atención a las simetrías que puedan aparecer.
Ejercicio 5.1
Veamos en este ejercicio como se puede visualizar la Transformada de Fourier de una Señal
Discreta, que necesariamente debe ser calculada dentro de un conjunto finito de frecuencias.
(b) La siguiente instrucción nos permite calcular 128 valores de su Transformada de Fourier de
h[n]:
H=fft(h,128);
Para visualizar la transformada hay que tener en cuenta que el vector H contiene valores
complejos, por lo que tendremos que representar por separado su magnitud y su fase:
plot(2*pi*(0:127)/128, abs(H));
plot(2*pi*(0:127)/128, angle(H));
En el eje de las abcisas se incluyen las frecuencias en las que está evaluada la transformada,
mientras que en el eje de las ordenadas se coloca o bien la magnitud o la fase. El comando
plot()crea una curva continua, que no es más que la interpolación entre los valores
discretos(128 en este caso) de la transformada que han sido calculados. De esta manera se
obtiene una representacion de la transformada entre 0 y 2π.Compare los resultados obtenidos
con los de (a).
Otra función de Octave que nos permite obtener muestras de la Transformada de Fourier
de una señal es el comando freqz, con la ventaja de que permite trabajar con filtros IIR
(Respuesta Impulsional de Duración Infinita) que se pueden expresar de forma racional en el
dominio de la frecuencia.
Los filtros digitales son sistemas discretos, lineales e invariantes en el tiempo (SDLIT)
descritos por una ecuación en diferencias lineal con coeficientes constantes:
N M
a y n k b x n k
k 0
k
k 0
k (5.4)
b e k
jk
H e j k 0
N
(5.5)
a e
k 0
k
j k
H = freqz(b, a,128,"whole");
plot(2*pi*(0:127)/128, abs(H));
plot(2*pi*(0:127)/128, angle(H));
5.5.2 AUTOFUNCIONES
y n h k e j n k
H e j e jn (5.6)
k
Por lo tanto, la DTFT nos informa de como responde el sistema descrito por esa señal
para cada frecuencia de entrada, o lo que es lo mismo, nos aporta el contenido en frecuencia de la
señal, ya que con la ecuación de síntesis se puede reconstruir la señal con exponenciales
complejas, tal y como se describieron en (5.1) y (5.2).
Ejercicio 5.2
h[n]=0.03δ[n]+0.4δ[n−1]+0.54δ[n−2]+0.2δ[n−3]-0.2δ[n−4]+0.1δ[n−5]+0.2δ[n-6] (4.7)
jk n
Genere un conjunto de 10 exponenciales complejas con 48 puntos de longitud de la forma e
para las siguientes frecuencias discretas: Ωk= 2πk/10, k = 0, ....... ,9
omegak =(2*pi*(0:9))/10;
e1 = exp(j*omegak(1)*(0:47));
e2 = exp(j*omegak(2)*(0:47));
...
También se puede realizar un bucle for para generar estas diez señales, introduciéndolas como
filas o columnas de una matriz.
Calcule la salida del filtro para cada una de las exponenciales, convolucionando cada señal de
entrada con el filtro definido al inicio:
y1 = conv(e1,h);
y2 = conv(e2,h);
...
Superponer en la misma gráfica la entrada e1 y la salida y1:
plot(e1);
hold;
plot(y1);
hold;
Razonar el por que de la aparición de los efectos en los bordes. Repetir la operación para las
partes reales de e2 e y2, notando los efectos de borde de nuevo.
y n H e j e jn (5.7)
Ejercicio 5.3
plot(omegak,abs(Haprox));
Ese dibujo nos proporciona una aproximación a la magnitud de la respuesta en frecuencia del
sistema. Podemos superponer la respuesta en frecuencia evaluada en muchos más puntos, de la
forma:
hold;
H=fft(h,128);
plot(2*pi*(0:127)/128,abs(H));
Comprobar que, efectivamente, H es igual a la respuesta en frecuencia en las frecuencias
Ωk=2πk/10, k = 0, ....... ,9. Note la simetría de la representación, dado que estamos visualizando
la transformada en el intervalo [0, 2𝜋], y la magnitud es par (h[n] real).
5.5.3 SIMETRÍAS
Al tratar con simetrías en torno al origen, hay que insistir en que Octave considera que
las señales se inician en n = 0 a la hora de evaluar la correspondiente Transformada de Fourier.
Ejercicio 5.4
1 0 n L
x n (5.9)
0 otros
pulso = ...
H = fft(pulso,256);
# Para dibujar la magnitud
plot(2*pi*(0:255)/256,abs(H));
figure(1);
plot(2*pi*(0:255)/256,angle(H)); # Para dibujar la fase
Para vectores cuyo primer valor representa un instante de tiempo distinto del cero habría
que introducir una corrección.
Ejercicio 5.5
Escribir el código de una función que, utilizando la función fft(), calcule la Transformada de
Fourier de una señal discreta de la siguiente forma:
2 k
k , k 0,..., N 1
N
En general, podemos descomponer una señal compleja en parte real y parte imaginaria y
luego en parte par e impar:
x n xRe Par n xRe Impar n jxIm Par n jxIm Impar n (5.11)
en donde la parte par de una señal x[n] se define como (x[n]+x[-n])/2, y la parte impar como (x[n]-
x[-n])/2. Hay que tener en cuenta que aunque una señal sea la respuesta de un sistema causal, las
partes par e impar no lo son, debido a la simetría que presentan respecto al origen.
Ejercicio 5.6
Sea la descomposición vista anteriormente de una señal x[n]:
x n xRe Par n xRe Impar n jxIm Par n jxIm Impar n (5.12)
y de su transformada X(ejΩ )
Ejercicio 5.7
• Verificar que la transformada de la señal x[n]=(0.5)nsen(2πn/24), para 0 ≤ n < 32 es
conjugada simétrica, observando los diagramas de módulo y fase. Para observar el módulo,
utilizar la función plot() sobre el módulo de la salida que se obtiene de fft(), mientras
que para la fase utilizar simplemente plot()sobre la fase de la transformada,
análogamente a lo realizado en el primer ejercicio.
b e k
j k
H e j k 0
N
(5.14)
a e
k 0
k
j k
N M
ak y n k bk x n k
k 0 k 0
(5.15)
La función freqz nos permite calcular valores de este tipo de transformadas en una serie
de puntos, a través del cálculo de dos transformadas, una para el numerador y otra para el
denominador.
Ejercicio 5.8
b = [... ];
a = [... ];
[H,w] = freqz(b,a,512,"whole");
Tener en cuenta que b representa a los coeficientes de la parte directa del filtro, mientras que a
a los coeficientes de la parte realimentada.
La propiedad del enventanado explica cuál es la transformada del producto de dos señales
en el tiempo:
y n x n.w n Y e j X e W e d
1 j j
(5.17)
2
en donde el segundo miembro representa una convolución periódica. En una convolución de este
tipo se opera sobre señales periódicas. La integral se lleva a cabo sobre un intervalo de longitud
igual al periodo de las señales, siendo el resultado también periódico con el mismo periodo. De
alguna forma es la propiedad dual a la propiedad de la convolución, que nos relaciona una
convolución en el tiempo con un producto en el dominio transformado:
y n x n * h n Y e j X e j H e j (5.18)
al igual que ocurre en el caso continuo. Esta última propiedad no es más que una consecuencia
del hecho de que las exponenciales complejas son autofunciones de los sistemas LIT, por lo que
el peso que tienen a la salida de un sistema se ve afectado por el valor de la Transformada de
Fourier de la respuesta impulsional del sistema evaluada a esa frecuencia.
Volviendo con la propiedad del enventanado, cabe señalar que si se particulariza al caso
en el cual la ventana w[n] es una exponencial compleja nos encontramos con la propiedad de la
modulación:
de tan amplio uso en comunicaciones y radar. Esta propiedad es la dual a la propiedad del
desplazamiento temporal, que se traduce en un producto en frecuencia por una exponencial.
Ejercicio 5.9
Demostrar que la transformada de Fourier de la parte par de una señal real x[n] es la parte real
de la transformada de Fourier X(ejΩ). Evaluar, si x[n]=0, n < 0, entonces X(ejΩ) se puede obtener
a partir de Re{ X(ejΩ)}.
Ejercicio 5.10
Sea un pulso x[n] de longitud 21, que podría representar el resultado de muestrear un pulso
utilizado en radar (emplear la función ones()). Para enviarlo es necesario modularlo, de modo
que el espectro resultante se ubique en la frecuencia que interese. Dado que la señal a enviar
será real, la modulación se lleva a cabo con un coseno, que en este caso será cos(nπ/2).
Representar el espectro de las señales moduladas y sin modular, utilizado para ello las funciones
fft() y plot(), comprobando en donde se encuentra el pico de la transformada. Razonar la
forma del espectro.
Este ejercicio que se acaba de realizar se puede ver también desde la perspectiva del
enventanado, en la cual la ventana sería el pulso original, y la señal deseada la exponencial
compleja. Entonces, la multiplicación en el tiempo significa que las deltas originales en frecuencia
son ensanchadas debido a la convolución con la función sinc, transformada del pulso, como se
puede apreciar en la Fig. 5.1, que representa la transformada de un coseno de frecuencia 2π/8 y
longitud de 50 muestras. En frecuencia no hay dos deltas sino un par de sinc centradas a las
frecuencias 2π/8 y 2π - 2π/8. Existen muchísimos tipos de ventanas, cada una de las cuales con
propiedades diferentes. Acabamos de ver la más simple, la ventana rectangular, 1 en el intervalo
de definición y 0 fuera del mismo. También es posible el uso de otras ventanas que no son
constantes, sino que van disminuyendo su amplitud a medida que se alejan del punto
central. La ventaja principal que ofrecen frente a la rectangular es que los lóbulos laterales de sus
transformadas son mucho más pequeños que los de una sinc, con lo que esa caída más rápida en
frecuencia hace posible una menor distorsión del espectro original. Como inconveniente hay que
resaltar que la anchura del lóbulo central es mayor que la
2 n
0.54 0.46 cos 0n L
x n L (5.20)
0 otros
Ejercicio 5.11
En este ejercicio compararemos la magnitud del espectro de una ventana Hamming y de una
ventana rectangular de igual longitud, comentando las principales diferencias.
• Para ello, generar un pulso de 32 unos, y calcular con fft()128 puntos de su transformada.
• Utilizando la función hamming(), obtener una ventana de Hamming de 32 muestras,
visualizando su forma con plot(). Calcular 128 de su Transformada de Fourier.
• Representar los espectros superpuestos de ambas señales. Observar las diferencias en términos
de anchura del lóbulo principal y altura de lóbulos laterales.
• Razonar que ventana sería más apropiada si nuestro objetivo es distorsionar lo menos posible
el espectro de la señal enventanada.
• A modo de ejemplo de empleo de ambas ventanas, visualicemos el espectro de una señal
compuesta de dos tonos, uno de los cuales es mucho más potente que el otro:
x=cos(0.5*(0:31))+20*cos(1.5*(0:31));
figure(1)
plot(2*pi*(0:127)/128,abs(fft(x.*ones(1,32),128)));
figure(2)
plot(2*pi*(0:127)/128,abs(fft(x.*hamming(32)’,128)));
Observar que en el caso de la ventana de Hamming resulta mucho más fácil apreciar el tono de
menor intensidad en el espectro.
Ejercicio 5.12
Sea la señal h[n]=αnu[n] la respuesta impulsional de un sistema definido por la ecuación en
diferencias y[n] = αy[n-1] + x[n]. Por lo visto anteriormente podemos calcular valores de su
transformada exacta, utilizando la función freqz(). Obtener 512 de esos valores para α=0.5,
y compararlos con los valores obtenidos a partir de un registro finito de esa señal, es decir:
nu n 0 n L
htruncado n (4.21)
0 otros
para L=2, 4, 6, 8.
[H,w] = freqz(b,a,512,"whole");
# a,b representan los coeficientes de la ecuación en
# diferencias
plot(2*pi*(0:511)/512,abs(H));
Htrunc=fft(htrunc,512);
Hold on; plot(2*pi*(0:511)/512,abs(Htrunc));
Comprobar a partir de que longitud de la señal truncada la diferencia entre los espectros es
inapreciable.
Obtener la respuesta en frecuencia del resultado de poner en cascada el filtro anterior con el
filtro de respuesta al impulso h[n] = δ[n-1]. Determinar el valor de dicha respuesta en frecuencia
para Ω=π/4.
5.6 CUESTIONARIO
1.- Determinar la Transformada de Fourier para señales discretas de la siguiente secuencia:
a) x n 0.5n u n b) x[n]= {1, -2, 3, -4, 5, } c) x[n]= {…..0, 0, 1, -2, 3, -4, 5, 0, 0, … }
Luego evaluar para 512 puntos equiespaciados entre [0, π] y graficar la magnitud, ángulo, parte
real y parte imaginaria para cada uno de los casos a), b) y c).
n
j
2.- Sea x n 0.9e 8 , 0 ≤ n ≤ 10. Determine X e jw e investigue su periodicidad.
3.- Sea x n 2 , -10 ≤ n ≤ 10. Investigue la propiedad de la simetría conjugada de su
n
la secuencia x[n]= 0.1u[n]. Determine para este caso la respuesta en frecuencia en estado
estacionario.
5.- Un sistema discreto lineal e invariante en el tiempo está especificado por la siguiente ecuación
de diferencias:
y n 0.8 y n 1 x n
a) Determinar H e j