微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据给定的参数使简单的移动平均滤波器的大小动态化?

如何解决如何根据给定的参数使简单的移动平均滤波器的大小动态化?

为了练习,我正在编写一些简单的过滤器。

在动态过滤器方法中,我想根据 filterSize 参数动态创建过滤器元素。例如,如果我像这样调用方法 movingAverage_dynamic(arrayValues,5) 然后我想创建一个使用最后 5 个值的过滤器。 所以它应该创建这样的东西:

ma_dynamic[i - 1] = ((array[i - 1] + array[i - 2] + array[i - 3] + array[i - 4] + array[i - 5])/5)

下次我调用它时,我想要一个仅使用过去 3 个值的过滤器。我该怎么做?

public class mainClass extends testMethodClass {

public static void main(String[] args){

    float[] arrayValues = {1,2,3,4,5,6,7,8,9,11,12,};
    System.out.println("Original array:         "+Arrays.toString(arrayValues));
    System.out.println("Moving average values:  "+Arrays.toString(movingAverage_3(arrayValues,3)));
   
    }
}


public class testMethodClass {

    //moving average filter 
    static float[] movingAverage_3(float[] array) {
    int sampleSize =3;
    float[] ma_3 = new float[array.length];
    for (int i = sampleSize; i <= array.length; i++) {
        ma_3[i - 1] = ((array[i - 1] + array[i - 2] + array[i - 3]) / sampleSize);
    }
    return ma_3;
}


/**How can i create filter elements dynamically based in filterSize parameter*/
static float[] movingAverage_dynamic(float[] array,int filterSize) {
    float[] ma_dynamic = new float[array.length];
    for (int i = filterSize; i <= array.length; i++) {

        ma_dynamic[i-1]= ???

    }
    return ma_dynamic;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。