MATLAB2psk通信系统仿真报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 2PSK调制数字通信系统
一实验题目
设计一个采用2PSK调制的数字通信系统
设计系统整体框图及数学模型;
产生离散二进制信源.进行信道编码(汉明码).产生BPSK信号;
加入信道噪声(高斯白噪声);
BPSK信号相干解调.信道解码;
系统性能分析(信号波形、频谱.白噪声的波形、频谱.信道编解
二实验基本原理
数字信号的传输方式分为基带传输和带通传输.在实际应用中.大多数信道具有带通特性而不能直接传输基带信号。为了使数字信号在带通信道中传输.必须使用数字基带信号对载波进行调制.以使信号与信道的特性相匹配。这种用数字基带信号控制载波.把数字基带信号变换为数字带通信号的过程称为数字调制。
数字调制技术的两种方法:①利用模拟调制的方法去实现数字式调制.
即把数字调制看成是模拟调制的一个特例.把数字基带信号当做模拟信号的特殊情况处理;②利用数字信号的离散取值特点通过开关键控载波.从而实现数字调制。这种方法通常称为键控法.比如对载波的相位进行键控.便可获得相移键控(PSK)基本的调制方式。
图1 相应的信号波形的示例
1 0 1
调制原理
数字调相:如果两个频率相同的载波同时开始振荡.这两个频率同时达到正最大值.同时达到零值.同时达到负最大值.它们应处于"同相"状态;如果其中一个开始得迟了一点.就可能不相同了。如果一个达到正最大值时.另一个达到负最大值.则称为"反相"。一般把信号振荡一次(一周)作为360度。如果一个波比另一个波相差半个周期.我们说两个波的相位差180度.也就是反相。当传输数字信号时."1"码控制发0度相位."0"码控制发180度相位。载波的初始相位就有了移动.也就带上了信息。
相移键控是利用载波的相位变化来传递数字信息.而振幅和频率保持不变。在2PSK中.通常用初始相位0和π分别表示二进制“1”和“0”。因此.2PSK 信号的时域表达式为(t)=Acos t+)
其中.表示第n个符号的绝对相位:
=
因此.上式可以改写为
图2 2PSK信号波形
解调原理
2PSK信号的解调方法是相干解调法。由于PSK信号本身就是利用相位传递信息的.所以在接收端必须利用信号的相位信息来解调信号。下图2-3中给出了一种2PSK信号相干接收设备的原理框图。图中经过带通滤波的信号在相乘器中与本地载波相乘.然后用低通滤波器滤除高频分量.在进行抽样判决。判决器是按极性来判决的。即正抽样值判为1.负抽样值判为0.
2PSK 信号相干解调各点时间波形如图 3 所示. 当恢复的相干载波产生180°倒相时,解调出的数字基带信号将与发送的数字基带信号正好是相反,解调器输出数字基带信号全部出错.
图 3
2PSK 信号相干解调各点时间波形
这种现象通常称为"倒π"现象.由于在2PSK 信号的载波恢复过程中存
在着180°的相位模糊,所以2PSK 信号的相干解调存在随机的"倒π"现象,从而使得2PSK 方式在实际中很少采用.
三 仿真方真
四 程序源代码
产生随机n 位二进汉 明 码 编 码
2PSK 调制
信 道
加性AWGN
相 干 解 调
低 通
滤 波
低 通 滤 波
抽 样 判 决
输 出
2PSK 误码率
clear all;
close all;
clc;
max = 15;
s=randint(1,max);%长度为max的随机二进制序列Sinput=[];
for n=1:length(s);
if s(n)==0;
A=zeros(1,2000);
else s(n)==1;
A=ones(1,2000);
end
Sinput=[Sinput A];
end
figure(1);
subplot(211);
plot(Sinput);
grid on
axis([0 2000*length(s) -2 2]);
title('输入信号波形');
Sbianma=encode (s,7,4,'hamming');%汉明码编码后序列a1=[];
b1=[];
f=1000;
t=0:2*pi/1999:2*pi;
for n=1:length(Sbianma);
if Sbianma(n)==0;
B=zeros(1,2000);%每个值2000个点
else Sbianma(n)==1;
B=ones(1,2000);
end
a1=[a1 B];%s(t),码元宽度2000
c=cos(2*pi*f*t);%载波信号
b1=[b1 c];%与s(t)等长的载波信号.变为矩阵形式
end
figure(2);
subplot(211)
plot(a1);
grid on;
axis([0 2000*length(Sbianma) -2 2]);title('编码后二进制信号序列'); a2=[];
b2=[];
for n = 1:length(Sbianma);
if Sbianma(n) == 0;
C = ones(1,2000);%每个值2000点
d = cos(2*pi*f*t);%载波信号
else Sbianma(n) == 1;
C = ones(1,2000);
d = cos(2*pi*f*t+pi);%载波信号
end
a2 = [a2 C];%s(t).码元宽度2000
b2 = [b2 d];%与s(t)等长的载波信号
end
tiaoz = a2.*b2;%e(t)调制