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:
• lpcar2ra LPCAR2RA Convert ar filter to inverse filter autocorrelation coefs. RA=(AR)
• lpcar2rr LPCAR2RR Convert autoregressive coefficients to autocorrelation coefficients RR=(AR,P)
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.
0023 %
0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0025 %   This program is free software; you can redistribute it and/or modify
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 Mon 06-Aug-2018 14:48:32 by m2html © 2003