matlab的fdatool生成的fdacoefs.h注解

来源:互联网 发布:污是什么意思网络语言 编辑:程序博客网 时间:2024/05/18 01:10

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



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

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


#define MWSPT_NSEC 9const 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怎么对应的



0 0
原创粉丝点击