STM32
直播中

刘波

7年用户 934经验值
私信 关注
[问答]

如何利用STM32去实现IIR滤波器的设计呢

如何利用STM32去实现IIR滤波器的设计呢?怎样去编写其代码呢?

回帖(1)

张玉兰

2021-11-18 11:42:46
  1, -1.999084473, 0.9993286133
  },
  {
  1, 0, 0
  }
  };
  保存文件,然后使用以下代码进行滤波
  这段代码是根据Direct Form I 2阶IIR滤波的差分方程编写的
  a0*y[n] = b0*x[n] + b1*x[n-1] + b2*x[n-2] - a1*y[n-1] -a2*y[n-2]; //iir_filter.c
  #include “datatype.h”
  #include “iir_filter.h”
  #include “iir_coefs.h”
  static float y[IIR_NSEC][3];
  static float x[IIR_NSEC+1][3];
  int16 iir_filter(int16 in)
  {
  uint16 i;
  x[0][0] = in;
  for(i=0;i{
  y[0] =x[0]*IIR_B[0]+x[1]*IIR_B[1]+x[2]*IIR_B[2]-y[1]*IIR_A[ 1]-y[2]*IIR_A[2];
  y[0] /= IIR_A[0];
  y[2]=y[1];y[1]=y[0];
  x[2]=x[1];x[1]=x[0];
  x[i+1][0] = y[0];
  }
  if( x[IIR_NSEC][0]》32767) x[IIR_NSEC][0]=32767;
  if( x[IIR_NSEC][0]
  return ((int16)x[IIR_NSEC][0]);
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分