Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Elaborado por:
- Dr. Luis A. Raygoza P.
-
-
−1 𝑛 = 𝑖𝑚𝑝𝑎𝑟
cos(2𝑛𝜋) = 𝑒 ± =1 cos(𝑛𝜋) = 𝑒 = (−1) = 𝑠𝑒𝑛(2𝑛𝜋) = 0
1 𝑛 = 𝑝𝑎𝑟
𝑐𝑜𝑠 = 𝑠𝑒𝑛 =
1 𝑛 =1
−2 𝑛 = 𝑖𝑚𝑝𝑎𝑟
2𝑛 − 1 = 3 𝑛 =2 (−1) − 1 =
5 𝑛 =3 0 𝑛 = 𝑝𝑎𝑟
7 𝑛 =4
1 𝑛 = 𝑖𝑚𝑝𝑎𝑟 0 𝑛 = 𝑖𝑚𝑝𝑎𝑟
(−1) = (−1) + 1 =
−1 𝑛 = 𝑝𝑎𝑟 2 𝑛 = 𝑝𝑎𝑟
𝑎 2𝑛𝜋𝑡 2𝑛𝜋𝑡
𝑓(𝑡) =
+ 𝑎 𝑐𝑜𝑠 + 𝑏 𝑠𝑒𝑛
2 𝑇 𝑇
𝑎 2𝜋𝑡 4𝜋𝑡 6𝜋𝑡 2𝜋𝑡 4𝜋𝑡 6𝜋𝑡
𝑓(𝑡) = + 𝑎 𝑐𝑜𝑠 + 𝑎 𝑐𝑜𝑠 + 𝑎 𝑐𝑜𝑠 + ⋯ + 𝑏 𝑠𝑒𝑛 + 𝑏 𝑠𝑒𝑛 + 𝑏 𝑠𝑒𝑛 +⋯
2 𝑇 𝑇 𝑇 𝑇 𝑇 𝑇
Donde:
/
𝑎 = ∫ /
𝑓(𝑡)𝑑𝑡 = ∫ 𝑓(𝑡)𝑑𝑡 componente de DC o promedio
/
2 2𝑛𝜋𝑡 2 2𝑛𝜋𝑡
𝑎 = 𝑓(𝑡)𝑐𝑜𝑠 𝑑𝑡 = 𝑓(𝑡)𝑐𝑜𝑠 𝑑𝑡
𝑇 / 𝑇 𝑇 𝑇
/
2 2𝑛𝜋𝑡 2 2𝑛𝜋𝑡
𝑏 = 𝑓(𝑡)𝑠𝑒𝑛 𝑑𝑡 = 𝑓(𝑡)𝑠𝑒𝑛 𝑑𝑡
𝑇 / 𝑇 𝑇 𝑇
b) Serie exponencial
𝑎 𝑎 − 𝑗𝑏 𝑎 + 𝑗𝑏
𝑓(𝑡) = + 𝑒 + 𝑒
2 2 2
Sea 𝐴 = entonces:
𝑓(𝑡) = 𝐴 + {𝐴 𝑒 + 𝐴∗ 𝑒 }= 𝐴 𝑒
𝑓(𝑡) =. . . −𝐴 𝑒 −𝐴 𝑒 +𝐴 +𝐴 𝑒 +𝐴 𝑒 +⋯
Donde:
/
𝐴 = = ∫ /
𝑓(𝑡)𝑒 𝑑𝑡 = ∫ 𝑓(𝑡)𝑒 𝑑𝑡
Conversión:
𝑏 = −2𝐼𝑚(𝐴 ) 𝑎 = 2𝑅𝑒(𝐴 )
si 𝑎 = 0 entonces 𝜃 = 𝜋/2
Espectro:
𝐶 = = |𝐴 | |𝐶 | = 𝑎 + 𝑏 = 2|𝐴 |
Ejemplo: Obtener las series de Fourier y el espectro de la siguiente señal
𝑉 0 < 𝑤𝑡 < 𝜋
𝑓(𝑡) =
−𝑉 𝜋 < 𝑤𝑡 < 2𝜋
a) Serie trigonométrica
Es una señal impar, por lo tanto solo tiene coeficientes bn y w=2π/T, T=2π
2 2𝑛𝜋𝑡 1 2𝑉
𝑏 = 𝑓(𝑡)𝑠𝑒𝑛 𝑑𝑡 = 𝑉𝑠𝑒𝑛(𝑛𝑤𝑡) 𝑑(𝑤𝑡) + −𝑉𝑠𝑒𝑛(𝑛𝑤𝑡)𝑑(𝑤𝑡) = (1 − cos(𝑛𝜋))
𝑇 𝑇 𝜋 𝑛𝜋
n 𝑐𝑜𝑠(𝑛𝜋) (1 − 𝑐𝑜𝑠(𝑛𝜋))
0 1 0
1 -1 2
2 1 0
3 -1 2
4 1 0
b) Serie exponencial
1 1 𝑉
𝐴 = 𝑓(𝑡)𝑒 𝑑𝑡 = −𝑉𝑒 𝑑(𝑤𝑡) + 𝑉𝑒 𝑑(𝑤𝑡) = 𝑗 (𝑒 − 1)
𝑇 2𝜋 𝑛𝜋
2𝑉 2𝑉 2𝑉 2𝑉
𝑓(𝑡) =. . . +𝑗 𝑒 +𝑗 𝑒 +0−𝑗 𝑒 −𝑗 𝑒 −⋯
3𝜋 𝜋 𝑛𝜋 𝑛𝜋
c) Espectro 𝐶 = = |𝐴 | = 0
n |𝐶 | = 𝑎 + 𝑏 = 2|𝐴 | = 𝑏
0 0
1 4V/π
2 0
3 4V/(3π)
4 0
5 4V/(5π)
Ejemplo: Obtener las series de Fourier y el espectro de la siguiente señal
a) Serie trigonométrica
Es una señal par, por lo tanto solo tiene coeficientes an y w=2π/T, T=2π
2 2𝑛𝜋𝑡 1 𝑉 𝑉
𝑎 = 𝑓(𝑡)𝑐𝑜𝑠 𝑑𝑡 = 𝑉+ 𝑤𝑡𝑐𝑜𝑠(𝑛𝑤𝑡) 𝑑(𝑤𝑡) + 𝑉− 𝑤𝑡𝑐𝑜𝑠(𝑛𝑤𝑡) 𝑑(𝑤𝑡)
𝑇 𝑇 𝜋 𝜋 𝜋
𝑉 4𝑉 4𝑉 4𝑉
𝑓(𝑡) = + 𝑐𝑜𝑠(𝑤𝑡) + 𝑐𝑜𝑠(3𝑤𝑡) + 𝑐𝑜𝑠(5𝑤𝑡) + ⋯
2 𝜋 9𝜋 25𝜋
b) Serie exponencial
entonces:
2𝑉 2𝑉 𝑉 2𝑉 2𝑉
𝑓(𝑡) =. . . + 𝑒 + 𝑒 + + 𝑒 + 𝑒 +⋯
9𝜋 𝜋 2 𝜋 9𝜋
c) Espectro 𝐶 = = |𝐴 | = 0
n |𝐶 | = 𝑎 + 𝑏 = 2|𝐴 | = 𝑎
0 0
1 4V/π
2 0
3 4V/(9π)
4 0
5 4V/(25π)
Ejemplo: Obtener las series de Fourier y el espectro de la siguiente señal
a) Serie trigonométrica
𝑎 = ( )
para n=par , para n=1 se tiene 𝑎 = ∫ 𝑉𝑠𝑒𝑛(𝑤𝑡)𝑐𝑜𝑠(𝑤𝑡) 𝑑(𝑤𝑡) = 0
𝑉 𝑉 2𝑉 2𝑉 2𝑉
𝑓(𝑡) = + 𝑠𝑒𝑛(𝑤𝑡) − 𝑐𝑜𝑠(2𝑤𝑡) − 𝑐𝑜𝑠(4𝑤𝑡) − 𝑐𝑜𝑠(6𝑤𝑡) + ⋯
𝜋 2𝜋 3𝜋 15𝜋 35𝜋
b) Serie exponencial
( )
𝐴 = ∫ 𝑉𝑠𝑒𝑛(𝑤𝑡)𝑒 𝑑(𝑤𝑡) = = para n=par y An=0 para n impar, excepto n=1
( ) ( )
𝑉 𝑉 𝑉 𝑉 𝑉 𝑉 𝑉
𝑓(𝑡) =. . . − 𝑒 − 𝑒 +𝑗 𝑒 + −𝑗 𝑒 − 𝑒 − 𝑒 −⋯
15𝜋 3𝜋 4 𝜋 4 3𝜋 15𝜋
c) Espectro 𝐶 = = |𝐴 | = 0
n |𝐶 | = 𝑎 + 𝑏 = 2|𝐴 |
0 V/π
1 V/2
2 2𝑉/(3𝜋)
3 0
4 2𝑉/(15𝜋)
5 0
6 2𝑉/(35𝜋)
- Aplicar la Actividad 1: Series de Fourier, valor 3 parcial 3
- Realizar otra actividad con generador, bocina y osciloscopio con FFT
En el dominio del tiempo la respuesta y(t) se calcula por medio de la convolución entre la entrada x(t) y el
sistema h(t).
En el dominio de la frecuencia:
En el dominio de la frecuencia la respuesta en frecuencia se calcula por medio de una simple multiplicación
entre la entrada y el sistema.
Dicha señal tiene un periodo fundamental T y frecuencia fundamental 𝜔 = 2𝜋/𝑇. Debido a que es una señal
par conviene integrar desde –T/2 ≤ t ≤ T/2 para coeficientes reales an
1 1 2 𝑒 −𝑒 2𝑠𝑒𝑛(𝑛𝜔 𝑇 )
𝑎 = 𝑒 𝑑𝑡 = − 𝑒 = =
𝑇 𝑗𝑛𝜔 𝑇 𝑛𝜔 𝑇 2𝑗 𝑛𝜔 𝑇
𝑠𝑒𝑛(𝑥)
𝑠𝑖𝑛𝑐(𝑥) =
𝑥
Si para n diferente de cero se tiene que:
𝑠𝑒𝑛(𝑛𝜔 𝑇 )
𝑎 =
𝑛𝜋
Para T=16T1
Se aprecia que a medida que T se incrementa o que 𝜔 = 2𝜋/𝑇 disminuye, la envolvente se muestrea cada
vez más estrecho y la señal original se aproxima a una señal pulso rectangular o señal aperiódica en el
dominio del tiempo. En particular, si una señal x(t) tiene duración finita (es aperiódica), es decir x(t)=0 para
|t| >T1, entonces se puede construir una señal periódica 𝑥 (𝑡) al repetir x(t) cada T periodo.
𝑥 (𝑡) = 𝑎 𝑒
/ /
1 1 1 1
𝑎 = 𝑥 (𝑡)𝑒 𝑑𝑡 = 𝑥(𝑡)𝑒 𝑑𝑡 = 𝑥(𝑡)𝑒 𝑑𝑡 = 𝑋(𝑗𝜔)
𝑇 𝑇 𝑇 𝑇
/ /
Donde
𝑋(𝑗𝜔) = 𝑥(𝑡)𝑒 𝑑𝑡
1
𝑓(𝑡) = 𝐹 {𝐹(𝑗𝑤)} = 𝐹(𝑗𝜔)𝑒 𝑑𝜔
2𝜋
Ejemplo:
Ejemplo: Impulso unitario Considerar que 𝛿(𝑡) = lim 𝑃 (𝑡)
→
Entonces
Ejemplo: Sea
Ejemplo:
Entonces
Y
Se obtiene el espectro:
A la señal de entrada
Y la TF de h(t) es:
Para encontrar la salida en el dominio del tiempo (estado estacionario), se calcula la TIF y por fracciones
parciales
donde
Entonces
Así:
Ejemplo: Sean las siguientes señales la entrada x(t) y la respuesta al impulso de un filtro h(t)
Ejemplo 1: Sea X(f) la transformada de Fourier de la señal x(t) = e−t u(t). Sin calcular X(f) de forma
explícita, demostrar que:
a) 𝑋(0) = 1
b) ∫ 𝑋(𝑓)𝑑𝑓 = 1
c) ∫ |𝑋(𝑓)| 𝑑𝑓 = 0.5
d) ∫ 𝑋(𝑓)2𝑠𝑖𝑛𝑐(2𝑓)𝑒 𝑑𝑓 = 𝑒 −𝑒
Ejemplo 2:
La transformada de Fourier X(f) de una señal se muestra en la figura.
𝑎 𝑡 𝑎 𝑡 3𝜋𝑎𝑡
𝑥(𝑡) = 𝑠𝑖𝑛𝑐 𝑎 + 𝑠𝑖𝑛𝑐 𝑎 sin
2 2 2 4 4
Ejemplo 3:
Halle la TF de las siguientes señales utilizando la definición y propiedades de la TF, demostrando que:
−1 𝑡<0
a) 𝐹 𝑥(𝑡) = 𝑠𝑔𝑛(𝑡) = = (Función signo)
1 𝑡≥0
∝
c) 𝐹{𝑥(𝑡) = 𝑒 𝑢(𝑡)} = ,α > 0
∝
∝
d) 𝐹{𝑥(𝑡) = 𝑡𝑒 𝑢(𝑡)} = (∝ +𝑗2𝜋𝑓) ,α > 0
Ejemplo 4:
Si x(t) tiene como transformada X(f), demostrar que:
( ∅ ( ))
c) 𝐹{𝑦(𝑡) = 𝑥(𝑡) + 𝑥(𝑡 − 𝑡 )} = 2|𝑋(𝑓)|cos(2𝜋𝑓𝑡 )𝑒
( ) ( )
d) 𝐹{𝑦(𝑡) = 𝑥(𝑡) ∗ 𝑢(𝑡)} = 𝑋(0) +
Ejemplo 5:
Halle la TIF de las siguientes funciones utilizando la definición y propiedades de la TF, demostrando que:
d) 𝐹 𝑋(𝑓) = ∏ 𝑒 = 𝐵𝑠𝑖𝑛𝑐(𝐵(𝑡 − 𝑡 ))
Ejemplo 6:
Si x(t) tiene como transformada X(f), demostrar que la TIF es:
( )
a) 𝐹 {𝑌(𝑓) = 𝑋(𝑓)𝑢(𝑓)} = − ∗ 𝑥(𝑡)
( ) ( )
b) 𝐹 {𝑌(𝑓) = 𝑋(𝑓) ∗ 𝑢(𝑓)} = 𝑥(0) −
Ejemplo 7:
Si x(t) tiene como transformada X(f), demostrar:
a) 𝑥 ∗ (𝑡) = 𝑋 ∗ (−𝑓)
( )
b) ∫ 𝑡 𝑥(𝑡)𝑑𝑡 = −
( )
( )
c) ∫ 𝑡 |𝑥(𝑡)| 𝑑𝑡 = ∫
/ /
𝐹(𝑗𝜔) = ∫ 𝑓(𝑡)𝑒 𝑑𝑡 𝑋[𝑘] = ∑ 𝑥[𝑛]𝑒 k=0,1,2,…,N-1 análisis
/ /
𝑓(𝑡) = ∫ 𝐹(𝑗𝜔)𝑒 𝑑𝜔 𝑥[𝑛] = ∑ 𝑋[𝑘]𝑒 n=0,1,2,…,N-1 síntesis
1
𝑠𝑒𝑛 𝜔 𝑁 +
2
𝑋[𝑘] = 𝑥[𝑛]𝑒 = 𝑒 =
1
𝑠𝑒𝑛 𝜔
2
3.8 Propiedades de la Transformada discreta de Fourier (2 horas). P359-392
( ( )/ )
/ /
1−𝑒 ( / )
𝑠𝑒𝑛(𝜋𝑘/2)
𝑋[𝑘] = 𝑥[𝑛]𝑒 = 𝑒 = ( ( )/ )
=𝑒
1−𝑒 𝑠𝑒𝑛(𝜋𝑘/10)
Debido a que X[k] es un número complejo, s puede representar como magnitud y argumento
:
3.10 Transformada rápida de Fourier FFT (1 hora). P458-482
Es posible representar la DFT como:
/
𝑋[𝑘] = 𝑥[𝑛]𝑒 = 𝑥[𝑛]𝑊
1 /
1
𝑥[𝑛] = 𝑋[𝑘]𝑒 = 𝑋[𝑘]𝑊
𝑁 𝑁
/
−2𝜋𝑘𝑛 −2𝜋𝑘𝑛
𝑊 =𝑒 = 𝑐𝑜𝑠 + 𝑗𝑠𝑒𝑛
𝑁 𝑁
Para una secuencia compleja x[n] de N puntos, la DFT se puede expresar como sigue:
2𝜋𝑘𝑛 2𝜋𝑘𝑛
= 𝑥 [𝑛]𝑐𝑜𝑠 + 𝑥 [𝑛]𝑠𝑒𝑛
𝑁 𝑁
2𝜋𝑘𝑛 2𝜋𝑘𝑛
=− 𝑥 [𝑛]𝑠𝑒𝑛 − 𝑥 [𝑛]𝑐𝑜𝑠
𝑁 𝑁
Observe que para cada valor de k, el cálculo directo de X[k] implica N multiplicaciones complejas
(4N multiplicaciones reales) y N −1 sumas complejas (4N−2 sumas reales). En consecuencia, para
calcular todos los N valores de la DFT se necesitan N2 multiplicaciones complejas y N2−N sumas
complejas. El cálculo directo de la DFT es ineficiente, principalmente porque no se aprovecha de
las propiedades de simetría y periodicidad del factor de fase WN. En este caso, estas dos
propiedades son:
- Propiedad de periodicidad
( ) ( )
𝑊 =𝑊 =𝑊
𝑊 =𝑊 𝑊
Estas propiedades hacen posible la deducción de los algoritmos de FFT, ya que muestran
como el factor del ángulo gira en un círculo de magnitud unitario, i.e. solo el argumento varia.
DIEZMADO EN EL TIEMPO
Los algoritmos en los que la descomposición se realiza sobre la secuencia x[n], que se divide
sucesivamente en secuencias más pequeñas de DFTs. Se considera que N sea un numero de
base 2: N=2V. Entonces se pueden tener dos secuencias de N/2 puntos cada una, la primera
formada por índices pares y la segunda por índices impares, en el dominio de la frecuencia se
proponen los siguientes términos:
/ /
( )
𝑋[𝑘] = 𝑥[2𝑚]𝑊 + 𝑥[2𝑚 + 1]𝑊
/ /
O bien si F1[k] y F2[k] son las DFTs de N/2 de f1[m] y f2[m] respectivamente, entonces para k=0,1,…,N/2-1
Una vez realizado el primer diezmado temporal, se puede repetir el proceso para cada una de las secuencias
f1[n] y f2[n] tal que de f1[n] producirá:
Y f2[n] producirá:
Calculando la DFT de N/4 puntos, obtendríamos las DFT de N/2 puntos F1[k] y F2[k] a partir de
DIEZMADO EN FRECUENCIA
El diezmado en frecuencia, se obtiene empleando el método de divide y vencerás, eligiendo M = 2
y L = N/2. Esta elección de parámetros implica un almacenamiento por columnas de la secuencia
de datos de entrada. Para deducir el algoritmo, empezamos dividiendo la fórmula de la DFT en dos
sumatorios, de los que uno implica la suma de los N/2 primeros puntos de datos y el segundo la
suma de los N/2 últimos puntos de datos. De este modo, obtenemos:
/ / /
/
𝑋[𝑘] = 𝑥[𝑛]𝑊 + 𝑥[𝑛]𝑊 = 𝑥[𝑛]𝑊 +𝑊 𝑥[𝑛 + 𝑁/2]𝑊
/
/
Por otro lado, 𝑊 = (−1)
Ejemplo N=16:
Es posible comprobar el desarrollo de la FFT en DFT aplicando las operaciones mariposa
necesarias, por ejemplo para X[1]
se sabe que Wk+ N/2N =-WkN así que W816 = -W016, W916 = -W116, W1016 = -W216, ... W1516 = -W716,
sustituyendo estos valores en X(1)’, obtenemos:
Para X[14]
W1416 = W616, W2816 = -W416, W4216 = -W1016, W5616 = -W016, W7016 = -W616, W8416 =W416,
W9816 = W1016, W11216 = W016, W12616 = W616, W14016 = -W416, W15416 = -W1016, W16816 = -W016,
W18216 = -W616, W19616 = W416, W21016 = W1016, sustituyendo valores.
X(14)’= x(0)W016+x(1) W616 -x(2) W416 -x(3) W1016 -x(4) W016 -x(5) W616 +x(6) W416 +x(7) W1016+
x(8) W016+x(9) W616-x(10) W416-x(11) W1016-x(12) W016-x(13) W616+x(14) W416+x(15) W1016
agrupando términos por factor de ángulo iguales.
y así sucesivamente.
3.11 Aplicaciones en un sistema embebido de la FFT con señales reales
LEYENDA: “Los siguientes códigos fueros desarrollados por Luis Antonio Raygoza Pérez. Se permite el uso de los mismos para
cualquier fin bajo la única condición de que esta leyenda ocupe el encabezado del código a realizar”.
Se puede observar que es conveniente almacenar la tabla del factor del ángulo en la memoria fija y
donde solo es necesario calcular N/2 valores para realizar la FFT.
Ejemplo: FFT N=16 diezmado en frecuencia
z Wz N
0 1+j0
1 0.9238 – j0.3826
2z
2 0.7071 – j0.7071 2z 2z
3 0.3826 – j0.9238 W Nz e N
Cos ( ) jSen( )
4 0 – j1
N N
5 – 0.3826 – j0.9238
6 – 0.7071 – j0.7071
7 – 0.9238 – j0.3826
Es posible observar que paso significa cuantas localidades va a saltar el siguiente factor de ángulo, es
decir cuánto se le va a sumar al puntero z. Grupo es él número de mariposas por hacer sin regresar al
factor de ángulo a cero, o bien es él número de localidades a sumar al puntero y. Y Marip cuenta el
número de mariposas hechas, si marip es igual que grupo, entonces es hora de brincar al siguiente
grupo de mariposas. Esto también puede observarse en el diagrama de flujo de mariposas arriba.
Una vez finalizado el algoritmo se obtienen los módulos de los valores complejos resultantes, sin
embargo, se encuentran en desorden y para acomodarlos se hace un espejo de números binarios.
A continuación se muestran las localidades (valores) antes y después de acomodarlas.
//valor de MEMORIA
for(n=0; n<128; n++)
{
Vdob[2*n]=ADC[n]; //x[n] reales (pares)
Vdob[2*n+1]=0; //x[n] imaginarios (impares)
}
while(paso!=256) //paso=2
{ //cada=128
x=0; //opera=0
y=0;
while(x!=256)
{
//bloque , numero de bloques= 2 elevado a la potencia paso
y=y+cada; z=0; opera=0;
while(opera!=cada)
{
//Mariposa
Rdob=Vdob[x]; Idob=Vdob[x+1];
Vdob[x]=Vdob[x]+Vdob[y]; //suma de reales
Vdob[x+1]=Vdob[x+1]+Vdob[y+1]; //suma de imaginarios
Vdob[y]=Rdob-Vdob[y]; //resta de reales
Vdob[y+1]=Idob-Vdob[y+1]; //resta de imaginarios
Rdob=Vdob[y]; Idob=Vdob[y+1];
//Multiplicación compleja
Vdob[y]= (Rdob*Wdob[z])-(Idob*Wdob[z+1]);
Vdob[y+1]=(Rdob*Wdob[z+1])+(Wdob[z]*Idob);
y=y+2; x=x+2; z=z+paso; opera=opera+2;
}
x=y;
}
paso=paso*2; cada=cada/2;
}
if(y<z) //Intercambiar
{
Rdob=FFTdob[y];
Idob=FFTdob[z];
FFTdob[y]=Idob;
FFTdob[z]=Rdob;
}
y=y+1;
temp++;
}