他の人が述べたように、それはDSPの質問の詳細ですとdsp.stackexchange.comがpropablyあなたのより良い答えを与えるだろうが、それまで、これは役立つかもしれない:
data=csvread('acceleration.txt',1)
threshold_y=max(data)*0.5; %Thanks to GameOfThrows
thershold_x=101; %how many zeros can be between to ones to still count as continuous
addframe=50; %if you want a little bit of data before and after the active area
logic_index=data>threshold_y;
num_index=find(logic_index);
distance=diff(num_index);
gaps=[1 ; find(distance>thershold_x)]; %find the gaps bigger than your threshold
final_index=false(length(data),1);
for i=1:length(gaps)-1 %add ones between
final_index(num_index(gaps(i)+1)-addframe:num_index(gaps(i+1))+addframe)=true;
end
plot(x,data,x,final_index);
それはあなたがdecribed何基本的にあなたの質問ではなく、領域の中のゼロを扱うことが追加されています。 @GameofThrowsに感謝します。
信号ファイルの例を挙げることはできますか?あなたのすべての信号に共通する特徴は何ですか? – Finn
https://www.dropbox.com/s/lm5pm9232yphwwb/acceleration.txt?dl=0ここでは、信号がある.txtファイル(Fe = 101Hz)です。信号は、走っている人の加速です。一般的な特徴は、5Hzでローパスフィルタを使用して信号をフィルタリングすると、正弦波の繰り返しが存在することです。 @Finnありがとう – YLM
この質問は、実際のプログラミングよりもDSPに関連するように思われるので、おそらくこれはhttp://dsp.stackexchange.com/でより良い答えを得るでしょう。 Matlabの知識を持った人がいなければならないし、Matlabで書かれたコードを使っている(そして答えのサンプルコードを要求しているようだが)、それはDSPに関する質問ではないというわけではない。 – patrik