WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Deconvolution funktioniert nicht

 

Pedde

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2013, 20:01     Titel: Deconvolution funktioniert nicht
  Antworten mit Zitat      
Hallo alle miteinander,

ich bin gerade dabei einen Kanal zu ermitteln um dann ihn wieder zu extrahieren. Und zwar habe ich den Kanal durchgemessen und somit die Impulsantwort erhalten. Diese ist ein Vektor mit 2002 Elementen. Im Anschluss daraufhin habe ich ein Signal mit der selben länge mittels des Matlab Befehls: Ergebnis = conv(Signal,Impulsantwort). Als Ergebnis habe ich nun die Systemantwort in Vektorieller Form mit einer Länge von 4003 Elementen.

Und nun zu meinem Problem: Ich möchte jetzt das ganze Rückwärtsrechnen und zwar indem ich Signal_app = deconv(Ergebnis, Impulsantwort) rechne. Wenn ich das mache kommt allerdings ein sehr komisches Ergebnis heraus das nicht stimmen kann.
Später möchte ich dann auch nicht das Selbe Signal verwenden sondern ein beliebiges "Ergebnis" Signal.

Bin am verzeifeln und weis nicht wie ich wieder das Ursprüngliche Signal bekomme. Habe schon was von nem Least-Square Ansatz gehört, aber das kann ich doch mit Vektoren nicht machen oder? Ich weis es gäbe noch die Möglichkeit das ganze im Frequenzbereich zu machen, das möchte ich aber umgehen.

Wäre euch sehr dankbar für eure Hilfe,

Viele Grüße,
Petra


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.01.2013, 00:21     Titel: Re: Deconvolution funktioniert nicht
  Antworten mit Zitat      
Hallo Petra,

Wie können wir Dir denn weiter helfen? Bisher ist die Beschreibung Deines Problems eher vage. Was genau ist z.B. ein "sehr komisches Ergebnis" und wieso kann es nicht stimmen? Was ist ein beliebiges "Ergebnis" Signal und wozu möchtest Du es verwenden?

Am besten teilst Du das Problem erstmal in überschaubare Abschnitte und klärst sie Stück für Stück. Konkreter Code und Test-Daten sind meist besser verständlich als eine Beschreibung als Text.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Pedde

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2013, 15:02     Titel: Deconvolution funktioniert nicht
  Antworten mit Zitat      
Hi Jan,

danke für deine Antwort. Ich weis meine Erklärung war nicht gerade Verständlich ich probiers mal nochmal...hoffentlich klappts jetzt besser Smile

Also mein Ziel ist es ein empfangenes Signal aus einem mir bekannten Kanal (ich hab die Impulsantwort) zu dekodieren. Das wollte ich mit der deconv() funktion machen, die mir allerdings ein falsches Ergebnis liefert. Das gesendete Signal ist mir bekannt

So war bisher meine mathematische Denkweise:
Zeile 1: empfangenesSignal = conv(gesendetesSignal, ImpulsantwortKanal);

das hat soweit ganz gut funktioniert. Wenn ich jetzt jedoch das gesendete Signal ermitteln will mit dem Ergebnis aus Zeile 1, machte ich das bisher so:

Zeile 2: gesendetesSignal = deconv(empfangenesSignal,Impulsantwort)

Allerdings kam da ein komplett falsches Ergebnis raus.

Und jetzt brauch ich Hilfe wie ich die Zeile 2 alternativ berechnen kann.
Ich hab was von nem Least-Squares ansatz gehört, hab aber keine Ahnung wie ich die Matrizen aufstellen muss.

Danke für eure Hilfe,
Liebe Grüße,
Petra
 
Pedde

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2013, 15:22     Titel: Deconvolution funktioniert nicht
  Antworten mit Zitat      
kurz gesagt:
ich habe die Gleichung
A*x =b (entspricht conv)

ich möchte jetzt die Matrix A ausrechnen, wobei mir b und x bekannt ist.
(entspricht deconv)
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.01.2013, 23:39     Titel: Re: Deconvolution funktioniert nicht
  Antworten mit Zitat      
Hallo Petra,

Zitat:
A*x =b (entspricht conv)
ich möchte jetzt die Matrix A ausrechnen, wobei mir b und x bekannt ist.

Aber dann ist A doch gar nicht eindeutig bestimmt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.01.2013, 00:07     Titel:
  Antworten mit Zitat      
Zitat:
Ich weis es gäbe noch die Möglichkeit das ganze im Frequenzbereich zu machen, das möchte ich aber umgehen.


Warum? Ab einer gewissen Anzahl von Messwerten ist dieser Weg ohnehin schneller als die Faltung im Zeitbereich. Evtl. rechnet die conv() Funktion sogar im Frequenzbereich Wink

Ich könnte dir dafür sofort eine Lösung anbieten. Das die Rückwärtstransformation mittels deconv nicht richtig funktioniert bzw. nicht das erwartete Ergebnis liefert habe ich auch schon festgestellt. Allerdings weiß ich da auch keine Lösung. Es könnte evtl. daran liegen, wenn man die Vektoren y und h nicht vorher entsprechend mit Nullen auf die Länge n + m -1 erweitert (Faltungssatz).

x[n] z.B. = Einheitssprung
h[m] = Impulsantwort des Systems
y[n + m - 1] = Sprungantwort

1) Faltung: y[n+m-1] = conv(x[n],h[m])
2) Rückwärtsfaltung: x[n] = deconv(y[n + m -1],h[m + n - 1])

Das ist aber nur eine vage Vermutung.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.