一维数字滤波滤波器filter 使用
filter
1-D digital filter
Syntax
y = filter(b,a,X)
[y,zf] = filter(b,a,X)
[y,zf] = filter(b,a,X,zi)
y = filter(b,a,X,zi,dim)
[...] = filter(b,a,X,[],dim)
滤波函数 0.15
H(z) = ----------------------
1 - 0.8*z^-1
b = 0.15 ;
a = [1 -0.8];
n = [0:100];
x = 2*sin(0.05*pi*n) + 2*randn(1, 101); %滤波前序列
imp = [1; zeros(100, 1)];
h = filter(b, a, imp); % filter 函数使用 将x 变成滤波前序列
w = conv(x, h); % 做乘积
yc = w(1:101); %滤波序列
z= filter(b, a, x); % 进行滤波
xlabel('n');
ylabel('x y yc');
plot(n, x,'r',n,z ,'b', n,yc,'m');
grid;
思想很简单,首先是用冲击函数 Imp = [1 ; zeros(100,1)] 取求出滤波函数,然后再与函数进行乘积
运算结果: