Matlab oplossing voor het vinden van specifieke positie als een teken verandering optreedt in vector

A

Andrew8611

Guest
Is er iemand weet dat een commando in Matlab, dat laat mij vinden de specifieke positie als een teken verandering optreedt in een vector? bijvoorbeeld, schreef ik t = 0:0.01:10000 en toen ik schreef y = sin (t), dat het commando laat me zien de positie op de vector y, waar het van de positieve veranderingen in negatief of van negatief naar positief?? ?
 
Ik weet niet of er een commando om de positie die teken veranderingen te vinden. Maar we kunnen schrijven dat de functie zelf. Ik denk dat niet complex is. kunnen we controleren elke y in een lus, als y (n)> 0 & & y (n +1)
 
Misschien is dit kleine voorbeeld zal je helpen. Het genereert een sinus frequentie sweep, en dan plots en tabulates de golfvorm van de nulpunt-grensovergangen.
Code:
% frequentie sweep F0 = 10;% start frequentie, Hertz F1 = 100;% stop frequentie, Hertz T = 0,5;% duur, seconden FS = 1000;% sample rate, Hertz N = round (T * FS); t = T * (0: N-1) '/ (N-1), y = sin (2 * pi * (F0 + (F1 - F0) / 2 .* t / T) .* t); subplot ( 2,1,1), plot (t, y); xlabel ('seconden');%% positief-helling van zero-crossing detector en z = ((y> 0), niet (circshift ((y> 0), 1))), z (1) = 0; subplot (2,1,2), plot (t, z); xlabel ('seconden');%% Vind de locaties van de zero-crossing points crossing_points = vinden ( z)
Om zowel positief als negatief kruisingen te sporen, de logica van deze lijn: [color = brown] z = XOR ((y> 0), circshift ((y> 0), 1)); z (1) = 0; [/color] Ik geef de voorkeur met behulp van array-methoden zoals dat door MATLAB voert ze veel sneller dan een lus "voor".
 
hi Ik ben in nodig om de nuldoorgang detector simuleren met sinus als input .. en dan convoluut het resultaat met sinusgolf .... kan iemand mij de code voor deze ....
 

Welcome to EDABoard.com

Sponsor

Back
Top