二阶IIR滤波器系数计算方法

1、
在这里插入图片描述
2、
滤波器主要有以下几种:高通/低通/带通。下分别说明此三种滤波器的系统的求取方法。
通常,对一个滤波器的要求,我们主要给出以下技术规格:中心频率frequency,采样频率sampleRate,增益dBgain,品质因数Q。
为计算方便,先计算出以下几个值:
A = sqrt[ 10^(dBgain/20) ]
omega = 2pifrequency/sampleRate
sin = sin(omega)
cos = cos(omega)
alpha = sin/(2Q)
3、
高通滤波器系数的计算:
b0 = (1 + cos)/2
b1 = -(1 + cos)
b2 = (1 + cos)/2
a0 = 1 + alpha
a1 = -2
cos
a2 = 1 – alpha
4、
低通滤波器系数的计算:
b0 = (1 - cos)/2
b1 = 1 - cos
b2 = (1 - cos)/2
a0 = 1 + alpha
a1 = -2cos
a2 = 1 – alpha
5、
带通滤波器系统计算:
b0 = sin/2 = Q
alpha
b1 = 0
b2 = -sin/2 = -Qalpha
a0 = 1 + alpha
a1 = -2
cos
a2 = 1 - alpha
6、程序代码
typedef struct
{
float b0,b1,b2,a1,a2;
float d1,d2;
}biquadFilter_t;

#define PI 3.14159265358979323846f
#define BIQUAD_Q 1.0f/sqrtf(2.0f)

void biquadFilterInit(biquadFilter_t filter,uint32_t filterFreq,uint32_t refreshRate,float Q)
{
const float SampleRate = 1/((float)refreshRate
0.000001f);
const float omega = 2* PIfilterFreq/SampleRate;
const float sn = sinf(omega);
const float cs = cosf(omega);
//const float alpha = sinf(2
Q);
const float alpha = sn/(2*Q); // 对二阶低通滤波参数进行优化

float b0 = 0,b1=0,b2=0,a0=0,a1=0,a2=0;
b0 = (1-cs)/2;
b1 = 1-cs;
b2 = (1-cs)/2;
a0 = 1+ alpha;
a1 = -2*cs;
a2 = 1-alpha;

filter->b0 = b0/a0;
filter->b1 = b1/a0;
filter->b2 = b2/a0;
filter->a1 = a1/a0;
filter->a2 = a2/a0;
filter->d1 = 0;
filter->d2 = 0;

}

float biquadFilterApply(biquadFilter_t filter,float input)
{
const float result = filter->b0
input + filter->d1;
filter->d1 = filter->b1 * input - filter->a1result + filter->d2;
filter->d2 = filter->b2
input - filter->a2*result;
return result;
}

biquadFilter_t gryo_51Hz_parameter1,gryo_51Hz_parameter2,gryo_51Hz_parameter3;

biquadFilterInit(&gryo_51Hz_parameter1,51, 1000, BIQUAD_Q);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值