接收机的MATLAB仿真程序代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

clearall;closeall;Tc=1;N=128;%扩频增益gx='1000010111000101';%g(x)=x^15+x^13+x^9+x^8+x^7+x^5+1g=bin2dec(gx);state=1;L=2^13;EcN0dB=-21:-14;fork=1:length(EcN0dB)error(k)=0;%计数错误比特数total(k)=0;%计数总的传输比特数sigma(k)=sqrt(10.^(-EcN0dB(k)/10)/2);while(error(k)100)%多径结构p1=sqrt(0.5/2)*(randn(1,L)+j*randn(1,L));p2=sqrt(0.3/2)*(randn(1,L)+j*randn(1,L));p3=sqrt(0.2/2)*(randn(1,L)+j*randn(1,L));t1=0;t2=1;t3=2;[ptstate]=mgen(g,state,L+t3);pt=2*pt-1;%数据产生d=sign(randn(1,L/N));%一次64个%扩频,先将数据扩展,然后与pt点积dd=sigexpand(d,N);s=conv(dd,ones(1,N));st=s(1:L+t3).*pt(1:L+t3);%扩频%经过多径信道,加入噪声z=sigma(k)*(randn(1,L)+j*randn(1,L));rt=st(1:L).*p1+st(t2+1:L+t2).*p2+st(t3+1:L+t3).*p3+z;%rake接收r1=rt.*conj(p1).*pt(1:L);r2=rt.*conj(p2).*pt(t2+1:L+t2);r3=rt.*conj(p3).*pt(t3+1:L+t3);%积分r1=reshape(r1,N,L/N);y1=sum(r1);r2=reshape(r2,N,L/N);y2=sum(r2);r3=reshape(r3,N,L/N);y3=sum(r3);%合并y=y1+y2+y3;%最大比合并%判决dc=sign(real(y));error(k)=error(k)+sum(abs((d-dc))/2)total(k)=total(k)+L/N;endendber=error./total;semilogy(EcN0dB,ber);xlabel('Ec/N0/dB');ylabel('误比特率');

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功