Home > voicebox > meansqtf.m

meansqtf

PURPOSE ^

AVEPSPEC calculates the mean square transfer function for a filter D=(B,A)

SYNOPSIS ^

function d=meansqtf(b,a)

DESCRIPTION ^

AVEPSPEC calculates the mean square transfer function for a filter D=(B,A)

 Inputs: B,A         Numerator and denominator filter coefficients.

 Output: D           The mean square transfer function of the filter B/A. This equals
                     the average otuput power when the filter is fed with unit variance
                     white noise.

                     D may be obtained approximately by:
                         N=1024; D=sum(filter(B,A,[1 zeros(1,N)]).^2)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function d=meansqtf(b,a)
0002 %AVEPSPEC calculates the mean square transfer function for a filter D=(B,A)
0003 %
0004 % Inputs: B,A         Numerator and denominator filter coefficients.
0005 %
0006 % Output: D           The mean square transfer function of the filter B/A. This equals
0007 %                     the average otuput power when the filter is fed with unit variance
0008 %                     white noise.
0009 %
0010 %                     D may be obtained approximately by:
0011 %                         N=1024; D=sum(filter(B,A,[1 zeros(1,N)]).^2)
0012 
0013 % Since the power spectrum is the fourier transform of the autocorrelation, we can calculate
0014 % the average value of pb/pa by taking the 0'th order term of the convolution of the autocorrelation
0015 % functions associated with b and 1/a. Since b is an FIR filter, this convolution is
0016 % a finite sum even though the autocorrelation function of 1/a is infinite in extent.
0017 
0018 %      Copyright (C) Mike Brookes 1997
0019 %      Version: $Id: meansqtf.m 713 2011-10-16 14:45:43Z dmb $
0020 %
0021 %   VOICEBOX is a MATLAB toolbox for speech processing.
0022 %   Home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
0023 %
0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0025 %   This program is free software; you can redistribute it and/or modify
0026 %   it under the terms of the GNU General Public License as published by
0027 %   the Free Software Foundation; either version 2 of the License, or
0028 %   (at your option) any later version.
0029 %
0030 %   This program is distributed in the hope that it will be useful,
0031 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
0032 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0033 %   GNU General Public License for more details.
0034 %
0035 %   You can obtain a copy of the GNU General Public License from
0036 %   http://www.gnu.org/copyleft/gpl.html or by writing to
0037 %   Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.
0038 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0039 
0040 if length(a)==1
0041    d=(b(:)')*b(:);
0042 else
0043    m=lpcar2ra(b(:)');
0044    m(1)=m(1)*0.5;
0045    d=2*lpcar2rr(a(:)',length(m)-1)*m';
0046 end

Generated on Tue 10-Oct-2017 08:30:10 by m2html © 2003