基于MATLAB下的16QAM仿真.docx
《基于MATLAB下的16QAM仿真.docx》由会员分享,可在线阅读,更多相关《基于MATLAB下的16QAM仿真.docx(9页珍藏版)》请在冰豆网上搜索。
基于MATLAB下的16QAM仿真
基于MATLAB下的16QAM仿真
1.课程设计目的
随着现代通信技术的发展,特别是移动通信技术高速发展,频带利用率问题越来越被人们关注。
在频谱资源非常有限的今天,传统通信系统的容量已经不能满足当前用户的要求。
正交幅度调制QAM(QuadratureAmplitudeModulation)以其高频谱利用率、高功率谱密度等优势,成为宽带无线接入和无线视频通信的重要技术方案。
首先介绍了QAM调制解调原理,提出了一种基于MATLAB的16QAM系统调制解调方案,包括串并转换,2-4电平转换,抽样判决,4-2电平转换和并串转换子系统的设计,对16QAM的星座图和调制解调进行了仿真,并对系统性能进行了分析,进而证明16QAM调制技术的优越性。
2.课程设计要求
(1)设计一个16QAM调制与解调系统。
(2)设计程序时必须使得程序尽可能的简单。
(3)利用MATLAB进行程序编写并对系统进行仿真分析。
3.相关知识
随着现代通信技术的发展,特别是移动通信技术高速发展,新的需求层出不穷,促使新的业务不断产生,因而导致频率资源越来越紧张。
在有限的带宽里要传输大量的多媒体数据,频谱利用率成为当前至关重要的课题,由于具有高频谱利用率、高功率谱密度等优势,16QAM技术被广泛应用于高速数据传输系统.在很多宽带应用领域,比如数字电视广播,Internet宽带接入,QAM系统都得到了广泛的应用。
QAM也可用于数字调制。
数字QAM有4QAM、8QAM、16QAM、32QAM等调制方式。
其中,16QAM和32QAM广泛用于数字有线电视系统。
当今国际市场上出现了采用16QAM调制技术的卫通调制解调器,如美国COMTECHEFDATA公司新推出的CDM-600。
该卫通调制解调器支持速率高达20Mbps[1]。
无线通信技术的迅猛发展对数据传输速率、传输效率和频带利用率提出了更
不同的载频处,以实现信道的多路复用,提高信道利用率。
第三,扩展信号带宽,提高系统抗干扰、抗衰落能力,还可实现传输带宽与信噪比之间的互换。
因此,调制对通信系统的有效性和可靠性有着很大的影响和作用。
解调(也称检波)则是调制的逆过程,其作用是将已调信号中的调制信号恢复出来。
解调的方法可分为两类:
相干解调和非相干解调(包络检波)。
相干解调时,为了无失真地恢复原基带信号,接收端必须提供一个与接收的已调载波严格同步(同频同相)的本地载波。
本课题采用的是相干解调
4.2正交振幅调制系统
它是把2ASK和2PSK两种调制结合起来的调制技术,使得带宽得到双倍扩展。
QAM调制技术用两路独立的基带信号对频率相同、相位正交的两个载波进行抑制载波双边带调幅,并将已调信号加在一起进行传输。
nQAM代表n个状态的正交调幅,一般有二进制(4QAM)、四进制(16QAM)、八进制(64QAM)。
我们需要得到多进制的QAM信号,需将二进制信号转换为m电平的多进制信号,然后进行正交调制,最后相加输出。
图4-1QAM信号产生原理图
QAM信号用正交相干解调方法进行解调,通过解调器将QAM信号进行正交相干解调后,用低通滤波器LPF滤除乘法器产生的高频分量,输出抽样判决后可恢复出的两路独立电平信号,最后将多电平码元与二进制码元间的关系进行
转换,将电平信号转换为二进制信号,经并/串变换后恢复出原二进制基带信号。
16QAM调制框图:
图4-26QAM信号调制框图
16QAM最佳接收框图:
图4-316QAM最佳接收框图
(1)首先生成一个随机且长度为10000的二进制比特流,并画出了前50个比特的信号图(如图17所示)。
(2)在MATLAB中16QAM调制器要求输入的信号为0-15这16个值,所以需要用函数reshape和bi2de将二进制的比特流转换为对应的十六进制信号。
(3)利用MATLAB中的modem.qammod函数生成16QAM调制器,再通过其对信号进行调制并画出信号的星座图。
(4)通过awgn信道在16QAM信号中加入高斯白噪声(假设Eb/No=15db)。
(5)利用MATLAB中的scatterplot函数画出通过信道后接受到的信号的星座图。
(6)利用MATLAB中的eyediagram函数生成经过信道后的眼图。
(7)利用MATLAB中的demodulate和modem.qamdemod函数生成解调器对16QAM信号的解调,并将十六进制信号转化成二进制比特流信息。
(8)用得到比特流信息除以原始发送的比特流信息来计算误码率。
5.仿真
程序如下:
M=16;
k=log2(M);
n=100000;%比特序列长度
samp=1;%过采样率
x=randint(n,1);%生成随机二进制比特流
stem(x(1:
50),'filled');%画出相应的二进制比特流信号
title('二进制随机比特流');
xlabel('比特序列');ylabel('信号幅度');
x4=reshape(x,k,length(x)/k);%将原始的二进制比特序列每四个一组分组,并排列成k行length(x)/k列的矩阵
xsym=bi2de(x4.','left-msb');%将矩阵转化为相应的16进制信号序列
figure;
stem(xsym(1:
50));%画出相应的16进制信号序列
title('16进制随机信号');
xlabel('信号序列');ylabel('信号幅度');
y=modulate(modem.qammod(M),xsym);%用16QAM调制器对信号进行调制
scatterplot(y);%画出16QAM信号的星座图
text(real(y)+0.1,imag(y),dec2bin(xsym));
axis([-55-55]);
EbNo=15;
snr=EbNo+10*log10(k)-10*log10(samp);%信噪比
yn=awgn(y,snr,'measured');%加入高斯白噪声
h=scatterplot(yn,samp,0,'b.');%经过信道后接收到的含白噪声的信号星座图
holdon;
scatterplot(y,1,0,'k+',h);%加入不含白噪声的信号星座图
title('接收信号星座图');
legend('含噪声接收信号','不含噪声信号');
axis([-55-55]);
holdon;
eyediagram(yn,2);%眼图
yd=demodulate(modem.qamdemod(M),yn);%此时解调出来的是16进制信号
z=de2bi(yd,'left-msb');%转化为对应的二进制比特流
z=reshape(z.',numel(z),1');
[number_of_errors,bit_error_rate]=biterr(x,z)
运行结果:
number_of_errors=0
bit_error_rate=0
6.仿真结果:
图6-1二进制随机比特流
图6-216QAM信号序列
图6-316QAM信号的星座图
图6-4含白噪声的信号星座图
图6-5不含白噪声的信号星座图
图6-6眼图
6.主要仪器与设备
装有MATLAB的PC机一台。
7.设计体会
课程设计做完了,总结一下,我想我还是收获了不少。
从一开始选题时的不自信(怕自己做不出)到最后我比较圆满的完成这次课程设计,正好应征了一句老话:
“功夫不负有心人”。
选完题后,我并不知道该如何动手,所以我只有看书。
通过看书,我掌握了16QAM调制与解调的原理并决定从星座图开始入手。
从而最终将系统程序编写出来。
除了掌握了课本上的知识外,通过这次课程设计我更加熟练了MATLAB的使用方法。
从以前一看到MATLAB就郁闷到现在渐渐地喜欢上MATLAB编写程序,我知道了学习的乐趣。
“功夫不负有心人”,即使你遇到了世上再难的事情,只要你有心,你就都会迎刃而解。
8.参考文献
1、樊昌信,曹丽娜。
通信原理(第六版)。
国防工业出版社。
2、孙祥,徐流美,吴清。
MATLAB7.0基础教程。
北京:
清华大学出版社。
3、唐向宏,岳恒立,邓雪峰。
MATLAB及在电子信息类课程中的应用。
电子工业出版社。