gpt4 book ai didi

java - 如何对数组中的值进行下采样?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:08 26 4
gpt4 key购买 nike

我有一个长度为 4096 的数组,它包含计算 FFT 的结果。结果应显示在 1024 的窗口长度上如何将值从 4096 减少到 1024 并且结果保持正确。

这个方法好吗?

int index = 0;
for(int i = 0; i < 1024; i++){
A = 0;
windowOffset = oldLength/1024; ---> 4096/1024 = 4
while(windowOffset > 0){
A += oldArray[index];
windowOffset --;
index++ -----> index will go to 4096
}
newArray[i] =A/(blockSize/1024); ---- summ of 4 values/4

}

最佳答案

您计算四个平均值并显示它的方法当然是有效的。但是,它对“平滑”数据有好处,对具有少量高峰的数据不太好。

考虑这样一种情况,当您的 FFT 返回大部分较小的数字时,有 20 个峰值超过平均值大约十倍。应用您的方法后,峰值仍然存在,但它们只会超过平均值的 2.5 倍。换句话说,直方图会变得比它应该的更平滑。

解决此问题的一种方法是选择四个调整后的数字中的最大值。这可以让您完整地保留峰。

关于java - 如何对数组中的值进行下采样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26138507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com