2DPSK调制与解调系统的仿真.docx

上传人:b****8 文档编号:9208274 上传时间:2023-02-03 格式:DOCX 页数:29 大小:362.51KB
下载 相关 举报
2DPSK调制与解调系统的仿真.docx_第1页
第1页 / 共29页
2DPSK调制与解调系统的仿真.docx_第2页
第2页 / 共29页
2DPSK调制与解调系统的仿真.docx_第3页
第3页 / 共29页
2DPSK调制与解调系统的仿真.docx_第4页
第4页 / 共29页
2DPSK调制与解调系统的仿真.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

2DPSK调制与解调系统的仿真.docx

《2DPSK调制与解调系统的仿真.docx》由会员分享,可在线阅读,更多相关《2DPSK调制与解调系统的仿真.docx(29页珍藏版)》请在冰豆网上搜索。

2DPSK调制与解调系统的仿真.docx

2DPSK调制与解调系统的仿真

2DPSK调制与解调系统的仿真

 

摘要:

二进制差分相移键控简称二进制相对调相,记作2DPSK。

它是数据通信中最长用的一种调制方式,这种方式的优点最简单,易于实现。

与2PSK的波形不同,2DPSK波形的同一相位并不对应相同的数字信号符号,而前后码元的相对相位财位以确定信息符号。

为了使数字信号在带通信道中传输,必须用数字基带信号对载波进行调制,以是信号与信道特性相匹配。

调制解调技术是实现现代通信的重要手段,研究数字通信调制解调理论,提供有效的调制方式,有着重要的意义。

MATLAB中得通信工具箱可以用来进行通信领域的研究,开发,系统设计和仿真。

关键词:

MATLABSimulink2DPSK调制,解调。

1.设计原理

1.12DPSK信号原理

2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。

现假设用Φ表示本码元初相与前一码元初相之差,并规定:

Φ=0表示0码,Φ=π表示1码。

则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图2.1所示。

在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。

如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。

所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。

定义DF为本码元初相与前一码元初相之差,假设:

DF=0→数字信息“0”;

DF=p→数字信息“1”。

”

则数字信息序列与2DPSK信号的码元相位关系可举例表示如下:

数字信息:

1011011101

DPSK信号相位:

0ππ0ππ0π00π

或:

π00π00π0ππ0

1.22DPSK信号的调制原理

一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。

2DPSK信号的的模拟调制法框图如图2.2.1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。

图1模拟调制法

2DPSK信号的的键控调制法框图如图2.2.2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。

选相开关作用为当输入为数字信息“0”时接相位0,当输入数字信息为“1”时接pi。

图2键控法调制原理图

1.32DPSK信号的解调原理

2DPSK信号最常用的解调方法有两种,一种是极性比较和码变换法,另一种是差分相干解调法。

1.3.12DPSK信号解调的极性比较法

1、它的原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,再与本地载波相乘,去掉调制信号中的载波成分,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决的到基带信号的差分码,再经过逆差分器,就得到了基带信号。

它的原理框图如图2.3.1所示。

延迟T

图3极性比较解调原理图

2、误码率计算

这时由抽样判决器输出数字信号(相对码)的误码率为

大信噪比时,即

的情况下,上式可进一步整理为

1.3.22DPSK信号解调的差分相干解调法

差分相干解调的原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。

它的原理框图如图2.3.2所示。

图4差分相干解调原理图

此时,系统总的误码率为

2.实现方法

2.1建立模型

2.1.1差分和逆差分变换模型

差分变换模型的功能是将输入的基带信号变为它的差分码。

逆码变换器原理图3.1.1如下:

 

图5原理图

2.1.2带通滤波器和低通滤波器的模型

带通滤波器模型的作用是只允许通过(fl,fh)范围内的频率分量、但将其他范围的频率分量衰减到极低水平。

低通滤波器模型的作用是只允许通过(0,fh)范围内的频率分量,并且将其他范围的频率分量衰减到极低水平。

在Matlab中带通滤波器和低通滤波器的模型可以用编写程序来模拟。

2.1.3抽样判决器模型

抽样判决器的功能是根据位同步信号和设置的判决电平来还原基带信号。

在Matlab中抽样判决器可以用simulink中的模块来模拟。

它的模型框图如图所示,它的内部结构图如图3.1.3所示。

图6抽样判决器

2.1.4系统结构图

图7系统结构图

2.1.52DPSK调制与解调总原理框图

图82DPSK调制与解调总原理框图

 

1调制系统设计

1)产生基带信号

本例中使用matlab中的rand函数随机产生10个随机数,并采用就近取整的办法使其值为0、1.此过程产生的码为绝对码。

并且,每个值需要分配一定的长度。

代码如下:

clearall

closeall

i=10;%码元的个数

j=5000;

fc=4;

fm=i/5;

B=2*fm;

t=linspace(0,5,j);%将0-5区间平均分为j份

%%%%%%%%%%%%%产生基带信号%%%%%%%%%%%%%%%%

a=round(rand(1,i));%产生10个随机码,记为a

st1=t;

forn=1:

10

ifa(n)<1;

form=j/i*(n-1)+1:

j/i*n%j/i为每个码元的

st1(m)=0;

end

else

form=j/i*(n-1)+1:

j/i*n

st1(m)=1;

end

end

end

2)相对码产生

根据相对码的原理,源码中1的值对应相位改变π,源码中0的值对应相位不改变。

将π变为1,0仍为0,则形成相对码。

代码如下

b=zeros(1,i);

b

(1)=a

(1);

forn=2:

10

ifa(n)>=1;

ifb(n-1)>=1

b(n)=0;

else

b(n)=1;

end

else

b(n)=b(n-1);

end

end

st1=t;

forn=1:

10

ifb(n)<1;

form=j/i*(n-1)+1:

j/i*n

st1(m)=0;

end

else

form=j/i*(n-1)+1:

j/i*n

st1(m)=1;

end

end

end

subplot(412);

plot(t,st1);

title('相对码');

axis([0,5,-1,2]);

st2=t;

fork=1:

j;

ifst1(k)>=1;

st2(k)=0;

else

st2(k)=1;

end

end;

st1即为相对码,st2为相对码的反码,在调制中使用。

3)产生载波信号

代码:

s1=sin(2*pi*fc*t);

4)调制

按图一中所示,相对码及其反码分别和载波相乘再相加,即得到调制信号。

d1=st1.*s1;

d2=st2.*(-s1);%相移180

figure

(2);

subplot(4,1,1);

plot(t,d1);

title('st1*s1');

subplot(4,1,2);

plot(t,d2);

title('st2*s2');

e_dpsk=d1+d2;

图9码元产生

 

图10调制信号

2传输系统设计

传输系统设计比较简答,只需加入信道噪声即可。

代码:

noise=rand(1,j);

dpsk=e_dpsk+0.5*noise;%加入噪声

效果如图6所示

3解调系统设计

解调系统中,极性比较法和差分相干法有很多部分相同,可以用相同设计。

相同部分设计。

1)带通滤波器

在仿真过程省略。

2)乘法器

由于是仿真,可直接相乘。

3)低通滤波器

设计为只允许基频信号通过。

代码:

[f,af]=T2F(t,dpsk);

[t,dpsk]=lpf(f,af,B);

所用函数代码:

T2F子函数

function[f,sf]=T2F(t,st)

%ThisisafunctionusingtheFFTfunctiontocalculateasignal'sFourier

%Translation

%Inputisthetimeandthesignalvectors,thelengthoftimemustgreater

%than2

%Outputisthefrequencyandthesignalspectrum

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(st);

Lpf子函数

f=-N/2*df:

df:

N/2*df-df;

sf=fft(st);

sf=T/N*fftshift(sf);

function[t,st]=lpf(f,sf,B)

%Thisfunctionfilteraninputdatausingalowpassfilter

%Inputs:

f:

frequencysamples

%sf:

inputdataspectrumsamples

%B:

lowpass'sbandwidthwitharectanglelowpass

%Outputs:

t:

timesamples

%st:

outputdata'stimesamples

df=f

(2)-f

(1);

T=1/df;

hf=zeros(1,length(f));

bf=[-floor(B/df):

floor(B/df)]+floor(length(f)/2);

hf(bf)=1;

yf=hf.*sf;

[t,st]=F2T(f,yf);

st=real(st);

4)抽样判决器

抽样判决器就是过零检测。

代码:

st=zeros(1,i);

form=0:

i-1;

ifdpsk(1,m*500+250)<0;

st(m+1)=0;

forj=m*500+1:

(m+1)*500;

dpsk(1,j)=0;

end

else

forj=m*500+1:

(m+1)*500;

st(m+1)=1;

dpsk(1,j)=1;

end

end

end

两种解调方式不同之处在于延迟单元和码(反)变换器。

5)延迟单元

延迟一个码元长度,第一个码元长度的内容根据编码规则,抽样判决。

代码:

ifdpsk(65)<0

dpsk_delay(1:

j/i)=dpsk(1:

j/i);

else

dpsk_delay(1:

j/i)=-dpsk(1:

j/i)

end

dpsk_delay(j/i+1:

j)=dpsk(1:

j-j/i);

6)码(反)变换器

将相对码变换为绝对码,与编码器正好相反。

代码:

dt=zeros(1,i);

dt

(1)=st

(1);

forn=2:

10;

if(st(n)-st(n-1))<=0&&(st(n)-st(n-1))>-1;

dt(n)=0;

else

dt(n)=1;

end

end

st=t;

forn=1:

10

ifdt(n)<1;

form=j/i*(n-1)+1:

j/i*n

st(m)=0;

end

else

form=j/i*(n-1)+1:

j/i*n

st(m)=1;

end

end

end

4极性比较法解调结果结果

如图,可见解调结果与源码完全一致。

图11极性比较法解调结果

图12源码

5差分相干法解调结果

如图,解调结果与源码完全一致。

图13差分相干法解调结果

图14源码

 

 

程序源码

1极性比较法DPSK.m

clearall

closeall

i=10;%码元的个数

j=5000;

fc=4;

fm=i/5;

B=2*fm;

t=linspace(0,5,j);%将0-5区间平均分为j份

%%%%%%%%%%%%%产生基带信号%%%%%%%%%%%%%%%%

a=round(rand(1,i));%产生10个随机码,记为a

st1=t;

forn=1:

10

ifa(n)<1;

form=j/i*(n-1)+1:

j/i*n%j/i为每个码元的

st1(m)=0;

end

else

form=j/i*(n-1)+1:

j/i*n

st1(m)=1;

end

end

end

figure

(1);

subplot(411);

plot(t,st1);

title('绝对码');

axis([0,5,-1,2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%差分变换

b=zeros(1,i);

b

(1)=a

(1);

forn=2:

10

ifa(n)>=1;

ifb(n-1)>=1

b(n)=0;

else

b(n)=1;

end

else

b(n)=b(n-1);

end

end

st1=t;

forn=1:

10

ifb(n)<1;

form=j/i*(n-1)+1:

j/i*n

st1(m)=0;

end

else

form=j/i*(n-1)+1:

j/i*n

st1(m)=1;

end

end

end

subplot(412);

plot(t,st1);

title('相对码');

axis([0,5,-1,2]);

st2=t;

fork=1:

j;

ifst1(k)>=1;

st2(k)=0;

else

st2(k)=1;

end

end;

subplot(413)

plot(t,st2)

title('相对码的反码')

axis([05-12])

%%%%%%%%%%%%载波信号%%%%%%%%%%%%%%%%%

s1=sin(2*pi*fc*t);

subplot(414);

plot(s1);

title('载波信号');

%%%%%%%%%%%%%%调制%%%%%%%%%%%%%%%%%%%%%%

d1=st1.*s1;

d2=st2.*(-s1);%相移180

figure

(2);

subplot(4,1,1);

plot(t,d1);

title('st1*s1');

subplot(4,1,2);

plot(t,d2);

title('st2*s2');

e_dpsk=d1+d2;

subplot(4,1,3);

plot(t,e_dpsk);

title('调制后波形');

noise=rand(1,j);

dpsk=e_dpsk+0.5*noise;%加入噪声

subplot(4,1,4);

plot(t,dpsk);

title('加噪声信号');

%%%%%%%%%%%%%与载波相乘%%%%%%%%%%%%%%%%%%%%%

dpsk=dpsk.*sin(2*pi*fc*t);%与载波相乘

figure

subplot(4,1,1);

plot(t,dpsk);

title('与载波相乘后波');

%%%%%%%%%%%%%低通滤波%%%%%%%%%%%%%%%%%%%%%%%%

[f,af]=T2F(t,dpsk);%通过低通滤波器

[t,dpsk]=lpf(f,af,B);

subplot(4,1,2);

plot(t,dpsk);

title('通过低通滤波器波形');

%%%%%%%%%%%%%%%抽样判决%%%%%%%%%%%%%%%%%%%%

st=zeros(1,i);

form=0:

i-1;

ifdpsk(1,m*500+250)<0;

st(m+1)=0;

forj=m*500+1:

(m+1)*500;

dpsk(1,j)=0;

end

else

forj=m*500+1:

(m+1)*500;

st(m+1)=1;

dpsk(1,j)=1;

end

end

end

subplot(4,1,3);

plot(t,dpsk);

axis([0,5,-1,2]);

title('抽样判决后波形')

%%%%%%%%%%%%%%码反变换%%%%%%%%%%%%%%%%%%

dt=zeros(1,i);

dt

(1)=st

(1);

forn=2:

10;

if(st(n)-st(n-1))<=0&&(st(n)-st(n-1))>-1;

dt(n)=0;

else

dt(n)=1;

end

end

st=t;

forn=1:

10

ifdt(n)<1;

form=j/i*(n-1)+1:

j/i*n

st(m)=0;

end

else

form=j/i*(n-1)+1:

j/i*n

st(m)=1;

end

end

end

subplot(4,1,4);

plot(t,st);

title('码反变换后波形');

axis([0,5,-1,2]);

 

2差分相干法DPSK1.m

clearall

closeall

i=10;%码元的个数

j=5000;

fc=4;

fm=i/5;

B=2*fm;

t=linspace(0,5,j);%将0-5区间平均分为j份

%%%%%%%%%%%%%产生基带信号%%%%%%%%%%%%%%%%

a=round(rand(1,i));%产生10个随机码,记为a

st1=t;

forn=1:

10

ifa(n)<1;

form=j/i*(n-1)+1:

j/i*n%j/i为每个码元的

st1(m)=0;

end

else

form=j/i*(n-1)+1:

j/i*n

st1(m)=1;

end

end

end

figure

(1);

subplot(411);

plot(t,st1);

title('绝对码');

axis([0,5,-1,2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%差分变换

b=zeros(1,i);

b

(1)=a

(1);

forn=2:

10

ifa(n)>=1;

ifb(n-1)>=1

b(n)=0;

else

b(n)=1;

end

else

b(n)=b(n-1);

end

end

st1=t;

forn=1:

10

ifb(n)<1;

form=j/i*(n-1)+1:

j/i*n

st1(m)=0;

end

else

form=j/i*(n-1)+1:

j/i*n

st1(m)=1;

end

end

end

subplot(412);

plot(t,st1);

title('相对码');

axis([0,5,-1,2]);

st2=t;

fork=1:

j;

ifst1(k)>=1;

st2(k)=0;

else

st2(k)=1;

end

end;

subplot(413)

plot(t,st2)

title('相对码的反码')

axis([05-12])

%%%%%%%%%%%%载波信号%%%%%%%%%%%%%%%%%

s1=sin(2*pi*fc*t);

subplot(414);

plot(s1);

title('载波信号');

%%%%%%%%%%%%%%调制%%%%%%%%%%%%%%%%%%%%%%

d1=st1.*s1;

d2=st2.*(-s1);%相移180

figure

(2);

subplot(4,1,1);

plot(t,d1);

title('st1*s1');

subplot(4,1,2);

plot(t,d2);

title('st2*s2');

e_dpsk=d1+d2;

subplot(4,1,3);

plot(t,e_dpsk);

title('调制后波形');

noise=rand(1,j);

dpsk=e_dpsk+0.5*noise;%加入噪声

subplot(4,1,4);

plot(t,dpsk);

title('加噪声信号');

%%%%%%%%%%%%延迟单元%%%%%%%%%%%%%%%%%%%%

ifdpsk(65)<0

dpsk_delay(1:

j/i)=dpsk(1:

j/i);

else

dpsk_delay(1:

j/i)=-dpsk(1:

j/i)

end

dpsk_delay(j/i+1:

j)=dpsk(1:

j-j/i);

%%%%%%%%%%%%与未延迟信号相乘%%%%%%%%%%%%%%

dpsk=dpsk.*dpsk_delay;

figure

subplot(3,1,1)

plot(t,dpsk);

title('延迟相乘后波形');

%%%%%%%%%%%%%低通滤波%%%%%%%%%%%%%%%%%%%%%%%%

[f,af]=T2F(t,dpsk);%通过低通滤波器

[t,dpsk]=lpf(f,af,B);

subplot(3,1,2);

plot(t,dpsk);

title('通过低通滤波器波形');

%%%%%%%%%%%%%%%抽样判决%%%%%%%%%%%%%%%%%%%%

st=zeros(1,i);

form=0:

i-1;

ifdpsk(1,m*500+250)<0;

st(m+1)=0;

forj=m*500+1:

(m+1)*500;

dpsk(1,j)=1;

end

else

forj=m*500+1:

(m+1)*500;

st(m+1)=1;

dpsk(1,j)=0;

end

end

end

subplot(3,1,3);

plot(t,dpsk);

axis([0,5,-1,2]);

title('抽样判决后波形')

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1