Nødvendig: højdepunkter og lavpunkter algoritme

J

JimTex

Guest
Jeg leder efter en pålidelig algroithm for at finde og karakterisere højdepunkter og lavpunkter i tidsserier af data. Min tidsserier er relativt korte (500-1000 point) og den primære højdepunkter og lavpunkter ikke gentages. Se venligst vedlagte billede. Thanks Jim
 
Hvis en prøve er mindre end det tidligere prøve, og også mindre end den næste prøve, så er prøven er et trug. En lignende logik kan være dannet for at finde toppe.
 
Du er nødt til Lavpas data først, ellers får du alt for mange falske trug Her er et eksempel script jeg smed sammen: [size = 2] [color = # 999999] Lagt efter 8 sekunder: [/color] [/size]% Opret et signal, der ser lidt ligesom jeres t = 1:1000; støj = randn (1, længde (signal)); signal = 10 * sin (0,02 * t) + 4 * sin (0,05 * t) + støj;% Udgang vektor output = nuller (1, længde (signal));% Lavpas det signal til at slippe af højfrekvente indhold. Bemærk at% filtfilt vil undgå at påvirke signalet. De nøjagtige værdier af filteret% var sammenknebne, indtil de kiggede til højre [ba] = smør (4, 0,05); lowpass_signal = (filtfilt (b, a, signal)), plot (t, signal, t, lowpass_signal); titel ("Sammenligning af signaler '); legende (' Original ',' Filtreret ');% Find hastigheden af forandringen af det filtrerede signal hældningen = diff (lowpass_signal);% Trough:% Zero hældning, mindre end omgivende værdier% Sæt et -1 ind i output vektor på det sted% Peak:% Zero hældning, større end den omgivende værdier% Sæt en -1 ind i output vektor på det sted for i = 1: (længde (signal) -6) if (abs (hældning (i))
 

Welcome to EDABoard.com

Sponsor

Back
Top