function out=changingf(z,b,c) if c == 1 %a 1 means that the audio file used is %a wav file [y,Fs] = wavread(z); xx = y'; x = xx(1:4096*7); else x = z; Fs = 2^13; end len=length(x); n=2^5; % length of window nw=floor(len/n); % number of length n windows in x x=x(1:n*nw); % cut x to integer number of n %windows L=0.3; % b = quantization bits, [-L,L] amplitude range q=2*L/(2^b-1); % q used for b bits on interval [-L, L] for i=1:n % form the MDCT matrix for j=1:2*n M(i,j)= cos((i-1+1/2)*(j-1+1/2+n/2)*pi/n); end end M=sqrt(2/n)*M; N=M'; % inverse MDCT x=0.3*x/max(abs(x)); % normalize signal to max amplitude = 0.3 %sound(x,Fs); % Matlab's sound command %h = (sqrt(2)*sin(((1:2*n)-1/2)*pi/(2*n)))'; out=[]; for k=1:nw-1 % loop over length 2n windows x0=x(1+(k-1)*n:2*n+(k-1)*n)'; % x0 = x0.*h; y0=M*x0; y1=round(y0/q); % transform components quantized % Storage/transmission of file occurs here y2=y1*q; % transform components dequantized w(:,k)=N*y2; % invert the MDCT if(k>1) w2=w(n+1:2*n,k-1);%.*h(n+1:2*n); w3=w(1:n,k);%.*h(1:n); out=[out;(w2+w3)/2]; % collect the reconstructed signal end % (of length 2n less than length of x) end DIFF = []; for i=1:len-64 %this needs to be changed based on the size of the wav file coming in DIFF=[DIFF;x(i+32)-out(i)]; end out
Error using changingf (line 2) Not enough input arguments.