Questions tagged «peak-detection»

4
峰值检测方法
现有的峰值检测算法是什么?我有嘈杂的数据,我想对此数据进行峰值检测。数据是相反的,实际上我正在尝试确定底部。 这是Excel中数据的快照。我喜欢同时探底。我考虑过将数据通过低通滤波器,然后做一个移动平均,确定峰值,然后在移动平均范围内进行另一次搜索。我的DSP背景为零;这只是常识方法。我想听听专家的建议。

7
如果信号的频率位于两个bin中心之间,则获得其峰值
请假设以下内容: 信号基频的频率已使用FFT和某些频率估计方法进行了估计,位于两个bin中心之间 采样频率是固定的 计算工作不是问题 知道了频率,估计信号基波相应峰值的最准确方法是什么? 一种方法可能是对时间信号进行零填充以提高FFT分辨率,从而使bin中心更接近估计的频率。在这种情况下,我不确定的一点是我是否可以根据需要进行零填充,或者这样做是否有缺点。另一个是在零填充后我应该选择哪个bin中心作为我从中获取峰值的那个(因为即使在零填充之后,也可能不会精确地达到目标频率)。 但是,我也想知道是否存在另一种方法可以提供更好的结果,例如一种估计器,该估计器使用周围两个bin中心的峰值来估计感兴趣频率处的峰值。

4
在图像中找到斑马纹图案(从照片中检测结构光条纹中心线)
我在一个项目上工作,该项目将条纹投射在主体上,并拍摄了照片。任务是找到条纹的中心线,这些中心线在数学上代表条纹平面与对象表面之间的3D交点曲线。 该照片是PNG(RGB),以前的尝试是使用灰度,然后使用差异阈值来获得黑白的“斑马纹”摄影,从中可以轻松找到每个条纹的每个像素列的中点。问题在于,通过阈值化并通过获取离散像素列的平均高度,我们会遇到一些精度损失和量化问题,这是根本不希望的。 通过查看图像,我的印象是,如果通过某种统计扫描方法直接从非阈值图像(RGB或灰度)中检测到中心线,则中心线可能会更连续(更多点)和更平滑(未量化) (无论是泛洪/迭代卷积)。 下面是一个实际的示例图像: 任何建议将不胜感激!

5
互相关之前的上采样没有用吗?
考虑一个简单的情况,其中来自两个不同传感器的两个信号互相关,并且从其互相关函数的峰值的横坐标计算出到达时间的延迟。 现在让我们进一步假设,由于两个天线的尺寸限制以及最大可能采样率的限制,最大可能延迟为DDD,对应于10个样本。 问题: 由于这些限制,你的计算延迟可以由任何变化整数:0和10之间的样品值,即0≤D≤100≤D≤100 \le D \le 10。这是有问题的,因为我真正想要的是区分撞击在我天线上的两个信号之间的延迟的小数延迟,并且改变尺寸或采样率不是一种选择。 一些想法: 自然,在这种情况下,我想到的第一件事是在执行互相关之前对信号进行上采样。但是我认为这在某种程度上“欺骗”,因为我并没有真正在系统中添加任何新信息。 从某种意义上说,我不了解上采样是不是“作弊”。是的,我们正在基于其当前观察到的频率信息重建信号,但是这如何使人们知道信号在D=7D=7D=7到之间真正从哪里开始D=8D=8D=8呢?哪里是确定包含在原始信号信息,该信号的真实分数延迟启动实际上是在D=7.751D=7.751D=7.751? 问题: 这真的是“作弊”吗? 如果没有,那么这个新的“信息”从哪里来? 如果是,那么还有哪些其他选项可用于估计分数延迟时间? 我知道要对互相关的结果进行上采样,以寻求对延迟的子采样答案,但这也是“作弊”的一种形式吗?为什么它与互相关之前的升采样不同? 如果确实确实存在上采样不是“作弊”的情况,那为什么我们还要提高采样率呢?(从某种意义上说,具有较高的采样率总是比内插低采样信号更好吗?) 这样看来,我们可以以非常低的速率采样并根据需要进行内插。那么,仅仅根据我们内心的需求插入信号,是否会使采样率“无用”?我意识到插值需要花费计算时间,而从较高的采样率开始就不会,但是那是唯一的原因吗? 谢谢。

2
实时人体音高检测
我正在尝试实现一个唱歌游戏,该游戏将分析原始麦克风输入并告诉玩家他的演唱水平如何。这需要实时完成。 我遇到了很多线程在问同样的问题,但是我仍然没有完成它,这可能是由于我缺乏该领域的经验和浅薄的数学背景。我已经基于DSPDimension网站音高偏移的文章实现了一种算法:http ://www.dspdimension.com/admin/pitch-shifting-using-the-ft/ 正如文章所解释的,我提取了真实的频率和幅度,但是我不知道以此找到基本频率。我试图获得最大幅度的信号仓,但是对于较高音调的信号只能给出正确的结果,无论我使用哪种过采样因子,对于低频信号仍然会得到不好的数据。这种方法是完全错误的,还是我在正确的轨道上却只是缺少一些东西? 提前致谢, 编辑:我忘了提及我只对音高类感兴趣,因此可以确定基本面是否缺失,但样本中的色相强烈。 EDIT2:谢谢大家,我刚刚完成了一个算法的工作,它就像一个魅力。低音高估计问题是由于我的输入测试所致。当我演唱音符时,音符正确匹配。另外,我现在正在考虑所有谐波,而不仅仅是最高峰值。

2
从互相关图得到什么?
假设我们有两个音频信号x(t)和y(t)受噪声影响,如下所示。我们想对这两个信号进行互相关,互相关图如下所示。 在此相关图中,峰值约为-11毫秒。我试图了解我们如何解释此图中的峰值?这是什么意思?也请解释一下我们从相关函数的傅立叶变换中得到什么。 提前致谢!

2
查找样品之间的局部峰
我有地震信号y [ n ]的离散样本: ñnnÿ[ n ]y[n]y[n] 我想在信号中找到局部最大值。 ÿ[ n ]y[n]y[n]y[n]:maxima if y[n]>y[n−1] and y[n]>y[n+1]y[n]:maxima if y[n]>y[n−1] and y[n]>y[n+1]y[n]: maxima \textbf{ if } y[n] > y[n-1] \textbf{ and } y[n] > y[n+1] i=4.25i=4.25i=4.25 y[n]y[n]y[n] 如何使用插值法找到最大值? 我应该使用哪种插值形式? 如您所见,我的信号不是很嘈杂,但是如果该方法还进行了一些滤波以使最大值超过阈值并具有一定的宽度(没有尖峰),那将是很好的。 但是,我最大的问题只是在样品之间找到峰。有什么建议可以做到这一点吗? 预先感谢您的任何回答!

1
实时斜率和峰值检测与计算
我有一个信号,我以500khz采样。我正在尝试检测传入数据中的上升,下降和峰值。峰值的基数可能为250 usc或2.5毫秒,幅度可能比本底噪声高6db或15db。不幸的是,我的snr不好。信号的直流电平不是恒定的,但移动速度比交流分量慢得多。 在决策点,我需要知道上升和下降的斜率。这是一个艰苦的实时系统,在下降斜率达到直流电平后,我真的需要在100usec中做出决定。 我正在寻找有关如何有效实现合适算法的建议。 目前,我进行移动平均(过去25个数据点加在一起)并尝试检测趋势。一旦发现上升趋势,便开始寻找下降趋势,一旦发现下降趋势,便可能再收集50个样本并开始计算。 现在,噪声很容易使该算法陷入困境,因此成为问题。 更新 为了他人的利益,我最终实现了移动平均线,之后是积分器。过去64个数据的移动平均线已经足够平滑,但是没有上升到一定程度,对最后8个值进行积分可以使上升回升,我只是在寻找上升和下降,后来我对斜率进行了线性回归。可以,不是很好,但是还可以。

1
如何使用Savitzky Golay滤波器在离散采样的1D信号中找到局部最大值(在采样之间)?
我有一个地震信号y(i): 在这里,我找到了一个最大值:手动将i = 152.54,y = 222.29绘制为红色。 我想自动查找所有最大值。 我读到,Savitzky Golay滤波器(SGF)可用于找到信号及其导数的平滑估计,并且SGF的好处之一是它比其他滤波器更好地保留了最小值和最大值。这对我来说听起来很棒。 我发现了一个生成SGF系数的Matlab脚本。 并以此发现导数的四阶SGF系数。我编写了一个小的Matlab脚本 通过将信号与导数的4阶SGF系数进行卷积来找到信号的导数 查找导数更改符号的样本对(i,i + 1) 通过i和i + 1之间的线性插值找到导数的零交叉 脚本: function [maxX,maxY] = findLocalMax(y) % Kernel for 4th order Savitzky-Golay filter for finding derivative: d4 = [0.0724 -0.1195 -0.1625 -0.1061 0 0.1061 0.1625 0.1195 -0.0724]; dy = conv(y,d4,'same'); % derivative [m …

1
导数计算
我有一系列数据(单个数组)。如果我将这些数据绘制并绘制,可以看到有多个峰。但是,如果我放大一部分数据,我会发现有很大的噪音。 我喜欢用很少的CPU时间和精力来检测数据中有多少个峰值。我想到了检测这些峰的斜率(可以是陡峭的或平滑的上升或下降),然后查看斜率的数量以确定峰的数量。(每个峰2个正斜率和负斜率) 任何指针如何在存在噪声的情况下计算斜率? 该代码将进入嵌入式系统,内存有限,因此我最好实现不需要大量数据复制的操作。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.