资源描述
通信系统设计与仿真实践
课程设计实验报告
课题名称: 方形QPSK和三角形4PSK性能对比
专业班级: 通信工程某某班
姓 名: 黄某某、周某
学 号: 1090220**、1090220**
起止时间: 2012.6.11-2012.6.20
浙江科技学院
信息与电子工程学院
目 录
一、课题内容………………………………………..….……...1
二、设计目的………………………………………..….….…..1
三、设计要求…………………………………………………..1
四、实验条件…………………………………………..…..…..2
五、通信系统原理…………………………………….…...…..2
1、模拟通信系统基本原理…………………………….…..….2
2、数字通信系统基本原理…………………………….…...…3
3、模拟通信系统与数字通信系统的比较……………….…..…4
4、所设计子系统原理………………………………………..4
六、QPSK的基本原理…………………………………………5
1、四相绝对移相键控(QPSK)的调制基本理论………………5
2、四相绝对移相键控(QPSK)的调制基本方法………………6
七、详细设计与编码…………………………….……………..8
1、编程工具的选择………………………………………….8
2、系统设计方案实现框图……………………………………8
3、编码与调试过程……………………………………..……8
4、运行结果及分析………………………………..………..15
八、设计心得………………………………………..………..18
九、参考文献……………………………….………..……….20
- 21 -
一. 课题内容
基于MATLAB仿真方形QPSK和三角形4PSK,并对比二者的性能。
主要功能:
1、能对方形QPSK和三角形4PSK性能进行对比,验证方形QPSK性能优于三角形4PSK;
2、能够画出输入数据与输出数据的星座图;
3、能在不同信噪比信道下,对信号进行误码分析。
二. 设计目的
1、综合应用《Matlab原理及应用》、《信号与系统》、《通信原理》、《无线通信》等多门课程知识,使学生建立通信系统的整体概念; 矚慫润厲钐瘗睞枥庑赖。
2、培养学生系统设计与系统开发的思想;
3、培养学生利用软件进行通信仿真的能力。
三. 设计要求
1、每2人一组,组内成员进行各自分工,分别完成不同子系统的详细功能;
2、对通信系统有整体的较深入的理解,深入理解自己仿真部分的原理的基础,画出对应的通信子系统的原理框图;聞創沟燴鐺險爱氇谴净。
3、提出仿真方案;
4、完成仿真软件的编制;
5、仿真软件的演示;
6、提交详细的设计报告。
四. 实验条件
计算机、Matlab软件
五. 通信系统原理
1. 模拟通信系统模型
信息源
调制器
信道
解调器
受信者
噪声源
图1 模拟通信系统
信息源:消息的生成者或来源;
发送设备:将信源输出的信号变为适合信道传输的发射信号,且发送信号包含了原始信号的一切信息;
信道:传输信号的通道,可以是有线的,也可以是无线的;
噪声源:在信道中传输,噪声是绝不可避免的,噪声又可为加性噪声(线性的噪声)和乘性噪声(非线性的噪声),一般我们只考虑加性噪声;残骛楼諍锩瀨濟溆塹籟。
接收设备:从接收信号中提取我们所希望的信号,并将其转换成适合输出传感器的形式;
受信者:消息接收者。
在通信系统中,按信号参量的取值方式不同可把信号分为两类,即模拟信号和数字信号,再按照信道中传输信号的特征,来分为模拟通信系统和数字通信系统。酽锕极額閉镇桧猪訣锥。
2. 数字通信系统模型
信息源
信道编码器
基带脉冲生成器
数字调制器
信
道
数字解调器
采样判决器
信道译码器
信源译码器
受信者
噪声源
信源编码
器
彈贸摄尔霁毙攬砖卤庑。
图2 数字通信系统
信源编码/译码:主要完成A/D变换、数据压缩、加密等三部分功能;
信道编码/译码:数据扩张,增加保镖,提高抗干扰能力等;
基带脉冲生成器/抽样判决器:数字基带传输系统的重要部分;
数字调制器/解调器: (1) 将数字基带信号的频谱搬移到信道的频带之内,以便于在信道中传输;(2) 便于对信道进行频分复用,从而有效地利用信道的频率资源。数字解调是数字调制的反过程。謀荞抟箧飆鐸怼类蒋薔。
3. 模拟通信系统与数字通信系统的比较
模拟通信系统和数字通信系统各有自己的一些特点,但相对于模拟通信系统,数字通信系统有许多独特的优点,例如:数字通信系统抗噪能力强、便于加密、易复用也易压缩、易于集成化、便于用计算机处理数字信号、更适合多种数字业务,容易实现多网合一等。相应地,数字通信系统也有自己的缺点:它需要更宽的传输带宽和较复杂的同步系统等。厦礴恳蹒骈時盡继價骚。
4. 所设计子系统的原理
我所设计的子系统是模拟通信系统,模拟通信系统的主要内容是研究不同信道条件下不同的调制解调方法。调制可以分为三类,即调幅(AM)、调频(FM)、调相(PM),其中调幅又分为普通调幅(AM)、抑制载波的双边带调幅(DSB)、单边带调幅(SSB)。茕桢广鳓鯡选块网羈泪。
图3 所设计子系统
基带信号:(1)基带信号是由消息转化而来的原始模拟信号,它的频谱一般从零频附近开始,如语音信号为300~3400Hz;(2)在实际通信系统中,基带信号一般含直流和低频成分,不宜直接传输,这就需要把基带信号变换成其频带适合在信道中传输的信号,并可在接收端进行反变换,完成这种变换和反变换作用的通常是调制器和解调器。鹅娅尽損鹌惨歷茏鴛賴。
已调信号:它有三个基本特征,即(1)携带有信息;(2)适合在信道中传输;(3)信号的频谱具有带通形式且中心频率远离零频,因而已调信号又称带通信号或频带信号。籟丛妈羥为贍偾蛏练淨。
模拟通信的主要特点:
l 简单、易于实现
l 抗干扰能力差
l 不易于保密通信
l 设备不易于大规模集成
l 不适应飞速发展的计算机通信的要求
六. QPSK的基本原理
1. 四相绝对移相键控(QPSK)的调制基本理论
四相绝对移相键控利用载波的四种不同相位来表征数字信息。由于每一种载波相位代表两个比特信息,故每个四进制码元又被称为双比特码元。我们把组成双比特码元的前一信息比特用a代表,后一信息比特用b代表。双比特码元中两个信息比特ab通常是按格雷码(即反射码)排列的,它与载波相位的关系如表1所列。預頌圣鉉儐歲龈讶骅籴。
表1 双比特码元与载波相位的关系
双比特码元
载波相位φ
a
b
A方式
B方式
0
0
0°
45°
0
1
90°
135°
1
1
180°
225°
1
0
270°
315°
由于四相绝对移相调制可以看作两个正交的二相绝对移相调制的合成,故两者的功率谱密度分布规律相同。
2. 四相绝对移相键控(QPSK)的调制基本方法
下面我们来讨论QPSK信号的产生与解调。QPSK信号的产生方法与2PSK信号一样,也可以分为调相法和相位选择法。渗釤呛俨匀谔鱉调硯錦。
(1) 调相法
用调相法产生QPSK信号的组成方框图如下所示。
图4 QPSK信号的组成方框图
设两个序列中的二进制数字分别为a和b,每一对ab称为一个双比特码元。并设经过串并变换后上支路为a,下支路为b。双极性的a和b脉冲通过两个平衡调制器分别对同相载波及正交载波进行二相调制。铙誅卧泻噦圣骋贶頂廡。
图5 QPSK信号相位编码星座图
表2 QPSK信号相位编码逻辑关系
a
1
0
0
1
b
1°
1°
0°
0°
A路平衡调制器输出
0°
180°
180°
0°
B路平衡调制器输出
270°
270°
90°
90°
合成相位
315°
225°
135°
45°
(2) 相位选择法
用相位选择法产生QPSK信号的组成方框图如下所示。
图6 相位选择法产生QPSK信号方框图
七. 详细设计与编码
1. 编程工具的选择
本仿真所用的工具软件是MATLAB7.0。该软件的功能强大,最擅长矩阵处理,并在系统仿真、数字信号处理、图形图像分析、数理统计、通信及自动控制领域得到广泛应用,特别是MATLAB中Simulink在通信上的应用,它可以用来仿真完整的通信系统,同时MATLAB内部有许多与通信有关的函数,这样程序编写方便,也便于观察波形特征。擁締凤袜备訊顎轮烂蔷。
2. 系统设计方案实现框图
图7 系统设计方案实现框图
3. 编码与调试过程
(1)QPSK仿真系统设计
clear all
M=4
SNR=[0:1:10]; %信噪比
nsymbol=1000000;
data= randsrc(nsymbol,2,[0 1]);
[a1,b1]=find(data(:,1)==0&data(:,2)==0);
message(a1)=-1-j; %225°
[a2,b2]=find(data(:,1)==0&data(:,2)==1);
message(a2)=-1+j; %135°
[a3,b3]=find(data(:,1)==1&data(:,2)==0);
message(a3)=1-j; %275°
[a4,b4]=find(data(:,1)==1&data(:,2)==1);
message(a4)=1+j; %45°
scatterplot(message)
title('系统的星座图')
Es=norm(message).^2/nsymbol; %求方形QPSK系统每个符号的平均功率贓熱俣阃歲匱阊邺镓騷。
Eb=Es/(log2(M)); %求方形QPSK系统每比特的平均功率坛摶乡囂忏蒌鍥铃氈淚。
snr=10.^(SNR/10); %信噪比转化为线性值
NO=Eb./snr;
sigma=sqrt(NO/2);
for EbNO=1:length(sigma)
n1=sigma(EbNO)*randn(1,nsymbol);
n2=sigma(EbNO)*randn(1,nsymbol);
receive=message+n1+n2*j;
resum=0;
total=0;
m1=find(angle(receive)<=pi/2&angle(receive)>0); %解调蜡變黲癟報伥铉锚鈰赘。
remessage(1,m1)=1+j;
redata(m1,1)=1;
redata(m1,2)=1;
m2=find(angle(receive)>pi/2&angle(receive)<=pi); %解调買鲷鴯譖昙膚遙闫撷凄。
remessage(1,m2)=-1+j;
redata(m2,1)=0;
redata(m2,2)=1;
m3=find(angle(receive)>-pi&angle(receive)<=-pi/2); %解调綾镝鯛駕櫬鹕踪韦辚糴。
remessage(1,m3)=-1-j;
redata(m3,1)=0;
redata(m3,2)=0;
m4=find(angle(receive)>-pi/2&angle(receive)<=0); %解调驅踬髏彦浃绥譎饴憂锦。
remessage(1,m4)=1-j;
redata(m4,1)=1;
redata(m4,2)=0;
[resum,ratio1]=biterr(data,redata);
Pb(EbNO)=resum/(nsymbol*2);
[total,ratio2]=symerr(data,redata);
Pe(EbNO)=total/nsymbol;
end
scatterplot(receive)
title('接收信号的星座图')
Pbtho=qfunc(sqrt(2*snr)); %理论误比特率
Petho=Pbtho*log2(M); %理论误符号率
figure(3)
semilogy(SNR,Pe,'-ro',SNR,Petho,'-g*',SNR,Pb,'-bv',SNR,Pbtho,'-g+')猫虿驢绘燈鮒诛髅貺庑。
legend('QPSK仿真误码率','QPSK理论误码率','QPSK仿真误比特率','QPSK理论误比特率')锹籁饗迳琐筆襖鸥娅薔。
title('QPSK载波调制信号在AWGN信道下的性能')
xlabel('信噪比/dB');ylabel('误比特率和误符号率')
grid on
(2)三角形4PSK仿真系统设计
clear all
M=4
SNR=[0:1:10]; %信噪比db
nsymbol=100000;
data=randsrc(nsymbol,2,[0 1]);
[a1,b1]=find(data(:,1)==0&data(:,2)==0);
message(a1)=0+0*j; %原点
[a2,b2]=find(data(:,1)==0&data(:,2)==1);
message(a2)=sqrt(3)+j; %30°
[a3,b3]=find(data(:,1)==1&data(:,2)==0);
message(a3)=-sqrt(3)+j; %150°
[a4,b4]=find(data(:,1)==1&data(:,2)==1);
message(a4)=0-2*j; %270°
scatterplot(message)
title('系统的星座图')
Es=norm(message).^2/nsymbol; %求三角形4PSK系统每个符号的平均功率構氽頑黉碩饨荠龈话骛。
Eb=Es/(log2(M)); %求三角形4PSK系统每比特的平均功率輒峄陽檉簖疖網儂號泶。
snr=10.^(SNR/10);
NO=Eb./snr;
sigma=sqrt(NO/2);
for EbNO=1:length(sigma)
n1=sigma(EbNO)*randn(1,nsymbol);
n2=sigma(EbNO)*randn(1,nsymbol);
receive=message+n1+n2*j;
for i=1:nsymbol
d00=abs(receive(i));
d01=abs(receive(i)-sqrt(3)-j);
d10=abs(receive(i)+sqrt(3)-j);
d11=abs(receive(i)+2*j);
d_min=min([d00 d01 d10 d11]);
if (d00==d_min),
redata(i,1)=0;redata(i,2)=0;remessage(i)=0+0*j;
elseif (d01==d_min),
redata(i,1)=0;redata(i,2)=1;remessage(i)=sqrt(3)+j;尧侧閆繭絳闕绚勵蜆贅。
elseif (d10==d_min),
redata(i,1)=1;redata(i,2)=0;remessage(i)=-sqrt(3)+j; 识饒鎂錕缢灩筧嚌俨淒。
else
redata(i,1)=1;redata(i,2)=1;remessage(i)=0-2*j;
end
end
[resum,ratio1]=biterr(data,redata);
Pb(EbNO)=resum/(nsymbol*2);
[total,ratio2]=symerr(data,redata);
Pe(EbNO)=total/nsymbol;
end
scatterplot(receive)
title('接收信号的星座图')
figure(3)
semilogy(SNR,Pe,'-ro',SNR,Pb,'-bv')
legend('QPSK仿真误码率','QPSK仿真误比特率')
title('异常QPSK载波调制信号在AWGN信道下的性能')
xlabel('信噪比/dB');ylabel('误比特率和误符号率')
grid on
(3)方形QPSK与三角形4PSK仿真系统设计
为了方便方形QPSK与三角形4PSK之间的性能对比,我们将两个程序进行了整合,便如同一个程序。代码如下:凍鈹鋨劳臘锴痫婦胫籴。
clear all
M=4
SNR=[0:1:10]; %信噪比
nsymbol=100000;
data1= randsrc(nsymbol,2,[0 1]);
[a1,b1]=find(data1(:,1)==0&data1(:,2)==0);
message1(a1)=-1-j; %225°
[a2,b2]=find(data1(:,1)==0&data1(:,2)==1);
message1(a2)=-1+j; %135°
[a3,b3]=find(data1(:,1)==1&data1(:,2)==0);
message1(a3)=1-j; %275°
[a4,b4]=find(data1(:,1)==1&data1(:,2)==1);
message1(a4)=1+j; %45°
scatterplot(message1)
title('方形QPSK系统的星座图')
data2= randsrc(nsymbol,2,[0 1]);
[c1,d1]=find(data2(:,1)==0&data2(:,2)==0);
message2(c1)=0+0*j; %原点
[c2,d2]=find(data2(:,1)==0&data2(:,2)==1);
message2(c2)=sqrt(3)+j; %30°
[c3,d3]=find(data2(:,1)==1&data2(:,2)==0);
message2(c3)=-sqrt(3)+j; %150°
[c4,d4]=find(data2(:,1)==1&data2(:,2)==1);
message2(c4)=0-2*j; %270°
scatterplot(message2)
title('三角形4PSK系统的星座图')
Es_f=norm(message1).^2/nsymbol; %求方形QPSK系统每个符号的平均功率恥諤銪灭萦欢煬鞏鹜錦。
Eb_f=Es_f/(log2(M)); %求方形QPSK系统每比特的平均功率鯊腎鑰诎褳鉀沩懼統庫。
Es_tri=norm(message2).^2/nsymbol; %求三角形4PSK系统每个符号的平均功率硕癘鄴颃诌攆檸攜驤蔹。
Eb_tri=Es_tri/(log2(M)); %求三角形4PSK系统每比特的平均功率阌擻輳嬪諫迁择楨秘騖。
snr=10.^(SNR/10); %信噪比转化为线性值
NO_f=Eb_f./snr;
NO_tri=Eb_tri./snr;
sigma_f=sqrt(NO_f/2);
sigma_tri=sqrt(NO_tri/2);
for EbNO=1:length(sigma_f)
n1=sigma_f(EbNO)*randn(1,nsymbol);
n2=sigma_f(EbNO)*randn(1,nsymbol);
receive1=message1+n1+n2*j;
resum1=0;
total1=0;
m1=find(angle(receive1)<=pi/2&angle(receive1)>0); %解调氬嚕躑竄贸恳彈瀘颔澩。
remessage1(1,m1)=1+j;
redata1(m1,1)=1;
redata1(m1,2)=1;
m2=find(angle(receive1)>pi/2&angle(receive1)<=pi); %解调釷鹆資贏車贖孙滅獅赘。
remessage1(1,m2)=-1+j;
redata1(m2,1)=0;
redata1(m2,2)=1;
m3=find(angle(receive1)>-pi&angle(receive1)<=-pi/2); %解调怂阐譜鯪迳導嘯畫長凉。
remessage1(1,m3)=-1-j;
redata1(m3,1)=0;
redata1(m3,2)=0;
m4=find(angle(receive1)>-pi/2&angle(receive1)<=0); %解调谚辞調担鈧谄动禪泻類。
remessage1(1,m4)=1-j;
redata1(m4,1)=1;
redata1(m4,2)=0;
[resum1,ratio1]=biterr(data1,redata1);
Pb_f(EbNO)=resum1/(nsymbol*2);
[total1,ratio2]=symerr(data1,redata1);
Pe_f(EbNO)=total1/nsymbol;
end
scatterplot(receive1)
title('方形QPSK系统接收信号的星座图')
Pbtho_f=qfunc(sqrt(2*snr)); %理论误比特率
Petho_f=Pbtho_f*log2(M); %理论误符号率
for EbNO=1:length(sigma_tri)
n3=sigma_tri(EbNO)*randn(1,nsymbol);
n4=sigma_tri(EbNO)*randn(1,nsymbol);
receive2=message2+n3+n4*j;
for i=1:nsymbol
d00=abs(receive2(i));
d01=abs(receive2(i)-sqrt(3)-j);
d10=abs(receive2(i)+sqrt(3)-j);
d11=abs(receive2(i)+2*j);
d_min=min([d00 d01 d10 d11]);
if (d00==d_min),
redata2(i,1)=0;redata2(i,2)=0;remessage2(i)=0+0*j;
elseif (d01==d_min),
redata2(i,1)=0;redata2(i,2)=1;remessage2(i)=sqrt(3)+j;嘰觐詿缧铴嗫偽純铪锩。
elseif (d10==d_min),
redata2(i,1)=1;redata2(i,2)=0;remessage2(i)=-sqrt(3)+j; 熒绐譏钲鏌觶鷹緇機库。
else
redata2(i,1)=1;redata2(i,2)=1;remessage2(i)=0-2*j;
end
end
[resum2,ratio3]=biterr(data2,redata2);
Pb_tri(EbNO)=resum2/(nsymbol*2);
[total2,ratio4]=symerr(data2,redata2);
Pe_tri(EbNO)=total2/nsymbol;
end
scatterplot(receive2)
title('三角形4PSK接收信号的星座图')
figure(5)
semilogy(SNR,Pe_f,'-ro',SNR,Petho_f,'-g*',SNR,Pb_f,'-rv',SNR,Pbtho_f,'-g^',SNR,Pe_tri,'-ko',SNR,Pb_tri,'-bo')鶼渍螻偉阅劍鲰腎邏蘞。
legend('方形QPSK仿真误码率','方形QPSK理论误码率','方形QPSK仿真误比特率','方形QPSK理论误比特率','三角形4PSK系统仿真误码率','三角形4PSK系统仿真误比特率')纣忧蔣氳頑莶驅藥悯骛。
title('载波调制信号在AWGN信道下的性能对比')
xlabel('信噪比/dB');ylabel('误比特率和误符号率')
grid on
4. 运行结果及分析
(1)方形QPSK系统的星座图
(2)三角形4PSK系统的星座图
(3)方形QPSK系统接收信号的星座图
(4)三角形4PSK接收信号的星座图
(5)载波调制信号在AWGN信道下的性能对比
以上五张图由第三个整合过的程序仿真得出。可见对应于方形QPSK的仿真,当信噪比小于等于8dB时,仿真值可以很好的逼近理论值,但当信噪比大于9dB时,仿真值与理论值略有偏差。从仿真图中,我们可以看出,方形QPSK系统的性能明显优于三角形4PSK系统的性能。颖刍莖蛺饽亿顿裊赔泷。
八. 设计心得
在本次课程设计中,我收获很多,学会了应用MATLAB来处理问题,加深了对通信原理中部分公式和概念的理解。实验过程中也遇到了不少问题,在星座图映射上,一开始将00,01,10,11看成一个整体,这样对整体编程存在很大困难,因此后来尝试将其分开看,并成功映射;在计算噪声的过程中,由于通信原理的知识未能牢固掌握,在分析和计算的过程中花了很多时间;实验过程中,学会了使用find函数来代替for循环的功能,从而使程序运行更加快,大大加快了实验的进度。通过本次MATLAB的实践,应该加强MATLAB在各个学科的应用,学会用MATLAB来处理实际问题。濫驂膽閉驟羥闈詔寢賻。
数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通信号。基本的数字调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、相对(差分)相移键控(DPSK)。在接收端可以采用想干解调或非相干解调还原数字基带信号。銚銻縵哜鳗鸿锓謎諏涼。
数字信号的传输方式分为基带传输和带通传输。然而,实际中的大多数信道(如)无线信道具有丰富的低频分量。为了使数字信号在带通信道中传输,必须用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。挤貼綬电麥结鈺贖哓类。
通信系统的抗噪声性能是指系统克服加性噪声影响的能力。在数字通信系统中,信道噪声有可能使传输码元产生错误,错误程度通常用误码率来衡量。因此,与分析数字基带系统的抗噪声性能一样,分析数字调制系统的抗噪声性能,也就是求系统在信道噪声干扰下的总误码率。赔荊紳谘侖驟辽輩袜錈。
误码率(BER:bit error ratio)是衡量数据在规定时间内数据传输精确性的指标。误码率是指错误接收的码元数在传输总码元数中所占的比例,更确切地说,误码率是码元在传输系统中被传错的概率,即误码率=错误码元数/传输总码元数。如果有误码就有误码率。误码的产生是由于在信号传输中,衰变改变了信号的电压,致使信号在传输中遭到破坏,产生误码。噪音、交流电或闪电造成的脉冲、传输设备故障及其他因素都会导致误码(比如传送的信号是1,而接收到的是0;反之亦然)。误码率是最常用的数据通信传输质量指标。它表示数字系统传输质量的式是“在多少位数据中出现一位差错”。塤礙籟馐决穩賽釙冊庫。
误信率,又称误比特率,是指错误接收的比特数在传输总比特数中所占的比例,即误比特率=错误比特数/传输总比特数。裊樣祕廬廂颤谚鍘羋蔺。
在数字通信系统中,可靠性用误码率和误比特率表示。
数字调制用“星座图”来描述,星座图中定义了一种调制技术的两个基本参数:(1)信号分布;(2)与调制数字比特之间的映射关系。星座图中规定了星座点与传输比特间的对应关系,这种关系称为“映射”,一种调制技术的特性可由信号分布和映射完全定义,即可由星座图来完全定义。仓嫗盤紲嘱珑詁鍬齊驁。
通过仿真出来图形的对比,我们能够发现方形QPSK系统的性能明显优于三角形4PSK系统的性能。
九. 参考文献
1. Bernad Sklar[美].数字通信——基础与应用.电子工业出版社.2006年10月
2. 王立宁,乐光新等.Matlab与通信仿真.人民邮电出版社.1999年5月
3. 陈邦媛.射频通信电路.科学出版社.2006年8月
4. 翁剑枫.信号与系统.人民邮电出版社.2010年8月
5. 刘顺兰,吴杰.数字信号处理.西安电子科技大学出版社.2009年7月
6. 王立宁,乐光新等.Matlab与通信仿真.人民邮电出版社.1999年5月
展开阅读全文