Ich versuche, die Ursache der Artefakte, die nach der Faltung auftreten, herauszufinden, sie sind in der Zeichnung um x = -.0016 und x = .0021 zu sehen (siehe Code unten). Ich falte die "Lorentz'sche" Funktion (oder die Ableitung der Langevin-Funktion), die ich im Code definiere, mit 2 Dirac-Impulsen in der Funktion "ditrib".
Ich würde Ihre Hilfe zu schätzen wissen. Danke Hier ist mein Code:Was ist die Ursache für die Artefakte dieses verschachtelten Signals?
import numpy as np
import matplotlib.pyplot as plt
def Lorentzian(xx):
if not hasattr(xx, '__iter__'):
xx = [ xx ]
res = np.zeros(len(xx))
for i in range(len(xx)):
x = xx[i]
if np.fabs(x) < 0.1:
res[i] = 1./3. - x**2/15. + 2.* x**4/189. - x**6/675. + 2.* x**8/10395. - 1382. * x**10/58046625. + 4. * x**12/1403325.
else:
res[i] = (1./x**2 - 1./np.sinh(x)**2)
return res
amp = 18e-3
a = 1/.61e3
b = 5.5
t_min = 0
dt = 1/5e6
t_max = (10772) * dt
t = np.arange(t_min,t_max,dt)
x_min = -amp/b
x_max = amp/b
dx = dt*(x_min-x_max)/(t_min-t_max)
x = np.arange(x_min,x_max,dx)
func1 = lambda x : Lorentzian(b*(x/a))
def distrib(x):
res = np.zeros(np.size(x))
res[int(np.floor(np.size(x)/3))] = 1
res[int(3*np.floor(np.size(x)/4))] = 3
return res
func2 = lambda x,xs : np.convolve(distrib(x), func1(xs), 'same')
plt.plot(x, func2(x,x))
plt.xlabel('x (m)')
plt.ylabel('normalized signal')
Hallo. Danke für deine Hilfe, ich werde es versuchen und zurückkommen. – MaximeMusterFrau
Danke, es hat funktioniert! Kannst du mir bitte erklären, warum man das tun sollte? Vielen Dank im Voraus. – MaximeMusterFrau
Wenn man einen Dirac Impulse mit einer Konstante umwickelt bekommt man einen Schritt, Idealerweise würde man einfach alle "Lorenzian" benutzen, anstatt das "Podest des endlichen Bereichs" zu hacken - aber da es auf +/- unendlich definiert ist ... – f5r5e5d