
李典 程博 林吉
摘要
本次课程设计利用MATLAB软件对多进制QAM调制解调系统进行仿真,其中,信道采用瑞利衰落信道和高斯信道,调制方式为正交振幅调制方式,解调方式为相干解调方式。通过编程得到高斯信道和瑞利衰落信道下的误码率曲线,并进行了对比分析。
关键词:QAM调制 平均误码率性能 高斯信道 瑞利衰落信道 MATLAB仿真
1.引言
随着通信业迅速的发展,传统通信系统的容量已经越来越不能满足当前用户的要求,而可用频谱资源有限,也不能靠无限增加频道数目来解决系统容量问题。另外,人们亦不能满足通信单一的语音服务,希望能利用移动电话进行图像等多媒体信息的通信。但由于图像通信比电话需要更大的信道容量。高效、可靠的数字传输系统对于数字图像通信系统的实现很重要,正交幅度调制QAM是数字通信中一种经常利用的数字调制技术,尤其是多进制QAM具有很高的频带利用率,在通信业务日益增多使得频带利用率成为主要矛盾的情况下,正交幅度调制方式是一种比较好的选择。
2.成员分工
本次课程设计,初期先由林吉进行了QAM相关资料的收集整理工作,然后李典进行了QAM调制在高斯信道下的误码率性能程序的编写和修改工作,由程博进行QAM在Rayleigh信道中的误码率性能程序的编写和修改工作,仿真成功后每个人将完成的部分整理成文档,最后综合到一起完成了本篇课程设计报告。
3.QAM的基本介绍
正交振幅调制(QAM)是一种矢量调制,它是将输入比特先映射(一般采用格雷码)到一个复平面(星座)上,形成复数调制符号。正交调幅信号有两个相同频率的载波,但是相位相差90度(四分之一周期,来自积分术语)。一个信号叫I信号,另一个信号叫Q信号。从数学角度将一个信号可以表示成正弦,另一个表示成余弦。两种被调制的载波在发射时已被混和。到达目的地后,载波被分离,数据被分别提取然后和原始调制信息相混和。 这样与之作幅度调制(AM)相比,其频谱利用率高出一倍。
QAM是用两路的基带信号对两个相互正交的同频载波进行抑制载波双边带调幅,利用这种已调信号的频谱在同一带宽内的正交性,实现两路并行的数字信息的传输。该调制方式通常有二进制QAM(4QAM)、四进制QAM(l6QAM)、八进制QAM(QAM)、…,对应的空间信号矢量端点分布图称为星座图,分别有4、16、、…个矢量端点。目前QAM最高已达到1024QAM。样点数目越多,其传输效率越高。但并不是样点数目越多越好,随着样点数目的增加,QAM系统的误码率会逐渐增大,所以在对可靠性要求较高的环境,不能使用较多样点数目的QAM。对于4QAM,当两路信号幅度相等时,其产生、解调、性能及相位矢量均与4PSK相同。
a 4QAM星座图 b 16QAM星座图
QAM采用格雷编码,采用格雷码的好处在于相邻相位所代表的两个比特只有一位不同,由于因相位误差造成错判至相邻相位上的概率最大,故这样编码使之仅造成一个比特误码的概率最大。
QAM的调制和相干解调框图如图(1)、图(2)所示。在调制端,输入数据经过串/并变换后分成两路。为了抑制已调信号的带外辐射,两路电平映射出的信号还要经过预调制低通滤波器,才分别与相互正交的各路载波相乘。最后两路信号相加就可以以得到已调输出信号y。
图(1)正交调制原理框图
解调是调制的逆过程,在接收端解调器中可以采用正交的相干解调方法。接受到的信号分两路进入两个正交的载波的相干解调器,再分别进入判决器形成L进制信号并输出二进制信号,最后经并/串变换后得到基带信号。
图(2)相干解调原理框图
对于方型QAM来说,它可以看成是两个脉冲振幅调制信号之和,因此利用脉冲振幅调制的分析结果,可以得到M进制QAM的误码率公式:
为每个码元内的比特数,为每比特的平均信噪比。
4.信道介绍
4.1高斯信道简介:
高斯信道,最简单的信道,常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。
高斯信道对于评价系统性能的上界具有重要意义,对于实验中定量或定性地评价某种调制方案、误码率(BER)性能等有重要作用。
4.2瑞利衰落信道简介:
瑞利衰落信道(Rayleigh fading channel)是一种无线电信号传播环境的统计模型。这种模型假设信号通过无线信道之后,其信号幅度是随机的,即“衰落”,并且其包络服从瑞利分布。
瑞利分布是一个均值为0,方差为σ2的平稳窄带高斯过程,其包络的一维分布是瑞利分布。其表达式及概率密度如图所示。
瑞利分布函数
瑞利分布是最常见的用于描述平坦衰落信号接收包络或多径分量接受包络统计时变特性的一种分布类型。两个正交高斯噪声信号之和的包络服从瑞利分布。
通常将信道增益以等效基带信号表示,即用一复数表示信道的幅度和相位特性。由此瑞利衰落即可由这一复数表示,它的实部和虚部服从于零均值的同分布高斯过程。
5.误码率性能仿真图
5.1 QAM调制方式,信道为高斯信道的系统误码率分析图:
5.2 QAM调制方式,信道为瑞利衰落信道的系统误码率分析图:
M=4和8
M=16
M=32
M=
6.总结:
本次课程设计的研究重点是基于MATLAB的M-QAM调制在高斯信道和瑞利衰落信道中的平均误码率性能的设计和仿真。首先对QAM调制解调系统基本原理进行了较为深入地理解与分析,并得到了M进制QAM的误码率公式。其次,对高斯信道和瑞丽衰落信道进行了简介与分析,最后根据QAM在这两类信道下的误码率性能编写了程序并通过仿真得到了误码率曲线。从误码率曲线图中可以看出,仿真误码率曲线与理论误码率曲线拟合情况良好,说明本文采用方法正确。
通过本次课程设计,感觉有很多收获。在做的过程中遇到了很多问题,像对问题不知道应该从哪里入手分析、对MATLAB编程及软件使用不熟练等等,最后通过查资料及组员之间相互沟通解决了这些问题。在这个工程中,组员的分析解决问题的能力及对MATLAB的掌握都有了很大提高。最后还要感谢本学期潘老师对移动通信课程的讲授,使我们获得了重要的专业知识同时对通信专业有了更深刻的认识,为以后的深造及工作打下了良好的基础。
7.参考文献
[1] 李建东、郭梯云编著。《移动通信》(第4版)陕西:西安电子科技大学出版社,2005.5
[2] 樊昌信、曹丽娜编著。《通信原理》(第6版)。北京:国防工业出版社,2011.1 (238-240)
[3] 刘雪勇编著。《详解MATLAB/Simulink通信系统建模与仿真(配视频教程)》。北京:电子工业出版社,2011.11 (-101)
8.附录
8.1 M-QAM调制在高斯信道下误码率性能源程序:
clear;
M=16;%设置进制
k=log2(M);
L=sqrt(M);
x=randint(30000,1);%产生二进制随机数
y=modulate(modem.qammod('M',16,'InputType','Bit'),x);%调制
snrpBit=0:1:15;%信噪比
s_b2d=bi2de(reshape(x,k,length(x)/k).','left-msb');%二进制变为十进制
for n=1:length(snrpBit)
snr(n)=snrpBit(n)+10*log10(k);%Ratio of symbol energy to noise power spectral density
ynoisy=awgn(y,snr(n),'measured');%加入高斯白噪声
z=demodulate(modem.qamdemod('M',16,'OutputType','Bit'),ynoisy);%解调
r_b2d=bi2de(reshape(z,k,length(z)/k).','left-msb');%二进制变为十进制
[sym(n),sym_rate(n)]=symerr(s_b2d,r_b2d);%计算仿真误码率
a=3*log2(L);b=L^(2)-1;c=1-L^(-1);
theo_sym_rate(n)= (erfc(sqrt((10.^(snrpBit(n).*0.1)).*a./b)).*2*c).*(1- erfc(sqrt((10.^(snrpBit(n).*0.1)).*a./b)).*(1/2)*c);%计算理论误码率
end
disp(sym);
disp(sym_rate);
semilogy(snrpBit,sym_rate,'r*');%仿真误码率曲线
hold on;
semilogy(snrpBit,theo_sym_rate,'b-');%理论误码率曲线
%text(3,10^-2,'M=2');
%text(4,10^-2,'M=4');
%text(6,10^-2,'M=8');
%text(8,10^-2,'M=16');
%text(10.5,10^-2,'M=32');
%text(12.5,10^-2,'M=');
title('QAM误码率性能');
xlabel('SNR');
ylabel('误码率');
legend('仿真误码率','理论误码率');
axis([0 15 1e-4 1]);%坐标范围
7.2 M-QAM在Rayleigh信道下误码率性能源程序
(1)主程序
% simulation for M-QAM transmission
M=input('Enter the order of M-QAM, M(2^k) =');%输入
EbNodB = [0:2:20];% 设置Eb/N0为0-20dB,间隔为2.
EbNolin = 10.^(EbNodB/10) ;%转换为线性刻度
Pe_sim=[];%设置函数,清零
for i = 1:11,
Pe_sim=[Pe_sim QAM_rayleigh(M, EbNodB(i))];%依次带入EBNO值计算出瑞利信道下相对应误码率
end
% 画瑞利衰落信道下误码率曲线
semilogy(EbNodB,Pe_sim,'r*')
hold on
% 计算理论误码率
if(M==4)
a=1;
else
a=4/log2(M);
end
b=3*log2(M)/(M-1);
Pe=[];
for i = 1:11,
Pe= [Pe 0.5*a*(1-sqrt(0.5*b*EbNolin(i)/(1+0.5*b*EbNolin(i))))];
end % 计算方式出处: Wireless Communication, A. Goldsmith
%绘制理论误码率曲线
semilogy(EbNodB,Pe)
xlabel('snr, EbNo(dB)');
ylabel('Bit error probability, Pe');
title('Comparison between theoretical & simulated results of BER of M-QAM');
legend('simulated result','theoretical results');
hold off
(2)子函数:
function[ber]= QAM_rayleigh(M, EbNodB)
% 数据送入,M-QAM 调制
k=log2(M);%转换为多路并行
EbNo=10^(EbNodB/10);%转换为线性刻度
N=k*10^4;%信源数
x=0+(1-0)*round(rand(1,N))';%产生随机数,转置,去整,输入序列
h=modem.qammod(M);%调制方式
h.inputtype='bit';%输入为二进制
y=modulate(h,x);%调制
% 加入信道
m=mean((abs(y)).^2)/k;%已调信号的平均功率
sigma=sqrt(m/(2*EbNo));%噪声(标准差)
w=sigma*(randn(N/k,1)+1i*randn(N/k,1));%噪声
H=(1/sqrt(2))*(randn(N/k,1)+1i*randn(N/k,1));%瑞利信道
r=H.*y+w;%输出=信道*输入+高斯噪声
% M-QAM 解调及误码率
r=r./H;%信道均衡
h_n=modem.qamdemod(M);%解调方式
h_n.outputtype='bit';%输出为二进制
z=demodulate(h_n,r);%解调
ber=(N-sum(x==z))/N;%计算误码率并赋值给ber
