2ASK和2FSK相干解调误码率仿真matlab
本文结构
- 2ASK误码率仿真
- 2FSK误码率仿真
2ASK误码率仿真
2ASK相干解调法:
图片来源:郭心悦
发送端发送信号经过信道;经过信道后的波形通过带通滤波器,带通滤波器会有输出波形y(t)y(t)y(t),带通滤波器的输出波形y(t)y(t)y(t)与相干载波2coswct2cosw_c t2coswct相乘,然后由低通滤波器滤除高频分量,在抽样判决器输入端会得到波形
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相关推荐
- 2ASK和2FSK调制解调仿真
实验一 2ASK和2FSK调制解调仿真 一.实验目的 1.熟悉2ASK和2FSK调制解调原理. 2.掌握编写2ASK和2FSK调制解调程序的要点. 3.掌握使用Matlab调制解调仿真的要点. 二. ...
- matlab解调2fsk,2FSK调制解调系统的MATLAB实现
第 34 卷 第 2 期 玉林师范学院学报(自然科学) Vol.34 No.2 2013 年 JOURNAL OF YULIN NORMAL UNIVERSITY (Natural Science) ...
- 【通信原理】实验五 基于Matlab的2ASK和2FSK调制解调
目录 一.实验目的 二.实验器材 三.实验原理 1.二进制振幅键控(2ASK) 2.二进制频移键控(2FSK) 四.示例演示 1.2ASK的模拟调制程序如下: 2.2ASK的开关键控法,调制程序如下: ...
- 【毕业设计系列】009:调频通信系统(相干解调非相干解调)仿真界面实现
DATE: 2021.4.5 文章目录 1.前言 2.相干解调与非相干解调 3.调频通信系统仿真界面 3.1.相干解调法 3.2.非相干解调法 4.部分matlab程序 本人提供付费咨询服务并长期承接 ...
- 包络检波仿真matlab,包络检波和相干解调仿真程序.doc
<通信原理> 课程设计报告 题目:基于MATLAB/simulink调幅的包络检波和相干解调仿真 院系:计算机与信息工程学院 专业:通信工程 班级: 姓名: 学号: 指导老师: 任务文档 ...
- 基于相干解调法和基于相位比较法的2DPSK数字通信系统 MATLAB Simulink仿真
1 课程设计目的 通过课程设计,巩固已经学过的通信原理课程中有关数字调制系统的知识,加深对相关知识的理解和应用,学会应用Matlab Simulink工具对通信系统进行仿真和调试.设计与实现的过程中充 ...
- 数字调制2ASK误码率分析matlab实现
写在开头: ·关于香农三大定理,以个人学习情况和个人理解以学习总结的形式给出. 香农三大贡献(定理) 一 香农第一定理(可变长无失真信源编码定理) 本课程第一节课,老师给出了信息量的度量方式.信息量的 ...
- matlab 8fsk,8FSK调制解调与仿真.ppt
8FSK调制解调与仿真 八进制FSK内容 8FSK的调制与解调 8FSK的误码率分析 8FSK的matlab仿真 (一)多进制FSK调制解调系统 信道 接收滤波器 带通f1 检波器 带通f2 检波器 ...
- matlab fm非相干解调,FM调制和相干解调,非相干解调讲解.doc
PAGE ???通信原理课程设计报告 题目:模拟通信系统频率调制的实现 专业班级: 13电信科技2班 姓 名: 学 号: 指导教师: 彭文娟 [摘要]本设计主要是用MATLAB软件仿真实现语音信号作为 ...
最新文章
- html5 测试视频
- JVM初探——使用堆外内存减少Full GC
- 不用光盘安装系统的问题
- 【必读】文案都写不好,还谈什么互联网思维
- Objective - C基础: 第一天 - 1. 第1, 2个OC程序
- c语言:宏里面参数不加括号容易出错,在使用时尽量加括号及举例
- 没有安装hiredis
- 删除Windows服务[转载]
- vue中如何解决touch和click共存的问题
- Python中NotImplementedError的使用方法(抽象类集成子类实现)
- Linux Ubuntu编译内核错误,安装ubuntu以后,编译kernel出错
- 全国雾霾大数据,哪里才是桃花源?
- 不限时长的电脑录屏软件的软件有哪些?良心安利这3款!
- 阵列信号处理知识概括总结
- 学习Python单利模式
- `SpringBoot`+`axios`结合发送`ajax`请求
- 通过堡垒机/跳板机实现文件在本地Mac与服务器之间的互传
- 【tinyint和int区别】
- HTML屏蔽F12、右键、开发者工具、审查元素
- 学生网页课程设计期末作业 HTML+CSS+JavaScript甜品蛋糕网页设计(5页)