出的图全为SNR vs BER。
1.BPSK
代码如下:
clear all;
close all;
k=1;
%生成10000个-1/1的随机数列作为初始信号
r=randint(1,10000);
for i=1:10000
if r(i)==0
s(i)=-1;
else
s(i)=1;
end
end
rs=s;
for snrdb=1:1:16;
%给信号乘上参数B=1/sqrt(2)的瑞利衰落系数
h=raylrnd(1/sqrt(2),1,10000)*sqrt(snrdb);
s=h.*s;
%给信号加上功率为snr(db)的高斯白噪声信号
x=s+wgn(1,10000,snrdb);
y=x;
%这里没有发生角度的衰落,所以排不排除瑞利衰落系数无所谓
%解调,加上噪声后如果与原信号同号,则未出错,反之则出错
error(snrdb)=length(find(y.*rs<0));
%计算误码率
ber(snrdb)=error(snrdb)/10000;
end
snrdb=1:1:16;
semilogy(snrdb,ber);
title('BPSK with Rayleigh channel');
xlabel('SER');
ylabel('BER');
- QPSK
代码如下:
这里仅讨论格雷映射下的瑞利衰落QPSK调制
clear all;