这是打应用程序的一个旁通项。

我在产生音频信号的自相关方面遇到了困难,以查看它是否与打nor /呼吸“很好地”相关。我有一个简单的算法(产生1.0作为第零个元素,这是一个好兆头),但我想知道如何评估结果以确定自相关是否很强,以及也许进一步如何使用它来分离问题#1:自相关的RMS(跳跃元素为零)是否像任何一种“质量”指标一样好,还是有更好的东西?

详细说明:我只是想用一种数值方法(相对于“看图表”)来将高度自相关的信号与不太相关的自相关信号区分开。知道还有什么其他问题。)

一些早期结果:在某些情况下,自相关(均方根或峰值)显示出打sn的剧烈跳跃,而这正是我想看到的响应。在其他情况下,在这些测量中根本没有明显的运动(并且可能是两个连续的打sn,并且有两个响应),而在高噪声情况下,测量实际上会在打ore期间下降(略微)。

更新-5月22日:我终于有时间再做一些工作。 (我从另一个应用程序上退出,这确实很痛苦。)我将自相关的输出输入到FFT中,该输出有些有趣-当打sn开始时,它在原点附近显示了一个相当大的峰值。 >
所以现在我面临着以某种方式量化此峰的问题。奇怪的是,就绝对幅度而言,最高峰有时在其他时间出现,但是我尝试了峰均值与算术平均值之比,并且跟踪得很好。因此,有什么好的方法可以测量FFT的“峰值”。 (而且请不要说我需要对其进行FFT运算-这个东西已经快要吞噬自己的尾巴了。:))同样,我想到,如果我镜射输入自相关结果,中间为零(定义为1.0幅值),则FFT的质量可能会有所提高。这将把“尾巴”放在两端。这(可能)是个好主意吗?镜像应该竖直放置还是倒置? (当然,不管您说什么,我都会尝试,但我想我可能会在细节上得到一些提示。)测试用例可以大致分为“行为良好”类别和“问题儿童”类别。

对于“行为良好”的测试用例,自相关的FFT的平坦度急剧下降,并且在打sn期间峰均值与平均自相关之比上升。这两个数字的比率(峰值比率除以平坦度)特别敏感,在呼吸/打no时表现出5到10倍的爬升。完全相反的方向。峰均比略有下降,而平整度实际上增加了50-100%

这两个类别之间的差异(主要是三倍):
“问题儿童”的音量通常(通常)较高
“问题儿童”的音频电平(通常始终较低)
“问题儿童”的声音往往是呼吸更多,打actual声更少(而且我需要同时检测两者)

有什么想法吗?

更新-5/25/2012:进行胜利舞蹈有点为时过早,但是当我反思在一个点上进行自相关,进行该点的FFT,然后进行频谱平坦度,我的组合比率方案在几种不同的环境中显示出良好的跳跃。反映自相关似乎可以提高FFT的质量。

不过,有一点要注意的是,由于反射的“信号”的“ DC分量”为零,因此第零个FFT结果始终为零,这有点破坏了包含零的几何平均值。但是跳过第零个元素似乎可行。

我得到的结果远远不足以单独识别打sn /呼吸,但这似乎是一个相当敏感的“确认”-如果我

我没有仔细分析它,但是我怀疑正在发生的事情是在呼吸/打,那是被检测到的哨声。

评论

至于相关性的“强度”度量,您需要做的是在进行相关性之前对两个相关信号进行归一化。 (归一化后,每个信号的总和应为1)。这样,相关峰将始终存在于-1和1之间。这就是您的优势。对于其余的问题,我不确定,也许您可​​以进行一些编辑。

我正在处理自相关,因此这两个信号是相同的,并且根据定义相对于彼此是“标准化的”。 “强度”是指有多少自相关。

我不明白您想要什么,但我认为您想测量自相关峰的最大值,而不是整个物体的RMS值。

@endolith我想他可能会问您的自相关函数的“峰值”度量,它是为了将一个delta信号(噪声的自相关)与许多峰值信号区分开来? (信号与谐波的自相关)。也许在这里也可以使用频谱平坦度测量...

听起来他想要的是光谱平坦度。丹尼尔:您想确定信号与白噪声有何不同?

#1 楼

简介

使用MATLAB包audioread可以更轻松地进行此演示,它可以读取/写入MP3文件。另外,您也可以将示例中的MP3文件手动转换为WAV。因此我们知道当SNR高时会发生什么。这是一个52s立体声44.1KHz MP3。将其下载到MATLAB路径中的文件夹中。

现在让我们计算光谱图(我选择了8192个样本的Hann窗口)和光谱平坦度:




频谱平坦度的大幅下降(即偏离白噪声)尖叫着“我在打nor”。我们可以通过查看与基线(中位数)的偏差来轻松对其进行分类:

余量。供参考的标准变量本身是6.8487。

硬包

现在让我们来看看您的文件。这是一个10分钟的8KHz WAV文件。由于电平如此之低,因此有助于扩展信号。

[snd1,fs1]=mp3read('snoring - brobar.mp3'); % use wavread if you converted manually
[s1,f,t,p1]=spectrogram(mean(snd1,2),hann(8192));
sf1=10*log10(geomean(p1)./mean(p1)); % spectral flatness
plot(linspace(0,length(snd1)/fs1,length(sf1)),sf1); axis tight




看到伴随每个打accompanying声的那些不错的跌落吗?我也不。漂亮的山峰怎么样?他们不是打呼,,而是被摄体移动的声音。标准偏差很小,仅为0.9388

结论

如果要依靠频谱平坦度,则需要获取更清晰的信号!我已经压扩它只是为了听到任何声音。如果检测到低SNR,则促使用户将手机放在更近的地方或像耳机附带的手机那样使用麦克风。有问题的情况。但是,由于这个问题不仅与打sn检测有关,因此我将在这里停止,并在另一个问题中说明如何做。

评论


$ \ begingroup $
现在您已经了解了我要面对的挑战。在我必须使用的样本中,该样本的质量为“中等”,但情况要差得多。我可以使用现有算法很好地阅读该示例。
$ \ endgroup $
–Daniel R Hicks
2012年5月24日12:11

$ \ begingroup $
这些是什么算法?
$ \ endgroup $
–埃姆雷
2012年5月24日12:19

$ \ begingroup $
简而言之:声音每秒经过FFT 8次,将频谱切成5个频段,计算每个频段的功率和频谱差异,然后对结果进行评分,从而获得更大的权重似乎以正确的速率变化的频段。
$ \ endgroup $
–Daniel R Hicks
2012年5月24日17:21

$ \ begingroup $
@Emre我正在关注您的链接,建立了一个soundcloud帐户,但看不到您下载该打sn的精确程度。旁边或其他任何地方都没有下载按钮。
$ \ endgroup $
–太空
2012年5月25日19:28

$ \ begingroup $
@Mohammad:我提供了一个下载链接。
$ \ endgroup $
–埃姆雷
2012年5月25日19:33

#2 楼

自相关与信号功率谱密度的逆DFT直接相关。从这个意义上讲,自相关函数中还包含DFT的平方大小中包含的任何信息。

不过,自相关可以告诉您的一件事是谐波的存在。 (从中心峰到下一个最高峰的距离)。打的VS呼吸可能具有不同的基本谐波,如果这样,“自相关方法”无疑将是一个很好的起点,以便可以提取特征(在这种情况下为谐波)。

因此,白噪声的自相关将是一个增量函数,并且在其中心峰之外不会有任何次要峰(或与此有关的任何其他峰)。相反,如果信号确实具有谐波,则其自相关函数将包含与存在的基波谐波相对应的二次和三次峰值。从主(中心)峰到次峰的距离,即基本频率的周期。

编辑:

我认为您所追求的是一种度量-数字-编码自相关函数与增量相似,而VS自相关函数看起来像在它的许多高峰。为此,频谱平坦度的度量可能适用,或者在更一般的情况下,几何平均值与算术平均值的度量也适用。

评论


$ \ begingroup $
我的印象是,自相关可以更好地将(有节奏的)信号与(随机)噪声区分开-噪声将在接近零的情况下自相关。 DFT OTOH将噪声表示为噪声-扩频。至少这是我所理解的“理论”。
$ \ endgroup $
–Daniel R Hicks
2012年5月18日在17:38

$ \ begingroup $
请查看我的修改。
$ \ endgroup $
–太空
2012年5月18日17:50