TP压缩算法又称为转折点算法,是Mueller在1978年提出的一种压缩算法,你别嫌这个算法老,还是很好用的。
1、算法原理
1)保留第一个点
2)从第一个点开始依此选择三个点,y1,y2,y3,求得三个点的幅度差,(y2-y1),(y3-y2)
3) 如果(y2-y1)*(y3-y2)<0,说明中间值y2是转折点,则保留y2,否则说明三个点处于一致上升或者下降趋势,则保留最后一个值y3
2、算法优缺点
优点:保真度高,速度快,算法易于实现
缺点:压缩比只能为2,且不能在此基础上再次压缩,否则会造成信号失真。
3、算法实现效果展示
将压缩前后的信号按照采样点画出,从图中可以看出,原本的3600个sample已经压缩到1800个sample,压缩比为2。
将压缩前后的信号按照时间轴画在同一个坐标轴上面,下图可以看出,重合效果很好,保真度很高。
function sigCompressed = TPCompressionAlg(sig) %%========================================================== % TP 压缩算法 % sig:原始信号;sigCompressed:压缩后的信号 % author:xhs % time:20190402 %%========================================================= len = length(sig); sigCompressed = zeros(1,floor(len/2)); j = 1; sigCompressed(1) = sig(j); for i = 3:2:len if((sig(i)-sig(i-1))*(sig(i-1)-sig(1))<0) temp = sig(i-1); else temp = sig(i); end j = j+1; sigCompressed(j) = temp; end end
温馨提示:如果你不需要很高的压缩比,且希望压缩后的信号保真度比较高,那么推荐该算法