Sinus in ganzzahlige Perioden schneiden
JaSoIstEs
Forum-Guru
Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
Verfasst am : 09.07.2019, 09:00
Titel : Sinus in ganzzahlige Perioden schneiden
Hey Leute,
ich habe folgendes Signal (siehe Anhang a).
Das Signal müsste ich so schneiden das ich eine ganzzahlige Anzahl an Perioden habe.
Sprich wir erhalte ich das erste zero-crossing von negative zu positiv und das letzte negativ zu positiv.
So hätte man gewährleistet das man eine ganzzahlige Anzahl an Perioden hat.
Hab euch die Daten die in Anhang a abgebildet sind auch hier hochgeladen (x.mat und y.mat)
LG
Beschreibung:
Download
Dateiname:
y.mat
Dateigröße:
26.58 KB
Heruntergeladen:
253 mal
Beschreibung:
Download
Dateiname:
x.mat
Dateigröße:
49.74 KB
Heruntergeladen:
253 mal
Beschreibung:
Download
Dateiname:
a.png
Dateigröße:
95.69 KB
Heruntergeladen:
267 mal
JaSoIstEs
Themenstarter
Forum-Guru
Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
Verfasst am : 09.07.2019, 10:05
Titel :
So teilweise hinbekommen.
Dann erhalte ich folgendes Signal (siehe Anhang b).
Jetzt fehlt mir noch eine halbe Periode die ich nicht weg bekomme... .
LG
Beschreibung:
Download
Dateiname:
sinOrigCrop.png
Dateigröße:
163.48 KB
Heruntergeladen:
256 mal
JaSoIstEs
Themenstarter
Forum-Guru
Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
Verfasst am : 09.07.2019, 10:31
Titel :
Hier mit bekomme ich was ich will
Wie bekomme ich das aber automatisiert hin?
Das Problem ist ich brauche immer ganzzahlige Perioden.
Hier beim Testsignal ist da ja noch überschaubar aber wenn die Daten größer werden muss ich das irgwndwie sicherstellen das ich immer ganzzahlige Periodn habe.
Jan S
Moderator
Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
Verfasst am : 09.07.2019, 13:37
Titel : Re: Sinus in ganzzahlige Perioden schneiden
Hallo JaSoIstEs,
Du suchst ein "zero-crossing". Also:
find ( y > 0 , 1 , 'first ')
ist weniger sicher.
Gruß, Jan
JaSoIstEs
Themenstarter
Forum-Guru
Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
Verfasst am : 10.07.2019, 09:09
Titel :
Hi Jan,
Danke für deine Nachricht und deinen Lösungsvorschlag.
Ich habe es wie folgt gelöst:
Code:
t = linspace ( 0 ,10 *pi ,200 ) ;
x = sin ( t) ;
zero_crossings_pos = [ ] ;
for kind = 1 :length ( t) -1
if ( x( kind) <= 0 ) && ( x( kind+1 ) > 0 )
zero_crossings_pos = [ zero_crossings_pos kind] ;
end
end
figure ,
plot ( t,x,t,x,'o ')
hold on
plot ( t( zero_crossings_pos) ,x( zero_crossings_pos) ,'r* ')
hold off
xlabel ( 'x ')
ylabel ( 'sin( x) ')
title ( 'sin ')
t_crop = t( zero_crossings_pos( 1 ,1 ) :zero_crossings_pos( 1 ,end ) ) ;
x_crop = x( zero_crossings_pos( 1 ,1 ) :zero_crossings_pos( 1 ,end ) ) ;
figure ,
plot ( t_crop,x_crop)
xlabel ( 'x ')
ylabel ( 'sin( x) ')
title ( 'Cropped sin ')
LG
Jan S
Moderator
Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
Verfasst am : 11.07.2019, 12:49
Titel :
Hallo JaSoIstEs,
Diese Schleife ist ausgesprochen ineffizient:
Dies hier läuft deutlich schneller:
[EDITED, Jan, Typo fixed: "&&" -> "&"]
Gruß, Jan
Zuletzt bearbeitet von Jan S am 16.07.2019, 12:54, insgesamt einmal bearbeitet
JaSoIstEs
Themenstarter
Forum-Guru
Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
Verfasst am : 11.07.2019, 13:04
Titel :
Danke für den Tipp.
Werde ich so übernehmen =).
JaSoIstEs
Themenstarter
Forum-Guru
Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
Verfasst am : 11.07.2019, 13:06
Titel :
Bekomme folgenden Fehler:
Operands to the || and && operators must be convertible to logical scalar values.
JaSoIstEs
Themenstarter
Forum-Guru
Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
Verfasst am : 12.07.2019, 12:36
Titel :
So fertig.
Danke für die Hilfe
Einstellungen und Berechtigungen
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
| 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.