找回密码
 注册
关于网站域名变更的通知
查看: 448|回复: 1
打印 上一主题 下一主题

MATLAB之Filter Data in Sections函数介绍

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-8-17 14:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

MATLAB之filter 函数介绍(一维数字滤波器)

在上篇博文中,里面有一个例子,就是过滤部分中的数据,这个部分中的数据的意思是如果有一个向量需要过滤,我们可以把它分为几段,然后分段过滤。

关于这个问题,使用语法:

[y,zf] = filter(___)

赋值符号左边的部分有一个y是过滤后的数据,那至于zf到底是个什么玩意,当时没有弄清楚,所以这里来专门讨论一番,参考MATLAB的参考文档的例子。

赋值符号右边的部分,可以是函数filter的语法中任何一种,即:

filter(b,a,x):对x进行滤波;

filter(b,a,x,zi):关于zi的解释,我们看下面这一段:


zi — Initial conditions for filter delays1 L6 G% t- I( e
[] (default) | vector | matrix | multidimensional array

Initial conditions for filter delays, specified as a vector, matrix, or multidimensional array.

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

  • If zi is a vector, then its length must be max(length(a),length(b))-1.

  • If zi is a matrix or multidimensional array, then the size of the leading dimension must be max(length(a),length(b))-1. The size of each remaining dimension must match the size of the corresponding dimension of x. For example, consider using filter along the second dimension (dim = 2) of a 3-by-4-by-5 array x. The array zi must have size [max(length(a),length(b))-1]-by-3-by-5.


    ( r3 A4 Q: r1 N& k; f/ r, E& S0 Q4 c
! ~' q5 h. R/ u% S$ n

The default value, specified by [], initializes all filter delays to zero.

Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical4 |' K$ ]9 a6 Z0 k  Q% k& ]
Complex Number Support: Yes


对比zf,看看zf的解释:

zf — Final conditions for filter delays
+ V; K5 ]# z3 J' @/ avector | matrix | multidimensional array

Final conditions for filter delays, returned as a vector, matrix, or multidimensional array.

滤波器延迟的最终条件,作为矢量,矩阵或多维数组返回。

  • If x is a vector, then zf is a column vector of length max(length(a),length(b))-1.

  • If x is a matrix or multidimensional array, then zf is an array of column vectors of length max(length(a),length(b))-1, such that the number of columns in zf is equivalent to the number of columns in x. For example, consider using filter along the second dimension (dim = 2) of a 3-by-4-by-5 array x. The array zf has size [max(length(a),length(b))-1]-by-3-by-5.


    & v( _% x8 z$ X; k& s8 e+ A# P6 I

Data Types: double | single


filter(b,a,x,zi,dim):dim是指定维度,如果x是一个矩阵,那么如果dim为1(默认值),那么就把对矩阵的每个列进行滤波,如果dim为2,则对矩阵的行进行滤波。


Filter Data in Sections


8 ~$ E) F% ?2 f( RUse initial and final conditions for filter delays to filter data in sections, especially if memory limitations are a consideration.

& u7 L, N4 _/ u  m3 f: a% q5 i
Generate a large random data sequence and split it into two segments, x1 and x2.
. j* ?0 Z  U+ x: J2 Hx = randn(10000,1);

x1 = x(1:5000);
0 G) `  G+ x- h; I0 {2 ux2 = x(5001:end);, l; d! T# {& h, x+ |) o1 a7 }5 v
The whole sequence, x, is the vertical concatenation of x1 and x2.

Define the numerator and denominator coefficients for the rational transfer function,

b = [2,3];
6 X$ [( A6 l: m1 J- }% C/ U+ ]a = [1,0.2];

Filter the subsequences x1 and x2 one at a time. Output the final conditions from filtering x1 to store the internal status of the filter at the end of the first segment.
6 @+ Q6 w  w" C4 f7 B" _& m[y1,zf] = filter(b,a,x1);

Use the final conditions from filtering x1 as initial conditions to filter the second segment, x2./ e% F, X6 E8 L
y2 = filter(b,a,x2,zf);
$ Q; L5 \' p. e& _6 Ay1 is the filtered data from x1, and y2 is the filtered data from x2. The entire filtered sequence is the vertical concatenation of y1 and y2.

Filter the entire sequence simultaneously for comparison.
3 \0 i4 c" h, G+ R4 O/ N9 x% \7 fy = filter(b,a,x);

isequal(y,[y1;y2])


上面这个例子,验证了一种情况,就是如果对一个序列进行滤波,可以得到一个结果。

也可以通过另一种方式,就是把该序列分成两段,分段滤波,最后将滤波数据拼接起来,对比两种方式的最终结果,发现是一致的。

对第一段数据进行滤波时候会得到一个zf,这个zf作为第二段数据滤波时候的zi。


5 J2 g9 [4 V: g2 }4 F2 L8 O
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-8-17 15:07 | 只看该作者
    MATLAB之Filter Data in Sections函数介绍
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-22 15:20 , Processed in 0.078125 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表