BPSK误码率仿真
现代通信原理BPSK仿真实验
通信原理BPSK仿真实验一、实验题目利用仿真软件实现BPSK的调制解调,并仿真分析其在高斯信道下的误码性能。
二、实验原理调制过程:信号的产生采用键控法。
原理:用二进制单极性脉冲控制开关选择0相位载波和π相位载波的输出。
解调过程:相干解调。
必须采用相干解调的方式,从接收到的已调信号中提取本地载波,与信号相乘后通过低通滤波器,抽样判决后得到基带信号。
三、实验仿真1、实验系统2、各模块设置系统时钟设置:Sample Rate:5000Hz Stop Time=1{系统中使用的滤波器为巴特沃斯滤波器}(一)以下四个模块为调制过程,产生BPSK信号。
●模块0:产生频率为50Hz的单极性脉冲,控制开关。
●模块1:开关由单极性脉冲控制对两种相位的正弦波进行选择。
(Gate delay=0 Ctrl thresh=1 ) ●模块2和3:生成正弦波,作为载波。
(二)以下模块主要为从接收到的已调信号中提取本地载波。
●模块25:高斯白噪声(Mean=0v Std Dev=1v)●模块30:放大器:增益Gain=-30dB●模块24:带通滤波器,设置在解调之前。
通带为430-570Hz。
●模块23:幂函数,次数为2,将接收到的以调信号平方。
●模块11:带通滤波器(998-1002Hz;BP Filter Order=3)为获取1000Hz的正弦波●模块10:分频器对输入信号进行2分频,为获取500Hz的正弦波●模块15:带通滤波器(490-510Hz;BP Filter Order=3)为获取500Hz的正弦波作为本地载波。
(三)解调过程和抽样判决●模块9和17:组成解调器。
BPSK信号与本地载波通过乘法器,在经过低通滤波器(60Hz恢复数字基带信号对应的模拟信号。
●模块19:非门,判决作用。
●模块20:采样器,采样频率为50Hz。
●模块21:保持器,采样后经保持器得到恢复的波形。
(四)误码性能分析●模块27:误码率图标(Trails=1000)●模块29:终止符(误码=6个)●模块31:终值显示符●模块32:数字延迟器(Delay:20000)3、系统波形分析及相关参数分析模块4:输入波形模块26:BPSK信号可以看到键控法产生的BPSK信号,第一张图中竖着的白线为相位反相点,在第二张放大后的图中可以清晰的看到信号相位相反的地方。
AWGN信道中BPSK误码率仿真分析
窑26窑
微处理机
2021 年
图 11 整体仿真模型
4结束语
利用数字信号载波传输系统中存在的信道噪声 误码,借助于 AWGN 信道模块和高斯噪声器模块, 在适当参数下得出了相同的仿真结果。随着仿真时 间增加,统计样本随之增加,将使得误码率仿真结果 更加接近理论分析值。基于蒙特卡罗统计方法得到 的仿真结果与理论计算之间具有较好的一致性,而 在实际工程中,要获得通信系统的理论性能往往比 较困难,因此,仿真手段几乎成为通信系统性能评估 的最佳选择。
第3期 2021 年 6 月
微处理机 MICROPROCESSORS
No. 3 Jun.,2021
·微机网络与通信·
AWGN 信道中 BPSK 误码率仿真分析
丁凯
(海军 92785 部队,辽宁 绥中 125208)
摘 要: 针对加性高斯白噪声使数据出现差错对数字通信系统中信号接受端带来的负面效应,
对加性高斯白噪声对信道中误码率性能的影响展开研究。通过介绍 BPSK 的扩频调制解调原理及信
图 3 BPSK 调制信号
实际信道中存在着各种干扰,会对通信系统造 成影响。在加性高斯白噪声信道中,信道的输入信 号将与信号内的高斯白噪声相叠加,导致如图 4 所 示的波形。
图 4 BPSK 叠加高斯白噪声
信号接收机接收到经过调制和叠加了高斯白
图 7 抽样判决后的信号
在实际通信系统中,由于受所处环境、仪器精密 度、电磁干扰等的影响,导致了调制解调存在一定的 误差,此误差即被称为误码率。 2.3 BPSK 调制 BER 的理论性能
2.26伊10-3
在 BPSK 调制与解调模块中增加 AWGN 模块, AWGN 信道中设置 Mode 参数,仿真结果如图 10 所 示。当 Eb/ N0 设置为 100 dB、信噪比取值很大时[6], AWGN 模块不会引入传输错误,如图 10(a)所示,输 入发送信号序列和接收解调输出的信号序列都是由 一连串收发相互一致的双精度随机整数值(1 或 0) 组成。把 Eb/N0 的值修改为-10 dB 后[7],产生了不少错 误,收发数据序列波形变得不一致,如图 10(b)所示。
数字通信原理课程设计 误码性能仿真报告
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 时,基本 可实现无差错数据传输。
数字通信系统误码率仿真分析报告
3G移动通信实验报告实验名称:数字通信系统误码率仿真分析学生:学生学号:学生班级:所学专业:实验日期:1. 实验目的1. 掌握几种典型数字通信系统误码率分析方法。
2. 掌握误码率对数字通信系统的影响与改良方法。
2. 实验原理1、数字通信系统的主要性能指标通信的任务是传递信息,因此信息传输的有效性和可靠性是通信系统的最主要的质量指标。
有效性是指在给定信道能传输的信息容的多少,而可靠性是指接收信息的准确程度。
为了提高有效性,需要提高传输速率,但是可靠性随之降低。
因此有效性和可靠性是相互矛盾的,又是可交换的。
可以用降低有效性的方法提高可靠性,也可以用降低可靠性的方法提高有效性。
数字通信系统的有效性通常用信息传输速率来衡量。
当信道一定时,传输速率越高,有效性就越好。
传输速率有三种定义:码元速率〔s R 〕:单位时间传输的码元数目,单位是波特〔Baud 〕,因此又称为波特率;信息速率〔bR 〕:单位时间传输的信息量〔比特数〕,单位是比特/秒〔b/s 〕,因此又称为比特率;消息速率〔M R 〕:单位时间传输的消息数目。
对于M 进制通信系统,码元速率与信息速率的关系为:()s b M R R s b /log 2=()baud MR R bs 2log =特别说明的是,在二进制数字通信系统源的各种可能消息的出现概率相等时,码元速率和信息速率相等。
在实际应用中,通常都默认这两个速率相等,所以常常简单地把一个二进制码元称为一个比特。
数字通信系统的可靠性的衡量指标是错误率。
它也有三种不同定义:误码率〔eP 〕:指错误接收码元数目在传输码元总数中所占的比例,即传输总码元数错误接收码元数=e P误比特率〔bP 〕:指错误接收比特数目在传输比特总数中所占的比例,即传输总比特数错误接收比特数=b P误字率〔WP 〕:指错误接收字数在传输总字数中所占的比例。
假如一个字由k 比特组成,每比特用一码元传输,如此误字率等于()ke W P P --=11对于二进制系统而言,误码率和误比特率显然相等。
bpsk 误码率 matlab
bpsk 误码率 matlab以bpsk误码率为标题的Matlab文章引言:误码率是衡量数字通信系统性能的重要指标之一。
在数字通信中,调制技术起着至关重要的作用,而二进制相移键控(BPSK)调制是最常用的一种调制方式之一。
本文将使用Matlab来计算BPSK调制的误码率,并通过实际案例说明其应用。
一、BPSK调制简介BPSK调制是一种基本的数字调制技术,它将二进制数字序列映射到正弦波的相位上。
在BPSK调制中,二进制1和0分别对应于正弦波的两个不同相位。
具体而言,二进制1对应于正弦波的0度相位,而二进制0对应于正弦波的180度相位。
二、BPSK调制的误码率计算方法误码率是指在接收端解调过程中,接收到的比特错误的概率。
在BPSK调制中,误码率的计算可以通过理论公式或仿真方法来实现。
本文将介绍使用Matlab进行仿真计算的方法。
1.生成随机二进制数据序列我们需要生成随机的二进制数据序列,以模拟实际通信环境中的数据传输。
在Matlab中,可以使用randi函数生成指定长度的随机二进制数据序列。
2.进行BPSK调制生成的随机二进制数据序列需要经过BPSK调制,将其映射到正弦波的相位上。
在Matlab中,可以使用pskmod函数实现BPSK调制。
3.添加高斯噪声为了模拟实际通信环境中的噪声干扰,我们需要向BPSK调制后的信号中添加高斯噪声。
在Matlab中,可以使用awgn函数实现高斯噪声的添加。
4.进行BPSK解调接收端收到经过噪声干扰的信号后,需要进行BPSK解调,将其恢复为二进制数据序列。
在Matlab中,可以使用pskdemod函数实现BPSK解调。
5.计算误码率经过BPSK解调后得到的二进制数据序列与发送端的原始数据序列进行比较,即可计算误码率。
在Matlab中,可以使用biterr函数实现误码率的计算。
三、实例演示下面通过一个实例演示如何使用Matlab计算BPSK调制的误码率。
假设我们要传输长度为10000的二进制数据序列,传输信道为高斯信道。
awgn信道中2ask、bpsk、bfsk的仿真分析
AWGN信道中2ASK/2FSK/BPSK 信号的误码率性能仿真课程名称《现代通信导论》学生班级英才实验学院学生姓名何萌学生学号*************指导老师武刚小组成员何萌、高铭业一、实验目的及主要内容1.1实验目的1.熟悉2ASK、2FSK、BPSK等各种调制方式;2.学会对2ASK、2FSK、BPSK相应的误码率统计;3.学会分析误码率与信噪比间的关系,及对信噪比的正确认识。
1.2实验内容设定噪声为高斯白噪声,对2ASK、2FSK、2PSK、2DPSK等各种调制方式及相应的主要解调方式下(分相干与非相干)的误码率进行统计,并与理论值进行比较,以图形方式表示误码率与信噪比间的关系。
二、实验原理2ASK:有两种解调方法:非相干解调(包络检波法)和相干解调(同步检测法)。
其中包络检波法不需相干载波,利用e0(t)波形振幅变化表示信息的特点,取出其包络,经抽样判决即可恢复数码。
相干解调需要与相干载波相乘。
2FSK:常用的解调方法:非相干解调(包络检波法);相干解调;鉴频法;过零检测法及差分检波法。
将2FSK信号分解为上下两路2ASK信号分别进行解调。
其中的抽样判决是直接比较两路信号抽样值的大小,可以不专门设置门限。
判决规则应与调制规则相呼应。
例如,若调制时规定“1”对应载频f1,则接收时应规定:上支路样值>下支路样值判为1,反之则判为0.。
BPSK:该方式中载波的相位随调制信号“1”或“0”而改变,通常用相位0°或180°来分别表示“1”或“0”,所以2PSK信号是以一个固定初相的未调载波为参考的。
解调时必须有与此同频同相的同步载波。
而2PSK 信号是抑制载波的双边带信号,不存在载频分量,因而无法从已调信号中直接用滤波法提取本地载波。
只有采用非线性变换,才能产生新的频率分量。
三、仿真过程设计及问题讨论本次仿真通过编写m文件分别对2ASK、2FSK、BPSK的调制解调过程进行简单的实现,同时在实际仿真的编写过程中遇到了两种不同判决的选用的问题及对信噪比的理解问题,下面将会详细讲诉。
BPSK误码率仿真
B P S K误码率仿真-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN实验报告实验目的1.掌握BPSK信号调制、相干解调方法;2.掌握BPSK信号误码率计算。
实验内容1.BPSK信号的调制;2.BPSK信号相干解调;3.不同信噪比环境下BPSK信号误码率计算,并与理论误码率曲线对比。
实验原理BPSK信号调制原理1.系统原理高斯白噪声图1 BPSK调制系统原理框图BPSK调制系统的原理框图如图1所示,其中脉冲成形的作用是抑制旁瓣,减少邻道干扰,通常选用升余弦滤波器;加性高斯白噪声模拟信道特性,这是一种简单的模拟;带通滤波器BPF可以滤除有效信号频带以外的噪声,提高信噪比;在实际通信系统中相干载波需要使用锁相环从接收到的已调信号中恢复,这一过程增加了系统的复杂度,同时恢复的载波可能与调制时的载波存在180度的相位偏差,即180°相位反转问题,这使得BPSK 系统在实际中无法使用;低通滤波器LPF 用于滤除高频分量,提高信噪比;抽样判决所需的同步时钟需要从接收到的信号中恢复,即码元同步,判决门限跟码元的统计特性有关,但一般情况下都为0。
2. 参数要求码元速率1000波特,载波频率4KHz ,采样频率为16KHz 。
BPSK 信号解调原理BPSK 信号的解调方法是相干解调法。
由于PSK 信号本身就是利用相位传递信息的,所以在接收端必须利用信号的相位信息来解调信号。
图2中给出了一种2PSK 信号相干接收设备的原理框图。
图中经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。
判决器是按极性来判决的。
即正抽样值判为1,负抽样值判为-1。
图2 BPSK 解调系统原理框图BPSK 信号误码率在AWGN 信道下BPSK 信号相干解调的理论误码率为:12e P erfc =,其中r 为信噪比222na r σ=。
在大信噪比(1)r→条件下,上式可近似为:r eP-=实验结果与分析BPSK信号序列的产生根据BPSK特点,用matlab的randsrc(1,num,[-1,-1])产生1或者-1的均匀分布的随机序列,作为BPSK信号。
qpsk、bpsk蒙特卡洛仿真matlab代码
qpsk、bpsk的蒙特卡洛仿真是一种用于测试和验证通信系统性能的重要工具。
通过模拟大量的随机输入数据,并对系统进行多次仿真运算,可以对系统的性能进行全面评估,包括误码率、信噪比要求等。
在matlab中,我们可以通过编写相应的仿真代码来实现qpsk、bpsk 的蒙特卡洛仿真。
下面将分别介绍qpsk和bpsk的蒙特卡洛仿真matlab代码。
一、qpsk的蒙特卡洛仿真matlab代码1. 生成随机的qpsk调制信号我们需要生成一组随机的qpsk调制信号,可以使用randi函数生成随机整数序列,然后将其映射到qpsk符号点上。
2. 添加高斯白噪声在信号传输过程中,会受到各种干扰,其中最主要的干扰之一就是高斯白噪声。
我们可以使用randn函数生成高斯白噪声序列,然后与调制信号相加,模拟信号在传输过程中受到的噪声干扰。
3. 解调和判决接收端需要进行解调和判决操作,将接收到的信号重新映射到qpsk符号点上,并判断接收到的符号与发送的符号是否一致,从而判断是否发生误码。
4. 统计误码率通过多次仿真运算,记录错误判决的次数,从而可以计算出系统的误码率。
二、bpsk的蒙特卡洛仿真matlab代码1. 生成随机的bpsk调制信号与qpsk相似,我们需要先生成一组随机的bpsk调制信号,然后模拟信号传输过程中的噪声干扰。
2. 添加高斯白噪声同样使用randn函数生成高斯白噪声序列,与bpsk调制信号相加。
3. 解调和判决接收端对接收到的信号进行解调和判决,判断接收到的符号是否与发送的符号一致。
4. 统计误码率通过多次仿真运算,记录错误判决的次数,计算系统的误码率。
需要注意的是,在编写matlab代码时,要考虑到信号的长度、仿真次数、信噪比的范围等参数的选择,以及仿真结果的统计分析和可视化呈现。
qpsk、bpsk的蒙特卡洛仿真matlab代码可以通过以上步骤实现。
通过对系统性能进行全面评估,可以帮助工程师优化通信系统设计,提高系统的可靠性和稳定性。
AWGN信道中BPSK调制系统的BER仿真计算
AWGN信道中BPSK调制系统的BER仿真计算AWGN信道中的BPSK(Binary Phase Shift Keying)调制系统的BER (Bit Error Rate)是通过使用仿真计算来估计误码率的。
在这个系统中,0和1两种不同的数字比特被编码成不同的相位,然后通过AWGN信道传输。
在接收端,使用最大似然检测来解调接收到的信号,并将其解调成0或1首先,我们需要确定系统的各个参数。
这些参数包括:1.调制阶数:在BPSK系统中,调制阶数为2,即只有两种可能的相位。
2.信噪比(SNR):SNR是信号功率和噪声功率之间的比值。
在AWGN信道中,SNR可以表示为信号功率与噪声功率之比。
信噪比通常以分贝(dB)表示。
3.误码率(BER):BER是指接收到的比特与发送的比特之间不匹配的概率。
接下来,我们可以通过以下步骤进行BER仿真计算:1.生成随机比特序列:使用随机数生成器来生成0和1的比特序列。
比特序列的长度应与仿真中所希望获得的误码率有关。
2.比特到相位的转换:将生成的比特序列转换为相位序列。
在BPSK系统中,0表示一个相位(例如0度),1表示另一个相位(例如180度)。
3.信号的发送:将相位序列转换为正弦信号,并将其通过AWGN信道发送。
4.加入噪声:在接收端,我们需要给接收信号添加高斯白噪声。
噪声的功率由信噪比决定。
5.信号的接收:接收到的信号将通过最大似然检测进行解调。
解调后的结果将与发送的比特进行比较,并计算错误的个数。
6.误码率计算:通过比较接收到的比特和发送的比特,计算误码率。
将错误的比特数除以总的比特数,即可得到误码率。
在仿真过程中,我们可以通过改变SNR的值来观察BER的变化。
通常,随着SNR的增加,误码率会减小。
这是因为较高的信噪比意味着更强的信号和较少的噪声,从而更容易准确地检测到发送的比特。
最后,我们可以通过绘制BER曲线来直观地表示误码率与SNR之间的关系。
在绘制曲线时,通常使用对数坐标来显示SNR的范围。
matlab误码率仿真代码
matlab误码率仿真代码以下是一个简单的 MATLAB 误码率仿真代码示例,用于模拟二进制传输系统的误码率。
在这个示例中,我们将使用 BPSK(二进制相移键控)调制来进行仿真。
matlab.% 设置参数。
SNR_dB = 0:1:10; % 信噪比范围。
numBits = 1e6; % 要传输的比特数。
ber = zeros(size(SNR_dB)); % 初始化误码率向量。
for i = 1:length(SNR_dB)。
% 生成随机的二进制数据。
txBits = randi([0,1],1,numBits);% BPSK调制。
txSignal = 2txBits 1;% 添加高斯噪声。
noiseVar = 10^(-SNR_dB(i)/10);noise =sqrt(noiseVar/2)(randn(1,numBits)+1irandn(1,numBits)); rxSignal = txSignal + noise;% BPSK解调。
rxBits = real(rxSignal) > 0;% 计算误码率。
ber(i) = sum(rxBits ~= txBits)/numBits;end.% 绘制误码率曲线。
semilogy(SNR_dB,ber,'o-');xlabel('SNR (dB)');ylabel('Bit Error Rate');title('BPSK误码率仿真');grid on;在这个示例中,我们首先设置了信噪比范围和要传输的比特数。
然后我们使用 for 循环来遍历不同的信噪比值。
在每个循环中,我们生成随机的二进制数据,并将其进行 BPSK 调制。
接着我们添加高斯噪声,并进行 BPSK 解调。
最后我们计算误码率,并将结果绘制成误码率曲线。
这个示例代码可以帮助你了解如何使用 MATLAB 进行简单的误码率仿真。
BPSK的误比特率性能进行了仿真
本代码对BPSK的误比特率性能进行了仿真,给出了Mente Carlo仿真结果与理论分析结果的对比。
以下是源代码和仿真结果图:%-------------------------------------------------------------------------% Main Program lavabin 2006.07.25%-------------------------------------------------------------------------% % This program is used to get the BPSK BER curve under AWGN condition % % Assuming that Eb = 0% % Theoretical BER = Q(sqrt(2*Eb/No))%-------------------------------------------------------------------------echo offclcclear allclose alltic% ---------------------------------------------------coefNum = 2^16;SNR_in_dB = [0:0.1:10];signalTx = rand(1, coefNum);signalTx(find(signalTx <= 0.5)) = -1;signalTx(find(signalTx > 0.5)) = +1;[Pe] = BPSK_AWGN_Pe(signalTx, SNR_in_dB);for i = 1:length(SNR_in_dB)SNR(i) = 10^(SNR_in_dB(i)/10);Pe_theoretical(i) = qfunc(sqrt(2*SNR(i)));end% ---------------------------------------------------figure(1);grid onsemilogy(SNR_in_dB, Pe,'go-');hold onsemilogy(SNR_in_dB, Pe_theoretical,'r*-');legend('Pe Actual','Pe Theoretical');title('BPSK BER Performance Evaluation');xlabel('Eb/No');ylabel('BPSK BER');% ---------------------------------------------------echo onsimulation_time = toc%-------------------------------------------------------------------------% End of Function%-------------------------------------------------------------------------%--------------------------------------------------------------------------%% Avetis Ioannisyan% 10/26/05%--------------------------------------------------------------------------% Given desired SNR and the input signal, function outputs prob of error % occuring in AWGN environment such that N(0, No/2). The input signal is% modulated digital using ASK with amplitude -1 and +1%% Example:% coefNum = 2^17;% SNR = [0:0.1:10];%% signalTx = rand(1, coefNum);% signalTx(find(signalTx <= 0.5)) = -1;% signalTx(find(signalTx > 0.5)) = +1;%% [Pe] = BPSK_AWGN_Pe(signalTx, SNR);%% semilogy(SNR, Pe);%-------------------------------------------------------------------------% lavabin 2006.07.25%-------------------------------------------------------------------------function [Pe] = BPSK_AWGN_Pe(signalTx, SNR)% number of coef to generate (length)coefNum = length(signalTx);N0=[]; AWGN=[]; Pe=[]; signalRx=[];% create white noise N(0, 0.5)randn('state',sum(100*clock));% % Reset randomizer% % ------------------------------------------------------------% % Return RANDN to its default initial state.% % randn('state',0)% % ------------------------------------------------------------% % Initialize RANDN to a different state each time.% % randn('state',sum(100*clock))% % ------------------------------------------------------------ AWGN = randn(length(SNR), coefNum);% Construction of AWGN Matrixfor i = 1:length(SNR)% make noise level from specified SNR: No = 1/(10^(SNR/10)) assuming Eb=1N0(i) = 1/(10^(SNR(i)/10)); %generate No, or, sqrt(variance) = No for the WGN noise% adjust for the desired N(0,No/2) => X = mue + sqrt(var)*N(0, 0.5) AWGN(i,:) = sqrt(N0(i)./2) .* AWGN(i,:);% produce received signalsignalRx(i,:) = signalTx + AWGN(i,:);% perform signal detectionsignalRx(i, find(signalRx(i,:) <= 0)) = -1;signalRx(i, find(signalRx(i,:) > 0)) = +1;% estimate error probabilityerror = length(find(signalRx(i,:)-signalTx));Pe(i) = error / coefNum;end%-------------------------------------------------------------------------% End of Function%-------------------------------------------------------------------------下面是图形结果:。
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;。
实验4-BPSK调制解调仿真
实验四BPSK调制解调仿真【实验目的】加深移动通信系统中调制解调的理解;能够使用 Matlab(或者 C 语言)进行通信系统调制解调基带仿真,并进行性能分析;【实验内容】使用 Matlab (或者 C 语言)仿真 BPSK调制解调(只能相干解调)过程;比较发送端星座图以及不同信噪比下接收端星座图的不同;仿真 AWGN 信道下 BPSK的误码率;【实验设备】一台PC机【实验步骤】1.产生发送信息比特;2.对信息比特进行 BPSK调制;3.将 BPSK调制后的发送信号经过 AWGN 信道,从而获得接收信号波形;4.比较发送端星座图以及不同信噪比下接收端星座图的不同;5.对接收信号进行 BPSK解调;6.通过蒙特卡洛方法,仿真系统误码率,画出 BPSK调制解调误码率曲线。
【实验报告】按照要求完成实验报告。
实验报告中要求给出不同信噪比条件下(信噪比分别为-5dB,0dB,5dB,10dB)接收端的星座图。
画出AWGN 信道下 BPSK调制解调误码率曲线。
一、仿真程序及说明clc;clear all ;n=1000;SNR=[-5 0 5 10];source=randint(1,n);In_BPSK=source*2-1;for i=1:length(SNR)Y(i,:)=AWGN(In_BPSK,SNR(i));endY_RE=Y;Y_RE(find(Y>0))=1;Y_RE(find(Y<0))=0;for i=1:length(SNR)Y_ERRO(i,:)=abs(Y_RE(i,:)-source)Y_BIT(i)=sum(Y_ERRO(i,:))/n/误码率 = 错误码元数 / 传输总码元数endsemilogy(SNR,Y_BIT);grid on ;title(' 误码率' );figuresubplot(4,1,1);plot(Y(1,:),0,'*');title('SNR=-5dB');subplot(4,1,2);plot(Y(2,:),0,'*');title('SNR=0dB');subplot(4,1,3);plot(Y(3,:),0,'*');title('SNR=5dB')subplot(4,1,4);plot(Y(4,:),0,'*');title('SNR=10dB');二、总结通过这次试验,巩固的BPSK调制解调以及星座图的知识,也让我们对于不同性噪比下系统性能的优异有了更深的认识。
SystemViewBPSK—BER
例十一: BPSK —BER一、实验原理误码率是衡量各种数字载波传输系统性能的一个重要指标。
PSK 与ASK 、FSK 相比,具有较小的误码率,因此抗噪性能较强。
本次实验将对BPSK 信号的误码率随噪声功率变化而变化的情况做出实验仿真。
1.仿真电路SystemView 的通信库中提供了BER 分析的专用图标,可直接调用。
实验电路:Token0:信号源发生器—PN 码序列(幅度=1V ,频率=50赫兹,电平数=2Levels ) Token 1、11:采样器 (频率=50赫兹)Token2:数字延迟器 (延迟=1Sample )Token3,8:乘法器Token4,9:信号源发生器—正弦信号 (频率=1000赫兹,幅度=1V ,相位=0) Token5:加法器Token6:高斯白噪声 (功率密度=0.007瓦/赫兹)Token7:放大器Token10:模拟低通滤波器 (截止频率:225Hz )Token12:误码率图标 (Trails=1)Token14:终止符 (误码=8个)Token15:终值显示符2.运行时间设置运行时间=3s 采样频率=20000 Hz 循环运算次数:No of Loops=5图2.11.1 BPSK---BER 仿真电路3.一些特殊元件的选取方法:a . 误码率图标在SystemView 软件中,使用“通信库”中的BER 元件来求误码率。
BER 元件的选取步骤为:在系统设计窗中拖出通信库图标后双击该图标,弹出如图2.11.2所示对话框进行选择。
参数设置,No.Trails=1bit 。
b . 终止符在设计窗中拖出信号接收器图标(Sink ),双击该图标,弹出如下对话框:选择Stop Sink 按钮,再单击Parameters 按钮进行参数设置。
如下图:图2.11.2 BER 图标对话框图2.11.3 观察窗库图2.11.4 Stop Sink 参数设置对话框设置参数为Select Action=Go to Next Loop (每次停止条件满足后进入下一循环), Sink Memory=Retain all samples ,Threshold=8V (停止门限电平为8V )。
BPSK相干解调和DBPSK非相干解调误码率仿真
BPSK相⼲解调和DBPSK⾮相⼲解调误码率仿真BPSK相⼲解调和DBPSK⾮相⼲解调误码率仿真本脚本完成了BPSK和DBPSK两种不同调制⽅式下的误码率(DBPSK差分相⼲)仿真,并和理论曲线进⾏了对⽐。
撰写⼈:***最后修改⽇期:2015-03-18软件版本:MATLAB(R) 2014a程序添加和修改包括1. BPSK未作修改2. DPSK添加了成型部分,同时从《⾼等数字通信》中看到了DPSK最佳接收机的结构待改进1. 怎样选择仿真点数才能保证结果可信,可信程度是多少?如何衡量?Contents初始设置清空⼯作区,数据,关闭所有窗⼝clc;clear all;close all;仿真参数设置EbN0_dB = 1:8; % EbN0_dB 误码率范围,向量;FRAMES_NUM = 100; % FRAMES_NUM 最⼤仿真帧数⽬;FRAMES_LENGTH = 1000; % FRAMES_LENGTH 每帧长度;UPSAMPLE_RATE = 8; % UPSAMPLE_RATE 过采样率;berBpsk = zeros(1,length(EbN0_dB)); % berBpsk BPSK误码率统计,向量;berDbpsk = zeros(1,length(EbN0_dB)); % berDbpsk DBPSK误码率统计,向量;sqrtRaisedfilter = rcosfir(0.3,[-3,3],UPSAMPLE_RATE,1,'sqrt');误码率仿真针对不同EbN0先仿真BPSK和DBPSK误码率曲线在不同EbN0下,对误码率进⾏仿真for nEbN0 = 1:length(EbN0_dB);多帧取统计平均bpskErrorNum = 0;dbpskErrorNum = 0;for nFrame = 1:FRAMES_NUM数据⽣成和基带映射data = randi([0 1],1,FRAMES_LENGTH);bpskBaseband = 1 - 2*data; % 映射 0—+1;1—-1,已归⼀化data_extend = [1 data]; % 差分编码,假设第⼀个数据为1for num = 2:FRAMES_LENGTH+1data_extend(num) = xor(data_extend(num),data_extend(num-1));end% 注意此时DBPSK多传了⼀个1dbpskBaseband = 1 - 2*data_extend; % 映射 0—+1;1—-1,已归⼀化% ⽅波成型%dbpskBaseband = reshape(repmat(dbpskBaseband,UPSAMPLE_RATE,1),1,[]);% 匹配滤波dbpskBaseband = upsample(dbpskBaseband,UPSAMPLE_RATE);dbpskBaseband = conv(dbpskBaseband,sqrtRaisedfilter,'same');bpskTransmitSignal = bpskBaseband; % 不加载波dbpskTransmitSignal = dbpskBaseband/sqrt(var(dbpskBaseband));AWGN 信道,SNR和EbN0换算关系SNR_dB = EbN0_dB(nEbN0) + 10*log10(2) - 10*log10(1);SNR = 10^(SNR_dB/10);接收信号的⽮量等效bpsknoise = 1/sqrt(SNR)*randn(1,length(bpskTransmitSignal));bpskReceiveSignal = bpskTransmitSignal + bpsknoise;SNR_dB = EbN0_dB(nEbN0) + 10*log10(2) - 10*log10(UPSAMPLE_RATE);SNR = 10^(SNR_dB/10);dbpsknoise = 1/sqrt(SNR)*randn(1,length(dbpskTransmitSignal)) + ...1i*1/sqrt(SNR)*randn(1,length(dbpskTransmitSignal));dbpskReceiveSignal = dbpskTransmitSignal + dbpsknoise;BPSK误⽐特数统计bpskErrorNum = bpskErrorNum + sum(bpskBaseband.*bpskReceiveSignal<0);DBPSK解调(通信原理P209)误⽐特数统计,不是最佳接收⽅波成型解调如果UPSAMPLE_RATE为1,此时能使⽤sum函数 %dbpskReceiveSignal = sum(reshape(dbpskReceiveSignal,UPSAMPLE_RATE,[]));% 匹配滤波解调dbpskReceiveSignal = conv(dbpskReceiveSignal,sqrtRaisedfilter,'same');dbpskReceiveSignal = downsample(dbpskReceiveSignal,UPSAMPLE_RATE);dbpskDelay = dbpskReceiveSignal(2:end);dbpskJudgment = dbpskReceiveSignal(1:end-1).*dbpskDelay;dbpskDecodeData = zeros(1,length(data));dbpskDecodeData(dbpskJudgment<0) = 1; %gt compares only the real partdbpskErrorNum = dbpskErrorNum + sum(abs(dbpskDecodeData-data));end误码率统计berBpsk(nEbN0) = bpskErrorNum/FRAMES_NUM/FRAMES_LENGTH;berDbpsk(nEbN0) = dbpskErrorNum/FRAMES_NUM/FRAMES_LENGTH;end绘图和数据输出绘制BPSK和DBPSK的仿真和理论误码率曲线berBpskTheory = berawgn(EbN0_dB,'psk',2,'nondiff');berDbpskTheory = berawgn(EbN0_dB,'dpsk',2,'nondiff');fprintf('总帧数 = %d,帧长 = %d\n',FRAMES_NUM,FRAMES_LENGTH);table(EbN0_dB',berBpskTheory',berBpsk',berDbpskTheory',berDbpsk',...'VariableNames', {'EbN0_dB','BpskTheory','BpskSim','DbpskTheory','DbpskSim'})figure;semilogy(EbN0_dB,berDbpsk,'bd');hold on;semilogy(EbN0_dB,berDbpskTheory,'b-');semilogy(EbN0_dB,berBpsk,'rs');semilogy(EbN0_dB,berBpskTheory,'r-');hold off;legend('差分DPSK仿真','DPSK理论','相⼲BPSK仿真','相⼲BPSK理论');xlabel('EbN0');ylabel('BER');grid on;总帧数 = 100,帧长 = 1000ans =EbN0_dB BpskTheory BpskSim DbpskTheory DbpskSim_______ __________ _______ ___________ ________1 0.056282 0.05494 0.14198 0.141322 0.037506 0.03737 0.10248 0.102913 0.022878 0.02259 0.067989 0.068884 0.012501 0.01247 0.040558 0.039125 0.0059539 0.0061 0.021165 0.021516 0.0023883 0.0024 0.0093328 0.009377 0.00077267 0.00079 0.0033292 0.003348 0.00019091 0.00022 0.0009094 0.00076。
BPSK-QPSK-8PSK-16QAM等调制方式的性能仿真及频率利用率的对比及分析
引言 (2)1 BPSK QPSK 8PSK 16QAM 调制方式的性能仿真和频率利用率的对比分析 (2)1.1 BPSK QPSK 8PSK 的性能仿真 (2)1.2 16QAM 的性能仿真 (6)2 四种调制方式各自的使用场景 (8)3 能量利用率 (9)3.2 QPSK的能量效率 (9)3.3 8PSK的能量效率 (9)3.4 16QAM的能量效率 (9)结论 (10)参考文献 (10)引言随着信息事业的迅猛发展,对数字信号调制性能上的要求越来越高本文对BPSK QPSK 8PSK 16QAM 等调制方式的性能进行仿真及频率利用率的对比及分析,主要对QPSK 和16QAM 的相关性能进行了阐述。
并对上述四种调制方式各自的使用场景进行总结。
同时分析以上四种方式的能量效率,即每比特能量消耗的对比分析。
1 BPSK QPSK 8PSK 16QAM 调制方式的性能仿真和频率利用率的对比分析1.1 BPSK QPSK 8PSK 的性能仿真BPS K 调制方式:所谓 BPSK 就是根据数字基带信号的两个电平,使载波相位在两个不同的数值之间切换的一种相位调制方法。
在恒参信道条件下,相移键控(BPSK) 与幅移键控( AS K) 和频移键控( F S K) 相比,具有较高的抗噪声干扰性能,且能有效地利用所给定的信道频带,即使在有多径衰落的信道中也有较好的结果,所以BPSK 是一种较好的调制方式。
四相相移键控( Q P S K ) 是一种性能优良,应用十分广泛的数字调制方式,它的频带利用率高,是二相相移键控( B P S K) 的2倍。
且Q P S K 调制技术的抗干扰性能强,采用相干检测时其误码率性能与B P S K 相同。
8PSK ,即8 Phase Shift Keying ,也就是八相相移键控的意思。
QPSK 调制方式中,每个相位包含了2位二进制信息,而8PSK 调制方式中,每个相位包含了3位二进制信息,因而编码效率提高了50%,但同时,8PSK 的抗扰性比QPSK 要低很多。
正交编码加BPSK与MFSK性能仿真
正交编码加BPSK 与MFSK 性能仿真1、正交编码加BPSK 仿真 1.1、系统模型通信系统模型如图1所示。
图1 正交编码加BPSK 系统框图各模块的功能和参数设置:数字信源:产生等概的0、1序列。
正交编码:将输入的01序列映射为M 阶Hadamard 正交序列,编码效率为()2log 1c M k R M M==上采样:将编码后的数据进行插零,如果过采样率为s F ,则相邻码元符号之间插入Fs-1个0.平方根升余弦滤波器:接收端与发送端采用相同的平方根升余弦滤波器,两者综合的效果相当于一个升余弦滤波器,能够抵抗码间干扰,同时也实现了匹配滤波。
本仿真中,采用FIR 滤波器,滚降系数0.3α=,抽头个数21T s N N F =+.其中,T N 为滤波器阶数,s F 为滤波器的过采样率。
AWGN :加性高斯白噪声,根据系统仿真设置的/b o E N 来计算符号信噪比SNR ,对于实信号,两者之间的转换关系为:()02/2bc s E SNR R F N =其中,/b o E N 为比特信噪比,c R 为编码效率,定义式如()1,s F 为过采样率。
下采样:对接收端经过平方根升余弦滤波器之后的输出进行抽取采样。
这里需要注意滤波器的延迟,综合发送端和接收端滤波器的影响,输出延迟为:()23T sDelay N F =相关检测:对采样数据进行相干检测,即对每个符号的接收波形分别与M 个正交波形进行相关运算,得到最大的相关值,所对应的正交波形即为该符号的发送波形,利用编码映射关系即可得到发送序列的估计。
误码率统计:利用蒙特卡洛方法对误码率进行估计。
1.2、MATALB 仿真1.2.1、正交编码加BPSK 不同编码效率由()1式,不同的Hadamard 正交波形的阶数M 决定了不同的编码效率。
对于不同的比特信噪比/b o E N ,分别仿真24816M =、、、时的误比特率性能,并且根据()2式转换关系,分别以/b o E N 、SNR 为横坐标做出BER 性能曲线,如图2和图3所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验目的
1.掌握BPSK信号调制、相干解调方法;
2.掌握BPSK信号误码率计算。
实验内容
1.BPSK信号的调制;
2.BPSK信号相干解调;
3.不同信噪比环境下BPSK信号误码率计算,并与理论误码率曲线对比。
实验原理
BPSK信号调制原理
1.系统原理
高斯白噪声
图1 BPSK调制系统原理框图
BPSK调制系统的原理框图如图1所示,其中脉冲成形的作用是抑制旁瓣,减少邻道干扰,通常选用升余弦滤波器;加性高斯白噪声模拟信道特性,这是一种简单的模拟;带通滤波器BPF可以滤除有效信号频带以外的噪声,提高信噪
比;在实际通信系统中相干载波需要使用锁相环从接收到的已调信号中恢复,这一过程增加了系统的复杂度,同时恢复的载波可能与调制时的载波存在180度的相位偏差,即180°相位反转问题,这使得BPSK 系统在实际中无法使用;低通滤波器LPF 用于滤除高频分量,提高信噪比;抽样判决所需的同步时钟需要从接收到的信号中恢复,即码元同步,判决门限跟码元的统计特性有关,但一般情况下都为0。
2. 参数要求
码元速率1000波特,载波频率4KHz ,采样频率为16KHz 。
BPSK 信号解调原理
BPSK 信号的解调方法是相干解调法。
由于PSK 信号本身就是利用相位传递信息的,所以在接收端必须利用信号的相位信息来解调信号。
图2中给出了一种2PSK 信号相干接收设备的原理框图。
图中经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。
判决器是按极性来判决的。
即正抽样值判为1,负抽样值判为-1。
图2 BPSK 解调系统原理框图
BPSK 信号误码率
在AWGN 信道下BPSK 信号相干解调的理论误码率为:12
e P erfc ,
其中r 为信噪比222n
a r σ=。
在大信噪比(1)r →
条件下,上式可近似为:r e P -=
实验结果与分析
BPSK 信号序列的产生
根据BPSK 特点,用matlab 的randsrc(1,num,[-1,-1])产生1或者-1的
均匀分布的随机序列,作为BPSK 信号。
在本实验中没有加载频,是对序列直接做处理,在序列中中加入不同信噪比的高斯白噪。
BPSK 信号解调
对经过信道传输的,含有噪声的BPSK 信号进行判决,在本实验中判决门限定为0。
当信号大于0时判为1,小于0时判为-1,从而恢复出原信号。
BPSK 信号误码率仿真
将信道中的信噪比以1dB 步进从0dB 到10dB 变化,每个信噪比得到一个误码率。
原始信息采用100000比特数据,对最后的误码率取以10为底的对数得到误码率理论与仿真图如下:
实验心得
本实验直接在序列的基础上进行加噪处理并得到仿真结果,并没有加载波,实验比较简单。
从结果来看,基本与理论相近,由于实验所取的数据量有限,所以在信噪比较大时出现的偏差比较大,如果想要结果更好,就应该将原始数据的点数取多。
实验代码
clc;clear all;close all;
num=100000;
for SNR=0:10
data_bpsk=randsrc(1,num,[1,-1]);
snr=1/(10^(SNR/10));
noise=sqrt(snr/2)*(randn(1,num));
receive=data_bpsk+noise;
pe(SNR+1)=0;
for(i=1:num)
if (receive(i)>=0)
r_data(i)=1;
else r_data(i)=-1;
end
end
pe(SNR+1)=(sum(abs((r_data-data_bpsk)/2)))/num;
peb(SNR+1)=0.5*erfc(sqrt(10^(SNR/10)));
end
r=0:10;
semilogy(r,peb,'b-v',r,pe,'m-x');%对y取底为10对数
grid on;legend('理论误码率曲线','仿真误码率曲线');。