matlab的fdatool生成的fdacoefs.h注解

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



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的变量



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



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


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



  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值