summaryrefslogtreecommitdiff
path: root/macros/filter1.sci
diff options
context:
space:
mode:
Diffstat (limited to 'macros/filter1.sci')
-rw-r--r--macros/filter1.sci35
1 files changed, 34 insertions, 1 deletions
diff --git a/macros/filter1.sci b/macros/filter1.sci
index 2a17374..3c32928 100644
--- a/macros/filter1.sci
+++ b/macros/filter1.sci
@@ -1,5 +1,38 @@
function [Y, SF] = filter1 (B, A, X, SI, DIM)
-
+//Apply a 1-D digital filter to the data X.
+//Calling Sequence
+//Y = filter1(B, A, X)
+//[Y, SF] = filter1(B, A, X, SI)
+//[Y, SF] = filter1(B, A, X, [], DIM)
+//[Y, SF] = filter1(B, A, X, SI, DIM)
+//Parameters
+//B: Matrix or Integer
+//A: Matrix or Integer
+//X: Matrix or Integer
+//Description
+//'filter' returns the solution to the following linear, time-invariant difference equation:
+//
+// N M
+//
+// SUM a(k+1) y(n-k) = SUM b(k+1) x(n-k) for 1<=n<=length(x)
+//
+// k=0 k=0
+//
+//where N=length(a)-1 and M=length(b)-1. The result is calculated over the first non-singleton dimension of X or over DIM if supplied.
+//
+//An equivalent form of the equation is:
+//
+// N M
+//
+// y(n) = - SUM c(k+1) y(n-k) + SUM d(k+1) x(n-k) for 1<=n<=length(x)
+//
+// k=1 k=0
+//
+// where c = a/a(1) and d = b/a(1).
+//Examples
+//filter([1,2,3], [3,4,5], [5,6,7])
+//ans =
+// 1.6666667 3.1111111 4.4074074
funcprot(0);
lhs = argn(1)
rhs = argn(2)