Professional Documents
Culture Documents
Autor:
Javier Enrique González Barajas
javiergonzalezb@usantotomas.edu.co
Facultad de Ingeniería Electrónica, División de Ingenierías, Universidad Santo Tomás de
Aquino, Bogotá D.C., Colombia
ISBN: 978-84-944229-6-6
DOI: http://dx.doi.org/10.3926/oss.23
© OmniaScience (Omnia Publisher SL) 2015
© Diseño de cubierta: OmniaScience
Dibujos de cubierta: 3d-function-6: Martin Thoma CC-BY 3.0 y © Abstrakt wellen bewegung:
bittedankeschön – Fotolia.com
El autor expresa sus sinceros agradecimientos a las personas, que con su expe-
riencia contribuyeron al diseño de algunos de los experimentos ilustrados en este
texto. Las personas mencionadas a continuación hacen parte del grupo de docen-
tes de la Facultad de Ingeniería Electrónica, Universidad Santo Tomás- Colombia.
Ing. Carlos Javier Mojica, por su contribución en el diseño del experimento basado
en la estrategia matricial de la Transformada Rápida de Fourier.
Contenido
Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Capítulo 1
Algoritmo para reconstrucción de señales periódicas
a partir de sus coeficientes de Fourier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Capítulo 2
La Transformada de Fourier. Método computacional. . . . . . . . . . . . . . . . . . . . . 29
Capítulo 3
Método eficiente para el cálculo de la Transformada
de Fourier Discreta: La FFT matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Capítulo 4
Cálculo de la densidad espectral de potencia para señales
con muestreo irregular: Método de Lomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Capítulo 5
Promediado de espectros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
Capítulo 6
Manipulación del espectro de una señal unidimensional . . . . . . . . . . . . . . . . . 61
Capítulo 7
Transformada Cepstrum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Capítulo 8
Introducción a la Transformada Wavelet continua . . . . . . . . . . . . . . . . . . . . . . 73
Capítulo 9
Aplicación de la Transformada Wavelet continua en señales de voz. . . . . . . . . 79
Capítulo 10
Espectro de una señal discreta bidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Capítulo 11
Manipulación del espectro de una señal discreta bidimensional . . . . . . . . . . . 93
Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6
Xxxx
xxxx
Presentación
Este texto es un sencillo manual que recopila los diversos algoritmos implementa-
dos en la herramienta informática Matlab y que han sido utilizados para un prác-
tico entendimiento de las diversas maneras de implementar estrategias para el
análisis de señales en el dominio de la frecuencia.
7
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
8
Introducción
En el inicio del texto se podrá observar que para las señales periódicas, se puede
lograr una reconstrucción a través de las series de Fourier. Se ha implementado
un algoritmo en la herramienta Matlab que permite tomar la serie de una señal
cuadrada periódica y reconstruirla con ajustes de sus parámetros de ancho de
pulso y periodo fundamental. El algoritmo desarrollado es adaptado para demos-
trar las propiedades de linealidad y desplazamiento en el tiempo de la señal de
entrada. Para demostrar que la teoría de la serie de Fourier permite reconstruir
cualquier señal periódica, se realiza un ejemplo que reconstruye periodos de una
señal electrocardiográfica.
9
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
10
Capítulo 1
11
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
12
Los coeficientes de Fourier, permiten la caracterización de una señal continua en el
tiempo con la propiedad de periodicidad. Estos coeficientes ofrecen la información
de la señal en el dominio de la frecuencia. Según la teoría de Fourier, es posible
tomar estos coeficientes y reconstruir una señal periódica.
Tomando como ejemplo una señal cuadrada de periodo T y ancho T1, como se ilus-
tra en la Figura 1. Se procede a estimar la serie de Fourier con base a la Ecuación (1).
1
T ³T
ak x(t )e jkw0t dt (1)
1
T ³T
a0 x(t )dt
2T1
a0
T
1 jkw0t
T ³T
ak e dt
2sin kw0T1
ak
kw0T
w0 2S F0
N
x(t ) ¦ae
k N
k
lkw0t
x(t ) o ak
x(t t0 ) o ak e jkw0t0
x(t ) o ak
y(t ) o bk con periodo T = 4 seg. y ancho T = 1 seg.
Figura 1. Onda cuadrada periódica, 1
x(t ) y(t ) o ak bk
f
13
X w ³ x(t)e
jZ t
dt
f
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
a0 T T³ xT (t )dt 1
T0TT³T1
T a xla(t )Ecuación
dt
y para k ≠ 0 los coeficientes se calculan T 2sin
T 0según
kw (3):
a 2 T 2sin kw
a0akk 2T1 kw T 1 0 1
a0 T kw0T2T1
a 0
w0 1T2SF0jkw 0 t T
ak 0 1 ³ eNFjkw
w 2 S 0
dt
ak T ³ eN 0t dt
0
1lkw0t jkw0t
x(t )T T ¦k ak e lkw
T a ³T 0et dt
k¦
x(t )2sin kw a eT
T
k kwN 0T1
N k
a 2sin (3)
akkxx((tt )) ookw ak T02sin
aakk 0T
1
kw0T1
kw
w0xx((tt 2 St0F) o0 ak e kw jkw0t0
jkw0t00T
w0 2S0F0 t )0o a e
k
x(t ) oNN awk 0 2S F0
Siendo
x (t ) o
x(t ) ¦ ak k e lkw0tN
a lkw0t
k¦
x(yt )(t ) o bak k e
x (
y(t ) o
x t (
) t
o ) a y
b
k Nxk(t )
N
(t ) o a
¦N abk elkw0t
A través del asistente matemático ) Matlab,
aykk(tf) o ase
k k puede implementar las siguientes
x(xt )(to k bk
k
X k ¦
X k
S kn
x(n)ªe jN NN1N
wo=(2*pi)/T;
¦
2
N x n t n x .s
2S kn
x ( n )
n 0X k ª ¦ Nx (n
e ¦
N
j
S W
n 0 1 « ¦ ¦ x t x .cos 2 f t 2
ak(N+1)=2*T1/T; P f
A n, k 2eG j2 «N
A n, k 2eG ««¬N
2 S kn
2¦
S knN cos2 2S f t n W
j ¦ n 1 cos 2S f t n W
¦
¦
N sin2 2S
n 1 sin 2S
2 A n,¬k e N n 1 n 1
X w 2
X w ¦
N
2 N sin(4S t n )
tan 4 SW X w ¦
n 1 sin(4S t )
En la Figura 2 se puede apreciartan la serie
4SW de ª Fourier
generada
para N = 100. 22
2S f tn W N x t x .sin
n
1 ª« ¦ ¦
NNn 1 N
cos(4
x
nn 11cos(4
t S
t )
x .cos
P f 1 2 «« ¦Mnn11N1 1 n ¦
N
¦ n 12 x n t n N x .sin
N
xªn
t n
S
t n
x
) .cos 2 S f t W
P f 2G 2 «1 M 11N 1« N cos
n N
n
x t x .cos n
2 S f t
W ¦
n n
x t
n 1
¦
N 2 S ux
S
2
S
vy
W n
¦
N
2 2S f
n 1 2 j n n n 12 n n
A u , v2GP «¬f1 ¦¦ 2 f t N sin
2G 2¦ 2NS f Nt2n W
¦ n 1 sin ¦2SN f
2 S ux 2 S vy
A ( x , y
«A(nx1, cos ) e 2 M N
n
2S f tn W
j
A u , v MN «¬ ¦¦
n 1 n 1
y)e ¦M cos
Nx 0 y 0«
x 0y 0
MN ¬ n 1 n
1
T ³T
ak x(t )e jkw0t dt
1
T ³T
a0x(t )dt
Figura 2. Serie
2T1de Fourier con N = 100.
a0
T
1 jkw0t
T ³T
Para tener una escala en el ejeahorizontal,
k e sedt debe tener en cuenta que para cada
valor de K, equivale a k x W0 en unidades de radianes/segundos.
2sin kw0T1
ak
Para reconstruir la señal, se toma la Ecuación
kw0T (4):
w0 2S F0
N
x(t ) ¦ae
k N
k
lkw0t
(4)
x(t ) o ak
x(t tse
A través de Matlab en el programa o ak e jkw t el algoritmo para reconstruir la
0 ) implementa
0 0
señal. Se crea una base de tiempo deak–5 a 5 segundos con un paso de simulación
x(t ) o
de 0.001 segundos. La salida del
y(talgoritmo
)o b es la señal x(t) contenida en la Figura 3.
k
x(t ) y(t ) o ak bk
f
t=-5:0.001:5; X w ³ x(t )e jZ t dt
L=length(t); f
for i=1:L N 1 2S kn
j
c=0; X k ¦
n 0
x ( n )e N
for k=-N:N 2S kn
j
A n , k e N
c=c+ak(k+1+N)*(cos(k*wo*t(i))+j*sin(k*wo*t(i)));
end
X w
2
x(i)=real(c);
ª
2
end
1 « ¦
N
x n t n x .cos 2 S f t n W ¦ n 1 xn tn
N
Pf
n 1
2G 2 «
«¬ ¦n 1
N
cos 2
2S f t n W 15 ¦ n 1 si
N
¦
N
n 1
sin(4S tn )
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
16
Algoritmo para reconstrucción de señales periódicas a partir de sus coeficientes de Fourier
17
TT
1
TT ³³T x(t )dt
a 1 x(t )dt
a00
T
Series y Transformada de Fourier para Señales 2TT11
2
Continuas y Discretas en el Tiempo.
a
a0
0 T
Algoritmos para el desarrollo de ejercicios prácticos
T
1
TT ³³T e
a 1 e jkw 0t
jkw0t dt
akk dt
1. Propiedad de desplazamiento Ten el tiempo
a 2sin kw
2sin kw00TT11
ak de Fourier,
k
kw
Según la propiedad de los coeficientes kw00TT si una señal periódica x(t) posee
los coeficientes ak, entonces en lawEcuación (5) se describe el cambio cuando la
w0 22S
S FF0
señal posee un retraso to. 0
N
0
¦
N lkw0t
xx((tt ))
¦ aa ee
k N
k N
k lkw0t
k
Si xx((tt )) o
oaakk
jkw t (5)
Entonces xx((tt
tt00 )) o
oaakk ee jkw t
0 0
0 0
xx((tt )) o oa akk
yy((tt )) o b
o bkk
A través del programa se implementa xx((ttel))
código que demuestra que al tomar los coe-
yy((tt )) o
ficientes ak de la señal x(t), al ser multiplicados oaak
bbk
f por ((cos(k*wo*to)+ j*sin(k*wo*to))),
k k
f
X w
w ³³ xx((tt ))ee jZ t dt
al realizar la reconstrucción, la señal X x(t) obtendrá jZ t un retraso de to unidades de
dt
tiempo. f
f
N 1 2S kn
j 2S kn
X k ¦
N 1
¦xx((nn))ee
j N
Se implementa la línea de código: X k n 0
N
n 0
2S kn
j 2S kn
A n
A n,, kk ee N
j N
ak=(2*sin(k*wo*T1)./(k*wo*T)).*(cos(k*wo*to)-j*sin(k*wo*to));
X ww
2
X 2
ªª
¦
2
N x t x .cos 2S f t W 2
1 « ¦ ¦ xx tt
N N
P ak
ff de 1la2 ««onda
n 1
En la cual se tienen los coeficientes P
2G 2 « n cuadrada el n 1 n n
¦
N
N sin(4S t )
La Figura 7 ilustra los coeficientes atan en magnitud
k 4SW
tan 4SW
¦ ny
Nn 1
fase,Spara
1 sin(4 tnn ) N = 100.
¦
¦
N cos(4S t )
n 1 cos(4S t n )
n
Tomando los ak con desfase, se utilizan dentro1del M algoritmo
n 1
1 N 1 de 2Sreconstrucción,
ux 2S vy
j 2S ux 2S vy
ob-
A u , v MN ¦¦
M 1 N 1
A u ,
teniendo la nueva señal x(t) con desplazamiento v 1 de en A( x , y )e
A(xel, ytiempo
)e M tNo, que se puede
j M N
apreciar en la Figura 8.
¦¦
MN x 0 y 0 x 0y 0
18
Algoritmo para reconstrucción de señales periódicas a partir de sus coeficientes de Fourier
19
a0 T1
1 jkw0t
1T jkw0t ak
T ³T
e dt
ak 1 ³ e jkw t dt
ak T ³T e 0
dt
Series y Transformada de Fourier para Señales2sin
TT
kw0Ty1aDiscretas
Continuas
2sinen kwel0Tiempo.
T1
a 2sin kw0T1
k
Algoritmos para el desarrollo de ejercicioskprácticos kw0T
ak kw0T
kw T w0 2S F0
w0 2S F0 0
2. Propiedad de linealidadw0 2SNF0 lkw xt (t ) ¦ a elkw0t
N
x(t ) ¦ N a e 0 k
x(t ) k¦
k lkw t k N
N ak e
0
jZ t
X w ³ x(t )e jZ t dt
X w f
w sef³³requiere
x (t ) e dt
En este experimento se suponenXque x(t )e jZ t dtreconstruir
f
dos
2S kn señales cuadra-
N 1
j
¦
Xj k caso
Nf
1 2S kn
das similares a la visualizada en la Figura 1. Eneste xse
(n)etendrá
N
una señal cua-
X k ¦ N 1x (n)e 2SNkn
j
drada con T1 = 1 y otra señal conXT2 ¦
k = 2.4. n 0
n 0 x (n)e
N
2S kn
j
A n , k e
n 0 2S kn N
j
A ndos
El programa a continuación, genera , k tipos
e j de coeficientes a y b , con periodo T,
2SNkn
A n, k 2 e N X w 2 k k
para cada una de las señales cuadradas:
X w
X w
2
ª
2
1 ª ¦
¦PNn 1fxxn ttn 2«« xx .cos
N
x t x
n 1 2S f t W 2
N .cos 2
2S
f
¦tN W
xn tn x¦
n n n
¦ 1 ª«
n
2W
¦
N
P f .cos 2 S f cos 2S f tn Wn 1 N
t
n 1
x t x
«¬ 2 2S f ¦
2 G N
2G1 22 «
N=100;
n 1 W
n n n n n
Pf ¦ ¦
n 1 N
cos t sin 2
2
k=-N:N;
¦
N
n 1
2G «¬
cos2 2NS f tn W
«¬
n
¦
N
n 1
sin2 2
sin(4S t ) ¦Nn 1
n 1 n 1
T=4; sin(4S tn )
¦
N
1 4SW n
ntan
tan 4SW ¦N sin(4S tn )
N
% Periodo de la señal
tan 4SW ¦ Nnn 11cos(4S tn ) ¦ n 1
cos(4S tn )
wo=(2*pi)/T;
% Coeficientes para señal de ancho ¦ 1N1T1 cos(4 S tn1) 2SMux1 N2S1vy j
2S ux 2S vy
T1=1;
1 M nA 1
u
A u , v 1 ¦¦A(x , y)MN
M 1 N 1
, v j
¦¦
e j x 0y 0
2
Mux 2SNvy
S
A( x , y )e M N
ak=(2*sin(k*wo*T1)./(k*wo*T));MN ¦¦
A u , v MN x 0 y 0 A(x , y)e M N
x 0y 0
ak(N+1)=2*T1/T;
% Coeficientes para señal de ancho T2
T2=2.4;
bk=(2*sin(k*wo*T2)./(k*wo*T));
bk(N+1)=2*T2/T;
20
Algoritmo para reconstrucción de señales periódicas a partir de sus coeficientes de Fourier
t=-5:0.001:5;
L=length(t);
for i=1:L
c=0;
for k=-N:N
c=c+ak(k+1+N)*(cos(k*wo*t(i))+j*sin(k*wo*t(i)));
end
x(i)=real(c);
end
for i=1:L
c=0;
for k=-N:N
c=c+bk(k+1+N)*(cos(k*wo*t(i))+j*sin(k*wo*t(i)));
end
y(i)=real(c);
end
21
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
Como siguiente paso se procede a crear los coeficientes ck los cuales son el resul-
tado de la suma de los coeficientes ak y bk. Con el algoritmo de reconstrucción se
reconstruye la señal z(t), ilustrada en la Figura 11. La señal z(t) equivale a la suma
en el dominio del tiempo de las señales x(t) y y(t).
ck=ak+bk;
for i=1:L
c=0;
for k=-N:N
c=c+ck(k+1+N)*(cos(k*wo*t(i))+j*sin(k*wo*t(i)));
end
z(i)=real(c);
end
22
Algoritmo para reconstrucción de señales periódicas a partir de sus coeficientes de Fourier
Figura 11. Señal z(t) creada a partir de la reconstrucción de los coeficientes ck = ak + bk.
23
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
Con las siguientes líneas de código se realiza una gráfica de la magnitud y fase de
los coeficientes ilustrados en la Figura 12.
load coef
L=length(XF1);
N=(L-1)/2;
k=-N:N;
ak=XF1;
subplot(2,1,1)
stem(k,abs(ak))
title(‘magnitud coeficientes ak’)
subplot(2,1,2)
stem(k,angle(ak))
title(‘magnitud coeficientes bk’)
24
Algoritmo para reconstrucción de señales periódicas a partir de sus coeficientes de Fourier
25
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
Fo=0.5;
wo=2*pi*Fo;
t=-5:0.001:5;
L=length(t);
for i=1:L
c=0;
for k=-N:N
c=c+ak(k+1+N)*(cos(k*wo*t(i))+j*sin(k*wo*t(i)));
end
x(i)=real(c);
end
26
Algoritmo para reconstrucción de señales periódicas a partir de sus coeficientes de Fourier
27
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
28
Capítulo 2
La Transformada de Fourier.
Método computacional
29
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
30
En diversos casos no se puede contar con una señal continua en el tiempo
que ofrezca la oportunidad de calcular su Transformada de Fourier directa-
mente. En estos casos se acude a tomar muestras de la señal bajo estudio a
través del teorema del muestreo. El siguiente ejemplo se basa en la construc-
ción de una señal compuesta por una función exponencial decreciente que
modela la caída de tensión de un circuito RC. En primera instancia se calcula
su Transformada de Fourier de manera analítica. Posteriormente se procede
a ejecutar el algoritmo para el método computacional para la Transformada
de Fourier: DFT.
Ts=0.001;
C=100E-6;
R=1000;
tao=1/(R*C);
t=0:Ts:5;
x=exp(-tao*t);
31
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
N=length(x);
k=-N/2:N/2;
F=(k-1)/(N*Ts);
% Transformada de Fourier teórica X(w) de la función x(t)
w=2*pi*F;
XW=1./(tao+j*w);
XWM=abs(XW);
plot(w,XWM)
32
La Transformada de Fourier. Método computacional
N=length(x);
for k=1:N
c=0;
for n=1:N
c=c+x(n)*(cos(2*pi*n*k/N)+j*sin(2*pi*n*k/N));
end
XF(k)=c;
end
k=1:N;
F=(k-1)/(N*Ts);
figure
plot(F,abs(XF))
33
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
34
La Transformada de Fourier. Método computacional
35
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
36
Capítulo 3
37
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
38
ak
T ³ x(t)e
T
dt
1
T ³T
a0 x(t )dt
2T1
a0
1T
T1 ³T jkw0t
ak x(t )e jkw0t dt
T1 ³T
ak e dt
a0 ³T x(tkw
T2sin
)dt
0T1
ak
2T1 kw0T
a0
w0 2TS F0
1 N
axk(t ) ³ e ajkwe0tlkw
dt0t
T¦ T
k
k N
¦ n 1 cos2 2S f tn W
0
¦ n 1 sin2
N N
«¬ N
A xn(,tk) o a e
Es necesario tener en cuenta que al implementar
k directamente la Transformada
¦
N
Discreta de Fourier a través de X w
2 sin(4 S tn ) poca eficiencia computa-
tanxun
(t4SWalgoritmo,
t0) o ak e se obtiene
jkw 0t 0
n 1
ak ª¦
N
cional. Por tal motivo se propone x(ten ) oesta práctica S tn )
cos(4implementar un método eficien-
2
j
A n , k e N (9)
X w
2
¦ x t x .cos 2S f t W ¦
ª 2 39
1 «
N
n n n
N
x t
n n
Pf
n 1 n 1
2G 2 « ¦ cos 2S f t W ¦ s
N 2 N
n
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
N=4;
for k=1:N
for n=1:N
A(n,k)=cos(2*pi*(k-1)*(n-1)/N)-j*sin(2*pi*(k-1)*(n-1)/N);
end
end
x(n) = [1 2 3 4]
40
Método eficiente para el cálculo de la Transformada de Fourier Discreta: La FFT matricial
XF = x*A
El programa contiene un algoritmo implementado que genera una señal x(n) para
diferentes cantidades de muestras N = 100, 200, 300, 400, 500, 1000, 2000, 3000
y 4000 muestras. Este programa contabiliza el tiempo de duración para ejecutar
la Transformada de Fourier FFT a través del método matricial y lo compara con el
método de la DFT.
41
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
La Figura 21, ilustra los tiempos de cómputo para calcular la Transformada de Fou-
rier a través del método matricial. Se puede apreciar que los valores de tiempo
son muy inferiores a comparación de los obtenidos a través del método de la DFT.
42
Capítulo 4
43
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
44
a0 1
T
1 jkw0t
T ³T
ak e dt
2sin kw0T1
ak
kw0T
w0 2S F0
N
x(t ) ¦ae
k N
k
lkw0t
x(t ) o ak
x(t t0 ) o ak e jkw0t0
x(t ) o ak
y(t ) o bk
x(t ) y(t ) o ak bk
f
X w ³de
Por medio de la Transformada continua )e jZ t dt X(w) (ver Ecuación (7)) es
x(tFourier
posible establecer una medida de la distribución
f
del espectro por unidad de
N 1 2S kn
frecuencia, lo cual se denomina densidad
X k ¦ espectral
x(n)e N de potencia (PSD). Ver Ecua-
j
ción (10). n 0
2S kn
j
A n , k e N
X w
2
(10)
ª
¦ x
2
1 « ¦ n 1 xn tn x .cos 2S f tn W
N N
n
2G 2 «
«¬
de muestras de la señal x(t), adquiridas a un periodo ¦
que
N
cos
de muestreo
n 1
2
2
a partir
S f n
Ts y cumpliendo ¦
el criterio de Nyquist se obtiene una serie de tiempo x(n). Tomando estas mues-
¦
N
sin(4S tn )
tras, se puede estimar la PSD a través 4SWlaTransformada
tande n 1
discreta de Fourier (ver
¦
N
Ecuación 8). n 1
cos(4S t n)
2S ux 2S vy
1 M 1 N 1 j
A u , v ¦¦
En algunas ocasiones no es posible tener muestras
MN x 0 y 0de A( x
la , y )e
señal
M N
original de manera
regular, por lo cual Lomb, en el año de 1976, propone un método de estimación
de la densidad espectral de potencia de datos tomados en observaciones as-
tronómicas. En este contexto, el autor plantea que no existe una garantía que
permita que las muestras adquiridas en estas observaciones sean tomadas a un
periodo regular.
El método de Lomb toma un arreglo de datos xn(tn) el cual contiene las muestras
adquiridas para cada tiempo tn y procede calcular la densidad espectral de poten-
cia para cada valor de frecuencia f como se observa en la Ecuación (11).
45
k
X w ³ x(t)e
jZ t
dt
f y(t ) o bk
2S kn
X k ¦x(n)e
N 1
j
N x(t ) y(t ) o ak bk
Series y Transformada
n 0 f
de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para
A n , k e N
j
2S kn
el desarrollo deX w
ejercicios x (t )e
prácticos
jZ t
dt ³
f
X w
2
N 1 2S kn
j
X k ¦x(n)e N
¦
x t x .cos 2S fn0t 2SWkn ¦ x t x .sin 2S f t W º»
ª N 2 N 2
1 « n n n n n n
Pf n 1
» (11)
n 1
¦ sin(4S t ) X w
N 2
tan 4SW n 1 n
¦ cos(4
nW
N
(4), Sδt2 corresponde
) aªla a Nla varianza
xn tn x .sin 2S
2
En la Ecuación n 1
1 «
n
¦ x n t n x
de los 2datos
.cos S f t xn(t
n ) y el cálculo
¦
N
de la variable
A u , v
1 τ se realiza
M 1 N 1
¦¦A(x , y)e
a
P f
través de la Ecuación
j
n 1
2S ux 2S vy
(12).
n 1
2G « ¦ n 1 cos2 2S f tn W ¦ n 1 sin2 2S f tn
2 M NN N
MN x 0y 0 « ¬
¦
N
sin(4S tn )
tan 4SW n 1
(12)
¦
N
n 1
cos(4S tn )
2S ux 2S vy M 1 N 1
1 j
MN
¦¦ A( x , y )e M
A u , v
N
N=500;
Fs=1000;
Ts=1/Fs;
n=1:N;
f1=30;
f2=80;
f3=120;
x=cos(2*pi*f1*Ts*n)+cos(2*pi*f2*Ts*n)+cos(2*pi*f3*Ts*n);
46
Cálculo de la densidad espectral de potencia para señales con muestreo irregular: Método de Lomb
Figura 22. Señal de prueba, compuesta por la suma de tres sinusoides de frecuencias: 30Hz,
80Hz y 120Hz. Con frecuencia de muestreo Fs = 100Hz y cantidad de muestras N = 500.
Figura 23. PSD de la señal de prueba, compuesta por tres impulsos unitarios
ubicados en las frecuencias: 30Hz, 80Hz y 120Hz. Con frecuencia de muestreo
Fs = 100Hz y cantidad de muestras N = 500.
47
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
c=0;
for i=1:N
t(i)=c+Ts;
c=t(i);
end
c=round(rand(N,1));
x1=x.*c’;
k=0;
for i=1:N
if x1(i)==0
x1(i)=x1(i);
else
k=k+1;
xr(k)=x1(i);
tr(k)=t(i);
end
end
El algoritmo desarrollado permite obtener una nueva señal xr(tn), la cual es una
versión con muestreo irregular. El arreglo de datos tr, contiene los valores de tiem-
po tn para cada muestra de la señal xr.
48
Cálculo de la densidad espectral de potencia para señales con muestreo irregular: Método de Lomb
Para poder aplicar la técnica de Lomb, se debe calcular primero la varianza para
las muestras obtenidas:
xm=(1/N)*sum(xr);
var=(1/(N-1))*sum((xr-xm).^2);
Posteriormente se establece los valores de frecuencia (Hz) para los cuales se re-
quiere calcular la PSD.
for h=1:N/2
f(h)=Fs*(h-1)/(N);
end
49
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
s=0;
for i=1:N
W2= 0.54+0.46*cos(2*pi*t(i)/t(N));
xr(i)=xr(i)*W2;
s=s+W2;
end
NOR=N/(s*s);
R=length(f);
N=length(xr);
for r=1:R
c=0;
b=0;
Sh=0;
Ch=0;
S2=0;
C2=0;
for i=1:N
Sh=Sh+( (xr(i)-xm)*sin( 2*pi*f(r)*(tr(i)) ) );
Ch=Ch+((xr(i)-xm)*cos(2*pi*f(r)*(tr(i))));
S2=S2+sin(2*pi*f(r)*(tr(i)));
C2=C2+cos(2*pi*f(r)*(tr(i))) ;
end
tao=(atan(S2/C2))/(4*pi*w(r));
A=Ch*cos(2*pi*f(r)*tao)+Sh*sin(2*pi*f(r)*tao);
B=Sh*cos(2*pi*f(r)*tao)-Ch*sin(2*pi*f(r)*tao);
A2=(N/2)+0.5*C2*cos(4*pi*f(r)*tao)+0.5*S2*sin(4*pi*f(r)*tao);
B2=(N/2)-0.5*C2*cos(4*pi*f(r)*tao)-0.5*S2*sin(4*pi*f(r)*tao);
P(r)=NOR*(((A^2)/A2)+((B^2)/B2));
end
50
Cálculo de la densidad espectral de potencia para señales con muestreo irregular: Método de Lomb
figure
plot(w,P)
title(‘espectro de lomb(muestreo uniforme)’)
xlabel(‘Frecuencia’)
ylabel(‘Magnitud’)
La Figura 25, ilustra el resultado obtenido al calcular la PSD por medio del método
de Lomb de las muestras tomadas irregularmente de la señal original.
51
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
52
Capítulo 5
Promediado de espectros
53
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
54
Existen señales, cuyas características se pueden repetir en el tiempo y también
pueden ser apreciadas en el dominio de la frecuencia. A través del promediado de
espectros, es posible determinar un espectro promedio de una señal con la finali-
dad de observar aquellas características que se repiten en el tiempo.
A1=load sonido;
a1=A1.sonido.
plot(a1)
55
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
N=length(a1);
k=1:N/2;
F=(k-1)*44100/N;
a1f=abs(fft(a1.*(hamming(N))));
plot(F,a1f(1:N/2));
56
Promediado de espectros
ma1=a1(15000:15000+27999);
L=length(ma1);
ma2=a1(54000:54000+27999);
ma3=a1(132000:132000+27999);
ma4=a1(170000:170000+27999);
57
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
W=hamming(L);
ma1w=ma1.*W;
ma2w=ma2.*W;
ma3w=ma3.*W;
ma4w=ma4.*W;
ma1f=abs(fft(ma1w));
ma2f=abs(fft(ma2w));
ma3f=abs(fft(ma3w));
ma4f=abs(fft(ma4w));
58
Promediado de espectros
59
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
60
Capítulo 6
61
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
62
El espectro en frecuencia de una señal discreta x(n), contiene información impor-
tante que modela el comportamiento en el dominio del tiempo. El espectro lo po-
demos dividir en dos grandes bandas: bajas frecuencia y altas frecuencia. En esta
práctica se realiza un proceso de manipulación en el espectro de una señal discreta
x(n) con la finalidad de poder diferenciar el aporte en el dominio del tiempo de
cada una de las bandas.
En esta práctica se toma una señal de muestra con componentes espectrales co-
nocidas.
N=500;
n=1:N;
Fs=500;
Ts=1/Fs;
x=cos(2*pi*10*n*Ts)+ cos(2*pi*20*n*Ts)+ cos(2*pi*30*n*Ts)+
cos(2*pi*100*n*Ts)+ cos(2*pi*150*n*Ts)+ cos(2*pi*200*n*Ts);
63
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
xf=(fft(x));
k=1:N/2;
f=(k-1)*Fs/N;
64
Manipulación del espectro de una señal unidimensional
xf1=xf;
xf1(50:449)=0;
x2=real(ifft(xf1));
Si se desea lograr un efecto “pasa altos” se pueden eliminar las bajas frecuencias
(ver Figura 34).
xf1(1:201)=0;
xf1(801:N)=0;
65
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
66
Capítulo 7
Transformada Cepstrum
67
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
68
El Cesptrum de la señal es una aplicación especial de la Transformada de Fourier.
Se calcular a partir del logaritmo de la densidad espectral de potencia de una señal
y que posteriormente se le calcula nuevamente su Transformada de Fourier.
En esta práctica de laboratorio se realiza una aplicación del cepstrum de una se-
ñal aplicado a un ejercicio de simulación del eco. El programa contiene el código
para la elaboración de una aplicación que ilustra el funcionamiento del cálculo del
cesptrum.
A1=load sonido;
Fs=44100;
Ts=1/Fs;
a1=A1.andreaa;
69
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
c=zeros(1,1000);
x1=[ma1’ c ma1’ c ma1’ c];
N=length(x1);
x1=x1/max(x1);
t=(1:N)/44100;
figure
plot(t,x1)
70
Transformada Cepstrum
Tomando la señal que contiene las repeticiones, se le aplica el Cepstrum con las
siguientes líneas de instrucción.
c = cceps(x1);
figure
plot(t,c)
En la Figura 37, se observa el resultado obtenido, se puede notar que en el eje del
tiempo se evidencias unos picos, los cuales indican el comienzo de una repetición.
71
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
c=c/max(c);
figure
plot(t,x1,t,c)
xlabel(‘Tiempo(Seg)’)
legend(‘Señal de voz’, ‘Coeficientes Cepstrum’)
72
Capítulo 8
Introducción a la Transformada
Wavelet continua
73
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
74
El objetivo de esta práctica es el desarrollo de una aplicación para la generación
de una familia de ondaletas y estudiar una señal continua en el tiempo con com-
ponentes espectrales conocidas.
Ts=0.01;
Fs=1/Ts;
t=-10:Ts:10;
x=cos(2*pi*1*t)+cos(2*pi*1.5*t)+cos(2*pi*2*t);
subplot(2,1,1)
plot(t,x)
75
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
El siguiente paso es generar una familia de ondeletas. Para este ejemplo se utiliza
la ondaleta “Sombrero méxicano” (ver Figura 40).
L=length(t);
f=0.01:0.05:5;
N=length(f);
for u=1:N
ta=t/f(u);
mex(u,:)=((pi^(0.25))/sqrt(3))*(1-ta.*ta).*exp(-ta.*ta/2);
end
figure
mesh(t,f,mex)
76
Introducción a la Transformada Wavelet continua
for u=1:N
TW(u,:)=filter(mex(u,:),1,x);
end
figure
t=-10:Ts:10;
mesh(t,f,TW)
77
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
78
Capítulo 9
79
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
80
El objetivo de esta práctica es el desarrollo de una aplicación para la generación
de una familia de ondaletas con la finalidad de identificar patrones dentro de una
señal de voz.
Fs=44100;
Ts=1/Fs;
A1=load sonido;
ma1=A1.andreaa;
x1=ma1(15000: 15000 + 27999);
xa=decimate(x1,5);
x=xa(1:4000);
Fs=8000;
81
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
El segundo paso es crear la familia de ondaletas. Para este caso se utiliza “Morlet”.
t=-2:Ts:2;
L=length(t);
f=0.1:1:10;
N=length(f);
for u=1:N
ta=t/f(u);
mor(u,:)=(exp(-(ta.*ta)/2)).*cos(5*ta);
end
figure
mesh(t,f,mor)
82
Aplicación de la Transformada Wavelet continua en señales de voz
Por último se aplica cada ondaleta a la señal de voz, obteniendo el resultado ilus-
trado en la Figura 44.
for u=1:N
TW(u,:)=filter(mor(u,:),1,x);
end
figure
t=(1:4000)/Fs;
mesh(t,f,TW)
83
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
84
Capítulo 10
85
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
86
k
x(t t0 ) o ak e jkw0t0
x(t ) o ak
y(t ) o bk
x(t ) y(t ) o ak bk
f
X w ³ x(t)e
jZ t
dt
f
N 1 2S kn
j
X k ¦x(n)e
n 0
N
2S kn
j
A n , k e N
X w
2
ª
2
1 « ¦ n 1 xn tn x .cos 2S f tn W ¦ n 1 xn tn x .sin 2
N N
Pf
2G 2 «
«
¬
¦
N
n 1
cos 2
2S f t n W
Para el caso de una señal discreta bidimensional A(x,y), se expresa su Transforma-
¦
N
n 1
sin2 2S f
¦ n 1 cos(4S tn )
N
2S ux 2S vy
1 M 1 N 1 j
A u , v ¦¦
MN x 0 y 0
A( x , y )e M N
(13)
El programa contiene el código de un sencillo ejercicio que permite tener un rápido en-
tendimiento de las propiedades básicas de la Transformada De Fourier bidimensional.
N=200;
n=1:N;
x=128*cos(2*pi*10*n*0.01);
x=uint8(x+128);
for i=1:N
A(i,:)=x;
end
mesh(double(A))
figure
imshow(A)
87
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
88
Espectro de una señal discreta bidimensional
AF=fftshift(abs(fft2(double(A))));
figure
mesh((AF))
figure
imshow(uint8(AF))
Como se pudo apreciar en la Figura 47, se obtienen dos funciones impulso unitario
simétricamente ubicadas en el eje horizontal. Este resultado es similar al obtenido
de la magnitud de la Transformada de Fourier para una señal sinusoidal discreta
unidimensional.
89
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
for i=1:N
B(:,i)=x;
end
figure
mesh(double(B))
figure
imshow(B)
90
Espectro de una señal discreta bidimensional
BF=fftshift(abs(fft2(double(B))));
figure
mesh((BF))
figure
imshow(uint8(BF))
91
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
92
Capítulo 11
93
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
94
En esta sección se manipula el espectro de una señal bidimensional, para la cual
en nuestro contexto se denomina una imagen digital.
El primer paso es generar una función bidimensional A(x,y), la cual tendrá un pa-
recido a un tablero de ajedrez.
A=ones(200,200);
A(1:50,1:50)=0;
A(1:50,100:150)=0;
A(100:150,1:50)=0;
A(50:100,50:100)=0.4;
95
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
[a,b]=size(A);
for i=1:a
for j=1:b
D(i,j)=(((i-(a/2))^2)+((j-(b/2))^2))^(0.5);
end
end
Do=10;
n=4;
for i=1:a
for j=1:b
d=D(i,j);
Hpb(i,j)= 1 / (1+ (d/Do)^(2*n) );
%pasa bajos
Hpa(i,j)= 1 / (1+ (Do/d)^(2*n) );
%pasa altos
end
end
96
Manipulación del espectro de una señal discreta bidimensional
Figura 51. Máscara para efecto pasa bajos y para efecto pasa altos.
AF=(fft2(double(A)));
97
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
AF2=fftshift(AF);
AG=AF2.*Hpa;
98
Manipulación del espectro de una señal discreta bidimensional
AG=fftshift(AG);
A2=ifft2(AG);
figure
imshow(A2)
99
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
100
Bibliografía
La teoría utilizada en este texto ha sido basada en escritos que son listados a con-
tinuación.
Transformada de Fourier
Oppenheim Alan, Willsky Alan. Señales y Sistemas. Prentice Hall. México 2011.
Proakis John, Manolakis DImitris. Tratamiento Digital de Señales. Pearson. España 2010.
Mitra Sanjit. Procesamiento Digital de Señales Digitales. Mc Graw Hill. España 2008.
William T. Vetterling. Numerical Recipes 3rd Edition. Cambridge University Press 2007.
Señales Bidimensionales
101
Series y Transformada de Fourier para Señales Continuas y Discretas en el Tiempo.
Algoritmos para el desarrollo de ejercicios prácticos
Voz humana
Transformada Wavelet
Press William. Numerical Recipies in C: The Art of Scientific Computing. Ed. Cam-
bridge USA 2002.
102