フィルターのクリア

Calculate high and low length of given square wave?

4 ビュー (過去 30 日間)
MoeIsKing
MoeIsKing 2018 年 6 月 24 日
コメント済み: MoeIsKing 2018 年 6 月 25 日
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?

採用された回答

Ameer Hamza
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
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;
MoeIsKing
MoeIsKing 2018 年 6 月 25 日
yep thats the one :-P
i got the Image Processing Toolbox somehow ^^ nice thanks

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAnnotations についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by