Matlab のオーディオ ストリーム ベクトルから、時系列データ内で複数回発生する可聴イベントの開始時刻と終了時刻を特定しようとしています。
私はMatlabの初心者ですが、イベントのピークと場所を特定するコードを書きましたが、ピークの数十ミリ秒前に発生するユーザー定義のしきい値に関連するイベントの開始を取得する必要があります.
現時点で使用しているコードは次のとおりです。
function [emg] = calcPeaks(EMG, thresh)
%Rectify and downsample data
emg = resample(abs(hilbert(EMG)),1000,10000);
%Low Pass Filter
[b,a]=butter(8,0.01,'low');
emg=filtfilt(b,a,emg);
%Plot the processed vector
plot (emg); hold on;
%Find maximum for each Peak and Location
[pks,locs] = findpeaks(emg(1:end-2000),'minpeakheight',thresh);
plot(locs, emg(locs), 'ko'); hold on;
%Find Crossings above threshold
[FindCross] = find(emg(1:end-2000) > thresh);
[Gaps] = find(diff(FindCross)> thresh);
plot(FindCross, emg(FindCross), 'ro');
plot(Gaps, emg(Gaps), 'bo');
データの画像を投稿しようとしましたが、十分な評判がありません:(