clear all;
close all;
fs=4000000; %设定系统的抽样频率
k=20000; %设定数字基带信号的频率
fc=200000; %设定正弦载波频率
t=0:1/fs:4000/fs; %仿真时间范围
p=21;
s=randint(1,p,2); %设定需要产生的码元个数
m=s(ceil(k*t+0.01)); %将基带生成时域信号
figure(1)
subplot(311)
plot(t,m);
axis([0 10e-4 —0。2 1。2]);
grid on;
title(’数字基带信号');
b=randint(1,p,2);
%将生成的基带转换为差分码
for i=1:p
if (i==1)
if (s(i)==0)
b(i)=0;
else
b(i)=1;
end
elseif (s(i)==b(i-1))
b(i)=0;
else
b(i)=1;
end
end
n=b(ceil(k*t+0。01)); %将差分码生成时域信号
subplot(312)
plot(t,n);
axis([0 10e-4 -0.2 1。2]);
grid on;
title(’差分码')
x=(n-0.5).*2
car=sin(2*pi*fc*t); %定义载波
dpsk=x。*car; %2dpsk信号的载波调制
subplot(313);
plot(t,car);
axis([0 10e—4 —1.2 1.2]);
title('正弦载波’);
subplot(311);
plot(t,dpsk);
axis([0 10e-4 -1.2 1。2]);
title('2DPSK信号');
grid on;
vn=0。05;
noise=vn.*(randn(size(t)));subplot(312);
figure(2)
%产生噪音
plot(t,noise);
grid on;
title(’噪音信号');
axis([0 10e—4 —0。2 0。2]);
dpskn=(dpsk+noise); %调制后加噪
subplot(313);
plot(t,dpskn);
axis([0 10e-4 -1。2 1。2]);
title(’加噪后信号’);
grid on;
%带通滤波器
fBW=40e3;
f=[0:3e3:4e5];
w=2*pi*f/fs;
z=exp(w*j);
BW=2*pi*fBW/fs;
a=。8547;
p=(j^2*a^2);
gain=。135;
Hz=gain*(z+1).*(z—1)。/(z.^2—(p));
Hz(Hz==0)=10^(8);
a=[1 0 0.7305];
b=[0。135 0 -0.135];
dait=filter(b,a,dpskn);
dait=dait.*10;
figure(3)
subplot(311);
plot(t,dait);
axis([0 10e—4 —1。2 1.2]);
title(’通过带通滤波后输出');
grid on;
cm=dpsk。*car; subplot(312);
plot(t,cm);
axis([0 10e—4 —1.2 1.2]);
grid on;
title('通过相乘器后输出');
%低通滤波器
p=0.72;
%2dpsk相干解调
gain1=0.14;
Hz1=gain1*(z+1)。/(z—(p));
a1=[1 -0。72];
b1=[0。14 0.14];
dit=filter(b1,a1,cm);
dit=dit—mean(dit);
subplot(313);
plot(t,dit);
axis([0 10e-4 -1。2 1.2]);
title('通过低通滤波器后输出’grid on;
%抽样判决器
H=1;
);
L=0;
Z=0;
len=length(dit);
for ii=1:len
if dit(ii)〉= Z
Vs(ii)=H;
else
Vs(ii)=L;
end
end
subplot(311)
plot(t,Vs)
figure(4)
title(’解调后差分信号’)
axis([0 10e—4 -0.2 1.2])
grid on;
c=randint(1,22,2); %产生解调后的差分码元
for f=0:19
c(f+1)=fix(Vs(f*200+50)+0.2)
end
d=randint(1,21,2); %定义差分译码后的码元
for l=1:21 %得到差分译码后的码元
if (l==1)
if (s(1)==0)
d(1)=0;
else
d(1)=1;
end
elseif (c(l)==c(l-1))
d(l)=0;
else
d(l)=1;
end
end
y=d(ceil(k*t+0.01));
subplot(313);
plot(t,y);
axis([0 10e-4 —0.2 1。2]);
title(’码反变换输出'); %基带信号与解调后的信号对比
因篇幅问题不能全部显示,请点此查看更多更全内容