transformada de fourier y la librería de fftw3calebrascon.info/ar/topic4/04.3-fourier.pdf · una...
TRANSCRIPT
![Page 1: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/1.jpg)
1/108
Transformada de Fouriery la librería de FFTw3
![Page 2: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/2.jpg)
2/108
Transformada de Fourier
● En 1807, Fourier propuso una solución a una ecuación conocida como “La Ecuación de Calor”.
● Esta ecuación trataba de describir la manera en la que el calor se distribuía en una placa de metal, dada la existencia de fuentes de calor conocidas.
● Era una ecuación diferencial parcial parabólica, que en ese entonces no tenía solución.
![Page 3: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/3.jpg)
3/108
Transformada de Fourier
● Antes de Fourier, soluciones particulares para esta ecuación habían sido propuestas.
● Sólo aplicaban si la fuente de calor se comportaba como una onda.– Dícese, si se comportaba como una señal que
oscila a una única frecuencia, como una función de seno o coseno.
![Page 4: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/4.jpg)
4/108
Transformada de Fourier
● Fourier generalizó dichas soluciones de la siguiente manera:
● Varias ondas sumadas entre si pueden ser utilizadas para representar cualquier señal periódica.
● Y así, se inventaron las Series de Fourier.
![Page 5: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/5.jpg)
5/108
![Page 6: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/6.jpg)
6/108
![Page 7: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/7.jpg)
7/108
![Page 8: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/8.jpg)
8/108
![Page 9: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/9.jpg)
9/108
![Page 10: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/10.jpg)
10/108
![Page 11: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/11.jpg)
11/108
![Page 12: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/12.jpg)
12/108
![Page 13: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/13.jpg)
13/108
● F es la señal f transformada al dominio de la frecuencia.● ω
n son las frecuencias de las ondas que, al sumarse, representan a f.
● F(ωn) es la magnitud de la onda que oscila con frecuencia ω
n.
F̂ (ω1)
ω1
F̂ (ω2) F̂ (ω3) F̂ (ω4) F̂ (ω5) F̂ (ω6)ω2 ω3 ω4 ω5 ω6
![Page 14: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/14.jpg)
14/108
¿Para qué?
● Permite representar una señal, cualquier señal, en otro dominio.
● Es la misma señal, sólo que es vista de dos puntos de vista (o “dominio”) diferente.
![Page 15: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/15.jpg)
15/108
![Page 16: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/16.jpg)
16/108
t
ω
![Page 17: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/17.jpg)
17/108
Pero, podemos hacer muchas cosas en el dominio del tiempo... es cómodo y bonito.
¿Para qué necesitamos irnos al dominio de la frecuencia?
![Page 18: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/18.jpg)
18/108
Señal de Ruido
???
![Page 19: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/19.jpg)
19/108
Señal de Ruido Removida
Por medio de hacer 0 a la magnitud de la señal a esa frecuencia.
Filtrado por frecuencia o filtrado espectral.
La señal en el dominio de la frecuencia es también conocido como su espectro.
![Page 20: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/20.jpg)
20/108
Representación de Ondas
![Page 21: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/21.jpg)
21/108
● F es la señal f transformada al dominio de la frecuencia.● ω
n son las frecuencias de las ondas que, al sumarse, representan a f.
● F(ωn) es la magnitud de la onda que oscila con frecuencia ω
n.
F̂ (ω1)
ω1
F̂ (ω2) F̂ (ω3) F̂ (ω4) F̂ (ω5) F̂ (ω6)ω2 ω3 ω4 ω5 ω6
![Page 22: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/22.jpg)
22/108
Representación de Ondas
● Una onda puede ser representada con un coseno, con un seno, o con un exponencial, ya que la fórmula de Euler indica que:
● Donde e es el número Euler, que es la base del logaritmo natural, y se cálcula con la siguiente serie:
● Se puede redondear a 2.71828.
e ix=cos (x )+i sin (x )
e=1+11+
11∗2
+1
1∗2∗3+
11∗2∗3∗4
⋯
![Page 23: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/23.jpg)
23/108
Representación de Ondas
● Representar una onda con exponenciales nos brinda la posibilidad de simplificar las ecuaciones bastante.
● Por ejemplo, podemos representar una onda sf1 que oscila a una frecuencia ω1 y con una magnitud cf1 así:
s f 1(t)=c f 1
e iω1 t
![Page 24: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/24.jpg)
24/108
¿Qué es ω?
● Es la “frecuencia angular”: radianes por segundo.
● Recordemos que el exponencial es realmente una sumatoria de un coseno y un seno que reciben como entrada un ángulo.
![Page 25: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/25.jpg)
25/108
Relación entre ω y ζ
● La frecuencia en Hertz (ζ) representa periodos por segundo.
● Si cada periodo de una onda senoidal es 2π radianes, entonces:
ω = 2πζ
![Page 26: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/26.jpg)
26/108
Cálculo de la Transformada de Fourier
![Page 27: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/27.jpg)
27/108
La Transformada es una Sumatoria
● Una señal discreta se puede considerar como un arreglo de muestras de energía.
● Por lo tanto, según Fourier, deberíamos de poder representar cualquier momento en el tiempo de una señal como una sumatoria de las energías en ese momento de otras señales periódicas.
![Page 28: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/28.jpg)
28/108
Mapeo Formalde Frecuencia a Tiempo
Donde:• t es un momento en el tiempo en segundos• f(t) es la energía de la señal en el momento t• N es el número de señales periódicas con las cuales queremos representar a f(t)
• ωn es la frecuencia de la señal n.
f (t )=1N∑n=1
N
F̂ (ωn)e iωn t
![Page 29: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/29.jpg)
29/108
¿Mapeo?
● El valor f(t) es cálculado con todos los valores del dominio de la frecuencia F(ωn). Esto significa dos cosas:– El tamaño de la señal en el dominio de la
frecuencia es la misma que en el dominio del tiempo.
– Y como todo mapeo, se puede hacer en dirección inversa: calculando un F(ωn) con todos los valores del dominio del tiempo f(t).
![Page 30: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/30.jpg)
30/108
Mapeo Formalde Tiempo a Frecuencia
Donde:• t es un momento en el tiempo en segundos• f(t) es la energía de la señla en el momento t• T es el tiempo final de f(t)• ω
n es la frecuencia de la señal n.
F̂ (ωn)=1T∑t=0
T
f ( t)e−iωn t
![Page 31: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/31.jpg)
31/108
Versión Contínua
● Lo que estamos viendo realmente es la Transformada Discreta de Fourier.– Ya que es la que nos es más relevante.
● Recordatorio: una sumatoria de los valores de un señal es equivalente a una integral (área bajo la curva).
● Por lo tanto, la versión Contínua de esta transformada (la original) se puede obtener substituyendo las sumatorias por integrales.
![Page 32: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/32.jpg)
32/108
Versión Contínua
F̂ (ω)=1T∫
0
T
f (t)e−i ωt dt
f (t )=1N∫0
N
F̂ (ω)ei ωt d ω
![Page 33: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/33.jpg)
33/108
Versión Contínua (en Hertz)
F̂ (ζ )=∫ f (t)e−i2 πζ tdt
f (t )=∫ F̂ (ζ)e i2π ζ td ζ
![Page 34: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/34.jpg)
34/108
Componente DC
F̂ (0)=1T∑t=0
T
f ( t)e−i0 t
=1T∑t=0
T
f (t)
Es el promedio de la energía de la señal en el periodo.
![Page 35: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/35.jpg)
35/108
Componente DC
![Page 36: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/36.jpg)
36/108
Componente DC
![Page 37: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/37.jpg)
37/108
Componente DC
Ciclo de Trabajo: 50%
![Page 38: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/38.jpg)
38/108
Componente DC
Ciclo de Trabajo: 25%
![Page 39: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/39.jpg)
39/108
Componente DC
Ciclo de Trabajo: 75%
![Page 40: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/40.jpg)
40/108
Propiedades de la Fórmula de Euler
eix+e−ix=cos(x)+i sin(x)+(cos(−x)+i sin(−x))=cos(x)+i sin(x)+cos(−x)+i sin(−x)=cos(x)+i sin(x)+cos(x)−i sin(x)=2cos(x)
eix=cos(x)+i sin (x)
cos(x)=ℜ(eix)=
12(e ix
+e−ix)
![Page 41: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/41.jpg)
41/108
Propiedades de la Fórmula de Euler
eix−e−ix=cos(x)+i sin (x)−(cos(−x)+i sin (−x))=cos(x)+i sin (x)−cos(−x)−i sin (−x)=cos(x)+i sin (x)−cos(x)+i sin (x)=i2sin (x)
eix=cos(x)+i sin (x)
sin (x)=ℑ(eix)=
1i2
(eix−e−ix
)
![Page 42: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/42.jpg)
42/108
Propiedades de la Fórmula de Euler
cos(x)⋅cos( y)=12
(eix+e−ix
)⋅12
(eiy+e−iy
)
=14
(eix eiy+e ixe−iy+e−ix eiy+e−ixe−iy)
=14
(ei (x+ y )+ei(x− y )+e−i(x+ y )+e−i (x− y ))
=14
(ei (x+ y )+e−i(x+ y )+ei (x− y )+e−i (x− y ))
=12
(12
(ei (x+ y )+e−i(x+ y ))+12
(ei (x− y )+e−i (x− y )))
=12
(cos(x+ y)+cos(x− y))
![Page 43: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/43.jpg)
43/108
Propiedades de la Transformada de Fourier
δ(t) →F→ 1
![Page 44: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/44.jpg)
44/108
Propiedades de la Transformada de Fourier
1 →F→ δ(ζ)
![Page 45: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/45.jpg)
45/108
Propiedades de la Transformada de Fourier
x(t−t0) →F→ X (ζ)e−i2πζ t0
x(t)
x(t-t0)
t0
![Page 46: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/46.jpg)
46/108
Propiedades de la Transformada de Fourier
rec (t) →F→ sinc (ζ)
![Page 47: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/47.jpg)
47/108
Propiedades de la Transformada de Fourier
sinc (t) →F→ rect (ζ)
![Page 48: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/48.jpg)
48/108
Propiedades de la Transformada de Fourier
tri(t ) →F→ sinc2(ζ)
![Page 49: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/49.jpg)
49/108
Propiedades de la Transformada de Fourier
x(t)∗y (t ) →F→ X (ζ)Y (ζ)Convolución
Corr (x (t) , y (t)) →F→ X (ζ)Y H (ζ)Correlación
x(At ) →F→1A
X (ζ / A)Escala de Tiempo
e−At 2
→F→ √π2
e−(πζ)2/AGuassiana
![Page 50: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/50.jpg)
50/108
Algunas Consideraciones
● Las series de Fourier pueden representar cualquier señal periódica.
● La transformada de Fourier asume que la señal tiene un periodo infinito.
● Sólo tiene una limitante del tipo de señal que puede transformar:– Que tenga energía finita.
– Si fuera infinita, sería imposible calcular el componente DC.
![Page 51: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/51.jpg)
51/108
Algunas Consideraciones
● La transformada de Fourier puede transformar señales discontinuas:– Pero esto resulta en tratar de aproximar la
discontinuidad insertando armónicos.
![Page 52: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/52.jpg)
52/108
Problemas que Considerar
![Page 53: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/53.jpg)
53/108
Problema #1
● ¿Con cuáles frecuencias representamos a una señal?
● Harry Nyquist y Claude Shannon introdujeron un teorema que dice que: “para determinar completamente una señal con un ancho de banda conocido, se debe muestrear con una onda que tenga una frecuencia mayor al doble de su frecuencia máxima”.
![Page 54: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/54.jpg)
54/108
Problema #1
● Mejor dicho:– “Si una señal es muestreada con una frecuencia
ωs, entonces la frecuencia máxima que puede ser
representada en el dominio de Fourier es ωs/2”.
![Page 55: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/55.jpg)
55/108
● Tenemos una señal f muestreada de 48000 Hz.● Si ω
6 es su máxima frecuencia, entonces ésta debe ser 24000*(2π).
● El resto de las ωn están espaciadas uniformemente de ahí para atrás.
F̂ (ω1)
ω1
F̂ (ω2) F̂ (ω3) F̂ (ω4) F̂ (ω5) F̂ (ω6)ω2 ω3 ω4 ω5 ω6
![Page 56: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/56.jpg)
56/108
Problema #2
● Si la formula de Euler es:
● Y la transformada dice que:
● Entonces F(ωn) es un número complejo.
e ix=cos (x )+i sin (x )
F̂ (ωn)=1T∑t=0
T
f ( t)e−iωn t
![Page 57: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/57.jpg)
57/108
Números Complejos
● Un número complejo es la sumatoria de dos valores: uno real y uno imaginario.
F̂ (ωn)=xn+ iynAl visualizar la señal en el dominio de frecuencia, usualmente lo que vemos es la magnitud de F(ω
n):
∣F̂ (ωn)∣=√ xn2+ yn2
![Page 58: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/58.jpg)
58/108
Números Complejos: Fase
● La “fase” de la frecuencia es el ángulo del número complejo (fácilmente calculado con atan2 en C).
F̂ (ωn)=xn+ iyn
![Page 59: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/59.jpg)
59/108
Números Complejos
● Es crucial recordar esto al estar manipulando las magnitudes en tiempo real.
● Se pueden hacer restas, multiplicaciones, etc. pero se tienen que hacer considerando que dichas operaciones serán sobre números complejos.
![Page 60: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/60.jpg)
60/108
Problema #2.5
● El resultado de la Transformada Inversa también es un número complejo:
f (t )=1N∑n=1
N
F̂ (ωn)e iωn t
![Page 61: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/61.jpg)
61/108
Problema #2.5
● No es un problema realmente, ya que la energía en el tiempo se presenta en la parte real del número calculado:
f (t ) ← ℜ( f ( t))= x t
f (t )= x t+iy t
Por lo que el resultado final, realmente es un número real, común y corriente.
![Page 62: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/62.jpg)
62/108
Problema #3
● MITO: Si el tamaño de la señal en tiempo es la misma que la señal en frecuencia, entonces una señal de 1024 puntos en el tiempo tendrá 1024 puntos de frecuencia.
● Cierto y falso. Sí, serán 1024 puntos de frecuencia, pero no todos representan a una frecuencia única.
![Page 63: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/63.jpg)
63/108
La Transformada Inversa
● Habíamos dicho que la transformada inversa es:
f (t )=1N∑n=1
N
F̂ (ωn)e iωn t
![Page 64: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/64.jpg)
64/108
La Real Transformada Inversa
● La verdadera transformada inversa es la siguiente:
● Sí, hay tal cosa como “frecuencias negativas”, porque Fourier quiso realmente fregar nuestras mentes.
f (t )=1
2N∑n=−N
N
F̂ (ωn)ei ωn t
![Page 65: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/65.jpg)
65/108
El Resultado de la Transformada de Fourier
ω1 ω2 ω3 ω4 ω5 ω6ω1ω2ω3ω4ω5ω6
Este espejeo tiene que ver con el cálculo de las partes imaginarias y las partes reales de la Transformada de Fourier y los famosos “Círculos de Harmónicos”, ilustrados brevemente en el video “FourierCircles.mp4” de la página del curso.
![Page 66: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/66.jpg)
66/108
Lo que normalmente se nos entrega en las implementaciones de Fourier:
No sé por qué, honestamente.
Supongo que es más sencillo manejar los índices de al principio del vector.
También, cabe mencionar que...
ω1 ω2 ω3 ω4 ω5 ω6 ω1ω2ω3ω4ω5ω6
![Page 67: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/67.jpg)
67/108
Otra forma de espejeo:
DC es la componente de “directa”, y es la energía promedio de la señal. Representa el “centro” de la señal en el eje vertical. Las señales de audio están centradas en 0, por lo que esta componente se puede ignorar en nuestro caso.
Sólo hay una diferencia de un “bin” entre ambas formas de espejeo, por lo que...
ω1 ω2 ω3 ω4 ω5DC ω1ω2ω3ω4ω5ω6
![Page 68: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/68.jpg)
68/108
Esto es con lo que vamos a trabajar:
CONCLUSIÓN: El resultado de transformar una señal de 1024 puntos en el tiempo es una señal con 1024 puntos en frecuencia “espejeados”, realmente calculando 512 puntos útiles.
POR LO TANTO: al manipular el valor en una frecuencia, se tiene que manipular, de la misma manera, su contraparte en el “espejo” de la señal en el dominio de la frecuencia.
ω1 ω2 ω3 ω4 ω5 ω6 ω1ω2ω3ω4ω5ω6
![Page 69: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/69.jpg)
69/108
Problema #4
● Fourier propuso que “varias ondas sumadas entre si pueden ser utilizadas para representar cualquier señal periódica.”
● ¿Qué sucede si nuestra señal no es periódica?
![Page 70: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/70.jpg)
70/108
Problema #4
● Hacemos trampa: suponemos que nuestra señal tiene un periodo del tamaño de la señal.
● Para que esto funcione adecuadamente, tenemos que cerciorarnos que nuestra señal comience y termine con valores no discontínuos.
![Page 71: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/71.jpg)
71/108
Problema #4
SeñalLo que la Transformada ve Resultado
![Page 72: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/72.jpg)
72/108
Problema #4
SeñalLo que la Transformada ve Resultado
![Page 73: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/73.jpg)
73/108
Problema #4
SeñalLo que la Transformada ve Resultado
Sangrado de Frecuencias(Frequency Bleed Over)
![Page 74: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/74.jpg)
74/108
¿Sangrado de Frecuencias?
Es la mejor traducción que se me ocurrió a Frequency Bleed Over.
● Básicamente, se requiere de la presencia de otras señales periódicas para poder representar discontinuidades.
● Esto no es bueno, porque se insertan frecuencias que no están en nuestra señal original.
![Page 75: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/75.jpg)
75/108
Hann
● Hay varias formas de hacer continuos los puntos iniciales y finales de la señal.
● Forma Popular: multiplicando, punto a punto, a la señal por la función Hann.
● En este ejemplo, T es 200.
w (t )=0.5 (1−cos(2 π tT−1
))
![Page 76: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/76.jpg)
76/108
Problema #4
SeñalLo que la Transformada ve Resultado
![Page 77: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/77.jpg)
77/108
Problema #4
SeñalLo que la Transformada ve
El sangrado se minimiza
Resultado
![Page 78: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/78.jpg)
78/108
Problema #5
● Si T en la ecuación de la Transformada es el “tiempo final de la señal en el dominio del tiempo”:
● Se necesita de toda la señal para llevar a cabo su transformación.
● ¿Y en tiempo real cómo le hacemos?
F̂ (ωn)=1T∑t=0
T
f ( t)e−iωn t
![Page 79: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/79.jpg)
79/108
Transformada de Tiempo Corto
● En vez de transformar toda la señal, transformamos “trozos” de la señal.
● Estos trozos son conocidos como ventanas.● Se transforman una tras otra, como vayan
llegando.● Así T se convierte en el “tiempo final de la
ventana”.
![Page 80: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/80.jpg)
80/108
Transformada de Tiempo Corto
● Uno estaría tentado a solamente partir la señal en dichas ventanas, transformar cada ventana, modificar la ventana en el dominio de la frecuencia, y transforma en inversa.
● Pero, recuerden el Problema #4: tenemos que aparentar como si la señal (o, en este caso, la ventana de la señal) fuera periódica:– Hacer que los puntos del tiempo inicial y final no
sean discontinuos
![Page 81: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/81.jpg)
81/108
Problema #5.5
● Entonces, multiplicamos por Hann cada ventana, la transformamos, la modificamos en frecuencia, y la transformamos de inversa.
¿No?
● El resultado de esto es tener varias ventanas multiplicadas por Hann una tras otra.
![Page 82: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/82.jpg)
82/108
FFT
IFFT
Ventaneo
Modificaciónen Frecuencia
![Page 83: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/83.jpg)
83/108
Problema #5.5
● Al hacer esto, tendremos una señal que sube y baja de volumen artificialmente.
● SOLUCIÓN: sobrelape.
![Page 84: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/84.jpg)
84/108
Sobrelape
● Una virtud de una función Hann larga es que, al sumar la segunda mitad de la función con la primera, obtenemos una señal con una magnitud casi constante.
![Page 85: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/85.jpg)
85/108
Sobrelape
● Normalmente ventanearíamos, con ventanas de tamaño T:– [1 T], [T+1 2T], [2T+1 3T], etc.
● Pero si ventaneamos de esta manera:– [1 T], [T/2+1 3T/2], [T+1 2T], [3T/2+1 5T/2] ,etc.
– Nuestra ventanas siguen siendo de tamaño T, pero comenzamos cada T/2, en vez de cada T.
![Page 86: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/86.jpg)
86/108
Esto es lo que veíamos en baudline, en la ventana del tiempo.
![Page 87: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/87.jpg)
87/108
Resultado de Sumatoria
![Page 88: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/88.jpg)
88/108
Sobrelape
● Este proceso se le conoce como “Sobrelapa-y-Suma” (overlap-and-add).
● Se puede con otro tipo de funciones como:– Función Hamming (con 50% sobrelape)
– Función Blackman (con 33% sobrelape)
● Todos con sus pros y cons, pero Hann es una de las funciones más populares para llevarlo a cabo.
![Page 89: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/89.jpg)
89/108
Esto significa que vamos a tener a una serie de ventanas de tiempo transformadas al dominio de
frecuencia.
![Page 90: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/90.jpg)
90/108
Espectrograma
tiempo
frecuencia
magnitud
v1 v
2 v3 v
4
vw
![Page 91: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/91.jpg)
91/108
Resolución en Tiempo vs. Resolución en Frecuencia
● Es importante hacer notar que el tamaño de la ventana impacta a las resoluciones de ambos dominios, pero de maneras opuestas:– Una ventana larga:
● Más puntos de frecuencia para la transformada, por lo tanto, mayor resolución de frecuencia.
● Menos ventanas disponibles (de una señal de tamaño finito), por lo tanto, menos resolución de tiempo.
– Y viceversa.
● Ventanas entre 1024 y 2048 puntos de tiempo son un buen compromiso.
![Page 92: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/92.jpg)
92/108
Ahora,
¿cómo programamos todo esto?
![Page 93: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/93.jpg)
93/108
Nuevo mejor amigo: FFTw3
● FFT significa “Fast Fourier Transform”.
– La transformada original suma señales para un coeficiente que se restan en el cálculo de otros coeficientes.
– La FFT evita estas sumas redundantes, acelerando el cálculo al grado de poderse hacer en tiempo real.
● Esta “aceleración” fue propuesta por Cooley y Tukey en 1965.
● FFTw3 implementa una versión de esta “aceleración” que es una de las más usadas en aplicaciones de tiempo real.
● Sitio Oficial:
http://www.fftw.org/fftw3_doc/
![Page 94: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/94.jpg)
94/108
Beneficios
● Muy rápida y basada en C.● Se instala facilmente con apt-get:
sudo apt-get install libfftw3-dev
● Es código abierto.– Repositorio Oficial:
https://github.com/FFTW/fftw3
![Page 95: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/95.jpg)
95/108
Beneficios
● Implementación de números complejos compatible con la de C y la de C++.– Para C:
#include <complex.h>
– Para C++:
#include <complex>
![Page 96: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/96.jpg)
96/108
FFTw3 en C
● Se debe incluir DESPUÉS de incluir a complex.h
#include <complex.h>
#include <fftw3.h>
● Para definir números complejos:
double complex
● Para compilar:
gcc jack_fft.c -o jack_fft -ljack -lfftw3
![Page 97: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/97.jpg)
97/108
Ejemplo Básico C#include <complex.h>
#include <fftw3.h>
//inicializar buffers que usa fftw3
double complex *i_fft, *i_time, *o_fft, *o_time;
i_fft = (double complex *) fftw_malloc(sizeof(double complex) * 1024);
i_time = (double complex *) fftw_malloc(sizeof(double complex) * 1024);
o_fft = (double complex *) fftw_malloc(sizeof(double complex) * 1024);
o_time = (double complex *) fftw_malloc(sizeof(double complex) * 1024);
//configurar a fftw3
i_forward = fftw_plan_dft_1d(1024, i_time, i_fft , FFTW_FORWARD, FFTW_MEASURE);
o_inverse = fftw_plan_dft_1d(1024, o_fft , o_time, FFTW_BACKWARD, FFTW_MEASURE);
… Ya adentro de la función de procesamiento de audio
… llenar a i_time con la señal de tiempo
fftw_execute(i_forward);
… modificar a i_fft para filtrar y copiar el resultado a o_fft
fftw_execute(o_inverse);
… obtener de o_time información filtrada en el dominio del tiempo
![Page 98: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/98.jpg)
98/108Ejemplo Completo CFFTw3 ya configurado
// “in” y “out” es nuestra entrada y salida en el tiempo respectivamente// nframes es el tamaño de la ventana
for(i = 0; i < nframes; i++){i_time[i] = in[i];
}fftw_execute(i_forward);
for(i = 0; i < nframes; i++){o_fft[i] = i_fft[i];
}o_fft[5] = 0; //filtrando la quinta frecuenciao_fft[nframes-1-5] = 0; //espejeando dicha manipulación
fftw_execute(o_inverse);for(i = 0; i < nframes; i++){
out[i] = creal(o_time[i])/nframes; //fftw3 requiere normalizar su salida}
![Page 99: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/99.jpg)
99/108
FFTw3 en C++
● Se debe incluir a complex así (sin “.h”):
#include <complex>
● Para definir números complejos:
std::complex<double>
● Se requiere utilizar la siguiente función para hacer casting entre los dos tipos de variables complejas:
reinterpret_cast<fftw_complex>
● Para compilar:
gcc jack_fft.cpp -o jack_fft -ljack -lfftw3
![Page 100: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/100.jpg)
100/108
Ejemplo Básico C++#include <complex>
#include <fftw3.h>
//inicializar buffers que usa fftw3
std::complex<double> *i_fft, *i_time, *o_fft, *o_time;
i_fft = (std::complex<double>*) fftw_malloc(sizeof(std::complex<double>) * 1024);
i_time = (std::complex<double>*) fftw_malloc(sizeof(std::complex<double>) * 1024);
o_fft = (std::complex<double>*) fftw_malloc(sizeof(std::complex<double>) * 1024);
o_time = (std::complex<double>*) fftw_malloc(sizeof(std::complex<double>) * 1024);
//configurar a fftw3
i_forward = fftw_plan_dft_1d(1024, reinterpret_cast<fftw_complex*>(i_time), reinterpret_cast<fftw_complex*>(i_fft), FFTW_FORWARD, FFTW_MEASURE);
o_inverse = fftw_plan_dft_1d(1024, reinterpret_cast<fftw_complex*>(o_fft), reinterpret_cast<fftw_complex*>(o_time), FFTW_BACKWARD, FFTW_MEASURE);
… Ya adentro de la función de procesamiento de audio
… llenar a i_time con la señal de tiempo
fftw_execute(i_forward);
… modificar a i_fft para filtrar y copiar el resultado a o_fft
fftw_execute(o_inverse);
… obtener de o_time información filtrada en el dominio del tiempo
![Page 101: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/101.jpg)
101/108Ejemplo Completo C++FFTw3 ya configurado
// “in” y “out” es nuestra entrada y salida en el tiempo respectivamente// nframes es el tamaño de la ventana
for(i = 0; i < nframes; i++){i_time[i] = in[i];
}fftw_execute(i_forward);
for(i = 0; i < nframes; i++){o_fft[i] = i_fft[i];
}o_fft[5] = 0; //filtrando la quinta frecuenciao_fft[nframes-1-5] = 0; //espejeando dicha manipulación
fftw_execute(o_inverse);for(i = 0; i < nframes; i++){
out[i] = real(o_time[i])/nframes; //fftw3 requiere normalizar su salida}
![Page 102: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/102.jpg)
102/108
Tamaño de Ventana
● Para que la aceleración de FFTw3 funcione, es esencial que el tamaño de ventana sea una potencia exacta de 2:– T = 2x, donde x es un número entero.
● 1024 y 2048 satisfacen esta condición.● Además de que es compatible con las necesidades de
sobrelape de la función Hann.
![Page 103: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/103.jpg)
103/108
Tamaño de Ventana
● Si no cumple con esa condición, se requiere que los datos se “expandan” a potencia exacta de 2 más cercana y mayor, llenando con ceros los que sobran.
● Ejemplo:
– Tamaño de ventana, T: 5 → [1 2 3 4 5]
– Potencia exacta de 2 más cercana: 8
– Nueva ventana con T:8 → [1 2 3 4 5 0 0 0]
● No le quita exactitud al proceso ni al ventaneo.
![Page 104: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/104.jpg)
104/108
Ejemplos Completos
● En la página del curso están ejemplos completos en los que una ventana (o, periodo) de JACK es convertida y regresada al tiempo sin hacerle nada y sin ventaneo.– En C: jack_fft.c
– En C++: jack_fft.cpp
● Compilen y verifiquen que funciona.
![Page 105: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/105.jpg)
105/108
ADVERTENCIA
● Este código no está haciendo nada con la información.– Sólo se va al dominio de la frecuencia y regreso al
dominio al tiempo.
![Page 106: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/106.jpg)
106/108
Ejercicio #1
● Filtren todas las frecuencia menores a 500 Hz.● ¿Cómo sabemos en cual índice de o_fft se
ubican dichas frecuencias?● Recuerden verificar su salida con baudline.
● Si hacemos este filtrado, ¿cómo se escucha? ¿Por qué?
![Page 107: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/107.jpg)
107/108
Ejercicio #2
● FFTw3 nada más proporciona la conversión e inversa de la transformada.
● El ventaneo lo tenemos que hacer nosotros.● Recuerden:
– Verificar que se está utilizando una ventana de tamaño igual a una potencia exacta de 2.
– Utilizar la técnica “sobrelapa-y-suma” con la función Hann.
![Page 108: Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una sumatoria de un coseno y un seno que reciben como entrada un ángulo. 25/89 Relación](https://reader030.vdocuments.mx/reader030/viewer/2022020304/5baf11d509d3f2d16a8be071/html5/thumbnails/108.jpg)
108/108
Examen Parcial
● Hacer un agente de JACK que filtren todas las frecuencias afuera de un rango que el usuario entregue como argumentos numéricos en Hz.
● Ejemplo:
./programa 1000 4000
Filtra todas las frecuencias afuera del rango entre 1 kHz y 4 kHz.