nSamp=8;
numSymb=100000;
ts=1/(nSamp*numSymb);
t=(0:nSamp*numSymb-1)*ts;
M=4;
SNR=-3:3;
grayencod=[0 1 3 2];
for ii=1:length(SNR)
mgs=randsrc(1,numSymb,0:3);
mgs_gr=grayencod(mgs+1);
mgs_tx=pskmod(mgs_gr,M);
mgs_tx=rectpulse(mgs_tx,nSamp);
h=rayleighchan(ts,10);
mgs_tx1=filter(h,mgs_tx);
mgs_rx=awgn(mgs_tx,SNR(ii));
mgs_rx1=awgn(mgs_tx1,SNR(ii));
mgs_rx_down=intdump(mgs_rx,nSamp);
mgs_rx_down1=intdump(mgs_rx1,nSamp);
mgs_gr_demod=pskdemod(mgs_rx_down,M);
mgs_gr_demod1=pskdemod(mgs_rx_down1,M);
[dummy,graydecod]=sort(grayencod);
graydecod=graydecod-1;
mgs_demod=graydecod(mgs_gr_demod+1);
mgs_demod1=graydecod(mgs_gr_demod1+1);
[errorBit BER(ii)]=biterr(mgs,mgs_demod,log2(M));
[errorBit1 BER1(ii)]=biterr(mgs,mgs_demod1,log2(M));
[errorSym SER(ii)]=symerr(mgs,mgs_demod);
[errorSym1 SER1(ii)]=symerr(mgs,mgs_demod1);
end
figure
semilogy(SNR,BER,'-ro',SNR,SER,'-r*',SNR,BER1,'-r.',SNR,SER1,'-r^')
评论0