|
描述:
目的:利用MATLAB对电流波形进行工频信号的提取。
方法:利用MATLAB信号处理工具箱中的滤波设计工具来实现,基本设计参数如下
% 滤波器类型: Butterworth(IIR)
% Direct-Form II,Second-Order Sections
% order:24
% Sections:12
% fs:10KHz
% Fstop1:45Hz
% Fpass1:48Hz
% Fpass2:52Hz
% Fstop2:55Hz
实验过程:
直接用MATLAB工具箱进行处理,将信号AC导入工具箱,然后用设计好的带通滤波器对AC滤波。
实验结果:
实验过程截图如图2、图3、图4所示,得到输出信号ACF,滤波结果可以接受。
问题出现:
将滤波器系数[Num, Den]导出至workspace,调用库函数y = filter(b,a,X)对AC滤波,结果与直接使用工具箱完全不一样,数据呈无穷大状态:NaN。
上述问题的引出是基于如下考虑:在工具箱中直接进行滤波结果是可行的,但效率太低,所以,考虑将滤波器系数导出至workspace中,然后编写M文件调用。
补充:
函数filter(b,a,X)解释如下
filters the data in vector X with the filter described by numerator coefficient vector b and denominator coefficient vector a. If a(1) is not equal to 1, filter normalizes the filter coefficients by a(1). If a(1)
equals 0, filter returns an error.
带通滤波器系数存于结构体中,filter.tf.num对应系数b, filter.tf.den对应系数a.
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|