MATLAB实践—QPSK系统的误码率和星座图仿真

合集下载

MATLAB实践—QPSK系统的误码率和星座图仿真

MATLAB实践—QPSK系统的误码率和星座图仿真

《MATLAB实践》报告——QPSK系统的误码率和星座图仿真一、引言数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通信号。

基本的数字调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、相对(差分)相移键控(DPSK)。

在接收端可以采用想干解调或非相干解调还原数字基带信号。

数字信号的传输方式分为基带传输和带通传输。

然而,实际中的大多数信道(如)无线信道具有丰富的低频分量。

为了使数字信号在带通信道中传输,必须用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。

通信系统的抗噪声性能是指系统克服加性噪声影响的能力。

在数字通信系统中,信道噪声有可能使传输码元产生错误,错误程度通常用误码率来衡量。

因此,与分析数字基带系统的抗噪声性能一样,分析数字调制系统的抗噪声性能,也就是求系统在信道噪声干扰下的总误码率。

误码率(BER:bit error ratio)是衡量数据在规定时间内数据传输精确性的指标。

误码率是指错误接收的码元数在传输总码元数中所占的比例,更确切地说,误码率是码元在传输系统中被传错的概率,即误码率=错误码元数/传输总码元数。

如果有误码就有误码率。

误码的产生是由于在信号传输中,衰变改变了信号的电压,致使信号在传输中遭到破坏,产生误码。

噪音、交流电或闪电造成的脉冲、传输设备故障及其他因素都会导致误码(比如传送的信号是1,而接收到的是0;反之亦然)。

误码率是最常用的数据通信传输质量指标。

它表示数字系统传输质量的式是“在多少位数据中出现一位差错”。

误信率,又称误比特率,是指错误接收的比特数在传输总比特数中所占的比例,即误比特率=错误比特数/传输总比特数。

在数字通信系统中,可靠性用误码率和误比特率表示。

数字调制用“星座图”来描述,星座图中定义了一种调制技术的两个基本参数:(1)信号分布;(2)与调制数字比特之间的映射关系。

星座图中规定了星座点与传输比特间的对应关系,这种关系称为“映射”,一种调制技术的特性可由信号分布和映射完全定义,即可由星座图来完全定义。

QPSK通信系统的MonteCarlo仿真实验报告报告

QPSK通信系统的MonteCarlo仿真实验报告报告

QPSK通信系统的Monte Carlo仿真实验报告2012级通信二班贾师师201200121052 一.【实验目的】1.1提高独立学习的能力1.2培养发现问题,解决问题,分析问题的能力1.3学习Matlab的使用1.4掌握4PSK通信系统的Monte Carlo仿真方法1.5掌握4PSK通信系统的组成原理1.6比较编码信号与未编码信号在随机信道中的传输,加深对纠错编码原理的理解。

二.【实验内容】完成对QPSK通信系统的差错概率的Monte Carlo仿真。

三.【实验原理】1.调制解调原理一组M载波相位调制信号波形的一般表示为:是发送滤波器的脉冲形状,A为信号的幅度。

将式中的余弦函数的相角看成两个相角的和,可以将上表示为将归一化,则函数能量、A可归一化到1。

这样一个相位调制信号可以看做两个正交载波,起始幅度取决于在每个信号区间内的相位,因此,数字相位调制信号在几何上可以用和的二维向量来表示,即同样,将加性噪声分解成两路,加入噪声后的二维向量为判决方法:1)最大投影法:最佳检测器将接收到的信号向量r投射到M个可能的传输信号向量之一上去,并选取对应于最大投影的向量。

我们在试验中用的是将r向量与作为标准的s向量作向量积后选取最大者的方法。

2)最小距离法:我们在实验中实现最小距离法判决的方法是求出r向量的终点与作为标准的s向量的终点后选取最小者的方法。

由于二相相位调制与二进制PAM 是相同的,所以差错概率为式中是每比特能量。

4PSK 可以看作是两个在正交载波上的二相相位调制系统,所以1个比特的差错概率与二相相位调制是一致的。

2.信道纠错编码在随机信道中,错码的出现是随机的,且错码之间是统计独立的。

由高斯白噪声引起的错码就具有这种性质。

当信道中加性干扰主要是这种噪声时,就称这种信道为随机信道。

由于信息码元序列是一种随机序列,接收端是无法预知的,也无法识别其中有无错码。

为了解决这个问题,可以由发送端的信道编码器在信息码元序列中增加一些监督码元。

MATLAB对QPSK通信系统的仿真

MATLAB对QPSK通信系统的仿真

QPSK通信系统的性能分析与matlab仿真1 绪论在当今高度信息化的社会,信息和通信已成为现代社会的“命脉”。

信息作为一种资源,只有通过广泛地传播与交流,才能促进社会成员之间的合作,推动生产力的发展,创造出巨大的经济效益。

在新技术革命的高速推动和信息高速公路的建设,全球网络化发展浪潮的推动下,通信技术得到迅猛的发展,载波通信、卫星通信和移动通信技术正在向数字化、智能化、宽带化发展。

Simulink具有适应面广、结构和流程清晰及仿真精细、效率高、贴近实际、等优点,基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。

同时有大量的第三方软件和硬件应用于Simulink。

本文设计出一个QPSK仿真模型,以分析QPSK在高斯信道中的性能,通过此次课程设计,更好地了解QPSK系统的工作原理,传输比特错误率和符号错误率的计算。

1.1 研究背景与研究意义1.1.1 研究背景在当今高度信息化的社会,信息和通信已成为现代社会的“命脉”。

信息作为一种资源,只有通过广泛地传播与交流,才能促进社会成员之间的合作,推动生产力的发展,创造出巨大的经济效益。

信息的数字转换处理技术走向成熟,为大规模、多领域的信息产品制造和信息服务创造了条件。

高新技术层出不穷。

随着通信技术的发展,通信系统方面的设计也会越来越复杂,利用计算机软件的仿真,可以大大地降低通信过程中的实验成本。

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在该环境中只要通过简单的鼠标操作,就可以构造出复杂的系统。

Simulink提供了一个建立模型方块图的图形用户接口,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。

1.1.2研究意义通过完成实验的设计内容,加深对通信原理理论的理解,熟悉通信系统的基本概念,复习正交相位偏移键控(QPSK)调制解调的基本原理和误比特率的计算方法,了解调制解调方式中最基础的方法。

数字通信原理课程设计 误码性能仿真报告

数字通信原理课程设计 误码性能仿真报告

SER 的一半,这与理论结果契合。此外,BER、SER 的 仿真值都与其理论值基本一致。
(a)
(b)
图 3.(a)QPSK 星座图,(b)SNR=14dB 时的星座图
图 2.BPSK 的误码率仿真值与理论值,仿真 100 次取平均值
尽管 BPSK 两星座点的正交分量均为 0,星座点 相似于 2ASK,但 BPSK 的误码性能优于 2ASK。BPSK 是二维调制,而 ASK 是一维,对于同一 SNR,在平均 信号功率、平均噪声功率均相同的情况下,BPSK 的 噪声被分散在两个维度中,因而 BPSK 的抗噪声性能 比 2ASK 更强。 (2)QPSK 在 AWGN 信道下的误码性能 QPSK 的误码率可由 BPSK 推导得到, QPSK 可以视 为两个正交的 BPSK,且两者相互独立。于是有如下 推导过程:
s(t ) Bk e j 2π f k t k
k 0
N 1
式中:Bk 为之前 16QAM 调制所得的第 k 路子信 道中的复输入数据。 由于 OFDM 信号表达形式如同逆离散傅里叶变换 (IDFT),所以可以用计算 IDFT 和 DFT 的方法进行 OFDM 调制和解调。OFDM 信号的实现基于快速傅里叶 变换(FFT),其调制原理[1]如图 11 所示:
图 5.Gray-16QAM 星座图
图 6.Gray-16QAM 与普通 16QAM 的 BER 对比
图 7.SNR=[5dB,10dB,15dB,20dB]时的 16QAM 星座图
判决时比较 r1 和 r2,如果 r1>r2,则判决为 1, 接收正确,反之则误码。此算法与 2FSK 比较判决的 调制解调原理相契合。仿真程序据此设计。 2FSK 误码性能的仿真 2000 次的仿真结果如图 8 所示。从图 8 中可以看出,SNR 达到 13dB 时,基本 可实现无差错数据传输。

qpsk 信号 matlab仿真代码

qpsk 信号 matlab仿真代码

1. 介绍QPSK信号QPSK (Quadrature Phase Shift Keying) 是一种数字调制技术,常用于无线通信和数字通信系统中。

它是通过改变相位来传输数字信息的一种调制方式,相较于单相位调制方式,QPSK可以提高信号传输效率和频谱利用率。

2. QPSK信号的生成原理QPSK信号的产生可以通过正交调制的方式完成,即将数据流分为两个独立的流并分别与正弦和余弦信号相乘,经过合并后即可生成QPSK信号。

具体过程如下:(1) 将二进制数据流分为实部和虚部,分别代表I信号和Q信号;(2) 分别对I信号和Q信号进行调制,得到两路调制信号;(3) 将两路调制信号通过信号合并器得到QPSK信号。

3. QPSK信号的Matlab仿真代码在Matlab中,可以通过编程实现QPSK信号的生成和仿真。

以下是一个简单的QPSK信号Matlab仿真代码示例:```Matlab设置QPSK调制参数M = 4; 调制阶数msg = randi([0 M-1],10000,1); 随机生成10000个0到M-1的整数,模拟二进制信息流txSig = qammod(msg,M); QAM调制绘制星座图scatterplot(txSig) 绘制QPSK星座图添加高斯噪声rxSig = awgn(txSig, 10); 添加信道噪声,信噪比为10dB解调rxMsg = qamdemod(rxSig,M); QPSK解调[numErrors,ber] = biterr(msg,rxMsg); 计算比特错误率disp(['比特错误率为:',num2str(ber)])```4. QPSK信号仿真结果分析通过上述Matlab代码,我们可以得到QPSK信号的仿真结果。

通过绘制星座图可以直观地观察到QPSK信号在复平面上的分布情况。

随后,我们可以添加高斯噪声,模拟信道中的干扰,然后进行解调并计算比特错误率。

5. 结论通过以上QPSK信号的Matlab仿真代码,我们可以成功生成和仿真QPSK信号,并得到比特错误率等性能指标。

MATLAB_QPSK调制与解调-(4820)

MATLAB_QPSK调制与解调-(4820)

实验名称: QPSK仿真系统一、实验目的:1、学会 QPSK 调制与解调系统的构成2、学会 QPSK 调制与解调系统的各模块的构建3、学会误码率与误符号率的统计方法以及Matlab 算法二、实验原理:1、QPSK:四进制绝对相移键控,也称为多进制数字相位调制,利用载波的四种不同相位状态来表征数字信息的调制方式。

2、QPSK 的调制方法有正交调制方式(双路二相调制合成法或直接调相法)、相位选择法、插入脉冲法。

调制与解调系统的构成:AWGN产生器ncs rI Ib?b0,1序列QPSKr QPSKs判决器产生器映射Q反映射QnsAWGN产生器比较器误比特统计误符号统计3、各模块的实现方法:(1)、信源的产生:使用randint(m,n,2)函数产生一个 m 行 n 列的随机二进制数列(2)、QPSK 符号映射:将产生的 0, 1 比特流按照 QPSK 调制方式进行映射,本实验采用π/4 QPSK 的调制方式,图为:10000111(3)、AWGN 信号产生: AWGN 产生器就是产生满足均值为 0,方差为 1 的高斯白噪声。

实验中使用 randn(m,n)函数产生一个 m 行 n 列的高斯噪声序列。

(4)、信号幅度控制:根据 AWGN 信道模型,接收信号可以分别表示为r Q s Q n Qα 就是当噪声功率归一化为r I s I n I1(0均值,方差为 1)时,根据信噪比关系而计算出来的信号平均幅度SNR 10log v s2vs2SNR v2sqrt v n10 ^10 nv s( 5)、QPSK 反映射及判决:对接收到的信号在 4 种可能的四种信号向量 [(1,0), (0,1), (-1,0), (0,-1)] 上投影 (即进行点积 )。

投影最大的值所对应的信号向量就是所发送信号的符号值,然后恢复出比特流(6)、误码率及误符号率统计:误码率:将检测出来的比特流和发送的原始比特流进行比较,统计出出现错误的比特数误符号率:将检测出来的比特流变成两组,构成符号,和发送端符号映射后的符号流进行比较,只要符号中任错一 bit,就算该符号出错。

(完整word版)QPSK系统的误码率和星座图仿真

(完整word版)QPSK系统的误码率和星座图仿真

目录一、课题内容 (1)二、设计目的 (1)三、设计要求 (1)四、实验条件 (1)五、系统设计 (2)六、详细设计与编码 (4)1. 设计方案 (4)2. 编程工具的选择 (4)3. 程序代码 (5)4. 运行结果及分析 (8)七、设计心得 (9)八、参考文献 (10)一、课题内容基于MATLAB或C语言模拟仿真OFDM通信系统。

主要功能:1、搭建基带OFDM系统仿真平台,实现OFDM信号体制与解调;2、能够画出输入数据与输出数据的星座图;3、能在不同信噪比信道的情况下,对信号进行误码分析。

3、能够和理论误码率公式比较二、设计目的1、综合应用《Matlab原理及应用》、《信号与系统》、《通信原理》等多门课程知识,使学生建立通信系统的整体概念;2、培养学生系统设计与系统开发的思想;3、培养学生利用软件进行通信仿真的能力。

三、设计要求1、每人独立完成不同子系统的详细功能;2、对通信系统有整体的较深入的理解,深入理解自己仿真部分的原理的基础,画出对应的通信子系统的原理框图;3、提出仿真方案;4、完成仿真软件的编制;5、仿真软件的演示;6、提交详细的设计报告。

四、实验条件计算机、Matlab软件五、系统设计1. 四相绝对移相键控(QPSK)的调制基本理论四相绝对移相键控利用载波的四种不同相位来表征数字信息。

由于每一种载波相位代表两个比特信息,故每个四进制码元又被称为双比特码元。

我们把组成双比特码元的前一信息比特用a代表,后一信息比特用b代表。

双比特码元中两个信息比特ab通常是按格雷码(即反射码)排列的,它与载波相位的关系如表1所列。

表1 双比特码元与载波相位的关系双比特码元载波相位φa b A方式B方式0 0 0°45°0 1 90°135°1 1 180°225°1 0 270°315°由于四相绝对移相调制可以看作两个正交的二相绝对移相调制的合成,故两者的功率谱密度分布规律相同。

QPSK误码率仿真分析

QPSK误码率仿真分析

[键入文字]通信工程专业《通信原理》课程设计题目 QPSK的误码率仿真分析学生姓名谭夕林学号 **********所在院(系)陕西理工学院物理与电信工程学院专业班级通信工程专业 1102 班指导教师魏瑞完成地点陕西理工学院物理与电信工程学院实验室2014年 3 月 12 日通信工程专业课程设计任务书院(系) 物理与电信工程学院专业班级通信工程专业1102班学生姓名谭夕林一、课程设计题目 QPSK的误码率仿真分析二、课程设计工作自 2014 年 2 月 24 日起至 2014 年 3 月 16 日止三、课程设计进行地点: 物理与电信工程学院实验室四、课程设计的内容要求:利用仿真软件等工具,结合所学知识和各渠道资料,对QPSK在高斯通道下的误码率进行研究分析指导教师魏瑞系(教研室)通信工程系接受任务开始执行日期2014年2月24日学生签名谭夕林QPSK的误码率仿真分析谭夕林陕西理工学院物理与电信工程学院通信1102班,陕西汉中723003)指导教师:魏瑞【摘要】为实现QPSK应用到无线通信中,该文对QPSK系统性能进行了理论研究。

介绍了QPSK调制解调原理,对高斯白噪声信道的系统性能进行了研究,分析对比了在高斯白噪声信道下的系统误码性能。

为基于副载波QPSK无线激光通信系统的研究奠定了理论基础。

使用MATLAB中M语言完成QPSK的蒙特卡罗仿真,得出在加性高斯白噪声的信道下,传输比特错误率以及符号错误率。

并将比特错误率与理论值相比较,并得出关系曲线。

使用simulink搭建在加性高斯白噪声信道下的QPSK调制解调系统,其中解调器使用相关器接收机。

并计算传输序列的比特错误率。

通过多次运行仿真得到比特错误率与信噪比之间的关系。

【关键词】: QPSK,误码率,仿真,星座图【中图分类号】 TN702 [文献标志码] AQPSK BER simulation analysisTan Xilin(Grade11,Class2,Major of Communication Engineering,School of Physics and telecommunication Engineering of Shaanxi University of Technology, Hanzhong 723003,China)Tutor:Wei Rui[Abstract]For the application of the QPSK (Phase-Shift-Keying) to the wireless laser communication, this paper emphasizes the system of QPSK's performance, theoretically. In the paper, the principle of the QPSK's modulation and demodulation were introduced in brief and the performance of the system at white Gaussian noise (AWGN) channel was also analyzed carefully. The above results provide the theoretical foundation for the wireless laser communication system based on the QPSK with e the MATLAB language to complete Monte Carlo simulation of QPSK, and to obtain the transmission sequence bit error rate and symbol error rate in the additive white Gaussian noise channel, comparing it with the theoretical value, then get curve. The second aspect is to learn how to use Simulink and the functions and principles of various modules. Then we use Simulink to create the model of QPSK through additive white Gaussian noise channel. And take the advantage of the Correlator receiver to complete the operation of demodulation. Then calculate the transmission sequence bit error rate. By running the simulation repeatedly, we can get the relationship between the bit error rate and SNR.Keywords: QPSK, BER, simulation, constellation目录摘要 (3)Abstract (4)一绪论 (6)1.1 课题背景及仿真 (6)1.1.1QPSK系统的应用背景简介 (6)1.1.2QPSK实验仿真的意义 (6)1.1.3仿真平台和仿真内容 (6)二系统实现框图和分析 (7)2.1QPSK调制部分 (7)2.2QPSK解调部分 (8)三QPSK特点及应用领域 (9)3.1QPSK特点 (9)3.2误码率 (10)3.3QPSK时域信号 (10)3.4扩充认知QPSK-OQPSK (10)3.5QPSK的应用领域 (11)四使用simulink搭建QPSK调制解调系统 (12)4.1信源产生 (12)4.2QPSK系统理论搭建 (13)五仿真模型参数设置及结果 (15)5.1仿真附图及参数设置 (15)5.2仿真结果 (16)5.3误码率曲线程序及其仿真结果 (17)六仿真结果分析 (19)七总结与展望 (20)致谢 (21)参考文献 (21)一.绪论1.1课题背景及仿真:1.1.1QPSK系统的应用背景简介QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。

QPSK系统的MonteCarlo仿真

QPSK系统的MonteCarlo仿真

QPSK系统的Monte Carlo仿真一. 实验目的1.提高独立学习的能力;2.学习Matlab使用;3.掌握4PSK通信系统的组成原理;4.掌握4PSK通信系统的Monte Carlo仿真方法;二、实验内容完成对4PSK通信系统的差错概率的Monte Carlo仿真三、实验框图及流程图流程图见下页:四、实验原理四进制相位调制的一般表达式可以表示为:02()()cos(2),0,1,2...1m T c m u t Ag t f t m M M ππθ=-+=- 为了后面便于计算取0θ等于4π,按照书上的过程可以令0022cos(sin()m m m s M M ππθθ⎫=++⎪⎭加入噪声后可以表示为0022cos()sin()c s m m r n n M M ππθθ⎫=++++⎪⎭=0θ=4π。

则可得r 的四个点分别为 (1,1),(1,1),(1,1),(1,1)----即每个比特的能量为1。

这和二进制的双极性的误码率是一样的,即42psk psk P P Q ==,其中b ε=1,22N δ=.五、实验程序1.function[pb,ps]=cm_sm32(snr_in_dB,N)E=1;snr=10^(snr_in_dB/10);sgma=sqrt(E/snr)/2;s00=[1 0];s01=[0 1];s11=[-1 0];s10=[0 -1];%generation of the data sourcefor i=1:N;temp=rand;if (temp<0.25),dsource1(i)=0;dsource2(i)=0;elseif (temp<0.5),dsource1(i)=0;dsource2(i)=1;elseif (temp<0.75),dsource1(i)=1;dsource2(i)=0;elsedsource1(i)=1;dsource2(i)=1;end;end;%detection and the probability of error calculation numofsymbolerror=0;numofbiterror=0;for i=1:N;%the received signal at the detector,for the ith symbol,is: n(1)=gngauss(sgma);n(2)=gngauss(sgma);if ((dsource1(i)==0)&(dsource2(i)==0)),r=s00+n;elseif ((dsource1(i)==0)&(dsource2(i)==1)),r=s01+n;elseif ((dsource1(i)==1)&(dsource2(i)==0)),r=s10+n;elser=s11+n;end;%the correlation metrics are computed below%c00=dot(r,s00);c01=dot(r,s01);c10=dot(r,s10);c11=dot(r,s11);%the decision on the ith symbol is made nextc_max=max([c00 c01 c10 c11]);if (c00==c_max),decis1=0;decis2=0;elseif (c01==c_max),decis1=0;decis2=1;elseif (c10==c_max),decis1=1;decis2=0;elsedecis1=1;decis2=1;end;%increment the error counter,if the decision is not correct symbolerror=0;if (decis1~=dsource1(i)),numofbiterror=numofbiterror+1;symbolerror=1;end;if (decis2~=dsource2(i)),numofbiterror=numofbiterror+1;symbolerror=1;end;if (symbolerror==1),numofsymbolerror=numofsymbolerror+1;end;end;ps=numofsymbolerror/N;pb=numofbiterror/(2*N);2.高斯噪声function [gsrv1,gsrv2]=gngauss(m,sgma)if nargin==0,m=0;sgma=1;elseif nargin==1,sgma=m;m=0;endu=rand;z=sgma*(sqrt(2*log(1/(1-u))));u=rand;gsrv1=m+z*cos(2*pi*u);gsrv2=m+z*sin(2*pi*u);3. function [y]=Qfunct(x)y=1/2*erfc(x/sqrt(2));4. test.m%MATLAB script for illustative Problemecho onSNRindB1=0:2:10;SNRindB2=0:0.1:10;for i=1:length(SNRindB1),[pb1,ps1]=cm_sm32(SNRindB1(i),1000); %1000样点理论误码率smld_bit_err_prb1(i)=pb1;smld_symbol_err_prb1(i)=ps1;[pb2,ps2]=cm_sm32(SNRindB1(i),5000);smld_bit_err_prb2(i)=pb2;smld_symbol_err_prb2(i)=ps2;[pb3,ps3]=cm_sm32(SNRindB1(i),10000);smld_bit_err_prb3(i)=pb3;smld_symbol_err_prb3(i)=ps3;[pb4,ps4]=cm_sm32(SNRindB1(i),100000);smld_bit_err_prb4(i)=pb4;smld_symbol_err_prb4(i)=ps4;echo off;end;echo on; % 理论值计算for i=1:length(SNRindB2),SNR=exp(SNRindB2(i)*log(10)/10);theo_err_prb(i)=Qfunct(sqrt(2*SNR));echo off;end;echo on;%ploting commonds followfigure %1000样点semilogy(SNRindB1,smld_bit_err_prb1,'*'); holdsemilogy(SNRindB1,smld_symbol_err_prb1,'o'); semilogy(SNRindB2,theo_err_prb);%figuresemilogy(SNRindB1,smld_bit_err_prb2,'*'); holdsemilogy(SNRindB1,smld_symbol_err_prb2,'o'); semilogy(SNRindB2,theo_err_prb);%figuresemilogy(SNRindB1,smld_bit_err_prb3,'*'); holdsemilogy(SNRindB1,smld_symbol_err_prb3,'o'); semilogy(SNRindB2,theo_err_prb);figuresemilogy(SNRindB1,smld_bit_err_prb4,'*'); holdsemilogy(SNRindB1,smld_symbol_err_prb4,'o'); semilogy(SNRindB2,theo_err_prb);5.最小距离法function [pb,ps]=dist(snr_in_DB,N)%[pb,ps]=cm_sm32(snr_in_dB)E=1;snr=10^(snr_in_dB/10);sgma=sqrt(E/snr)/2;% the signal mappings00=[1 0];s01=[0 1];s11=[-1 0];s10=[0 -1];% generation of data sourcefor i=1:N,temp=rand;if (temp<0.25),dsource1(i)=0;dsource2(i)=0;elseif (temp<0.5),dsource1(i)=0;dsource2(i)=1;elseif (temp<0.75),dsource1(i)=1;dsource2(i)=0;elsedsource1(i)=1;dsource2(i)=1;end;end;numofsymbolerror=0;numofbiterror=0;for i=1:N,n(1)=gngauss(sgma);n(2)=gngauss(sgma);if ((dsource1(i)==0)&(dsource2(i)==0))r=s00+n;elseif ((dsource1(i)==0)&(dsource2(i)==1)), r=s01+n;elseif ((dsource1(i)==1)&(dsource2(i)==0)), r=s10+n;elser=s11+n;end;x=r(1);y=r(2);c00=sqrt((1-x).^2+(0-y).^2);c01=sqrt((0-x).^2+(1-y).^2);c10=sqrt((0-x).^2+(-1-y).^2);c11=sqrt((-1-x).^2+(0-y).^2);c_min=min([c00 c01 c10 c11]);if (c00==c_min),decis1=0;decis2=0;elseif (c01==c_min),decis1=0;decis2=1;elseif (c10==c_min),decis1=1;decis2=0;elsedecis1=1;decis2=1;end;symbolerror=0;if (decis1~=dsource1(i)),numofbiterror=numofbiterror+1;symbolerror=1;end;if (decis2~=dsource2(i)),numofbiterror=numofbiterror+1;symbolerror=1;end;if (symbolerror==1),numofsymbolerror=numofsymbolerror+1;end;end;ps=numofsymbolerror/N;pb=numofbiterror/(2*N);6. 星座图a=sqrt(a);echo onn0=a*randn(1000,1);n1=a*randn(1000,1);n2=a*randn(1000,1);n3=a*randn(1000,1);n4=a*randn(1000,1);n5=a*randn(1000,1);n6=a*randn(1000,1);n7=a*randn(1000,1);x1=1.+n0;y1=1.+n1;x2=-1.+n2;y2=1.+n3;x3=-1.+n4;y3=-1.+n5;x4=1.+n6;y4=-1.+n7;plot(x1,y1,'o',x2,y2,'*',x3,y3,'o',x4,y4,'*')axis('square')误比特率及误码率曲线N=1000 N=5000N=10000 N=100000方差Sgma; N=10000; 比特差错率Sgma=0;Pb=0,Ps=0 Sgma=0.1;Pb=6.0000e-004,Ps=0.0012 Sgma=0.5;Pb=0.0788,Ps=0.1449 Sgma=1.0;Pb=0.1575,Ps=0.2898星座图 N=10000Sgma=0.00004 Sgma=0.1Sgma=1.0最小距离法:N=1000 N=5000N=10000 N=100000六、分析与讨论1.最小距离法和最大投影法得到的结果相近,但最大距离法更精确。

MATLAB实现QPSK信号的调制解调以及计算误码率BER

MATLAB实现QPSK信号的调制解调以及计算误码率BER

MATLAB实现QPSK信号的调制解调以及计算误码率BER QPSK(Quadrature Phase Shift Keying)是一种基于调制的数字通信方法,它能够提高频谱利用率并减小误码率。

在QPSK调制中,每个符号由两个正交的载波信号之一进行相位调制,共有四种可能的相位状态。

本文将介绍如何使用MATLAB实现QPSK信号的调制、解调,并计算误码率BER(Bit Error Rate)。

首先,我们将使用MATLAB生成一个随机的二进制数列作为待传输的数字数据。

假设数据位数为N。

```matlabN=1000;%数据位数data = randi([0, 1], 1, N); % 生成随机二进制数据```接下来,我们将二进制数据转换为QPSK调制所需的两个IQ通道数据。

其中,I通道代表实部,Q通道代表虚部。

我们将0和1分别映射为QPSK调制的四个相位状态(例如:00映射为相位0°,01映射为相位90°,10映射为相位180°,11映射为相位270°)。

```matlabqpsk_data = reshape(data, 2, N/2); % 转换为2*N/2矩阵qpsk_data = 2*qpsk_data - 1; % 转换为-1和1之间的数值I = qpsk_data(1, :);Q = qpsk_data(2, :);```现在,我们得到了I和Q两个IQ通道的数据。

接下来,我们将对这两个通道的数据进行调制。

在QPSK调制中,我们使用两个不同相位的正弦信号。

```matlabfs = 1000; % 采样率fc = 10; % 载波频率t = 0:1/fs:N/fc-1/fs; % 时间序列I_modulated = real(sqrt(2/T).*I.*cos(2*pi*t*fc)); % I通道调制Q_modulated = real(sqrt(2/T).*Q.*sin(2*pi*t*fc)); % Q通道调制QPSK_signal = I_modulated + Q_modulated; % QPSK信号```现在,我们得到了QPSK信号。

PSK理论误码率与实际误码率MATLAB仿真程序

PSK理论误码率与实际误码率MATLAB仿真程序

PSK理论误码率与实际误码率MATLAB仿真程序%%pskclc;clear all;close all;nsymbol = 1e6;%%每种信噪比下符号数的发送符号数data = randint(1,nsymbol,[0,1]);%%产生1行,nsymbol列均匀分布的随机数0,1bpsk_mod = 2*data-1;%%调制,0转化为-1;1转化为1spow = norm(bpsk_mod).^2/nsymbol;%%求每个符号的平均值,其中norm是求向量2范数函数SNR_dB = 1:10;%%%信噪比dB形式SNR = 10.^(SNR_dB/10);%%信噪比转化为线性值for loop= 1:length(SNR)sigma = sqrt(spow/(2*SNR(loop)));%%%根据符号功率求噪声功率s_receive = bpsk_mod+sigma*(randn(1,length(bpsk_mod))+j*randn(1,lengt h(bpsk_mod)));%%添加复高斯白噪声bpsk_demod = (real(s_receive)>0);%%%解调data_receive=double(bpsk_demod);%%接收数据,转化为[err,ser(loop)] = symerr(data,data_receive);%误码率endser_theory = qfunc(sqrt(2*SNR));%理论误码率,注意Q函数和误差函数的对应关系semilogy(SNR_dB,ser,'-k*',SNR_dB,ser_theory,'-bo');title('BPSK信号在AWGN信道下的性能');xlabel('信噪比/dB');ylabel('误码率');legend('误码率','理论误码率');grid on;。

(完整版)PSK理论误码率与实际误码率MATLAB仿真程序

(完整版)PSK理论误码率与实际误码率MATLAB仿真程序

%%pskclc;clear all;close all;nsymbol = 1e6;%%每种信噪比下符号数的发送符号数data = randint(1,nsymbol,[0,1]);%%产生1行,nsymbol列均匀分布的随机数0,1bpsk_mod = 2*data-1;%%调制,0转化为-1;1转化为1spow = norm(bpsk_mod).^2/nsymbol;%%求每个符号的平均值,其中norm是求向量2范数函数SNR_dB = 1:10;%%%信噪比dB形式SNR = 10.^(SNR_dB/10);%%信噪比转化为线性值for loop= 1:length(SNR)sigma = sqrt(spow/(2*SNR(loop)));%%%根据符号功率求噪声功率s_receive = bpsk_mod+sigma*(randn(1,length(bpsk_mod))+j*randn(1,length(bpsk_mod)));%%添加复高斯白噪声bpsk_demod = (real(s_receive)>0);%%%解调data_receive=double(bpsk_demod);%%接收数据,转化为[err,ser(loop)] = symerr(data,data_receive);%误码率endser_theory = qfunc(sqrt(2*SNR));%理论误码率,注意Q函数和误差函数的对应关系semilogy(SNR_dB,ser,'-k*',SNR_dB,ser_theory,'-bo');title('BPSK信号在AWGN信道下的性能');xlabel('信噪比/dB');ylabel('误码率');legend('误码率','理论误码率');grid on;。

MATLAB-QPSK在AWGN信道下的仿真

MATLAB-QPSK在AWGN信道下的仿真

QPSK 在AWGN 信道下的仿真实验一、基本原理1.1QPSK 简介在数字相位调制中,M 个信号波形可表示为()()()()22(1)/Re 2()cos 2122()cos 1cos 2()sin (1)sin 2c j f t j m M m c c c s t g t e e g t f t m M g t m f t g t m f t M Mππππππππ-⎡⎤=⎣⎦⎡⎤=+-⎢⎥⎣⎦=--- (m=1,2,…,M ,0t T ≤≤) 式中,g(t)是信号脉冲形状,2(1)/m m M θπ=- (m=1,2,…,M )是载波的M 个可能的相位,用于传送发送信息。

这些信号波形具有相等的能量,即 220011()()22TT m g s t dt g t dt εε===⎰⎰ 而且这些信号波形可以表示为两个标准正交信号波形1()f t 和2()f t 的线性星座图合,即1122()()()m m m s t s f t s f t =+,式中1()()cos 2c f t t f t π=2()()sin 2c f t t f t π=且二维向量1,2m m m s s s ⎡⎤=⎣⎦为22((1)m s m m M M ππ⎤=--⎥⎥⎦(m=1,2,…,M ) 其中当M=4时就是本文要讨论的4PSK (QPSK ),QPSK 的载波相位有四种取值,每种取值代表两比特的信号。

随着信号的改变,幅度恒定的载波信号的相位在四种取值间跳变。

这四个相位的取值为间隔相等的值,比如,0,/2,,3/2πππ,每一个相位值对应于唯一的一对消息比特。

有一种变形,称为/4QPSK π-是通过在每一个符号间隔的载波相位中引入附加的/4π相移来使符号同步变得容易些。

QPSK 信号可以表示为:2()cos (1)2s QPSK c s E S t t i T πω⎡⎤=+-⎢⎥⎣⎦ 0S t T ≤≤,i=1,2,3,4 式中S E 为单位符号的信号能量,即0S t T ≤≤时间内的信号能量;c ω为载波角频率,s T 为符号持续时间。

qpsk

qpsk

基于MATLAB的QPSK传输系统仿真默认分类2008-12-04 10:50:13 阅读900 评论2 字号:大中小订阅/blog/#m=0一.基本原理PSK是利用载波振荡相位的变化来传送数字信息。

最早出现的是二相相移键控BPSK,BPSK是利用载波的相位偏移直接表示数字信号,假若规定:已调载波与未调载波同相表示数字信号“0”,与未调载波反相表示数字信号“1”,则已调信号的表达式为,其中:d(t)为双极性数字基带信号,为载波频率。

为了提高信道频带利用率,提出了多进制数字相移键控(MPSK),它用多个相位状态的正弦振荡分别代表不同的数字信息,最典型的是四相相移键控(QPSK)。

BPSK和QPSK在码元转换点上都可能产生相位突变,使得频谱高频滚降缓慢,带外辐射大。

为了消除相位跳变,在QPSK基础上提出了偏移四相相移键控(OQPSK)。

它将同相和正交两支路的码流在时间上错开了半个码元周期,信号相位只跳变0、。

二.程序及结果分析程序如下:if nargin > 2error('Too many input arguments');elseif nargin==1f=1;endif f〉1;error('Frequency must be bigger than 1');end%*-*-*-*-*-*l=length(g);r=l/2;re=ceil(r);val=re-r;if val~=0;error('Please insert a vector divisible for 2'); end%*-*-*-*-*-*t=0:2*pi/99:2*pi;cp=[];sp=[];mod=[];mod1=[];bit=[];for n=1:2:length(g);if g(n)==0 && g(n+1)==1;die=sqrt(2)/2*ones(1,100);die1=-sqrt(2)/2*ones(1,100);se=[zeros(1,50) ones(1,50)];elseif g(n)==0 && g(n+1)==0;die=-sqrt(2)/2*ones(1,100);die1=-sqrt(2)/2*ones(1,100);se=[zeros(1,50) zeros(1,50)];elseif g(n)==1 && g(n+1)==0;die=-sqrt(2)/2*ones(1,100);die1=sqrt(2)/2*ones(1,100);se=[ones(1,50) zeros(1,50)];elseif g(n)==1 && g(n+1)==1;die=sqrt(2)/2*ones(1,100);die1=sqrt(2)/2*ones(1,100);se=[ones(1,50) ones(1,50)];endc=cos(f*t);s=sin(f*t);cp=[cp die]; %Amplitude cosinosp=[sp die1]; %Amplitude sinomod=[mod c]; %cosino carrier (Q)mod1=[mod1 s]; %sino carrier (I)bit=[bit se];endbpsk=cp.*mod+sp.*mod1;subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on;title('Binary Signal')axis([0 50*length(g) -1.5 1.5]);subplot(2,1,2);plot(bpsk,'LineWidth',1.5);grid on;title('QPSK modulation')axis([0 50*length(g) -1.5 1.5]);结果分析:运行得到理想信道和加噪信道中调制解调信号的波形如下:图一理想信道和加噪信道中调制解调信号的波形图二正交支路中的数据和调制信号通过编程模拟QPSK过程,得到信号传输过程中的时域图.从图一可以知道:在理想情形下,信号的解调和调制过程中,信号只出现了很小的波动,在加噪信道中信号的波动范围虽然变大,但不会影响到解调后信号的识别.即在Matlab编程模拟的过程中,QPSK调制解调即使在加有白噪声干扰时,也能进行有效的解码.根据相位调制的特点,我们可以从图二中看到调制信号(正交支路)在二进制信号每发生一次电平的跃变时发生相位跳变.在信噪比低于7dB 的情形下,理论误码率和实际误码相差很小.从这些图形中我们可以发现Matlab软件很好地模拟出了数字通信系统的QPSK过程.即使在噪声干扰下,解调输出信号与输入信号的波形也保持着基本的一致,对信号的恢复不会有大的影响.三.模块及结果分析图三QPSK传输系统结果分析:QPSK(正交移相键控)基带调制信号的频谱图和星座图如下:图四QPSK(正交移相键控)基带调制信号的频谱图和星座图仿真结果说明在相同传输条件下,QPSK、OQPSK调制以比BPSK调制高1倍的速率传输信息,QPSK误码率高于BPSK约30倍,OQPSK误码率高于BPSK约1.4倍。

MATLAB_QPSK调制与解调

MATLAB_QPSK调制与解调

实验名称:QPSK仿真系统一、实验目的:1、学会QPSK调制与解调系统的构成2、学会QPSK调制与解调系统的各模块的构建3、学会误码率与误符号率的统计方法以及Matlab算法二、实验原理:1、QPSK:四进制绝对相移键控,也称为多进制数字相位调制,利用载波的四种不同相位状态来表征数字信息的调制方式。

2、QPSK的调制方法有正交调制方式(双路二相调制合成法或直接调相法)、相位选择法、插入脉冲法。

调制与解调系统的构成:3、各模块的实现方法:(1)、信源的产生:使用randint(m,n,2)函数产生一个m行n列的随机二进制数列(2)、QPSK符号映射:将产生的0,1比特流按照QPSK调制方式进行映射,本实验采用π/4 QPSK的调制方式,图为:(3)、AWGN 信号产生:AWGN 产生器就是产生满足均值为0,方差为1的高斯白噪声。

实验中使用randn(m,n)函数产生一个m 行n 列的高斯噪声序列。

(4)、信号幅度控制:根据AWGN 信道模型,接收信号可以分别表示为α就是当噪声功率归一化为1(0均值,方差为1)时,根据信噪比关系而计算出来的信号平均幅度(5)、QPSK 反映射及判决 :对接收到的信号在4种可能的四种信号向量[(1,0), (0,1), (-1,0), (0,-1)]上投影(即进行点积)。

投影最大的值所对应的信号向量就是所发送信号的符号值,然后恢复出比特流(6)、误码率及误符号率统计:误码率:将检测出来的比特流和发送的原始比特流进行比较,统计出出现错误的比特数误符号率:将检测出来的比特流变成两组,构成符号,和发送端符号映射后的符号流进行比较,只要符号中任错一bit ,就算该符号出错。

统计出现错误的符号数 三、 实验内容:1、调制与解调I I Ir s n α=+Q Q Q r s n α=+22210log 10^10s s n n v SNR SNR v sqrt v v ⎛⎫⎛⎫⎛⎫=⇒=* ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭s v α=clear allclose all% 调制bit_in = randint(1e3, 1, [0 1]);bit_I = bit_in(1:2:1e3);bit_Q = bit_in(2:2:1e3);data_I = -2*bit_I+1;data_Q = -2*bit_Q+1;data_I1=repmat(data_I',20,1);data_Q1=repmat(data_Q',20,1);for i=1:1e4data_I2(i)=data_I1(i);data_Q2(i)=data_Q1(i);end;f=0:0.1:1;xrc=0.5+0.5*cos(pi*f);data_I2_rc=conv(data_I2,xrc)/5.5;data_Q2_rc=conv(data_Q2,xrc)/5.5;f1=1;t1=0:0.1:1e3+0.9;n0=rand(size(t1));I_rc=data_I2_rc.*cos(2*pi*f1*t1);Q_rc=data_Q2_rc.*sin(2*pi*f1*t1); QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc); QPSK_rc_n0=QPSK_rc+n0;% 解调I_demo=QPSK_rc_n0.*cos(2*pi*f1*t1);Q_demo=QPSK_rc_n0.*sin(2*pi*f1*t1);% 低通滤波I_recover=conv(I_demo,xrc);Q_recover=conv(Q_demo,xrc);I=I_recover(11:10010);Q=Q_recover(11:10010);t2=0:0.05:1e3-0.05;t3=0:0.1:1e3-0.1;% 抽样判决data_recover=[];for i=1:20:10000data_recover=[data_recover I(i:1:i+19) Q(i:1:i+19)];end;bit_recover=[];for i=1:20:20000if sum(data_recover(i:i+19))>0data_recover_a(i:i+19)=1;bit_recover=[bit_recover 1];elsedata_recover_a(i:i+19)=-1;bit_recover=[bit_recover -1];endenderror=0;dd = -2*bit_in+1;ddd=[dd'];ddd1=repmat(ddd,20,1);for i=1:2e4ddd2(i)=ddd1(i);endfor i=1:1e3if bit_recover(i)~=ddd(i)error=error+1;endendp=error/1000;figure(1)subplot(2,1,1);plot(t2,ddd2);axis([0 100 -2 2]);title('原序列');subplot(2,1,2);plot(t2,data_recover_a);axis([0 100 -2 2]);title('解调后序列');2、误码率仿真% QPSK误码率分析SNRindB1=0:2:10;SNRindB2=0:0.1:10;for i=1:length(SNRindB1)[pb,ps]=cm_sm32(SNRindB1(i));smld_bit_err_prb(i)=pb;smld_symbol_err_prb(i)=ps;end;for i=1:length(SNRindB2)SNR=exp(SNRindB2(i)*log(10)/10);theo_err_prb(i)=Qfunct(sqrt(2*SNR)); end;title('QPSK误码率分析');semilogy(SNRindB1,smld_bit_err_prb,'*');axis([0 10 10e-8 1]);hold on;% semilogy(SNRindB1,smld_symbol_err_prb,'o'); semilogy(SNRindB2,theo_err_prb);legend('仿真比特误码率','理论比特误码率'); hold off;function[y]=Qfunct(x)y=(1/2)*erfc(x/sqrt(2));function[pb,ps]=cm_sm32(SNRindB)N=10000;E=1;SNR=10^(SNRindB/10);sgma=sqrt(E/SNR)/2;s00=[1 0];s01=[0 1];s11=[-1 0];s10=[0 -1];for i=1:Ntemp=rand;if (temp<0.25)dsource1(i)=0;dsource2(i)=0;elseif (temp<0.5)dsource1(i)=0;dsource2(i)=1;elseif (temp<0.75)dsource1(i)=1;dsource2(i)=0;elsedsource1(i)=1;dsource2(i)=1;end;end;numofsymbolerror=0;numofbiterror=0;for i=1:Nn=sgma*randn(size(s00));if((dsource1(i)==0)&(dsource2(i)==0))r=s00+n;elseif((dsource1(i)==0)&(dsource2(i)==1)) r=s01+n;elseif((dsource1(i)==1)&(dsource2(i)==0)) r=s10+n;elser=s11+n;end;c00=dot(r,s00);c01=dot(r,s01);c10=dot(r,s10);c11=dot(r,s11);c_max=max([c00 c01 c10 c11]);if (c00==c_max)decis1=0;decis2=0;elseif(c01==c_max)decis1=0;decis2=1;elseif(c10==c_max)decis1=1;decis2=0;elsedecis1=1;decis2=1;end;symbolerror=0;if(decis1~=dsource1(i))numofbiterror=numofbiterror+1;symbolerror=1;end;if(decis2~=dsource2(i))numofbiterror=numofbiterror+1;symbolerror=1;end;if(symbolerror==1)numofsymbolerror=numofsymbolerror+1;end;end;ps=numofsymbolerror/N;pb=numofbiterror/(2*N);3、QPSK在A WGN信道下的仿真close allclcclear allSNR_DB=[0:1:12];sum=1000000;data= randsrc(sum,2,[0 1]);[a1,b1]=find(data(:,1)==0&data(:,2)==0);message(a1)=-1-j;[a2,b2]=find(data(:,1)==0&data(:,2)==1);message(a2)=-1+j;[a3,b3]=find(data(:,1)==1&data(:,2)==0);message(a3)=1-j;[a4,b4]=find(data(:,1)==1&data(:,2)==1);message(a4)=1+j;scatterplot(message)title('B点信号的星座图')A=1;Tb=1;Eb=A*A*Tb;P_signal=Eb/Tb;NO=Eb./(10.^(SNR_DB/10));P_noise=P_signal*NO;sigma=sqrt(P_noise);for Eb_NO_id=1:length(sigma)noise1=sigma(Eb_NO_id)*randn(1,sum);noise2=sigma(Eb_NO_id)*randn(1,sum);receive=message+noise1+noise2*j;resum=0;total=0;m1=find(angle(receive)<=pi/2&angle(receive)>0);remessage(1,m1)=1+j;redata(m1,1)=1;redata(m1,2)=1;m2= find( angle(receive)>pi/2&angle(receive)<=pi);remessage(1,m2)=-1+j;redata(m2,1)=0;redata(m2,2)=1;m3=find( angle(receive)>-pi&angle(receive)<=-pi/2);remessage(1,m3)=-1-j;redata(m3,1)=0;redata(m3,2)=0;m4=find( angle(receive)>-pi/2&angle(receive)<=0);remessage(1,m4)=1-j;redata(m4,1)=1;redata(m4,2)=0;[resum,ratio1]=symerr(data,redata);pbit(Eb_NO_id)=resum/(sum*2);[total,ratio2]=symerr(message,remessage);pe(Eb_NO_id)=total/sum;endscatterplot(receive)title('C点信号的星座图')Pe=1-(1-1/2*erfc(sqrt(10.^(SNR_DB/10)/2))).^2;Pbit=1/2*erfc(sqrt(10.^(SNR_DB/10)/2));figure(3)semilogy(SNR_DB,pe,':s',SNR_DB,Pe,'-*',SNR_DB,pbit,'-o',SNR_DB,Pbit,':+')legend('QPSK仿真误码率','QPSK理论误码率','QPSK仿真误比特率','QPSK理论误比特率',1) xlabel('信噪比/dB')ylabel('概率P')gird on结果:4、QPSK在A WGN信道下的性能检测clear all;%对随机序列产生的方法初始化s = RandStream('mt19937ar','Seed', 5489);RandStream.setDefaultStream(s);s = RandStream('mcg16807', 'Seed',0);RandStream.setDefaultStream(s);N = 10^5; %码元数Eb_N0 = -4:20; %Eb/N0比特信噪比s_data = zeros(1,N);ErrorCount=zeros(1,length(Eb_N0)); %预先分配内存,用于记录错误的码元数for j = 1:length(Eb_N0)p = (2*(rand(1,N)>0.5)-1) + 1i*(2*(rand(1,N)>0.5)-1);s = (1/sqrt(2))*p; %归一化n = 10^(-Eb_N0(j)/40)*1/sqrt(2)*(randn(1,N) + 1i*randn(1,N)); %加性高斯白噪声r = s + n;%解调r_re = real(r); %实部r_im = imag(r); %虚部s_data(r_re < 0 & r_im < 0) = -1 + -1*1i;s_data(r_re >= 0 & r_im > 0) = 1 + 1*1i;s_data(r_re < 0 & r_im >= 0) = -1 + 1*1i;s_data(r_re >= 0 & r_im < 0) = 1 - 1*1i;ErrorCount(j) = size(find(p- s_data),2); %错误的码元数endsim_QPSK = ErrorCount/N;theory_QPSK = erfc(sqrt(0.5*(10.^(Eb_N0/20)))) -(1/4)*(erfc(sqrt(0.5*(10.^(Eb_N0/20))))).^2;close allfiguresemilogy(Eb_N0,theory_QPSK,'b.-');hold onsemilogy(Eb_N0,sim_QPSK,'mx-');axis([-4 20 10^-3 1])grid on总黄酮生物总黄酮是指黄酮类化合物,是一大类天然产物,广泛存在于植物界,是许多中草药的有效成分。

基于matlab的QPSK与BPSK信号性能比较仿真

基于matlab的QPSK与BPSK信号性能比较仿真

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录第一章概述 (2)第二章QPSK通信系统原理与仿真 (2)2.1 QPSK系统框图介绍 (2)2.2 QPSK信号的调制原理 (3)2.2.1 QPSK信号产生方法 (3)2.2.2 QPSK星座图 (4)2.3 QPSK解调原理及误码率分析 (4)2.3.1 QPSK解调方法 (4)2.3.2 QPSK系统误码率 (5)2.4 QPSK信号在AWGN信道下仿真 (5)第三章BPSK通信系统原理与仿真 (6)3.1 BPSK信号的调制原理 (6)3.2 BPSK解调原理及误码率分析 (7)第四章QPSK与BPSK性能比较 (8)4.1 QPSK与BPSK在多信道下比较仿真 (8)4.1.1 纵向比较分析 (8)4.1.2 横向比较分析 (10)4.2 仿真结果分析 (10)4.2.1 误码率分析 (10)4.2.2 频带利用率比较 (10)附录 (11)代码1 (11)代码2 (11)代码3 (14)代码4 (16)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊第一章概述QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。

它以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接人、移动通信及有线电视系统之中。

BPSK是英文Binary Phase Shift Keying的缩略语简称,意为二相相移键控,是利用偏离相位的复数波浪组合来表现信息键控移相方式的一种。

它使用了基准的正弦波和相位反转的波浪,使一方为0,另一方为1,从而可以同时传送接受2值(1比特)的信息。

本文所研究的QPSK系统与二进制的BPSK系统相比,具有以下特点:1.在传码率相同的情况下,四进制数字调制系统的信息速率是二进制系统的2倍。

QPSK通信系统的Monte Carlo仿真实验报告

QPSK通信系统的Monte Carlo仿真实验报告

QPSK通信系统的Monte Carlo仿真实验报告2012级通信二班贾师师201200121052 一.【实验目的】1.1提高独立学习的能力1.2培养发现问题,解决问题,分析问题的能力1.3学习Matlab的使用1.4掌握4PSK通信系统的Monte Carlo仿真方法1.5掌握4PSK通信系统的组成原理1.6比较编码信号与未编码信号在随机信道中的传输,加深对纠错编码原理的理解。

二.【实验内容】完成对QPSK通信系统的差错概率的Monte Carlo仿真。

三.【实验原理】1.调制解调原理一组M载波相位调制信号波形的一般表示为:是发送滤波器的脉冲形状,A为信号的幅度。

将式中的余弦函数的相角看成两个相角的和,可以将上表示为将归一化,则函数能量、A可归一化到1。

这样一个相位调制信号可以看做两个正交载波,起始幅度取决于在每个信号区间内的相位,因此,数字相位调制信号在几何上可以用和的二维向量来表示,即同样,将加性噪声分解成两路,加入噪声后的二维向量为判决方法:1)最大投影法:最佳检测器将接收到的信号向量r投射到M个可能的传输信号向量之一上去,并选取对应于最大投影的向量。

我们在试验中用的是将r向量与作为标准的s向量作向量积后选取最大者的方法。

2)最小距离法:我们在实验中实现最小距离法判决的方法是求出r向量的终点与作为标准的s向量的终点后选取最小者的方法。

由于二相相位调制与二进制PAM 是相同的,所以差错概率为式中是每比特能量。

4PSK 可以看作是两个在正交载波上的二相相位调制系统,所以1个比特的差错概率与二相相位调制是一致的。

2.信道纠错编码在随机信道中,错码的出现是随机的,且错码之间是统计独立的。

由高斯白噪声引起的错码就具有这种性质。

当信道中加性干扰主要是这种噪声时,就称这种信道为随机信道。

由于信息码元序列是一种随机序列,接收端是无法预知的,也无法识别其中有无错码。

为了解决这个问题,可以由发送端的信道编码器在信息码元序列中增加一些监督码元。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《MATLAB实践》报告——QPSK系统的误码率和星座图仿真一、引言数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通信号。

基本的数字调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、相对(差分)相移键控(DPSK)。

在接收端可以采用想干解调或非相干解调还原数字基带信号。

数字信号的传输方式分为基带传输和带通传输。

然而,实际中的大多数信道(如)无线信道具有丰富的低频分量。

为了使数字信号在带通信道中传输,必须用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。

通信系统的抗噪声性能是指系统克服加性噪声影响的能力。

在数字通信系统中,信道噪声有可能使传输码元产生错误,错误程度通常用误码率来衡量。

因此,与分析数字基带系统的抗噪声性能一样,分析数字调制系统的抗噪声性能,也就是求系统在信道噪声干扰下的总误码率。

误码率(BER:bit error ratio)是衡量数据在规定时间内数据传输精确性的指标。

误码率是指错误接收的码元数在传输总码元数中所占的比例,更确切地说,误码率是码元在传输系统中被传错的概率,即误码率=错误码元数/传输总码元数。

如果有误码就有误码率。

误码的产生是由于在信号传输中,衰变改变了信号的电压,致使信号在传输中遭到破坏,产生误码。

噪音、交流电或闪电造成的脉冲、传输设备故障及其他因素都会导致误码(比如传送的信号是1,而接收到的是0;反之亦然)。

误码率是最常用的数据通信传输质量指标。

它表示数字系统传输质量的式是“在多少位数据中出现一位差错”。

误信率,又称误比特率,是指错误接收的比特数在传输总比特数中所占的比例,即误比特率=错误比特数/传输总比特数。

在数字通信系统中,可靠性用误码率和误比特率表示。

数字调制用“星座图”来描述,星座图中定义了一种调制技术的两个基本参数:(1)信号分布;(2)与调制数字比特之间的映射关系。

星座图中规定了星座点与传输比特间的对应关系,这种关系称为“映射”,一种调制技术的特性可由信号分布和映射完全定义,即可由星座图来完全定义。

二、QPSK系统的原理四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进制移相键控。

QPSK是在M=4时的调相技术,它规定了四种载波相位,分别为45°,135°,225°,275°,调制器输入的数据是二进制数字序列,为了能和四进制的载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要把二进制数字序列中每两个比特分成一组,共有四种组合,即00,01,10,11,其中每一组称为双比特码元。

每一个双比特码元是由两位二进制信息比特组成,它们分别代表四进制四个符号中的一个符号。

QPSK中每次调制可传输2个信息比特,这些信息比特是通过载波的四种相位来传递的。

解调器根据星座图及接收到的载波信号的相位来判断发送端发送的信息比特。

在QPSK体制中,由其矢量图(图1)可以看出,错误判决是由于信号矢量的相位因噪声而发生偏离造成的。

例如,设发送矢量的相位为45°,它代表基带信号码元“11”,若因噪声的影响使接收矢量的相位变成135°,则将错判为“01”。

当不同发送矢量以等概率出现时,合理的判决门限应该设定在和相邻矢量等距离的位置。

在图中对于矢量“11”来说,判决门限应该设在0°和90°。

当发送“11”时,接收信号矢量的相位若超出这一范围(图中阴影区),则将发生错判。

图1 QPSK 的噪声容限QPSK 信号的误码率: QPSK 信号的误比特率:图2 QPSK 系统原理方框图三、仿真实验0111001090︒︒22/2111⎥⎦⎤⎢⎣⎡--=r erfc P e 2/21r erfc P e =图3 仿真实验框图实验结果(即误码率曲线和星座图)图4 B 点信号的星座图产生二进制数据星座图映射加法运算判决根据信噪比产生高斯噪声数据星座图逆映射误码率统计误比特率统计ABCDEF图5 C点信号的星座图图6 误码率和误比特率的理论和仿真曲线对实验结果的简单分析和说明 图4是B 点信号的星座图映射,00、01、10、11组合分别映射成-1-j,-1+j,1-j,1+j 。

图5是C 点信号的星座图映射,它是加入噪声后的映射结果,由图中可以看出加入噪声后大致以-1-j,-1+j,1-j,1+j 为中心形成了近似圆的图像,少部分点偏离比较严重,产生了误差。

由图6,可见QPSK 仿真误码率曲线和理论误码率曲线重合在一起,QPSK 仿真误比特率曲线和理论误比特率曲线也重合在一起,误码率约是误比特率的两倍,说明实验方法是正确可行的。

四、结论本次实验研究了数字调制方式QPSK ,对其误码率进行了考察。

通过理论误码率和仿真误码的比较,了解了误码率的性能。

本次实验还通过运用星座图来对实验结果进行仿真。

本次实验得出结论如下:QPSK 信号的误码率:QPSK 信号的误比特率:误码率是误比特率的两倍。

附录:1、 心得体会:本次实验我收获很多,学会了应用MA TLAB 来处理问题,加深了对通信原理中部分公式和概念的理解。

实验过程中也遇到了不少问题,在星座图映射上,一开始将00,01,10,11看成一个整体,这样对整体编程存在很大困难,因此后来尝试将其分开看,并成功映射;在计算噪声的过程中,由于通信原理的知识未能牢固掌握,在分析和计算的过程中花了很多时间;实验过程中,学会了使用find 函数来代替for 循环的功能,从而使程序运行更加快,大大加快了实验的进度。

通过本次MA TLAB 的实践,应该加强MATLAB 在各个学科的应用,学会用MA TLAB 来处理实际问题。

2、 程序: close all clcclear allSNR_DB=[0:1:12]; sum=1000000;data= randsrc(sum,2,[0 1]);[a1,b1]=find(data(:,1)==0&data(:,2)==0); message(a1)=-1-j;[a2,b2]=find(data(:,1)==0&data(:,2)==1); message(a2)=-1+j;[a3,b3]=find(data(:,1)==1&data(:,2)==0); message(a3)=1-j;[a4,b4]=find(data(:,1)==1&data(:,2)==1); message(a4)=1+j; scatterplot(message)title('B 点信号的星座图')22/2111⎥⎦⎤⎢⎣⎡--=r erfc P e 2/21r erfc P e =A=1;Tb=1;Eb=A*A*Tb;P_signal=Eb/Tb;NO=Eb./(10.^(SNR_DB/10));P_noise=P_signal*NO;sigma=sqrt(P_noise);for Eb_NO_id=1:length(sigma)noise1=sigma(Eb_NO_id)*randn(1,sum);noise2=sigma(Eb_NO_id)*randn(1,sum);receive=message+noise1+noise2*j;resum=0;total=0;m1=find(angle(receive)<=pi/2&angle(receive)>0);remessage(1,m1)=1+j;redata(m1,1)=1;redata(m1,2)=1;m2= find( angle(receive)>pi/2&angle(receive)<=pi);remessage(1,m2)=-1+j;redata(m2,1)=0;redata(m2,2)=1;m3=find( angle(receive)>-pi&angle(receive)<=-pi/2);remessage(1,m3)=-1-j;redata(m3,1)=0;redata(m3,2)=0;m4=find( angle(receive)>-pi/2&angle(receive)<=0);remessage(1,m4)=1-j;redata(m4,1)=1;redata(m4,2)=0;[resum,ratio1]=symerr(data,redata);pbit(Eb_NO_id)=resum/(sum*2);[total,ratio2]=symerr(message,remessage);pe(Eb_NO_id)=total/sum;endscatterplot(receive)title('C点信号的星座图')Pe=1-(1-1/2*erfc(sqrt(10.^(SNR_DB/10)/2))).^2;Pbit=1/2*erfc(sqrt(10.^(SNR_DB/10)/2));figure(3)semilogy(SNR_DB,pe,':s',SNR_DB,Pe,'-*',SNR_DB,pbit,'-o',SNR_DB,Pbit,':+')legend('QPSK仿真误码率','QPSK理论误码率','QPSK仿真误比特率','QPSK理论误比特率',1) xlabel('信噪比/dB')ylabel('概率P')gird on。

相关文档
最新文档