contoh.m

Upload: preketeb

Post on 05-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 contoh.m

    1/4

    %TestArithTestandexampleofhowtouseArith06andArith07

    %----------------------------------------------------------------------%Copyright(c)2000.KarlSkretting.Allrightsreserved.%HogskoleninStavanger(StavangerUniversity),SignalProcessingGroup%Mail:[email protected]:http://www.ux.his.no/~karlsk/%%HISTORY:%Ver.1.010.04.2001KS:functionmade%Ver.1.128.06.2001KS:moretestsignals%----------------------------------------------------------------------

    clearall;TestSeq=2;%whichtestsequencetouse%1:thesameasinTestHuff%2:quantizedDCTcoefficientsofAR(1)signal%3:sometestsequences%4:somebinarytestsequences%5:ECGsignalTestH6=0;%testifHuff06givescorrectresultafterdecompressionTestA6=0;%testifArith06givescorrectresultafterdecompressionTestA7=0;%testifArith07givescorrectresultafterdecompressionCompareAll=1;%compareHuff06,Arith06andArith07

    ifTestSeq==1xC=cell(15,1);randn('state',0);if1%donotmakemanyvaluesxC{1}=zeros(1000,1);xC{1}(23:11:990)=floor(10*randn(length(23:11:990),1));fork=2:9xC{k}=floor(abs(randn(100+100*k,1)*k));endrandn('state',599);xC{10}=floor(filter(1,[1,-0.97],randn(2000,1))+0.5);%anAR-1signalxC{11}=ones(119,1)*7;xC{12}=[];

    endxC{13}=[124,131:146,(-100):5:160]';xC{14}=4351;%thisnextsequencegaveanerrorwithpreviousversion(Huff04)xC{15}=[1,39,37,329,294,236,406,114,378,192,159,0,165,9,77,178,225,30,...286,3,157,34,185,146,15,218,97,82,281,1103,80,45,96,31,90,10,...105,163,19,10,2,73,114,14,42,553,15,412,76,158,379,440,256,71,...181,1,36,149,137,55,191,117,124,32,20,0,88,221,8]';elseifTestSeq==2Method=8;%argumentusedinMat2VecK=16;L=1280;Samples=K*L;

    rho=0.95;randn('state',599);x=filter(1,[1,-rho],randn(Samples,1));%anAR-1signalx2=dct(reshape(x,K,L));%DCTtransformm2=max(abs(x2(:)));ThrF=1;Bins=41;Del=1.01*m2/(Bins/2-1+ThrF);W=UniQuant(x2,Del,ThrF*Del,Bins);xC=Mat2Vec(W,Method,K,L);elseifTestSeq==3

  • 8/2/2019 contoh.m

    2/4

  • 8/2/2019 contoh.m

    3/4

    ;if(sum(abs(xR{k}-xC{k})))disp(['Sequenceno',int2str(k),'hasdifference',...int2str(sum(abs(xR{k}-xC{k})))]);OK=0;endenddisp(['Totalnumberofbits',int2str(Res(xCno+1,3))]);ifOKdisp(['TheresultforHuff06isOK.']);endend

    ifTestA6OK=1;[y,Res]=Arith06(xC);%encodingxR=Arith06(y);%decodingfork=1:xCnodisp(['Numberofbitsforsequence',int2str(k),'is',int2str(Res(k,3))]);if(sum(abs(xR{k}-xC{k})))disp(['Sequenceno',int2str(k),'hasdifference',...int2str(sum(abs(xR{k}-xC{k})))]);OK=0;

    endenddisp(['Totalnumberofbits',int2str(Res(xCno+1,3))]);ifOKdisp(['TheresultforArith06isOK.']);endend

    ifTestA7OK=1;[y,Res]=Arith07(xC);%encodingxR=Arith07(y);%decodingfork=1:xCno

    disp(['Numberofbitsforsequence',int2str(k),'is',int2str(Res(k,3))]);if(sum(abs(xR{k}-xC{k})))disp(['Sequenceno',int2str(k),'hasdifference',...int2str(sum(abs(xR{k}-xC{k})))]);OK=0;endenddisp(['Totalnumberofbits',int2str(Res(xCno+1,3))]);ifOKdisp(['TheresultforArith07isOK.']);endend

    ifCompareAlltic;[yH,ResH]=Huff06(xC,8,0);disp(['Huff06used',num2str(toc),'seconds.']);tic;[y6,Res6]=Arith06(xC);disp(['Arith06used',num2str(toc),'seconds.']);tic;[y7,Res7]=Arith07(xC);disp(['Arith07used',num2str(toc),'seconds.']);disp('Symbols,bitsHuff06,bitsArith06,bitsArith07');disp([ResH(:,[1,3]),Res6(:,3),Res7(:,3)]);

  • 8/2/2019 contoh.m

    4/4

    end

    return;

    %predictionfilterM=25;rxx=xcorr(x,x,M);a=toeplitz(rxx((M+1):(M+M)))\rxx((M+2):(M+M+1));%alternativeL=length(x);X=[x(2:(L-1)),x(1:(L-2)),x(2:(L-1)).^2,x(2:(L-1)).*x(1:(L-2)),x(1:(L-2)).^2];d=x(3:L);a=(X'*X)\(X'*d);xr=floor(X*a+0.5);r=xr-d;disp(['SNR=',num2str(10*(-log10(r'*r)+log10(d'*d)))]);t=1:100;plot(t,xr(t),t,d(t),t,r(t));