如何在命令行中过滤数据
简单通带滤波器
使用idfilt
将通带和其他自定义滤波器应用于时域或频域iddata
对象。
通常,您可以指定任何自定义筛选器。使用此语法筛选iddata
对象数据
使用过滤器过滤器
:
Fdata = idfilt(数据,过滤器)
在最简单的情况下,您可以使用以下语法为时域数据指定通带滤波器:
Fdata = idfilt(data,[wl wh])
在这种情况下,w1
而且wh
分别表示通带的低频和高频。
可以指定多个通带,如下所示:
过滤器= [[w1l w1h]; [w2l w2h];……;wnl, wnh]]
过滤器是一个n
——- - - - - -2
矩阵,其中每一行定义一个以弧度/秒为单位的通带。
之间定义一个止带ws1
而且二硫化钨
,使用
Filter = [0 ws1;二硫化钨Nyqf]
在那里,Nyqf
为奈奎斯特频率。
对于时域数据,通带滤波采用指定顺序的级联巴特沃斯滤波器。默认的筛选顺序是5。巴特沃斯过滤器和黄油
信号处理工具箱™产品。对于频域数据,选择数据的指定部分进行通带滤波。
定义自定义过滤器
使用idfilt
将通带和其他自定义滤波器应用于时域或频域iddata
对象。
通常,您可以指定任何自定义筛选器。使用此语法筛选iddata
对象数据
使用过滤器过滤器
:
Fdata = idfilt(数据,过滤器)
您可以定义一个通用的单输入/单输出(SISO)系统来过滤时域或频域数据。仅对于频域,您可以指定滤波器的(非参数)频率响应。
可以使用此语法筛选iddata
对象数据
所指定的自定义筛选器过滤器
:
Fdata = idfilt(数据,过滤器)
过滤器
也可以是以下任何一种:
filter = idm filter = {num,den} filter = {A,B,C,D}
idm
是SISO识别线性模型或LTI对象。有关LTI对象的更多信息,请参阅Control System Toolbox™文档。
{num,窝}
将过滤器定义为传递函数,将其定义为分子和分母过滤器系数的单元格数组。
{A, B, C, D}
是SISO状态空间矩阵的单元阵列。
对于频域数据,指定滤波器的频响:
滤波器= Wf
在这里,Wf
是一个矢量的实值或复值,定义滤波器的频率响应,其中的输入和输出数据
在频率data.Frequency (kf)
乘以Wf (kf)
.Wf
列向量的长度是否等于其中频率的个数数据
.
当数据
包含几个实验,Wf
单元格数组的长度是否等于其中的实验数数据
.
因果和非因果过滤器
对于时域数据,默认情况下是因果滤波。因果滤波器通常会在结果中引入相移。使用非因果零相位滤波器(对应于filtfilt
中的第三个参数)idfilt
:
Fdata = idfilt(数据,过滤器,'非因果')
对于频域数据,信号乘以滤波器的频率响应。通过将滤波器定义为通带滤波器,该计算给出了理想的零相位滤波(“砖墙滤波器”)。被滤波器分配为零权重的频率(在通带外或通过频率响应)被移除。
当你申请时idfilt
到一个idfrd
数据对象时,首先将数据转换为频域iddata
对象(如频域与频响数据之间的转换).结果是iddata
对象。