
定时器定时采样,中断函数处理滑窗的时间超过了定时器的时间。 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库中有类似的函数么?可以缩短时间。地址大部分是重叠的。 |
关于STM32G474 双BANK的测试问题
STM32G474CBT6上电瞬间用示波器测得io口产生较大电压(浪涌电压)
STM432G4单片机IAP程序+上位机
STM32G473 flash擦除时程序卡死
STSPIN32G4内部驱动电压输出问题
comp输出用于tim1刹车,消隐源和pwm输出是不是得是同一个TIM?
STM32G431内部运放1和2输出连接的ADC为什么不是OPAMP?
workbench6.3.2生成的代码,无法用pilot电机参数识别,无法通讯
stm32G474的flash模式如何判定?single bank 和dual bank
STM32G474高精度定时器HRTIM配置死区互补PWM极端输出问题
把数组看成环形存储空间,每次剔除出和更新数据发生在某个index,不是物理空间上的第一个格子,这样移动数组下标,就可以跟踪更新的位置,如果是滑窗滤波,每次计算的是进入和剔除数据的差值而已,其他的511个点之和还是不变的,如果是均方根,一样的思想,要推导一下,进入和剔除数据到底要怎么运算才遵循均方根差值变化,把这部分求出,跟另外的511个均方根融合,就可以减少计算量
每次更新一个数据,为什么要搬运大量的数据呢?利用数组的下标仅更新一个数据不香吗?比如当前准备剔除的数据index=10,那么新进来的数据存如index=10,同时index往后移动一格,算滑窗的sum,也不用每次都算512个点的和,只要累计新进和剔除数据的差就是了。
每次踢掉第一个数据 依次递推 新进的数据放最后一个 实际是需要测量三相交流电的三相相电压 用均方根
还是没太理解您的方法 您能推荐一个示例么? 感谢
[md]感谢 已经明白您的思想了 受教了