Matlab løsning til at finde specifikke position, når et tegn på forandring opstår inde vektor

A

Andrew8611

Guest
Er der nogen kender en kommando i Matlab, der lader mig med at finde den specifikke position, når et tegn på forandring sker inde i en vektor? For eksempel skrev jeg t = 0:0.01:10000 og så skrev jeg y = sin (t), som kommandoen lader mig se den position på vektor y, hvor det skifter fra positivt til negativt eller fra negativ til positiv???? ?
 
Jeg ved ikke, om der er en kommando til at finde den position, der underskriver ændringer. Men vi kan skrive, at funktionen selv. Jeg tror, det er ikke kompliceret. vi kan tjekke de enkelte Y i en løkke, hvis y (n)> 0 & & y (n +1)
 
Måske dette lille eksempel vil hjælpe dig. Den genererer en sinusbølge frekvens sweep, og derefter plots og tabulates bølgeformen positive-slope nul-grænseovergange.
Code:
% Frekvens feje F0 = 10;% startfrekvens, Hertz F1 = 100;% stoppe frekvens, Hertz T = 0,5;% varighed, sekunder 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); udgaaende ( 2,1,1), plot (t, y), xlabel ('sekunder');%% Positiv-slope zero-crossing detektor z = og ((y> 0), ikke (circshift ((y> 0), 1))), z (1) = 0; udgaaende (2,1,2), plot (t, z); xlabel ('sekunder');%% Find placeringen af nul-grænseovergangene crossing_points = finde ( z)
For at opdage både positive og negative krydsninger, ændre logikken linie til dette: [color = brown] z = xor ((y> 0), circshift ((y> 0), 1)); z (1) = 0; [/color] Jeg foretrækker at bruge vifte af metoder som at fordi MATLAB henretter dem meget hurtigere end en "for" loop.
 
Hej Jeg er i nødt til at simulere nulgennemgang detektoren med sinusbølge som input .. og derefter convolute resultatet med sinusbølge .... kan nogen give mig koden til dette ....
 

Welcome to EDABoard.com

Sponsor

Back
Top