Home > classes > @miir > 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.4 2008/08/08 12:12:04 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.4 2008/08/08 12:12:04 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 = str2double(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) = str2double(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) = str2double(token);
0049       end
0050     end
0051 
0052     n = n + 1;
0053     lbuffer = fgets(in);
0054   end
0055   fclose(in);
0056 
0057   if(nacoeffs > nbcoeffs)
0058     error('## unstable filter: nacoeffs > nbcoeffs');
0059   end
0060 
0061   if(nacoeffs < nbcoeffs)
0062     filt.a = [filt.a zeros(1,(nbcoeffs-nacoeffs))];
0063   end
0064 
0065   ncoeffs = nbcoeffs;
0066 
0067   f.name    = name;
0068   f.fs      = fs;
0069   f.a       = filt.a;
0070   f.b       = filt.b;
0071   f.ntaps   = ncoeffs;
0072   f.gain    = 1;
0073   f.histin  = zeros(1, f.ntaps-1);
0074   f.histout = zeros(1, f.ntaps-1);
0075 end
0076 
0077

Generated on Mon 08-Sep-2008 13:18:47 by m2html © 2003