8/19/2019 Análisis de Fourier Usando Matlab
1/35
Señales y Sistemas IGrupo 2Análisis de Fourier Usando
Matlab
Jan Bacca Rodríguez
8/19/2019 Análisis de Fourier Usando Matlab
2/35
Matlab trabaja únicamente con señalesdiscretas.
Las únicas señales que son discretas entiempo y recuencia son las señales
peri!dicas discretas. "ara los otros casos se requerir#n
apro$imaciones para poder lle%ar a caboan#lisis de &ourier en Matlab.
Introducción
∑=
−
=0
0
2
0
][1
N n
n N
jk
k en x N
a
π
∑=
=0
0
2
][ N k
n N
jk
kean x
π
8/19/2019 Análisis de Fourier Usando Matlab
3/35
8/19/2019 Análisis de Fourier Usando Matlab
4/35
Matlab asume que el %ector x contiene elperíodo de la señal que %a de n = 0 a N-1.
Los coe,cientes en X ser#n tambi-n los de k= 0 a N-1.
fft e ifft se calculan por medio de unalgoritmo conocido como la ransormadaR#pida de &ourier /&ast &ourier ransorm0
Serie de Fourier en Tiempo
Discreto
8/19/2019 Análisis de Fourier Usando Matlab
5/35
1alcular los coe,cientes de &ourier de la señal)
Eemplo
n j j
n j j
n j n j
e
j
ee
j
e
ee j n x
128
3
128
3
8
3
128
3
12
2
1
2
2
1
1][
π
π
π
π
π π π π
++−=
−+=
−−
+−
+
24
1
122
=⇒= N
M
N
M π π
2 La señal tiene 34 coe,cientes.
++=
8
3
12sen1][
π π nn x
8/19/2019 Análisis de Fourier Usando Matlab
6/35
Los otros 35 coe,cientes ser#n 6.
en Matlab)
x = ones(1,24)+sin([0:23]*pi/12+3*pi/8);X = fft(x)/24
Eemplo
j
eaa
j
ea
j j
2,1,
2
83
10
83
1
π π
==−=−
−
8/19/2019 Análisis de Fourier Usando Matlab
7/35
X =
o!"#ns 1 t$%o"&$ '
10000 041 - 0113i 00000 + 00000i -00000+ 00000i -00000 + 00000i
o!"#ns t$%o"&$ 10
-00000 - 00000i 00000 - 00000i 00000 - 00000i 00000 + 00000i-00000 - 00000i
o!"#ns 11 t$%o"&$ 1'
-00000 - 00000i -00000 - 00000i 0-00000 + 00000i -00000 + 00000i
o!"#ns 1 t$%o"&$ 20
-00000 + 00000i 00000 - 00000i 00000 + 00000i 00000 + 00000i-00000 + 00000i
o!"#ns 1 t$%o"&$ 24
-00000 - 00000i -00000 - 00000i 00000 - 00000i 041 + 0113i
Eemplo
8/19/2019 Análisis de Fourier Usando Matlab
8/35
Los coe,cientes dierentes de cero est#n enlas posiciones 5( 3 y 34( que corresponden alos coe,cientes 6( 5 y 37.
Los coe,cientes de la serie tienen periodo34
*l coe,ciente 37 es igual al coe,ciente 85
'i se pre,ere tener el coe,cientecorrespondiente a la recuencia 0 al centrodel %ector se usa la unci!n ffts$ift
X = ffts$ift(x)
Eemplo
8/19/2019 Análisis de Fourier Usando Matlab
9/35
"ara este caso(despu-s deffts$ift( los%alores en lasposiciones 5 y 3 se
mue%en a lasposiciones 57 y 54y el %alor en laposici!n 34 a la
posici!n 53. La señal original se
puede recuperarusando)
◦ x =24*ifft(X)
Eemplo
8/19/2019 Análisis de Fourier Usando Matlab
10/35
Eemplo
2x = [1 2 0 0 0 2];2X = fft(x)/;
8/19/2019 Análisis de Fourier Usando Matlab
11/35
'ea x[n] una señal de duraci!n M 'u transormada de &ourier ser#)
!elación entre la
Trans"ormada y la Serie deFourier en Tiempo Discreto
( ) ∑−
=
−=1
0
][ M
n
n j j en x e X ω ω
21onstruya a9ora una señal peri!dica deperíodo N ≥ M ( x p [n] 9aciendo copias de x[n]
2La serie de &ourier de x p [n] ser#
∑
−
=
−
=
1
0
2
][
1 N
n
n N
jk
k en x N a
π
8/19/2019 Análisis de Fourier Usando Matlab
12/35
1omparando)
!elación entre laTrans"ormada y la Serie de
Fourier en Tiempo Discreto
( ) N
k
j k e X
N
a π ω
ω
2
1
==
2Los coe,cientes de la serie de x p [n] son
muestras de la transormada de x[n] di%ididas por N .
2 La ecuaci!n de síntesis de los ak nos
permitir# recuperar x p [n]
2 x p [n] = x[n] para 0≤n
8/19/2019 Análisis de Fourier Usando Matlab
13/35
+plica para señales discretas de duraci!n,nita M ≤ N .
*s útil debido a que se puede calcularnum-ricamente.
ransormada R#pida de &ourier /&&0)+lgoritmo r#pido para el c#lculo de la :&. N es la potencia de un entero /i.e. N = 2k0
Trans"ormada Discreta deFourier #DFT$
[ ] ∑∑ −
=
−
=
−==
1
0
21
0
2
][1
][][ N
n
n N
jk N
n
n N
jk
ek X N
n xen xk X
π π
8/19/2019 Análisis de Fourier Usando Matlab
14/35
La :& de cualquier longitud se puedecalcular usando fft.
X = fft(x,N) es la :& de N puntos de x[n] ( completando con ceros al ,nal si esnecesario.
'i N
8/19/2019 Análisis de Fourier Usando Matlab
15/35
Los %alores de recuencia correspondientesa las muestras en X[k] est#n uniormementedistribuidos en el inter%alo [0, 2π ).
o#e& = [0:N-1]*2*pi/N
'i se usa ffts$ift( los %alores derecuencia estar#n en el inter%alo [-π ,π )
o#e& = [-N/2:N/2-1]*2*pi/N
Trans"ormada Discreta deFourier #DFT$
8/19/2019 Análisis de Fourier Usando Matlab
16/35
2 1alcular |X(e j ω
)| a inter%alos de recuenciaa0 3π;73b0 3π;
8/19/2019 Análisis de Fourier Usando Matlab
17/35
n = [0:31];
x = os(3*pi*n/8);
X32 = s(ffts$ift(fft(x)));
X0 = s(ffts$ift(fft(x,4)));
X120 = s(ffts$ift(fft(x,128)));
.32 = [-1:1']*2*pi/32;
fi&"%es"p!ot(3,1,1)
ste#(.32, X32)
xis([-pi pi 0 20])
Eemplo
8/19/2019 Análisis de Fourier Usando Matlab
18/35
Eemplo
-3 -2 -1 0 1 2 30
5
10
15
20
-3 -2 -1 0 1 2 30
5
10
15
20
-3 -2 -1 0 1 2 30
5
10
15
20
8/19/2019 Análisis de Fourier Usando Matlab
19/35
fft se usa con señales discretas deduraci!n ,nita.
"ara usarla con señales continuas( se debemuestrear y recortar la señal.
1!mo escoger T ( M ( N para que Y[k] sea unabuena apro$imaci!n de X(j ω )>
Apro%imando la Trans"ormada deFourier en Tiempo &ontinuo con
fft
8/19/2019 Análisis de Fourier Usando Matlab
20/35
Muestreo) x[n] = x(nT)
La recuencia de muestreo ser#
'ea x(t) tal que X(j ω ) = 0 para |ω |>ω x
'i se quiere apro$imar el espectro de X(j ω ) para |ω |
8/19/2019 Análisis de Fourier Usando Matlab
21/35
Los espectros de la señal original y la señalmuestreada est#n relacionados así)
Recorte) *l tomar solo M muestras de laseñal equi%ale a multiplicar la señal por unpulso rectangular w[n] de duraci!n M
y[n] = x[n]w[n]
Apro%imando laTrans"ormada de Fouriercon fft
( )
=
=
π
ω ω
ω ω
2
11 s j j X T T
j X T
e X
A i d l
8/19/2019 Análisis de Fourier Usando Matlab
22/35
*n recuencia estoequi%ale a unacon%oluci!n con la
señal)
La con%oluci!n sua%izael espectro de la señaloriginal.
Apro%imando laTrans"ormada de Fourier con
fft
=−
−
2sen
2sen
)( 21
T
T M
eeW M
T j j
ω
ω ω
ω
8/19/2019 Análisis de Fourier Usando Matlab
23/35
La resoluci!n de la%entana ser# elanc9o del l!bulo
principal) de donde)
M s
r
ω ω =
r
s M ω
ω ≥
r
MT ω
π 2≥
Apro%imando la Trans"ormadade Fourier con fft
8/19/2019 Análisis de Fourier Usando Matlab
24/35
La :& de N puntos de x[n] est# dada por)
'i se desea que las muestras en recuenciaest-n separadas una distancia de al menos
∆ω)
Apro%imando laTrans"ormada de Fouriercon fft
=
= N jk X T e X k Y s N
jk ω π
1
][
2
ω
ω
∆≥ s N
8/19/2019 Análisis de Fourier Usando Matlab
25/35
'uponga que la banda de recuencias deinter-s es -20 < ω < 20 y el inter%alo demuestreo en recuencia ∆ω = π 20.+pro$imar X(j ω ) para las resoluciones)
a) 2π
!) 2π "
#) 2π 2"
"ara 9allar la transormada de &ourier de
x(t) se escribe como x(t) = $(t)%(t) con
◦)
◦) %(t) = cos(&0t) ' cos(&2t)
Eemplo ( ))12cos()10cos()()( 10 t t t (et x t
+= −
)()( 10 t (et $ t
−=
8/19/2019 Análisis de Fourier Usando Matlab
26/35
(j ω ) = π ( δ ( ω '&0)'δ ( ω -&0)'δ ( ω '&2)δ ( ω -&2))
Eemplo10
1
1)(
+=
ω
ω
j
j *
( ) ( ) ( )
( )
+−+
++
+
+−
+
++=
10
112
110
112
1
10
110
1
10
110
1
21)(
ω
ω ω ω
ω
j
j j j
j X
2
2
2
2
12
10
1
10
1
10
10
1
10
1
)(
+
+
++
+
+
+=
ω
ω
ω
ω
ω
j
j
j
j j X
8/19/2019 Análisis de Fourier Usando Matlab
27/35
*sta señal no est#limitada en bandapero su potenciadisminuyer#pidamentecuando ω crece.
'e escoge ω x = "00
porque la magnitud
en ese %alor es &0 %eces menor que enω a = 20
Eemplo
0063.01000
2≈≤
π T
8/19/2019 Análisis de Fourier Usando Matlab
28/35
2 'e escoge T = 0+00" ( de dondeω
s = 00π .
2
a) ω r = 2π ⇒ M = 200b) ω r = 2π " ⇒ M = 1000
c) ω r = 2π 2" ⇒ M = 5000
2 *l número de muestras de la :& debesatisacer
Eemplo
r r
s M ω
π
ω
ω 400=≥
8000
20
400==
∆≥
π
π
ω
ω s N
8/19/2019 Análisis de Fourier Usando Matlab
29/35
T = 0+00" N = 000
a) M = 200
b) M = 1000
c) M = 5000
Eemplo ( ))12cos()10cos()()( 10 t t t (et x t
+= −
= 000';
N = 8000;
= '000;
t = 0::(-1)*;
x = exp(-t/10)*(os(10*t)+os(12*t));
X = s(fft(x(1:200),N)*);
n = 2*pi/*(0:N-1)/N;
fi&"%e
s"p!ot(2,2,2)
ste#(n(1:128),X(1:128))
o#e& = 0:20/'11:20;
X = (01+i*o#e&)/
((1+i*o#e&)2+100)+(01+i*o#e&)/
((1+i*o#e&)2+144);
$o!
p!ot(o#e&, s(X),%)
xis([0 20 0 ])
8/19/2019 Análisis de Fourier Usando Matlab
30/35
Eemplo
0 5 10 15 20-2
-1
0
1
2
0 5 10 15 200
1
2
3
4
5
6
0 5 10 15 200
1
2
3
4
5
6
0 5 10 15 200
1
2
3
4
5
6
8/19/2019 Análisis de Fourier Usando Matlab
31/35
Matlab permite calcular num-ricamente larespuesta en recuencia de sistemascontinuos y discretos para %alores discretosde recuencia.
La respuesta en recuencia de un sistema esla transormada de &ourier de su respuestaimpulso.
Los comandos f%es and f%e5 permitene%aluar la respuesta en recuencia desistemas descritos por ecuacionesdierenciales o de dierencia sin tener la
respuesta impulso.
!espuesta en Frecuenciade Sistemas 'TI
8/19/2019 Análisis de Fourier Usando Matlab
32/35
6 = f%es (, , .) calcula la respuestaen recuencia del sistema en tiempocontinuo descrito por la ecuaci!n)
freqs
∑∑=
−=
− = M
kk
k
k M
N
kk
k
k N .t
t x . !
.t
t y. a
00
)()(
2, ) %ectores de coe,cientes de la ecuaci!ndierencial. *l primer elemento de cada%ector corresponde a la deri%ada m#s alta.
8/19/2019 Análisis de Fourier Usando Matlab
33/35
.) %ector de recuencias donde /(j ω ) ser#calculada.
f%es (, , .) sin argumentos de salida
gra,ca la magnitud y ase de /(j ω ) .
'i no se especi,ca .( matlab escoge un%ector de 200 recuencias donde calcular
/(j ω ) .
'i se reemplaza . por un número entero N
Matlab calcular# /(j ω
) para N recuencias
freqs
8/19/2019 Análisis de Fourier Usando Matlab
34/35
[6,.] = f%e5 (, , N) calcula larespuesta en recuencia del sistema entiempo discreto descrito por la ecuaci!n)
freqz
2, ) %ectores de coe,cientes de la ecuaci!nde dierencias. *l primer elemento de cada%ector corresponde a la muestra actual.
[ ] [ ]∑∑==
−=− M
kk
N
kk kn x !knya
00
8/19/2019 Análisis de Fourier Usando Matlab
35/35
N) ?úmero de recuencias uniormemente
distribuidas entre 0 y π en las que secalcular# /(e j ω ). 'i N no se especi,ca se usan "&2 puntos.
[6, .]=f%e5 (, , N,7.$o!e7) usa N
puntos entre 0 y 2π . 6 = f%e5 (, , .): . es el %ector de
recuencias donde se calcular# /(e j ω ). [6, f] = f%e5 (, , N, fs): fs es la
recuencia de muestreo de la señal 6 = f%e5 (, , , fs): es el %ector
de recuencias /z0 donde se calcular# /(e j ω ).
freqz