%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % CSC 790 Fall 2009 Pluf % Homework 1 Questions 6 and 7 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear f f1 e e1 en; f = wavread('python.wav'); % original signal e = linspace(0, 0, length(f)); % error f1 = f; % decoded signal k = 0.001; % value per level nLevels = 100; % number of levels on one side of zero for i = 2:length(f) % achtung! must use f1 (the encoded and decoded signal) for the difference diff(i) = f(i) - f1(i-1); e(i) = sign(diff(i))*min(floor(abs(diff(i))/k), nLevels); if(e(i) == 0) e(i) = 1; end; e(i) = e(i)*k; f1(i) = f1(i-1) + e(i); end plot(f, 'b'); hold plot(f1, 'r');