FFT SciPy

FFT SciPy
Tanto Numpy como Scipy en Python tienen muchas rutinas FFT (desde básicas hasta complejas). El concepto Scipy FFT se examinará a fondo en esta publicación. También exploraremos cómo aplicarlo en la práctica. Explicaremos cuáles son las funciones de FFT Scipy y le daremos algunos ejemplos de programación para comenzar. El scipy.fft (), Scipy.fft rfft (), Scipy.Los métodos fft shift (), fftfreq () y fftconvolve () se cubrirán en detalle junto con ejemplos en este artículo. Los ejemplos se proporcionan para aclarar el tema para que pueda ponerlo en práctica con facilidad.

Python Scipy FFT Explicación

El método de análisis de Fourier define únicamente una función como el total de componentes periódicos y deriva la señal que está cubierta por el módulo de Python Scipy llamado SciPy.FFT. La función y su transformación de Fourier (FT) se reemplazan por equivalentes discretizados para producir la transformación discreta de Fourier.

Usando una secuencia basada en el tiempo, la transformación de Fourier, simplemente llamada Fourier, es una función matemática que determina la velocidad de rotación general, su resistencia y el ciclo compensado para el ciclo potencial de cada patrón. Las formas de onda, las operaciones principales del tiempo, el espacio o cualquier otra variable se pueden transformar fácilmente con la ayuda de la transformación de Fourier.

Estudiaremos el método de transformación de Fourier más popular con ejemplos en las siguientes subsecciones.

Ejemplo 1:

Comenzamos describiendo el Scipy.método fft () usando la siguiente pieza de código. En este ejemplo, podemos ver que el Scipy.El método fft () puede calcular la transformación rápida de Fourier recibiendo una matriz de valores y devolviendo el resultado. Mira cada línea del código.

Aquí, en el código, puede ver que los dos módulos, Scipy y Numpy, se importan primero. Después de eso, se crea una variable llamada "input_val" en la que un Numpy.El método Array () se utiliza para producir una cuadrícula de valores. Después de eso, se puede ver otra variable llamada "res_val" en la que el scipy.Se utiliza el método FFT donde se pasa el "input_val" creado. Finalmente, se da el resultado.

importación
importar numpy
input_val = numpy.Array (numpy.Arange (8))
res_val = scipy.FFT (input_val)
Imprimir (res_val)

Aquí, la salida está conectada para su referencia:

Ejemplo 2:

Discutamos la función de scipy fft rfft de Python. La transformación discreta de Fourier en una dimensión de la entrada real especificada se calcula mediante el módulo scipy rfft () del lenguaje de programación de Python.

La salida del método RFFT es de tipo nDarray. La entrada final si no se especifica el eje, o la entrada que ha sido truncada o truncada y transformada a lo largo del eje proporcionado por el eje.

Tomemos el programa como ejemplo ejecutando el siguiente código. Intente comprender el programa de código por completo.

En la primera línea, el método RFFT se importa desde el SciPy.módulo FFT. Después de eso, el método RFFT se aplica a los valores de matriz creados. Los valores son 2,4,6 y 8. El resultado del método FFT se almacena en la variable creada llamada "Magnum". Por último, la declaración "Imprimir (Magnum)" se usa para mostrar el resultado.

De Scipy.fft import rfft
magnum = rfft ([2, 4, 6, 8])
Imprimir (Magnum)

Esta es la forma correcta de usar el método Python Scipy rfft () y cómo calcular la transformación discreta de Fourier.

La siguiente es la salida que se genera a partir del código anterior para su ayuda:

Ejemplo 3:

El tercer ejemplo de este artículo incluye los detalles sobre Python Scipy FFT Shift. El método fftshift () produce la y del tipo de ndarray. Aquí, Y es la matriz desplazada.

Consideremos este ejemplo.

Inicialmente, puede ver que importamos las bibliotecas requeridas. El código para hacer esto es "de Scipy.fft import fftshift, fftfreq ”como verá al comienzo del código que se adjunta a continuación. Después de eso, calculamos las frecuencias utilizando la segunda línea del código. Ahora, proporcionamos las frecuencias a un método de fftshift () utilizando el código "res = fftshift (frecuencias)". Finalmente, la impresión (res) se usa para mostrar el resultado para los lectores.

De Scipy.Fft import fftshift, fftfreq
Frequncies = fftfreq (7,4)
res = fftshift (frequncies)
Imprimir (Res)

Adjunto está la captura de pantalla resultante. Esta es la mejor manera de cambiar el componente de frecuencia cero del espectro al punto medio. Se desplaza en las frecuencias definidas utilizando el método fftshift ():

Ejemplo 4:

La frecuencia de las muestras está controlada por el Scipy Scipy.módulo FFT. Los centros de contenedores de frecuencia son devueltos por la matriz flotante "F". Está en ciclos por unidad. El método fftfreq () devuelve un objeto NDARARY con el valor F.

El siguiente es otro programa de ejemplo para comprender mejor el concepto.

Primero, importamos las bibliotecas necesarias utilizando la declaración de importación. Luego, como se ve en el siguiente código, produce una señal y Fourier la transforma.

Importamos las bibliotecas requeridas (Numpy, FFT y FFTREQ) utilizando las declaraciones de importación. Después de eso, creamos una señal. Luego se transforma usando Fourier como se muestra en el siguiente código. Después de eso, calculamos las frecuencias de muestra y predefinimos el tiempo como "Time_st = 0.1 ". Esta es la forma recomendada de usar el método fftfreq () disponible en Python Scipy.

importar numpy
De Scipy.FFT import fft
De Scipy.fft import fftfreq
creado_sig = numpy.Array ([3, -4, 5, 0, 2, 5, 8, 10], dtype = float)
ft_val = fft (create_sig)
data_val = create_sig.tamaño
Time_st = 0.1
Freq = fftfreq (data_val, d = time_st)
Imprimir (Freq)

Aquí está el resultado:

Ejemplo 5:

FFT es utilizado por el método fftconvolve () de Scipy en el scipy.Módulo de señal para convolucionar matrices N-dimensionales (transformación rápida de Fourier). El siguiente código de programación de muestra demuestra la idea fftConvolve (). Consulte el siguiente código adjunto.

El código es muy similar a los códigos de muestra anteriores, excepto que utilizamos el método fftconvolve () aquí y determinamos los niveles de ruido y autocorrelación.

Ejecute este código de muestra (consulte la siguiente imagen adjunta) y comprenda cómo usar el método fftConvolve () para convolucionar una matriz n-dimensional:

De Scipy.Signal Import fftConvolve
importación.señal
importar numpy
Importar matplotlib.Pyplot como PLT
Sig1 = Numpy.aleatorio.default_rng ()
Res = Sig1.Standard_normal (500)
autocorrelación = fftConvolve (res, res [::-1], mode = 'full')
Fig, (Orig_axes, Mag_axes) = PLT.subtramas (2, 1)
Orig_axes.Parcela (res)
Orig_axes.set_title ('ruido')
Mag_axes.trama (numpy.Arange (-len (res)+1, len (Res)), autocorrelación)
Mag_axes.set_title ('autocorrelación')
higo.TRIT_LAYOUT ()
higo.espectáculo()

Ver la siguiente salida. Esta salida se genera a partir del código anterior. El primer gráfico muestra el ruido y el segundo gráfico muestra la autocorrelación:

Conclusión

Scipy FFT es el tema de discusión en esta publicación. Para resumir, la simple matriz Numpy 1-D se pasa al Scipy.Método fft () que calcula la transformación rápida de Fourier y devuelve la matriz transformada. Tenemos varias técnicas que incluyen scipy fft () shift (), fftfreq () y fftconvolve (). Se proporcionan las muestras de programación y las discusiones detalladas de cada una de estas técnicas. Para comprender mejor dicho tema, consulte los códigos que se proporcionan en este artículo.