clear
close all
i=10;%基带信号码元数
j=5000;
t=linspace(0,5,j);%0-10之间产生5000个点行矢量,即将[0,5]分成5000份
fc=4;%载波频率
fm=i/5;%码元速率
B=2*fm;%信号带宽
%产生基带信号
a=round(rand(1,i));
%a=inputdlg('请输入十位二级制基带信号','输入信号');
%a=[1,1,1,,0,0,0,1,0,1,0];%随机序列,基带信号
figure(3);stem(a);
st1=t;
for n=1:10
if a(n)<1;
for m=j/i*(n-1)+1:j/i*n
st1(m)=0;
end
else
for m=j/i*(n-1)+1:j/i*n
st1(m)=1;
end
end
end
figure(1);
subplot(311);
plot(t,st1);
title('基带信号st1');
axis([0,5,-1,2]);
%基带信号求反
%由于PSK中的是双极性信号,因此对上面所求单极性信号取反来与之一起构成双极性码
st2=t;
for k=1:j;
if st1(k)>=1;
st2(k)=0;
else
st2(k)=1;
end
end
subplot(312);
plot(t,st2);
title('基带信号反码st2');
axis([0,5,-1,2]);
%基带信号变成双极性
st3=st1-st2;
subplot(313);
plot(t,st3);
title('双极性基带信号st3');
axis([0,5,-2,2]);
%载波信号
s1=sin(2*pi*fc*t);
figure(2);
subplot(311);
plot(s1);
title('载波信号s1');
%调制
e_psk=st3.*s1;
subplot(312);
plot(t,e_psk);
title('调制后波形e-2psk');
%加噪
noise=rand(1,j);
psk=e_psk+noise;
subplot(313)
plot(t,psk)
title('加噪后波形')
%相干解调
psk=psk.*s1;%与载波相乘
figure(3)
subplot(311)
plot(t,psk);
title('与载波相乘后波形');
[f,af]=T2F(t,psk);%傅里叶变换
%subplot(614);
%plot(t,psk);
%title('傅里叶变换后波形');
[t,psk] = lpf(f,af,B);%通过低通滤波器
subplot(312);
plot(t,psk);
title('低通滤波后波形');
%抽样判决
for m=0:i-1
if psk(1,m*500+250)<0;
for j=m*500+1:(m+1)*500;
psk(1,j)=0;
end
else
for j=m*500+1:(m+1)*500;
psk(1,j)=1;
end
end
end
subplot(313);
plot(t,psk);
axis([0,5,-1,2]);
title('抽样判决后波形');
评论2