滑动窗口的实现

有的时候需要对一个长数组,按照窗口大小依次处理(多用于语音处理),这个时候就是所谓的滑动窗口。

下面博主将使用c++实现滑动窗口

void sildingWindow(double data[N]){
        double frame[Len];
        for (int i = 0; i < N;i = i+Len){
            memcpy(frame, data+i, 8*Len);
            ...
    }
}


主要用到的是memcpy函数,该函数的原型是void *memcpy(void*dest, const void *src, size_t n); 其中dest是目标数组,src为原数组,size_t为要复制内容的字节大小。该函数的功能是由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。在这里我们使用循环来实现滑动的效果每次循环计数器i增加的量为窗口的大小。另外,由于memcpy输入的都是地址变量,对于数组来说数组名指向其首地址,因此data+i表示第i个数组元素的地址,即复制数据的起点。

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值