定时器定时采样,中断函数处理滑窗的时间超过了定时器的时间。 1 for(i=0;i<512-1;i++){ADC1_SLID1[0][i]=ADC1_SLID1[0][i+1];} ADC1_SLID1[0][512-1]=ADC1_DMA[0]-2047.f; 2 memmove(ADC1_SLID1[0],ADC1_SLID1[0]+1,(512-1)*sizeof(float)); ADC1_SLID1[0][512-1]=ADC1_DMA[0]-2047.f; 这2个的运行时间差别不大。请问:DSP库中有类似的函数么?可以缩短时间。地址大部分是重叠的。 |
CubeAI生产keil代码时出现报错。这个ai_platform.h文件在什么地方?
adc采集电压
STM32G474的HRTIM和高级定时器有什么区别
LL库变成黑色,不能用,怎么回事
按照文档标注ADC最高输入时钟为60兆, 将主频配置为120(原来是170M),AD再进行1分频/2分频/4分频,对应的转换位数12位,采样周期2.5,对应的频
关于stm32g431串口与FDCAN数据不同同时处理问题
STM32G431的CAN控制器在收发器开路后,程序发送数据后,TX高电平。RX低电平。
在使用FDCAN控制器发送字节有问题
keil无法对G474CBTx扇区擦除烧录较大程序是什么原因?
关于CUBEMX死区模式使用?
把数组看成环形存储空间,每次剔除出和更新数据发生在某个index,不是物理空间上的第一个格子,这样移动数组下标,就可以跟踪更新的位置,如果是滑窗滤波,每次计算的是进入和剔除数据的差值而已,其他的511个点之和还是不变的,如果是均方根,一样的思想,要推导一下,进入和剔除数据到底要怎么运算才遵循均方根差值变化,把这部分求出,跟另外的511个均方根融合,就可以减少计算量
每次更新一个数据,为什么要搬运大量的数据呢?利用数组的下标仅更新一个数据不香吗?比如当前准备剔除的数据index=10,那么新进来的数据存如index=10,同时index往后移动一格,算滑窗的sum,也不用每次都算512个点的和,只要累计新进和剔除数据的差就是了。
每次踢掉第一个数据 依次递推 新进的数据放最后一个 实际是需要测量三相交流电的三相相电压 用均方根
还是没太理解您的方法 您能推荐一个示例么? 感谢
[md]感谢 已经明白您的思想了 受教了