正交幅度调制(QAM)及解调Matlab仿真讲解
基于MATLAB的QAM调制解调技术分析解读

基于MA TLAB的QAM调制解调技术分析基于MATLAB的QAM调制解调技术分析【摘要】当今频谱资源很大一部分已经被利用,随着用户数量的不断增加,对业务需求量不断地提高,在所剩无几的频谱资源如何才能够承载用户的需求,QAM 凭借着自身高频谱利用率,低误码率,抗干扰性极强等优势已经被国际上众多移动专家所关注与研究。
本次毕业设计所研究的课题是基于MATLAB的QAM的调制与解调技术分析,着重研究与分析QAM调制与解调过程中所涉及的各个模块,其中发射端包括二进制信号输入模块,电平转换模块,串并转换模块,信号调制模块,信号解调模块,每个模块都是通过MATLAB建立子函数来实现来模拟实现,其中加进了星座图,眼图,频谱图,误码率曲线图来对比分析不同调制进制的QAM调制系统性能,同时在这个基础上给系统加上高斯白噪声,对加噪后[1]。
系统进行如上的相同的分析【关键词】:QAM,MATLAB,调制与解调,星座图,眼图,误码率基于MA TLAB的QAM调制解调技术分析QAM Modulation and Demodulation Analysis Base onMATLAB【Abstract 】Today, a large part of the spectrum resources has already been used, as thenumber of users and the demand for business constantly increasing, QAM relying on its highspectrum utilization ratio and low error rate, strong anti-interference advantages catch numerousmobile experts concern and do research on it. The graduation design research topic is QAMmodulation and demodulation technology base on MATLAB, this paper studies and analysis ofQAM modulation and demodulation process involved each module, including the binarytransmitting terminal input module, level conversion module, string and conversion module,signal modulation module, signal demodulation module, every module is established throughMATLAB to realize, this process included a constellation diagram, eye diagram, the frequencyspectrum graph, bit error rate curve to analysis different level modulation system of QAMperformance, at the same time, add gaussian white noise on the previous signal , and do the sameanalysis like preceding [1].【keywords】QAM,MATLAB,modulation and demodulation, constellation diagram, bit errorrate基于MA TLAB的QAM调制解调技术分析【目录】第一章:绪论11 1.1QAM背景、研究目的及意义2 的最新研究状况 1.2 QAM3 1.3本文研究的内容及结构4 第二章:MATLAB的简介4 的简述和基本功能 2.1MATLAB 4 2.2MATLAB应用平台结构4 2.3MATLAB的优势5 2.4MATLAB 的应用领域6 第三章:正交振幅系统6 3.1调制与解调6 3.1.1调制简介3.1.2解调简介 67 3.1.3数字通信系统构成及各模块的说明8 3.2QAM系统的简介8 3.2.1QAM调制和星座图简介10 3.2.2串/ 并简介10 3.2.3形成载波11 3.2.4 QAM调制信号的形成11 正交调幅的解调和判决3.2.512 的优缺点3.3QAM13 的主要应用领域 3.4QAM14 的误码率性能分析 3.5QAM15 3.6QAM 眼图17 仿真16QAM第四章:1716QAMMATLAB4.1 基于的仿真174.1.1信号源17 电平转换4.1.219调制4.1.3QAM基于MA TLAB的QAM调制解调技术分析4.1.4 16QAM星座图1921 4.1.5 16QAM频谱22 加入高斯白噪声系统仿真 4.2对16QAM22 4.2.116QAM系统加入高斯白噪声后的星座图23 在不同信道噪声强度下的误码率 4.2.216QAM24 4.2.316QAM在高斯信道中的性能25 基于MATLAB的的仿真MQAM4.325 信号源4.3.126 电平转换 4.3.226 4.3.3MQAM星座图27 4.3.4 MQAM在高斯信道中的性能28 4.3.5不同进制调制的眼图对比30 MQAM的性能对比 4.4 16QAM与31 总结与展望32 致谢33参考文献34附录基于MA TLAB的QAM调制解调技术分析第一章:绪论1.1QAM(背景、研究目的及意义)Quadrature Amplitude Modulation随着频带资源的日益减少,加上用户数量不断增加对业务需求量不断提高,在剩余的频带中,如何充分利用频带,成为迫在眉睫的话题。
基于MATLAB下的QAM仿真

基于MATLAB下的QAM仿真————————————————————————————————作者:————————————————————————————————日期:1.课程设计目的随着现代通信技术的发展,特别是移动通信技术高速发展,频带利用率问题越来越被人们关注。
在频谱资源非常有限的今天,传统通信系统的容量已经不能满足当前用户的要求。
正交幅度调制QAM(Quadrature Amplitude Modulation)以其高频谱利用率、高功率谱密度等优势,成为宽带无线接入和无线视频通信的重要技术方案。
首先介绍了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调制技术的卫通调制解调器,如美国COMTECH EF DATA公司新推出的CDM-600。
该卫通调制解调器支持速率高达20Mbps[1]。
基于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】。
基于MATLAB的正交幅度调制系统仿真

23
表 4
错误统计器 ( Error Ra te Ca lcula tion ) 的参数设置 参数名称 参数值 设置为 0 设置为 0 选择帧计算模式 选择把输出数据送到工作区 设置为存放数据变量名
参数值 进制数 , M = 2 ″ n ≥1 任意正整数 1 /码元速率 不选择 不选择 码元速率
在通信系统中使用的两个主要资源是发射功率 和信道带宽 。以往在设计微波无线和卫星通信系统 时 ,是按照功率受限信道来选择信道调制技术 。但 随着移动用户数迅速增长以及高速移动数据传输等 需要 ,无线通信频带资源日趋紧张 ,研究和设计自适 应信道调制技术体制是建立宽带移动通信网络中的 关键技术 。由于幅度相位联合键控方式 ( APK ) 是 一种功率和带宽相对高效的信道调制技术 , 在自适 应信道调制技术中应用较多 。自适应调制 ( AM ) 的 基本原理就是优选调制方式 , 并使它在系统限制范 围内和信道条件相适应 。它需要建立调制方式与信 道条件的关系数据 ,在通信系统工作时 ,不断地把实
i =1
具 ,工具箱中提供有丰富的通信模块 , 基于 MAT2 LAB / Sim ulink 通信系统仿真 , 仿真模块的设计过程 是从对 Sim ulink 模型库中各个模块的一种组合 。设 计仿 真 模 型 , 可 以 直 接 用 鼠 标 从 Sim ulink L ibrary B row ser 窗口拖到模型编辑窗口 ,将各模块正确地连 接起来 ,再双击模块 , 弹出该模块的参数对话框 , 修 改模块中各个参数的数值即完成系统仿真模型的建 立。 MATLAB / Si m ulink - comm unications 工 具 箱 中 D igital modulation 中有各种数字调制 /解调器模块 。 其中 ,有基带 ( baseband ) 和通带 ( passband ) 模块之 分 。通带仿真的载波信号包含在模型的发射部分 , 载 波 频 率 通 常 远 远 高 于 信 号 的 最 高 频 率 。由 Nyquist抽样定理可知 , 为了能在接收端恢复原信 号 ,仿真中的抽样频率应至少为载波频率最大值的 两倍 。如果信号频率很高 , 则仿真会变得非常慢或 无法直接进行计算机模拟 。基带仿真一般称为低通 等效法仿真 ,将带通信号等效为基带信号 ,使得调制 和解调性能分析与载波频率和信道频段无关 , 从而 [3] 减少系统资源的占用 。本文采用基带仿真 , 由于 它使用的是通带信号的复数包络 , 所以不能用示波 器观察调制信号波形 。 在 MATLAB / Sim ulink - comm unications/Modula2 tion /D igital B aseband Modulation /AM 工具箱中 4 种 QAM 调制 /解调器 。采用基带正交幅度调制仿真模 型如图 1,仿真模型中各模块参数设置如表 1 ~4 所 示。
MATLAB环境下16QAM调制及解调仿真程序说明

创作编号:BG7531400019813488897SX创作者:别如克*姓名:NikeyMATLAB环境下16QAM调制及解调仿真程序说明一、正交调制及相干解调原理框图正交调制原理框图相干解调原理框图二、MQAM调制介绍及本仿真程序的几点说明MQAM可以用正交调制的方法产生,本仿真中取M=16,即幅度和相位相结合的16个信号点的调制。
为了观察信道噪声对该调制方式的影响,我们在已调信号中又加入了不同强度的高斯白噪声,并统计其译码误码率。
为了简化程序和得到可靠的误码率,我们在解调时并未从已调信号中恢复载波,而是直接产生与调制时一模一样的载波来进行信号解调。
三、仿真结果图附源程序代码:main_plot.mclear;clc;echo off;close all;N=10000; %设定码元数量fb=1; %基带信号频率fs=32; %抽样频率fc=4; %载波频率,为便于观察已调信号,我们把载波频率设的较低Kbase=2; % Kbase=1,不经基带成形滤波,直接调制;% Kbase=2,基带经成形滤波器滤波后,再进行调制info=random_binary(N); %产生二进制信号序列[y,I,Q]=qam(info,Kbase,fs,fb,fc); %对基带信号进行16QAM调制y1=y; y2=y; %备份信号,供后续仿真用T=length(info)/fb; m=fs/fb; nn=length(info);dt=1/fs; t=0:dt:T-dt;subplot(211);%便于观察,这里显示的已调信号及其频谱均为无噪声干扰的理想情况%由于测试信号码元数量为10000个,在这里我们只显示其总数的1/10plot(t(1:1000),y(1:1000),t(1:1000),I(1:1000),t(1:1000),Q(1:1000),[0 35],[0 0],'b:');title('已调信号(In:red,Qn:green)');%傅里叶变换,求出已调信号的频谱n=length(y); y=fft(y)/n; y=abs(y(1:fix(n/2)))*2;q=find(y<1e-04); y(q)=1e-04; y=20*log10(y);f1=m/n; f=0:f1:(length(y)-1)*f1;subplot(223);plot(f,y,'r');grid on;title('已调信号频谱'); xlabel('f/fb');%画出16QAM调制方式对应的星座图subplot(224);constel(y1,fs,fb,fc); title('星座图');SNR_in_dB=8:2:24; %AWGN信道信噪比for j=1:length(SNR_in_dB)y_add_noise=awgn(y2,SNR_in_dB(j)); %加入不同强度的高斯白噪声y_output=qamdet(y_add_noise,fs,fb,fc); %对已调信号进行解调numoferr=0;for i=1:Nif (y_output(i)~=info(i)),创作编号:BG7531400019813488897SX创作者:别如克*numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; %统计误码率end;figure;semilogy(SNR_in_dB,Pe,'red*-');grid on;xlabel('SNR in dB');ylabel('Pe');title('16QAM调制在不同信道噪声强度下的误码率');random_binary.m%产生二进制信源随机序列function [info]=random_binary(N)if nargin == 0, %如果没有输入参数,则指定信息序列为10000个码元N=10000;end;for i=1:N,temp=rand;if (temp<0.5),info(i)=0; % 1/2的概率输出为0elseinfo(i)=1; % 1/2的概率输出为1endend;qam.mfunction [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);if Kbase==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); %调制qamdet.m%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([In Qn]);%I分量Q分量并/串转换,最终恢复成码元序列xnnn=length(xn); xn=[xn(1:nn/2);xn(nn/2+1:nn)];xn=xn(:); xn=xn';bshape.m%基带升余弦成形滤波器function y=bshape(x,fs,fb,N,alfa,delay);%设置默认参数if nargin<6; delay=8; end;if nargin<5; alfa=0.5; end;if nargin<4; N=16; end;b=firrcos(N,fb,2*alfa*fb,fs);y=filter(b,1,x);two2four.m创作编号:BG7531400019813488897SX创作者:别如克*%二进制转换成四进制function [y,yn]=two2four(x,m);T=[0 1;3 2]; n=length(x); ii=1;for i=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;for i=1:m-1;y=[y;yn];end;y=y(:)'; %映射电平分别为-1.5;0.5;0.5;1.5four2two.m%四进制转换成二进制function xn=four2two(yn);y=yn; ymin=min(y); ymax=max(y); ymax=max([ymax abs(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); y n(I1)=ones(size(I1));I2=find(yn>=1.5 & yn<2.5); y n(I2)=ones(size(I2))*2;I3=find(yn>=2.5); yn(I3)=ones(size(I3))*3;%一位四进制码元转换为两位二进制码元T=[0 0;0 1;1 1;1 0]; n=length(yn);for i=1:n;xn(i,:)=T(yn(i)+1,:);end;xn=xn'; xn=xn(:); xn=xn';constel.m%画出星座图function c=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;while i <= N/m;xi=x(i1:i1+n-1);y=2*fft(xi)/n; c(i)=y(2);i=i+1; i1=i1+m;end;%如果无输出,则作图if nargout<1;cmax=max(abs(c));ph=(0:5:360)*pi/180;plot(1.414*cos(ph),1.414*sin(ph),'c');hold on;for i=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.5 1.5],[0 0],'k:',[0 0],[-1.5 1.5],'k:');hold off; axis equal; axis([-1.5 1.5 -1.5 1.5]);end;创作编号:BG7531400019813488897SX创作者:别如克*。
基于matlab的正交振幅调制与解调仿真分析文档

基于matlab的正交振幅调制与解调仿真分析文档it168文库文档会议文集图书全部 DOC PDF PPT XLS TXT我要上传当前已有1161330份文档首页分类浏览文集排行榜合作机构会议图书iPad客户端文库首页基于MATLAB的正交振幅调制与解调仿真分析.doc相关文档共94条,当前页显示 0-30基于MATLAB的正交振幅调制与解调仿真分析7>2013-03-19摘要:MATLAB由于其强大的功能而被广泛应用于很多工程技术领域,尤其在通信和信息处理领域更有其突出地位。
众所周知,在物理级的产品作出之前,先用MATLAB进行这种电子产品的输入输出以估计这种产品的性能好坏,从而可以看出什么地方需要从新设计,什么地方需要优化等来进一步提高系统的性能,因此,伴标签:QA 信号仿真 MATLAB 通信分类:网络通信-嵌入式开发贡献者:he97yuyu| 下载: 0次评分: 收藏到书房基于MATLAB的正交振幅调制与解调仿真分析2013-03-19摘要:MATLAB由于其强大的功能而被广泛应用于很多工程技术领域,尤其在通信和信息处理领域更有其突出地位。
众所周知,在物理级的产品作出之前,先用MATLAB进行这种电子产品的输入输出以估计这种产品的性能好坏,从而可以看出什么地方需要从新设计,什么地方需要优化等来进一步提高系统的性能,因此,伴标签:QA 信号仿真 MATLAB 通信分类:软件与测试-C/C++贡献者:OraBSD| 下载: 0次评分: 收藏到书房基于MATLAB模拟调制系统的仿真2013-03-20MATLAB模拟调制系统的仿真标签:调制系统 MATLAB分类:软件与测试调研报告贡献者:lo岁月静好ve| 下载: 0次评分: 收藏到书房MATLAB实现信号的调制与解调2012-07-20MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
M—QAM通信系统及matlab的仿真

五.M-QAM在有线电视网的应用
■ 目前应用的比较广泛的是基于有线电视网络的 Cable Modem系统,其基本架构如图所示。有线 电视网络通过Cable Modem终端系统(CMTS)与 互联网络连接。
■ 对应于各种可能的符号数M,有两种不同的 QAM星座图,当每个符号对应于偶数个比特 时,星座图是正方形的;当每个符号对应于 奇数个比特时,星座图是十字行的。
1.QAM正方形星座图
当每个符号对应于偶数个比特时,有 其中,L为正整数。对于具有正方形星座图QAM, 有序坐标对通常构成一个正方形的矩阵
在实际中,常用的一种QAM信号空间如图, 方形QAM,4QAM,16QAM,64QAM
■ 在接收端,输入信号与本地恢复的两个正 交载波信号相乘以后,经过低通滤波器、多 电平判决、L电平到2电平变换,再经过并/串 变换就得到输出数据。
三.QAM的星座图
■ 对于QAM调制而言,如何设计QAM信号的结 构不仅影响到已调信号的功率谱特性,而且 影响已调信号的解调及其性能。因而研究 QAM的星座图来设计信号的结构显得十分重 要。
QAM中的振幅Am和Bm,可以表示成: Am=dmA,Bm=emA
式中,A是固定的振幅,(dm,em)决定已 调QAM信号在信号空间中的坐标点
二.QAM的调制和相干解调
■ QAM的调制和相干解调如图一。在调制端, 输入数据经过串/并变换后分为两路,分别经 过2电平到L电平的变换,形成Am和Bm,之后 Am和Bm经过调制低通滤波器,与相互正交的各 路载波相乘。最后将两个信号相加就可以得 到已调输出信号y(t).
MATLAB环境下16QAM调制及解调仿真程序说明

姓名:NikeyMATLAB环境下16QAM调制及解调仿真程序说明一、正交调制及相干解调原理框图正交调制原理框图相干解调原理框图二、MQAM调制介绍及本仿真程序的几点说明MQAM可以用正交调制的方法产生,本仿真中取M=16,即幅度和相位相结合的16个信号点的调制。
为了观察信道噪声对该调制方式的影响,我们在已调信号中又加入了不同强度的高斯白噪声,并统计其译码误码率。
为了简化程序和得到可靠的误码率,我们在解调时并未从已调信号中恢复载波,而是直接产生与调制时一模一样的载波来进行信号解调。
三、仿真结果图附源程序代码:clear;clc;echo off;close all;N=10000; %设定码元数量fb=1; %基带信号频率fs=32; %抽样频率fc=4; %载波频率,为便于观察已调信号,我们把载波频率设的较低Kbase=2; % Kbase=1,不经基带成形滤波,直接调制;% Kbase=2,基带经成形滤波器滤波后,再进行调制info=random_binary(N); %产生二进制信号序列[y,I,Q]=qam(info,Kbase,fs,fb,fc); %对基带信号进行16QAM调制y1=y; y2=y; %备份信号,供后续仿真用T=length(info)/fb; m=fs/fb; nn=length(info);dt=1/fs; t=0:dt:T-dt;subplot(211);%便于观察,这里显示的已调信号及其频谱均为无噪声干扰的理想情况%由于测试信号码元数量为10000个,在这里我们只显示其总数的1/10plot(t(1:1000),y(1:1000),t(1:1000),I(1:1000),t(1:1000),Q(1:1000),[0 35],[0 0],'b:'); title('已调信号(In:red,Qn:green)');%傅里叶变换,求出已调信号的频谱n=length(y); y=fft(y)/n; y=abs(y(1:fix(n/2)))*2;q=find(y<1e-04); y(q)=1e-04; y=20*log10(y);f1=m/n; f=0:f1:(length(y)-1)*f1;subplot(223);plot(f,y,'r');grid on;title('已调信号频谱'); xlabel('f/fb');%画出16QAM调制方式对应的星座图subplot(224);constel(y1,fs,fb,fc); title('星座图');SNR_in_dB=8:2:24; %AWGN信道信噪比for j=1:length(SNR_in_dB)y_add_noise=awgn(y2,SNR_in_dB(j)); %加入不同强度的高斯白噪声y_output=qamdet(y_add_noise,fs,fb,fc); %对已调信号进行解调numoferr=0;for i=1:Nif (y_output(i)~=info(i)),numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; %统计误码率end;figure;semilogy(SNR_in_dB,Pe,'red*-');grid on;xlabel('SNR in dB');ylabel('Pe');title('16QAM调制在不同信道噪声强度下的误码率');%产生二进制信源随机序列function [info]=random_binary(N)if nargin == 0, %如果没有输入参数,则指定信息序列为10000个码元 N=10000;end;for i=1:N,temp=rand;if (temp<,info(i)=0; % 1/2的概率输出为0elseinfo(i)=1; % 1/2的概率输出为1endend;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);if Kbase==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); %调制%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([In Qn]);%I分量Q分量并/串转换,最终恢复成码元序列xnnn=length(xn); xn=[xn(1:nn/2);xn(nn/2+1:nn)];xn=xn(:); xn=xn';%基带升余弦成形滤波器function y=bshape(x,fs,fb,N,alfa,delay);%设置默认参数if nargin<6; delay=8; end;if nargin<5; alfa=; end;if nargin<4; N=16; end;b=firrcos(N,fb,2*alfa*fb,fs);y=filter(b,1,x);%二进制转换成四进制function [y,yn]=two2four(x,m);T=[0 1;3 2]; n=length(x); ii=1;for i=1:2:n-1;xi=x(i:i+1)+1;yn(ii)=T(xi(1),xi(2));ii=ii+1;end;yn=; y=yn;for i=1:m-1;y=[y;yn];end;y=y(:)'; %映射电平分别为;;;%四进制转换成二进制function xn=four2two(yn);y=yn; ymin=min(y); ymax=max(y); ymax=max([ymax abs(ymin)]); ymin=-abs(ymax); yn=(y-ymin)*3/(ymax-ymin);%设置门限电平,判决I0=find(yn< ; yn(I0)=zeros(size(I0)); I1=find(yn>= & yn<; yn(I1)=ones(size(I1)); I2=find(yn>= & yn<; yn(I2)=ones(size(I2))*2; I3=find(yn>=; yn(I3)=ones(size(I3))*3; %一位四进制码元转换为两位二进制码元T=[0 0;0 1;1 1;1 0]; n=length(yn);for i=1:n;xn(i,:)=T(yn(i)+1,:);end;xn=xn'; xn=xn(:); xn=xn';%画出星座图function c=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;while i <= N/m;xi=x(i1:i1+n-1);y=2*fft(xi)/n; c(i)=y(2);i=i+1; i1=i1+m;end;%如果无输出,则作图if nargout<1;cmax=max(abs(c));ph=(0:5:360)*pi/180;plot*cos(ph),*sin(ph),'c');hold on;for i=1:length(c);ph=ph0-angle(c(i));a=abs(c(i))/cmax*;plot(a*cos(ph),a*sin(ph),'r*');end;plot([ ],[0 0],'k:',[0 0],[ ],'k:');hold off; axis equal; axis([ ]);end;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正交幅度调制(QAM)及解调Matlab仿真实验目的:1.掌握QAM及解调原理与特性;2.了解星座图的原理及用途。
实验内容:1.编写MATLAB程序仿真QAM及相干解调;2.观察I、Q两路基带信号的特征及与输入NRZ码上网关系;3.观察I、Q调制过程中信号的变化;4.观察星座图在不同噪声环境下的变化;5.分析仿真中观察的数据,撰写实验报告。
仿真代码:function project(N,p)%N为待仿真序列的长度%p为产生1的概率%======================%首先产生随机二进制序列N=input('输入二进制序列的长度:N=');p=input('输入产生1的概率:');source=randsrc(1,N,[1,0;p,1-p]);figure(1);stem(source);axis([1 N -1 2]);%对产生的二进制序列进行QAM调制[source1,source2]=Qam_modulation(source);%===============================%画出星座图figure(2);plot_astrology(source1,source2);%==============================%两路信号进行插值(8倍过采样)sig_insert1=insert_value(source1,8);sig_insert2=insert_value(source2,8);%================================%画出两路信号的波形图figure(3);plot_2way(sig_insert1,sig_insert2,length(sig_insert1),0.5);title('两路信号波形');%================================%通过低通滤波器[sig_rcos1,sig_rcos2]=rise_cos(sig_insert1,sig_insert2,0.25,2);%================================%画出两路信号信号波形图figure(4);plot_2way(sig_rcos2,sig_rcos2,length(sig_rcos1)/4,0.5);title('通过低通滤波器后两路信号波形图')hold onstem_2way(sig_insert1,sig_insert2,3,0.25,2,length(sig_rcos1)/4); %================================%将基带信号调制到高频上[t,sig_modulate]=modulate_to_high(sig_rcos1,sig_rcos2,0.25,2.5); figure(5);plot(t(1:500),sig_modulate(1:500));title('载波调制信号图');%================================%将滤波后的信号加入高斯噪声snr=10;[x1,x2]=generate_noise(sig_rcos1,sig_rcos2,snr);sig_noise1=x1';sig_noise2=x2';figure(6);plot_2way(sig_noise1,sig_noise2,length(sig_noise1)/4,0.5);title('加入高斯白噪声后的两路信号波形');%================================%经过匹配滤波器[sig_match1,sig_match2]=rise_cos(sig_noise1,sig_noise2,0.25,2); figure(7);plot_2way(sig_match1,sig_match2,length(sig_match1)/4,0.5); title('经过匹配滤波器后');%================================%采样[x1,x2]=pick_sig(sig_match1,sig_match2,8);sig_pick1=x1;sig_pick2=x2;%画出星座图figure(8)plot_astrology(sig_pick1,sig_pick2);%================================%解调signal=demodulate_sig(sig_pick1,sig_pick2);r=signal;%画出解调后的信号figure(9);stem(r);axis([1 N -1 2]);demodulate_sigfunction y=demodulate_sig(x1,x2)%解调xx1(find(x1>=2))=3;xx1(find((x1<2)&(x1>=0)))=1;xx1(find((x1>=-2)&(x1<0)))=-1;xx1(find(x1<-2))=-3;xx2(find(x2>=2))=3;xx2(find((x2<2)&(x2>=0)))=1;xx2(find((x2>=-2)&(x2<0)))=-1;xx2(find(x2<-2))=-3;temp1=zeros(1,length(xx1)*2);temp1(find(xx1==-1)*2)=1;temp1(find(xx1==1)*2-1)=1;temp1(find(xx1==1)*2)=1;temp1(find(xx1==3)*2-1)=1;temp2=zeros(1,length(xx2)*2);temp2(find(xx2==-1)*2)=1;temp2(find(xx2==1)*2-1)=1;temp2(find(xx2==1)*2)=1;temp2(find(xx2==3)*2-1)=1;n=length(temp1);for i=1:2:2*n-1y(i)=temp1((i+1)/2);y(i+1)=temp2((i+1)/2);endgenerate_noisefunction [y1,y2]=generate_noise(x1,x2,snr)snr1=snr+10*log10(4);ss=var(x1+i*x2,1);y=awgn([x1+j*x2],snr1+10*log10(ss/10),'measured'); y1=real(y);y2=imag(y);insert_valuefunction y=insert_value(x,ratio)%对两路信号进行插值y=zeros(1,ratio*length(x));a=1:ratio:length(y);y(a)=x;modulate_to_highfunction [t,y]=modulate_to_high(x1,x2,f,hf)yo1=zeros(1,length(x1)*hf/f*10);yo2=zeros(1,length(x1)*hf/f*10);n=1:length(yo1);yo1(n)=x1(floor((n-1)/(hf/f*10))+1);yo2(n)=x1(floor((n-1)/(hf/f*10))+1);t=(1:length(yo1))/hf*f/10;y=yo1.*cos(2*pi*hf*t)-yo2.*sin(2*pi*hf*t);pick_sigfunction [y1,y2]=pick_sig(x1,x2,ratio)%采样y1=x1(ratio*3*2+1:ratio:(length(x1)-ratio*3*2)); y2=x2(ratio*3*2+1:ratio:(length(x2)-ratio*3*2));plot_2wayfunction plot_2way(x1,x2,len,t)%绘制正交信号图subplot(2,1,2);plot((1:len)*t,x2(1:len));axis([0 len*t -4 4]);hold on;plot((1:len)*t,x2(1:len),'.','Color','red');hold off;xlabel('虚部信号');subplot(2,1,1);plot((1:len)*t,x1(1:len));axis([0 len*t -4 4]);hold onplot((1:len)*t,x1(1:len),'.','Color','red');xlabel('实部信号');hold offplot_astrologyfunction plot_astrology(a,b)%画出星座图subplot(1,1,1);plot(a,b,'+');axis([-5 5 -5 5]);line([-5,5],[0,0],'LineWidth',3,'Color','red'); line([0,0],[-5,5],'LineWidth',3,'Color','red'); title('QAM星座图');Qam_modulationfunction [yy1, yy2]=Qam_modulation(x) N=length(x);a=1:2:N;y1=x(a);y2=x(a+1);a=1:2:N/2;temp11=y1(a);temp12=y1(a+1);y11=temp11*2+temp12;temp21=y2(a);temp22=y2(a+1);y22=temp21*2+temp22;yy1(find(y11==0))=-3;yy1(find(y11==1))=-1;yy1(find(y11==3))=1;yy1(find(y11==2))=3;yy2(find(y22==0))=-3;yy2(find(y22==1))=-1;yy2(find(y22==3))=1;yy2(find(y22==2))=3;endrise_cosfunction [y1,y2]=rise_cos(x1,x2,fd,fs)%升余弦滤波[yf,tf]=rcosine(fd,fs,'fir/sqrt');[yo1,to1]=rcosflt(x1,fd,fs,'filter/Fs',yf); [yo2,to2]=rcosflt(x2,fd,fs,'filter/Fs',yf);y1=yo1;y2=yo2;stem_2wayfunction stem_2way(x1,x2,delay,fd,fs,len)subplot(2,1,1)hold onstem(((1:len)+fs/fd*3)/fs,x1(1:len)); subplot(2,1,2)hold onstem(((1:len)+fs/fd*3)/fs,x2(1:len));实验结果:>> project输入二进制序列的长度:N=200输入产生1的概率:0.8QAM星座图虚部信号实部信号两路信号波形虚部信号实部信号通过低通滤波器后两路信号波形图载波调制信号图加入高斯白噪声后的两路信号波形实部信号虚部信号经过匹配滤波器后实部信号虚部信号QAM星座图。