纯C语言软件算法,没有做过多优化,只是实现了基本IIR算法

/******************************************************************************
* 二阶IIR滤波器单元,采用直接II型
* 由多个2阶节,可以组成更多高阶的滤波器
* 根据参数的不同,可以生成低通,高通,带通,带阻
******************************************************************************/
#include "iir.h"//初始化IIR数据
void IIR_Init(IIR_Typedef *pIIR, IIR_COEF* pCoef)
{int i;for (i=0; i<3; i++){pIIR->fCoefA[i] = pCoef->fCoefA[i];pIIR->fCoefB[i] = pCoef->fCoefB[i];pIIR->fTemp[i]  = 0;}
}//复位历史值
void IIR_Reset(IIR_Typedef *pIIR)
{pIIR->fTemp[0] = 0;pIIR->fTemp[1] = 0;pIIR->fTemp[2] = 0;
}//IIR滤波
float IIR_Filter(IIR_Typedef *pIIR, float fInput)
{float fOutput;//计算输入值pIIR->fTemp[0] = fInput;pIIR->fTemp[0] = pIIR->fTemp[0] - pIIR->fCoefA[1] * pIIR->fTemp[1];pIIR->fTemp[0] = pIIR->fTemp[0] - pIIR->fCoefA[2] * pIIR->fTemp[2];//计算输出值fOutput = 0;  fOutput = fOutput + pIIR->fCoefB[0] * pIIR->fTemp[0];  fOutput = fOutput + pIIR->fCoefB[1] * pIIR->fTemp[1]; fOutput = fOutput + pIIR->fCoefB[2] * pIIR->fTemp[2]; //移动历史值pIIR->fTemp[2] = pIIR->fTemp[1];  pIIR->fTemp[1] = pIIR->fTemp[0];return fOutput;
}

头文件iir.h

/******************************************************************************
* 二阶IIR滤波器单元,采用直接II型
* 由多个2阶节,可以组成更多高阶的滤波器
* 根据参数的不同,可以生成低通,高通,带通,带阻
******************************************************************************/#ifndef _IIR_H
#define _IIR_H//二阶IIR滤波器参数,和2个历史值
//参数由设计软件直接计算得出
typedef struct
{float fCoefA[3];   //分母多项式的系数Denominatorfloat fCoefB[3];   //分子多项式的系数Numeratorfloat fTemp[3];      //历史值
}IIR_Typedef;//IIR 2阶节的系数
typedef struct
{float fCoefA[3];float fCoefB[3];
}IIR_COEF;//初始化IIR数据
void IIR_Init(IIR_Typedef *pIIR, IIR_COEF* pCoef);//复位历史值
void IIR_Reset(IIR_Typedef *pIIR);//IIR滤波
float IIR_Filter(IIR_Typedef *pIIR, float fInput);#endif // _IIR_H

转载于:https://www.cnblogs.com/kerndev/p/5537389.html

2阶节IIR算法C语言源码相关推荐

  1. 算法c语言源码_C语言实现推箱子

    很多同学说C语言难学,不知道C语言学了能做什么,如果说不涉及嵌入式设备编程,我们可以用它来写游戏?是的,C语言能写的游戏有很多,推箱子,贪食蛇,等等 上学的时候老师说过,程序=数据结构+算法,真是这样 ...

  2. 最坏适应算法c语言源码,首次适应算法,最佳适应算法,最坏适应算法源代码

    这是一个非常完美的程序,输出显示的格式也很棒,里面包含首次适应算法,最佳适应算法,最坏适应算法 #include #include #define Free 0 //空闲状态 #define Busy ...

  3. C语言merge sort归并排序算法(附完整源码)

    C语言merge sort归并排序算法 merge sort归并排序算法的完整源码(定义,实现) merge sort归并排序算法的完整源码(定义,实现) #ifndef MERGE_SORT_H # ...

  4. 【安全算法之SHA1】SHA1摘要运算的C语言源码实现

    [安全算法之SHA1]SHA1摘要运算的C语言源码实现 概述 头文件定义 C语言版本的实现源码 测试用例 github仓库 更多参考链接 概述 大家都知道摘要算法在安全领域,也是一个特别重要的存在,而 ...

  5. 【安全算法之DES】DES算法(支持ECB/CBC模式)的C语言源码实现

    [安全算法之DES]DES算法(支持ECB/CBC模式)的C语言源码实现 概述 头文件定义 C语言版本的实现源码 数据分组模式:ECB模式和CBC模式 测试用例 github仓库 更多参考链接 概述 ...

  6. 【安全算法之base64】base64加解密的C语言源码实现

    最近,有项目中需要用到base64的加解密,所以用C语言实现了一遍,测试效果还不错,代码量和RAM消耗都比较低,可以提供给大家参考下. #include <stdbool.h> #incl ...

  7. 【安全算法之SHA512】SHA512摘要运算的C语言源码实现

    [安全算法之SHA512]SHA512摘要运算的C语言源码实现 概述 头文件定义 C语言版本的实现源码 测试用例 github仓库 更多参考链接 概述 大家都知道摘要算法在安全领域,也是一个特别重要的 ...

  8. C语言振动排序shaker sort算法(附完整源码)

    振动排序shaker sort算法 振动排序shaker sort算法的完整源码(定义,实现,main函数测试) 振动排序shaker sort算法的完整源码(定义,实现,main函数测试) #inc ...

  9. C语言实现臭皮匠排序stooge sort 算法(附完整源码)

    臭皮匠排序stooge sort 算法 臭皮匠排序stooge sort 算法的完整源码(定义,实现,main函数测试) 臭皮匠排序stooge sort 算法的完整源码(定义,实现,main函数测试 ...

最新文章

  1. SQL Server 死锁的告警监控
  2. mysql中文显示问号
  3. python组成不重复的三位数是多少_超星Python 练习实例1-组成多少个互不相同且无重复的三位数字...
  4. mysql字符集调整总结
  5. java server模式 设置_JVM client模式和Server模式的区别
  6. 如何快速掌握man手册的使用
  7. c语言程序设计火车站售票系统,C语言程序-火车站售票系统程序
  8. js分页插件:首页,上页,快退,页码,快进,下页末页,跳转,使用模板,灵活自由
  9. 记录小新pro13 Intel版(S540-13IML)安装hackintosh的一些要点
  10. java60秒倒计时
  11. php自动播放mp3,html5实现背景音乐的自动播放
  12. ​Copyright到底是什么意思?
  13. MySql中 where IN 中多个参数查询
  14. 为麦芒新机渲染图曝光:疑似后置奥利奥三摄
  15. 安装好office套件以后,右键新建中没有Word、Excel、PPT等怎么办
  16. mysql导出导入文本文件的几种方式总结
  17. 知名插画师走尺,带你走进“薪”世界
  18. java double类型判空,简单封装JAVA空判断
  19. 一加手机怎么导出照片_一加5t怎么才能把手机相片上传到电脑上?
  20. 伪随机数和随机数C语言

热门文章

  1. netdev: dev_watchdog timer(结合stmmac 分析)
  2. 为什么只有360公开支持华为系统,其他公司都不敢表态?
  3. nothing to build for project 'XXX'
  4. 行业发展的大势所趋 嵌入式机器视觉系统前景一片大好
  5. 使用CAtlRegExp正则表达式检查浮点数输入
  6. jquery全局变量_jQuery源码一个小细节,却很好地体现了性能优化的思想,很优秀...
  7. python带通滤波_python中的fft带通滤波器
  8. python语句解释_深入理解python with 语句
  9. mysql客户端版本太低_windows一机多装mysql,5.5低版本+5.8高版本
  10. filter过滤后重新添加_每天记一个单词(第3518)filter