• matlab实现BPSK误码率仿真
2021-04-18 12:29:43

BPSK BER simulation

I need to solve the problem with BER calculation. I made a coherent correlation

type detector in MATLAB for a BPSK signal, but when I demodulate the noised

signal BER is much worse than it sould be in theory for coherent detection. I

add noise using awgn() function setting the desired SNR[dB]. I assume

Eb/No[dB]=SNR[dB]+10log(Tbit/Tsample) So why is it? My M-files are attached. I

used 1000 bits to simulate and SNR=-12dB which equals according to the equation

Eb/No=8dB. Theoretically the result shoul have been around 1e-4 and I get

BER=4e-2. The BER curves of the desired and of the reality I have are also enclosed.

更多相关内容
• 各画出了两条性能曲线，一条是根据理论平均错概率画出，另一条是仿真曲线 各画出了两条性能曲线，一条是根据理论平均错概率画出，另一条是仿真曲线
• bpsk在瑞利信道下的误码率与信噪比的关系，通信相关专业用处较大。
• 本资源有一个matlab程序段，是仿真BPSK分别高斯噪声和瑞利衰落下的误码率，产生图形对仿真值和理论值进行比较
• 请教BPSK在瑞利信道下的误码率仿真? 我这两天刚学用Matlab进行通信仿真,下面是我建立的仿真模型及代码,还有运行时的出错分析,请问我错哪里?可以帮帮我吗?国庆收假要交作业了.我摸索了好久都解成功不了. 这是我建立...

请教BPSK在瑞利信道下的误码率仿真? 我这两天刚学用Matlab进行通信仿真,下面是我建立的仿真模型及代码,还有运行时的出错分析,请问我错在哪里?可以帮帮我吗?国庆收假要交作业了.我摸索了好久都解成功不了. 这是我建立的仿真模型,在附件. 这是为仿真模型写的M文件 %设置调制信号的抽样间隔 xSampleTime=1/100000; %设置仿真时间的长度 xSimulationTime=10; %设置随机数产生器的初始化种子 xInitialSeed=[61 71]; %设置BPSK调制的始相位 xPhaseOffset=0; %x表示信噪比的取值范围 x=0:10; %y表示BPSK调制的误符号率 y=x; hold off; xReceiveDelay=0; color='r'; for i=1:length(x) %信噪比依次取向量x的数值 xSNR=x(i); %执行BPSK仿真模型 sim('BPSK_Ray_ErrorRate'); %xErrorRate中获得调制信号的误码率 y(i)=xErrorRate(1); end %绘制信噪比与误码率的关系曲线 semilogy(x,y,color); hold on; 下面是出错分析: Warning: The model 'BPSK_Ray_ErrorRate' does not have continuous states, hence using the solver 'FixedStepDiscrete' instead of solver 'ode3'. You can disable this diagnostic by explicitly specifying a discrete solver in the solver tab of the Configuration Parameters dialog, or setting 'Automatic solver parameter selection' diagnostic to 'none' in the Diagnostics tab of the Configuration Parameters dialog. > In BPSK_Ray_ErrorRatemain at 23 ??? Error using ==> sim Cannot propagate non-frame data from output port 1 of 'BPSK_Ray_ErrorRate/Multipath Rayleigh Fading Channel/In' to input port 1 of 'BPSK_Ray_ErrorRate/Multipath Rayleigh Fading Channel/Channel Filter' because this input port expects frame data; consider inserting a Buffer. Error in ==> BPSK_Ray_ErrorRatemain at 23 sim('BPSK_Ray_ErrorRate');

2008-10-4 13:47 上传

点击文件名下载附件

5.51 KB, 下载次数: 24905

展开全文
• 前言： 我的之前一个博客里面终于拿到了第一个不来自自己的赞，这里感激一下这位观众。我会努力的。 正态分布 我记得我们第一次学习正态分布好像是高中的数学课本当中，不过因为概率论高中占的比值没有很多...

前言： 在我的之前一个博客里面终于拿到了第一个不来自自己的赞，在这里感激一下这位观众。我会努力的。

这篇文章是本系列的第二篇，前后章节为：

## 正态分布

我记得我们第一次学习正态分布好像是在高中的数学课本当中，不过因为概率论在高中占的比值没有很多，所以当初就死记硬背了它的一些特征和原理。不过对于它的实质概念，在当时来看，还是很模糊的。这导致后来一次接触到正态分布，直接一脸懵，那是在大一的模拟通信的课程。当然本来正态分布涉及到的数学问题还是非常复杂的。
在讲什么是正态分布之前，先来解读一下它的名称。正态分布，很多朋友可能很困惑，什么是正态。其实我们学习到的很多理论性的东西都是从西方引进的，当遇到看不懂的名词时，看看它的英文其实会更好理解一些。正态分布的英文叫做Normal Distribution。直接翻译过来叫做正常的分布或者是平常的分布。什么是正常或者常态呢，就是些很普通的事情。一下子正态分布的名称就变得没那么高大上了。一字之差，大可以促进理解了。
然后就是想想什么是常态的分布。在这我们可以佛系一点，没有最好的，也没有最坏的，普普通通是最多的。这样的例子很多，比如男生的身高分布，它就是一个正态分布。通常2米的人很少，一样的1米5一下的人也很少，大部分人都集中在这两者之间，而最多人的身高，通常都是这两个身高的正中间。这么平常的事情，就是服从了正态分布。

说到这个份上，我们现在可以看看正态分布的一个统计表现了：

【1】正态分布图

接着我们应该要讨论的就是x轴和y轴分别表示什么。x轴用我以上的例子来说，就是身高，而y轴，则表示这个身高中人数的占比。占比也可以理解为概率。就好比如在所有的男生当中随便选一个人，选中1米7的人的概率不就是1米7身高的人的占比么。所以说，这个正态分布，其实就是概率的分布，所以上图也有被称作概率密度函数。而对于这么一个分布，它有一个特性，就是它的总和，等于1。

接着我们看看正态的表达公式：

【2】正态分布公式

看到了这个公式，一定很慌吧。。。慌也正常。。。毕竟有这么多个常数在里面。不过幸运的是这里面只有一个变量。
在这里面当中，主要有两个常量需要去解释，σ和μ：
先说μ，它是数学期望，数学期望又是一个很难理解的词汇，英文直译也叫作期望。不过很多时候我们都很佛系，只要过了平均水平就好了，所以期望又叫做均值。。。
而σ是标准差。提到标准差一定要提到它的前身σ²，它被称为方差。方差的英文叫做variance，百度翻译一下，翻译成了变化幅度或者是差额。这样是不是有点理解了，所以说方差就是一个来描述变化幅度的值，而这个变化幅度是相对于均值而言。我们都知道均值只是一个结果，它是由不同分散在这个均值周围上下的值得来的，如果这些值越集中，那么方差就越小，越离散，方差就越大。
那么这两个参数有分别对概率分布有什么影响呢，可以参考下图：

【3】正态分布常量影响

从上图可以看出平均值是决定了概率分布在哪一个x轴上的点是轴对称的，这个应该不难理解，因为可以看出两边之和除以2，就等于均值了。至于方差呢，可以看出来方差越小，越陡，方差越小，分布看上去越平躺。这是跟上面说的，如果方差小，那么意味着里均值近的点就越多，离均值的点越多，说明了里均值的点的概率就越大，而蓝色线很好的应验了这一点。而反之，方差大，说明离均值远的点也多了，所以离均值远的点的概率也相对应的变大了，就好比如黄色线。不过要注意，我这里说的都是相对应，而且这些都是有一个大前提，就是必须服从正态分布，如果打破了规则，变成两边高，中间凹下去了，那么这个例子是不成立的。
至于对于这条公式的推导，哈哈，小冯我在这里就不解释了，也还没有研究出来，登研究出来后就会再另外发另一篇博文讲解吧。

## 加性高斯白噪声

正态分布是又被称为高斯分布，正态分布就是他推导出来的。高斯分布是一个非常牛的数学家在这就不说了，这里直接介绍什么是加性高斯白噪声呢。
首先就是加性，加性就是加法的意思，意思是我发送信号受到噪声通过简单的加减法的干扰，不好理解的话，图片是这么显现的：

【图片】加性高斯白噪声信道

至于高斯白噪声，其实就是说这个噪声服从高斯分布，而为什么是白呢，跟白光有联系。这个噪声它包含了各种各样的频率，像白光一样由各种各样的光混合而成。而且，它的功率谱密度是一个常数，通常即为N0/2。功率谱密度谱是以x轴为频率，y轴为功率密度为单位。所以

高斯白噪声是生活当红随处可见的一种噪声，也是入门必须理解透彻的噪声。在现实生活中，信号的传播处了会有噪声的干扰，还会有其他很多干扰，例如多径传播。不过我们都有相应的处理方法。因为本文主要是研究信道编码抗噪声干扰的能力，所以在这，只会考虑噪声所带来的影响。而之所以用白噪声，不仅是因为它普遍，还有因为很多时候可以让我们起到举一反三的作用。

## σ^2和高斯白噪声功率常数之间的关系

首先先太聊聊功率谱密度，听到了功率谱，肯定会联想到与它对应的能量谱。高斯白噪声是一个功率信号。因为它无时无刻都是不确定的，换句话说就是无规律的，所以它在时域范围为0到0无穷大内它的能量积分是无穷大的，不过因为时间t也趋近与无穷大，根据功率等于能量/时间可以知道，功率并不是无穷大的。什么不是无穷大，那么这个信号就是什么。所以高斯白噪声是功率信号，所以前文提到过，信噪比，是功率之间的比值，因为能量无限大。所以在时域上，功率谱的表达式为：

对应的，高斯白噪声有它的功率谱密度。如图为功率密度：

至于为什么功率谱密度是一个常数，之前说过，这本来就是一个对于白噪声的定义，和白光是相互对应的。
相信很多朋友一开始没想到白噪声的方差会和功率谱密度常数有关系，不过它俩还真是有关系，而且是一回事。相信在搜索引擎上查过的朋友都知道他们的关系，不过至于为什么，估计也是会被一大坨理论甩得团团转。秉承人类都能看懂的原则，博主在这决定尝试用简单的数学来解释一下他们为什么相等。有思考不周到以及错误的地方，欢迎下方留言。
首先我们得知道方差的表达式，根据上文的讨论，应该不难推导出他的轮廓：

因为μ在这里是0，所以这公式又等于：

从这条公式入手，x1,x2一直到xn都是在描述单个噪声的幅度。 这条公式可以简写：

这个是在离散时候的表达式，那么连续状态的表达式又是怎样的呢？

看到这是不是感觉这个σ平方有点眼熟。。。不论熟不熟请回到上面看一下功率谱的公式吧。所以说，当平均数为0的时候，方差就是等于噪声在时域上的平均功率。
让后我们因为我们用的BPSK调制信号，对于一个比特而言，它所对应的频率只有一个点——载波fc。 所以，我们可以根据频域上的功率谱密度找出x轴等于fc对应的功率得出它的值为N0/2，即σ平方等于N0/2。

## BPSK信号和它的BER ver SNR

对于上面不是很了解为什么一个比特对应一个频率的朋友，这里给个说法。计算机只认识0和1，在最初为了防止噪声带来的干扰（这里就不解释了），会采取相位调制的方式来进行无线信号收发改善这种情况。比如比特0，会发送一个-sin(2πfc)的射频信号，而1则发一个sin（2πfc）的射频信号。在接收端，倘若信道没有噪声，会将接收到-sin(2πfc）信号做积分得出-1，因为0更接近-1，然后判定为0，而反之sin(2πfc）为1。这样就可以吧原始信号复原了。不过这还是有缺点，因为这积分还是通过积幅度而成的，倘若在发送sin(2πfc）过程当中有一个能量为负无穷的信号干扰了sin(2πfc), 那么收到的信号就肯定是负无穷了，所以判定出来的结果肯定也是0。
在考虑信道编码之前，我们先要了解如果我们不编码是，噪声对信号的影响到底是多大，这样，才可以让我们去评估，去发现我们的编码的优势到底有多大。

### 开始进入公式推导

我们知道高斯白噪声是服从弄高斯分布的，而在这个实验中，我们先必须定义一种类型的白噪声作为参照，为了方便计算，本文采取方差等于1和均值为0的做法。
首先对于一串比特而言，我们要知道0和1他们出现的概率到底是多少。答案为他两相等，等于1/2（这个应该能理解吧）。经调制之后，比特被表示为1和-1不过他们出现的概率是不变的，即：
p(symbol=-1) = 1/2；
p(symbol=1) = 1/2；
而且，这个时候，-1和1他们有了他们新的名称，叫做码元，只不过是没有经过信道编码的码元而已。
好了，当码元为1的信号通过了我们定义好的加性白噪声之后，再来判定的时候，会发生两种情况，分别是码元在接收方除被识别为1和-1。而又是什么导致这两种情况呢。
当噪声使得码元小于0是，码元1会被识别为-1；当噪声使得码元大于0时，码元会被识别为1。如图为码元被识别错误的情况：

当噪音幅度小于-1，都可以使得符号1会被误认为-1；而对于符号-1也是这样，当噪音幅度为1便会使得符号误认为1。而且因为正态分布服从了轴对称关系，又能得出两者是相等的。因此我们可以得出误码关系式：

因为p（符号1出现概率）等于p(符号-1出现的概率）而且，p(符号1被误认为-1）又等于p（符号-1被误认为1），所以此公式可以被简化成：

在上述表达式中x按照上述表达应该为1，因为等于符号功率。不过符号为1只是其中一个信噪比，如果我们想要引入信噪比和误码率之间的关系，必须使得这个表达式又一处能直接体现出信噪比的。 既然我们想表达信噪比，那么就从它的公式入手：

Eb是我们要求的，N0根据前面：σ²等于N0/2，所以是已知的，SNR是我们的变量。这下就好办了，直接求Eb：

不过还没完，我们之前提到的是噪声的幅度导致了码元1或码元-1被判断错误，可是我们这里求了半天却都是功率。不过幸运的是我们只要讲功率开根号，它的解遍是幅度了。

所以最后误码率的公式等于：

最后的最后，因为公式太长，前人又引入了一个Qfunction的定义来简化，不过博主在觉得其实大可不必。。。无非就是记了一个公式然后把各种变量引入到公式里去，所以各位会在网上看到这么一个定义表达：

其实他跟我们刚才最终推到出来的公式是一回事。。。

## 结言

好了，本文啰嗦了这么多字，其实都是些很基本的东西。不过虽然很基本，博主也是在码这篇文章的时候才想明白了很多东西，之前的懂仅仅是把概念记住而已。希望这篇 流水账般的文章能够让各位读者对于求误码率公式有一个启蒙的作用，这也只是个最基础的，以后还有一大群更难的等这我们呢。 加油！！

## Reference

【1】Wendangwang.com. 2020. Normal Distribution And T Distribution_Word文档在线阅读与下载_文档网. [online] Available at: https://www.wendangwang.com/doc/d79a1bc4f43ba2315c9d405a/6 [Accessed 17 June 2020].
【2】Baike.baidu.com. 2020. 正态分布_百度百科. [online] Available at: https://baike.baidu.com/item/正态分布/829892?fr=aladdin [Accessed 17 June 2020].
【3】Zh.wikipedia.org. 2020. 正态分布. [online] Available at: https://zh.wikipedia.org/wiki/正态分布#/media/File:Normal_Distribution_PDF.svg [Accessed 17 June 2020].

展开全文
• 无线信道中，莱斯分布是一种最常见的用于描述接收信号包络统计时变特性的分布类型。其中莱斯因子是反映信道质量的重要参数，计算信道质量和链路预算、移动台移动速度以及测向性能分析等都发挥着重要的作用 [4] ...

在无线信道中，莱斯分布是一种最常见的用于描述接收信号包络统计时变特性的分布类型。其中莱斯因子是反映信道质量的重要参数，在计算信道质量和链路预算、移动台移动速度以及测向性能分析等都发挥着重要的作用 [4] 。信号在传输过程中由于多径效应，接收信号是直射信号（主信号）和多径信号的叠加，此时接收信号的包络服从莱斯分布。事实上，在考虑多径效应的时候，原始信号与呈现瑞利分布的多径分量的和常常被描述为莱斯分布。
其中，莱斯分布的概率密度函数为

下面给出在莱斯信道衰落下的QPSK误码率分析代码。

clear all;
close all;
K_rice_dB=40;               %莱斯分布的增益
K_rice=10^(K_rice_dB/10);
M=4;                        %MPSK
k=log2(M);                  %每符号的比特数
N_sym=10;                   %分块处理，每个块含有的符号数
N_bit=k*N_sym;              %总共要处理的符号数
N_block=10000;              %块的数目
Es=1;                       %将每个符号的能量归一化
Eb=Es/k;                    %计算每比特的能量
Eb_N0_dB=0:1:10;            %初始化信噪比
Eb_N0=10.^(Eb_N0_dB/10);
N0=Eb./Eb_N0;               %计算噪声功率谱密度
len_EbN0=length(Eb_N0);

EbN0_pointer=1;
temp_EbN0_pointer=EbN0_pointer;
errs=zeros(1,len_EbN0);     %错误码元数目初始化
block_count=zeros(1,len_EbN0);
while (EbN0_pointer <= len_EbN0) && (block_count(len_EbN0) < N_block)
B=round(rand(1,N_bit)); %产生随机二进制序列
Dm=reshape(B,k,N_sym);  %矩阵转置
D = Dm(1,:)+1i*Dm(2,:); %产生两路独立的二进制信号.
Tx_data = sqrt(Eb) * (2*D-(1+1i));                      %发射双极性不归零二进制信号
Noise=sqrt(0.5)*(randn(1, N_sym)+1i*randn(1, N_sym));   %高斯噪声
h_ray=sqrt(0.5)*(randn(1,1)+1i*randn(1,1));             %瑞利衰落分布信道
h_rice=(sqrt(K_rice)+h_ray)/sqrt(1+K_rice);             %莱斯衰落分布信道，这里要做归一化
for n = EbN0_pointer : len_EbN
Rx_data = h_rice*Tx_data + sqrt(N0(n))*Noise;       %接收端信号
y=Rx_data/h_rice;                                   %信道增益
Recov_Tx_data= sqrt(Eb)*(sign(real(y))+1i*sign(imag(y)));
Recov_D = 0.5*(1+1i+Recov_Tx_data/sqrt(Eb));
errs(n)= errs(n)+sum(abs(Recov_D-D).^2);            %计算错误比特数
if errs(n)>=800
temp_EbN0_pointer = temp_EbN0_pointer+1;
end;
block_count(n)=block_count(n)+1;                    %进入下一块循环
end;
EbN0_pointer=temp_EbN0_pointer;
block_count
end;
Num_BER = errs./(N_bit*block_count);                        %数值模拟误码率
Ana_BER=0.5*(1-sqrt(Eb_N0./(1+Eb_N0)));                     %理论误码率
figure;                                                     %做出误码率曲线
semilogy(Eb_N0_dB, Num_BER, '-s');
hold on;
semilogy(Eb_N0_dB, Ana_BER, 'r-*');
grid on;
xlabel('Eb/N0 (dB)');
ylabel('BER');

展开全文
• 目 录 装 订 线 第一章 概述 QPSK 是英文 Quadrature Phase Shift Keying 的缩略语简称意为正交相移键控是一种数字 调制方式它以其抗干扰性能强误码性能好频谱利用高等优点广泛应用于数字微波通信 系统数字卫星...
• BPSK调制解调
• 由于绝对相移方式存在相位模糊问题，所以实际中主要采用相对移相方式DQPSK。 QPSK是一种四进制相位调制，具有良好的抗噪特性和频带利用，广泛应用 于卫星链路、数字集群等通信业务。 程序主入口： clear; SNR = ...
• 信号源：数字基带信号、根升余弦脉冲成型（上采样8倍，即每个符号8个采样点，滚降：0.2）； 传输：AWGN信道（信噪比范围可调） 接收器：匹配滤波，相关解调，判决 ...计算误码率并与理论值比较。
• 已调信号通过多种信道(包括高斯白噪声信道、瑞利信道、莱斯信道)，接收端进行解调。恢复原始基份数据； 2）要求画出上述过程中每一点的波形: 3）画出信噪比-误码率曲线和星座图； 4）将理论计算和仿真统计的结果...
• BPSK (Binary Phase Shift Keying)，把模拟信号转换成数据值的转换...我们可以用Matlab仿真其传输误码率，m文件内容如下: % 传输1000000个码，随机+1/-1 N = 1000000; for i=1:N  if rand  s(i)=-1;  els
• 本文介绍2FSK瑞利衰落信道下的相干检测与非相干检测原理，并给出MATLAB基带仿真程序。
• 由于多径效应和移动台运动等影响因素，使得移动信道对传输信号时 间、频率和角度上造成了色散，即时间色散、频率色散、角度色散等等，因 此多径信道的特性对通信质量有着重要...3. 掌握使用 Matlab 分析信道误码率
• ## 16QAM调制解调和误码率

千次阅读 多人点赞 2020-06-07 23:58:26
%理论和仿真误码率 %% %系统参数设计 T_start=0;%开始时间 T_stop=40;%截止时间 T=T_stop-T_start;%仿真持续时间 rs=10;%传输速率 NumBits=rs*T;%传输bit数 fc=20;%载波频率 L=100;%码元长度 N_sample=NumBits*L...
• %实验误码率 = 判决后 peb(SNR+1)=0.5*erfc(sqrt(10^(SNR/10))); % 理论误码率 end r=0:14; semilogy(r,peb,'b-v',r,pe,'m-x'); %对y取底为10对数? grid on; legend('Theoretical BER','Simulated BER');
• BPSKQPSK的MATLAB仿真 实验一 无线信道特性及其分析方法 一、 实验作业 1. 程序运行的过程中，任取一段Display1的数据和Display4的数据，分析其是否满足QPSK的调制过程； 图一 程序运行中的一段数据截图 Display1...
• 软件实现的是基于matlab的QPSK信号的抗干扰性能仿真及研究，可以详尽展示QPSK、DQPSK、BPSK调制解调的全过程，并且仿真了高斯信道、瑞利信道、以及莱斯信道下各类信号的传输情况，分析其误码率曲线、星座图、眼图，...
• 录第一章概述2第二章QPSK通信系统原理与仿真22.1 QPSK系统框图介绍22.2QPSK信号的调制原理32.2.1QPSK信号产生方法32.2.2QPSK星座图42.3QPSK解调原理及误码率分析42.3.1QPSK解调方法42.3.2QPSK系统误码率52.4QPSK信号...
• 第7章（2）内容如下：一、瑞利衰落信道介绍二、OFDM经过多径衰落信道误码率分析三、总结 本文对应的完整可运行代码下载地址：123kevin456/OFDM-。 一、瑞利衰落信道介绍 第（1）内容《第7章：OFDM 信道估计与均衡...
• 2.了解噪声和多径信道的仿真方法； 3.熟悉通信系统SNR-BER性能的蒙特卡罗仿真算法的基本思想； 4.数学Simulink与MATLAB交互使用的命令行动态系统仿真过程； 5.培养团队协作完成任务的能力。 二、实验内容 题目全部按...
• 基于MATLAB的QPSK瑞利、高斯和莱斯信道下仿真。 介绍 QPSK是一种四进制相位调制，具有良好的抗噪特性和频带利用，广泛应用于卫星链路、数字集群等通信业务。 产生 QPSK信号的正弦载波有4个可能的离散相位状态，...
• 实验二BPSK/BDPSK数字传输系统综合实验一、实验原理(一)BPSK调制理论上二进制相移键控(BPSK)可以用幅度恒定，而其载波相位随着输入信号m(1、0码)而改变，通常这两个相位相差180°。如果每比特能量为Eb，则传输的BPSK...
• 本科读通信工程专业的我，学习了不少专业课程，但是上课的时候，是一科科学习，课程之间的关系没有理解清楚，分散的知识没有连成自洽的专业知识体系，导致常常分析通信问题时，不知道是自己哪里理解出问题。...
• 录第一章概述2第二章QPSK通信系统原理与仿真22.1 QPSK系统框图介绍22.2QPSK信号的调制原理32.2.1QPSK信号产生方法32.2.2QPSK星座图42.3QPSK解调原理及误码率分析42.3.1QPSK解调方法42.3.2QPSK系统误码率52.4QPSK信号...
• 过程介绍–发送端： OFDM发射机的输入位首先要进行编码（有冗余），以减少特定信道的误差，编码后的位通过==调制相位和正交（IQ）==平面上映射成星座，得到的IQ数据用复数表示。IQ数据中插入导频和保护
• qpsk调制与解调系统的matlab实现 QPSK调制与解调系统的MATLAB实现 及性能分析 摘要：QPSK是英文 QuadraturePhaseShift...所谓调制，就是把信号转 换成适合在信道中传输的形式的一种过程。解调则是调制的相反过程...