主要内容

如何在命令行中过滤数据

简单通带滤波器

使用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对象。

相关的话题