基于-MATLAB-的QPSK系统仿真设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通信系统仿真设计实训报告1. 课题名称:—基于MATLAB的QPSK系统仿真设计与实现
学生学号: ____________________
学生姓名: ____________________
所在班级: ____________________
任课教师: ____________________
2016年10月25日
目录
1.1QPSK 系统的应用背景简介
1.2 QPSK 实验仿真的意义 1.3 实验平台和实验内容 1.3.1 实验平台 ........ 1.3.2 实验内容 ........
二、 系统实现框图和分析 ...
2.1、 QPSK 调制部分,... 2.2、 QPSKS 调部分 ....
三、 实验结果及分析 .....
3.1 、理想信道下的仿真 3.2 、高斯信道下的仿真
3.3 、先通过瑞利衰落信道再通过高斯信道的仿真 (8)
总结: ......................... 10 参考文献: ....................... 11 附录 .
(3)
..... 3 .. (3)
3 3
(4)
.... 4 (5)
6
..... 6 .. (7)
12
1.1QPSK系统的应用背景简介
QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。

在19 世纪80 年代初期, 人们选用恒定包络数字调制。

这类数字调制技术的优点是已调信号具有相对窄的功率谱和对放大设备没有线性要求,不足之处是其频谱利用率低于线性调制技术。

19世纪80 年代中期以后,四相绝对移相键控(QPSK技术以其抗干扰性能强、误码性能好、频谱利用率高等优点, 广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信及有线电视系统之中。

1.2 QPSK实验仿真的意义
通过完成设计内容,复习QPS调制解调的基本原理,同时也要复习通信系
统的主要组成部分,了解调制解调方式中最基础的方法。

了解QPS的实现方法及数学原理。

并对“通信”这个概念有个整体的理解,学习数字调制中误码率测试的标准及计算方法。

同时还要复习随机信号中时域用自相关函数,频域用功率谱密度来描述平稳随机过程的特性等基础知识,来理解高斯信道中噪声的表示方法,以便在编程中使用。

理解QPS调制解调的基本原理,并使用MATLA编程实现QPSI信号在高斯信道和瑞利衰落信道下传输,以及该方式的误码率测试。

复习MATLA tt程的基础知识和编程的常用算法以及使用MATLA仿真系统的注意事项,并锻炼自己的编程能力,通过编程完成QPS调制解调系统的仿真,以及误码率测试,并得出响应波形。

在完成要求任务的条件下,尝试优化程序。

通过本次实验,除了和队友培养了默契学到了知识之外,还可以将次实验作为一种推广,让更多的学生来深入一层的了解QPSI以至其他调制方式的原理和实现方法。

可以方便学生进行测试和对比。

足不出户便可以做实验。

1.3 实验平台和实验内容
1.3.1 实验平台
本实验是基于Matlab的软件仿真,只需PC机上安装MATLAB 6.0或者以上版本即可。

(本实验附带基于Matlab Simulink (模块化)仿真,如需使用必须安装simulink 模块)
1.3.2 实验内容
1. 构建一个理想信道基本QPSI仿真系统,要求仿真结果有
a. 基带输入波形及其功率谱
b. QPSK信号及其功率谱
c. QPSK 言号星座图
2. 构建一个在AWGN 高斯白噪声)信道条件下的 QPSK 仿真系统,要求仿真 结
果有
a. QPSK 信号及其功率谱
b. QPSK 信号星座图
c. 高斯白噪声信道条件下的误码性能以及高斯白噪声的理论曲线,
要求所有
误码性能曲线在同一坐标比例下绘制
3验可选做扩展内容要求:
构建一个先经过Rayleigh (瑞利衰落信道),再通过AWGN 高斯白噪声)信 道条件下的条件下的QPSI 仿真系统,要求仿真结果有
a. QPSK 言号及其功率谱
b. 通过瑞利衰落信道之前和之后的信号星座图,前后进行比较
c. 在瑞利衰落信道和在高斯白噪声条件下的误码性能曲线,并和二 .2.c 中
所要求的误码性能曲线在同一坐标比例下绘制
、系统实现框图和分析
2.1、QPSK 调制部分,
原理框图如图1所示
1
(t )= . 2T COS (2 何)
原理分析
:
2
(t )=、2T
sin(2 f c t)
基本原理及系统结构
QPSK 与二进制PSK-样,传输信号包含的信息都存在于相位中。

的别的载波 相位取四
个等间隔值之一,如 JI /4, 3畀/4,5 JI /4,和7畀/4。

相应的,可将发射 信号定义为
J2 E /1 cos[2 ft (2 i 1) / 4] 0 < t < T。


其他
其中,i 二1, 2, 2, 4; E 为发射信号的每个符号的能量,T 为符号持续时间,载
波频率f 等于nc/T ,nc 为固定整数。

每一个可能的相位值对应于一个特定的二 位组。

例如,可用前述的一组相位值来表示格雷码的一组二位组:
10,00,01,
11。

下面介绍QPSKS 号的产生和检测。

如果a 为典型的QPSK 发射机框图。

输入 的二进制数据序列首先被不归零(NRZ 电平编码转换器转换为极性形式,即负
号1和0分别用E b 和-、.E b 表示。

接着,该二进制波形被分接器分成两个分别 由输入序列的奇数位偶数位组成的彼此独立的二进制波形,这两个二进制波形分 别用a1 (t ),和a2 (t )表示。

容易注意到,在任何一信号时间间隔内 a1 (t ), 和a2 (t )的幅度恰好分别等于
Si1和Si2,即由发送的二位组决定。

这两个二
进制波形a1 (t ),和a2 (t )被用来调制一对正交载波或者说正交基本函数: 1
(t )二 石 cos(2 f c t), 2 (t )
in(2 f c t)。

这样就得到一对二进制 PSK
信号。

1 (t )和2 (t )的正交性使这两个信号可以被独立地检测。

最后,将 这两个二进制
PSK 信号相加,从而得期望的QPSK
2.2、QPSKS 调部分
,原理框图如图2所示:
1
(t ) 同相信道
{
门限=0
2 (t)正交信道门限=0
图2
原理分析:
QPSK接收机由一对共输入地相关器组成。

这两个相关器分别提供本地产生地相干参考信号1(t )和2(t)。

相关器接收信号x(t),相关器输出地x1和x2被用来与门限值0进行比较。

如果x1>0,则判决同相信道地输出为符号1;如果x1<0 ,则判决同相信道的输出为符号0。

;类似地。

如果正交通道也是如此判决输出。

最后同相信道和正交信道输出这两个二进制数据序列被复加器合并,重新得到原始的二进制序列。

在AWG信道中,判决结果具有最小的负号差错概率。

三、实验结果及分析
根据图1和图2的流程框图设计仿真程序,得出结果并且分析如下:
3.1、理想信道下的仿真,实验结果如图3所示
图3
实验结果分析:
如图上结果显示,完成了 QPSK 信号在理想信道上的调制,传输,解调的过 程,由于调制过程中加进了载波,因此调制信号的功率谱密度会发生变化。

并且 可以看出调制解调的结果没有误码。

3.2、高斯信道下的仿真,结果如图4所示:
最洞输岀
基帝信号陆率诺密置
■GO
100
100
□.& 1 1.6

> 1Q 4 词制信号
基带信号
IDO 2D0 300 400 50C J
2D
现 虫I
90 100
Frequency flHz}
谕制信号功率语密.夏
o n o 2 3 - ・
"
-4050 2D JO 50 80 Frequency (H J 幅调辆出功率
谱密宝
o o O
4
(zrLLjp) HrJ u.l'nkwo


2D 40 SO 80 Freq 刚 y (HJ

4/丄p) grJ Lo rlba
」-/!?
占丄
洞制淸号加(P)
为ICO 20 aS *00 50L
谓制悟号功率谱窖度加訓)
□20 4C E0 ED IX
Ffaquwicy (Hz)
^
O
(
E
fe
p
j
^

8
§-
?



d
25
:5on
2
t &
1
05
35
1
■1
5
QPEKf肯号星座團<Avrgn>图4
实验结果分析:
由图4可以得到高斯信道下的调制信号,高斯噪声,调制输出功率谱密度曲线和QPSK信号的星座图。

在高斯噪声的影响下,调制信号的波形发生了明显的变化,其功率谱密度函数相对于图1中的调制信号的功率谱密度只发生了微小的变化,原因在于高斯噪声是一个均值为0的白噪声,在各个频率上其功率是均匀的,因此此结果是真确的。

星座图反映可接收信号早高斯噪声的影响下发生了误码,但是大部分还是保持了原来的特性。

3.3、先通过瑞利衰落信道再通过高斯信道的仿真。

实验结果如图5所示:
10D 50D 3X1 400 fiCTi
诉制悟号flSsy^Awgn]
■^ ^ ■C
调制佢豎功应谱宅度庐讪j
O
5
£

1
1
L
X
?
-


>
-
-
(
7
£
8

5'
L
-s
m
i.
_
<
T
M
_
CL
tf\蚪o
frequency (Hz)
in
n QFEKf咅号星坐图〈血阳RaH
1 5
□ 5
-D5
■1
5
+理诒值(发射端)+
实际佰<接收谦、
¥护
P -1 0
谍码率曲茕
---- 浬论AW€i\
+ 罚真WAN
-Si&Rarlagh
4—
+ KRayletgh
a I 2 3 4 5 B
图5
实验结果分析:
由图5可以得到瑞利衰落信道前后的星座图,调制信号的曲线图及其功率谱密度。

最后显示的是高斯信道和瑞利衰落信道的误码率对比。

由图可知瑞利衰落信道下的误码率比高斯信道下的误码率高。

至此,仿真实验就全部完成。

结论
本论文运用MATLAB^的动态仿真工具箱Simulink仿真实现了PCM系统的全部过程。

根据PCM S统的组成原理,在Simulink模块库中找到相应的模块,然后选择合适的模块以及设置适当的参数,建立了PCMS信系统的仿真模型,最后在给定仿真的条件下,运行了仿真系统。

仿真结果表明:
1. 在正常的信噪比条件下,该通信系统失真较小,达到了预期的目的。

2.Simulink
仿真工具箱操作简单方便、调试直观,为通信系统的软件仿真实现提供了极大的方便。

参考文献:
1、《MATLAB 宝典》陈杰等编著电子工业出版社
2、《MATLAB 信号处理》刘波, 文忠, 曾涯编著北京电子工业出版社
3、《数字信号处理的MATLAB 实现》万永革编著北京科学出版社
4、网上资料
附录
MATLAB 程序
% 调相法clear all close all
t=[-1:0.01:7-0.01]; tt=length(t); x1=ones(1,800); for i=1:tt
if (t(i)>=-1 & t(i)<=1) | (t(i)>=5& t(i)<=7); x1(i)=1;
else x1(i)=-1;
end end
t1=[0:0.01:8-0.01]; t2=0:0.01:7-0.01; t3=-1:0.01:7.1-0.01; t4=0:0.01:8.1-0.01;
tt1=length(t1); x2=ones(1,800); for i=1:tt1
if (t1(i)>=0 & t1(i)<=2) | (t1(i)>=4& t1(i)<=8); x2(i)=1;
else x2(i)=-1; end end f=0:0.1:1;
xrc=0.5+0.5*cos(pi*f);
y1=conv(x1,xrc)/5.5;
y2=conv(x2,xrc)/5.5;
n0=randn(size(t2));
f1=1; i=x1.*cos(2*pi*f1*t);
q=x2.*sin(2*pi*f1*t1);
I=i(101:800);
Q=q(1:700);
QPSK=sqrt(1/2).*I+sqrt(1/2).*Q;
QPSK_n=(sqrt(1/2).*I+sqrt(1/2).*Q)+n0;
n1=randn(size(t2));
i_rc=y1.*cos(2*pi*f1*t3);
q_rc=y2.*sin(2*pi*f1*t4);
I_rc=i_rc(101:800);
Q_rc=q_rc(1:700);
QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);
QPSK_rc_n1=QPSK_rc+n1;
figure(1)
subplot(4,1,1);plot(t3,i_rc);axis([-1 8 -1 1]);ylabel('a 序列'); subplot(4,1,2);plot(t4,q_rc);axis([-1 8 -1 1]);ylabel('b 序列'); subplot(4,1,3);plot(t2,QPSK_rc);axis([-1 8 -1 1]);ylabel(' 合成序列');
subplot(4,1,4);plot(t2,QPSK_rc_n1);axis([-1 8 -1 1]);ylabel(' 加入噪声');
效果图:
%设定T=1,加入高斯噪声
clear all
close all
%调制
bit_in = randin t(1e3, 1, [0 1]);
bit」=bit_i n(1:2:1e3);
bit_Q = bit_i n(2:2:1e3);
data_I = -2*bit_l+1;
data_Q = -2*bit_Q+1;
data_I1=repmat(data_I',20,1);
data_Q 1= repmat(data_Q',20,1);
for i=1:1e4
data_I2(i)=data_I1(i); data_Q2(i)=data_Q1(i);
en d;
f=0:0.1:1;
xrc=0.5+0.5*cos(pi*f);
data_I2_rc=conv(data_I2,xrc)/5.5; data_Q2_rc=conv(data_Q2,xrc)/5.5;
f1=1;
t1=0:0.1:1e3+0.9;
n0=rand(size(t1)); I_rc=data_I2_rc.*cos(2*pi*f1*t1);
Q_rc=data_Q2_rc.*sin(2*pi*f1*t1); QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);
QPSK_rc_n0=QPSK_rc+n0;
% 解调I_demo=QPSK_rc_n0.*cos(2*pi*f1*t1);
Q_demo=QPSK_rc_n0.*sin(2*pi*f1*t1);
% 低通滤波I_recover=conv(I_demo,xrc); Q_recover=conv(Q_demo,xrc);
I=I_recover(11:10010);
Q=Q_recover(11:10010); t2=0:0.05:1e3-0.05;
t3=0:0.1:1e3-0.1;
% 抽样判决data_recover=[];
for i=1:20:10000
data_recover=[data_recover I(i:1:i+19) Q(i:1:i+19)]; end;
bit_recover=[];
for i=1:20:20000
if sum(data_recover(i:i+19))>0 data_recover_a(i:i+19)=1; bit_recover=[bit_recover 1];
else
data_recover_a(i:i+19)=-1; bit_recover=[bit_recover -1]; end end
error=0;
dd = -2*bit_in+1;
ddd=[dd']; ddd1=repmat(ddd,20,1);
for i=1:2e4 ddd2(i)=ddd1(i);
end
for i=1:1e3
if bit_recover(i)~=ddd(i) error=error+1;
end
end
p=error/1000;
figure(1) subplot(2,1,1);plot(t2,ddd2);axis([0 100 -2 2]);title(' 原序列');
subplot(2,1,2);plot(t2,data_recover_a);axis([0 100 -2 2]);title('
解调后序列'); 效果图:
原序列
解调启序列
%设定T=1,不加噪声
clear all
close all
%调制
bit_in = ran di nt(1e3, 1, [0 1]); bit」=bit_i n(1:2:1e3);
bit_Q = bit_i n(2:2:1e3);
data_I = -2*bit_l+1;
data_Q = -2*bit_Q+1;
data」仁repmat(data_l',20,1); data_Q 1= repmat(data_Q',20,1);
for i=1:1e4 data_I2(i)=data_I1(i); data_Q2(i)=data_Q1(i);
en d;
t=0:0.1:1e3-0.1;
f=0:0.1:1;
xrc=0.5+0.5*cos(pi*f);
data_I2_rc=conv(data_I2,xrc)/5.5; data_Q2_rc=conv(data_Q2,xrc)/5.5;
f1=1;
t1=0:0.1:1e3+0.9;
I_rc=data_I2_rc.*cos(2*pi*f1*t1);
Q_rc=data_Q2_rc.*sin(2*pi*f1*t1); QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);
% 解调
I_demo=QPSK_rc.*cos(2*pi*f1*t1);
Q_demo=QPSK_rc.*sin(2*pi*f1*t1);
I_recover=conv(I_demo,xrc);
Q_recover=conv(Q_demo,xrc);
I=I_recover(11:10010);
Q=Q_recover(11:10010);
t2=0:0.05:1e3-0.05;
t3=0:0.1:1e3-0.1;
data_recover=[];
for i=1:20:10000
data_recover=[data_recover I(i:1:i+19) Q(i:1:i+19)]; end;
ddd = -2*bit_in+1;
ddd1=repmat(ddd',10,1);
for i=1:1e4
ddd2(i)=ddd1(i);
end
figure(1)
subplot(4,1,1);plot(t3,I);axis([0 20 -6 6]); subplot(4,1,2);plot(t3,Q);axis([0 20 -6 6]);
subplot(4,1,3);plot(t2,data_recover);axis([0 20 -6 6]); subplot(4,1,4);plot(t,ddd2);axis([0 20 -6 6]); 效果图:
5
0 2 4 G E 10 12 14 16 1S 20
0 2 4 5 6 10 12 14 16 1S 23
% QPSK误码率分析SNRi ndB仁0:2:10;
SNRi ndB2=0:0.1:10;
for i=1:le ngth(SNRi ndB1) [pb,ps]=cm_sm32(SNR in dB1(i)); smld_bit_err_prb(i)=pb;
smld_symbol_err_prb(i)=ps;
en d;
for i=1:le ngth(SNR in dB2)
SNR=exp(SNRi ndB2(i)*log(10)/10); theo_err_prb(i)=Qfu nct(sqrt(2*SNR));
en d;
title('QPSK误码率分析');
semilogy(SNRi ndB1,smld_bit_err_prb,'*');
axis([0 10 10e-8 1]);
hold on;
% semilogy(SNRi ndB1,smld_symbol_err_prb,'o'); semilogy(SNR in dB2,theo_err_prb); legend('仿真比特误码率','理论比特误码率'); hold off;
function[y]=Qfunct(x) y=(1/2)*erfc(x/sqrt(2));
function[pb,ps]=cm_sm32(SNRindB)
N=10000;
E=1;
SNR=10A(SNRi ndB/10);
sgma=sqrt(E/SNR)/2;
s00=[1 0];
s01=[0 1];
s11=[-1 0];
s10=[0 -1];
for i=1:N
dsource1(i)=[1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 1];
numofsymbolerror=0;
numofbiterror=0;
for i=1:N
n=sgma*randn(size(s00)); if((dsource1(i)==0)&(dsource2(i)==0)) r=s00+n;
elseif((dsource1(i)==0)&(dsource2(i)==1)) r=s01+n;
elseif((dsource1(i)==1)&(dsource2(i)==0)) r=s10+n;
else
r=s11+n;
end;
c00=dot(r,s00); c01=dot(r,s01); c10=dot(r,s10); c11=dot(r,s11);
c_max=max([c00 c01 c10 c11]); if (c00==c_max)
decis1=0;decis2=0;
elseif(c01==c_max)
decis 1=0 ;decis2=1;
elseif(c10==c_max)
decis 1= 1;decis2=0;
else
decis1=1;decis2=1;
en d;
symbolerror=0; if(decis1~=dsource1(i))
num ofbiterror= num ofbiterror+1; symbolerror=1;
en d;
if(decis2~=dsource2(i))
num ofbiterror= num ofbiterror+1; symbolerror=1;
en d;
if(symbolerror==1)
numo fsymbolerror =numo fsymbolerror+1; en d;
en d;
ps=numo fsymbolerror/N;
pb=num ofbiterror/(2*N);
效果图:。

相关文档
最新文档