【发布时间】:2016-07-30 18:23:25
【问题描述】:
我正在使用 MATLAB 设计一个滤波器并获得传递函数系数a 和b,然后用 C 语言编写滤波器。
但是我注意到函数sos2tf 正在创建与预期不同的值。事实上,当使用fvtool 使用b 和a 系数查看过滤器时,过滤器看起来与我使用sos 矩阵或实际过滤器f 绘制的过滤器不同。
如果您尝试以下代码,您可以更好地理解我在说什么。这是来自 MATLAB 的函数问题吗?我可以使用 sos2tf 的替代品来获得所需的滤波器系数吗?或者我可以不先使用sos 直接检索它们吗?
请注意,我已经尝试使用designfilt,然后使用tf 函数,得到的系数与使用下面的代码获得的系数完全相同。感谢您的帮助
H = fdesign.lowpass('Fp,Fst,Ap,Ast',60,75,1,60,10000);
f = design(H,'butter','MatchExactly','passband'); % Design an FIR BW filt
info(f) % View information about filter
fvtool(f);
[b,a] = sos2tf(f.sosMatrix);
fvtool(b,a);
【问题讨论】:
-
能否请您给我您正在使用的过滤器规格和采样频率?
标签: matlab filtering signal-processing matlab-deployment