从视频信号中找出头部偏航运动的持续时间

时间:2017-06-27 16:38:54

标签: matlab signal-processing

我需要找到头部偏航运动的持续时间。头部跟踪是 从跟踪每帧的头部运动的视频文件中获得。 例如,下面绘制的信号具有三个头部偏航运动。 有没有办法找出矩形中信号变化的持续时间?

偏航信号: 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 个答案:

答案 0 :(得分:1)

如果您正在寻找快速解决方案并拥有信号处理工具箱,则可以使用findpeaks功能。使用各种参数可以让您识别峰值。

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