Home > classes > @miir > private > filload.m

filload

PURPOSE ^

Load a LISO *_iir.fil file to get the filter taps and return a

SYNOPSIS ^

function f = filload(filename)

DESCRIPTION ^

 Load a LISO *_iir.fil file to get the filter taps and return a 
 miir type object.
 
 M Hewitson 11-02-07

 $Id: filload.m,v 1.2 2007/03/15 20:47:38 hewitson Exp $

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function f = filload(filename)
0002 
0003 % Load a LISO *_iir.fil file to get the filter taps and return a
0004 % miir type object.
0005 %
0006 % M Hewitson 11-02-07
0007 %
0008 % $Id: filload.m,v 1.2 2007/03/15 20:47:38 hewitson Exp $
0009 %
0010 
0011 delims = ' \n';
0012 in = fopen(filename, 'rt');
0013 
0014 name = filename(1:end-4);
0015 
0016 if(in < 0)
0017   error(['can not open file ' filename]);
0018 end
0019 lbuffer = fgets(in);
0020 n = 1;
0021 nacoeffs = 0;
0022 nbcoeffs = 0;
0023 filt.a = [];
0024 filt.b = [];
0025 norminst = '';
0026 
0027 while (lbuffer > 0)
0028   if(length(lbuffer) > 1)
0029     % read the first token on this line
0030     [token, r] = strtok (lbuffer, delims);
0031 
0032     % Get fs
0033     if(strcmp(token, 'iir'))
0034       [token, r] = strtok (r, delims); % value
0035       fs = str2num(token);   
0036     end
0037     
0038     % Get a coeffs
0039     if(token(1) == 'a')
0040       [token, r] = strtok (r, delims); % value
0041       nacoeffs = nacoeffs+1;
0042       filt.a(nacoeffs) = str2num(token);   
0043     end
0044     % Get b coeffs
0045     if(token(1) == 'b')
0046       [token, r] = strtok (r, delims); % value
0047       nbcoeffs = nbcoeffs+1;
0048       filt.b(nbcoeffs) = str2num(token);      
0049     end
0050     
0051   end
0052   
0053   n = n + 1;
0054   lbuffer = fgets(in);
0055 end
0056 fclose(in);
0057 
0058 if(nacoeffs > nbcoeffs)
0059   error('## unstable filter: nacoeffs > nbcoeffs');
0060 end
0061 
0062 if(nacoeffs < nbcoeffs)
0063   filt.a = [filt.a zeros(1,(nbcoeffs-nacoeffs))];
0064 end
0065     
0066 ncoeffs = nbcoeffs;
0067 
0068 
0069 f.name = name;
0070 f.fs = fs;
0071 f.ntaps = ncoeffs;
0072 f.a = filt.a;
0073 f.b = filt.b;
0074 f.g = 1;
0075 f.histin = zeros(1, f.ntaps-1);
0076 f.histout = zeros(1, f.ntaps-1);
0077 
0078 
0079 
0080 % END

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003