认知无线电matlab代码详解,认知无线电频谱感知之功率检测matlab代码.docx

认知无线电频谱感知之功率检测matlab代码

能量检测仿真实验代码:clear all;clc;n = 5;ps = 1;SNR1 = -5;SNR2 = -8;SNR3 = -10;% Sim_Times=10000; %Monter-Carlo times% m=5;T=0.001;% 信号带宽W W=5*10^4;% 采样频率Fs = 2*W;m = T*W;n = 2*T*W;% F0=W;% Fs=2;% Sig=sqrt(2)*sin(2*pi*F0/Fs*t); %single tone samples, Fs=2F0% 实际信噪比snr1 = 10.^(SNR1/10);snr2 = 10.^(SNR2/10);snr3 = 10.^(SNR3/10);pn = (1/snr1)*ps;mu0 = n*pn;sigma0 = sqrt(2*n)*pn;mu = n*(pn+ps);sigma = sqrt(2*n*(pn^2+2*pn*ps));% [noi,x0,mu0,sigma0,m0] = cnoi( n,pn );% sig = randn(n,1);sig = 1;% 重复次数count = 5000;% 能量检测判决门限lambda = [200:20:600];lambda1 = [500:20:900];lambda2 = [700:30:1300];% 置信度判决参数% tt = [-5:0.4:3];% cc = 10.^tt;% tt1 = [-1:0.1:1];% cc1 = 10.^tt;% cc2 = [-0.01:0.001:0.01];for kk = 1:1:length(lambda);ff = 0;dd = 0;ff1 = 0;dd1 = 0;ff2 = 0;dd2 = 0;for ii=1:1:count;t = (kk-1)*n+1:kk*n;init_phase = 1/6*pi;sig=2*sin(2*pi*W/Fs*t+init_phase);%sig=1;%dot(sig,sig)/nnoi1 = randn(1,n);noi1 = sqrt(1/snr1)*noi1;rec1 = noi1 + sig;noi2 = randn(1,n);noi2 = sqrt(1/snr2)*noi2;rec2 = noi2 + sig;noi3 = randn(1,n);noi3 = sqrt(1/snr3)*noi3;rec3 = noi3 + sig;sum0_1 = dot(noi1,noi1);sum0_2 = dot(noi2,noi2);sum0_3 = dot(noi3,noi3);sum1_1 = dot(rec1,rec1);sum1_2 = dot(rec2,rec2);sum1_3 = dot(rec3,rec3);%单用户能量检测判决if (sum0_1 > lambda(kk));ff = ff+1;endif (sum1_1 > lambda(kk));dd = dd+1;endif (sum0_2 > lambda1(kk));ff1 = ff1+1;endif (sum1_2 > lambda1(kk));dd1 = dd1+1;end if (sum0_3 > lambda2(kk));ff2 = ff2+1;endif (sum1_3 > lambda2(kk));dd2 = dd2+1;endendPd_1(kk) = dd/count;Pf_1(kk) = ff/count;Pd_2(kk) = dd1/count;Pf_2(kk) = ff1/count;Pd_3(kk) = dd2/count;Pf_3(kk) = ff2/count;endplot(Pf_1,Pd_1,'-o',Pf_2,Pd_2,'-s',Pf_3,Pd_3,'-*');hold on;grid on;xlabel('False alarm probability, P_{Fa}');ylabel('Detection probability, P_{d}');legend('能量检测 SNR=-5dB,n=100','能量检测 SNR=-8dB,n=100','能量检测 SNR=-10dB,n=100');grid on;hold on;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java异常处理(2)--异常处理机制及自定义异常

在编写程序时,经常要在可能出现错误的地方加上检测的代码,如进行x/y运算时,要检测分母为0,数据为空,输入的不是数据而是字符等。过多的if-else分支会导致程序的代码加长、臃肿,可读性差。因此采用异常处理机…

php index.php 文件路径,自研 PHP 框架 1.0_index.php 文件说明

index.php说明在服务上,PHP 引擎其实只执行了 index.php 这一个文件,index.php 可以抽象的看做是产品的最终型态,app 下的文件规定如何组装,system 下的文件提供基本的“组装零件”,最后拼装成一个完整的产品&#xff…

jaas_受JAAS保护的JAX-RS端点

jaas随着RESTFUL(JAX-RS)作为创建Web服务端点的“首选”方式的问世,很长一段时间以来,我一直想知道人们如何围绕它实现安全机制。 归根结底,我假设JAX-RS的基础实现是servlet,因此其安全性也可能围绕容器&…

Java多线程(1)--基本概念:程序、进程、线程

程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程(process)是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周…

php中return返回数组,PHP中return返回数组的一点用法

本文就学习中遇到的PHP函数return返回值的问题,这一点return用法进行了说明。在函数的内部用return返回一个值或者为空来结束函数的运行。但是在return一个数组的时候,也可以在函数的内部直接使用print_r来打印。但一般都不这么做。拿上一篇文章举例&…

Thread类的有关常用方法

线程优先级问题 start(): 启动线程,并执行对象的run()方法(线程对象.start()) run(): 线程在被调度时执行的操作(线程对象.start()) currentThread(): 返回当前线程,在Thread子类中就是this,通常…

Java中的Volatile如何工作? Java中的volatile关键字示例

如何在Java中使用Volatile关键字 在Java采访中,什么是volatile变量以及何时在Java中使用volatile变量是Java 采访中一个著名的多线程采访问题 。 尽管许多程序员都知道什么是volatile变量,但是他们在第二部分上失败了,即在Java中何处使用vol…

Java线程的调度及线程的优先级

调度策略 Java的调度方法 同优先级线程组成先进先出队列(先到先服务),使用时间片策略。 对高优先级,使用优先调度的抢占式策略。 线程的优先级等级 Thread.MAX_PRIORITY:10 Thread.MIN _PRIORITY:1 Threa…

maven 单元测试并行_并行运行单元测试

maven 单元测试并行大约是时候单元测试的开发人员能够使用批注在Parallel中运行测试。 在今天的博客文章中,我们将介绍如何使用Easytest提供的注释使传统的Junit测试并行运行。 易测 是在JUnit之上构建的测试框架,可让您轻松编写和维护测试。 它专注于…

Spring Boot 2应用程序和OAuth 2 –传统方法

这篇文章是3个系列文章中的第二部分,探讨了如何为基于Spring Boot 2的应用程序启用OSO2提供程序SSO。 3个帖子是: 1. 引导兼容OpenID Connect的OAuth2授权服务器/ OpenID提供程序的方法 2.与OAuth2授权服务器/ OpenID提供程序集成的旧版Spring Boot / …

Java多线程(2)--Thread类继承和Runnable接口创建线程

Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来体现。 Thread类的特性 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体,通过该Thread对象的start()方法来启动这个线程&#x…

matlab在电磁场与电磁波中的应用,matlab在电磁场与电磁波学习中的应用.docx

matlab在电磁场与电磁波学习中的应用.docx MATLAB在电磁场与电磁波学习中的应用裴逸菲(燕京理工学院信息科学与技术学院,河北廊坊065201)摘要针对电磁场与电磁波在大学课程中的理论性强、概念抽象的特点,在学习中引入MATLAB软件,利用MATLAB的…

Java多线程(3)--线程的生命周期

JDK中用Thread.State类定义了线程的五种状态 要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五种状态: ①新建: 当一个Thread类或…

m序列自相关matlab代码,m序列的输出及其自相关序列

【例10-2】 设m序列的生成多项式为g(x)1x^3x^4,求:(1)m序列的输出及其自相关序列;(2)脉冲波形成为矩形脉冲p(t){1 0≤t≤Tc 画出m序列信号的自相关函数;{0 其它 ,(3)设脉冲波形为升余弦函数(滚降系数a0),画…

JDK 10:从Java访问Java应用程序的进程ID

StackOverflow.com上一个普遍的问题是:“ Java程序如何获得自己的进程ID? 与该问题相关的几个答案包括解析ManagementFactory返回的String 。 getRuntimeMXBean() 。 getName() [但是可以提供“任意字符串”…

Java多线程(4)--线程的同步解决线程安全问题

多线程出现安全问题 问题的原因: 当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参与进来执行,导致共享数据的错误。 解决办法: 对多条操作共享数据的…

java中套接字,如何在java中获得一个开放的套接字?

在Java中,我如何获得一个开放的套接字?我有2个JFrame;在第一个JFrame中,我打开了Client socket的连接.在同一个JFrame中,我创建了另一个JFrame(JFrame2)的实例.现在我想从JFrame1获取相同的Socket到JFrame2继续与我的服务器Socket交谈:login.java(First …

Java多线程(5)--线程通信wait和notify

例题:使用两个线程打印 1-100。线程1, 线程2 交替打印。 解决:涉及wait()和notify()/notifyAll() class Communicate implements Runnable {private int number 1;Overridepublic void run() {while (true) {synchronized (this) {this.notify();if (…

matlab eig 复杂度,MATLAB中的eig函数

在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有5种:Eeig(A):求矩阵A的全部特征值,构成向量E。[V,D]eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向…