主要参考:https://www.baeldung.com/cs/signal-peak-detection
背景
最近在利用CIR估计结果进行解卷积从而抵消信道的卷积影响,在这过程种,发现对于CIR估计结果的截取非常重要。估计出来的CIR可能是含有相对时延和一段接近零的“尾巴”,但是我们需要的值只是第一个peak到最后一个peak这一段范围(下图多径不明显,只有一个突出的Peak,那需要的就是这一个peak附近的大概十几个采样点)
刚开始为了检验idea我是先把CIR图画出来,然后人工看CIR的数值分布,然后定个阈值,超过阈值就是截取部分的第一个采样点,然后取XX个采样点进行截取,为了自动进行这个过程,那么就需要一个合适的peak detection 算法
peak detectiion顾名思义,就是在给定的脉冲序列中找到数值突出的peak。
只有一个peak
直接遍历序列,取最大值的位置就行了,非常简单。
找多个Peak
比如下面这种情况
思路:利用序列的平均值,将平均值当作baseline,
这篇文章的作者只是想把低于baseline的点记录下来,但是这只能说明这个点之前有Peak,这个点本身并不是Peak
我改进一下,当曲线向上超过baseline时,记点(value1, index1),又向下突破baseline时,记点(value2, index2),可以认为[index1, index2]之间存在一个peak
文章中还讲了如何在有噪声(DC非水平,在飘动)的情况下进行peak detection,暂时用不到
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)