Code:

<averager.m> <do_ops.m> <do_ops.m> <wrapper.m> <drop_odds.m> <energy.m> <equalizer.m> <general_quantize.m> <INIT.m> <itransform.m> <masking.m> <psycho.m> <quantize.m> <quantize_atan.m> <quantize_tan.m> <transform.m> in this zip file.

How to use, if necessary:

First put all files in your working directory, then type:

[m,a,r,im,f] = INIT('filename.wav',samples_per_window);

where filename should be the name of a .wav file (sampled at 44100 Hz) in the matlab working directory and samples_per_window should be the number of samples you want per window (a power of two no more than 262144). Since the input file is changed into 262144 samples, making samples_per_window = 262144 means you take in the whole signal at once. Edit transform.m and itransform.m to use either FFT or DCT. This affects what algorithms you can run.

Then type:

do_ops_wrapper(m,a,r,im,f,44100);

The actual procedure that you want to use should be uncommented in the do_ops.m file

Our Input file:
gummi.wav


Output:
psychoacoustic: 10 bits for good freq 0 bits bad 80% compression linear quant

gummi_C1.wav

psychoacoustic: 10 bits for good freq 0 bits bad 80% compression atan quant

gummi_C2.wav

psychoacoustic: 10 bits for good freq 0 bits bad 80% compression tan quant

gummi_C3.wav

psychoacoustic: 10 bits for good freq 4 bits bad 70% compression linear quant

gummi_C1b.wav

6 bits and 4 bits + windowing 128-sample windows with individual 16bit max magnitude info per window. 64% compression

gummi_C1c.wav

masking: 10 bit 4 bit compression unknown

gummi_M.wav