Bump version numbers to 6.2.0
[scilab.git] / scilab / modules / sound / macros / mu2lin.sci
1 function [y]=mu2lin(mu)
2     //Utility fct: converts mu-law encoding to linear signal.
3     //   y=mu2lin(mu) converts mu-law encoded 8-bit audio signals,
4     //   stored in the range 0 <= mu <= 255, to
5     //   linear signal amplitude in the range -s < y < s where
6     //   s = 32124/32768 ~= .9803.  The input mu is often obtained
7     //   using mget(...,'uc') to read byte-encoded audio files.
8     //  Translation of C program by:
9     //  Craig Reese: IDA/Supercomputing Research Center
10     //  Joe Campbell: Department of Defense
11     //  29 September 1989
12     SCALE = 1/32768;
13     ETAB = [0,132,396,924,1980,4092,8316,16764];
14     mu = 255-mu;
15     sig = mu>127;
16     e = fix(mu/16)-8*bool2s(sig)+1;
17     f = mu-fix(mu./16).*16;
18     y = f.*2.^(e+2);
19     e(:) = ETAB(e);
20     y = SCALE*(1-2*bool2s(sig)) .* (e+y);
21 endfunction