我正在使用MATLAB设计滤波器并获得传递函数系数a
和b
,然后用C编码滤波器。
但是我注意到函数sos2tf
正在创建不同于预期的值。实际上,当使用fvtool
使用b
和a
系数查看过滤器时,过滤器看起来与我使用sos
矩阵或实际过滤器{ {1}}。
如果你尝试下面的代码,你可以更好地理解我在说什么。这是一个来自MATLAB的函数问题吗?我可以使用替代f
来获得所需的滤波器系数吗?或者我可以直接检索它们而无需先使用sos2tf
?
请注意,我已尝试使用sos
然后使用designfilt
函数,结果系数与使用下面的代码获得的系数完全相同。谢谢你的帮助
tf
答案 0 :(得分:0)
我不知道究竟是什么问题,因为它对我来说也不起作用,但我会给你一个解决方法来获得滤波器系数。在Matlab命令窗口类型fdatool中,将弹出一个过滤器设计应用程序窗口,通过正确选择所需参数来设计过滤器。完成后,在该fdatool窗口中转到File-> Export-> Export As->系数。从同一个工具中,您可以选择File->生成matlab代码 - >过滤器设计功能(或3个选项中的任何一个)。这样你就可以消除你在问题中发布的代码中可能存在的错误。我就是这样做的,而且一直运作良好