我已經爲我正在處理的數據集編碼了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. SciPy的/ numpy的FFT頻率分析
- 2. 分佈式多重映射
- 3. FFT哪些頻率在哪些分箱?
- 4. MATLAB中的FFT:錯誤的0Hz頻率
- 5. 頻率分佈圖
- 6. MATLAB:頻率分佈
- 7. 頻率分佈R
- 8. 數組的頻率分佈
- 9. 什麼是數據倉庫中的負載頻率和刷新頻率?
- 10. R繪圖頻率分佈
- 11. MicroStrategy Dashboard中的簡單頻率分佈?
- 12. emacs:重新映射C- [(目前ESC)
- 13. EMR集羣中的映射器分佈
- 14. 重新映射伊斯坦布爾不正確覆蓋率報告
- 15. 在str中創建字母頻率的映射在Javascript中
- 16. 如何控制FFTW頻率倉和分辨率
- 17. 在python中繪製頻率分佈
- 18. 如何從FFT確定頻率值
- 19. DSP FFT基本頻率wav文件
- 20. FFT MATLAB時間頻率和背部
- 21. 使用Android FFT獲取聲音頻率
- 22. 如何獲得iOS在FFT頻率上加速FFT結果?
- 23. git倉庫中的替代/多重目錄結構映射
- 24. 計算哈希映射中元素的頻率
- 25. 重新映射Keymando中的Capslock Key?
- 26. 重新映射arbitary曲線
- 27. Vim重新映射奇怪
- 28. 重新映射線路鍵
- 29. vim重新映射hjkl
- 30. IP地址重新映射
降採樣最好在FFT後完成,降低高頻。 – wnoise 2011-03-07 22:00:30
這對於增加數據點的數量是一個很好的建議。我幾乎有辦法讓樣品完成。 – Davido 2011-03-08 16:22:42