Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una...

108
1/108 Transformada de Fourier y la librería de FFTw3

Transcript of Transformada de Fourier y la librería de FFTw3calebrascon.info/AR/Topic4/04.3-Fourier.pdf · una...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.