当前位置:   article > 正文

基于C/C++实现滤波电路算法_cic滤波器 源代码 c++

cic滤波器 源代码 c++

利用C/C++代码实现matlab滤波算法,基于matlab coder完成代码的转换,利用VS2022进行简单数据验证;

平台:MATLAB2023RA+VS2022

一、利用matlab自带的函数设计滤波器

利用matlab的filter滤波器封装一个自己需要的滤波函数;

例如:截止频率为250HZ的二阶低通滤波电路;

利用butter得到二阶滤波电路传递参数a1,b1以及需要处理的原始数据;

带入filter函数得到滤波数据;

1.1 滤波函数代码:

可以利用butter得到滤波电路的传递系数,直接带入系数,这样matlab转换为C语言是可以减少转换的函数,降低代码量:

  1. function result = myfilter(input)
  2. % 设计一个截止频率为250hz的二阶低通滤波电路;
  3. % 此处显示详细说明
  4. %[b1,a1] = butter(2,2*250/1000,'low'); %截止频率为250hz的二阶低通滤波器,b1,a1为传递参数;
  5. a1 = [1 -3.33066907387547e-16 0.171572875253810];
  6. b1 = [0.292893218813452 0.585786437626905 0.292893218813452];
  7. result = filter(b1,a1,input);
  8. end

1.2 测试脚本:

  1. clear
  2. clc
  3. input = 1:100;
  4. output = myfilter(input);

输入数据1-10进行测试,得到滤波后数据为:

1.3 利用matlab coder将该二阶低通滤波电路算法转换为C/C++;

转换教程:利用MATLAB coder将matlab代码转换为C/C++-CSDN博客

二、VS2022平台验证

2.1 创建一个测试工程,将1.3转换后的代码添加进来:

2.2 编写主函数测试:

给滤波器输入数据1-10;

可得测试结果与matlab滤波器输出完全一致

可以利用该方法设计自己需要的滤波电路,然后转换为C/C++代码

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号