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
psychoacoustic: 10 bits for good freq 0 bits bad 80% compression atan quant
psychoacoustic: 10 bits for good freq 0 bits bad 80% compression tan quant
psychoacoustic: 10 bits for good freq 4 bits bad 70% compression linear quant
6 bits and 4 bits + windowing 128-sample windows with individual 16bit max magnitude info per window. 64% compression
masking: 10 bit 4 bit compression unknown