diff m-toolbox/classes/@ao/conv_noisegen.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/classes/@ao/conv_noisegen.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,48 @@
+% CONV_NOISEGEN calls the matlab function conv.m to convolute poles and zeros from a given pzmodel
+%
+% The function is a private one and is called from ngconv.m in the
+% noisegenerator folder.
+%
+% Inputs (from ngconv.m):
+%        - pol
+%        - zero
+%
+% Outputs:
+%        - b: denominator coefficients of transfer function
+%        - a: numerator coefficients of transfer function
+% A Monsky 24-07-07
+%
+% $Id: conv_noisegen.m,v 1.2 2008/08/01 13:19:42 ingo Exp $
+%
+
+function [b,a] = conv_noisegen(pol,zer)
+
+  [m,k] = size(pol);
+  [n,l] = size(zer);
+
+  coefb = pol(1,:);
+
+  for i = 2:m
+    coefb = conv(coefb, pol(i,:));
+  end
+
+  b = nonzeros(coefb);
+
+  if n~=0
+    coefa = zer(1,:);
+    for i = 2:n
+      coefa = conv(coefa, zer(i,:));
+    end
+    a = nonzeros(coefa);
+  else
+    a = 1;
+  end
+
+  %normalize to bn = 1
+  m = length(b);
+  normfac = b(m);
+  b = b/normfac;
+  a = a/(normfac*sqrt(2));
+
+end
+