1、function b=conv(a) % 3 卷积码的编码l=length(a);g0(1,1)=1; %编码过程的生成序列g1(1,1)=0;g2(1,1)=0;g0(1,2)=1;g1(1,2)=1;g2(1,2)=1;m0=0;m1=0;m2=0;l m2=m1; m1=m0; m0=a(i); c(i,1)=g0(1,1)*m0; c(i,2)=rem(g0(1,2)*m0+g1(1,2)*m1+g2(1,2)*m2),2);b= ;m n=size(c);m b=b,c(i,:);function decode=conv_decode(SS1,SS2,SS3,SS4,NEXT,B,d
2、) % 6 卷积码译码l=length(d);if rem(l,10)=0 D=reshape(d,10,l/10); D=D;else d=d,zeros(1,(fix(l/10)+1)*10-l); D=reshape(d,10,length(d)/10);decode= ;m n=size(D);NE=0; switch NE case 0 for j=1:32 error(j,:)=mod(D(i,:)+SS1(j,:),2); SUM(j)=sum(error(j,:); end n,k=min(SUM); decode=decode,B(k,: t=NE+1; NE=NEXT(t,
3、k); case 1)+SS2(j,: case 2)+SS3(j,: case 3)+SS4(j,: end %生成比照矩阵,译码接收序列和原矩阵进行比照function SS1,SS2,SS3,SS4,B,NEXT=conv_en %生成比照矩阵和next存储的下一个状态for i=0:31 A(i+1,:)=dec2bin(i,5);SS0= ;SS1= ;SS2= ;SS3= ;SS4= ;next= ;S0=0,0;S1=0,1;S2=1,0;S3=1,1;t=0;for k=0:3 for i=1: t=k;5 switch t if A(i,j)=1 SS0=SS0,S3; Ne
4、xt=1; t=Next; else SS0=SS0,S0; Next=0; SS0=SS0,S2; Next=3; SS0=SS0,S1; Next=2; next=next,Next;C=reshape(SS0,320,4);C=CSS1=C(1,:);SS2=C(2,:SS3=C(3,:SS4=C(4,:SS1=reshape(SS1,10,32);SS1=SS1SS2=reshape(SS2,10,32);SS2=SS2SS3=reshape(SS3,10,32);SS3=SS3SS4=reshape(SS4,10,32);SS4=SS4next=reshape(next,5,128)
5、;next=nextNEXt=next(:,5);4 NEXT(i,:)=NEXt(32*(i-1)+1:32*i); B(i,j)=1; B(i,j)=0;%-初始化界面-clc;clear all;close all;x=input(码元数目: %信噪比太低易出错 2、1、2卷积码xx=input(数据速率:snr=input(信噪比: a=xulie(x); b=conv(a); transmittedsignal=BPSKmodu(b,xx); cs=channel(transmittedsignal,snr); de,designal=des(cs); SS1,SS2,SS3,SS4
6、,B,NEXT=conv_en; decode=conv_decode(SS1,SS2,SS3,SS4,NEXT,B,designal);%-随机序列-figure,subplot(3,1,1);t=(1/160):(1/160):10; plot(t,a(ceil(t);TITLE(随机序列%-编码后序列-subplot(3,1,2);20;plot(t,b(ceil(t);编码后序列%-BPSK调制后波形-sff=1:320;subplot(3,1,3)cc=sff/16;plot(cc,transmittedsignal(sff);BPSK调制后波形%-解调后波形-subplot(3,1
7、,1)plot(cc,de(sff);解调后波形%-抽样判决结果-plot(t,designal(ceil(t);抽样判决结果%-译码结果-subplot(3,1,3);plot(t,decode(ceil(t);译码结果% 5 解调。滤波、抽样判决function de,designal=des(cs)load Lowpass;p=length(cs);l=(length(Lowpass)-1)/2;a=cs,zeros(1,l);b=filter(Lowpass,1,a);demode=zeros(1,l),ones(1,p);c=demode.*b;c=(c0|c=0 designal(ceil(i/16)=1; designal(ceil(i/16)=0; end %抽样判决,每16点取平均值,大于0为1.小于为0function a=xulie(n) % 1a=rand(1,n)0.5;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1