我是靠谱客的博主 等待紫菜,最近开发中收集的这篇文章主要介绍iir滤波器直接ii型c语言优化实现,2阶节IIR算法C语言源码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

纯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];//分母多项式的系数Denominator

float fCoefB[3];//分子多项式的系数Numerator

float 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

最后

以上就是等待紫菜为你收集整理的iir滤波器直接ii型c语言优化实现,2阶节IIR算法C语言源码的全部内容,希望文章能够帮你解决iir滤波器直接ii型c语言优化实现,2阶节IIR算法C语言源码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部