从MATLAB中的.wav文件中检测比赛的开始音调事件

从MATLAB中的.wav文件中检测比赛的开始音调事件,matlab,detection,correlation,Matlab,Detection,Correlation,我试图测量开始音(3800Hz)和结束音(高振幅但频率未知)之间的持续时间(样本)。这两个音调在.wav文件中随机分布(大约10秒)。识别第一个音调的最后一个样本和最后一个音调的第一个样本的样本号是否重要?我该怎么做 .wav文件包含基频和一些噪声(以及开始音和结束音)。我预先录制了背景中基频和噪声的起始音,我可以使用相关函数来检测它吗 一些噪声超过3800Hz(瞬时),因此使用阈值检测音调的方法效果不佳。但是,我可以利用音调事件的持续时间比任何噪声事件的持续时间都长这一事实(因为它是通过按下和

我试图测量开始音(3800Hz)和结束音(高振幅但频率未知)之间的持续时间(样本)。这两个音调在.wav文件中随机分布(大约10秒)。识别第一个音调的最后一个样本和最后一个音调的第一个样本的样本号是否重要?我该怎么做

.wav文件包含基频和一些噪声(以及开始音和结束音)。我预先录制了背景中基频和噪声的起始音,我可以使用相关函数来检测它吗


一些噪声超过3800Hz(瞬时),因此使用阈值检测音调的方法效果不佳。但是,我可以利用音调事件的持续时间比任何噪声事件的持续时间都长这一事实(因为它是通过按下和释放按钮故意产生的)来检测音调

这是一个非常大的问题。您在这里要求的不仅仅是编码帮助。让我建议一个整体的方法,让你们稍后提出更小、更尖锐的问题。您是否尝试过(在频域中)过滤以消除除了3.8kHz左右的频带之外的所有东西。然后你可以设定振幅的阈值(时域)来找到第一个音调。要找到第二个,如果您知道它非常繁重,您可以尝试阈值化,或者在时域中进行低通滤波(尝试
平滑
),然后进行阈值化。对不起,这是意识流。希望能有帮助。