主要内容

过滤器

一维数字滤波器

描述

例子

y=过滤器(b一个x过滤输入数据x使用一个理性的传递函数由分子和分母系数定义b一个

如果(1)不等于1,然后过滤器对滤波系数进行归一化(1).因此,(1)必须是零。

  • 如果x是向量吗过滤器将筛选后的数据作为大小相同的向量返回x

  • 如果x是一个矩阵过滤器沿着第一个维度操作,并为每一列返回经过筛选的数据。

  • 如果x是一个多维数组吗过滤器沿着第一个大小不等于1的数组维度操作。

例子

y=过滤器(b一个x使用初始条件用于筛选器延迟。的长度必须等于max(长度(a)、(b)) 1

例子

y=过滤器(b一个x昏暗的徒沿着维度昏暗的.例如,如果x是一个矩阵过滤器(b, a, x,子,2)为每一行返回经过筛选的数据。

例子

yzf] =过滤器(___也返回最后的条件zf使用前面的任何语法的过滤器延迟。

例子

全部折叠

移动平均滤波器是平滑噪声数据的常用方法。本示例使用过滤器函数沿数据向量计算平均值。

创建一个1乘100的正弦数据行向量,该数据被随机噪声破坏。

t = linspace(π-π,100);rng默认的初始化随机数生成器X = sin(t) + 0.25*rand(size(t));

移动平均滤波器滑动一个长度窗口 w n d o w 年代 z e 沿着数据,计算每个窗口中包含的数据的平均值。下面的差分方程定义了一个向量的移动平均滤波器 x

y n 1 w n d o w 年代 z e x n + x n - 1 + + x n - w n d o w 年代 z e - 1

对于窗口大小为5的情况,计算有理传递函数的分子和分母系数。

windowSize = 5;b = (1 / windowSize) * 1 (1, windowSize);= 1;

找出数据的移动平均值,并将其与原始数据进行对比。

y =过滤器(b, a, x);情节(t, x)情节(t、y)传说(输入数据的过滤数据的

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些对象表示输入数据,过滤数据。

这个例子用下面的有理传递函数过滤数据矩阵。

H z b 1 一个 1 + 一个 2 z - 1 1 1 - 0 2 z - 1

创建一个2 × 15的随机输入数据矩阵。

rng默认的初始化随机数生成器x =兰德(15);

定义有理传递函数的分子和分母系数。

b = 1;A = [1 -0.2];

将传递函数应用于x并返回每一行的一维数字滤波器。根据筛选后的数据绘制原始数据的第一行。

y =过滤器(b, a, x, [], 2);t = 0:长度(x) 1;%指数向量情节(t) x (1:))情节(t y(1:))传说(输入数据的过滤数据的)标题(的第一行

图中包含一个轴对象。标题为First Row的axis对象包含两个类型为line的对象。这些对象表示输入数据,过滤数据。

根据过滤后的数据绘制第二行输入数据。

图绘制(t) x (2:))情节(t y(2:))传说(输入数据的过滤数据的)标题(“第二行”

图中包含一个轴对象。标题为Second Row的axis对象包含2个类型为line的对象。这些对象表示输入数据,过滤数据。

使用过滤器延迟的初始和最终条件来过滤节中的数据,特别是在考虑内存限制的情况下。

生成一个大的随机数据序列,并将其分成两段,x1x2

x = randn (10000 1);x1 = x (1:5000);x2 = x(5001:结束);

整个序列,x,是垂直连接x1x2

定义有理传递函数的分子和分母系数,

H z b 1 + b 2 z - 1 一个 1 + 一个 2 z - 1 2 + 3. z - 1 1 + 0 2 z - 1

b =(2、3);一个= (0.2);

筛选子序列x1x2一次一个。输出过滤后的最终条件x1在第一个段的末尾存储过滤器的内部状态。

[y₁,zf] =过滤器(b, a, x1);

使用过滤的最终条件x1作为过滤第二段的初始条件,x2

y2 =过滤器(b, x2, zf);

日元过滤的数据是从x1,y2过滤的数据是从x2.整个过滤序列是垂直连接的日元y2

同时过滤整个序列进行比较。

y =过滤器(b, a, x);isequal (y, y1, y2)
ans =逻辑1

输入参数

全部折叠

分子系数理性的传递函数,指定为向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑
复数的支持:金宝app是的

分母系数理性的传递函数,指定为向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑
复数的支持:金宝app是的

输入数据,指定为向量、矩阵或多维数组。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑
复数的支持:金宝app是的

过滤器延迟的初始条件,指定为向量、矩阵或多维数组。

  • 如果是一个向量,那么它的长度一定是max(长度(a)、(b)) 1

  • 如果是一个矩阵还是多维数组,那么前导维的大小必须是max(长度(a)、(b)) 1.每个剩余维度的大小必须与对应维度的大小相匹配x.例如,考虑使用过滤器沿第二维度(昏暗的= 2)的一个3 × 4 × 5数组x.数组必须有尺寸[max(长度(a)、(b)) 1-by-3-by-5。

默认值,由[],将所有过滤器延迟初始化为零。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑
复数的支持:金宝app是的

要操作的维数,指定为正整数标量。如果没有指定值,则默认为大小不等于1的第一个数组维度。

考虑一个二维输入数组,x

  • 如果昏暗的= 1,然后过滤器(b, a, x,子,1)沿着一排排的x并返回应用于每列的筛选器。

  • 如果昏暗的= 2,然后过滤器(b, a, x,子,2)沿着列工作x并返回应用于每一行的筛选器。

如果昏暗的大于ndims (x),然后过滤器返回x

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

输出参数

全部折叠

过滤后的数据,作为与输入数据大小相同的矢量、矩阵或多维数组返回,x

如果x的类型是,然后过滤器本机计算在单一精度,和y也是类型的.否则,y作为类型返回。

数据类型:|

过滤器延迟的最后条件,以向量、矩阵或多维数组的形式返回。

  • 如果x是向量吗zf列向量是长度的吗max(长度(a)、(b)) 1

  • 如果x是矩阵还是多维数组zf列向量的数组是长度的吗max(长度(a)、(b)) 1,以便在zf等于x.例如,考虑使用过滤器沿第二维度(昏暗的= 2)的一个3 × 4 × 5数组x.数组zf有大小max(长度(a)、(b)) 1-by-3-by-5。

数据类型:|

更多关于

全部折叠

理性的传递函数

的输入-输出描述过滤器在z变换域中对向量的运算是有理传递函数。有理传递函数是这样的形式

Y z b 1 + b 2 z 1 + ... + b n b + 1 z n b 1 + 一个 2 z 1 + ... + 一个 n 一个 + 1 z n 一个 X z

处理FIR和IIR滤波器[1]n一个反馈过滤顺序,和nb为前馈滤波器阶数。由于标准化,假设一个(1) = 1。

你也可以用差分方程来表示有理传递函数

一个 1 y n b 1 x n + b 2 x n 1 + ... + b n b + 1 x n n b 一个 2 y n 1 ... 一个 n 一个 + 1 y n n 一个

此外,您可以使用它的直接形式II转置实现来表示有理传递函数,如下图所示。在这里,n一个= nb

的操作过滤器在示例是由时域差分方程给出的

y b 1 x + w 1 1 w 1 b 2 x + w 2 1 一个 2 y w n 2 b n 1 x + w n 1 1 一个 n 1 y w n 1 b n x 一个 n y

提示

  • 使用过滤器函数与b系数从FIR滤波器,使用y =过滤器(b, 1, x)

  • 如果您有信号处理工具箱™,请使用y =过滤器(d, x)过滤输入信号x与一个digitalFilter(信号处理工具箱)对象d.生成d根据频率响应规范,使用designfilt(信号处理工具箱)

  • 看到数字滤波(信号处理工具箱)有关过滤函数的更多信息。

参考文献

Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck。离散时间信号处理.上鞍河,新泽西州:Prentice-Hall, 1999。

扩展功能

另请参阅

|

主题

之前介绍过的R2006a