filter是做滤波,其实原理跟卷积是想通的,只不过处理结果的方法不同,先看示例程序:
x=[1,2,3,4,5];
h=[1,1,1];
y1=conv(h,x)
y2=filter(h,1,x)
y3=filter(x,1,h)
y4=filter(x,1,[h,zeros(1,4)])
结果为:
y1 =
1 3 6 9 12 9 5
y2 =
1 3 6 9 12
y3 =
1 3 6
y4 =
1 3 6 9 12 9 5
现在对结果一一作出解释;
1.y1的确是严格按照卷积的数学表达式计算的,不解释。
在解释后面几条时,先说一下filter的用法:filter(B,A,X),其中B,A组成一个差分方程,X是输入信号,例如:
filter([1,2],1,[1,2,3,4,5])实现 y[k]=x[k]+2*x[k-1]
咱们这里讨论的就是A=1的情况。有了基本说明,现在言归正传:
2.说明filter函数平移停滞在X的最后一个输入与滤波器的第一个系数对齐时。这里为
从
1 1 1
5 4 3 2 1
输出1,到
1 1 1

本文详细介绍了MATLAB中filter和conv函数在卷积操作上的区别和应用场景。filter函数主要用于实现滤波,当A=1时,与卷积相似但处理方式略有不同。conv函数直接计算卷积,输出长度等于输入序列长度与滤波器长度之和减1。文章通过实例展示了这两个函数的输出结果,并解释了它们在长度和补零方面的差异。
最低0.47元/天 解锁文章
278

被折叠的 条评论
为什么被折叠?



