主要内容

过滤器

一维数字滤波器

描述

例子

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)传说(输入数据的过滤数据的

图中包含一个axes对象。坐标轴对象包含两个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:))传说(输入数据的过滤数据的)标题(的第一行

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

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

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

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

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

生成一个大的随机数据序列,并将其分成两个部分,x1而且x2

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

整个序列,x的垂直拼接x1而且x2

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

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);

筛选子序列x1而且x2一次一个。输出过滤后的最终条件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|逻辑
复数的支持:是的

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

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

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

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

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

  • 如果是一个向量,那么它的长度一定是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|逻辑
复数的支持:是的

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

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

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

    过滤器(b, a, x,子,1)列操作

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

    过滤器(b, a, x,子,2)row-wise操作

如果昏暗的大于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= n - 1

图解了n-1阶IIR数字滤波器的直接形式II转置实现。

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

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(信号处理工具箱)

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

参考文献

奥本海姆,艾伦五世,罗纳德W.谢弗,约翰R.巴克。离散时间信号处理.上马鞍河,新泽西州:Prentice-Hall, 1999。

扩展功能

版本历史

之前介绍过的R2006a

另请参阅

|

主题

Baidu
map