Mercurial > hg > ltpda
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 +