Home > voicebox > pcmu2lin.m

pcmu2lin

PURPOSE

PCMU2LIN Convert Mu-law PCM to linear X=(P,S)

SYNOPSIS

function x=pcmu2lin(p,s)

DESCRIPTION

```PCMU2LIN Convert Mu-law PCM to linear X=(P,S)
lin = pcmu2lin(pcmu) where pcmu contains a vector
of mu-law values in the range 0 to 255.
No checking is performed to see that numbers are in this range.

Output values are divided by the scale factor s:

s        Output Range

1        +-8031    (integer values)
4004.2    +-2.005649 (default)
8031        +-1
8159        +-0.9843118 (+-1 nominal full scale)

The default scaling factor 4004.189931 is equal to
sqrt((2207^2 + 5215^2)/2) this follows ITU standard G.711.
The sine wave with PCM-Mu values [158 139 139 158 30 11 11 30]
has a mean square value of unity corresponding to 0 dBm0.```

CROSS-REFERENCE INFORMATION

This function calls:
This function is called by:

SOURCE CODE

```0001 function x=pcmu2lin(p,s)
0002 %PCMU2LIN Convert Mu-law PCM to linear X=(P,S)
0003 %    lin = pcmu2lin(pcmu) where pcmu contains a vector
0004 %    of mu-law values in the range 0 to 255.
0005 %    No checking is performed to see that numbers are in this range.
0006 %
0007 %    Output values are divided by the scale factor s:
0008 %
0009 %           s        Output Range
0010 %
0011 %           1        +-8031    (integer values)
0012 %        4004.2    +-2.005649 (default)
0013 %        8031        +-1
0014 %        8159        +-0.9843118 (+-1 nominal full scale)
0015 %
0016 %    The default scaling factor 4004.189931 is equal to
0017 %    sqrt((2207^2 + 5215^2)/2) this follows ITU standard G.711.
0018 %    The sine wave with PCM-Mu values [158 139 139 158 30 11 11 30]
0019 %    has a mean square value of unity corresponding to 0 dBm0.
0020
0021
0022
0023 %      Copyright (C) Mike Brookes 1998
0024 %      Version: \$Id: pcmu2lin.m 713 2011-10-16 14:45:43Z dmb \$
0025 %
0026 %   VOICEBOX is a MATLAB toolbox for speech processing.
0028 %
0029 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0030 %   This program is free software; you can redistribute it and/or modify
0032 %   the Free Software Foundation; either version 2 of the License, or
0033 %   (at your option) any later version.
0034 %
0035 %   This program is distributed in the hope that it will be useful,
0036 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
0037 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0038 %   GNU General Public License for more details.
0039 %
0040 %   You can obtain a copy of the GNU General Public License from
0041 %   http://www.gnu.org/copyleft/gpl.html or by writing to
0042 %   Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.
0043 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0044
0045 if nargin<2
0046   t=9.98953613E-4;
0047 else
0048   t=4/s;
0049 end
0050
0051 m=15-rem(p,16);
0052 q=floor(p/128);
0053 e=(127-p-m+128*q)/16;
0054 x=(q-0.5).*(pow2(m+16.5,e)-16.5)*t;```

Generated on Mon 06-Aug-2018 14:48:32 by m2html © 2003