打印
[STM32L1]

stm32使用了DSP数字滤波器后为什么数据少了20个,请高手指点一下

[复制链接]
1283|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duduaiziji|  楼主 | 2015-11-6 16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人最近在用STM32的DSP库做数字滤波,使用的Kaiser窗进行滤波,代码如下:
#define  BLOCK_SIZE   32;
uint32_t blockSize = BLOCK_SIZE;
uint32_t numBlocks = 100/BLOCK_SIZE;//需要滤波的次数
float32_t fft_inputbuf[100];   //输入数组
float32_t fft_outputbuf[100];     //输出数组
float32_t firStateF32[BLOCK_SIZE + NUM_TAPS - 1];//缓存大小BLOCK_SIZE + NUM_TAPS - 1

void lvbo()
{
        u8 i ,j;//定义变量
        arm_fir_instance_f32 S;//
        float32_t *inputF32;
        float32_t *outputF32;
        u16 input_buffer11[32];
        /*初始化输入输出缓存指针*/
        inputF32 = &fft_inputbuf[0];
  outputF32 = &fft_outputbuf[0];
       
       
         for(j=0;j<32;j++)
     {       
           fft_inputbuf[j]= (float32_t)sample_press[j];//将采用的压力值装入输入数组中
     }
/*初始化结构体**/
         arm_fir_init_f32(&S, NUM_TAPS, (float32_t *)&mm[0], &firStateF32[0], blockSize);
//       
        /*实现fir滤波*/
       
    for(i=0; i < numBlocks; i++)
      {
    arm_fir_f32(&S,(inputF32 + (i* blockSize)), (outputF32 + (i*blockSize)), 32);
       }
}
但是fft_outputbuffer 少了20个,是为什么呢?请大侠指点一下,谢谢

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝