公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

Cortex M处理器汇编语言编程之六: Biquad滤波器

Cortex M处理器汇编语言编程之六: Biquad滤波器

User12775
Level 5
Level 5
First solution authored First like received
信号处理应用中, Biquad滤波器是一种二阶递归线性滤波器, 有两个极点与零点. Biquad的意思是"双二次", 意思是Z域中,此种滤波器的传递函数分子分母都为二次多项式:

biquad_transfer_1.png

一般在实际应用与计算中, 将a0进行归一化:

biquad_transfer_2.png

高阶的IIR滤波器对协因子的量化很敏感, 很容易因为协因子的量化而变得不稳定.对于一阶与二阶滤波器而言, 这种问题要小得多. 所以Biquad滤波器经常用来级联来组成高阶滤波器. 为了保持稳定Biquad滤波器的两个极点必在一个单位圆中. 这也是对所有IIR滤波器的要求.


本文演示如何使用汇编语言来实现Biquad滤波器, 当然实际应用中应该直接使用库函数. 但是注意库函数中的这种数字滤波器通常是使用汇编语言来实现的, 不管是ARM还是Tricore.

0 点赞
2232 次查看
12 评论