主要内容

如何在命令行过滤数据

简单的通带滤波器

使用idfilt在时域或频域应用通带和其他自定义滤波器iddata对象。

通常,您可以指定任何自定义筛选器。使用此语法过滤iddata对象数据使用名为过滤器

fdata = idfilt(数据、过滤器)

在最简单的情况下,您可以使用以下语法为时域数据指定一个通带过滤器:

Fdata = idfilt(data,[wl wh])

在这种情况下,w1wh分别表示通频带的低频和高频。

可以指定多个密码带,具体如下:

过滤器= [[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 = {num,den} filter = {A,B,C,D}

idm是一个输出确定线性模型或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对象。

相关的话题