MATLAB Function Reference |
以一個無限脈衝響應(infinite impulse response(IIR))或有限脈衝響應過濾資料(finite impulse response(FIR))
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)
Description
filter
函數以一個可用於實數和複數輸入的數位濾器過濾一個資料序列。濾器是一個標準方程式的 direct form II transposed 建置(看"Algorithm")。
y = filter(b,a,X)
以分子係數向量 b
和 a
描述的濾器過濾向量 X
中的資料,如果 a(1)
不等於 1
,filter
會以 a(1)
對濾器係數正規化。如果 a(1)
等於 0
,filter
回傳一個錯誤。
如果 X
是一個矩陣,filter
對 X
的直行動作。如果 X
是一個多維度陣列,filter
對第一個非單一維度動作。
[y,zf] = filter(b,a,X)
傳回濾器延遲的最後狀況,zf
,輸出 zf
是一個維度 max(size(a),size(b))
的向量或每一個向量是 X
各個直行的陣列。
[y,zf] = filter(b,a,X,zi)
接受濾器延遲的初始狀況然後傳回最後的狀況,分別是 zi
和 zf
。輸入 zi
是一個長度 max(length(a),length(b))-1
的向量(或一個向量的陣列)。
[...] = filter(b,a,X,[],dim)
對維度 dim
動作。
Algorithm
filter
函數是由 direct form II transposed structure 建構,
y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)*y(n-1) - ... - a(na+1)*y(n-na)
其中 n-1
是濾器的次數,可以處理 FIR 和 IIR [1]。
filter
對樣品 m 的動作是經由時間座標系(time domain)的差值等式
此過濾動作在 z-transform domain 的輸入-輸出描述是一個有禮數的轉換函數,
See Also
filtfilt
in the Signal Processing Toolbox
References
[1] Oppenheim, A. V. and R.W. Schafer. Discrete-Time Signal Processing, Englewood Cliffs, NJ: Prentice-Hall, 1989, pp. 311-312.
fill3 | filter2 |