本文结构

  • 2ASK误码率仿真
  • 2FSK误码率仿真

2ASK误码率仿真

2ASK相干解调法:


图片来源:郭心悦
发送端发送信号经过信道;经过信道后的波形通过带通滤波器,带通滤波器会有输出波形y(t)y(t)y(t),带通滤波器的输出波形y(t)y(t)y(t)与相干载波2coswct2cosw_c t2coswc​t相乘,然后由低通滤波器滤除高频分量,在抽样判决器输入端会得到波形

x(t)={a+nc(t),发送符号1nc(t),发送符号0x(t)= \begin{cases} a+n_c(t),& \text{发送符号1}\\ n_c(t),&\text{发送符号0} \end{cases} x(t)={a+nc​(t),nc​(t),​发送符号1发送符号0​
然后进行抽样判决得到结果
这里存在误差,也就是误码率

下面是matlab仿真的过程
过程:通过蒙特卡洛模拟,来生成大数据范围内(此处取1e5个样点)的随机数,进行抽样判决产生结果,计算误码率;对比理论计算出来的误码率;观察两者图形的差异。

这里我们的代码只使用了抽样判决器输入,而没有使用之前的输入信号的一步步计算。

  xi=s1*X+n;%判决接收机输入

这里的s1对应上面x(t)公式的a。
2ASK误码率仿真结果

2askmatlab代码

clear,clc;
s0=0;s1=5;%s0表示0信号,s1表示信号经过恒惨信道之后的幅值,衰减之后
P0=0.7;%信源发送0的概率
P1=1-P0;%信源发送1的概率
A2_over_sigma2_dB=-5:0.5:20;%仿真信噪比范围(dB)
A2_over_sigma2=10.^(A2_over_sigma2_dB./10);%仿真信号信噪比(倍数)sigma2=s1^2./A2_over_sigma2;%噪声方差,A/SNR=sigma2
N=1e5;%信源序列长度
for k=1:length(sigma2)%在信噪比范围内X=(rand(1,N)>P0);%信源发生,产生1和0n=sqrt(sigma2(k)).*randn(1,N);%噪声幅值需要是噪声功率开根号xi=s1*X+n;%判决接收机输入C_opt=(s0+s1)/2+sigma2(k)/(s1-s0)*log(P0./P1);%最佳判决门限y=(xi>C_opt);%判决输出,大于则判为1,小于判为0err(k)=(sum(X-y~=0))/N%误码率统计,其中~=表示不等于
endsemilogy(A2_over_sigma2_dB,err,'o');hold on;%对数间隔绘图,仿真结果
Pe=zeros(1,length(sigma2));%预先分配内存
for k=1:length(sigma2)C_opt=(s0+s1)./2+sigma2(k)./(s1-s0).*log(P0./P1);%计算最佳判决门限,这里可以不写s0,因为s0=0Pe0=0.5-0.5*erf((C_opt-s0)/sqrt(2*sigma2(k)));%发送0时的错误率,即P(1/0),发送0接收1Pe1=0.5+0.5*erf((C_opt-s1)/sqrt(2*sigma2(k)));%发送1时的错误率,即P(0/1)Pe(k)=P0*Pe0+P1*Pe1;%平均错误率
endsemilogy(A2_over_sigma2_dB,Pe);%理论曲线
title("2ASK误码率仿真");
xlabel("A^2/\sigma^2(dB)");
ylabel("错误率P_e");
legend("仿真结果","理论曲线");

记录一下rand(m,n)函数
rand(m,n)生成m行n列均匀分布在(0~1)之间的伪随机数

同时还需要记录randn(m,n)函数
randn(m,n)生成m行n列均值为0,方差为1的标准正态分布的伪随机数

同时记录semilog函数:主要有semilogx,semilogy,loglog三个函数,这是用来作图的。
semilogx是对x轴坐标取对数,semilogy是对y轴坐标取对数,loglog是同时对x轴和y轴取对数。

下面的代码中使用semilogy,因为横坐标使用dB来表示(即x轴已经取过对数),现在需要对y轴取对数。

如果不用取对数画图结果是有问题的,两个坐标上的数据都有一个特点:小的地方数据稠密,大的地方数据稀疏;通过对数变换,可以进行离散化。

2FSK误码率仿真

2FSK相干解调系统

图片来源:郭心悦

仿真结果


信源等概率发送0和1,而且本实验假设信源发送1,在这种情况下判断误码率(即接收到0为错误)
代码
semilogy为取对数坐标画图

clear;
s0=0; s1=5;
P0=0.5; % 信源发0的概率
P1=1-P0;
A2_over_sigma2_dB=-5:0.5:20; % 仿真信噪比范围(dB)
A2_over_sigma2=10.^(A2_over_sigma2_dB./10);
sigma2=s1^2./A2_over_sigma2; % 噪声方差范围
N=1e5; % 信源序列长度
for k=1:length(sigma2)%两路噪声
n1=sqrt(sigma2(k)).*randn(1,N);
n2=sqrt(sigma2(k)).*randn(1,N);
y1=s1+n1; % 接收机两路:在输入为1的情况下
y2=n2;
Y=(y1>y2); % 判决输出
%判决为0则表示错误
err(k)=(sum(Y<1))./N; % 误码率统计
endsemilogy(A2_over_sigma2_dB,err,'o');hold on; % 仿真结果for k=1:length(sigma2) % 理论计算
r=s1^2/(sigma2(k)*2);
Pe1=0.5-0.5*erf((sqrt(0.5*r))); % 发1出错率
Pe0=0.5-0.5*erf((sqrt(0.5*r))); % 发0出错率Pe(k)=Pe1; % 平均错误率,等概率时等于Pe1的错误率
end
semilogy(A2_over_sigma2_dB,Pe); % 理论曲线
xlabel('A^2/\sigma^2 (dB)');
ylabel('错误率P_e');
legend('仿真结果','理论曲线');

2ASK和2FSK相干解调误码率仿真matlab相关推荐

  1. 2ASK和2FSK调制解调仿真

    实验一  2ASK和2FSK调制解调仿真 一.实验目的 1.熟悉2ASK和2FSK调制解调原理. 2.掌握编写2ASK和2FSK调制解调程序的要点. 3.掌握使用Matlab调制解调仿真的要点. 二. ...

  2. matlab解调2fsk,2FSK调制解调系统的MATLAB实现

    第 34 卷 第 2 期 玉林师范学院学报(自然科学) Vol.34 No.2 2013 年 JOURNAL OF YULIN NORMAL UNIVERSITY (Natural Science) ...

  3. 【通信原理】实验五 基于Matlab的2ASK和2FSK调制解调

    目录 一.实验目的 二.实验器材 三.实验原理 1.二进制振幅键控(2ASK) 2.二进制频移键控(2FSK) 四.示例演示 1.2ASK的模拟调制程序如下: 2.2ASK的开关键控法,调制程序如下: ...

  4. 【毕业设计系列】009:调频通信系统(相干解调非相干解调)仿真界面实现

    DATE: 2021.4.5 文章目录 1.前言 2.相干解调与非相干解调 3.调频通信系统仿真界面 3.1.相干解调法 3.2.非相干解调法 4.部分matlab程序 本人提供付费咨询服务并长期承接 ...

  5. 包络检波仿真matlab,包络检波和相干解调仿真程序.doc

    <通信原理> 课程设计报告 题目:基于MATLAB/simulink调幅的包络检波和相干解调仿真 院系:计算机与信息工程学院 专业:通信工程 班级: 姓名: 学号: 指导老师: 任务文档 ...

  6. 基于相干解调法和基于相位比较法的2DPSK数字通信系统 MATLAB Simulink仿真

    1 课程设计目的 通过课程设计,巩固已经学过的通信原理课程中有关数字调制系统的知识,加深对相关知识的理解和应用,学会应用Matlab Simulink工具对通信系统进行仿真和调试.设计与实现的过程中充 ...

  7. 数字调制2ASK误码率分析matlab实现

    写在开头: ·关于香农三大定理,以个人学习情况和个人理解以学习总结的形式给出. 香农三大贡献(定理) 一 香农第一定理(可变长无失真信源编码定理) 本课程第一节课,老师给出了信息量的度量方式.信息量的 ...

  8. matlab 8fsk,8FSK调制解调与仿真.ppt

    8FSK调制解调与仿真 八进制FSK内容 8FSK的调制与解调 8FSK的误码率分析 8FSK的matlab仿真 (一)多进制FSK调制解调系统 信道 接收滤波器 带通f1 检波器 带通f2 检波器 ...

  9. matlab fm非相干解调,FM调制和相干解调,非相干解调讲解.doc

    PAGE ???通信原理课程设计报告 题目:模拟通信系统频率调制的实现 专业班级: 13电信科技2班 姓 名: 学 号: 指导教师: 彭文娟 [摘要]本设计主要是用MATLAB软件仿真实现语音信号作为 ...

最新文章

  1. html5 测试视频
  2. JVM初探——使用堆外内存减少Full GC
  3. 不用光盘安装系统的问题
  4. 【必读】文案都写不好,还谈什么互联网思维
  5. Objective - C基础: 第一天 - 1. 第1, 2个OC程序
  6. c语言:宏里面参数不加括号容易出错,在使用时尽量加括号及举例
  7. 没有安装hiredis
  8. 删除Windows服务[转载]
  9. vue中如何解决touch和click共存的问题
  10. Python中NotImplementedError的使用方法(抽象类集成子类实现)
  11. Linux Ubuntu编译内核错误,安装ubuntu以后,编译kernel出错
  12. 全国雾霾大数据,哪里才是桃花源?
  13. 不限时长的电脑录屏软件的软件有哪些?良心安利这3款!
  14. 阵列信号处理知识概括总结
  15. 学习Python单利模式
  16. `SpringBoot`+`axios`结合发送`ajax`请求
  17. 通过堡垒机/跳板机实现文件在本地Mac与服务器之间的互传
  18. 【tinyint和int区别】
  19. HTML屏蔽F12、右键、开发者工具、审查元素
  20. 学生网页课程设计期末作业 HTML+CSS+JavaScript甜品蛋糕网页设计(5页)

热门文章

  1. Cocos Creator实现的《点我+1》
  2. 【转】gif文件格式详解
  3. 搜索专题【2010】四2.过河问题
  4. 用神经网络逼近一个无穷级数
  5. Win10 配置 TensorFlow-gpu 深度学系框架
  6. java 年计算_用Java计算leap年
  7. sharp扫地机器人讲话_扫地机机器人,智能扫地机器人推荐
  8. Python 计算程序运行时间
  9. 2.1 词汇表征-深度学习第五课《序列模型》-Stanford吴恩达教授
  10. DFTug - Architecture Your Test Design