huidefengsy 发表于 2023-6-2 10:20:55

使用双线性变换法获取的系数怎么和STM32的滤波器函数关联?

求助大佬,使用双线性变换法,获得的系数怎么带入到STM32中?matlab代码如下

F= 48000;
f1 = 20.598997;
f2 = 107.65265;
f3 = 737.86223;
f4 = 12194.217;
A1000 = 1.9997;
pi = 3.14159265358979;
NUMs = [ (2*pi*f4)^2*(10^(A1000/20)) 0 0 0 0 ];
DENs = conv(,);
DENs = conv(conv(DENs,),);
= bilinear(NUMs,DENs,Fs);


得到B和A的值如下:

B =

    0.2343   -0.4686   -0.2343    0.9372   -0.2343   -0.4686    0.2343


A =

    1.0000   -4.1130    6.5531   -4.9908    1.7857   -0.2462    0.0112


使用STM32的IIR滤波器,arm_biquad_cascade_df1_init_f32,请问怎么将以上B和A的系数带入到该函数的pCoeffs?

huidefengsy 发表于 2023-6-2 13:30:40

顶顶顶,求助求助

eric2013 发表于 2023-6-2 16:24:24

我们是用matlab的filterDesigner获取,供参考,使用AB参数还是有些套路注意事项的,之前学习摸索了很长时间。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=94547




huidefengsy 发表于 2023-6-2 17:00:30

版主,你好,用filterDesigner怎么实现我上面说的那种双线性变换?我想实现的是用双线性变换法设计IIR滤波器,然后代入STM32的DSP库的IIR滤波器函数

eric2013 发表于 2023-6-2 17:07:49

huidefengsy 发表于 2023-6-2 17:00
版主,你好,用filterDesigner怎么实现我上面说的那种双线性变换?我想实现的是用双线性变换法设计IIR滤波 ...

我用的就是arm_biquad_cascade_df1_f32

IIR 滤波器主要有:直接型(也称直接 I 型)、标准型(也称直接 II 型)、变换型、级联型和并联型。

ARM官方提供的这个API属于直接 I 型,直接 I 型 IIR 滤波器是基于二阶 Biquad 级联的方式来实现的

huidefengsy 发表于 2023-6-2 17:17:12

您了解我上面提到的双线性变换法设计IIR滤波器,属于IIR滤波器的哪个类型吗?

huidefengsy 发表于 2023-6-2 17:22:50

我在做声音处理时,使用IIR滤波器,是该用低通还是高通? 目前我是使用的IIR高通滤波器,截止频率为100HZ,在正常环境下,这个高通滤波器可以有效抑制100HZ以下的信号,但是如果给设备输入100Hz以下的信号,我又必须将滤波器去除,总感觉这样不大合理

eric2013 发表于 2023-6-2 18:00:58

huidefengsy 发表于 2023-6-2 17:17
您了解我上面提到的双线性变换法设计IIR滤波器,属于IIR滤波器的哪个类型吗?

双线性Z变换法是IIR数字滤波器的设计方法。而直接1型是IIR滤波器的网络结构形式。概念不同。





eric2013 发表于 2023-6-2 18:02:29

huidefengsy 发表于 2023-6-2 17:22
我在做声音处理时,使用IIR滤波器,是该用低通还是高通? 目前我是使用的IIR高通滤波器,截止频率为100HZ, ...

音频的处理建议使用专门音频软件;

【音频设计的福音】ST与DSP Concepts合作推出超级强劲的傻瓜式音频软件ST-AudioWea
https://www.armbbs.cn/forum.php?mod=viewthread&tid=27569&fromuid=58
(出处: 硬汉嵌入式论坛)

huidefengsy 发表于 2023-6-5 08:38:27

感谢,我看下试试
页: [1]
查看完整版本: 使用双线性变换法获取的系数怎么和STM32的滤波器函数关联?