QAM调制与解调的MATLAB实现及调制性能分析
QAM调制与解调的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/ 5π8/3π8/π8/7π8/9π8/11π8/13π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 sink则式(2—1)变为00()cos sin k k k s t X t Y t ωω=+ (2—3)k X 和k Y 也是可以取多个离散的变量。
从式(2—3)看出,()k s t 可以看作是两个正交的振幅键控信号之和。
基于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】。
qam信号的fft频偏估计matlab

一、概述QAM (Quadrature Amplitude Modulation) 是一种常见的数字调制技术,用于在通信系统中传输数字数据。
在QAM信号中可能存在频偏,因此需要进行频偏估计和补偿。
FFT (Fast Fourier Transform) 是一种常用的信号处理工具,用于在频域对信号进行分析和处理。
本文将讨论如何利用MATLAB对QAM信号进行FFT频偏估计的方法和步骤。
二、QAM信号的频偏QAM信号经过一定的传输介质后,可能会出现频率偏移,即信号的频率与预期的频率不一致。
这可能导致接收端无法正确解调信号,造成误码率的提高。
需要对QAM信号的频偏进行估计和补偿。
三、FFT频偏估计原理FFT是一种将时域信号转换为频域信号的数学工具。
对于QAM信号,可以通过FFT来分析其频域特性,进而估计频偏。
具体步骤如下:1. 对接收到的QAM信号进行FFT,得到信号在频域上的表示。
2. 分析频域图像,找到信号的主要频率成分。
3. 通过比较主要频率成分的位置和预期的频率位置,计算出频偏值。
四、MATLAB中的FFT频偏估计方法在MATLAB中,可以利用以下步骤对QAM信号进行FFT频偏估计:1. 读取接收到的QAM信号,并进行FFT变换。
2. 绘制信号在频域上的表示,观察频谱图像。
3. 利用MATLAB中的频谱分析函数,如findpeaks等,找到主要频率成分的位置。
4. 计算主要频率成分的位置与预期频率位置的偏移量,得到频偏值。
五、实例演示下面演示一个简单的MATLAB代码,用于对QAM信号进行FFT频偏估计。
```matlab读取接收到的QAM信号received_signal = ...; 读取接收到的QAM信号,具体方法根据实际情况而定进行FFT变换fft_signal = fft(received_signal); 对QAM信号进行FFT变换绘制频域图像f = 1:length(fft_signal);plot(f, abs(fft_signal)); 绘制频域图像寻找频谱峰值[pk, loc] = findpeaks(abs(fft_signal), 'SortStr', 'descend');计算频偏expected_frequency = ...; 预期频率位置,根据QAM信号的参数而定frequency_offset = loc(1) - expected_frequency; 计算频偏值disp(['Frequency offset: ', num2str(frequency_offset)]); 显示频偏值```通过以上MATLAB代码,可以对接收到的QAM信号进行FFT频偏估计,并得到频偏值。
qam调制及误码率matlab

qam调制及误码率matlab标题:QAM调制及误码率Matlab仿真分析摘要:本文旨在介绍正交振幅调制(QAM)的原理和应用领域,并通过Matlab 仿真分析来讨论QAM调制中的误码率。
文章将从QAM调制的基本原理和定义开始,深入探讨其调制方式、调制索引、信道传输、解调算法等关键概念。
接下来,将通过Matlab进行QAM信号的生成和传输效果的仿真模拟,并采用误码率作为性能评估指标,分析调制索引对误码率的影响。
最后,结合仿真结果,我们将对QAM调制技术的应用场景和未来发展进行展望。
关键词:QAM调制;误码率;Matlab仿真;性能评估一、引言正交振幅调制(QAM)是一种常见的调制技术,广泛应用于数字通信、无线传输等领域。
QAM调制既融合了调幅和相位调制的特点,也具备较高的频谱效率和抗噪声能力。
误码率是评估数字通信系统性能的关键指标,通过对QAM调制的误码率进行分析,可以直观地评估系统的可靠性和性能。
二、QAM调制的基本原理和定义1. QAM调制基本原理:QAM调制是将两种不同调制方式(调幅、相位调制)的单一载波合并在一起进行传输的技术。
通过同时调整振幅和相位的方式,在复平面上进行星座点位置映射,实现多位元符号的传输。
2. 正交振幅调制:QAM调制是一种正交振幅调制,它利用正交的基带信号进行调制。
正交性保证了信号之间的相互独立,从而降低了符号间互相干扰的可能性。
三、QAM调制方式和调制索引1. 方式:(1) 4QAM:通过4个正交星座点进行调制,每个星座点代表两个比特传输。
(2) 16QAM:通过16个正交星座点进行调制,每个星座点代表4个比特传输。
(3) 64QAM:通过64个正交星座点进行调制,每个星座点代表6个比特传输。
...2. 调制索引:调制索引是指在特定条件下,每个星座点所对应的载波相对振幅的大小,它决定了星座点的分布密度和调制方式的性能特性。
四、QAM信号的传输过程和解调算法1. 信道传输:QAM信号的传输过程中,会受到各种噪声干扰和衰减等影响,因此信道传输过程需要保证较低的误码率,提高传输的可靠性。
QAM调制解调的仿真实现报告-

一、设计任务任务:使用 MATLAB 软件,实现对 QAM 系统调制与解调过程的仿真,并分析系统的可靠性。
二、实验内容(1)对原始信号分别进行 4QAM 和 16QAM 调制,画出星座图;(2)采用高斯信道传输信号,画出信噪比为 13dB 时,4QAM 和 16QAM 的接收信号星座图;(3)画出两种调制方式的眼图;(4)解调接收信号,分别绘制 4QAM 和 16QAM 的误码率曲线图,并与理论值进行对比;(5)提交详细的设计报告和实验报告。
三、设计原理QAM 调制原理:QAM 调制是把 2ASK 和 2PSK 两种调制技术结合起来的一种调制技术,使得带宽得到双倍扩展。
QAM 调制技术用两路独立的基带信号对频率相同、相位正交的两个载波进行抑制载波双边带调幅,并将已调信号加在一起进行传输。
nQAM 代表 n 个状态的正交调幅,一般有二进制(4QAM)、四进制(16QAM)、八进制(64QAM)。
我们要得到多进制的 QAM 信号,需将二进制信号转换为 m 电平的多进制信号,然后进行正交调制,最后相加输出。
正交调制及相干解调原理框图如下:QAM 调制说明:MQAM 可以用正交调制的方法产生,本仿真中分别取 M=16 和 4。
M=16 时,进行的是幅度和相位相结合的 16 个信号点的调制。
M=4 时,进行的是幅度和相位相结合的 4 个信号点的调制。
为了观察信道噪声对该调制方式的影响,我们在已调信号中又加入了不同强度的高斯白噪声,并统计其译码误码率。
为了简化程序和得到可靠的误码率,我们在解调时并未从已调信号中恢复载波,而是直接产生与调制时一模一样的载波来进行信号解调。
四、实验步骤:(1)我们整个代码编写为 MQAM 格式,在刚开始时,会询问选择 4QAM 还16QAM,然后开始运行。
(2)首先生成一个随机且长度为 n*k 的二进制比特流。
(3)在 MATLAB 中 16QAM 调制器要求输入的信号为 0~M-1 这 1M 个值,所以需要用函数 reshape 和 bi2de 将二进制的比特流转换为对应的十进制这 M 个值。
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;。
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 也是可以取多个离散的变量。
QAM调制与解调实验报告

QAM调制与解调实验报告一.实验目的(1)掌握QAM调制与解调原理。
(2)掌握systemview仿真软件使用方法(3)设计16QAM调制与解调仿真电路,观察QAM星座图和眼图。
二、仿真环境SystemView仿真软件三、实验原理(1)QAM调制原理16QAM是用两路独立的正交4ASK信号叠加而成,4ASK是用多电平信号去键控载波而得到的信号。
它是2ASK体制的推广,和2ASK相比,这种体制的优点在于信息传输速率高。
正交幅度调制是利用多进制振幅键控(MASK)和正交载波调制相结合产生的。
16进制的正交振幅调制是一种振幅相位联合键控信号。
16QAM的产生有2种方法:(1)正交调幅法,它是有2路正交的四电平振幅键控信号叠加而成;(2)复合相移法:它是用2路独立的四相位移相键控信号叠加而成。
这里采用正交调幅法。
16QAM正交调制的原理如下图1所示。
图中串/并变换器将速率为Rb的二进制码元序列分为两路,速率为Rb/2.2-4电平变换为Rb/2的二进制码元序列变成速率为RS=Rb/log216的4个电平信号,4电平信号与正交载波相乘,完成正交调制,两路信号叠加后产生16QAM信号.在两路速率为Rb/2的二进制码元序列中,经2-4电平变换器输出为4电平信号,即M=16.经4电平正交幅度调制和叠加后,输出16个信号状态,即16QAM RS=Rb/log216=RB/4.本实验,采用便是这种方式。
(2)QAM解调原理16QAM信号采取正交相干解调的方法解调,解调器首先对收到的16QAM信号进行正交相干解调,一路与tcωcos相乘,一路与tcωsin相乘。
然后经过低通滤波器,低通滤波器LPF滤除乘法器产生的高频分量,获得有用信号,低通滤波器LPF输出经抽样判决可恢复出电平信号。
16QAM正交相干解调如图2所示。
四.实验过程和结果(1)实验框图1.信号源参数设置:码元速率为10hz,level为4,载波设为100hz,恢复定时脉冲设置为100hz。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信原理课程设计报告书课题名称 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/ 5π8/3π8/π8/7π8/9π8/11π8/13π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 sink则式(2—1)变为00()cos sin k k k s t X t Y t ωω=+ (2—3)k X 和k Y 也是可以取多个离散的变量。
从式(2—3)看出,()k s t 可以看作是两个正交的振幅键控信号之和。
在式(2—1)中,若k 值仅可以取/4和-/4,A k 值仅可以取+A 和-A ,则此QAM 信号就成为QPSK 信号,如图2所示:图2 4QAM 信号矢量图所以,QPSK 信号就是一种最简单的QAM 信号。
有代表性的QAM 信号是16进制的,记为16QAM ,它的矢量图示于下图中:图3 16QAM 信号矢量图图中用黑点表示每个码元的位置,并且示出它是由两个正交矢量合成的。
类似地,有64QAM 和256QAM 等QAM 信号,如图4、图5所示。
它们总称为MQAM调制。
由于从其矢量图看像是星座,故又称星座调制。
16QAM 信号的产生方法主要有两种。
第一种是正交调幅法,即用两路独立的正交4ASK 信号叠加,形成16QAM 信号,如图6所示。
第二种方法是复合相图4 64QAM 信号矢量图图5 256QAM 信号矢量图图6 正交调幅法移法,它用两路独立的QPSK信号叠加,形成16QAM信号,如图7所示。
图中图7 复合相移法虚线大圆上的4个大黑点表示一个QPSK信号矢量的位置。
在这4个位置上可以叠加上第二个QPSK矢量,后者的位置用虚线小圆上的4个小黑点表示。
3设计过程设计思路由设计原理中可知MQAM调制又称为星座调制,故我们在设计16QAM调制系统时就可以星座图来进行编程。
下面我们就借用如图8所示的星座图设计一个16QAM调制系统。
图8 16QAM星座在图中共有16个点,每个点用4个比特表示,代表调制以后的一个矢量位置(这个点拥有唯一的振幅与相位)。
因此我们可以把横轴看作是实轴,纵轴看作虚轴。
由于每个点与跟它相邻的四个点是等距,且设为2,则每个点都可用一个虚数进行表示。
例如点0000可用-1-j表示,这个虚数的模就是相当于16QAM 信号的振幅,相角就相当于16QAM信号的相位。
所以16QAM的调制过程就可以用如下语句进行描述:if A(1,b:c)==[0 0 0 0]B(k)=-1-1i;elseif A(1,b:c)==[0 0 0 1]B(k)=-3-1i;elseif A(1,b:c)==[0 0 1 0]B(k)=-1-3i;elseif A(1,b:c)==[0 0 1 1]B(k)=-3-3i;elseif A(1,b:c)==[0 1 0 0]B(k)=1-1i;elseif A(1,b:c)==[0 1 0 1]B(k)=1-3i;elseif A(1,b:c)==[0 1 1 0]B(k)=3-1i;elseif A(1,b:c)==[0 1 1 1]B(k)=3-3i;elseif A(1,b:c)==[1 0 0 0]B(k)=-1+1i;elseif A(1,b:c)==[1 0 0 1]B(k)=-1+3i;elseif A(1,b:c)==[1 0 1 0]B(k)=-3+1i;elseif A(1,b:c)==[1 0 1 1]B(k)=-3+3i;elseif A(1,b:c)==[1 1 0 0]B(k)=1+1i;elseif A(1,b:c)==[1 1 0 1]B(k)=3+1i;elseif A(1,b:c)==[1 1 1 0]B(k)=1+3i;elseif A(1,b:c)==[1 1 1 1]B(k)=3+3i;end当调制以后的信号经过信道加噪以后,我们必须对其进行解调。
由于加噪了的缘故,调制以后的信号不再是原来的信号,而应该有不同。
因此在解调时不能简单的将上述过程逆转,即不能由-1-j就判断为0000。
而应该对虚数的实部和虚部设定一个范围后再进行判断。
这个范围边界的选取原理我们可以借用量化的概念,取相邻虚数的实部的平均数和虚部的平均数。
以下为16QAM解调过程的程序语句:if (real(D(n))<-2)&&(imag(D(n))<-2)C(1,d:e)=[0 0 1 1];elseif (real(D(n))<-2)&&(imag(D(n))<0)C(1,d:e)=[0 0 0 1];elseif (real(D(n))<-2)&&(imag(D(n))<2)C(1,d:e)=[1 0 1 0];elseif (real(D(n))<-2)&&(imag(D(n))>=2)C(1,d:e)=[1 0 1 1];elseif (real(D(n))<0)&&(imag(D(n))<-2)C(1,d:e)=[0 0 1 0];elseif (real(D(n))<0)&&(imag(D(n))<0)C(1,d:e)=[0 0 0 0];elseif (real(D(n))<0)&&(imag(D(n))<2)C(1,d:e)=[1 0 0 0];elseif (real(D(n))<0)&&(imag(D(n))>=2)C(1,d:e)=[1 0 0 1];elseif (real(D(n))<2)&&(imag(D(n))<-2)C(1,d:e)=[0 1 0 1];elseif (real(D(n))<2)&&(imag(D(n))<0)C(1,d:e)=[0 1 0 0];elseif (real(D(n))<2)&&(imag(D(n))<2)C(1,d:e)=[1 1 0 0];elseif (real(D(n))<2)&&(imag(D(n))>=2)C(1,d:e)=[1 1 1 0];elseif (real(D(n))>=2)&&(imag(D(n))<-2)C(1,d:e)=[0 1 1 1];elseif (real(D(n))>=2)&&(imag(D(n))<0)C(1,d:e)=[0 1 1 0];elseif (real(D(n))>=2)&&(imag(D(n))<2)C(1,d:e)=[1 1 0 1];elseif(real(D(n))>=2)&&(imag(D(n))>=2)C(1,d:e)=[1 1 1 1];end设计总程序clear all;close all;N=40000;K=4*N;%信息长度L=7*N;W=7*N/4;E=randsrc(1,K,[0,1]);%信源´B=zeros(1,W);%16QAM调制后的信号C=zeros(1,L);%16QAM解调后的信号num=zeros(20,1);%误比特数ber=zeros(20,1);%误比特率for SNR=1:1:20%汉明编码A=encode(E,7,4,'hamming/binary');%16QAM调制过程for k=1:Wb=4*k-3;c=4*k;if A(1,b:c)==[0 0 0 0]B(k)=-1-1i;elseif A(1,b:c)==[0 0 0 1]B(k)=-3-1i;elseif A(1,b:c)==[0 0 1 0]B(k)=-1-3i;elseif A(1,b:c)==[0 0 1 1]B(k)=-3-3i;elseif A(1,b:c)==[0 1 0 0]B(k)=1-1i;elseif A(1,b:c)==[0 1 0 1]B(k)=1-3i;elseif A(1,b:c)==[0 1 1 0]B(k)=3-1i;elseif A(1,b:c)==[0 1 1 1]B(k)=3-3i;elseif A(1,b:c)==[1 0 0 0]B(k)=-1+1i;elseif A(1,b:c)==[1 0 0 1]B(k)=-1+3i;elseif A(1,b:c)==[1 0 1 0]B(k)=-3+1i;elseif A(1,b:c)==[1 0 1 1]B(k)=-3+3i;elseif A(1,b:c)==[1 1 0 0]B(k)=1+1i;elseif A(1,b:c)==[1 1 0 1]B(k)=3+1i;elseif A(1,b:c)==[1 1 1 0]B(k)=1+3i;elseif A(1,b:c)==[1 1 1 1]B(k)=3+3i;endend%信道加噪D=awgn(B,SNR);%16QAM解调过程for n=1:Wd=4*n-3;e=4*n;if (real(D(n))<-2)&&(imag(D(n))<-2)C(1,d:e)=[0 0 1 1];elseif (real(D(n))<-2)&&(imag(D(n))<0)C(1,d:e)=[0 0 0 1];elseif (real(D(n))<-2)&&(imag(D(n))<2)C(1,d:e)=[1 0 1 0];elseif (real(D(n))<-2)&&(imag(D(n))>=2)C(1,d:e)=[1 0 1 1];elseif (real(D(n))<0)&&(imag(D(n))<-2)C(1,d:e)=[0 0 1 0];elseif (real(D(n))<0)&&(imag(D(n))<0)C(1,d:e)=[0 0 0 0];elseif (real(D(n))<0)&&(imag(D(n))<2)C(1,d:e)=[1 0 0 0];elseif (real(D(n))<0)&&(imag(D(n))>=2)C(1,d:e)=[1 0 0 1];elseif (real(D(n))<2)&&(imag(D(n))<-2)C(1,d:e)=[0 1 0 1];elseif (real(D(n))<2)&&(imag(D(n))<0)C(1,d:e)=[0 1 0 0];elseif (real(D(n))<2)&&(imag(D(n))<2)C(1,d:e)=[1 1 0 0];elseif (real(D(n))<2)&&(imag(D(n))>=2)C(1,d:e)=[1 1 1 0];elseif (real(D(n))>=2)&&(imag(D(n))<-2)C(1,d:e)=[0 1 1 1];elseif (real(D(n))>=2)&&(imag(D(n))<0)C(1,d:e)=[0 1 1 0];elseif (real(D(n))>=2)&&(imag(D(n))<2)C(1,d:e)=[1 1 0 1];elseif (real(D(n))>=2)&&(imag(D(n))>=2)C(1,d:e)=[1 1 1 1];endend%汉明译码F=decode(C,7,4,'hamming/binary');%求误比特率[num(SNR,1),ber(SNR,1)]=biterr(F,E);end%误比特数图plot(num);figure%误比特率图plot(ber);系统仿真结果图0.0050.010.0150.020.0250.030.0350.04SNRPe图9 不同SNR下的误比特率4 系统性能分析图10 三种调制方式在AWGN信道中的误码性能比较分析:将QPSK,BPSK,16QAM,FSK四种调制方式,包括理论值与实际值,放在同一个图下,对他们进行对比,可以很清晰地发现,QPSK在信噪比较小时,仿真值和理论值就有了偏离,且两者数值都比较大,当信噪比越来越大时,仿真值成直线几乎没变化,而实际值的Pe值逐渐变小,这种调制方式不是很可取;16QAM的性能跟QPSK相比,在低信噪比时,Pe值较大(还要大于QPSK的),随着信噪比逐渐增大,16QAM的Pe值逐渐减小,且理论值与实际值比较契合,在大信噪比情况下,误码性能略逊与QPSK的;FSK的理论值和实际值在各种信噪比下都比较契合,两者几乎没有大的差距,无论是在低,高信噪比下,性能都要比QPSK的优越一些;BPSK性能最优!理论值与实际值契合得比较理想,而在低,高信噪比情况下,Pe值都是最低的,且随着信噪比逐渐增大,Pe实际值迅速减小,实现起来性能十分优越。