一、filter概念及函数说明
filter函数是一维的数字滤波器,主要的应用语法如下所示
y=filter(b,a,x);其中b为分子系数向量,a为分母系数向量,x表示输入序列;
下面采用M点的滑动平均系统去噪实验说明一下:
N = 201;
n = 0.8*rand(1,N)-0.5;//随机噪声
k=0:N-1;
s=2*k.*(0.9.^k)+2.0*cos(0.02*pi*k)+5.0;//信号
x = s + n;//加噪
subplot(2,1,1);
plot(k, n, 'k-', k, s, 'b--', k, x, 'm-');
xlabel('Time index k');
legend('n[k]', 's[k]', ' x[k]');
M = 5;
b = ones(M,1)/M;
a = [1];
y = filter(b, a, x);
subplot(2,1,2);
plot(k, s, 'b-', k, y, 'r-');
xlabel('Time index k');
legend('s[k]', 'y[k]');
实验结果图
可见对于一些简单、基础的信号,用filter滤波器去噪效果较好;但是它容易淹没再强噪声中,在此不做详细说明了。