EDA365电子论坛网

标题: 用MATLAB实现2DPSK信号调制解调仿真案例分析 [打印本页]

作者: silenced    时间: 2020-10-10 13:17
标题: 用MATLAB实现2DPSK信号调制解调仿真案例分析
DPSK信号即为差分相移键控,是数字带通信号中较为优良的一种利用前后两个码元之间相位的变化来传输信息的调制方式。相比于PSK信号,它消除了调制中可能会出现的相位模糊现象;相比于AM,它的抗噪声性能得到很大改善;而与FM相比,它所占用的带宽较小,具有很高的频带利用率。因此在固定带宽数字带通信号的传输系统中,DPSK显然是首选,它在数字通信快速发展的今天,具有极大的应用面,我们有必要对它进行全方位的研究。
1、2DPSK信号调制原理
由于2DPSK是利用前后码元的相位变化来传递信息的,因此对于第一个码元的传输,要在其传输之前额外增加一个初始码元参考相位,在这里将其设置为“0”相位并规定前后码元有相位变化表示传输码元“1”,无相位变化表示传输码元“0”。在2DPSK调制中,关键部分是要将绝对码变换为相对码,并经过极性变换将此相对码变换为所需要的双极性相对码,最后调制到s(t)=sin(2*pi*fc*t)信号上,实现差分相移键控。绝对码到相对码的变换可以通过对当前的绝对码码元与前一位的相对码码元取异或得到,设an为绝对码,bn为相对码,有bn=an⊕bn-1;而码型转换只需要将原码元中的“0”以“-1”代替即可。
2、2DPSK信号解调原理
2DPSK一般有两种解调方式,一种为相干解调(极性比较法)加码反变换法,属于同步检波,另一种为差分相干解调(相位比较法),属于非相干解调。这里采用的是极性比较法,属于相干解调,相干解调中的难点在于载波同步信号与已调信号的相乘,在实际中往往需要使用同步电路例如锁相环电路等提取与载波严格同步的信号,而在仿真设计中,可以直接将调制时所使用的载波用于此处。在抽样判决时,规定当抽样信号幅度大于0时,判为码元“0”,否则判为码元“1”,得到相对码,最后经过码反变换即可得到原始的基带信号。抽样判决时需要定时脉冲来定位需要提取的时间位置,在设计中,规定在每一码元间隔的中点抽取幅值。
3、源代码(MATLAB)
clear all %%产生原始信号,即基带信号
i=10;%产生的码元个数
j=5000;
fc=1;
fm=i/10;
B=2*fm;
t=linspace(0,10,j);%将0-10区间平均分成j份
a=round(rand(1,10));%产生10个随机码元
t1=t;
for n=1:10
if a(n)<1;%将a(n)量化为高低电平1和0
for m=j/i*(n-1)+1:j/i*n %以模拟相乘的
t1(m)=0;
end
else
for m=j/i*(n-1)+1:j/i*n
t1(m)=1;
end
end
end
figure(1);
subplot(2,1,1);
plot(t,t1);
set(gca,'xtick',0:1:10);%坐标轴范围和间隔
ylim([-1.5,1.5]);
xlabel('t(时间)');
ylabel('f1');
title('原始信号');
b=zeros(1,i); %信号调制之前所需要准备的相对码
b(1)=a(1);
for n=2:10
if a(n)>=1;
if b(n-1)>=1;
b(n)=0;
else
b(n)=1;
end
else
b(n)=b(n-1);
end
end
t2=t;
for n=1:10
if b(n)<1;
for m=j/i*(n-1)+1:j/i*n
t2(m)=-1;
end
else
for m=j/i*(n-1)+1:j/i*n
t2(m)=1;
end
end
end
subplot(2,1,2);
plot(t,t2);
set(gca,'xtick',0:1:10);
ylim([-1.5,1.5]);
xlabel('t(时间)');
ylabel('f2');
title('相对码');
s1=sin(2*pi*fc*t);%载波信号,%信号的调制,此处调制方式为2DPSK,用模拟相乘法
dpsk=t2.*s1;%最终形成的2DPSK信号
figure(2);
subplot(2,1,1);
plot(t,dpsk);
ylim([-1,1]);
xlabel('t(时间)');
ylabel('f4');
title('dpsk信号');
dpsk1=dpsk.*sin(2*pi*fc*t); %相干解调(极性比较法)加码反变换法
subplot(2,1,2);
plot(t,dpsk1);
ylim([-1,1]);
xlabel('t(时间)');
ylabel('f5');
title('dpsk信号与同步载波相乘');
[N,Wn] = buttord( 2*pi*50, 2*pi*150,3,25,'s');
[b,a]=butter(N,Wn,'s');
fs=3000;
[bz,az]=impinvar(b,a,fs);
dpsk2=filter(bz,az,dpsk1);
figure(3);
subplot(2,1,1);
plot(t,dpsk2);
ylim([-1,1]);
xlabel('t(时间)');
ylabel('f6');
title('LPF之后波形');
t4=zeros(1,i);
for m=0:i-1
if dpsk1(1,m*500+250)<0;
t4(m+1)=0;
for j=m*500+1m+1)*500;
dpsk1(1,j)=0;
end
else
for j=m*500+1m+1)*500;
t4(m+1)=1;
dpsk1(1,j)=1;
end
end
end
subplot(2,1,2);
plot(t,dpsk1);
set(gca,'xtick',0:1:10);
ylim([-1.5,1.5]);
xlabel('t(时间)');
ylabel('f7');
title('抽样判决后的波形');
dt=zeros(1,i);
dt1=t4(1);
for n=2:10;
if (t4(n)-t4(n-1))<=0&&(t4(n)-t4(n-1))>-1;
dt(n)=0;
else
dt(n)=1;
end
end
t4=t;
for n=1:10;
if dt(n)<1;
for m=j/i*(n-1)+1:j/i*n
t4(m)=0;
end
else
for m=j/i*(n-1)+1:j/i*n
t4(m)=1;
end
end
end
figure(4);
plot(t,t4);
ylim([-1.5,1.5]);
xlabel('t(时间)');
ylabel('f8');
title('码反变换后在接收端恢复的原始基带信号')
4、仿真结果

原始信号和差分编码后的相对码

最终的2DPSK信号和与同步载波相乘
! q. i9 M& M  H/ M3 s$ L. P

通过LPF后的信号和抽判后的码元( Q: p3 U) P4 V1 H* L# C  r/ Z

最终恢复的原始基带信号

( T& ]3 W3 v, B: p0 V& R6 V7 `; l( A

作者: QqWw11    时间: 2020-10-10 13:35
与FM相比,它所占用的带宽较小,具有很高的频带利用率




欢迎光临 EDA365电子论坛网 (https://eda365.com/) Powered by Discuz! X3.2