1. 程式人生 > >MATLAB 中 filter 函式的使

MATLAB 中 filter 函式的使

                                   一維數字濾波濾波器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)] 取求出濾波函式,然後再與函式進行乘積

運算結果:

 

問題解決 給大家發福利,支付寶掃一掃 , 過期不候