clear all;
clc;
Signal=rand(1,2*100)>0.5; % 产生0,1的随机序列
%-------------串并变换-------------------------------
Signal_Para1=reshape(Signal,2,100);
%-------------QPSK调制-------------
Signal_Para=Signal_Para1*2-1; % 变为1,-1
IDATA=zeros(1,100);
QDATA=zeros(1,100); % 将数据分为I,Q两个通道
for j=1:100
IDATA(j)=Signal_Para(2*j-1);
QDATA(j)=Signal_Para(2*j);
end
x=IDATA+QDATA.*1i; % 形成复信号
%加高斯白噪声 信噪比为10
y=awgn(x,10);
%解调
i=real(y);
q=imag(y);
I=[];Q=[];
for m=1:100;
if i(m)>0;
a=1;
else
a=0;
end
I=[I a];
end
for n=1:100;
if q(n)>0;
b=1;
else
b=0;
end
Q=[Q b];
end
%将接收到的I、Q两路合并为jt
jt=zeros(1,200);
for m=1:100;
jt(2*m-1)=I(m);
jt(2*m)=Q(m);
end
%jt就是接收到的 合并I、Q后的 信号
r=0;
for n=1:200;
if jt(n)~=Signal(n);
r=r+1;
end
end
%ber为误码率
ber=r/200