Está en la página 1de 14

4 La Transformada de Fourier

4.1 Resumen
En la teorı́a de sistemas lineales es fundamental la representación de una señal en términos de
sinusoides o exponenciales complejas. Ello es debido a que una exponencial compleja es una
autofunción de cualquier sistema lineal e invariante con el tiempo, mientras que la respuesta
a una sinusoide es otra sinusoide de la misma frecuencia, con fase y amplitud determinadas
por el sistema. De este modo, la representación en frecuencia de la señales, a través de la
Transformada de Fourier, resulta imprescindible para analizar las señales y los sistemas.

Objetivo: Familiarizarse con la Transformada de Fourier: su significado, sus propiedades, y


su manejo. Se introducirán diversas funciones para calcular y visualizar la Transformada de
Fourier en sus diversos aspectos, que serán de gran utilidad a lo largo del resto del curso.

Duración: Dos sesiones de 2 horas

4.2 Introducción teórica


Al igual que ocurre en el caso continuo, el concepto del dominio de la frecuencia es fundamental
para entender las señales discretas y el comportamiento de los sistemas LIT. El espectro de una
señal nos enseña cómo es esa señal en el dominio frecuencial; la respuesta en frecuencia de un
sistema nos aporta el conocimiento de como se comporta ese sistema para diferentes entradas,
gracias a la perspectiva que aporta el dominio de la frecuencia.

4.2.1 Cálculo de la transformada


La transformada de Fourier de una señal discreta (DTFT) es una señal periódica de perı́odo
2π. Ası́, la ecuación de sı́ntesis de x[n] a partir de su transformada se puede ver como el cálculo
de los coeficientes de la serie de Fourier de la señal periódica X(ejω ), mientras que la ecuación
de análisis refleja el desarrollo en serie de la transformada en función de los coeficientes x[n].
A la hora de plantear la DTFT computacionalmente cabe hablar de dos problemas: la transfor-
mada de señales infinitas, y el hecho de que la transformada es continua, cuando sólo podemos
trabajar de forma discreta. Ante el primer problema sólo cabe decir que se podrá evaluar la
transformada de señales infinitas cuando esta se pueda representar analı́ticamente. En cuanto
a la naturaleza discreta de los cálculos, aunque la transformada es continua sólo podremos

47
4.2. INTRODUCCIÓN TEÓRICA PRÁCTICA 4. LA TRANSFORMADA DE FOURIER

obtener muestras de la misma, que pueden constituir una buena aproximación si se toman su-
ficientes (el concepto de suficiencia quedará más claro más adelante en el curso). La función fft
calcula la transformada de Fourier de una señal finita en el número de puntos equiespaciados
especificado en la llamada a la función.

 Ejercicio 19 Veamos en este ejercicio como se puede visualizar la transformada de Fou-


rier de una señal discreta, que necesariamente debe ser calculada en un conjunto finito de
frecuencias. Ası́, sea la señal
h[n] = δ[n] + 0.5δ[n − 1] + 0.2δ[n − 2]
La siguiente instrucción nos permite calcular 128 valores de su transformada de Fourier:
>> H=fft(h,128);
El vector H recoge los valores de la función H(ejω ) en las siguientes frecuencias:

2πk
ωk = , k = 0, · · · , 127
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 abcisas se incluyen las frecuencias a las que está evaluada la transformada,
mientras que en el eje de ordenadas se coloca o bien la magnitud o bien 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
representación de la transformada entre 0 y 2π.

¡¡¡IMPORTANTE!!!: Acudir a este ejercicio cada vez que tengáis dudas acerca de como re-
presentar la transformada de Fourier de una señal.

Otra función de Matlab que nos permite obtener muestras de la Transformada de Fourier de
una señal es freqz, con la ventaja añadida 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. En la sección de descripción de funciones utilizadas, al final de esta práctica, vemos
cómo se aplica: en la llamada a la función se especifican los coeficientes del filtro, ası́ como el
número deseado de puntos de su transformada, como se puede comprobar con un help freqz en
Matlab.

 Cuestión 8 Los filtros digitales son sistemas LIT descritos por una ecuación en diferencias
lineal con coeficientes constantes:
N
X M
X
ak y[n − k] = bk x[n − k]
k=0 k=0

48
PRÁCTICA 4. LA TRANSFORMADA DE FOURIER 4.2. INTRODUCCIÓN TEÓRICA

Utilizando las propiedades de desplazamiento y linealidad de la transformada de Fourier, de-


muestre que la respuesta en frecuencia de un sistema LIT descrito por una ecuación en dife-
rencias con coeficientes constantes puede expresarse como:
M
bk e−jωk
P
k=0
H(ejω ) = N
P
ak e−jωk
k=0

Si necesitamos representar una respuesta en frecuencia de un filtro expresado de esta forma,


haremos:

>> H = freqz(b,a,128,"whole");
>> plot(2*pi*(0:127)/128,abs(H));
>> plot(2*pi*(0:127)/128,angle(H));

4.2.2 Autofunciones
El concepto de autofunción de un sistema LIT es la base para comprender su respuesta en
frecuencia. Ası́, para un sistema con respuesta impulsional h[n], la salida ante una exponencial
compleja de la forma ejω0 n será

X
y[n] = h[k]ejω0 (n−k) = H(ejω0 )ejω0 n (4.1)
k=−∞

Un sistema LIT tiene como autofunciones el conjunto de exponenciales complejas de la forma


z0n , que sólo se ven modificadas a su paso por el sistema por una constante compleja. En el caso
de z0 = ejω0 , esa constante es el valor de la respuesta en frecuencia (transformada de Fourier
de la respuesta impulsional) a la frecuencia ω0 .

Por tanto, la Transformada de Fourier de una señal 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 describe a continuación:

X
X(ejω ) = x[n]e−jωn (4.2)
n=−∞
Z π
1
x[n] = X(ejω )ejωn dω (4.3)
2π −π

49
4.2. INTRODUCCIÓN TEÓRICA PRÁCTICA 4. LA TRANSFORMADA DE FOURIER

 Ejercicio 20 En este ejercicio se va a identificar la respuesta en frecuencia de un sistema


(la Transformada de Fourier de su respuesta al impulso) a determinadas frecuencias. Para ello,
sólo podemos introducir señales a su entrada y observar lo que ocurre a su salida.

Utilizaremos exponenciales complejas como entradas, dado su carácter de autofunciones. Ob-


servando la salida, podremos obtener información sobre como se comporta el sistema para cada
frecuencia de interés. Ası́, considerar el sistema con respuesta impulsional

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.4)

Para definir la respuesta impulsional, basta con efectuar en Matlab

>> h=[0.03 0.4 0.54 0.2 -0.2 0.1 0.2]

Generar un conjunto de 10 exponenciales complejas con 48 puntos de longitud de la forma


jωk n
e , para las siguientes frecuencias discretas: ωk = 2πk/10, k = 0, · · · , 9:

>> omegas =(2*pi*(0:9))/10;


>> e1 = exp(j*omegas(1)*(0:47));
>> e2 = exp(j*omegas(2)*(0:47));
>> ...

También se puede realizar un bucle for para la generación de esas diez señales, introdu-
ciéndolas como filas o columnas de un matriz.

Calcular la salida del filtro para cada una de las exponenciales, convolucionando cada señal
de entrada con el filtro definido al comienzo:

>> 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 porqué de la aparición de los efectos en los bordes. Repetir la operación para las
partes reales de e2 y de y2, notando los efectos de borde de nuevo.

NOTA: No tratar de representar las exponenciales complejas directamente, sino


sus partes reales (o imaginarias).

50
PRÁCTICA 4. LA TRANSFORMADA DE FOURIER 4.2. INTRODUCCIÓN TEÓRICA

En el ejercicio anterior la fase y amplitud de la señal de salida son diferentes a las de la señal de
entrada. Esa diferencia viene determinada por la respuesta en frecuencia para ω = omegas(2).
Por tanto, sabiendo que la señal de salida es en cada caso la señal de entrada multiplicada por
la respuesta en frecuencia evaluada a esa frecuencia:
y[n] = H(ejω0 )ejω0 n (4.5)
se propone el siguiente ejercicio, consistente en evaluar la respuesta en frecuencia del sistema
para cada una de las diez frecuencias estudiadas anteriormente. Para ello, pensar que el vector
de salida es igual al vector de entrada multiplicado por un escalar complejo para casi todos
los instantes (excepto en los bordes), con lo que una simple división en un instante apropiado
nos dará el valor de dicho escalar. (¡¡¡ NO TRATAR DE HACER UNA DIVISIÓN DE
VECTORES!!!)

 Ejercicio 21 Construir un vector Haprox a partir de esos 10 valores, y visualizar un dibujo


aproximado de la transformada de Fourier de h de la forma:

>> plot(omegas,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 a las frecuencias


ωk = 2πk/10, k = 0, · · · , 9. Notar la simetrı́a de la representación, dado que estamos visuali-
zando la transformada en el intervalo [0, 2π), y la magnitud es par (h[n] real).

4.2.3 Simetrı́as
A la hora de trabajar con simetrı́as en torno al origen, hay que insistir en que Matlab considera
que las señales comienzan en n = 0 a la hora de evaluar su transformada de Fourier.
 Ejercicio 22 Considerar el pulso rectangular de anchura L definido como

1 0≤n<L
x[n] = (4.6)
0 resto
Obtener la expresión analı́tica de su transformada de Fourier a partir de la ecuación (4.2).
Observar en la ecuación resultante el término de fase debido a que el pulso está centrado en
(L − 1)/2.

Utilizando la función fft(), obtener 256 puntos de la transformada de un pulso de longitud


L = 16. Dibujar en diagramas separados el módulo y la fase, razonando su forma en base al
cálculo analı́tico de la transformada realizado anteriormente:

51
4.2. INTRODUCCIÓN TEÓRICA PRÁCTICA 4. LA TRANSFORMADA DE FOURIER

>> pulso = ...


>> H = fft(pulso,256);
>> plot(2*pi*(0:255)/256,abs(H)); % Para dibujar la magnitud
>> figure(1);
>> plot(2*pi*(0:255)/256,angle(H)); % Para dibujar la fase

• Calcular teóricamente las frecuencias a las cuales se hace 0 la transformada, en función


de L.

• Razonar para qué valores de frecuencia se producen las discontinuidades en la fase.

• Para L = 9, pensar qué desplazamiento deberı́a sufrir el pulso definido anteriormente


para que el espectro de la señal resultante fuese real. ¿Es causal el sistema resultante
representado por esa respuesta impulsional?

Para vectores cuyo primer valor represente un instante de tiempo distinto del cero habrá que
introducir una corrección:

 Ejercicio 23 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:

function [H,w] = dtft(h,no,N)


% h: vector de entrada
% no: instante de tiempo en el cual comienza h
% N: numero de puntos a calcular de la transformada de h
% H: vector de la transformada de Fourier de H
% w: frecuencias en las que se evalua la transformada

Para realizar la función hay que tener en cuenta la propiedad del desplazamiento de la trans-
formada de Fourier, bajo la cual un desplazamiento en el tiempo equivale a un desplazamiento
en frecuencia:
x[n − n0 ] −→ e−jωn0 X(ejω ) (4.7)
Tener en cuenta que la función fft() considera el instante de comienzo de la señal en n0 = 0.
Recordar además que los valores de las frecuencias en los cuales la función fft() calcula la
transformada vienen dados por:

2πk
ωk = , k = 0, · · · , N − 1
N

en donde N es el número de valores que se calculan de la transformada de Fourier, que como


se puede apreciar, están equiespaciados entre 0 y 2π. Efectuar el producto punto a punto entre
dos vectores de tal modo que los dos sean filas o columnas. De lo contrario se obtendrá un error
de no correspondencia entre matrices.

52
PRÁCTICA 4. LA TRANSFORMADA DE FOURIER 4.2. INTRODUCCIÓN TEÓRICA

A fin de probar la función, calcular la transformada de Fourier de un pulso rectangular de


longitud 9 y centrado en el 0, comprobando que la parte imaginaria de su transformada es
0. Representar la parte real de dicha transformada. Razonar la forma de la transformada de
Fourier del pulso entre −L/2 y L/2 a medida que L tiende a ∞.

En general, podemos descomponer una señal compleja en su parte real y su parte imaginaria,
y a su vez cada una de ellas en parte par e impar:

x[n] = xrealpar [n] + xrealimpar [n] + j ximagpar [n] + j ximagimpar [n] (4.8)

en donde la parte par de una señal z[n] se define como (z[n] + z[−n])/2, y la parte impar como
(z[n] − z[−n])/2. Hay que tener en cuenta que aunque una señal sea la respuesta de un sistema
causal, sus partes par e impar no, debido a la simetrı́a que presentan respecto al origen.

 Cuestión 9 Sea la descomposición vista anteriormente de una señal x[n]

x[n] = xrealpar [n] + xrealimpar [n] + j ximagpar [n] + j ximagimpar [n] (4.9)

y de su transformada X(ejω )

X(ejω ) = Xrealpar (ejω ) + Xrealimpar (ejω ) + j Ximagpar (ejω ) + j Ximagimpar (ejω ) (4.10)

Asociar las componentes temporales con sus respectivas componentes espectrales.

Ahora podemos utilizar la función recientemente construida en el ejercicio 4.4 para constatar
las propiedades de simetrı́a de la transformada de Fourier, que de forma resumida son:

• La transformada de x∗ [n] es X ∗ (e−jω ).

• La transformada de una señal real es conjugada simétrica, es decir, el módulo es par y la


fase impar.

• La transformada de una señal imaginaria pura es conjugada antisimétrica, es decir,


X(ejω ) = −X ∗ (e−jω )

 Ejercicio 24 • Verificar que la transformada de la señal x[n] = (0.5)n sin(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.
2
• Comprobar que la transformada de la señal chirp x[n] = ej2πn /25 para −16 ≤ n ≤ 16 es
par, usando la función dtft() desarrollada en el ejercicio anterior.

53
4.2. INTRODUCCIÓN TEÓRICA PRÁCTICA 4. LA TRANSFORMADA DE FOURIER

4.2.4 Señales de duración infinita


Un grupo muy útil de transformadas es aquel que procede de los sistemas descritos mediante
ecuaciones en diferencias , que dan lugar a respuestas impulsionales que son combinaciones de
exponenciales, y que se corresponden con transformadas racionales en ejω . Dichas transforma-
das son de la forma:
PM −jωk
jω k=0 bk e
H(e ) = PN (4.11)
−jωk
k=0 ak e

que se corresponden con sistemas de la forma:


N
X M
X
ak y[n − k] = bk x[n − k] (4.12)
k=0 k=0

La función freqz nos permite calcular valores de ese 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 25 Sea el sistema LIT descrito mediante la ecuación en diferencias siguiente:


1
y[n] = y[n − 1] + x[n] + x[n − 1] (4.13)
2
Utilizar la función freqz() para obtener una representación en frecuencia de la respuesta
impulsional del sistema, en 512 valores entre 0 y 2π:

>> b = [... ];
>> a = [... ];
>> [H,w] = freqz(b,a,512,"whole");

Tener en cuenta que b representa los coeficientes de la parte directa del filtro, mientras que
a los de la parte realimentada.

• Averiguar a qué frecuencia se hace 0 la respuesta en frecuencia del sistema.

• A partir de esa frecuencia, deducir para qué señal de entrada se hará 0 la salida (dicha
señal ha de ser una autofunción).

• Razonar en el dominio del tiempo, y para dicha señal de entrada, por qué la salida es 0,
evaluando manualmente un par de recursiones de la ecuación en diferencias.

4.2.5 Otras propiedades de la Transformada de Fourier


La propiedad de enventanado explica cuál es la transformada del producto de dos señales en
el tiempo: Z π
jω 1
y[n] = x[n] · w[n] −→ Y (e ) = X(ejθ )W (ej(ω−θ) )dθ (4.14)
2π −π

54
PRÁCTICA 4. LA TRANSFORMADA DE FOURIER 4.2. INTRODUCCIÓN TEÓRICA

en donde el segundo miembro representa una convolución periódica. En una convolución de ese
tipo se opera sobre señales periódicas. La integral se lleva a cabo sobre un intervalo de longitud
igual al perı́odo de las señales, siendo el resultado también periódico con el mismo perı́odo. 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 (ejω ) = X(ejω )H(ejω ) (4.15)

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, con 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 de enventanado, cabe decir que si se particulariza al caso en
el que la ventana w[n] es una exponencial compleja nos encontramos con la propiedad de la
modulación :
y[n] = x[n] · ejω0 n −→ Y (ejω ) = X(ej(ω−ω0 ) ) (4.16)
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.

 Cuestión 10 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ω ). Razonar que si x[n] = 0, n < 0,
entonces X(ejω ) se puede obtener a partir de Re {X(ejω )}.

 Ejercicio 26 Sea un pulso x[n] de longitud 21, que podrı́a representar el resultado de mues-
trear un pulso utilizado en radar (emplear la función ones()). Para enviarlo es necesario mo-
dularlo, de modo que el espectro resultante se sitúe 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 transfor-
mada. Razonar la forma del espectro.

Este ejercicio que acabamos de realizar se puede ver también desde la perspectiva del enventa-
nado, 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 sinc, transformada del pulso, como se puede apre-
ciar en la siguiente figura, que representa la transformada de un coseno de frecuencia 2π/8 y
longitud 50 muestras. En frecuencia no hay dos deltas sino un par de sincs 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
centra. 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 incoveniente hay

55
4.2. INTRODUCCIÓN TEÓRICA PRÁCTICA 4. LA TRANSFORMADA DE FOURIER

30

25

magnitud de la transformada
20

15

10

0
0 50 100 150 200 250 300 350 400 450 500
512 frecuencias entre 0 y 2pi

que resaltar que la anchura del lóbulo central es mayor que la correspondiente a una sinc. A
modo de ejemplo ponemos la ecuación de la ventana de Hamming, de uso muy extendido:

0.54 − 0.46cos( 2πn



L
) 0≤n≤L
x[n] = (4.17)
0 resto

 Ejercicio 27 En este ejercicio compararemos la magnitud del espectro de una ventana


Hamming y de una ventana rectangular de igual longitud, comentando las principales dife-
rencias.

• Para ello, generar un pulso de 32 unos, y calcular con fft() 128 puntos de su transfor-
mada.

• 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 qué 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(0)
>> plot(2*pi*(0:127)/128,abs(fft(x.*ones(1,32),128)));
>> figure(1)
>> plot(2*pi*(0:127)/128,abs(fft(x.*hamming(32)’,128)));

56
PRÁCTICA 4. LA TRANSFORMADA DE FOURIER 4.3.

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.

La propiedad de enventanado se puede utilizar para analizar el efecto de la toma de registros


finitos de señales de longitud infinita. Es decir, se puede pensar en considerar la señal original
multiplicada por una ventana de longitud igual a la duración del intervalo considerado, como
se verá en el siguiente ejercicio.

 Ejercicio 28 Sea la señal h[n] = αn u[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 a = 0.5, y compararlos con los valores obtenidos a partir de un registro finito de
esa señal, es decir:  n
α u[n] 0 ≤ n < L
htrunc[n] = (4.18)
0 resto
para L=2, 4, 6, 8.

>> [H,w] = freqz(b,a,512,"whole");


% a, b representan los coeficientes de la ecuacion en diferencias
>> plot(2*pi*(0:511)/512,abs(H));
>> Htrunc=fft(htrunc,512);
>> hold
>> plot(2*pi*(0:511)/512,abs(Htrunc));

Comprobar a partir de qué 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.

4.3 Dudas más comunes


• P: Quiero que dejen de superponerse las gráficas en una misma figura.
R: Hay que teclear hold off.

• P: Matlab no encuentra la función que he creado.


R: Hacer ls para comprobar si se encuentra en ese directorio. Si no es ası́, cambiar al
directorio correcto.

• P: Al representar en pantalla la transformada de Fourier de una señal, aparece una curva


muy rara.
R: Seguramente no estáis representando la magnitud de la transformada, sino que estáis
tratando de representar un vector complejo frente al eje de frecuencias.

57
4.4. PRÁCTICA 4. LA TRANSFORMADA DE FOURIER

4.4 Descripción funciones utilizadas


A continuación se describen algunas de las funciones utilizadas a lo largo de esta práctica, y
que se seguirán empleando en lo que resta de curso.

La función fft() evalúa la transformada de una secuencia discreta en un número de puntos


equiespaciados entre 0 y 2π:

fft (X [, N]): fast fourier transform of a vector

La función filter() filtra una señal de entrada a través de un sistema definido por una
ecuación en diferencias, el cual viene especificado a partir de sus coeficientes de la parte directa
y de la parte realimentada. Calcula tantas muestras de salida como longitud tenga la entrada:

function [y [,sf]] = filter(b,a,x [,si])

Filter a vector.
y = filter(b,a,x) returns the solution to the following linear,
time-invariant difference equation:

N M
sum a(k+1) y[n-k]= sum b(k+1) x[n-k] = 0 for 1<=n<=length(x)
k=0 k=0

where N=length(a)-1 and M=length(b)-1.

[y, sf] = filter(b,a,x,si) sets the initial state of the system, si,
and returns the final state, sf. The state vector is a column vector
whose length is equal to the length of the longest coefficient vector
minus one. If si is not set, the initial state vector is set to all
zeros.

The particular algorithm employed is known as a transposed Direct


Form II implementation.

La función freqz() evalúa la respuesta en frecuencia de un sistema que viene definido por
una ecuación en diferencias. Permite de esta forma evaluar la transformada de respuestas
impulsionales de duración infinita, cuando estas se corresponden con sistemas racionales, o lo
que es lo mismo, definidos por ecuaciones en diferencias. Permite calcular la respuesta entre 0
y π o entre 0 y 2π:

58
PRÁCTICA 4. LA TRANSFORMADA DE FOURIER 4.5.

function [H, w] = freqz(b,...)

Computes the frequency response of a filter.

[H,w] = freqz(b)
returns the complex frequency response h of the FIR filter with
coefficients b. The response is evaluated at 512 angular frequencies
between 0 and pi. w is a vector containing the 512 frequencies.

[H,w] = freqz(b,a)
returns the complex frequency response of the rational IIR filter
whose numerator has coefficients b and denominator coefficients a.

[H,w] = freqz(b,a,n)
returns the response evaluated at n angular frequencies. For fastest
computation n should factor into a small number of small primes.

[H,w] = freqz(b,a,n,"whole")
evaluates the response at n frequencies between 0 and 2*pi.

4.5 Ejercicios recomendados


Algunos ejercicios teóricos recomendados del capı́tulo 2 de [3] son los siguientes: 21, 25, 27, 34,
35, 36, 37.

59
4.5. PRÁCTICA 4. LA TRANSFORMADA DE FOURIER

60

También podría gustarte