matlab filter zf,什么是MATLAB函数过滤器中’zf’的内容

如果我们有大量数据或内存不足,zf和zi选项将派上用场.

例如,我们可以将数据分为x和newx两部分,并使用过滤函数,如,

[y,zf] = filter(b,a,x);

newy = filter(b,a,newx,zf);

对于a和b为的过滤器,

我们将参考长度(a)-1个样本的y和长度(b)-1个样本的x.

因此,为了在下半场继续我们的过滤器,我们将需要来自前半部分的max(长度(a),长度(b))-1个调用.

例1

y[n] = x[n] + 2 * x[n-1] + 3 * x[n-2];

这是,

a = 1;

b = [1 2 3];

示例输入和输出是,

x = [1 2 3 4 5 6 7 8 9];

y = [1 4 10 16 22 28 34 40 46];

zf = [42 27]';

在newx上实现过滤器,对于我们的前两个样本,

newy[1] = newx[1] + 2*9 + 3*8 = newx[1] + 42 = newx[1] + zf[1];

newy[2] = newx[2] + 2 * newx[1] + 3*9 = newx[2] + 2 * newx[1] + zf[2];

例2

x = 1 : 9;

b = [1 1 1];

a = [1 2];

[y,zf] = filter(b,a,x);

这对应于y [n] = x [n] x [n-1] x [n-2] -2 * y [n-1].

输入和输出是:

x = [1 2 3 4 5 6 7 8 9];

y = [1 1 4 1 10 -5 28 -35 94];

zf = [-171 9]';

现在是下半场的第一个值:

newy[1] = newx[1] + 9 + 8 - 2 * 94 = newx[1] - 171 = newx[1] + zf(1);

newy[2] = newx[2] + newx[1] + 9 - 2*newy[1] = newx[2] + newx[1] + zf(2) - 2*newy[1];

所以我认为现在非常明显,zf是如何工作的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值