DPSK 原理及仿真

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图4极性比较解调原理图
2DPSK信号解调的差分相干解调法的原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。它的原理框图如图5所示。
end
end
figure(1)
subplot ( 2, 1, 1 )
plot(t, sign_orign);
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - (A / 2), A + (A / 2) ] );
title ( '原始信号' );
grid on
figure
subplot(2,1,1)
plot ( t, dt );
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] );
title ( '相乘后的波形' );
grid on
%Βιβλιοθήκη Baidu过低通滤波器,取包络
[N,Wn] =BUTTORD( 2*pi*50, 2*pi*150,3,25,'s'); %临界频率采用角频率表示
if Sign_Set(I) == 1
st( (I-1)*Num_Unit + 1 : I*Num_Unit) = A * cos ( 2 * pi * w * t( (I-1)*Num_Unit + 1 : I*Num_Unit ) + ( pi / 2 ) );
else
st( (I-1)*Num_Unit + 1 : I*Num_Unit) = A * cos ( 2 * pi * w * t( (I-1)*Num_Unit + 1 : I*Num_Unit ) );
title ( '逆码变换后的波形' );
grid on
三.5抽样判决器模型
抽样判决器的功能是根据位同步信号和设置的判决电平来还原基带信号。在Matlab中抽样判决器可以用编写程序来模拟。
四.仿真波形
图7原始信号和调制后的信号
图8相乘后的波形和低通滤波后的波形
图9逆码变换后抽样判决波形
参考文献
[1]樊昌信,曹丽娜,通信原理(第六版),北京:国防工业出版社,2006.
[2]韩利竹,王华,Matlab电子仿真与应用(第二版)北京:国防工业出版社
五.程序代码如下:
fs = 30000;
Time_Hold_On = 0.1;
Num_Unit = fs * Time_Hold_On;
High_Level = ones ( 1, Num_Unit );
Low_Level = zeros ( 1, Num_Unit );
else
sign_result( (I-1)*Num_Unit + 1 : I*Num_Unit) = Low_Level;
end
end
figure
plot ( t, sign_result );
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] );
w = 300;
A = 1;
%初始信号参数
Sign_Set = [0,1,1,0,1,0,0,1]
Lenth_Of_Sign = length ( Sign_Set );
st = zeros ( 1, Num_Unit * Lenth_Of_Sign );
sign_orign = zeros ( 1, Num_Unit * Lenth_Of_Sign );
sign_result = zeros ( 1, Num_Unit * Lenth_Of_Sign );
t = 0 : 1/fs : Time_Hold_On * Lenth_Of_Sign - 1/fs;
%产生初始信号
for I = 1 : Lenth_Of_Sign
if Sign_Set(I) == 1
图5差分相干解调原理图
三.3差分和逆差分变换模型
差分变换模型的功能是将输入的基带信号变为它的差分码。逆码变换器原理图如下:
图6 逆码变换器
三.4带通滤波器和低通滤波器的模型
带通滤波器模型的作用是只允许通过[fl,fh](fl表示低频率,fh表示高频率)范围内的频率分量,但将其他范围的频率分量衰减到极低水平。低通滤波器模型的作用是只允许通过(0,fh)范围内的频率分量,并且将其他范围的频率分量衰减到极低水平。在Matlab中带通滤波器和低通滤波器的模型可以用编写程序来模拟。
在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。
定义△Φ为本码元初相与前一码元初相之差,假设:
△Φ=0代表数字信息“0”;
△Φ=代表数字信息“1”;
则数字信息序列与2DPSK信号的码元相位关系可举例表示如下:
数字信息:1011011101
2DPSK信号相位:0
二.2DPSK调制与解调总原理框图
图1 2DPSK调制与解调总原理框图
三.1 2DPSK信号的调制原理
一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。2DPSK信号的模拟调制法框图如图2所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。
[b,a]=BUTTOR(N,Wn,'s');
[bz,az]=impinvar(b,a,fs); %映射为数字的
dt = filter(bz,az,dt);
subplot(2,1,2)
plot ( t, dt );
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] );
关键词:DPSK,差分相干解调,相干解调
一.2DPSK信号原理
2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调。
sign_orign( (I-1)*Num_Unit + 1 : I*Num_Unit) = High_Level;
else
sign_orign( (I-1)*Num_Unit + 1 : I*Num_Unit) = Low_Level;
end
end
%以下为仿真部分
%输出原始信号
for I = 1 : Lenth_Of_Sign
DPSK原理及仿真
姓名:
学号:
摘要:相移监控:DPSK。具有很好的解调性能,因此将DPSK自适应解调的误码性能与DPSK相干解调性能作比较具有重要意义。在二进制相移键控方式中,有绝对调相和相对解调两种方式。近年来自适应滤波(ADF)技术在通信系统中应用越来越广泛,如自适应干扰抵消、自适应频率跟踪与检测等。随着大规模集成电路技术的发展,采用现有的DSPK使自适应滤波技术的关键算法付诸于工程实际已有可能。DPSK调制解调是数据传输的常用手段之一。常用的DPSK解调方法有两种,即差分相干解调和相干解调法。DPSK相干解调的性能较好而常常被采用,其性能优劣主要在于如何得到同频同相载波。相干解调在实现上结构复杂、成本高,在工作频率高的场合下实现难度较大。自适应滤波技术中的单频跟踪技术在运用于信号解调时,兼有锁相和相干解调的功能,通过检测2DPSK信号的相位信息并适当调整跟踪步长,可以获得优良的解调性能。
图2模拟调制法
2DPSK信号的的键控调制法框图如图3所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0” 时接相位0,当输入数字信息为“1”时接。
图3键控法调制原理图
三.2 2DPSK信号的解调原理
2DPSK信号最常用的解调方法有两种,一种是极性比较和码变换法,另一种是差分相干解调法。2DPSK信号解调的极性比较法的原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,再与本地载波相乘,去掉调制信号中的载波成分,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决的到基带信号的差分码,再经过逆差分器,就得到了基带信号。它的原理框图如图4所示。
subplot ( 2, 1, 2 );
plot ( t, st );
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] );
title ( '调制后的信号' );
grid on
%相乘实现相干检波
dt = st .* cos ( 2 * pi * w * t );
title ( '低通滤波后的波形' );
grid on
%抽样判决和逆码变换输出波形
for I = 1 : Lenth_Of_Sign
if dt((2*I-1)*Num_Unit/2) < 0.25
sign_result( (I-1)*Num_Unit + 1 : I*Num_Unit) = High_Level;
相关文档
最新文档