matlab的fdatool生成的fdacoefs.h注解

target->generate c header弹出下面的窗口

matlab的fdatool生成的fdacoefs.h注解_第1张图片


variable name 改成上面的名字(分子就是b,分母就是a,改了看着比较方便)

export as:看情况,如果是定点dps或者fpga就选择fix point


#define MWSPT_NSEC 9															

const int B_LEN[MWSPT_NSEC] = { 1,3,1,3,1,3,1,3,1 };		//这个是下面B数组的每一行包含的实际有效的元素的个数
const real64_T B[MWSPT_NSEC][3] = {							//这个就是IIR滤波器传递函数里的B
  {
    0.06991883739829,                 0,                 0	//这个是第一级的放大倍数(第一级分子的放大倍数)
  },
  {
                   1,                 2,                 1	//这个是第一级的b0,b1,b2
  },
  {
    0.05086150765419,                 0,                 0	//这个是第二级的放大倍数(第二级分子的放大倍数)
  },
  {
                   1,                 2,                 1	//这个是第二级的b0,b1,b2
  },
  {
    0.02878008410335,                 0,                 0	//这个是第三级的放大倍数(第三级分子的放大倍数)
  },
  {
                   1,                 2,                 1	//这个是第三级的b0,b1,b2
  },
  {
    0.01419869437814,                 0,                 0	//这个是第四级的放大倍数(第四级分子的放大倍数)
  },
  {
                   1,                 2,                 1	//这个是第四级的b0,b1,b2
  },
  {
     0.9988493695855,                 0,                 0	//这个是滤波器输出分子总的放大倍数,可能与1会有一些差距
  }
};
const int A_LEN[MWSPT_NSEC] = { 1,3,1,3,1,3,1,3,1 };		//这个是下面A数组的每一行包含的实际有效的元素的个数
const real64_T A[MWSPT_NSEC][3] = {
  {
                   1,                 0,                 0	//第一级的放大倍数(第一级的分母的放大倍数)
  },
  {
                   1,   -1.634414426982,   0.9140897765756	//第一级的a0,a1,a2,a0总是1
  },
  {
                   1,                 0,                 0	//第二级的放大倍数(第二级的分母的放大倍数)
  },
  {
                   1,    -1.56651995331,   0.7699659764767	//第二级的a0,a1,a2,a0总是1
  },
  {
                   1,                 0,                 0	//第三级的放大倍数(第三级的分母的放大倍数)
  },
  {
                   1,   -1.552596505731,   0.6677168495953	//第三级的a0,a1,a2,a0总是1
  },
  {
                   1,                 0,                 0	//第四级的放大倍数(第四级的分母的放大倍数)
  },
  {
                   1,   -1.557223241776,   0.6140180192888	//第四级的a0,a1,a2,a0总是1
  },
  {
                   1,                 0,                 0	//这个是滤波器输出分母总的放大倍数
  }
};



下面是直接在fdatool->file->export导出到work sapce的变量


matlab的fdatool生成的fdacoefs.h注解_第2张图片

这个是导出的放大倍数,与导出的c文件不同,这儿都是分子的放大倍数


matlab的fdatool生成的fdacoefs.h注解_第3张图片

这个对对应的系数,每一行按照 b0,b1,b2,a0,a1,a2来存放


上面c代码和fdatool导出的变量都是同一个滤波器的系数,导出的变量显示的时候显示的精度有限,大家可以自己对照看下g和b,a怎么对应的



你可能感兴趣的:(matlab的fdatool生成的fdacoefs.h注解)