我已经为我正在处理的数据集编码了FFT。我的目的是创建一个结果的瀑布图,但我遇到的问题是如果我改变我的输入数据大小,然后我得到不同数量的频率箱。目前,我只是将我的输入数据集制作为我需要映射到的像素数量的两倍。我试图找出将任何数据集大小的频率分区映射到特定数量的像素的方法。例如,将500个值的数组映射到长度为1250个元素的数组。如果可以选择对数据映射执行线性和非线性插值,将会很不错。我也可能需要另辟蹊径,比如将值映射到300个元素的数组。我不是数学专业,我在这个问题上留下了一个空白。重新映射C#中的FFT频率仓分布
回答
所有你需要做的就是将你的输入零填充到你想要显示的像素数。这可以通过简单地将零添加到输入中来使其达到所需的像素长度。 FFT执行时,将在零填充后的长度完成,并为您提供与像素相同数量的输出采样。
当您填零FFT输入时,FFT会自动在频域内插。检查this了。注意,即使频域样本的数量增加,但实际上并没有在频域中提供任何更多信息(新的频率内容不会仅通过使用此方法出现)。这只是对现有数据进行过采样。
我不确定去其他方式的最佳方式(缩减采样),但我认为一种方法是转换您需要的前N个采样。你会因此丢失数据,但取决于应用程序可能并不重要。
离散傅立叶变换(快或不)将总是给你输入数组相同大小的输出数组。如果您想扩展它,那么您需要查看使用sinc函数和适当的窗口。见例如http://en.wikipedia.org/wiki/Lanczos_resampling
我想我可能在我的问题上有点不清楚。基本上我想要输出数组并插入它的值,以将其映射到具有不同长度的数组,或者更小或更大。如果这就是Lanczos重新采样所做的那样,那么它可能会超出我的头。它看起来像是沿着正确的路线,但我不知道如何实现它。 – Davido 2011-03-07 20:13:22
@Davido,就是这样。如果你环顾四周,我希望你能找到一个实现它的图书馆。 – 2011-03-07 22:52:47
- 1. Android:将从FFT获得的映射频率映射到音符
- 2. 分布式多重映射
- 3. SciPy的/ numpy的FFT频率分析
- 4. 频率分布中的R
- 5. FFT哪些频率在哪些分箱?
- 6. 声音的FFT频率
- 7. MATLAB:频率分布
- 8. 频率分布R
- 9. 频率分布图
- 10. MATLAB中的FFT:错误的0Hz频率
- 11. Matlab,FFT和质心频率
- 12. matlab padding fft改变频率
- 13. 从FFT抑制频率
- 14. 使用FFT获取频率
- 15. NLTK词组分布的频率分布
- 16. 如何重新映射C-c?
- 17. 数组的频率分布
- 18. 阵列的频率分布
- 19. 从FFT中仅提取高频率
- 20. 什么是数据仓库中的负载频率和刷新频率?
- 21. R绘图频率分布
- 22. [R绘制频率分布
- 23. 频率为正态分布
- 24. MicroStrategy Dashboard中的简单频率分布?
- 25. Three.js视频纹理映射低质量/分辨率
- 26. emacs:重新映射C- [(目前ESC)
- 27. EMR集群中的映射器分布
- 28. 分层字符串的频率分布
- 29. 在str中创建字母频率的映射在Javascript中
- 30. 重新映射伊斯坦布尔不正确覆盖率报告
降采样最好在FFT后完成,降低高频。 – wnoise 2011-03-07 22:00:30
这对于增加数据点的数量是一个很好的建议。我几乎有办法让样品完成。 – Davido 2011-03-08 16:22:42