3

I'm currently doing a thesis about chord recognition with EPCP with wav file as an input, but now I'm stuck at determining number of frames and frame size of a single wav file. I need those data as the parameters for hammingwindow function in NAudio library

public static double HammingWindow(int n, int frameSize)

I've retrieved all available wav headers, but I dont know how to get number of frames and frame size. Can I calculate it from given header data? Or is there another way?

4

3 回答 3

2

如果你知道什么是汉明窗,你就不会问这样的问题。维基百科文章会告诉您有关它的一切。

我自己不是 DSP 方面的专家,但我已经在业余时间使用它几个月了。我能告诉你的就是,这是一个绝对复杂的领域!在一周左右的时间内你无法掌握任何东西。学生在高中的几个学期接受这一领域的教育。就像旁注一样。

所以,关于你的问题:

您选择一个块大小,这通常是从您的音频硬件预先确定的。这总是以 2 为基数,所以 128、256 .... 典型的是 1024。这是您的帧大小。

使用 WAV 文件时,您可以根据需要选择帧大小。它应该满足上述标准。

在这种情况下,窗口是一条“曲线”,它从时间 0 开始并具有某个值,并在 frameSize-1 处结束并具有某个值。

您的函数的参数“n”是此窗口中的位置。该函数返回一个介于 0 和 1 之间的值,它表示“n”处的值。

于 2012-02-13T01:27:49.547 回答
1

NAudio 有一个 WPF 演示,其中 SampleAggregator.cs 使用 HammingWindow 函数。您是否检查了该样本并了解它的使用方式?

于 2012-02-13T02:12:47.010 回答
1

我没有使用 HammingWindow。根据一点的帧就像一个样本,但对于多通道格式“特定数据点的所有通道的快照”。

如果这确实是您想要的,您可以使用标题中的类似内容获取样本大小。

于 2014-11-05T18:34:44.743 回答