|
定时器定时采样,中断函数处理滑窗的时间超过了定时器的时间。 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库中有类似的函数么?可以缩短时间。地址大部分是重叠的。 |
HRTIM中已经设置了两路独立输出,第二路无法设置触发源,提示必须是0
记录使用Cube生成HRTIM工程时的一个bug
stm32 usb hid设备能发数据给PC,但不能接收PC的数据!!!
STSPIN32G4 STM32G431VBTx CAN FIFO发送数据帧随机变远程帧
如何将电机转速度控制在0.1RPM以下?我尝试过将SPEED_UNIT改为480,电机转速度可以控制在0.125RPM,但最转到250RPM时,编码器计数好像溢出了
STM32G474 HRTIM的single-shot功能,如何使用?
无源晶振开关电路设计
为什么DMA搬运数据只搬运最后1个字节的数?
STSPIN32G4内部驱动电压输出问题
使用Hal库的SPI读取磁边传感器导致STM32G4无法运行
微信公众号
手机版
把数组看成环形存储空间,每次剔除出和更新数据发生在某个index,不是物理空间上的第一个格子,这样移动数组下标,就可以跟踪更新的位置,如果是滑窗滤波,每次计算的是进入和剔除数据的差值而已,其他的511个点之和还是不变的,如果是均方根,一样的思想,要推导一下,进入和剔除数据到底要怎么运算才遵循均方根差值变化,把这部分求出,跟另外的511个均方根融合,就可以减少计算量
每次更新一个数据,为什么要搬运大量的数据呢?利用数组的下标仅更新一个数据不香吗?比如当前准备剔除的数据index=10,那么新进来的数据存如index=10,同时index往后移动一格,算滑窗的sum,也不用每次都算512个点的和,只要累计新进和剔除数据的差就是了。
每次踢掉第一个数据 依次递推 新进的数据放最后一个 实际是需要测量三相交流电的三相相电压 用均方根
还是没太理解您的方法 您能推荐一个示例么? 感谢
[md]感谢 已经明白您的思想了 受教了