MATLAB环境下16QAM调制及解调仿真程序说明
QPSK和16QAM调制下MIMO-OFDM系统Matlab仿真实现

QPSK和16QAM调制下MIMO-OFDM系统Matlab仿真实现一、引言MIMO-OFDM系统是一种融合了多输入多输出(MIMO)和正交频分复用(OFDM)技术的无线通信系统,能够显著提高数据传输速率和系统可靠性。
在MIMO-OFDM系统中,调制方式的选择对系统性能具有重要的影响。
QPSK和16QAM是两种常用的调制方式,它们在MIMO-OFDM系统中的应用对系统的性能和效率有着明显的影响。
本文将针对QPSK和16QAM调制下的MIMO-OFDM系统进行Matlab仿真实现,以研究两种调制方式对系统性能的影响。
二、MIMO-OFDM系统基本原理MIMO-OFDM系统由MIMO技术和OFDM技术组成。
MIMO技术利用多个天线发射和接收信号,通过空间分集和空间复用的方式提高系统的性能和可靠性。
而OFDM技术将带宽分成多个子载波,并采用正交调制方式传输数据,能够有效克服多径干扰和频率选择性衰落,提高系统的抗干扰能力和频谱利用率。
MIMO-OFDM系统将MIMO技术和OFDM技术结合,充分发挥两者的优势,实现了高速率和高可靠性的无线通信。
1. Matlab仿真环境搭建需要在Matlab环境中搭建MIMO-OFDM系统的仿真环境。
在Matlab中,可以使用Communications Toolbox和Wireless Communications Toolbox工具箱来搭建MIMO-OFDM系统的仿真环境。
通过这些工具箱,可以方便地构建MIMO通道模型、OFDM调制器和解调器等系统组件,并进行参数设置和仿真运行。
2. QPSK调制方式在QPSK调制方式下,将复数信号映射到星座图上,每个符号点代表两个比特。
QPSK调制方式可以实现较高的传输速率和频谱利用率,适用于高速率和大容量的无线通信场景。
在MIMO-OFDM系统中,QPSK调制方式通常用于传输速率要求较高的场景,例如视频传输和高速数据传输等。
2. MIMO-OFDM系统仿真实现与QPSK调制方式类似,利用Matlab中的Wireless Communications Toolbox,可以进行16QAM调制下MIMO-OFDM系统的仿真实现。
MATLAB环境下16QAM调制及解调仿真程序说明(精)

姓名:NikeyMATLAB环境下环境下环境下环境下16QAM调制及解调仿真调制及解调仿真调制及解调仿真调制及解调仿真程序说明程序说明程序说明程序说明一、正交调制及相干解调原理框图正交调制原理框图相干解调原理框图二、MQAM调制介绍及本仿真程序的几点说明 MQAM可以用正交调制的方法产生,本仿真中取M=16,即幅度和相位相结合的16个信号点的调制。
为了观察信道噪声对该调制方式的影响,我们在已调信号中又加入了不同强度的高斯白噪声,并统计其译码误码率。
为了简化程序和得到可靠的误码率,我们在解调时并未从已调信号中恢复载波,而是直接产生与调制时一模一样的载波来进行信号解调。
三、仿真结果图附源程序代码:main_plot.m 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_dBy_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调制在不同信道噪声强度下的误码率';random_binary.m %产生二进制信源随机序列function [info]=random_binary(Nif 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.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;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分量并/串转换,最终恢复成码元序列xn nn=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 %二进制转换成四进制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; 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=[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;。
16QAM调制与解调的MATLAB实现及调制性能分析

通信原理课程设计报告书课题名称16QAM 调制与解调的MATLAB 实现及调制性能分析姓 名学 号 学 院 通信与电子工程学院专 业 通信工程 指导教师李梦醒2012年 01 月 01日※※※※※※※※※ ※※ ※※ ※※ ※※※※※※※※※2009级通信工程专业通信原理课程设计16QAM调制与解调的MATLAB实现及调制性能分析(1) 掌握16QAM 调制与解调的原理。
(2) 掌握星座图的原理并能熟悉星座图的应用。
(3) 熟悉并掌握MATLAB 的使用方法。
(4) 通过对16QAM 调制性能的分析了解16QAM 调制相对于其它调制方式的优缺点。
2 设计原理正交振幅调制(Quadrature Amplitude Modulation,QAM )是一种振幅和相位联合键控。
虽然MPSK 和MDPSK 等相移键控的带宽和功率方面都具有优势,即带宽占用小和比特噪声比要求低。
但是由图1可见,在MPSK 体制中,随着8/15π图 1 8PSK 信号相位M 的增大,相邻相位的距离逐渐减小,使噪声容限随之减小,误码率难于保证。
为了改善在M 大时的噪声容限,发展出了QAM 体制。
在QAM 体制中,信号的振幅和相位作为两个独立的参量同时受到调制。
这种信号的一个码元可以表示为0()cos() (1)k k k s t A t kT t k T ωθ=+<≤+ (2—1)式中:k=整数;k A 和k θ分别可以取多个离散值。
式(2—1)可以展开为00()cos cos sin sin k k k k k s t A t A t θωθω=- (2—2)令 X k = A k cos θk , Y k = -A k sin θk 则式(2—1)变为00()cos sin k k k s t X t Y t ωω=+ (2—3)8/5π8/3π8/π8/7π8/9π8/11π8/13πk X 和k Y 也是可以取多个离散的变量。
16QAM调制与解调的MATLAB实现及调制性能分析

通信原理课程设计报告书课题名称16QAM 调制与解调 的MATLAB 实现及调制性能分析姓名 学号学院通信与电子工程学院 专 通信工程※※※※※※※※※※※※※ ※※※※※※※※※※※2009级通信工程专业 通信原理课程设计业指导李梦醒教师2012年 01 月 01日16QAM 调制与解调的MATLAB 实现及调制性能分析 1 设计目的(1) 掌握16QAM 调制与解调的原理。
(2) 掌握星座图的原理并能熟悉星座图的应用。
(3) 熟悉并掌握MATLAB 的使用方法。
(4) 通过对16QAM 调制性能的分析了解16QAM 调制相对于其它调制方式的优缺点。
2 设计原理正交振幅调制(Quadrature Amplitude Modulation,QAM )是一种振幅和相位联合键控。
虽然MPSK 和MDPSK 等相移键控的带宽和功率方面都具有优势,即带宽占用小和比特噪声比要求低。
但是由图1可见,在MPSK 体制中,随着8/15π图 1 8PSK 信号相位8/5π8/3π8/π8/7π8/9π8/11π8/13πM 的增大,相邻相位的距离逐渐减小,使噪声容限随之减小,误码率难于保证。
为了改善在M 大时的噪声容限,发展出了QAM 体制。
在QAM 体制中,信号的振幅和相位作为两个独立的参量同时受到调制。
这种信号的一个码元可以表示为0()cos() (1)k k k s t A t kT t k T ωθ=+<≤+ (2—1)式中:k=整数;k A 和k θ分别可以取多个离散值。
式(2—1)可以展开为00()cos cos sin sin k k k k k s t A t A t θωθω=- (2—2)令 X k = A k cosk , Y k = -A k sin k 则式(2—1)变为00()cos sin k k k s t X t Y t ωω=+ (2—3)k X 和k Y 也是可以取多个离散的变量。
QPSK和16QAM调制下MIMO-OFDM系统Matlab仿真实现

QPSK和16QAM调制下MIMO-OFDM系统Matlab仿真实现QPSK和16QAM调制是一种常见的调制方式,而MIMO-OFDM系统是一种利用多输入多输出技术和正交频分复用技术的无线通信系统。
本文将介绍如何使用Matlab对MIMO-OFDM系统进行仿真实现,并分别使用QPSK和16QAM调制方式进行实验。
我们将讨论MIMO-OFDM系统的基本原理和结构,然后介绍Matlab的仿真实现方法,最后进行仿真实验并分析实验结果。
1. MIMO-OFDM系统的基本原理和结构MIMO-OFDM系统是一种结合了多输入多输出(MIMO)技术和正交频分复用(OFDM)技术的无线通信系统。
MIMO技术利用多个天线进行信号传输和接收,可以显著提高系统的传输速率和抗干扰性能。
而OFDM技术将高速数据流分割成多个低速子流,并利用正交频分复用技术进行传输,可以有效克服多径传输引起的频率选择性衰落和提高频谱利用率。
MIMO-OFDM系统的结构包括多个发射天线和多个接收天线,发射端和接收端分别进行信号处理和数据传输。
在发射端,将输入数据流进行调制、符号映射,并进行空间信号处理和频谱分配;在接收端,对接收的信号进行解调、解映射、信道均衡和解调制处理。
整个系统利用MIMO技术和OFDM技术的优势,可以实现高速和高质量的无线通信传输。
2. Matlab的仿真实现方法在Matlab中,可以利用通信工具箱和信号处理工具箱进行MIMO-OFDM系统的仿真实现。
需要定义系统的参数,包括天线数、子载波数、信道模型、调制方式等;然后生成输入数据流,并进行调制和符号映射;接着进行信道编码和传输;最后进行解码和译码,并进行结果分析。
对于QPSK调制方式,可以使用comm.QPSKModulator和comm.QPSKDemodulator进行调制和解调,并使用comm.ErrorRate进行误码率计算;对于16QAM调制方式,可以使用comm.RectangularQAMModulator和comm.RectangularQAMDemodulator进行调制和解调,并进行相应的误码率计算。
MATLAB环境下16QAM调制与解调仿真程序说明

姓名: NikeyMATLAB环境下16QAM调制及解调仿真程序说明一、正交调制及相干解调原理框图基带信号x串并转换In电平映射成形滤波Xcoswt载波发生器已调信号 y+90度相移Qn-sinwt已调信号yEPF电平映射成形滤波X正交调制原理框图InX LPF抽样判决coswt并恢复信号 x串载波恢复时钟恢复转换90度相移-sinwtQnX LPF抽样判决相干解调原理框图二、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)),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%二进制转换成四进制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);I1=find(yn>=0.5 & yn<1.5); I2=find(yn>=1.5 & yn<2.5);yn(I0)=zeros(size(I0)); yn(I1)=ones(size(I1)); yn(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;。
基于MATLAB下的16QAM仿真

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]。
无线通信技术的迅猛发展对数据传输速率、传输效率和频带利用率提出了更高的要求。
选择高效可行调制解调手段,对提高信号的有效性和可靠性起着至关重要的作用。
由于QAM已经成为宽带无线接入和无线视频通信的重要技术方案。
16QAM调制与解调的MATLAB实现及调制性能分析

通信原理课程设计报告书课题名称16QAM 调制与解调的MATLAB 实现及调制性能分析姓 名学 号 学 院 通信与电子工程学院专 业 通信工程 指导教师李梦醒2012年 01 月 01日※※※※※※※※※ ※※ ※※ ※※2009级通信工程专业通信原理课程设计16QAM 调制与解调的MATLAB 实现及调制性能分析1 设计目的(1) 掌握16QAM 调制与解调的原理。
(2) 掌握星座图的原理并能熟悉星座图的应用。
(3) 熟悉并掌握MATLAB 的使用方法。
(4) 通过对16QAM 调制性能的分析了解16QAM 调制相对于其它调制方式的优缺点。
2 设计原理正交振幅调制(Quadrature Amplitude Modulation,QAM )是一种振幅和相位联合键控。
虽然MPSK 和MDPSK 等相移键控的带宽和功率方面都具有优势,即带宽占用小和比特噪声比要求低。
但是由图1可见,在MPSK 体制中,随着8/15π图 1 8PSK 信号相位M 的增大,相邻相位的距离逐渐减小,使噪声容限随之减小,误码率难于保证。
为了改善在M 大时的噪声容限,发展出了QAM 体制。
在QAM 体制中,信号的振幅和相位作为两个独立的参量同时受到调制。
这种信号的一个码元可以表示为0()cos() (1)k k k s t A t kT t k T ωθ=+<≤+ (2—1)式中:k=整数;k A 和k θ分别可以取多个离散值。
式(2—1)可以展开为00()cos cos sin sin k k k k k s t A t A t θωθω=- (2—2)令 X k = A k cosq k , Y k = -A k sinq k8/5π8/3π8/π8/7π8/9π8/11π8/13π则式(2—1)变为00()cos sin k k k s t X t Y t ωω=+ (2—3)k X 和k Y 也是可以取多个离散的变量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创作编号: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创作者:别如克*。