作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我获取输入数据 block 并通过 fftw 传递它们以获取一些光谱信息。一切似乎都正常,但我认为我遇到了一些别名问题。
我一直在努力研究如何在我的数据 block 上实现汉恩窗。谷歌的例子让我失望了。我应该查看任何想法或链接吗?
double dataIn[2048] > /* windowing here? */ > FFT > double freqBins[2048]
更新
感谢 Oli 指出我实际上要解决的问题是频谱泄漏,而不是混叠...
最佳答案
http://en.wikipedia.org/wiki/Hann_function .实现非常直接地遵循定义。只需使用 w(n)
函数作为乘数,循环遍历所有示例(随时更改 n
),就是这样。
for (int i = 0; i < 2048; i++) {
double multiplier = 0.5 * (1 - cos(2*PI*i/2047));
dataOut[i] = multiplier * dataIn[i];
}
关于c - 实现汉恩窗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3555318/
我是一名优秀的程序员,十分优秀!