Calculate high and low length of given square wave?
4 ビュー (過去 30 日間)
古いコメントを表示
warning matlab beginner here :-/
I would like to calculate the high and low pulselength from a real signal, if it is over 10 it is high under 10 it is low. Signal consists of 2002x2 numbers, time and voltage from a light bar...
If i import it with matlab i get 2 seperate double variables, voltage and time as "2002x1 double".
Now to segment the high pulse:
highSignals = signal > 10
Now i can count the high numbers (logic 1) and if i knwo the time distance from before i have the length.
Like: NumberofOnes=50 HighTime=dt*NumberofOnes
Can anyone give me a tip which function does that easyier or more structurised?
0 件のコメント
採用された回答
Ameer Hamza
2018 年 6 月 24 日
If you have Image Processing Toolbox, then one option is to use regionprops() to find the length of all the high areas and then average them to get a better estimate of highTime.
dt = mean(diff(second)); % sampling time
highRegions = regionprops(Volt>10, 'Area');
averageNumberofOnes = mean([highRegions.Area]);
highTime = averageNumberofOnes*dt;
2 件のコメント
Image Analyst
2018 年 6 月 24 日
Moes, if you want all the lengths of the valid sections individually you can do
allAreas = [highRegions.Area];
allTimes = dt * allAreas;
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Annotations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!