clear all close all plat = 'octave'; %put either 'octave' or 'matlab' if (plat == 'matlab') [s,Fs]=wavread('clarinetto.wav'); else [s,Fs]=auload('clarinetto.wav'); end; t=[0:1/Fs:length(s)/Fs-1/Fs]'; %16-bit quantization nbits=16; q=2/(2^nbits-1) s_16=q*quantize(s./q); viz_frame=[10000:11000]; figure(2) subplot(2,1,1) plot(viz_frame,s(viz_frame)) title('Original sample') %quantizz. nbits=7; q=2/(2^nbits-1) s_q=q*quantize(s./q); subplot(2,1,2) plot(viz_frame,s_q(viz_frame),'b') title('Quantized sample (8 bits)') %companding mu=255; V=0.2; %max(abs(s)); s_compr=f_mulaw(s,mu,V); %quantizz. nbits=8; q=2/(2^nbits-1) s_compr_q=q*quantize(s_compr./q); subplot(2,1,2) %inv companding s_decompr_q=f_invmulaw(s_compr_q,mu,V); subplot(2,1,2) hold on; plot(viz_frame,s_decompr_q(viz_frame),'r--') title('Quantized sample (8 bits, red: mu-law)') hold off; if (plat == 'matlab') wavwrite(s_q,Fs,16,'s_q.wav'); wavwrite(s_decompr_q,Fs,16,'s_qmulaw.wav'); else ausave('s_q.wav',s_q,Fs,'short'); ausave('s_qmulaw.wav',s_decompr_q,Fs,'short'); end