如何对传入信号执行加窗操作?
我正在使用 Aubio 库;我在 aubio.org 的文档或互联网上找不到这个。在进行处理时(特别是在我的例子中使用 aubio_pitch_detect
进行音调检测),Aubio 是否在窗口方面对传入音频数组执行任何操作,还是我必须自己实现?
如果我需要添加它,一个简单的窗口代码示例(或链接)将受到欢迎。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在Performous中找到了这个:
编辑:要解决“天哪,是+或-还是什么”问题,您需要再进一步看看您是乘以
π*i/FFT_N
的 sin 还是 cos。因为 sin(0) = 0 和 cos(0) = 1,所以您正在查看看起来(大约!)如下所示的窗口之间的差异:或类似这样:
请注意,如果您在后面添加一个另一个,他们看起来都像这样:
所以当您在窗口后要对信号进行特定处理时可能会影响您选择的窗口选项,它们实际上并不完全相反,只是排列方式不同。
Found this in Performous:
Edit: To address the "omg is it + or - or what" question, you need to look a little further to see whether you're multiplying by sin or cos of
π*i/FFT_N
. Because sin(0) = 0 and cos(0) = 1, you are looking at the difference between a window that looks (approximately!) like this:or like this:
Note that if you put one after the other, they both look like this:
So while the specific processing you want to do on the signal after you window it might affect which windowing option you choose they are not in fact fundamentally opposed, just aligned differently.
aubio_pitch_do
将音频样本向量作为输入,并将执行所需的窗口操作。文档可以在头文件中找到。在这种情况下,请查看
推介。 h
文件。如果您需要创建一个窗口,可以使用 <代码>new_aubio_window(大小,类型)。
例如:
以下是迄今为止可用的窗口类型列表:
aubio_pitch_do
takes a vector of audio samples as input, and will do the windowing needed.The documentation can be found in the header files. In this case, check out the
pitch.h
file.If you need to create a window, you can do it with
new_aubio_window ( size, type )
.For example:
Here is the list of window types available so far:
这是我的几种窗口方法的端口,用于初始化窗口向量。
用法示例:
computeWindow(myFloatWindowBuffer, windowLength, WINDOW_NUTALL);
Here is my port of several windowing methods to init a windowing vector.
Example usage:
computeWindow<float>(myFloatWindowBuffer, windowLength, WINDOW_NUTALL);
这更多的是一个问题而不是一个答案,但由于新手身份,我无法评论其他答案。
关于Flavien Volken和buildsucceeded的答案,他们在汉明系数方面都给出了相同的说法:
0.54或0.53836,以及0.46或0.46164。
两个答案之间都有一个“-”:0.54 - 0.46。
到目前为止,一切顺利。现在看看这个:
(1) 约翰霍普金斯大学说:0.54 + 0.46< br>
(2) 加州大学说:0.54 - 0.46
(3)一本关于DSP的书说:0.54 + 0.46
(4) 维基百科说:0.54 + 0.46
(5) mathworks 说:0.54 - 0.46
(6) 论坛用户说:1.07672 - 0.92328
完全困惑,我们现在怎么知道什么是真正正确的?
以下是链接(由于此处是新手状态,因此无法发布超过 2 个真实链接):
This is more of a question than an answer, but I can't comment other answers due to newbie-status.
Regarding the answers of Flavien Volken and buildsucceeded, they both state the same in terms of the Hamming coefficients:
0.54 or 0.53836, and 0.46 or 0.46164.
Both answers have a "-" in between them: 0.54 - 0.46.
So far, so good. Now look at this:
(1) Johns Hopkins University says: 0.54 + 0.46
(2) University of California says: 0.54 - 0.46
(3) A book on DSP says: 0.54 + 0.46
(4) Wikipedia says: 0.54 + 0.46
(5) mathworks says: 0.54 - 0.46
(6) A forum user says: 1.07672 - 0.92328
Totally confused, how do we know what is really correct now?
Here are the links (can't post more than 2 real links because of newbie-status here):