2017-06-27 12 views
0

我需要查找頭部偏航運動的持續時間。從跟蹤每幀的頭部移動的視頻文件獲得的頭部跟蹤是 。例如,下面繪製的信號有三個頭偏航運動。 有沒有辦法找出矩形中信號變化的持續時間?從視頻信號中查找頭部偏航運動的持續時間

偏航信號: Yaw signal

我用SG過濾器,並找到峯值,但它給如圖很多不相關的峯:

order =4 ; 
framelen =11; 
x=yaw_deg; 
lx = 20; 


sgf = sgolayfilt(x,order,framelen); 


plot(sgf); 
grid on; 

hold on; 
sgf=-sgf; 
[pks_smoothed,locs_smoothed,widths_smoothed,proms_smoothed] = findpeaks(sgf ,'MinPeakProminence',0.009); 
pks_smoothed = -pks_smoothed; 
plot(locs_smoothed,pks_smoothed,'g*'); 
text(locs_smoothed+.02,pks_smoothed,num2str((1:numel(pks_smoothed))')); 

findpeaks

回答

1

如果你正在尋找一個快速的解決方案,並有信號處理工具箱你可以使用findpeaks功能。玩各種參數應該可以讓你識別你的峯值。

inv_signal = -signal; 
[pks,locs,w] = findpeaks(inv_signal,'MinPeakWidth',...,'MinPeakProminence',...);