我认为是信号处理的新手,但取得了良好的进展。
在 covid-19 时期,我产生了一系列(许多)脉冲,这些脉冲将用作模拟我们教堂的声学效果的脉冲响应。
几个问题,在细节之前:
检测冲动开始的最佳实践(和代码解决方案)是什么?
在考虑脉冲的频谱图时,频谱图的数据出现在波形之前和波形(db)之前是否不寻常?
细节:
拍板用于生成脉冲,使用我的 zoom H1n Handy Recorder 将其记录为 96000、16 位的 2 通道 WAV 文件。这些脉冲在数据中以相当规律的时间出现,尽管并不完全规律,因为板的拍打是用手完成的,可以说是在我内部鼓手的节拍下。
我已成功使用scipy.io.wavfile将数据拆分为两个通道,然后使用scipy.signal.find_peaks通过查找每个脉冲的峰值来获取(非常接近)每个脉冲的开始。但是,我可以看到这种方法错过了每个脉冲的实际开始,我想使用 python 更好地捕获这些单独的开始。
我一直在阅读,并且确信这是一个深刻而广泛的话题。但是,也许某个善良的灵魂可以帮助我详细说明如何找到这些发作的确切时间?我想这是信号处理中一个相当典型的问题类型,我意识到这是我要求的(相当)一点教育。
我真的希望有一个代码解决方案建议来找到这些脉冲数据的开始。
要清楚,
a) 显然,每个脉冲的最大峰值不是在开始时,也不一定是每个脉冲的第一个明显峰值,因为我查看了整个数据流。(我认为当这个延迟峰值出现时,反射信号的峰值比记录设备的直接响应更高。不过我不确定......)
b) 这些脉冲的波形在脉冲之间不一定会变为零,事实上,它们很少会变为零。信号接近于零,但并不精确。(我认为这与信号周围的环境噪声有关,但不确定......)
c) 波形可以先变为负值,也可以变为正值(与来自该样本脉冲的(初始)数据一样)。
在所附图像中,前五个图表显示了一组脉冲(数百个中的三个),随后增加的分辨率放大了该组中第一个脉冲的开始。
底部的两张图片是第一个脉冲的左通道,取自 Audacity 的屏幕截图。它们显示了第一个脉冲的波形、波形 (db) 和频谱图——左边是整个脉冲,右边是脉冲的开始。(我很困惑为什么频谱图似乎在波形和波形(db)之前有可测量的样本数量。)
虽然我在 Audacity 中绘制了频谱图,但我不确定如何访问 WAV 文件中的频谱数据,也不知道如何使用它来检测脉冲的开始。
我会尝试附上导致第一个冲动的数据,并在这个冲动中加入一些方法,但这些都是相当大的文件。我没有发送大型数据集的规则。
谢谢你的帮助,好心人。
我不确定 WAV 文件中发生了什么,但这里有 250 个从左通道采集的样本,我相信这些样本从第一个脉冲开始之前开始,并在某种程度上结束于脉冲本身:
wav_left_subset = array([
-23, -16, -20, -19, -18, -19, -15, -20,
-18, -21, -20, -22, -22, -18, -22, -17,
-22, -20, -17, -24, -14, -21, -16, -16,
-16, -13, -17, -11, -18, -14, -18, -14,
-16, -13, -12, -13, -9, -16, -11, -16,
-16, -13, -16, -14, -14, -15, -13, -13,
-11, -14, -9, -12, -12, -13, -15, -13,
-15, -15, -13, -16, -8, -14, -12, -12,
-13, -11, -11, -12, -10, -8, -8, -8,
-6, -9, -6, -7, -5, -6, -2, -3,
-2, -1, -4, -2, -4, -1, 0, -1,
2, 0, -1, 3, -3, 6, -2, 9,
4, 5, 7, 4, 7, 9, 1, 10,
6, 11, 13, 9, 13, 15, 12, 18,
15, 17, 20, 20, 22, 20, 21, 23,
20, 23, 25, 24, 32, 27, 33, 30,
32, 29, 33, 34, 36, 41, 39, 43,
42, 49, 47, 55, 51, 59, 60, 63,
67, 67, 72, 70, 78, 75, 83, 85,
88, 93, 96, 102, 106, 111, 115, 124,
127, 135, 143, 146, 161, 163, 181, 185,
197, 209, 222, 239, 249, 269, 281, 303,
322, 344, 369, 399, 431, 466, 501, 544,
588, 642, 701, 779, 858, 1003, 1152, 1466,
1706, 1921, 1352, -13, -4626, -11419, -14567, -17320,
-19721, -21829, -23673, -14863, -2840, 2088, 6363, 10091,
13343, 16173, 18656, 20820, 22727, 24392, 25864, 27162,
28305, 29329, 29056, 30424, 31358, 31919, 28408, 22294,
15638, 8584, 1428, -3153, -7130, -10605, -13629, -4656,
5684, 9787, 13358, 16474, 19186, 14213, 8269, 6929,
12547, 18601, 21081, 23248, 25145, 26811, 28274, 28920,
13555, 5571], dtype=int16)