MATLAB 2psk通信系统仿真报告
- 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°倒相时,解调出的数字基带信号将与发送的数字基带信号正好是相反,解调器输出数字基带信号全部出错.
图 32PSK 信号相干解调各点时间波形
这种现象通常称为"倒π"现象.由于在2PSK 信号的载波恢复过程中存在着180°的相位模糊,所以2PSK 信号的相干解调存在随机的"倒π"现象,从而使得2PSK 方式在实际中很少采用.
三 仿真方真
四 程序源代码
clear all; close all; clc;
max = 15;
s=randint(1,max);%长度为max 的随机二进制序列 Sinput=[];
产生随机n 位二进制码元 汉 明 码
编 码
2PSK 调制
信 道
加性AWGN
相 干
解 调
低 通 滤 波
低 通
滤 波
抽 样
判 决
输 出
2PSK 误码率 仿真
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