import numpy as np
import matplotlib.pyplot as plt
def signum(t):
return np.sign(t)
def fourier_transform(t, f):
dt = t[1] - t[0]
N = len(t)
return np.fft.fft(f) * dt, np.fft.fftfreq(N, dt)
t = np.linspace(-10, 10, 500, endpoint=False)
f = signum(t)
F, freq = fourier_transform(t, f)
plt.figure(figsize=(10, 6))
plt.subplot(2, 1, 1)
plt.plot(t, f)
plt.title('Signum Function')
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.grid(True)
plt.subplot(2, 1, 2)
plt
.plot
(freq
, np
.abs(F
))plt.title('Fourier Transform of Signum Function')
plt.xlabel('Frequency')
plt.ylabel('Magnitude')
plt.grid(True)
plt.tight_layout()
plt.show()
aW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBtYXRwbG90bGliLnB5cGxvdCBhcyBwbHQKCmRlZiBzaWdudW0odCk6CiAgICByZXR1cm4gbnAuc2lnbih0KQoKZGVmIGZvdXJpZXJfdHJhbnNmb3JtKHQsIGYpOgogICAgZHQgPSB0WzFdIC0gdFswXQogICAgTiA9IGxlbih0KQogICAgcmV0dXJuIG5wLmZmdC5mZnQoZikgKiBkdCwgbnAuZmZ0LmZmdGZyZXEoTiwgZHQpCgp0ID0gbnAubGluc3BhY2UoLTEwLCAxMCwgNTAwLCBlbmRwb2ludD1GYWxzZSkKZiA9IHNpZ251bSh0KQpGLCBmcmVxID0gZm91cmllcl90cmFuc2Zvcm0odCwgZikKCnBsdC5maWd1cmUoZmlnc2l6ZT0oMTAsIDYpKQpwbHQuc3VicGxvdCgyLCAxLCAxKQpwbHQucGxvdCh0LCBmKQpwbHQudGl0bGUoJ1NpZ251bSBGdW5jdGlvbicpCnBsdC54bGFiZWwoJ1RpbWUnKQpwbHQueWxhYmVsKCdBbXBsaXR1ZGUnKQpwbHQuZ3JpZChUcnVlKQoKcGx0LnN1YnBsb3QoMiwgMSwgMikKcGx0LnBsb3QoZnJlcSwgbnAuYWJzKEYpKQpwbHQudGl0bGUoJ0ZvdXJpZXIgVHJhbnNmb3JtIG9mIFNpZ251bSBGdW5jdGlvbicpCnBsdC54bGFiZWwoJ0ZyZXF1ZW5jeScpCnBsdC55bGFiZWwoJ01hZ25pdHVkZScpCnBsdC5ncmlkKFRydWUpCgpwbHQudGlnaHRfbGF5b3V0KCkKcGx0LnNob3coKQ==
import numpy as np
import matplotlib.pyplot as plt
def signum(t):
return np.sign(t)
def fourier_transform(t, f):
dt = t[1] - t[0]
N = len(t)
return np.fft.fft(f) * dt, np.fft.fftfreq(N, dt)
t = np.linspace(-10, 10, 500, endpoint=False)
f = signum(t)
F, freq = fourier_transform(t, f)
plt.figure(figsize=(10, 6))
plt.subplot(2, 1, 1)
plt.plot(t, f)
plt.title('Signum Function')
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.grid(True)
plt.subplot(2, 1, 2)
plt.plot(freq, np.abs(F))
plt.title('Fourier Transform of Signum Function')
plt.xlabel('Frequency')
plt.ylabel('Magnitude')
plt.grid(True)
plt.tight_layout()
plt.show()