通信原理课程设计1.docx
- 文档编号:25033251
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:31
- 大小:213.73KB
通信原理课程设计1.docx
《通信原理课程设计1.docx》由会员分享,可在线阅读,更多相关《通信原理课程设计1.docx(31页珍藏版)》请在冰豆网上搜索。
通信原理课程设计1
通信原理
课程设计报告
题目:
基于MATLAB的M-QAM调
制及相干解调的设计与仿真
班级:
通信工程1411
姓名:
杨仕浩(2014111347)
解博文(2014111321)
介子豪(2014111322)
指导老师:
罗倩倩
成绩:
日期:
2016年12月21日
基于MATLAB的M-QAM调制及相干解调的设计与仿真
摘要:
正交幅度调制技术(QAM)是一种功率和带宽相对高效的信道调制技术,因此在自适应信道调制技术中得到了较多应用。
本次课程设计主要运用MATLAB软件对M=16进制正交幅度调制系统进行了仿真,从理论上验证16进制正交幅度调制系统工作原理,为实际应用和科学合理地设计正交幅度调制系统,提供了便捷、高效、直观的重要方法。
实验及仿真的结果证明,多进制正交幅度调制解调易于实现,且性能良好,是未来通信技术的主要研究方向之一,并有广阔的应用前景。
关键词:
正交幅度调制系统;MATLAB;仿真
1引言
本次课程设计主要运用MATLAB软件进行程序编写。
实现模拟基带信号经QAM调制与相干解调的传输过程,通过分析比较调制解调输出波形以及功率谱特征,理解QAM调制解调原理。
1.1课程设计的目的
通信原理课程设计的目的是使我们加深对所学的通信原理知识的理解,扎实掌握通信原理的基础知识和基本理论,增强分析问题和解决问题的能力,培养学生专业素质,提高其利用通信原理知识处理通信系统问题的能力,为今后专业课程的学习、毕业设计和工作打下良好的基础。
1.2课程设计的基本任务和要求
(1)设计出规定的数字通信系统的结构,包括信源,调制,发送滤波器模块,信道,接受滤波器模块以及信宿;
(2)根据通信原理,设计出各个模块的参数(例如码速率,滤波器的截止频率等);
(3)熟悉MATLAB环境下的Simulink仿真平台,用Matlab/Simulink实现该数字通信系统;
(4)观察仿真并进行波形分析(波形图和频谱图等);
1.3仿真平台Matlab
MATLAB目前已发展成为由MATLAB语言、MATLAB工作环境、MATLAB图形处理系统、MATLAB数学函数库和MATLAB应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的系统。
本次课程设计则在深入研究连续时间信号傅里叶级数分析理论知识的基础上,利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,通过MATLAB编程进行图形功能仿真,从而实现连续时间周期信号频域分析的仿真波形,包括以下内容:
用MATLAB实现周期信号的傅里叶级数分解与综合的波形;用MATLAB实现周期信号的单边频谱及双边频谱的波形与分析;用MATLAB实现典型周期信号的频谱的波形。
2QAM系统的介绍
2.1正交幅度调制技术
正交振幅调制(QuadratureAmplitudeModulation,QAM)是一种振幅和相位联合键控。
虽然MPSK和MDPSK等相移键控的带宽和功率方面都具有优势,即带宽占用小和比特噪声比要求低。
图18PSK信号相位
但是由图1可见,在MPSK体制中,随着M的增大,相邻相位的距离逐渐减小,使噪声容限随之减小,误码率难于保证。
为了改善在M大时的噪声容限,发展出了QAM体制。
在QAM体制中,信号的振幅和相位作为两个独立的参量同时受到调制。
这种信号的一个码元可以表示为:
(1—1)
式中:
k=整数;
和
分别可以取多个离散值。
式(1—1)可以展开为:
(1—2)
令Xk=Akcosk,Yk=-Aksink
则式(1—1)变为:
(1—3)
和
也是可以取多个离散的变量。
从式(1—3)看出,
可以看作是两个正交的振幅键控信号之和。
在式(1—1)中,若k值仅可以取/4和-/4,Ak值仅可以取+A和-A,则此QAM信号就成为QPSK信号,如图2所示:
图24QAM信号矢量图
所以,QPSK信号就是一种最简单的QAM信号。
有代表性的QAM信号是16进制的,记为16QAM,它的矢量图示于下图中:
Ak
图316QAM信号矢量图
图中用黑点表示每个码元的位置,并且示出它是由两个正交矢量合成的。
类似地,有64QAM和256QAM等QAM信号,如图4、图5所示。
它们总称为MQAM调制。
由于从其矢量图看像是星座,故又称星座调制。
AM
16QAM信号的产生方法主要有两种。
第一种是正交调幅法,即用两路独立的正交4ASK信号叠加,形成16QAM信号,如图6所示。
图6正交调幅法
第二种方法是复合相移法,它移用两路独立的QPSK信号叠加,形成16QAM信号,如图7所示。
图中
图7复合相移法
虚线大圆上的4个大黑点表示一个QPSK信号矢量的位置。
在这4个位置上可以叠加上第二个QPSK矢量,后者的位置用虚线小圆上的4个小黑点表示。
2.2QAM调制解调原理
2.2.1QAM调制
正交幅度调制QAM是数字通信中一种经常利用的数字调制技术,尤其是多进制QAM具有很高的频带利用率,在通信业务日益增多使得频带利用率成为主要矛盾的情况下,正交幅度调制方式是一种比较好的选择。
正交幅度调制(QAM)信号采用了两个正交载波
,每一个载波都被一个独立的信息比特序列所调制。
发送信号波形如图8所示
(1-4)
图8M=16QAM信号星座图
式中{
}和{
}是电平集合,这些电平是通过将k比特序列映射为信号振幅而获得的。
例如一个16位正交幅度调制信号的星座图如下图所示,该星座是通过用M=4PAM信号对每个正交载波进行振幅调制得到的。
利用PAM分别调制两个正交载波可得到矩形信号星座。
QAM可以看成是振幅调制和相位调制的结合。
因此发送的QAM信号波形可表示为
(1-5)
如果
那么QAM方法就可以达到以符号速率
同时发送
个二进制数据。
图9给出了QAM调制器的框图。
图9QAM调制器框图
2.2.2QAM的解调和判决
假设在信号传输中存在载波相位偏移和加性高斯噪声。
因此r(t)可以表示为
(1-6)
其中
是载波相位偏移,且
(1-7)
将接收信号与下述两个相移函数进行相关运算
(1-8)
(1-9)
如图10所示,相关器的输出抽样后输入判决器。
使用图10中所示的锁相环估算接收信号的载波相位偏移
,相移
和
对该相位偏移进行补偿。
图10QAM信号的解调和判决
假设图中所示的时钟与接收信号同步,以使相关器的输出在适当的时刻及时被抽样。
在这些条件下两个相关器的输出分别为
(1-10)
(1-11)
其中
(1-12)
(1-13)
噪声分量是均值为0,方差为
的互不相关的高斯随机变量。
最佳判决器计算距离量度
(1-14)
2.3QAM的误码率性能
矩形QAM信号星座最突出的优点就是容易产生PAM信号可直接加到两个正交载波相位上,此外它们还便于解调。
对于
下的矩形信号星座图(K为偶数),QAM信号星座图与正交载波上的两个PAM信号是等价的,这两个信号中的每一个上都有
个信号点。
因为相位正交分量上的信号能被相干判决极好的分离,所以易于通过PAM的误码率确定QAM的误码率。
M进制QAM系统正确判决的概率是:
。
(1-15)
式中
是
进制PAM系统的误码率,该PAM系统具有等价QAM系统的每一个正交信号中的一半平均功率。
通过适当调整M进制PAM系统的误码率,可得:
(1-16)
式中
是每个符号的平均信噪比。
因此,因此M进制QAM的误码率为:
(1-17)
可以注意到,当K为偶数时,这个结果对
情形时精确的,而当K为奇数时,就找不到等价的
进制PAM系统。
如果使用最佳距离量度进行判决的最佳判决器,可以求出任意K>=1误码率的的严格上限。
<=
(1-18)
其中,
是每比特的平均信噪比。
3多进制正交幅度(M-QAM)调制及相干解调原理框图
图11正交调制原理框图
如图11所示的M-QAM调制原理框图,首先将基带信号进行串并转换分离出I分量、Q分量,然后再分别进行电平映射,经过成形滤波后与载波相乘,最后相加得到已调信号。
图12相干解调原理框图
如图12所示的M-QAM相干解调原理框图首先对收到的已调信号进行正交相干解调,一路与cosωct相乘,一路与sinωct相乘。
然后经过低通滤波器,低通滤波器LPF滤除乘法器法产生的高频分量,获得有用信号,低通滤波器LPF输出经抽样判决可恢复出电平信号。
4基于MATLAB的多进制正交幅度(M-QAM)调制及相干解调设计与仿真
4.1系统设计
首先进行系统的分析的设计,整个设计分为如下几个部分:
随机序列的产生、序列的串/并和并/串转换、16QAM调制、星座图的绘制、16QAM解调、加入噪声、误码率的测量及仿真图形显示。
4.2随机信号的生成
利用Matlab中的random_binary函数来产生0、1等概分布的随机信号。
源代码如下所示:
random_binary.m
%产生二进制信源随机序列
function[info]=random_binary(N)
ifnargin==0,%如果没有输入参数,则指定信息序列为10000个码元
N=10000;
end;
fori=1:
N,
temp=rand;
if(temp<0.5),
info(i)=0;%1/2的概率输出为0
else
info(i)=1;%1/2的概率输出为1
end
end;
4.3星座图映射
对产生的二进制随机序列进行串并转换,分离出I分量、Q分量,然后再分别进行电平映射。
由于是调用matlab系统函数调制解调,在此将转换后边的序列进行四进制转换,方便后面的调制,再将转换好的序列通过调用qam()函数进行16qam调制,具体代码如下:
代码如下:
%串/并变换分离出I分量、Q分量,然后再分别进行电平映射
I=x(1:
2:
nn-1);
[I,In]=two2four(I,4*m);
Q=x(2:
2:
nn);
[Q,Qn]=two2four(Q,4*m);
ifKbase==2;%基带成形滤波
I=bshape(I,fs,fb/4);
Q=bshape(Q,fs,fb/4);
end;
y=I.*cos(2*pi*fc*t)-Q.*sin(2*pi*fc*t);%调制
二进制转换成四进制代码:
two2four.m
%二进制转换成四进制
function[y,yn]=two2four(x,m);
T=[01;32];
n=length(x);
ii=1;
fori=1:
2:
n-1;
xi=x(i:
i+1)+1;
yn(ii)=T(xi
(1),xi
(2));
ii=ii+1;
end;
yn=yn-1.5;
y=yn;
fori=1:
m-1;
y=[y;yn];
end;
y=y(:
)';%映射电平分别为-1.5;0.5;0.5;1.5
星座图代码如下:
constel.m
%画出星座图
functionc=constel(x,fs,fb,fc);
N=length(x);
m=2*fs/fb;n=fs/fc;
i1=m-n;
i=1;
ph0=(i1-1)*2*pi/n;
whilei<=N/m;
xi=x(i1:
i1+n-1);
y=2*fft(xi)/n;
c(i)=y
(2);
i=i+1;
i1=i1+m;
end;
%如果无输出,则作图
ifnargout<1;
cmax=max(abs(c));
ph=(0:
5:
360)*pi/180;
plot(1.414*cos(ph),1.414*sin(ph),'c');
holdon;
fori=1:
length(c);
ph=ph0-angle(c(i));
a=abs(c(i))/cmax*1.414;
plot(a*cos(ph),a*sin(ph),'r*');
end;
plot([-1.51.5],[00],'k:
',[00],[-1.51.5],'k:
');
holdoff;
axisequal;
axis([-1.51.5-1.51.5]);
end;
4.4波形成形(平方根升余弦滤波器)
为了避免相邻传输信号之间的串扰,多元符号需要有合适的信号波形。
方波是在本地数字信号处理时常见的波形,但在实际传输时这种方波并不合适。
根据奈奎斯特第一准则,在实际通信系统中一般均使接收波形为升余弦滚降信号。
这一过程由发送端的基带成形滤波器和接收端的匹配滤波器两个环节共同实现,因此每个环节均为平方根升余弦滚降滤波,两个环节合成就实现了一个升余弦滚降滤波。
实现平方根升余弦滚降信号的过程称为“波形成形”,通过采用合适的滤波器对多元码流进行滤波实现,由于生成的是基带信号,因此这一过程又称“基带成形滤波”。
代码如下:
bshape.m
%基带升余弦成形滤波器
functiony=bshape(x,fs,fb,N,alfa,delay);
%设置默认参数
ifnargin<6;delay=8;end;
ifnargin<5;alfa=0.5;end;
ifnargin<4;N=16;end;
b=firrcos(N,fb,2*alfa*fb,fs);
y=filter(b,1,x);
4.5调制
已调号进行串并转换分离出I分量、Q分量,然后再分别进行电平映射,经过成形滤波后与载波相乘,最后相加得到已调信号。
调制代码:
qam.m
function[y,I,Q]=qam(x,Kbase,fs,fb,fc);
T=length(x)/fb;
m=fs/fb;
nn=length(x);
dt=1/fs;
t=0:
dt:
T-dt;
%串/并变换分离出I分量、Q分量,然后再分别进行电平映射
I=x(1:
2:
nn-1);
[I,In]=two2four(I,4*m);
Q=x(2:
2:
nn);
[Q,Qn]=two2four(Q,4*m);
ifKbase==2;%基带成形滤波
I=bshape(I,fs,fb/4);
Q=bshape(Q,fs,fb/4);
end;
y=I.*cos(2*pi*fc*t)-Q.*sin(2*pi*fc*t);%调制
4.6加入高斯白噪声之后解调
为了简化程序和得到可靠的误码率,我们在解调时并未从已调信号中恢复载波,而是直接产生与调制时一模一样的载波来进行信号解调。
加入不同强度的高斯白噪声代码:
SNR_in_dB=8:
2:
24;%AWGN信道信噪比
forj=1:
length(SNR_in_dB)
y_add_noise=awgn(y2,SNR_in_dB(j));%加入不同强度的高斯白噪声
y_output=qamdet(y_add_noise,fs,fb,fc);%对已调信号进行解调
解调时先设计一个巴特沃斯滤波器,然后将I分量、Q分量并/串转换,最终恢复成码元序列xn,然后进行解调。
解调的代码如下:
%QAM信号解调
function[xn,x]=qamdet(y,fs,fb,fc);
dt=1/fs;
t=0:
dt:
(length(y)-1)*dt;
I=y.*cos(2*pi*fc*t);
Q=-y.*sin(2*pi*fc*t);
[b,a]=butter(2,2*fb/fs);%设计巴特沃斯滤波器
I=filtfilt(b,a,I);
Q=filtfilt(b,a,Q);
m=4*fs/fb;
N=length(y)/m;
n=(.6:
1:
N)*m;
n=fix(n);
In=I(n);
Qn=Q(n);
xn=four2two([InQn]);
%I分量Q分量并/串转换,最终恢复成码元序列xn
nn=length(xn);
xn=[xn(1:
nn/2);
xn(nn/2+1:
nn)];
xn=xn(:
);
xn=xn';
四进制转换成二进制代码如下:
%四进制转换成二进制
functionxn=four2two(yn);
y=yn;ymin=min(y);
ymax=max(y);
ymax=max([ymaxabs(ymin)]);
ymin=-abs(ymax);
yn=(y-ymin)*3/(ymax-ymin);
%设置门限电平,判决
I0=find(yn<0.5);
yn(I0)=zeros(size(I0));
I1=find(yn>=0.5&yn<1.5);
yn(I1)=ones(size(I1));
I2=find(yn>=1.5&yn<2.5);
yn(I2)=ones(size(I2))*2;
I3=find(yn>=2.5);
yn(I3)=ones(size(I3))*3;
%一位四进制码元转换为两位二进制码元
T=[00;01;11;10];
n=length(yn);
fori=1:
n;
xn(i,:
)=T(yn(i)+1,:
);
end;
xn=xn';
xn=xn(:
);xn=xn';
误码率代码如下:
numoferr=0;
fori=1:
N
if(y_output(i)~=info(i)),
numoferr=numoferr+1;
end;
end;
Pe(j)=numoferr/N;%统计误码率
end;
figure;
semilogy(SNR_in_dB,Pe,'red*-');
gridon;
xlabel('SNRindB');
ylabel('Pe');
title('16QAM调制在信道噪声强度下的误码率');
16-QAM载波调制信号在AWGN信道下的性能代码如下:
clearall
nsymbol=100000;
%每种信噪比下的发送符号数
M=16;
%16-QAM
graycode=[0132457612131514891110];
%Gray编码规则
EsN0=5:
20;
%信噪比,Es/N0
snr1=10.^(EsN0/10);
%信噪比转换为线性值
msg=randint(1,nsymbol,M);%消息数据
msg1=graycode(msg+1);%Gray映射
msgmod=qammod(msg1,M);%基带16-QAM调制
spow=norm(msgmod).^2/nsymbol;%求每个符号的平均功率
forindx=1:
length(EsN0)
sigma=sqrt(spow/(2*snr1(indx)));
%根据符号功率求噪声功率
rx=msgmod+sigma*(randn(1,length(msgmod))+j*randn(1,length(msgmod)))
y=qamdemod(rx,M);
decmsg=graycode(y+1);
[err,ber(indx)]=biterr(msg,decmsg,log2(M));%误比特率
[err,ser(indx)]=symerr(msg,decmsg);%误符号率
end
P4=2*(1-1/sqrt(M))*qfunc(sqrt(3*snr1/(M-1)));
ser1=1-(1-P4).^2;
%理论误符号率
ber1=1/log2(M)*ser1;
%理论误比特率
semilogy(EsN0,ber,'-ko',EsN0,ser,'-k*',EsN0,ser1,EsN0,ber1,'-k.');
title('16-QAM载波调制信号在AWGN信道下的性能')
xlabel('Es/N0');
ylabel('误比特率和误符号率')
legend('误比特率','误符号率','理论误符号率','理论误比特率')
5仿真结果及分析
图13已调信号波形
如图13所示的已调信号,程序码元数量设定为10000个,此处显示1/10,即1000个,基带信号频率1HZ,抽样频率32HZ,载波频率4HZ。
图14已调信号频谱
图1516QAM星座图
通过观察图15的16QAM星座图可以看出16QAM的频带利用率比较高,带宽占用比较小。
图1616QAM调制在不同信道噪声强度下的误码率
图1716-QAM载波调制信号在AWGN信道下的性能
由图16图17可看到当信噪比小的情况下,仿真曲线和理论曲线差距略大,而随着信噪比的增大,仿真曲线越来越逼进理论曲线。
在同样信噪比时,误符号率比误比特率(误码率)要大。
简单分析不难看出,由于理论误码率曲线是建立在误符号率除以4的基础上的,而这一条件的前提是出现误符号的时候,一个符号中只有一个bit位发生了错误,这表明误码率比较低,也就是说明信噪比比较大。
所以,当信噪比比较小的时候,理论计算的误码率的值要小于仿真得到的值。
6总结与体会
6.1总结
在现代通信中,提高频谱利用率一直是人们关注的焦点之一。
近年来,随着通信业务需求的增长,寻找频谱利用率高的数字调制方式已成为数字通信系统设计,研究的主要目标之一。
正交振幅调制QAM(QuadratureAmplitudeModulation)就是一种频谱利用率很高的调制方式,其在中、大容量数字微波通信系统、有线电视网络高速数据传输、卫星通信系统等领域得到了广泛应用。
本设计是基于MATLAB/Simulink的16 QAM调制与解调系统进行设计与仿真,得到的结论是:
(1)对16QAM调制解调系统基本原理进行了较为深入的了解与分析,并且根据原理图构建MATLAB/Simulink的仿真模型。
(2)较为熟悉的掌握MATLAB/Simulink软件在通信系统中的设计与仿真的步骤与方法。
(3)通过观察星座图可以看出16QAM的频带利用率比较高,带宽占用比较小。
作为一种现代调制技术,QAM相比较传统调制技术,有着很多优于传统调制技术的特性,使得它在中、大容量数字微波通信系统、有线电视网络高速数据传输、卫星通信系统和蜂窝系统等系统中得到大规模应用,大大提高系统通信质量和通信效率。
MATLAB在通信仿真中有着重要的应用,MATLAB/Simulink是通信系统计算机仿真的强大工具,本文提供了一个实际仿真的例子。
实际的信道是很复杂的,在实际的应用中应根据不同的要求选用不同的调制方式。
本文利用MATLAB/Simulink对M=16进制正交幅度调制系统进行了仿真,从理论上验证16进制正交幅度调制系统工作原理,为实际应用和科学合理地设计正交幅度调制系统,提供了便捷、高效、直观的重要方法。
6.2心得体会
这次课程设计通过运用MATLAB/Simulink软件进行设计仿真,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 原理 课程设计