Main Content

idealfilter

timeseries 理想滤波器

说明

示例

tsout = idealfilter(tsin,interval,filtertype) 将类型为 filtertype 的理想(无关联)滤波器应用于 timeseries 对象 tsin 中由 interval 指定的频率区间。

理想滤波器是无关联的,而且滤波器振幅端在频率范围内是平坦的。ts 中数据的均值必须为零。

tsout = idealfilter(tsin,interval,filtertype,ind) 指定要应用滤波器的 tsin 的行或列索引(可选)。

示例

全部折叠

首先对一个 timeseries 对象应用理想陷波滤波器,然后应用通行滤波器。

加载文件 count.dat 中的数据,并基于矩阵 count 创建一个 timeseries 对象。

load count.dat
tsin = timeseries(count(:,1),1:24);

计算 tsin 中数据的均值。

tsinmean = mean(tsin);

定义对数据进行滤波的频率区间(以赫兹为单位)。

interval = [0.08 0.2];

调用理想的陷波滤波器。

tsoutnotch = idealfilter(tsin,interval,'notch');

比较原始数据和滤波后的数据。

plot(tsin,'-.')
hold on
plot(tsoutnotch,'-')

还原滤波后的数据的均值。

tsoutnotchmean = tsoutnotch + tsinmean;
plot(tsoutnotchmean,':')
title('Notch Filter')
legend('Original Data','Filtered Data','Mean Restored',...
       'Location','NorthWest')
hold off 

使用 pass 滤波器重复滤波过程。

plot(tsin,'-.')
hold on
tsoutpass = idealfilter(tsin,interval,'pass');
plot(tsoutpass,'-')

tsoutpassmean = tsoutpass + tsinmean;
plot(tsoutpassmean,':')
title('Pass Filter')
legend('Original Data','Filtered Data','Mean Restored',...
       'Location','NorthWest')

输入参数

全部折叠

均值为零的输入 timeseries,指定为标量。

  • 如果 tsin 采用非均匀采样,则在应用滤波器之前,idealfilter 在均匀时间向量上对数据重采样。

  • 在应用滤波器之前,idealfilter 使用与 tsin 关联的插值方法替换 tsin 中的任何 NaN 元素。

数据类型: timeseries

频率区间,指定为两列矩阵,其中每行表示每个间隔的开始和结束频率。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

滤波器类型,指定为以下选项之一:

  • 'pass' - 允许特定频率范围内的变化

  • 'notch' - 除去特定频率范围内的变化

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

行或列索引,指定为正整数数值标量或向量。ind 表示列向数据的列索引(tsin.IsTimeFirsttrue 时)或行向数据的行索引(tsin.IsTimeFirstfalse 时)。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

版本历史记录

在 R2006a 之前推出

另请参阅

|