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

Pulsdauer einer Rechteckfunktion rechnerisch bestimmen

 

Cipci
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 09.11.16
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 09.11.2016, 18:55     Titel: Pulsdauer einer Rechteckfunktion rechnerisch bestimmen
  Antworten mit Zitat      
Hallo zusammen! Very Happy

Ich bin noch recht neu mit Matlab unterwegs, also seid mir nicht böse, wenn diese Frage kleinlich wirkt ^^

Ich habe meine Rechteckfunktion "zu Fuß" programmiert:
Code:

 t = [-5:0.01:5];
for i = 1:length(t)  
    if t(i) >= -0.1 && t(i) <=  0.1
        RECT(i) = 1;
    else
        RECT(i) = 0;
    end
end


Nun würde ich gerne die Dauer des Rechteckpulses rechnerisch bestimmen, also die Zeit, in der die Funktion genau den Wert 1 hat. Hier in dem Beispiel wären das dann die 0,2s, jeweils 0,1s im posiviten und im negativen Abschnitt der Zeitachse.

Meine Idee war, dass ich irgendwie auf die Position des größten "Sprunges" der Funktionswerte komme, diese läge dann ja genau dort, wo der Wert von 0 auf 1 springt. Dann müsste ich nur noch den Abstand diese Position zur 0 bestimmen und schon hätte ich meine Pulsdauer.

Allerdings weiß ich nicht wie und wäre froh, wenn mir jemand einen Tipp oder vielleicht auch einen Teil des Programms zeigen kann Smile

fft.m
 Beschreibung:

Download
 Dateiname:  fft.m
 Dateigröße:  842 Bytes
 Heruntergeladen:  241 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.11.2016, 05:21     Titel: Re: Pulsdauer einer Rechteckfunktion rechnerisch bestimmen
  Antworten mit Zitat      
Hallo Cipci,

Eine Vereinfachung:
Code:
t = -5:0.01:5;  % Keine eckigen Klammern nötig
Rect = (t >= -0.1 & t <=  0.1);  % [EDITED, (i) removed]

Die Kanten findest Du mit:
Code:
strfind(Rect, [0,1])
% Oder
find(Rect, 1, 'first')  % bzw 'last'


Gruß, Jan

Zuletzt bearbeitet von Jan S am 10.11.2016, 11:46, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Tom_Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2016, 09:08     Titel:
  Antworten mit Zitat      
Hallo,

@Jan: Die '(i)' müssten in deiner Lösung noch weg.

Eine weitere Möglichkeit die Pulsdauer zu bestimmen:
Code:
pulsdauer = (sum(Rect)-1)*0.01;


Gruß Tom
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.11.2016, 11:48     Titel:
  Antworten mit Zitat      
Hallo Tom_Gast,

Zitat:
@Jan: Die '(i)' müssten in deiner Lösung noch weg.

Danke! Ist erledigt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Cipci
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 09.11.16
Wohnort: ---
Version: R2015b
     Beitrag Verfasst am: 10.11.2016, 17:43     Titel:
  Antworten mit Zitat      
Ich habe es jetzt eingebaut und es funktioniert genau so, wie ich es haben wollte Smile
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.