2DPSK调制与解调系统的仿真
设计原理
(1) 2DPSK信号原理
1.1 2DPSK信号原理
2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图2.1所示。
图1.1 2DPSK信号
在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。
定义 ??为本码元初相与前一码元初相之差,假设:
????→数字信息“0”;
????→数字信息“1”。?
则数字信息序列与2DPSK信号的码元相位关系可举例表示如下:
数字信息: 1 0 1 1 0 1 1 1 0 1
DPSK信号相位:0 p p 0 p p 0 p 0 0 p
或:p 0 0 p 0 0 p 0 p p 0
1.2 2DPSK信号的调制原理
一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。2DPSK信号的的模拟调制法框图如图1.2.1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。
图1.2.1 模拟调制法
2DPSK信号的的键控调制法框图如图1.2.2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0” 时接相位0,当输入数字信息为“1”时接pi。
图1.2.2 键控法调制原理图
1.3 2DPSK信号的解调原理
2DPSK信号最常用的解调方法有两种,一种是极性比较和码变换法,另一种是差分相干解调法。
1.3.1 2DPSK信号解调的极性比较法
它的原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,再与本地载波相乘,去掉调制信号中的载波成分,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决的到基带信号的差分码,再经过逆差分器,就得到了基带信号。它的原理框图如图1.3.1所示。
图 1.3.1 极性比较解调原理图
1.3.2 2DPSK信号解调的差分相干解调法
差分相干解调的原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。它的原理框图如图1.3.2所示。
图 1.3.2 差分相干解调原理图
四、实现方法
(1)、建立模型
1.1 差分和逆差分变换模型
差分变换模型的功能是将输入的基带信号变为它的差分码。逆码变换器原理图如下:
1.2 带通滤波器和低通滤波器的模型
带通滤波器模型的作用是只允许通过(fl,fh)范围内的频率分量、但将其他范围的频率分量衰减到极低水平。低通滤波器模型的作用是只允许通过(0,fh)范围内的频率分量,并且将其他范围的频率分量衰减到极低水平。在Matlab中带通滤波器和低通滤波器的模型可以用编写程序来模拟。
1.3 抽样判决器模型
抽样判决器的功能是根据位同步信号和设置的判决电平来还原基带信号。在Matlab中抽样判决器可以用simulink中的模块来模拟。它的模型框图如图所示,它的内部结构图如图2.3所示。
图 3.3 抽样判决器
1.4 系统结构图
图 2.4.1 系统结构图
1.4.2 2DPSK调制与解调总原理框图
图 2.4.2 2DPSK调制与解调总原理框图
(2)、仿真
2.1 仿真程序
%- 2DPSK 调制与解调
%---------------------------------------------------
%>>>>>>>>>>>>>>>>>>初始化部分>>>>>>>>>>>>>>>>>>>>>
%---------------------------------------------------
function y=dpsk2()
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 );
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
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
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 ) );
end
end
figure
subplot ( 2, 1, 1 )
plot(t, sign_orign);
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - (A / 2), A + (A / 2) ] );
title ( '原始信号' );
grid
subplot ( 2, 1, 2 );
plot ( t, st );
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] );
title ( '调制后的信号' );
grid
%---------------------------------------------------
%>>>>>>>>>>>>>>>>>>相乘>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
%---------------------------------------------------
dt = st .* cos ( 2 * pi * w * t );
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
%---------------------------------------------------
%>>>>>>>>>>>>>>>>>>>低通滤波部分>>>>>>>>>>>>>>>>>>>>
%---------------------------------------------------
[N,Wn] = buttord( 2*pi*50, 2*pi*150,3,25,'s'); %临界频率采用角频率表示
[b,a]=butter(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) ] );
title ( '低通滤波后的波形' );
grid
%---------------------------------------------------
%>>>>>>>>>>>>>抽样判决 & 逆码变换部分>>>>>>>>>>>>>>>
%---------------------------------------------------
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;
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) ] );
title ( '逆码变换后的波形' );
grid
五、总结
本次课程设计在刚开始的过程中无从下手,手忙脚乱,时间又紧,最终决定用软件仿真来实现2DPSK调制解调的设计。
通过这次课程设计我们能够比较系统的了解理论知识,掌握了2DPSK调制解调的工作原理及2DPSK调制解调系统的工作过程,学会了使用仿真软件Matlab,并学会通过应用软件仿真来实现某些通信系统的设计,对以后的学习和工作都起到了一定的作用,加强了动手能力和学业技能。
通过这次课程设计还让我们知道了,我们平时所学的知识如果不加以实践的话等于纸上谈兵。课程设计主要是我们理论知识的延伸,它的目的主要是要在设计中发现问题,并且自己要能找到解决问题的方案,形成一种独立的意识。我们还能从设计中检验我们所学的理论知识到底有多少,巩固我们已经学会的,不断学习我们所遗漏的新知识,把这门课学的扎实。
当然在做课程设计的过程中总会出现各种问题,在这种情况下我们都会努力寻求最佳路径解决问题,无形间提高了我们的动手,动脑能力,并且同学之间还能相互探讨问题,研究解决方案,增进大家的团队意识。
总的来说,这次课程设计让我们收获颇多,不仅让我们更深一步理解书本的知识,提高我们分析问题和解决问题的能力,而且让我们体会到团队的重要性。
六、参考文献
[1] 樊昌信,曹丽娜《通信原理(第6版)》,国防工业出版社,2001
[2] 杜武林,《高频电路原理与分析》[M].西安:西安电子科技大学出版社,2000.13-15
[3] 姚俊,《SIMULINK建模与仿真》[ M ],西安电子科技大学出版社 ,2001.
[4]曹戈,《MA TL AB教程及实训》 [ M ],人民邮电出版社
[5] 李建新,《现代通信系统分析与仿真MATLAB 通信工具箱》[ M ],西安电子科技大学出版社 ,2002.
第二篇:通信原理课程设计报告(基于Matlab)
青 岛 农 业 大 学
理学与信息科学学院
通 信 原 理 课 程 报 告
设 计 题 目 2DPSK调制与解调系统的仿真
学生专业班级 电子信息工程
学生姓名(学号)
指 导 教 师
完 成 时 间 20##年6月12日
实 习(设计)地点 信息楼112
20##年6月12日
2DPSK调制与解调系统的仿真
一、课程设计目的
本次课程设计是对通信原理课程理论教学和实验教学的综合和总结。通过这次课程设计,使同学认识和理解通信系统,掌握信号是怎样经过发端处理、被送入信道、然后在接收端还原。
要求学生掌握通信原理的基本知识,运用所学的通信仿真的方法实现某种传输系统。能够根据设计任务的具体要求,掌握软件设计、调试的具体方法、步骤和技巧。对一个实际课题的软件设计有基本了解,拓展知识面,激发在此领域中继续学习和研究的兴趣,为学习后续课程做准备。
二、 课程设计内容
设计了差分编码移相键控(2DPSK)调制解调系统的工作流程图,并利用 Matlab 软件对该系统的动态进行了模拟仿真。利用仿真的结果,从基带信号的波形图可以衡量数字信号的传输质量;由系统的输入和输出波形图可以看出,仿真实验良好 。2DPSK调制解调系统的仿真设计,为以后进一步研究基于Matlab的通信实验仿真系统奠定了坚实的基础。
关键词 : 调制解调 差分移相编码 仿真设计
三、 设计原理
(1) 2DPSK信号原理
1.1 2DPSK信号原理
2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图2.1所示。
图1.1 2DPSK信号
在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。
定义 ??为本码元初相与前一码元初相之差,假设:
????→数字信息“0”;
????→数字信息“1”。?
则数字信息序列与2DPSK信号的码元相位关系可举例表示如下:
数字信息: 1 0 1 1 0 1 1 1 0 1
DPSK信号相位:0 p p 0 p p 0 p 0 0 p
或:p 0 0 p 0 0 p 0 p p 0
1.2 2DPSK信号的调制原理
一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。2DPSK信号的的模拟调制法框图如图1.2.1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。
图1.2.1 模拟调制法
2DPSK信号的的键控调制法框图如图1.2.2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0” 时接相位0,当输入数字信息为“1”时接pi。
图1.2.2 键控法调制原理图
1.3 2DPSK信号的解调原理
2DPSK信号最常用的解调方法有两种,一种是极性比较和码变换法,另一种是差分相干解调法。
1.3.1 2DPSK信号解调的极性比较法
它的原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,再与本地载波相乘,去掉调制信号中的载波成分,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决的到基带信号的差分码,再经过逆差分器,就得到了基带信号。它的原理框图如图1.3.1所示。
图 1.3.1 极性比较解调原理图
1.3.2 2DPSK信号解调的差分相干解调法
差分相干解调的原理是2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。它的原理框图如图1.3.2所示。
图 1.3.2 差分相干解调原理图
四、实现方法
(1)、建立模型
1.1 差分和逆差分变换模型
差分变换模型的功能是将输入的基带信号变为它的差分码。逆码变换器原理图如下:
1.2 带通滤波器和低通滤波器的模型
带通滤波器模型的作用是只允许通过(fl,fh)范围内的频率分量、但将其他范围的频率分量衰减到极低水平。低通滤波器模型的作用是只允许通过(0,fh)范围内的频率分量,并且将其他范围的频率分量衰减到极低水平。在Matlab中带通滤波器和低通滤波器的模型可以用编写程序来模拟。
1.3 抽样判决器模型
抽样判决器的功能是根据位同步信号和设置的判决电平来还原基带信号。在Matlab中抽样判决器可以用simulink中的模块来模拟。它的模型框图如图所示,它的内部结构图如图2.3所示。
图 3.3 抽样判决器
1.4 系统结构图
图 2.4.1 系统结构图
1.4.2 2DPSK调制与解调总原理框图
图 2.4.2 2DPSK调制与解调总原理框图
(2)、仿真
2.1 仿真程序
%- 2DPSK 调制与解调
%---------------------------------------------------
%>>>>>>>>>>>>>>>>>>初始化部分>>>>>>>>>>>>>>>>>>>>>
%---------------------------------------------------
function y=dpsk2()
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 );
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
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
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 ) );
end
end
figure
subplot ( 2, 1, 1 )
plot(t, sign_orign);
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - (A / 2), A + (A / 2) ] );
title ( '原始信号' );
grid
subplot ( 2, 1, 2 );
plot ( t, st );
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] );
title ( '调制后的信号' );
grid
%---------------------------------------------------
%>>>>>>>>>>>>>>>>>>相乘>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
%---------------------------------------------------
dt = st .* cos ( 2 * pi * w * t );
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
%---------------------------------------------------
%>>>>>>>>>>>>>>>>>>>低通滤波部分>>>>>>>>>>>>>>>>>>>>
%---------------------------------------------------
[N,Wn] = buttord( 2*pi*50, 2*pi*150,3,25,'s'); %临界频率采用角频率表示
[b,a]=butter(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) ] );
title ( '低通滤波后的波形' );
grid
%---------------------------------------------------
%>>>>>>>>>>>>>抽样判决 & 逆码变换部分>>>>>>>>>>>>>>>
%---------------------------------------------------
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;
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) ] );
title ( '逆码变换后的波形' );
grid
2.2.1 2DPSK模拟调制和差分相干解调法仿真图
图3.4.2 2DPSK模拟调制和差分相干解调法仿真图
(3)、调试过程及结论
3.1 差分相干法
2DPSK信号经相关模块调试后的波形图如下:
调制过后加入高斯白噪声,连接到带通滤波器,去除调制信号以外的在信道中混入的噪声,再连接到相乘器。此相乘器是一路延时一个码元时间后与另一路信号相乘。作用是去除调制信号中的载波成分。
信号经过低通滤波器后,去除高频成分,得到包含基带信号的低频信号。经过抽样判决,便还原成原始信号。
五、总结
本次课程设计在刚开始的过程中无从下手,手忙脚乱,时间又紧,最终决定用软件仿真来实现2DPSK调制解调的设计。
通过这次课程设计我们能够比较系统的了解理论知识,掌握了2DPSK调制解调的工作原理及2DPSK调制解调系统的工作过程,学会了使用仿真软件Matlab,并学会通过应用软件仿真来实现某些通信系统的设计,对以后的学习和工作都起到了一定的作用,加强了动手能力和学业技能。
通过这次课程设计还让我们知道了,我们平时所学的知识如果不加以实践的话等于纸上谈兵。课程设计主要是我们理论知识的延伸,它的目的主要是要在设计中发现问题,并且自己要能找到解决问题的方案,形成一种独立的意识。我们还能从设计中检验我们所学的理论知识到底有多少,巩固我们已经学会的,不断学习我们所遗漏的新知识,把这门课学的扎实。
当然在做课程设计的过程中总会出现各种问题,在这种情况下我们都会努力寻求最佳路径解决问题,无形间提高了我们的动手,动脑能力,并且同学之间还能相互探讨问题,研究解决方案,增进大家的团队意识。
总的来说,这次课程设计让我们收获颇多,不仅让我们更深一步理解书本的知识,提高我们分析问题和解决问题的能力,而且让我们体会到团队的重要性。
六、参考文献
[1] 樊昌信,曹丽娜《通信原理(第6版)》,国防工业出版社,2001
[2] 杜武林,《高频电路原理与分析》[M].西安:西安电子科技大学出版社,2000.13-15
[3] 姚俊,《SIMULINK建模与仿真》[ M ],西安电子科技大学出版社 ,2001.
[4]曹戈,《MA TL AB教程及实训》 [ M ],人民邮电出版社
[5] 李建新,《现代通信系统分析与仿真MATLAB 通信工具箱》[ M ],西安电子科技大学出版社 ,2002.
课程设计成绩评定表
注:此表装订在课程设计之后。