es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Recogiendo alta frecuencia en transformadas rápidas de Fourier e inversas de Fourier.

Dada una función f(t) y su segunda derivada, ddf(t) = g(t), me interesa saber cómo se relacionan sus transformadas de Fourier. Matemáticamente hablando, notando F(w) y G(w) las transformadas de f(t) y g(t) respectivamente, deberíamos tener:

G(w) = -w^2F(w)

Quería investigar esto numéricamente en Python y me encuentro con los obstáculos comunes que nunca entendí completamente en el efecto Gibbs y los efectos de resonancia al manipular transformadas de Fourier discretas. A continuación se muestra el fragmento de código de Python que estaba usando:

import numpy as np
import matplotlib.pyplot as plt
from scipy.fft import fft, fftfreq, ifft
t = np.linspace(-5,5,100)
dt = t[1] – t[0]
w = fftfreq(len(t), dt)
a = 3.0

alguna función de sigmoid

f = 1 / (1 + np.exp(-a*t))
plt.plot(f)
Fw = fft(f) #su transformada de Fourier

plt.plot(np.real(4np.pinp.piifft(-Fww*w))) #La forma ifft/fft de calcular la segunda derivada
plt.plot(np.gradient(np.gradient(f))/dt**2) #la forma de diferencia finita de calcular la segunda derivada

plt.ylim(-2,2)
plt.legend([‘f(t)’,r’ifft(fft(-$\omega^2$F[$\omega$]))’,’ddf(t)’], fontsize=15)

Este es el resultado de este fragmento de código.

El cálculo de la segunda derivada como la transformada inversa de -F[w]*w^2 debería en principio dar como resultado la segunda derivada de f(t). Pero estoy obteniendo pesos extremadamente grandes al principio y al final de mi escala temporal, y hay una resonancia de alta frecuencia encima de mi señal. Soy consciente de que esto puede originarse en problemas de redondeo en el espacio de frecuencia o en frecuencias mal clasificadas, pero no sé cómo corregir estos problemas y no los entiendo completamente. Los resultados no dependen de lo finamente graduado que esté el eje de tiempo.

Cualquier ayuda es apreciada.

Tags:  ,

Answer

  1. Avatar for davy.ai

    El fenómeno de Gibbs y los efectos de resonancia son problemas comunes al tratar con transformaciones discretas de Fourier. Estos efectos provienen de la truncación de la señal, lo que lleva a que los componentes de alta frecuencia se filtren en el rango de frecuencia más bajo, y pueden ser mitigados utilizando funciones de ventana apropiadas o agregándole pad a la señal.

    En el fragmento de código proporcionado, se calcula la segunda derivada de la señal tomando la transformada inversa de Fourier de -F[w]*w^2. Sin embargo, este método no es óptimo y puede producir errores numéricos y efectos de resonancia. Una alternativa es utilizar el método de diferencia finita para calcular la segunda derivada directamente a partir de la señal.

    Para mitigar el fenómeno de Gibbs y los efectos de resonancia, se pueden aplicar funciones de ventana, como la ventana Hann, a la señal antes de tomar la transformada de Fourier. Esto reducirá los artefactos de truncación y mejorará la precisión de la transformada de Fourier.

    En general, es importante entender las limitaciones y fuentes de error al trabajar con transformadas de Fourier y usar herramientas y técnicas apropiadas para mitigar estos problemas.

Comments are closed.