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

Impulsfunktion darstellen

 

thunder
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2010a Unix (Ubuntu)
     Beitrag Verfasst am: 03.03.2009, 08:43     Titel: Impulsfunktion darstellen
  Antworten mit Zitat      
Hallo,

ich habe da mal eine bestimmt ganz banale frage:

wie kann ich eine impulsantwort darstellen?
das problem ist das sie aus einem dirac impuls und einer Sprun besteht.

g(t)=0,5*delta(t)+s(t)exp(-2*t)

mit delta(t)=diracimpuls und s(t)=step (also ab 0 gleich1).

ich steh irgendwie aufm schlauch. wäre nett wenn mir da jemand weiterhelfen könnte wie das in matlab umsetze.
also ich denke mein problem ist wie ich dem delta hier sage das es bei t=0 zu 1 wird (bzw. inf) und das s(t) ab t=1 zu 1 wird und vorher null ist.
t=-100:0.01:100;

edit by steve: Ich hoffe du meintest "banale Frage" Wink
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 03.03.2009, 09:50     Titel:
  Antworten mit Zitat      
Moin,

das könnte man mit einem SWITCH lösen:
Code:

switch t>=0
    case 0
        s = 0;
    case 1
        s = 1;
end

% oder wenn s(t) ebenfalls ein Vektor sein soll:
s = ones(size(t));
s(t<0) = 0;
 


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
thunder
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2010a Unix (Ubuntu)
     Beitrag Verfasst am: 03.03.2009, 10:08     Titel:
  Antworten mit Zitat      
super danke, funzt einwandfrei mit ones(size(t))
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.03.2009, 10:10     Titel:
  Antworten mit Zitat      
Wenn du die Symbolic Math Toolbox hast könnten dir auch
Code:
dirac
% und
heaviside
weiterhelfen.
 
thunder
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2010a Unix (Ubuntu)
     Beitrag Verfasst am: 03.03.2009, 21:30     Titel:
  Antworten mit Zitat      
mit dirac und heaviside funktioniert es auch. das war genau das was ich gesucht habe.

habe jetzt nur noch das problem das ich jetzt das Faltungsintegral mit dem eingangssignal

x(t)=heaviside*x1*sin(omega*t) berechnen möchte.

dazu verschiebe ich ja die fkt x(t-tau).
mein t läuft von t=-10:0.01:10;
wie kann ich jetzt diese zeitliche verschiebung in meiner integralunfktion berücksichtigen?
bzw. wie muss ich in dem fall tau definieren?

soweit hab ich meinen Code schon geschrieben. der plot ist auch stimmig.
Code:

t=-10:0.01:10;
f=1/(2*pi);
w=(2*pi)*f;
x1=0.5;
g=0.5.*dirac(t)+heaviside(t).*exp(-2*t);
x=heaviside(t).*x1.*sin(w.*t);
 


Aber wie kann ich möglicht elegant eine zeitlich everschiebung und faltung des signals erreichen???

danke für eure hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
thunder
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2010a Unix (Ubuntu)
     Beitrag Verfasst am: 03.03.2009, 23:07     Titel:
  Antworten mit Zitat      
ok hab mal was probiert.

also die faltung von g und x bekomme ich mit conv(g,x) hin. soweit so gut.
das problem ist nun, das die werte in nem array? oder Vektor? stehen der 1x4001 einträge hat. miene zeit t hat aber nur 1x2001 werte.

wie kann ich mir das ergebnis von conv(g,x) anzeigen lassen. wenn ich das mit irgendeiner zeit machen lasse, hab ich das problem das nicht das ergebnis rauskommt, welches ich haben will im vgl. zur lösung mit hand und dann plot.
hab hier mal den code:
Code:

t=-10:0.01:10;
t1=t-.5;                %Zeitverschiebung
f=1/(2*pi);
w=(2*pi)*f;
x1=0.5;
g=0.5.*dirac(t)+heaviside(t).*exp(-2*t);
x=heaviside(t).*x1.*sin(w.*t);
plot(t,g,'r');
hold;
grid;
plot(t,x,'b');
y=conv(x,g);
y1=(x1/(4+w^2))*((4+0.5*w^2)*sin(w*t)-w*cos(w*t))+((x1*w)/(4+w^2))*exp(-2*t);%lösung der Faltung symbolisch
%plot(t1,y,'g');
plot(t1,y1,'y')


ein weiteres problem ist, dass ich in y dann nur NaN stehen, was beim typ double soviel heißt wie kein input (so hab ichs jedenfalls verstanden). wieso hat er keine werte nach der faltung???
Private Nachricht senden Benutzer-Profile anzeigen
 
thunder
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2010a Unix (Ubuntu)
     Beitrag Verfasst am: 04.03.2009, 09:50     Titel:
  Antworten mit Zitat      
Kann ich eigentlich mit Matlab ein Integral auch symbolisch auswerten?

zum beispiel:

y(t)=Integrla[x(t-tau)]g(tau)dtau
(minus unendlich bis plus unendlich)

wobei g(t)=0,5*dirac(t)+heaviside(t)exp(-2t)
und
x(t)=heaviside(t)*x_dach sin(w*t).
Private Nachricht senden Benutzer-Profile anzeigen
 
Pingu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.10.2009, 11:07     Titel: Heaviside-Fkt
  Antworten mit Zitat      
Hallo,

ich beschäftige mich seid kurzem erst mit Matlab und wollte eine
Heaviside Funktion über mehreren Perioden darstellen. Über eine
ist es mir bereits gelungen mit:

function y = heaviside(x);

y = ( x >= 0 )

ich verwende dann diese Funktion um ein Signal zu erstellen, der über mehrere Perioden läuft, im idealen Fall unendlich? Geht das und wenn ja, kann mir einer helfen?

Wäre supi lieb Smile

*danke*
 
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.