基于MATLAB的QAM调制解调实现.docx
《基于MATLAB的QAM调制解调实现.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的QAM调制解调实现.docx(17页珍藏版)》请在冰豆网上搜索。
![基于MATLAB的QAM调制解调实现.docx](https://file1.bdocx.com/fileroot1/2023-2/6/438d33ac-ace0-4313-89a7-e1f907ce4780/438d33ac-ace0-4313-89a7-e1f907ce47801.gif)
基于MATLAB的QAM调制解调实现
基于MATLAB的QAM调制解调实现
学生姓名:
张平凡指导老师:
吴志敏
摘要:
此次课程设计的主要内容为利用MATLAB集成环境下的M文件,编写程序来实现QAM的调制解调,,并绘制出解调前后的时域和频域波形及叠加噪声时解调前后的时频波形,根据运行结果和波形来分析该解调过程的正确性及信道对信号传输的影响。
通过此次课设,我加深了关于正交调幅方面的理论知识,加强了MATLAB软件的操作能力,对以后的实验操作打下了基础。
此次课程设计,旨在提高自己的MATLAB软件编程能力,自学能力,对资料的收集.理解以及总结的能力。
在此次课程设计中,我依托MATLAB为平台,编程实现QAM调制解调的实现,并将相关图形绘制出来,进一步巩固了对课本知识的理解。
关键词:
MATLAB;正交振幅调制;频谱利用率;调制与解调;
1.引言
在现代通信中,提高频谱利用率一直是人们关注的焦点之一。
近年来,随着通信业务需求的迅速增长,寻找频谱利用率高的数字调制方式已成为数字通信系统设计、研究的主要目标之一。
为了提高其性能,人们对这些数字调制体制不断加以改进提出了多种新的调制解调机体。
这些新的调制解调体制,各有所长分别在不同的方面有其优势。
正交振幅调制QAM(Quadrature Amplitude Modulation)就是一种频谱利用率很高的调制方式,正交振幅调制是二进制的PSK、四进制的QPSK调制的进一步推广,通过相位和振幅的联合控制,可以得到更高频谱效率的调制方式,从而可在限定的频带内传输更高速率的数据【1】。
通信原理通信工程的一门重要的专业课,调制与解调又是通信的精髓,调制就是用基带信号去控制载波信号的某个或几个参量的变化,将信息荷载在其上形成已调信号传输,而解调是调制的反过程,通过具体的方法从已调信号的参量变化中将恢复原始的基带信号,QAM(正交振幅调制)是一种振幅和相位联合键控,在MPSK体制中,随着M的增大,相位相邻相位的距离逐渐缩小,使噪声容限随之减小,使误码率难于保证,为了改善在M大的噪声容限,发展出了QAM体制【2】。
正交振幅调制在大容量数字微波通信系统、有线电视网络高速数据传输、卫星通信系统等领域得到了广泛应用。
在移动通信中,随着微蜂窝和微微蜂窝的出现,使得信道传输特性发生了很大变化【3】。
1.1课程设计目的
此次课程设计的主要内容为利用MATLAB集成环境下的M文件,编写程序来实现QAM的调制解调,并绘制出解调前后的时域和频域波形及叠加噪声时解调前后的时频波形,根据运行结果和波形来分析该解调过程的正确性及信道对信号传输的影响。
通过此次课设,我加深了关于正交调幅方面的理论知识,加强了MATLAB软件的操作能力,对以后的实验操作打下了基础。
1.2课程设计要求
(1)熟悉MATLAB软件的使用并编写程序。
(2)绘制并观察出QAM信号解调前后在时域和频域中的波形及其变化,理解调制解调原理。
(3)叠加噪声绘制图形,分析噪声对信号传输造成的影响。
1.3课程设计步骤
(1)运用randint()函数产生一个四进制基带信号。
(2)运用qammod()函数,进行4qam调制。
(3)调用scatterplot()函数,绘制散点图。
(4)叠加噪声后,再解调输出。
(5)绘制时域和频域内的波形,分析结果。
2.QAM调制解调原理
2.1QAM调制原理
QAM(QuadratureAmplitudeModulation):
正交振幅调制。
其映射过程为:
将输入的比特信号按所需的QAM信号来进行M阶映射,分别映射为IQ两路,成为复数符号信息[4]。
QAM调制技术采用振幅和相位进行联合调制,因此单独的使用其中的一种调制,就会演变成其他的调制方式。
对于振幅调制而言[5],其主要作用是控制载波的振幅大小,因此信号的矢量端点在一条轴线上分布;对于相位调制而言,其主要作用是控制载波相位的变化,因此其信号的矢量端点在圆上分布。
QAM信号阶数不断提高,信号矢量点之间的距离就会变小,因此噪声容限也会变小,在判决的时候就很容易发生错误。
图2.1正交振幅调制原理框图
2.2QAM解调原理及方法
利用正交相干解调器,解调器输入端的已调信号与本地恢复的两个正交载波相乘,经过低通滤波器输出两路多电平基带信号X(t)和Y(t),用门限电平为(L-1)的判决器判决后,分别恢复出两路速率为Rb/2的二进制序列,最后经过并/串变换器将两路二进制序列组合为一个速率为Rb的二进制序列【6】。
下图为正交振幅调制解调原理框图:
图2.2正交振幅调制解调原理框图
3.仿真实现过程
以数字信号为例
3.1设计产生四进制基带信号
x=randint(1,N,M);
产生一个四进制基带信号,运用stairs函数画出该序列的时域波形。
图3.1四进制基带信号图
如图,绘制出横轴(0~20),纵轴(-1~5)的四进制基带信号。
由图易知,四进制基带信号取值为0,1,2,3。
3.2编程实现4QAM调制
调用函数:
y=qammod(x,M);
qammod函数实现QAM调制,M等于4,其中qammod为matlab的自带函数,对输入的数字基带信号进行M阶的QAM调制,其输出是一个复数,其实部表示调制后的同相分量(I信号),虚部表示调制后的正交分量(Q分量)。
图3.24QAM信号的实部和虚部图像
由所画的图形可知,调制后的信号实部有两个取值(-11),虚部两个取值(-11),此次设计是进行4QAM调制,所以总共有4种状态。
3.3绘制散点图
调用函数scatterplot(y),绘制信号的散点图,也可称星座图。
图3.3无噪声下的4QAM散点图
4QAM调制输出的是一个复数,该函数实现的调制输出的星座图是一个矩形,输出有4种状态。
3.4编程实现4QAM解调
调用函数:
z=qamdemod(y,M);
与qammod用法格式相似,但功能是实现QAM解调。
其中y是QAM信号,M是与调制阶数相同的解调阶数,z为解调输出的四进制基带信号。
图3.44QAM解调后四进制基带信号图
3.5叠加噪声后,信号的解调
实际生活中的传输信道不可能完全是理想信道,存在加性干扰,噪声将叠加在调制信号上,通过对不同信噪比解调输出信号的分析,可比较不同调制方式的性能。
(2)编程实现
>>y1=awgn(y,20);%在已调信号中加入信噪比为20的高斯白噪声
>>y2=awgn(y,-20);%在已调信号中加入信噪比为-20的高斯白噪声
Awgn:
y=awgn(x,SNR)在信号x中加入高斯白噪声。
信噪比SNR以dB为单位。
x的强度假定为0dBW。
图3.5不同信噪比解调恢复后的四进制基带图像
通过大信噪比解调后恢复的四进制基带信号和小信噪比解调后恢复的四进制基带信号与原四进制基带信号相比较,可以得出:
大信噪比情况下能无差错的恢复原信号,说明4QAM对该种信噪比下的信道具有较强的适应能力,小信噪比情况下已不能恢复原信号。
从图中可看出,出现了许多的误判情况。
图3.6大信噪比下的散点图
图3.7小信噪比下的散点图
由图3.6和图3.7对比不难看出,当信噪比越小时,散点图越混乱,混乱而模糊的图形是由噪声干扰而形成的。
理想信道调制后信号的星座图是一个矩形,大信噪比下调制后输出信号出现偏差,但由大信噪比调制输出的星座图可以看出其偏差还在噪声容限范围内,所以大信噪比下能够无差错得到恢复原信号;小信噪比的调制输出信号的散点图已经不在噪声容限范围内,故不能恢复原信号。
3.6绘制频谱图,进行分析
调用函数:
xw=fft(x,100000);用fft()函数来求序列的傅里叶变换。
fs=1000HZ,为采样频率
数据点数N=100000。
通过plot函数绘制四进制基带信号频域波形。
图3.8基带信号和无噪声解调后的基带信号频谱图
图3.9不同信噪比解调后恢复四进制的基带信号频谱图
由图3.8可知,在无噪声下,解调后信号与调制信号频域波形一致,输入的为四进制基带信号,由理论知识可知频率集中在0(低频)处。
由图3.9可知,大信噪比下的解调信号频谱与原基带信号频谱基本一致,而小信噪比下的解调信号频谱与原基带信号频谱波形上有较大的区别。
这也印证了之前的结论:
大信噪比情况下能无差错的恢复原信号,说明4QAM对该种信噪比下的信道具有较强的适应能力,小信噪比的情况下已不能恢复原信号。
故小信噪比下的频谱图已与原频谱图和大信噪比下的频谱图,波形有了很大差别。
3.7误码率分析
调用函数:
[br,Pe(i)]=symerr(x,z3);得到信噪比与误码率之间的关系。
semilogy(SNR,Pe);调用semilogy函数绘制信噪比与误码率的关系曲线。
下图为信噪比与误码率的关系曲线图:
图3.10信噪比与误码率的关系曲线图
由信噪比与误码率的关系曲线可知,信噪比与误码率呈反比例的关系,随着信噪比的增大,误码率减小。
并且从该关系图中我们可以得到随着信噪比的增大,误码率减小的速率将加快。
4.遇到的问题及解决办法
刚开始时,我翻阅教材,查阅关于QAM的有关内容,但书本较简略,我难以形成深刻的理解,这是我的第一个问题。
所以,我选择上网查阅相关资料和源程序,加深理解。
而后就是具体的函数理解和编程了,通过学习任务指导书中的函数介绍,我了解了各种函数的用法和格式,比如qammod,qamdemod,awgn等函数,并将其运用。
在此过程中,我从同学那里学来,可以直接输入“helpqammod”,MATLAB自动生成qammod函数的简介,我可以直接得知其用法,这给我的编程提供了很大的便利。
在数字信号的调制解调中,我先尝试编程产生一个二进制序列,然而我在reshape函数的使用上,出现了编程错误,错误如下图:
图4.1编程错误图
所以,在老师的指导下,我选择直接产生一个四进制基带信号,这样不仅避开了错误,更使程序设计更为简单。
在论文的编写中,我的行文思路也有很大的问题,条理不清晰。
在老师和同学的帮助指导下,我改变了论文结构,适当增加了截图文件,改进了自己的文字表述,使论述更加清晰。
在论文排版和字体上,我也有不少问题,大多是没按要求来。
而后,我严格按照任务指导书的要求,规范字体大小,行距,使论文看起来美观。
5.结束语
对该课设作一总结,并写出在整个过程中所做的具体工作以及完成之后的心得!
通过此次课设,我加深了关于正交调幅方面的理论知识,加强了MATLAB软件的操作能力,对以后的实验操作打下了基础。
首先,我查阅书本资料,粗略了解QAM调制解调的原理和方法。
而后,我查询网络资料,详细地了解QAM的应用背景和相关技术。
随后,我着手设计程序,通过网络上的程序,我自己编写了一套程序,期间,我不断向老师同学请教,不断完善自己的程序。
期间出现很多问题,我也进行了更正和反思。
但是,我无法做到十全十美,如果有纰漏,也在所难免。
在整个课程设计任务中,我严格按照任务指导书要求,学习并操练相关知识和技能。
在此过程中,我遇到了不少问题,程序也是反复修改。
所以,我一直向老师和同学请教,不断查询书籍和网络资料,收获颇多。
第一次做课程设计,难免会有很多纰漏,但我会不断学习完善,不断加强自身技能,才能迎接更多挑战。
只有努力学好专业知识与技能才能在通信领域施展才华,崭露头角,开创属于自己的天地!
现在我们学习了专业基础课,了解了通信工程研究的内容和发展方向,我们需要结合自己的实际选定一个方向然后不懈努力才能在毕业后有所专长,有所创造,才能进入自己理想的企事业单位实习工作高升,才能发展自己的事业!
短短两周的实习,坚定了我们学好本专业的信心,强化了我们手脑并用的能力,开阔了我们的理论思维。
也感谢同学老师在学习过程中对我的指导和批评,只有相互学习,我们才能攀登更高峰!
参考文献
[1]黄文梅,熊桂林,杨勇.信号分析与处理—MATLAB语言及应用.长沙:
国防科技大学出版社,2000.
[2]唐向宏,岳恒立,郑雪峰.MATLAB及在电子信息类课程中的应用.北京:
电子工业出版社,2006,8.
[3]邓华.MATLAB通信仿真及应用实例详解.人民邮电出版社,2003.
[4]张辉,曹丽娜.通信原理学习指导[M].西安电子科技大学,2002:
111-121
[5]徐明远,邵玉斌等.MATLAB仿真在通信与电子工程中的应用[M].西安电子科技大学出版社,2005:
24-25.
[6]张磊,郭莲英.MATLAB实用教程[M].人民邮电出版社,2008:
53-58.
[7]宋烈武.通信原理课程设计[J].电子工业出版社,2009.5.4-55.
[8]郭仕剑.数字信号处理[M],人民邮电出版社,2006:
105-107.
[9]调制解调的MATLAB实现[M].电子工业出版社,2007:
72-75.
[10]存用MATLAB产生正态分布随机噪声来测量直扩系统抗噪性[J],2010:
10-12.
附录:
QAM调制解调程序清单
%程序名称:
QAM.m
%程序功能:
调用函数qammod,qamdemod实现QAM调制与解调
%程序作者:
张平凡
%最后修改时间:
2016-12-30
%=====================
程序代码
N=100000;%定义基本参数
M=4;
fs=1000;
x=randint(1,N,M);
y=qammod(x,M)
z=qamdemod(y,M);
y1=awgn(y,20);z1=qamdemod(y1,M);%yl=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');
y2=awgn(y,-20);z2=qamdemod(y2,M);
%画实域频域频谱
xw=fft(x,100000);
mag_xw=abs(xw);
zw=fft(z,100000);
mag_zw=abs(zw);
z1w=fft(z1,100000);
mag_z1w=abs(z1w);
z2w=fft(z2,100000);
mag_z2w=abs(z2w);
fs=1000;N=100000;
n=0:
N-1;
f=n*fs/N;
%叠加噪声和误码分析
SNR=-10:
10
fori=1:
length(SNR);
y3=awgn(y,SNR(i));%加入高斯小噪声,信噪比从-10dB到10dB
z3=qamdemod(y3,M);%调用数字带通解调函数ddemod对加噪声信号进行解调
[br,Pe(i)]=symerr(x,z3)%对解调后加大噪声信号误码分析,br为符号误差数,Pe(i)为符号误差率
end
figure
(1)
stairs(x);title('四进制基带信号');xlabel('时间t');ylabel('序列值');axis([120-15]);gridon
figure
(2)
subplot(211);stairs(real(y));title('QAM信号实部');axis([120-33]);gridon
subplot(212);stairs(imag(y));title('QAM信号虚部');axis([120-33]);gridon
figure(3);
stairs(z);title('QAM解调后四进制基带信号');xlabel('时间t');ylabel('序列值');axis([120-15]);gridon
figure(4);
subplot(3,1,1);stairs(x);title('四进制基带信号');xlabel('时间t');ylabel('序列值');axis([120-14]);gridon
subplot(3,1,2);stairs(z1);title('大信噪比解调恢复四进制基带信号');xlabel('时间t');ylabel('序列值');axis([120-14]);gridon
subplot(3,1,3);stairs(z2);title('小信噪比解调恢复四进制基带信号');xlabel('时间t');ylabel('序列值');axis([120-14]);gridon
figure(5);
subplot(211);plot(f,mag_xw);title('四进制基带信号频谱');xlabel('频率f');ylabel('幅度值');axis([0104500]);gridon
subplot(212);plot(f,mag_zw);title('无噪声下QAM解调后四进制基带信号频谱');xlabel('频率f');ylabel('幅度值');axis([0104500]);gridon
figure(6)
subplot(211);plot(f,mag_z1w);title('大信噪比QAM解调恢复四进制基带信号频谱');xlabel('频率f');ylabel('幅度值');axis([0104500]);gridon
subplot(212);plot(f,mag_z2w);title('小信噪比QAM解调恢复四进制基带信号频谱');xlabel('频率f');ylabel('幅度值');axis([0104500]);gridon
figure(7)
semilogy(SNR,Pe);%调用semilogy函数绘制信噪比与误码率的关系曲线
xlabel('信噪比SNR(r/dB)');
ylabel('误码率Pe');
title('信噪比与误码率的关系');
axis([-101001])
gridon
scatterplot(y)%理想调制输出
scatterplot(y1)%大信噪比调制输出
scatterplot(y2)%小信噪比调制输出