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

Impulsantwort durch Ableitung der Sprungantwort

 

DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 29.06.2011, 13:43     Titel: Impulsantwort durch Ableitung der Sprungantwort
  Antworten mit Zitat      
Hallo Mathespezis,

leitet man eine Sprungantwort ab, erhält man ja die Impulsantwort. Die Sprungantwort x[n] habe ich gemessen, kenne aber keine Funktionsgleichung.

Wenn ich die Sprungantwort nun in den Frequenzbereich transformiere, erhält man ja Real- und Imaginärteil

ReX = x[n] * cos(...)
ImX = - x[n] * sin(...)

Für die Rücktransformtion rechnet die IDFT ja folgendes...

x[n] = ReX[n] * cos(...) + ImX[n] * sin(...)

Hier fehlt natürlich die Summation etc., aber darauf kommt es mir nicht an.
Die Ableitung von cos = -sin und sin wird zu cos. Real- und Imaginärteil bleiben ja als konst. Faktor erhalten. Ebenso kann ich bei der Summenregel zur Ableitung jedes Glied einzeln differenzieren. Kann ich nun einfach die Ableitung von sin und cos bei der IDFT einsetzen und erhalte dann die Impulsantwort?
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 29.06.2011, 16:46     Titel:
  Antworten mit Zitat      
Ich habe mir jetzt eine Funktion geschrieben, die meine Idee umsetzt.

Code:

function output = Differenzierer(sig1)
% Zweck:
% Ableitung der Sprungantwort führt zur Impulsantwort
% Da die Funktion der Sprungantwort nicht bekannt ist, soll sie per FFT in
% die einzelnen Sinus und Cosinus Schwingungen zerlegt werden
% Methode:
% Die Funktion transformiert die Sprungantwort in den Frequenzbereich und
% soll aus den zerlegten Signalanteilen die Ableitung bilden und
% in den Zeitbereich rücktransformieren
%
% kopieren der Eingangsvektoren
sig1 = double(sig1(:));
% nächste Zweierpotenz für FFT
fftsize = 2^nextpow2(length(sig1));
% fftsize = outlength;
% mit Nullen auf fftsize auffüllen
sig1 = [sig1; zeros(fftsize-length(sig1),1)];
% Berechnung des Frequenzspektrums
sig1 = fft(sig1,fftsize);
% Zerlegung in Real- und Imaginärteil und anschließender Skalierung
Re = real(sig1(1:(fftsize/2)+1))./(fftsize/2);
Re(1) = Re(1)/2;
Re((fftsize/2)+1) = Re((fftsize/2)+1)/2;
Im = - (imag(sig1(1:(fftsize/2)+1))./(fftsize/2));
% inverse DFT mit Ableitung
output = zeros(1,fftsize)';
for k=0:(fftsize/2)
    for i=0:fftsize-1
        % eigentlich... + Re() * cos() -> Ableitung = - Re() * sin()
        output(i+1) = output(i+1) - (Re(k+1)* sin(2*pi*k*i/fftsize));
        % eigentlich... + Im() * sin() -> Ableitung = Im() * cos()
        output(i+1) = output(i+1) + (Im(k+1)* cos(2*pi*k*i/fftsize));
    end    
end
 


Leider stimmt die Impulsantwort nicht mit der tatsächlichen Impulsantwort des PT2 Systems überein. Habe ich einen Fehler in der Ableitung...oder geht das über die FFT einfach nicht (ist also mehr oder weniger Zufall, dass ich in etwa eine Impulsantwort erhalte)?

Wäre für Hilfe/Input sehr dankbar!

Impulsantwort_test.GIF
 Beschreibung:

Download
 Dateiname:  Impulsantwort_test.GIF
 Dateigröße:  14.59 KB
 Heruntergeladen:  1162 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
joker811
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 29.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2011, 20:29     Titel:
  Antworten mit Zitat      
also erstmal sieht das ja schon gar nicht so schlecht aus
aber

ich bin der meinung dass

d/dt[Re * cos(wt)] = -Re * w * sin(wt)

oder irre ich mich da??
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 29.06.2011, 20:44     Titel:
  Antworten mit Zitat      
Du hast recht...d.h. ich muss hier mit Substitution und Kettenregel arbeiten Rolling Eyes

Ich leite ja hier aber nach d/df ab...kommt dann der ganze Term 2*pi*k... nach vorn?

Vielen Dank für den Hinweis!!
Private Nachricht senden Benutzer-Profile anzeigen
 
joker811
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 29.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2011, 20:49     Titel:
  Antworten mit Zitat      
also ich würde sagen ja alles nach vorne
den rest von deinem algorithmus habe ich noch nicht weiter untersucht
mir fiel nur auf das dein ergebnis fast passt bis auf die amplituden
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 29.06.2011, 21:05     Titel:
  Antworten mit Zitat      
So geht es leider nicht...

Die Funktion geht zumindest bei einer richtigen IDFT (also ohne das Umdrehen von cos und sin) einwandfrei und liefert wieder die Sprungantwort.
Private Nachricht senden Benutzer-Profile anzeigen
 
joker811
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 29.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2011, 21:18     Titel:
  Antworten mit Zitat      
ich versteh eigentlich auch nicht ganz was du da machst...vielleicht seh ich auch das problem nicht aber

im diskreten würde ich die ableitung mit [x(n)-x(n-1)]/Ta berechnen
und im kontiniuerlich fall , fall es gar nicht anders geht

d/dt f(x) = -j*w F(jw) und F(jw) hast du ja schon (bzw die fft davon)

vllt hilft dir das sonst musst du mir nochmal das problem erklären
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 29.06.2011, 21:32     Titel:
  Antworten mit Zitat      
Du hast vollkommen Recht. Da stand ich auf dem Schlauch...die FFT ist vollkommen überflüssig. Das war von hinten durch die Brust ins Auge Embarassed
Private Nachricht senden Benutzer-Profile anzeigen
 
joker811
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 29.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2011, 21:42     Titel:
  Antworten mit Zitat      
funktioniert es denn nun??

würde mich interessieren welchen weg du nun gegangen bist
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Themenstarter

Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 29.06.2011, 21:54     Titel:
  Antworten mit Zitat      
Habs damit getestet...

Code:



Ist ja nix anders als [x(n)-x(n-1)]. Damit erhalte ich die richtige Impulsantwort.
Private Nachricht senden Benutzer-Profile anzeigen
 
joker811
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 29.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2011, 22:22     Titel:
  Antworten mit Zitat      
tja manchmal kanns so einfach sein ...
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 - 2024 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.