OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5254|回复: 5

IIR滤波

[复制链接]

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-7-6
在线时间
8 小时
发表于 2018-9-29 15:02:01 | 显示全部楼层 |阅读模式
5金钱
原子的这个IIR滤波是怎么实现的?看不懂是表达的那个公式。有人讨论下吗?
#define IIR_SHIFT         8
/**
* IIR滤波.
*/
int16_t iirLPFilterSingle(int32_t in, int32_t attenuation,  int32_t* filt)
{
int32_t inScaled;
int32_t filttmp = *filt;
int16_t out;
if (attenuation > (1<<IIR_SHIFT))
{
  attenuation = (1<<IIR_SHIFT);
}
else if (attenuation < 1)
{
  attenuation = 1;
}
// Shift to keep accuracy
inScaled = in << IIR_SHIFT;
// Calculate IIR filter
filttmp = filttmp + (((inScaled-filttmp) >> IIR_SHIFT) * attenuation);
// Scale and round
out = (filttmp >> 8) + ((filttmp & (1 << (IIR_SHIFT - 1))) >> (IIR_SHIFT - 1));
*filt = filttmp;
return out;
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-9-30 01:48:53 | 显示全部楼层
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2018-9-30 09:12:06 | 显示全部楼层
Google一下IIR
回复

使用道具 举报

1

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-9-11
在线时间
6 小时
发表于 2018-10-4 09:11:49 | 显示全部楼层
谢谢 帮顶
回复

使用道具 举报

13

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
351
金钱
351
注册时间
2018-11-2
在线时间
78 小时
发表于 2018-11-2 11:35:20 | 显示全部楼层
帮顶,现在也想学习一下IIR滤波,用途很广。
回复

使用道具 举报

13

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
351
金钱
351
注册时间
2018-11-2
在线时间
78 小时
发表于 2018-11-7 11:52:06 | 显示全部楼层
本帖最后由 qinlu123 于 2018-11-7 13:12 编辑

这个函数哪里找到的?为什么我找只到了这个。@lycreturn QQ截图20181107115117.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 03:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表