sistemas y señales i
TRANSCRIPT
Sistemas y SeSistemas y Seññales Iales I
Transparencias:AnAnáálisis lisis FrecuencialFrecuencial de Sede Seññales ales
usando ventanasusando ventanas
Autor: Dr. Juan Carlos Gómez
SyS-I 2
AnAnáálisis lisis FrecuencialFrecuencial de Sede Seññales usando ventanasales usando ventanasDesde el punto de vista de implementación computacio-nal, la Transformada de Fourier en Tiempo Discreto (DTFT), definida como:
( ) ( ) j n
n
X x n e ωω∞
−
=−∞
= ∑presenta dos problemas. El primero es el hecho de que se tiene una suma de infinitos términos (no es implementable), y el segundo es que en el intervalo fundamental de frecuencias hay infinitas frecuencias por lo que no puede computarse la transformada para todas las frecuencias.
π ω π− ≤ <
(1)
SyS-I 3
Como consecuencia de la primera observación, cuando se tienen señales de longitud infinita, el espectro de la señal sólo puede aproximarse por el de una señal de longitud finita que se obtiene multiplicando a la señal de longitud infinita x(n) por una ventana w(n) de longitud finita L. Es decir:
( )x n
1
0
( ) ( ) ( )
( ) ( ) ( )L
j n
n
x n x n w n
X X x n e ωω ω−
−
=
=
⇒ ≈ = ∑El problema de las infinitas frecuencias es fácil de resolver ya que puede computarse (2) en un número finito N de frecuencias equi-espaciadas de la forma
(2)
2 , 0,1, , 1k
kk N
N
πω = = − (3)
SyS-I 4
Si la señal a analizar es una señal analógica, la misma se pasa usualmente a través de un filtro antialiasing, y luego se muestrea con una frecuencia , donde B es el ancho de banda de la señal filtrada. La máxima frecuencia en la señal muestreada es .Luego, por las razones de implementación práctica mencionadas, se limita la duración de la señal a un intervalo de tiempo , donde L es el número de muestras y es el período de muestreo.
2sF B≥
2sF
0T LT=1 sT F=
SyS-I 5
Veremos que la longitud finita de la ventana usada para truncar la señal pone un límite en la resolución en frecuencia, es decir en la capacidad de distinguir entre dos componentes de frecuencia que están separadas menos de 1/T0= 1/(L.T) en frecuencia.
Sea x(n) la señal a analizar.Limitar la duración de la señal a L muestras en el intervalo 0 ≤ n ≤ L-1 es equivalente a multiplicar a x(n) por una función ventana rectangular w(n) de longitud L, es decir:
( )
( )⎩⎨⎧ −≤≤
=
=
c.o.c.0
101donde
)(.)(~
Lnnw
nwnxnx
(4)0 1 2 L-2 L-1
n
w(n)
…1
• •
SyS-I 6
El espectro de la señal x(n) estará entonces relacionado con el espectro de a través de la convolución(periódica)
Es claro entonces que la forma del espectro de la ventana W(ω) afectará al espectro con el cuál se quiere aproximar a X(ω).
Para comprender mejor esto analicemos en primera instancia el caso de la ventana rectangular. Como ya vimos:
( ) ( ) ( ) λλωλπ
ωπ
π
dWXX −= ∫−2
1~
( ) ( ) ( )( )2/sen
2/sen2/1
ωωω
ω LeW
Lj −−
=
( )nx~
( )ωX~
(5)
(6)
SyS-I 7
Por lo que:
De la convolución anterior vemos que para tener:
deberá ser W(ω) = δ(ω) para lo cuál L=∞ , o sea
( ) ( ) ( )( )2/sen
2/sen1
2 ωωωω L
LW ∠+−−=∠
( ) ( )( )⎪
⎩
⎪⎨
⎧ =
=.c.o.c
2/
2/
0
ωω
ωω
sen
Lsen
L
W
πLπ2
0Lπ2
π −−
|W(ω) |L
ω
π0π−
∠ W(ω)
ω
( ) ( )ωω XX =~
( ) ( )nxnx =~
SyS-I 8
Espectro de módulo de la ventana rectangular (L=10)
-3 -2 -1 0 1 2 30
2
4
6
8
10
12
Pulsacion w [rad/seg]
|W(w
)|
L=10
2
L
π
L
SyS-I 9
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
Pulsacion w [rad/seg]
< W
(w)
L=10
Espectro de fase de la ventana rectangular (L=10)
2
L
π
SyS-I 10
El hecho de que W(ω) no sea δ(ω) trae varios problemas.
Consideremos una secuencia x(n) que consiste de una sola sinusoide:
x(n)= cos ω0.nEl espectro de la señal de duración finita viene dado por (Teorema de Modulación):
( ) ( ) ( )[ ]002
1~ ωωωωω ++−= WWX
( )ωX~
( )nx~
SyS-I 11
Como se ve en la figura anterior el espectro de no estálocalizado en una única frecuencia, sino que está distribuido en todo el rango de frecuencias. Este fenómeno (debido a la ventana) se denomina leakageEl ancho del lóbulo principal en el espectro de la ventana determina la resolución en frecuencia. Para ver esto, consideremos una señal con dos componentes de frecuencia
x(n)= cos ω1.n + cos ω2.nEl espectro de la señal truncada a L muestras en el rango0≤ n ≤ L-1 es:
( ) ( ) ( ) ( ) ( )[ ]22112
1~ ωωωωωωωωω ++−+++−= WWWWX
( )ωX~
SyS-I 12
Como el espectro de W(ω) tiene el primer cruce por cero en:
ω =2π / LEntonces si | ω1-ω2 | < 4π/L , las dos funciones W(ω-ω1) y W(ω-ω2) se superponen y en consecuencia las dos líneas espectrales de x(n) no se distinguen. Sólo si | ω1-ω2 | ≥ 4π/L (donde 4π/L es el ancho del lóbulo principal del espectro de la ventana rectangular) se verán dos lóbulos separados en el espectro .Es decir, la capacidad para distinguir líneas espectrales de diferente frecuencia está limitada por el ancho del lóbulo principal de la ventana.
( )ωX~
SyS-I 13
Por ejemplo, sea
Luego2 1
40.04 100L
L
πω ω π− = = ⇒ =
y el espectro de resulta ( ) ( ) ( )x n x n w n=
( ) cos(0.2 ) cos(0.24 )x n n nπ π= +
0.55 0.6 0.65 0.7 0.75 0.80
5
10
15
20
25
30
35
40
45
50
w [rad/seg]
0.24 π0.2 π4π/L
SyS-I 14
Consideremos ahora el ejemplo de una señal con tres compo-nentes senoidales, dos de ellas con frecuencias muy próximas.
x(n)= cos(0.2π.n) + cos(0.22π.n) + cos(0.6π.n)
1 2 30.2 0.22 0.6ω π ω π ω π= = =El Espectro de Módulo usando ventana rectangular, para L = 25, y L = 50 resulta:
No se distinguen
1 2 y ω ω
SyS-I 15
De donde puede observarse que no se distinguen las líneas espectrales correspondientes a las frecuencias próximas
1 2 y ω ω
Si consideramos en cambio L = 100, las líneas espectrales son distinguibles.
SyS-I 16
Para solucionar el problema del leakage se propone utilizar una ventana que tenga un espectro que se asemeje en mayor medida al impulso. Por ejemplo si consideramos la ventana de Hann (hanning):
0 10 20 30 40 50 60 70 80 90 1000
0.2
0.4
0.6
0.8
1
Indice n
w(n
)
L=100
Ventana de Hann
( )1 2
1 cos 0 12
0 c.o.c.
nn L
w n L
π⎧ ⎛ ⎞⎛ ⎞− ≤ ≤ −⎪ ⎜ ⎟⎜ ⎟= ⎝ ⎠⎨ ⎝ ⎠⎪⎩
SyS-I 17
El espectro de módulo tiene las siguientes características: - Lóbulos laterales significativamente más pequeños que la ventana rectangular (menor leakage)- Lóbulo principal aproximadamente 2 veces más ancho que la ventana rectangular (peor resolución)
-3 -2 -1 0 1 2 30
1
2
3
4
5
6
Pulsacion w [rad/seg]
|W(w
)|
L=10(L+1)/2
4
L
π
SyS-I 18
Considerando el ejemplo con las tres componentes senoidales, pero usando una ventana Hann con los mismos valores de L, los espectros resultan:
No se distinguen
1 2y ω ωPueden distinguirse
1 2y ω ω
SyS-I 19
Otra ventana, con un espectro similar al de la ventana de Hann es la ventana de Hamming (hamming), que se muestra a continuación:
0 10 20 30 40 50 60 70 80 90 1000
0.2
0.4
0.6
0.8
1
Indice n
w(n
)
Ventana de Hamming
L=100
( )2
0.54 0.46cos 0 1
0 c.o.c.
nn L
w n L
π⎧ ⎛ ⎞− ≤ ≤ −⎪ ⎜ ⎟= ⎝ ⎠⎨⎪⎩
SyS-I 20
-3 -2 -1 0 1 2 30
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Pulsación w [rad/seg]
|W(w
)|
L=10
4
L
π
2
L≈
El espectro de una ventana de Hamming con L = 10 se muestra a continuación.
SyS-I 21
Cómputo de la Transformada de Fourier en Tiempo Discreto para señales de longitud finita
Cómputo de la Transformada de Fourier en Tiempo Discreto para señales de longitud finita
Sea x(n) una señal causal de longitud finita L. Su DTFT viene dada por:
1
0
( ) ( )L
j n
n
X x n e ωω−
−
=
= ∑
Para solucionar el problema de que existen infinitas frecuen-cias en el intervalo fundamental , calcularemos(7) en un número finito N de frecuencias equi-espaciadas de la forma
π ω π− ≤ <
(7)
2 , 0,1, , 1k
kk N
N
πω = = − (8)
SyS-I 22
Resulta entonces21
0
( ) ( ) , 0,1, , 1knL j
Nk
n
X x n e k Nπ
ω− −
=
= = −∑
2 0 0 2 0 1 2 0 ( 1)
0
2 1 0 2 1 1 2 1 ( 1)
1
2 ( 1) 0 2 ( 1) 1 2 ( 1) ( 1)
1
( ) (0) (1) ( 1)
( ) (0) (1) ( 1)
( ) (0) (1) ( 1)
Lj j j
N N N
Lj j j
N N N
N N N Lj j j
N N NN
X x e x e x L e
X x e x e x L e
X x e x e x L e
π π π
π π π
π π π
ω
ω
ω
× × × × × × −− − −
× × × × × × −− − −
× − × × − × × − × −− − −
−
= + + + −
= + + + −
= + + + −
que puede escribirse como:
(9)
SyS-I 23
2 0 0 2 0 1 2 0 ( 1)
02 1 0 2 1 1 2 1 ( 1)
1
2 ( 1) 0 2 ( 1) 1 2 ( 1) ( 1)1
( ) (0)
( ) (1)
( ) ( 1)
Lj j j
N N N
Lj j j
N N N
N N N LN j j jN N N
e e eX x
X xe e e
X x Le e e
π π π
π π π
π π π
ωω
ω
× × × × × × −− − −
× × × × × × −− − −
× − × × − × × − × −− − − −
⎡ ⎤⎢ ⎥⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥= ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥−⎢ ⎥ ⎣ ⎦⎣ ⎦⎢ ⎥⎣ ⎦
En forma matricial, resulta:
que es muy simple de implementar en un algoritmo en, por ejemplo, Matlab.
(10)
SyS-I 24
Implementación de la DTFT en Matlab
Consideremos la ecuación (10)2 0 0 2 0 1 2 0 ( 1)
02 1 0 2 1 1 2 1 ( 1)
1
2 ( 1) 0 2 ( 1) 1 2 ( 1) ( 1)1
( ) (0)
( ) (1)
( ) ( 1)
Lj j j
N N N
Lj j j
N N N
N N N LN j j jN N N
e e eX x
X xe e e
X x Le e e
π π π
π π π
π π π
ωω
ω
× × × × × × −− − −
× × × × × × −− − −
× − × × − × × − × −− − − −
⎡ ⎤⎢ ⎥⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥= ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥−⎢ ⎥ ⎣ ⎦⎣ ⎦⎢ ⎥⎣ ⎦
X Ekn x
Escribiremos una function de Matlab, con argumentos de entrada la señal, como vector columna x , y el número de fre-cuencias N, y como argumentos de salida el vector columna X con las transformadas y las pulsaciones ω.
SyS-I 25
function [X,w]=dtft2020(x,N)%=========================================% Uso:% [X,w]=dtft2020(x,N);%=========================================% x: vector columna con la señal% N: número de frecuencias donde % se computa la transformada% X: vector columna con la DTFT% w: vector columna con las pulsaciones w%=========================================L=length(x);k=[0:1:N-1]';w=2*pi*k/N;n=[0:1:L-1]';Ekn=exp(-j*w*n');X=Ekn*x;end
SyS-I 26
Ejemplo: Usaremos la función desarrollada para calcular la DTFT de la señal
( ) ( ) ( )( ) 0.9n
x n n n Lμ μ= − −⎡ ⎤⎣ ⎦
L=10;n=[0:1:L-1]';x=0.9.^n;N=1024;[X,w]=dtft2020(x,N);figure(1)plot(w,abs(X))ww=[-pi:2*pi/N:pi-2*pi/N]';figure(2)plot(ww,abs(fftshift(X)))
(11)
SyS-I 27
0 1 2 3 4 5 60
1
2
3
4
5
6
7
Pulsación w [rad/seg]
|X(w
)|
L=10
SyS-I 28
-3 -2 -1 0 1 2 30
1
2
3
4
5
6
7
Pulsación w [rad/seg]
|X(w
)|
L=10
SyS-I 29
fftshift
x fftshift(x)
Para poder graficar las frecuencias ω entre –π y π se utilizóel comando fftshift de Matlab.
SyS-I 30
Consideremos ahora la señal de longitud infinita
( )1( ) 0.9 ( )n
x n nμ=
Podemos pensar que x(n) en (11) es una versión truncada con una ventana rectangular de longitud L de la señal de longitud infinita (12). Calculemos la DTFT de . Resulta
(12)
1( )x n
( )10
1( ) 0.9
1 0.9
njj
n
X ee
ωωω
∞−
−=
= =−∑
Grafiquemos el espectro de módulo de y de x(n) para distintos valores de L .
1( )x n
(13)
SyS-I 31
-3 -2 -1 0 1 2 30
2
4
6
8
10
12
Pulsación w [rad/seg]
Esp
ectr
o de
mód
ulo
Longitud L=10Longitud infinita
SyS-I 32
-3 -2 -1 0 1 2 30
2
4
6
8
10
12
Pulsación w [rad/seg]
Esp
ectr
o de
mó
dulo
Longitud L=20Longitud infinitaLongitud L=10
SyS-I 33
-3 -2 -1 0 1 2 30
2
4
6
8
10
12
Pulsación w [rad/seg]
Esp
ectr
o de
mó
dulo
Longitud L=50Longitud Infinita
Para L = 50 las curvas son casi indistinguibles.
SyS-I 34
Transformada Discreta de Fourier (DFT)Transformada Discreta de Fourier (DFT)Vimos que la DTFT de una señal causal x(n), de longitud finita L, calculada en N frecuencias equi-espaciadas de la forma:
2 , 0,1, , 1k
kk N
N
πω = = −
viene dada por21
0
( ) ( ) , 0,1, , 1knL j
Nk
n
X x n e k Nπ
ω− −
=
= = −∑
Puede pensarse entonces que son muestras del espectro X(ω) en las frecuencias .
( )kX ω
kω
(14)
(15)
SyS-I 35
Se define entonces la Transformada Discreta de Fourier(DFT) con N puntos de la señal x(n) como
21
0
( ) ( ) , 0,1, , 1knN j
N
n
X k x n e k Nπ− −
=
= −∑ (16)
Vemos, comparando (16) con (15), que si la señal es de longitud , la transformada Discreta de Fouriercon N puntos puede pensarse como muestras del espectro X(ω) en las frecuencias equiespaciadas . Si en cambio no se verifica que , la DFT con N puntos no puede pensarse como muestras del espectro X(ω) en .
NL ≤
kωNL ≤
kω
SyS-I 36
No es difícil probar que la DFT con N puntos X(k) es periódica con período N. En efecto
2 ( )1
0
2 21
0 1
21
0
( ) ( )
( )
( ) ( )
k N nN jN
n
kn kNN j jN N
n
knN jN
n
X k N x n e
x n e e
x n e X k
π
π π
π
+− −
=
− − −
= =
− −
=
+ =
=
= =
∑
∑
∑
SyS-I 37
Teniendo en cuenta que X(k) es periódica con período N, y observando la expresión de X(k), notamos que esa expresión es la Serie de Fourier discreta de X(k) , por lo que podemos concluir que
21
0
( ) ( )n
knN jN
n c
X k x n eπ
−
− −
=∑ ( ) nx n c−⇒ =
siendo los coeficientes de Fourier. Finalmente, teniendo en cuenta la expresión de los coeficientes de Fourier
nc−
( ) 2 /1
0
1con 0 ,1 , , 1
j kn NN
nk
c X k e n NN
π−−
=
= = −∑ …
SyS-I 38
Es decir que, para el caso en que , la señal x(n) puede recuperarse a partir de las muestras X(k) según la expresión (17), que se denomina Transformada Discreta de FourierInversa (IDFT):
NL ≤
( ) ( )21
0
10,1, , 1
k nj
NN
k
x n X k e n NN
π−
=
= −∑ … (17)
podemos concluir que
SyS-I 39
Transformada Rápida de Fourier (FFT: FastFourier Transform)Transformada Rápida de Fourier (FFT: FastFourier Transform)El algoritmo desarrollado en pág. 25 para el cálculo directo de la DTFT no es eficiente desde el punto de vista compu-tacional ya que requiere del orden de multiplicaciones complejas. Por ejemplo, si se calculan 1024 frecuencias, se requerirían 1048576 multiplicaciones.
Si se tienen en cuenta algunas propiedades de simetría de los coeficientes
2N
2 knj
Neπ
−
se pueden desarrollar algoritmos más rápidos.
SyS-I 40
En particular, uno de los más difundidos es el algoritmo denominado Transformada Rápida de Fourier (FFT: Fast Fourier Transform) que requiere del orden de
( )2log2
NN
multiplicaciones complejas, cuando N es potencia entera de 2. Para el ejemplo de N = 1024, resultan 5120 multiplica-ciones, lo que representa un factor de mejora en la velocidad de 204.8.
En Matlab este algoritmo está implementado en la rutina fft. La sintáxis es la siguiente:
SyS-I 41
>> X=fft(x,N);
donde:
x: vector con las muestras de la señal
X: vector con las transformadas
N: número de frecuencias donde se calcula la transformada, que debe ser de la forma para que el algoritmo searápido.
2mN =
SyS-I 42
Ejemplo: Problema 4 del TP3
load('TP3_1.mat')L=length(y);Fs=1000; % Frecuencia de muestreoN=4096*4; % notar que N > LY=fft(y,N);F=[-Fs/2:Fs/N:Fs/2-Fs/N]';[picomax,ind]=max(abs(fftshift(Y)));A=2*picomax/L; % amplitud de la senoideFsen=-F(ind); % frecuencia de la senoidefigura(1)plot(t,y)figure(2)plot(F,abs(fftshift(Y)))
A = 1.0042 ; Fsen = 200.0122
SyS-I 43
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-3
-2
-1
0
1
2
3
Tiempo [seg]
y(t)
Señal senoidal inmersa en ruído
SyS-I 44
Espectro de módulo
-500 -400 -300 -200 -100 0 100 200 300 400 5000
100
200
300
400
500
600
700
800
900
1000
Frecuencia [Hz]
Esp
ectr
o d
e m
ódu
lo |Y
(F)|
AL/2
SyS-I 45
Filtrado en el dominio FFT
%============================% Filtrado en el dominio FFT%============================[pico,indi]=max(abs(Y));filtro=zeros(N,1);filtro(indi-20:indi+20)=1;filtro(N-indi-20:N-indi+20)=1;Yfiltrada=Y.*filtro;yfiltrada=real(ifft(Yfiltrada,N));yfiltrada=yfiltrada(1:L);figure(3)plot(F,abs(fftshift(Yfiltrada)))
SyS-I 46
190 192 194 196 198 200 202 204 206 208 2100
200
400
600
800
1000
1200
Frecuencia [Hz]
Esp
ectr
o d
e m
ódu
lo s
eñal
filtr
ada
|Yfilt(w)|Filtro x 500
Zoom del espectro de módulo de la señal filtrada y del filtro x 500