summaryrefslogtreecommitdiff
path: root/macros/isfir.sci
diff options
context:
space:
mode:
Diffstat (limited to 'macros/isfir.sci')
-rw-r--r--macros/isfir.sci57
1 files changed, 57 insertions, 0 deletions
diff --git a/macros/isfir.sci b/macros/isfir.sci
new file mode 100644
index 0000000..d9e4a05
--- /dev/null
+++ b/macros/isfir.sci
@@ -0,0 +1,57 @@
+//Author: Parthasarathi Panda
+//parthasarathipanda314@gmail.com
+function fir=isfir(varargin)
+ [nargout,nargin]=argn();
+ if (nargin==2) then
+ a=varargin(1);
+ b=varargin(2);
+ if type(a)~=1 | type(b)~=1 then
+ error('check input type');
+ end
+ v=size(a);
+ if length(v)>2 then
+ error('check input dimension');
+ end
+ v=size(b);
+ if length(v)>2 then
+ error('check input dimension');
+ end
+ [n,k]=size(a);
+ if k==1 then
+ a=a';
+ elseif n~=1 then
+ error('check input dimension');
+ end
+ [n,k]=size(b);
+ if k==1 then
+ b=b';
+ k=n;
+ elseif n~=1 then
+ error('check input dimension');
+ end
+ elseif (nargin==1) then
+ sos=varargin(1);
+ if type(sos)~=1 then
+ error('check input dimension');
+ end
+ v=size(sos);
+ if length(v)>2 then
+ error('check input dimension');
+ end
+ if v(2)~=6 then
+ error('no. of columns must be 6');
+ end
+ a=1;b=1;
+ for i=[1:v(1)]
+ a=convol(a,sos(1:3));
+ b=convol(b,sos(4:6));
+ end
+ else
+ error('no. of inputs not matching');
+ end
+ if length(b)==1 then
+ fir=1;
+ else
+ fir=0;
+ end
+endfunction