?? untitled1.m
字號:
%function [p]=smld2(snr_in_dB)clcsnr_in_dB=10;N=input('number');Es=3;snr=10^(snr_in_dB/10);sgma=sqrt(1/(2*snr));k=1;g=[1 0 1;0 0 1]; for i=1:N, temp=rand; if (temp<0.25), dsource1(i)=0; dsource2(i)=0; elseif (temp<0.5) dsource1(i)=0; dsource2(i)=1; elseif (temp<0.75) dsource1(i)=1; dsource2(i)=0; else dsource1(i)=1; dsource2(i)=1; end;end;int=zeros(1,2*N);for o=1:N, int(1,2*o-1)=dsource2(o);end;for b=1:N, int(1,2*b)=dsource1(b);end;rrr=reshape(int,2,N);eee=rrr';m=size(eee,1);y=zeros(1,m);for n=1:m y(:,n)=eee(n,1);end;z=cnv_encd(g,k,y);tyu=length(z)/2;s=zeros(1,3*tyu);for i=1:m s(:,3*i-2)=eee(i,2);ends(:,3*N+1)=0;s(:,3*(N+1)+1)=0;for j=1:tyu s(:,3*j-1)=z(2*j-1);end;for k2=1:tyu s(:,3*k2)=z(2*k2);end;uu=reshape(s,3,tyu);kk=uu';n1=gngauss(sgma);n2=gngauss(sgma)for i=1:tyu f(i)=bin2deci(kk(i,:)); if ((f(i)>=3)&(f(i)<7)) R(i)=sqrt(Es)*cos(2*pi*f(i)/8)+n1; H(i)=sqrt(Es)*sin(2*pi*f(i)/8)+n2; T(i)=pi+atan(H(i)/R(i)); elseif f(i)<3 R(i)=sqrt(Es)*cos(2*pi*f(i)/8)+n1; H(i)=sqrt(Es)*sin(2*pi*f(i)/8)+n2; T(i)=atan(H(i)/R(i)); else R(i)=sqrt(Es)*cos(2*pi*f(i)/8)+n1; H(i)=sqrt(Es)*sin(2*pi*f(i)/8)+n2; T(i)=2*pi+atan(H(i)/R(i)); end;end;cc=zeros(tyu,8);dd=zeros(tyu,8);for i=1:tyu for j=0:7 cc(i,j+1)=2*pi*j/8-T(i); dd=abs(cc); end; if dd(i,1)==min(dd(i,:)) mm(i)=0; elseif dd(i,2)==min(dd(i,:)) mm(i)=1; elseif dd(i,3)==min(dd(i,:)) mm(i)=2; elseif dd(i,4)==min(dd(i,:)) mm(i)=3; elseif dd(i,5)==min(dd(i,:)) mm(i)=4; elseif dd(i,6)==min(dd(i,:)) mm(i)=5; elseif dd(i,7)==min(dd(i,:)) mm(i)=6; else dd(i,8)==min(dd(i,:)) mm(i)=7; end;end;out=reshape(mm,tyu,1);k1=size(out,1);z=zeros(3,k1) ;for i=1:k1 m1=deci2bin(out(i,1),3); z(:,i)=m1';end;hh=reshape(z,1,3*k1);ty=zeros(k1-2,2);for i=1:k1-2 ty(i,2)=hh(:,3*i-2);end;for j=1:k1 hh(:,2*j-1)=[];end;%[ww,tt,ee]=viterbi(g,k,hh);ww=viterbi(g,k,hh);k1=k1-1;for i=1:k1-2 ty(i,1)=ww(i);end;ip=reshape(eee,1,2*N);op=reshape(ty,1,2*N);numoferr=0;for w=1:2*N, if ip(w)~=op(w) numoferr=numoferr+1; end;end;p=numoferr/(2*N)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -