Python | Transformación rápida de Fourier

Es un algoritmo que juega un papel muy importante en el cálculo de la Transformada Discreta de Fourier de una secuencia. Convierte una señal espacial o temporal en una señal del dominio de la frecuencia.
La señal DFT se genera mediante la distribución de secuencias de valores a diferentes componentes de frecuencia. Trabajar directamente para convertir en la transformada de Fourier es computacionalmente demasiado costoso. Por lo tanto, se usa la transformada rápida de Fourier ya que calcula rápidamente al factorizar la array DFT como el producto de factores dispersos. Como resultado, reduce la complejidad de cálculo de DFT de O(n 2 ) a O(N log N). Y esta es una gran diferencia cuando se trabaja en un gran conjunto de datos. Además, los algoritmos de FFT son muy precisos en comparación con la definición de DFT directamente, en presencia de un error de redondeo.

Esta transformación es una traducción del espacio de configuración al espacio de frecuencia y esto es muy importante en términos de explorar tanto las transformaciones de ciertos problemas para un cálculo más eficiente como para explorar el espectro de potencia de una señal. Esta traslación puede ser de x n a X k . Es convertir datos espaciales o temporales en datos de dominio de frecuencia.

sympy.discrete.transforms.fft( ) :

Puede realizar la transformada discreta de Fourier (DFT) en el dominio complejo.
Automáticamente, la secuencia se rellena con cero a la derecha porque la FFT radix-2 requiere el número de punto de muestra como una potencia de 2. Para secuencias cortas, use este método con argumentos predeterminados solo porque con el tamaño de la secuencia, la complejidad de las expresiones aumenta. .


Parameters : 
-> seq : [iterable] sequence on which DFT is to be applied.
-> dps : [Integer] number of decimal digits for precision.

Returns : 
Fast Fourier Transform

Ejemplo 1 :

# import sympy 
from sympy import fft
  
# sequence 
seq = [15, 21, 13, 44]
  
# fft
transform = fft(seq)
print (transform)

Producción :

FFT : [93, 2 - 23*I, -37, 2 + 23*I]


Ejemplo 2:

# import sympy 
from sympy import fft
  
# sequence 
seq = [15, 21, 13, 44]
  
decimal_point = 4
  
# fft
transform = fft(seq, decimal_point )
print ("FFT : ", transform)

Producción :

FFT :  [93, 2.0 - 23.0*I, -37, 2.0 + 23.0*I]

Publicación traducida automáticamente

Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *