Faltung und Entfaltung mit Scipy

Ich versuche, Dekonvolution mit Python zu berechnen. Ich habe ein Signal, sagen wir f (t), das ist die von der Fensterfunktion gesprochenen g (t) gewunden. Gibt es einen direkten Weg, um die Entfaltung zu berechnen, damit ich das ursprüngliche Signal wieder bekommen kann?

Zum Beispiel f (t) = exp (-t ** 2/3); Gaußsche Funktion und g (t) = Trapezfunktion

Vielen Dank im Voraus für Ihren freundlichen Vorschlag.

  • Python schließen Kinder beim Schließen des Hauptprozesses
  • Wie man die Anzahl der Koeffizienten begrenzt, um bei der Rekonstruktion eines 1D-Signals mit Wavelet-Zerlegung in Python zu verwenden
  • Python 2.6.x theading / signal / atexit scheitern bei einigen Versionen?
  • Wie bekomme ich einen Verweis auf eine Instanzmethode von einem Dekorateur
  • Signalbehandlung in Python
  • Wie kann ich einen Django-Signal-Handler verspotten?
  • Signal.alarm nicht auslösen Ausnahme auf Zeit
  • Python: tötet oder beendet Unterprozeß beim Timeout
  • One Solution collect form web for “Faltung und Entfaltung mit Scipy”

    Ist das ein analytisches oder numerisches Problem?

    Wenn es numerisch ist, verwenden Sie scipy.signal.devconvolve: http://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.deconvolve.html

    Aus den docs:

    >>> from scipy import signal >>> sig = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1,]) >>> filter = np.array([1,1,0]) >>> res = signal.convolve(sig, filter) >>> signal.deconvolve(res, filter) (array([ 0., 0., 0., 0., 0., 1., 1., 1., 1.]), array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])) 

    Andernfalls, wenn Sie eine analytische Lösung wünschen, können Sie das falsche Werkzeug verwenden.

    Darüber hinaus, nur ein Tipp für die Zukunft google-ing, wenn Sie über Faltung sprechen, ist die Aktion in der Regel / oft "gefaltet" nicht "gewunden", siehe https://english.stackexchange.com/questions/64046/convolve- Vs-konvolute

    Python ist die beste Programmiersprache der Welt.